Graph Neural Networks (GNN): qu’est-ce que c’est ?

-
5
 m de lecture
-

Les Graph Neural Networks (GNN) ou réseaux de neurones en graphes sont des réseaux de neurones particuliers utiles pour résoudre des problèmes difficiles à partir de graphes qui constituent une structure de données complexe. Découvrez ci-dessous plus de détails sur le fonctionnement, les architectures et les applications des GNN.

En quoi consistent les réseaux de neurones graphiques ?

Avec le développement exponentiel de la data science, le Machine Learning a subi également de nouveaux changements pour s’adapter aux évolutions des structures de données et à la demande. Ainsi, avec l’apparition de nouveaux types de données et la multiplication de données non structurées, il est devenu nécessaire de créer des modèles d’apprentissage automatique capables de s’adapter à des données non structurées comme des graphes.

C’est le cas par exemple des Réseaux de Neurones Graphiques en anglais Graph Neural Networks (GNN) capables de manipuler des données issues d’un graphe. Les GNN constituent ainsi un prolongement des réseaux de neurones conventionnels issus du Deep Learning qui sont utilisés pour traiter des données structurées. Les graphes sont des structures de données complexes non structurées utiles qui peuvent permettre de représenter des phénomènes réels comme des systèmes de navigation routière aérienne ainsi que des structures de molécules.

Qu’est ce qu’un graphe ?

Un graphe est une structure de données complexe utilisée pour représenter des objets et des relations entre eux. Un graphe est constitué d’un ensemble de nœuds (en anglais nodes) et d’arêtes (en anglais edges ou links). Les arêtes permettent de relier les différents nœuds entre eux. Les arêtes peuvent être orientées ou non orientées. Dans un graphe orienté, les arêtes ont une direction qui indique le sens de la relation, alors que dans un graphe non orienté, les arêtes n’ont pas de direction.

Plus concrètement, les nœuds peuvent représenter des utilisateurs d’un réseau social alors que les liens correspondent aux amitiés entre les utilisateurs On peut également voir un graphe comme la structure d’une molécule, ou bien un réseau de transport. 

Dans le cas des GNN, un graphe utilise des vecteurs caractéristiques (en anglais embeddings) pour encoder l’ensemble des informations relatives à un graphe comme sa structure et ses relations. Les embeddings construisent ainsi une représentation numérique d’un graphe qui pourra être utilisé par la suite pour entraîner des algorithmes de Machine Learning.

Dans un graphe, les embeddings sont de deux types : les node embeddings (embedding de nœud) et les embeddings d’arêtes. Les node embeddings permettent de représenter les propriétés de chaque nœud et les embeddings d’arêtes sont utilisés pour modéliser les propriétés des relations entre les nœuds.

Comment fonctionnent les réseaux de neurones graphiques ?

Le fonctionnement des réseaux de neurones graphiques est basé sur une technique appelée le « message passing ». Cette technique permet de traiter l’information à travers un échange d’information entre les nœuds d’un graphe et leurs voisins. Le but de cette technique est de modifier l’état de chaque nœud en utilisant les informations locales issues de ses voisins et celles contenus dans les arêtes. 

Plus concrètement, le « message passing » transmet l’information contenue dans les node embeddings grâce aux arêtes du graphe. En effet, chaque nœud envoie un message à ses nœuds voisins en utilisant son node embedding. Chaque message contient des informations sur le nœud émetteur et des propriétés spécifiques à l’arête reliant le nœud à son voisin. Le nœud destinataire combine ensuite tous les messages de ses voisins avec son embedding initial et les embeddings d’arêtes correspondants pour mettre à jour son propre node embedding à l’aide d’une fonction non linéaire. La combinaison entre les messages des nœuds voisins et de l’embedding initial peut correspondre à différentes opérations (somme, moyenne, maximum…) selon le contexte. 

La technique de message passing est répétée à plusieurs reprises pour permettre à chacun des nœuds d’intégrer l’information de ses voisins et ainsi de capturer de plus en plus d’informations sur la structure du graphe. À la fin du processus, chaque nœud contient un node embedding mis à jour qui prend en compte l’ensemble des caractéristiques de ses voisins et des embeddings d’arêtes. Ainsi dans l’embedding space qui correspond à l’espace vectoriel dans lequel les node embeddings sont regroupés, la distance entre les node embeddings dépend de leur similarité. Plus les node embeddings sont similaires, plus ils sont proches. 

Il faut également souligner que les fonctions de message passing sont invariantes par permutation de l’ordre des nœuds de voisins. Cela permet ainsi aux GNN, de considérer les interactions entre les nœuds sans dépendre de l’ordre des nœuds et d’uniformiser les résultats obtenus.

