Un réseau d'attention par graphes (GAT) est un type de réseau de neurones pour graphes (GNN) qui intègre des mécanismes d'attention dans le processus de passage de messages. Dans les GNN standards, chaque nœud met à jour sa représentation en agrégeant les informations de ses voisins, souvent avec des poids égaux ou prédéfinis. Les GAT calculent plutôt des coefficients d'attention qui attribuent une importance différente à chaque voisin, permettant au modèle de se concentrer sur les parties les plus pertinentes du graphe pour une tâche donnée. Cette approche, introduite par Petar Veličković et ses collègues en 2018, est devenue une architecture fondamentale en apprentissage profond géométrique et est largement utilisée dans des applications allant de l'analyse des réseaux sociaux à la prédiction de propriétés moléculaires.
L'idée centrale des GAT est d'appliquer le mécanisme d'attention, initialement popularisé dans les modèles Transformer (architecture) pour le traitement du langage naturel, aux données structurées en graphes. Dans un transformer, les poids d'attention sont calculés entre toutes les paires de jetons d'une séquence. Dans un GAT, l'attention n'est calculée qu'entre un nœud et ses voisins immédiats, ce qui en fait une opération localisée et équivariante par permutation. Cette conception préserve la propriété clé des GNN : la sortie est invariante à l'ordre des nœuds, ce qui est crucial car les graphes n'ont pas d'ordre canonique des nœuds.
Contexte : Réseaux de neurones pour graphes
Les réseaux de neurones pour graphes sont une classe de réseaux de neurones artificiels conçus pour des tâches où les entrées sont des graphes, tels que les molécules, les réseaux sociaux ou les réseaux de citations. Contrairement aux images ou aux textes, les graphes n'ont pas de grille fixe ou de structure séquentielle, et les nœuds peuvent avoir un nombre variable de connexions. Les GNN abordent cela en utilisant des couches équivariantes par permutation qui mettent à jour les représentations des nœuds par un passage de messages par paires. Chaque nœud agrège les messages de ses voisins, et après plusieurs couches, le champ réceptif s'étend pour inclure des nœuds plus distants.
Une limitation clé des premières architectures GNN, telles que les réseaux convolutifs pour graphes (GCN), est qu'elles traitent tous les voisins de manière égale lors de l'agrégation des informations. Par exemple, dans un graphe moléculaire, un atome de carbone peut être connecté à la fois à un atome d'hydrogène et à un atome d'oxygène, mais l'atome d'oxygène peut être plus significatif chimiquement pour prédire la toxicité. Les GCN attribueraient le même poids aux deux voisins, tandis que les GAT peuvent apprendre à attribuer une attention plus élevée à l'atome d'oxygène.
Mécanisme d'attention dans les GAT
Le mécanisme d'attention dans les GAT fonctionne comme suit. Pour un nœud \(u\) avec un vecteur de caractéristiques \(\mathbf{x}_u\), et son voisin \(v\), le modèle calcule un coefficient d'attention \(e_{uv}\) en utilisant une transformation linéaire partagée et un vecteur de poids apprenable. Ce coefficient est généralement normalisé sur tous les voisins à l'aide d'une fonction softmax, garantissant que les poids d'attention somme à un. Les coefficients normalisés sont ensuite utilisés pour calculer une somme pondérée des caractéristiques transformées des voisins, qui devient la représentation mise à jour du nœud \(u\).
Formellement, le coefficient d'attention est calculé comme suit :
\[ e_{uv} = \text{LeakyReLU}(\mathbf{a}^T [\mathbf{W}\mathbf{x}_u \| \mathbf{W}\mathbf{x}_v]) \]
où \(\mathbf{W}\) est une matrice de poids partagée, \(\mathbf{a}\) est un vecteur apprenable, et \(\|\\) désigne la concaténation. Les coefficients sont normalisés à l'aide de softmax sur tous les voisins \(v \in N_u\). La représentation mise à jour du nœud est alors :
\[ \mathbf{h}_u = \sigma\left(\sum_{v \in N_u} \alpha_{uv} \mathbf{W}\mathbf{x}_v\right) \]
où \(\alpha_{uv}\) sont les coefficients d'attention normalisés et \(\sigma\) est une non-linéarité.
Ce mécanisme est analogue à l'attention multi-têtes dans les transformers, où plusieurs têtes d'attention indépendantes sont utilisées pour capturer différents types de relations. Dans les GAT, l'attention multi-têtes peut être appliquée en calculant plusieurs agrégations pondérées par attention en parallèle et en concaténant ou en moyennant leurs sorties. Cela augmente la puissance expressive du modèle et stabilise l'entraînement.
Variantes architecturales
Plusieurs variantes de GAT ont été proposées depuis l'article original de 2018. Une variante notable est GATv2, introduite en 2021, qui corrige une limitation du GAT original où les coefficients d'attention sont calculés à l'aide d'une opération linéaire après concaténation. GATv2 utilise un mécanisme d'attention plus expressif qui permet au modèle de calculer des scores d'attention plus sensibles aux caractéristiques d'entrée, améliorant les performances sur des tâches nécessitant une discrimination fine.
Une autre variante est le réseau d'attention par graphes avec caractéristiques d'arêtes, qui intègre les caractéristiques des arêtes dans le calcul de l'attention. Dans les graphes moléculaires, les caractéristiques des arêtes peuvent représenter les types de liaisons (simple, double, aromatique), et leur intégration permet au modèle de pondérer les voisins différemment selon la nature de leur connexion. Cela est particulièrement utile dans les applications en chimie et en biologie.
De plus, les GAT peuvent être combinés avec d'autres composants GNN tels que les connexions résiduelles et la normalisation de couche pour améliorer la stabilité de l'entraînement et les performances. Ces améliorations sont courantes dans les architectures GNN modernes.
Applications
Les GAT ont été appliqués à un large éventail de domaines. En biologie moléculaire et en découverte de médicaments, les GAT sont utilisés pour prédire les propriétés moléculaires, telles que la solubilité, la toxicité ou l'efficacité contre des bactéries spécifiques comme E. coli. Les molécules sont représentées comme des graphes avec des atomes comme nœuds et des liaisons comme arêtes, et les GAT peuvent apprendre à se concentrer sur les groupes fonctionnels critiques pour l'activité biologique.
Dans l'analyse des réseaux sociaux, les GAT sont utilisés pour la classification des nœuds et la prédiction de liens. Par exemple, dans un réseau de citations, les GAT peuvent classer les articles en sujets de recherche en prêtant attention aux articles citants les plus influents. Dans les systèmes de recommandation, les GAT peuvent modéliser les interactions utilisateur-article comme un graphe biparti, où l'attention aide à identifier les articles les plus pertinents pour un utilisateur.
Les GAT sont également utilisés en vision par ordinateur pour des tâches telles que la détection d'objets et la génération de graphes de scènes, où les images sont représentées comme des graphes d'objets et de leurs relations. En physique, les GAT ont été appliqués à la reconstruction de trajectoires de particules et à la modélisation de systèmes dynamiques.
Relation avec les transformers
Il existe une relation étroite entre les GAT et les modèles Transformer (architecture). Comme noté dans un article de position de 2022 sur l'apprentissage profond géométrique, une couche de transformer peut être interprétée comme un GNN appliqué à un graphe complet où chaque jeton est connecté à tous les autres jetons. Dans cette vue, le mécanisme d'auto-attention dans les transformers est une forme de passage de messages avec des poids d'attention. Inversement, les GAT peuvent être vus comme des transformers adaptés à des structures de graphes arbitraires, où l'attention est restreinte aux arêtes existantes plutôt qu'à toutes les paires.
Cette connexion a conduit à une pollinisation croisée entre les deux domaines. Des techniques développées pour les transformers, telles que les encodages positionnels et l'attention croisée, ont été adaptées pour les GNN. Par exemple, les encodages positionnels basés sur les vecteurs propres du laplacien du graphe peuvent fournir des informations structurelles qui complètent le passage de messages basé sur l'attention.
Implémentations et bibliothèques
Plusieurs bibliothèques open-source implémentent les GAT et d'autres architectures GNN. PyTorch Geometric (PyG) est une bibliothèque populaire construite sur PyTorch qui fournit des implémentations efficaces des couches GAT, ainsi que des utilitaires pour gérer les données de graphes. TensorFlow GNN offre une fonctionnalité similaire pour l'écosystème TensorFlow. La Deep Graph Library (DGL) est une bibliothèque indépendante du framework qui prend en charge les backends PyTorch et TensorFlow. Pour les utilisateurs de JAX, la bibliothèque jraph fournit des implémentations GNN, et pour les utilisateurs de Julia, GraphNeuralNetworks.jl et GeometricFlux.jl sont disponibles.
Ces bibliothèques incluent généralement des couches GAT préconstruites qui peuvent être facilement intégrées dans des modèles personnalisés. Elles fournissent également des ensembles de données et des benchmarks pour évaluer les GNN, tels que les réseaux de citations (Cora, CiteSeer) et les ensembles de données de prédiction de propriétés moléculaires.
Limitations et extensions
Comme tous les GNN à passage de messages, les GAT sont soumis aux limites de puissance expressive du test d'isomorphisme de graphes de Weisfeiler-Lehman. Cela signifie qu'il existe des paires de graphes non isomorphes que les GAT ne peuvent pas distinguer, ce qui peut être une limitation pour des tâches nécessitant une discrimination structurelle fine. Pour surmonter cela, les chercheurs ont proposé des GNN d'ordre supérieur qui opèrent sur des complexes simpliciaux ou utilisent des transformers de graphes avec attention globale, bien que cela s'accompagne souvent d'un coût computationnel accru.
Une autre limitation est l'évolutivité. Calculer l'attention sur tous les voisins peut être coûteux pour les graphes avec des nœuds de haut degré, bien que cela soit généralement moins sévère que le coût quadratique des transformers complets. Des techniques telles que l'échantillonnage des voisins ou l'utilisation d'attention éparse peuvent atténuer ce problème.
En 2024, les GAT restent une architecture largement utilisée et activement recherchée. Leur capacité à pondérer de manière adaptative l'importance des voisins en a fait un outil standard dans la boîte à outils GNN, et ils continuent d'inspirer de nouvelles variantes et applications dans le apprentissage automatique et l'intelligence artificielle.