Graph Neural Networks (GNNs)
Les Réseaux de Neurones sur Graphes (Graph Neural Networks, GNNs) constituent une classe de modèles d’apprentissage profond spécifiquement conçus pour effectuer des inférences et apprendre des représentations à partir de données structurées sous forme de graphes. Contrairement aux réseaux de neurones traditionnels qui opèrent principalement sur des données euclidiennes (comme les images ou les séquences textuelles), les GNNs sont capables de traiter des structures de données plus complexes et arbitraires où les relations entre les entités sont aussi importantes que les entités elles-mêmes.
Les concepts fondamentaux des GNNs reposent sur la structure inhérente des graphes, composés de nœuds (ou sommets) et d’arêtes (ou liens) qui connectent ces nœuds. Chaque nœud et chaque arête peuvent posséder des attributs ou des caractéristiques. Le principe essentiel des GNNs est l’apprentissage de représentations de nœuds (node embeddings) en propageant et en agrégeant itérativement des informations entre les nœuds voisins. Ce processus est souvent formalisé dans le cadre des Réseaux de Neurones à Passage de Messages (Message Passing Neural Networks, MPNN). Dans ce cadre, chaque nœud envoie des « messages » (transformations de ses propres caractéristiques et/ou des caractéristiques des arêtes) à ses voisins. Chaque nœud agrège ensuite les messages reçus de son voisinage (par exemple, par une somme, une moyenne ou une fonction maximum) et met à jour sa propre représentation en combinant l’information agrégée avec sa représentation précédente, typiquement via une fonction non-linéaire comme un petit réseau de neurones. En empilant plusieurs couches de GNN, un nœud peut intégrer des informations provenant de voisins de plus en plus éloignés, capturant ainsi des dépendances contextuelles à différentes échelles. Une propriété clé de nombreux GNNs est leur invariance ou équivariance aux permutations, signifiant que l’ordre des nœuds dans la représentation du graphe n’affecte pas la sortie (pour la classification de graphes) ou que la sortie change de manière prévisible avec les permutations (pour la classification de nœuds).
L’importance des GNNs réside dans leur capacité unique à modéliser et à exploiter les dépendances relationnelles présentes dans une multitude de systèmes naturels et artificiels. De nombreux domaines scientifiques et industriels manipulent des données qui se prêtent naturellement à une représentation sous forme de graphe, tels que les réseaux sociaux, les molécules, les réseaux de citations, les réseaux biologiques ou les systèmes de recommandation. Avant l’avènement des GNNs, l’analyse de telles données reposait souvent sur des méthodes d’ingénierie des caractéristiques manuelles ou des techniques de noyaux sur graphes, qui pouvaient être limitées en termes de performance et de scalabilité. Les GNNs ont permis des avancées significatives en automatisant l’apprentissage de représentations pertinentes directement à partir de la structure du graphe et des caractéristiques des nœuds/arêtes. Leur impact est considérable, ouvrant de nouvelles perspectives pour la découverte scientifique (par exemple, en accélérant la découverte de médicaments ou la compréhension des interactions protéiques) et pour des applications industrielles innovantes (comme l’amélioration des systèmes de recommandation ou la détection de fraudes financières).
Les applications pratiques des GNNs sont vastes et en croissance continue. Dans le domaine des réseaux sociaux, ils sont utilisés pour la détection de communautés, la prédiction de liens (suggérer de nouveaux amis ou connexions), et la classification d’utilisateurs (par exemple, identifier des influenceurs ou des comportements malveillants). En chémioinformatique et en découverte de médicaments, les GNNs prédisent les propriétés moléculaires, les interactions médicament-médicament, ou l’activité biologique de nouvelles molécules, en traitant les molécules comme des graphes où les atomes sont des nœuds et les liaisons chimiques des arêtes. Les systèmes de recommandation bénéficient des GNNs pour modéliser les interactions complexes entre utilisateurs et articles, conduisant à des suggestions plus personnalisées. En vision par ordinateur, ils peuvent être utilisés pour la reconnaissance d’objets en modélisant les relations spatiales entre les parties d’une image, ou pour la segmentation sémantique de scènes complexes. Dans le traitement du langage naturel, les GNNs analysent des graphes de connaissances, des structures syntaxiques ou des réseaux de cooccurrence de mots. D’autres applications incluent la modélisation de systèmes physiques (comme la simulation de particules), la détection de fraudes dans les transactions financières, l’optimisation de réseaux de transport, et la cybersécurité pour la détection d’anomalies ou de réseaux de bots.
Il existe de nombreuses nuances et variations du concept de GNN. Différentes architectures ont été proposées, chacune avec ses spécificités. Les Graph Convolutional Networks (GCNs) adaptent l’opération de convolution aux graphes, souvent en se basant sur des approximations spectrales de la théorie des graphes ou des agrégations spatiales directes. Les Graph Attention Networks (GATs) introduisent des mécanismes d’attention qui permettent aux nœuds d’attribuer des poids d’importance différents à leurs voisins lors de l’agrégation des informations. GraphSAGE (Graph SAmple and aggreGatE) est une architecture inductive qui apprend des fonctions d’agrégation générales en échantillonnant un nombre fixe de voisins, ce qui lui permet de généraliser à des nœuds non vus pendant l’entraînement. Les Message Passing Neural Networks (MPNNs) offrent un cadre général qui unifie de nombreuses variantes de GNNs. Les Graph Isomorphism Networks (GINs) ont été développées pour analyser la puissance expressive des GNNs, cherchant à atteindre la capacité maximale de distinction des structures de graphes. Les GNNs peuvent également être adaptés pour traiter différents types de graphes : homogènes (tous les nœuds et arêtes sont du même type) ou hétérogènes (nœuds et arêtes de types multiples), statiques ou dynamiques (où la structure du graphe ou les caractéristiques évoluent dans le temps). Les tâches d’apprentissage sur graphes sont également variées, incluant la classification de nœuds, la classification ou la régression de graphes entiers, la prédiction de liens entre les nœuds, le clustering de nœuds, et même la génération de nouvelles structures de graphes.
Plusieurs concepts sont étroitement liés aux GNNs. L’apprentissage profond et les réseaux de neurones en constituent la base algorithmique. La théorie des graphes fournit le formalisme mathématique pour décrire les données. Les plongements de graphes (graph embeddings) sont un concept connexe, où l’objectif est d’apprendre des représentations vectorielles de basse dimension pour les nœuds ou les graphes entiers ; les GNNs sont une méthode puissante pour générer de tels plongements. L’apprentissage de représentations est un thème central. Les GNNs peuvent être utilisés dans des contextes d’apprentissage supervisé, non supervisé ou par renforcement. Les noyaux de graphes (graph kernels) sont des approches alternatives plus anciennes pour comparer des graphes. Bien que parfois utilisés de manière interchangeable, des termes comme « graph embedding methods » ou « network representation learning » peuvent désigner des approches plus larges ou plus spécifiques que les GNNs. En termes d’antonymes, on pourrait considérer les modèles qui traitent les données comme indépendantes et identiquement distribuées (i.i.d.), ignorant ainsi les structures relationnelles, ou les méthodes d’apprentissage automatique classiques appliquées à des données tabulaires où les relations ne sont pas explicitement modélisées.
L’origine des GNNs remonte à des travaux précurseurs dès les années 1990 et 2000, qui exploraient l’application des réseaux de neurones à des données structurées. Des chercheurs comme Alessandro Sperduti, Antonina Starita, Marco Gori, et Franco Scarselli ont posé les premières fondations. Notamment, l’article de Scarselli et al. en 2009, « The Graph Neural Network Model », a introduit une formulation précoce et influente. Cependant, c’est avec la renaissance de l’apprentissage profond dans les années 2010 que les GNNs ont véritablement pris leur essor. Des développements clés incluent les Graph Convolutional Networks (GCNs), popularisés par les travaux de Joan Bruna et al. (2014) sur les convolutions spectrales, et plus tard par Thomas Kipf et Max Welling (2017) avec une simplification efficace et scalable. D’autres architectures marquantes comme GraphSAGE (Hamilton et al., 2017) et les Graph Attention Networks (GATs) (Veličković et al., 2018) ont suivi, élargissant les capacités et les applications des GNNs. La standardisation des benchmarks et le développement de bibliothèques logicielles dédiées (telles que PyTorch Geometric et Deep Graph Library – DGL) ont grandement facilité la recherche et l’adoption des GNNs. La recherche actuelle se concentre sur l’amélioration de leur scalabilité, la gestion des graphes dynamiques et hétérogènes, l’explicabilité des modèles, et leur robustesse.
Les GNNs offrent de nombreux avantages. Leur capacité à traiter nativement les données relationnelles et structurées en graphe est leur atout majeur. Ils prennent en compte les dépendances entre les entités, ce qui conduit souvent à des performances supérieures par rapport aux méthodes qui ignorent ces relations. De nombreuses architectures de GNNs sont intrinsèquement invariantes aux permutations des nœuds, ce qui est une propriété souhaitable pour les données de graphes. Ils apprennent des représentations riches et informatives des nœuds et des graphes, souvent de manière de bout en bout. Cependant, les GNNs présentent aussi des inconvénients et des défis. Le phénomène de « sur-lissage » (oversmoothing) est un problème courant où, après l’empilement de nombreuses couches, les représentations des nœuds tendent à devenir indiscernables, limitant la profondeur effective des modèles. La scalabilité à de très grands graphes (avec des milliards de nœuds et d’arêtes) reste un défi computationnel et mémoriel important, bien que des techniques d’échantillonnage et de partitionnement soient développées pour y remédier. La gestion des graphes dynamiques, dont la structure ou les caractéristiques changent au fil du temps, est un domaine de recherche actif. Les graphes hétérogènes, avec différents types de nœuds et d’arêtes, ajoutent une complexité supplémentaire à la modélisation. La généralisation à des graphes non vus ou significativement différents de ceux rencontrés pendant l’entraînement (généralisation hors distribution) peut être limitée. L’explicabilité et l’interprétabilité des décisions prises par les GNNs sont cruciales pour les applications critiques, mais restent difficiles à obtenir. Enfin, comme d’autres modèles d’apprentissage profond, les GNNs peuvent être vulnérables aux attaques adverses. La nécessité de disposer d’une structure de graphe explicite peut aussi être une limitation si cette structure n’est pas naturellement présente ou est difficile à inférer.