Pour entraîner des GNN, des valeurs de poids aléatoires commencent par être affectées à chacune des couches du réseau de neurones. Ensuite, à travers une fonction de coût adapté au problème à résoudre qui est à minimiser, les poids sont ajustés sur les différentes couches du réseau. A travers la fonction de message passing, les poids des couches cachées des GNN sont modifiées en conséquence.

Entraînement d’un GNN

Une autre technique utilisée pour les GNN est le pooling mais son application varie en fonction de l’architecture utilisée. En effet, après la mise à jour des embeddings des nœuds après de multiples itérations de message passing, il peut s’avérer utile de réduire la dimension de la représentation numérique du graphe pour pouvoir renforcer la capacité des modèles à traiter de grands graphes. C’est ici que le pooling trouve son intérêt puisqu’il produit un embedding global associé à cette région particulière du graphe. Cette embedding global est construit à partir d’une combinaison des node embeddings d’une région spécifique du graphe.

Quelles sont les différentes architectures de GNN ?

Il existe différents types d’architectures de GNN, voici une description des architectures les plus connues :

1. Les MPGNN (Message Passing Graph Neural Networks). Les MPGNN utilisent le message passing pour mettre à jour chacun des nœuds en utilisant l’information contenu dans chacun des nœuds voisins.

2. Les GCNN (Graph Convolutional Neural Networks) aussi appelés réseaux de neurones à convolution de graphe. Ces réseaux appliquent une couche de convolution sur les embeddings des nœuds et des arêtes.

GCNN architecture

3. Les GAT (Graph Attention Neural Networks) aussi appelés les réseaux de neurones d’attention graphique. Ce type d’architecture pondère l’importance des nœuds voisins lors de l’étape de la propagation de l’information (message passing). En effet, un score d’attention est calculé pour chaque paire de nœuds et sera utilisé pour pondérer chacun des nœuds.

À quoi servent les GNN ?

Les application des GNN sont multiples, en voici quelques exemples :

  • Node Classification (classification de nœud) : On pourrait utiliser les GNN pour classer les nœuds d’un graphe. Par exemple, on peut l’utiliser pour classifier un utilisateur d’un site e-commerce selon ses intérêts.
  • Graph Classification (classification de graphe) : On pourrait utiliser les GNN pour classer des graphes. Par exemple, le GNN pourrait être utilisé pour prédire le type de molécule en fonction de sa structure (représentée par un graphe).
  • Recommender system (système de recommandation) : Les GNN sont utilisés pour recommander du contenu à des utilisateurs à partir de leurs données. C’est le cas par exemple pour un site de streaming musical comme Spotify qui utilise les GNN pour recommander à un utilisateur des artistes, des chansons, des playlists et des albums similaires en lien avec l’historique de l’utilisateur.
  • Natural Language Processing (NLP) : Les GNN permettent ainsi de faire de la classification de texte ou de la génération de texte. Par exemple, on peut utiliser les GNN pour réaliser une analyse de sentiments sur des avis reliés à un site internet. Chaque avis sera ainsi classé selon sa tonalité (positif, négatif ou neutre).
  • Link Prediction (Prédiction de lien) : Les GNN seraient ici utilisé pour prédire de nouveaux liens entre des nœuds dans un graphe. Par exemple, dans un réseau social, le GNN pourrait être utilisé pour prédire si des utilisateurs sont sujets à devenir amis.
  • Computer Vision : Les GNN sont utilisés pour traiter des images comme des graphes. Plus concrètement, ils peuvent être utilisés pour faire de la détection d’objet ou la reconnaissance de caractères.
  • Clustering : On utilise les GNN pour regrouper des images en fonction de leur contenu. Cela est réalisé en séparant l’espace des embeddings. Il s’agit de l’espace dans lequel les node embeddings sont localisés.

Pour en savoir plus sur les GNN, n’hésitez pas à consulter la vidéo suivante : 

Conclusion

Ainsi, les GNN sont très utiles pour traiter des problèmes complexes à travers la manipulation de graphes qui constituent des structures de données complexes non structurées. Le fonctionnement des GNN repose principalement sur la fonction de message passing qui permet de construire des node embeddings adaptés à la structure et aux informations du graphe.

Les GNN présentent de nombreuses architectures comme les MPGNN, les GCNN et les GAT. Les GNN peuvent être utilisés dans de nombreux contextes comme pour faire de la computer vision, de la prédiction de lien, de la recommandation et du NLP. Enfin, les GNN étant en phase de recherche, il est possible que de nouvelles architectures soient développées. Par leur potentiel et leur puissance, l’utilisation des GNN sera de plus en plus fréquente pour résoudre des problèmes. 

Si vous souhaitez vous former au Deep Learning pour aller plus en profondeur sur les réseaux de neurones, n’hésitez pas à consulter nos formations de Machine Learning Engineering et de Deep Learning.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?