Table des Matières
- 1. Qu’est-ce qu’un Réseau de Neurones en Graphe ?
- 2. L’Idée Centrale : le Passage de Messages
- 3. À l’Intérieur d’une Couche GNN (et Jusqu’où Aller en Profondeur)
- 4. Quatre Architectures qui ont Façonné le Domaine
- 5. Ce que les GNN Prédisent : Trois Niveaux
- 6. Où l’on Utilise les Réseaux de Neurones en Graphe
- 7. Défis, Outils et Premiers Pas
1. Qu’est-ce qu’un Réseau de Neurones en Graphe ?
Un réseau de neurones en graphe (GNN) est un modèle d’apprentissage profond qui opère directement sur des graphes : des données faites de nœuds (entités) reliés par des arêtes (relations). Là où un réseau convolutif suppose une grille régulière de pixels et un réseau récurrent une séquence ordonnée, un GNN ne fait aucune de ces hypothèses. Il travaille sur des structures irrégulières où chaque nœud peut avoir un nombre différent de voisins et où il n’existe aucun ordre naturel à exploiter.
Cela compte parce qu’une grande partie des données réelles sont par nature des graphes : réseaux sociaux, molécules, graphes de connaissances, réseaux routiers, réseaux de paiement et le web lui-même. Un GNN apprend une représentation vectorielle, appelée plongement (embedding), pour chaque nœud, arête ou graphe entier. Ce plongement mêle deux types d’information à la fois : les caractéristiques propres du nœud et la structure du voisinage qui l’entoure. Les plongements alimentent ensuite un prédicteur ordinaire pour la tâche visée.
Le concept remonte à Gori et al. (2005) et à Scarselli et al. (2009), qui ont introduit « le modèle de réseau de neurones en graphe ». Il est resté une idée de niche jusqu’à la vague de l’apprentissage profond : entre 2016 et 2019, un ensemble d’architectures, à savoir GCN, GraphSAGE, GAT et GIN, a rendu les GNN à la fois passables à l’échelle et précis, et ils font désormais partie des outils standards du machine learning. Pour les racines en algèbre linéaire de l’une de ses branches, voyez notre article complémentaire sur la théorie spectrale des graphes en machine learning.
2. L’Idée Centrale : le Passage de Messages
Presque tous les GNN modernes suivent une seule recette unificatrice, le passage de messages (message passing), formalisé par Gilmer et al. (2017). L’intuition est étonnamment simple. Chaque nœud part d’un vecteur de caractéristiques. Puis, à chaque couche, un nœud effectue trois étapes : il collecte les messages de ses voisins, les agrège en un seul résumé, et met à jour son propre vecteur à l’aide de ce résumé et de sa valeur précédente.
L’étape d’agrégation a une exigence incontournable : elle doit être invariante par permutation. Comme un graphe n’a pas d’ordre intrinsèque, le résultat ne peut pas dépendre de la séquence dans laquelle les voisins sont listés. Les choix usuels sont la somme, la moyenne ou le maximum. L’étape de mise à jour est généralement un petit réseau de neurones, une transformation linéaire apprise suivie d’une non-linéarité. Point crucial : tous les nœuds d’une couche partagent les mêmes poids, exactement comme un CNN réutilise un filtre sur toute l’image. Ce partage de poids est ce qui permet à un seul GNN entraîné de généraliser à tous les nœuds d’un graphe, et même à des graphes jamais vus.
Ce rythme « voisins puis mise à jour » est tout le moteur. Une image mentale utile est celle d’une rumeur qui se propage dans une foule : à chaque tour, chacun affine ce qu’il sait à partir des personnes à ses côtés, et après quelques tours, une nouvelle venue de loin a atteint toute la salle. Un GNN rend simplement cette étape de mise à jour apprenable, de sorte que le réseau découvre lui-même quels signaux du voisinage comptent vraiment pour la tâche.
3. À l’Intérieur d’une Couche GNN (et Jusqu’où Aller en Profondeur)
Formellement, une seule couche calcule un nouveau plongement pour chaque nœud v :
h_v⁽ᵏ⁾ = UPDATE( h_v⁽ᵏ⁻¹⁾, AGGREGATE{ h_u⁽ᵏ⁻¹⁾ : u ∈ N(v) } )
Ici N(v) est l’ensemble des voisins de v, et h_v⁽ᵏ⁾ est le plongement de v après k couches. Le nombre de couches contrôle le champ réceptif. Après une couche, un nœud n’a entendu que ses voisins immédiats. Après deux couches, il a indirectement entendu les voisins de ses voisins, car ceux-ci s’étaient eux-mêmes mis à jour à partir de leurs voisins au tour précédent. En général, k couches laissent l’information parcourir k sauts à travers le graphe.
Cela pourrait laisser penser que plus profond est toujours mieux, mais les GNN sont particuliers ici. Empiler trop de couches provoque le sur-lissage (oversmoothing) : le plongement de chaque nœud dérive vers la même valeur et le réseau perd sa capacité à distinguer les nœuds. En pratique, deux à quatre couches sont courantes, et choisir la profondeur est une véritable décision de conception, et non un simple ajout de capacité.
4. Quatre Architectures qui ont Façonné le Domaine
Quatre modèles ont défini l’ère moderne des GNN. Ils partagent le squelette du passage de messages et diffèrent surtout par la façon dont ils agrègent.
- GCN (Kipf et Welling, 2017) agrège avec une moyenne des voisins normalisée par le degré. Simple, rapide et étonnamment solide comme référence, il découle directement de la théorie spectrale des graphes.
- GraphSAGE (Hamilton, Ying et Leskovec, 2017) échantillonne un nombre fixe de voisins et accepte des agrégateurs moyenne, maximum ou LSTM. Son apport clé est l’apprentissage inductif : il généralise à des nœuds et des graphes jamais vus à l’entraînement, ce qui est essentiel à l’échelle industrielle.
- GAT (Veličković et al., 2018) introduit l’attention, en apprenant un poids pour chaque voisin afin que le modèle puisse se concentrer sur les plus pertinents au lieu de les traiter tous de la même manière.
- GIN (Xu et al., 2019) a été conçu pour être le plus expressif possible. Les auteurs ont montré que la capacité d’un GNN à distinguer les graphes est bornée par le test classique de Weisfeiler-Lehman, et que l’agrégateur somme injectif de GIN atteint cette borne.
Ces quatre modèles valent mieux comme points de départ que comme liste fermée. Des dizaines de variantes ultérieures ajoutent des connexions résiduelles, des portes, des caractéristiques d’arêtes ou un échantillonnage plus malin, mais presque toutes conservent le même cœur de passage de messages. Comprendre GCN, GraphSAGE, GAT et GIN vous donne donc le vocabulaire pour lire et raisonner sur presque tout article moderne sur les GNN.
En un Coup d’Œil : Quatre Architectures GNN Clés
| Modèle | Agrégation | Idée clé | Idéal pour |
|---|---|---|---|
| GCN (2017) | Moyenne normalisée | Référence simple, d’origine spectrale | Un point de départ rapide et solide |
| GraphSAGE (2017) | Échantillon + moyenne / max / LSTM | Inductif : fonctionne sur des nœuds inconnus | Grands graphes en croissance |
| GAT (2018) | Pondéré par attention | Apprend quels voisins comptent | Voisinages bruités ou inégaux |
| GIN (2019) | Somme (injective) | Expressivité maximale (borne WL) | Classification au niveau graphe |
5. Ce que les GNN Prédisent : Trois Niveaux
Une fois qu’un GNN a produit des plongements, les prédictions se font à l’un de trois niveaux, et le même tronc commun les sert tous.
- Niveau nœud : classer ou noter des nœuds individuels, par exemple signaler un compte comme frauduleux ou prédire les centres d’intérêt d’un utilisateur.
- Niveau arête (prédiction de liens) : prédire si une arête devrait exister entre deux nœuds. C’est le moteur des suggestions d’amis et des recommandations de produits.
- Niveau graphe : résumer un graphe entier en une seule prédiction, par exemple si une molécule est toxique. Cela ajoute une étape de lecture (pooling) qui combine tous les plongements de nœuds en un seul vecteur de graphe.
Cette modularité fait partie de ce qui rend les GNN si polyvalents : changez la tête de sortie et les étiquettes, gardez le reste, et la même architecture passe de l’étiquetage d’utilisateurs à la recommandation de liens puis au criblage de molécules.
Construisez d’Abord le Graphe
Tout GNN part d’un graphe. Dessinez des nœuds et des arêtes, observez comment les voisinages se connectent et bâtissez l’intuition sur laquelle repose le passage de messages.
Ouvrir le Visualiseur6. Où l’on Utilise les Réseaux de Neurones en Graphe
Les GNN sont rapidement passés des articles de recherche à des systèmes en production utilisés chaque jour par des millions de personnes.
- Recommandation : PinSage de Pinterest et des systèmes apparentés font tourner des recommandations à l’échelle du web sur des milliards d’éléments en traitant utilisateurs et contenus comme un seul grand graphe.
- Découverte de médicaments et chimie : une molécule est littéralement un graphe d’atomes (nœuds) et de liaisons (arêtes), donc les GNN prédisent les propriétés moléculaires, la toxicité et les réactions. C’était la motivation d’origine des réseaux à passage de messages.
- Fraude et sécurité : les graphes de paiements et de comptes révèlent des réseaux coordonnés d’abus que des caractéristiques isolées, compte par compte, ne peuvent tout simplement pas voir.
- Trafic et logistique : Google Maps a utilisé des GNN pour améliorer ses prévisions d’heure d’arrivée estimée sur les réseaux routiers.
- Science et ingénierie : la simulation physique, le raisonnement sur graphes de connaissances, la recommandation en e-commerce et même la conception de puces reposent sur l’apprentissage sur graphes.
Ce qui unit ces cas est un test simple : si vos données se dessinent plus naturellement comme un réseau de relations que comme un tableau plat de lignes, un GNN peut généralement transformer cette structure en un gain de précision mesurable. Cette situation est de plus en plus fréquente, ce qui explique précisément pourquoi l’apprentissage sur graphes s’est répandu si vite, tant dans l’industrie que dans les sciences.
7. Défis, Outils et Premiers Pas
Les GNN sont puissants mais pas sans effort. Au-delà du sur-lissage, la passage à l’échelle est une contrainte réelle : un graphe à des milliards d’arêtes ne tient pas en mémoire, et c’est précisément pourquoi l’échantillonnage de voisins (GraphSAGE) et le partitionnement de graphes ont été inventés. D’autres défis de recherche actifs incluent le sur-compression (oversquashing, trop d’information forcée à travers une seule arête goulot), le plafond d’expressivité fixé par le test de Weisfeiler-Lehman, et la gestion de graphes dynamiques ou hétérogènes dont les nœuds et arêtes sont de plusieurs types.
Heureusement, débuter est simple grâce à des bibliothèques matures. PyTorch Geometric (PyG) et la Deep Graph Library (DGL) fournissent des couches GCN, GraphSAGE, GAT et GIN prêtes à l’emploi, des jeux de données de référence et des opérations creuses efficaces. Un bon premier projet est la classification de nœuds sur un graphe de citations comme Cora, où un GCN à deux couches écrit en quelques lignes bat déjà les références classiques. À partir de ce petit exemple, la même boîte à outils passe à l’échelle des applications industrielles ci-dessus.
Foire Aux Questions
Qu’est-ce qu’un réseau de neurones en graphe, simplement ?
Un réseau de neurones en graphe est un modèle d’apprentissage profond qui s’exécute directement sur des graphes de nœuds et d’arêtes. Chaque nœud rassemble de façon répétée des informations de ses voisins et met à jour son propre vecteur, si bien que la représentation finale capture à la fois les caractéristiques du nœud et sa place dans le réseau.
Qu’est-ce que le passage de messages dans un GNN ?
Le passage de messages est le mécanisme central : à chaque couche, chaque nœud collecte les messages de ses voisins, les agrège avec une fonction invariante par permutation comme la somme ou la moyenne, et met à jour son plongement à l’aide d’un petit réseau de neurones partagé. Empiler des couches laisse l’information voyager plus loin dans le graphe.
Quelle est la différence entre GCN, GraphSAGE, GAT et GIN ?
Ils diffèrent surtout par l’agrégation. GCN utilise une moyenne normalisée, GraphSAGE échantillonne les voisins et est inductif, GAT apprend des poids d’attention pour les voisins, et GIN utilise un agrégateur somme pour atteindre l’expressivité maximale permise par le test de Weisfeiler-Lehman.
En quoi les GNN diffèrent-ils des réseaux de neurones classiques ?
Les CNN supposent une grille fixe et les RNN une séquence ordonnée. Les GNN ne font pas cette hypothèse : ils gèrent des graphes irréguliers et sans ordre où les nœuds ont des nombres variables de voisins, et ils réutilisent les mêmes poids sur tous les nœuds, de sorte qu’un modèle entraîné peut généraliser à de nouveaux graphes.