Through this article, my goal is to introduce you to an increasingly popular deep learning algorithm: Graph Neural Networks (GNN). GNNs are gradually emerging from the research arena and are already demonstrating impressive results in real-world problems, suggesting their enormous potential. The main objective of this article is to demystify this algorithm. If at the end you can answer questions like: Why should I use a GNN? How does a GNN work? I would consider my mission accomplished.
Before delving into the topic, it is necessary to remember two concepts intrinsically related to our topic:
Graphics and inlays
Computer graphics
Let's start with a quick reminder of what a graph is. Graphs are used in countless domains. Particularly in computing, a graph is a data structure composed of two elements: a set of vertices or nodes and a set of edges that connect these nodes.
A graph can be directed or undirected. A directed graph is a graph in which the edges have a direction, as shown below.
So a graph is a representation of relationships (edges) between objects (nodes).
Scale
Embeddings are a way of representing information. Let me explain it with an example before discussing it more formally. Suppose I have a set of 10,000 objects to know. The “natural” representation of these objects is the discrete representation, which is a vector with as many components as there are elements of the set. So in the image, the discrete representation is the one on the right, where only one of the vector components is 1 (black) and the rest are 0.
This representation clearly raises a dimensionality problem. This is where embedding comes into play. They reduce the dimensionality of the problem by representing data in a much lower dimensional space. The representation is continuous, meaning that the values of the vector components are different from 0 and 1. However, determining what each component represents in this new space is not simple, as is the case with the discrete representation.