{"notes":[{"id":"graph-learning/graphgps","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"GraphGPS","subtitle":"Un GPS sur le graphe","author":"Z. Yuan","paperDate":"2022-05-25","publishedOn":"2025-09-09","world":"external/graphgps","paperTitle":"Recipe for a General, Powerful, Scalable Graph Transformer","paperUrl":"https://arxiv.org/abs/2205.12454","bibliography":{"title":"Recipe for a General, Powerful, Scalable Graph Transformer","authors":["Ladislav Rampášek","Mikhail Galkin","Vijay Prakash Dwivedi","Anh Tuan Luu","Guy Wolf","Dominique Beaini"],"url":"https://arxiv.org/abs/2205.12454","pdfUrl":"https://arxiv.org/pdf/2205.12454v4","codeUrl":"https://github.com/rampasek/GraphGPS","preprint":{"id":"2205.12454","submittedOn":"2022-05-25","url":"https://arxiv.org/abs/2205.12454"},"publication":{"venue":"NeurIPS","year":2022,"kind":"conference","url":"https://proceedings.neurips.cc/paper_files/paper/2022/hash/5d4834a159f1547b267a05a4e2b7cf5e-Abstract-Conference.html"},"citation":"@misc{graphlearninggraphgps2022,\n  title = {{Recipe for a General, Powerful, Scalable Graph Transformer}},\n  author = {Ladislav Rampášek and Mikhail Galkin and Vijay Prakash Dwivedi and Anh Tuan Luu and Guy Wolf and Dominique Beaini},\n  year = {2022},\n  eprint = {2205.12454},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2205.12454}\n}\n","citationPath":"/content/papers/citations/graph-learning/graphgps.053e58fd5309.bib"},"thumbnail":{"src":"/content/papers/assets/e4177a894582643d7811bced6f6c6cf8bb51ff7738da4af5d98115883e1a4bb8.png","width":1116,"height":798},"locale":"fr","path":"/content/papers/fr/graph-learning/graphgps.e64f8dec7145.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"position-et-structure","text":"Position et structure","depth":3},{"id":"pourquoi-les-messages-en-ont-besoin","text":"Pourquoi les messages en ont besoin","depth":3},{"id":"propager-avant-lattention-peut-déjà-perdre-linformation","text":"Propager avant l'attention peut déjà perdre l'information","depth":3},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"trois-ingrédients","text":"Trois ingrédients","depth":3},{"id":"une-couche-gps","text":"Une couche GPS","depth":3},{"id":"une-complexité-linéaire","text":"Une complexité linéaire","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"ablation--le-poids-de-chaque-voie","text":"Ablation : le poids de chaque voie","depth":3},{"id":"comparaison-aux-autres-modèles","text":"Comparaison aux autres modèles","depth":3},{"id":"une-réévaluation-un-an-plus-tard","text":"Une réévaluation, un an plus tard","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/graph-transformer","relation":"referenced","topic":""},{"id":"graph-learning/san","relation":"referenced","topic":""},{"id":"graph-learning/graphormer","relation":"referenced","topic":""}]},{"id":"graph-learning/graph-transformer","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Graph Transformer","subtitle":"Tout connecter aggrave les choses","author":"Z. Yuan","paperDate":"2020-12-17","publishedOn":"2024-03-13","paperTitle":"A Generalization of Transformer Networks to Graphs","paperUrl":"https://arxiv.org/abs/2012.09699","bibliography":{"title":"A Generalization of Transformer Networks to Graphs","authors":["Vijay Prakash Dwivedi","Xavier Bresson"],"url":"https://arxiv.org/abs/2012.09699","pdfUrl":"https://arxiv.org/pdf/2012.09699v2","codeUrl":"https://github.com/graphdeeplearning/graphtransformer","preprint":{"id":"2012.09699","submittedOn":"2020-12-17","url":"https://arxiv.org/abs/2012.09699"},"publication":{"venue":"AAAI Workshop on Deep Learning on Graphs","shortVenue":"DLG-AAAI","year":2021,"kind":"workshop","url":"https://arxiv.org/abs/2012.09699v2"},"citation":"@misc{graphlearninggraphtransformer2020,\n  title = {{A Generalization of Transformer Networks to Graphs}},\n  author = {Vijay Prakash Dwivedi and Xavier Bresson},\n  year = {2020},\n  eprint = {2012.09699},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2012.09699}\n}\n","citationPath":"/content/papers/citations/graph-learning/graph-transformer.4e2f841bbbf0.bib"},"thumbnail":{"src":"/content/papers/assets/0540122812c6e6914f22240411cf2d172a94764bf8a0e6f6ab2cdae7c618f9fb.png","width":1324,"height":1000},"locale":"fr","path":"/content/papers/fr/graph-learning/graph-transformer.ef239bb32b2b.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"lattention-entre-voisins-seulement","text":"L'attention entre voisins seulement","depth":3},{"id":"encodage-positionnel-laplacien","text":"Encodage positionnel laplacien","depth":3},{"id":"caractéristiques-darêtes-et-normalisation","text":"Caractéristiques d'arêtes et normalisation","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"protocole-expérimental","text":"Protocole expérimental","depth":3},{"id":"que-donne-la-connexion-complète-","text":"Que donne la connexion complète ?","depth":3},{"id":"encodage-positionnel-et-batchnorm","text":"Encodage positionnel et BatchNorm","depth":3},{"id":"comparaison-aux-gnn","text":"Comparaison aux GNN","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/san","relation":"referenced","topic":""},{"id":"graph-learning/graphgps","relation":"referenced","topic":""}]},{"id":"graph-learning/san","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"SAN","subtitle":"Entendre la forme du graphe","author":"Z. Yuan","paperDate":"2021-06-07","publishedOn":"2024-03-22","world":"external/san","paperTitle":"Rethinking Graph Transformers with Spectral Attention","paperUrl":"https://arxiv.org/abs/2106.03893","bibliography":{"title":"Rethinking Graph Transformers with Spectral Attention","authors":["Devin Kreuzer","Dominique Beaini","William L. Hamilton","Vincent Létourneau","Prudencio Tossou"],"url":"https://arxiv.org/abs/2106.03893","pdfUrl":"https://arxiv.org/pdf/2106.03893v3","codeUrl":"https://github.com/DevinKreuzer/SAN","preprint":{"id":"2106.03893","submittedOn":"2021-06-07","url":"https://arxiv.org/abs/2106.03893"},"publication":{"venue":"NeurIPS","year":2021,"kind":"conference","url":"https://proceedings.neurips.cc/paper/2021/hash/b4fd1d2cb085390fbbadae65e07876a7-Abstract.html"},"citation":"@misc{graphlearningsan2021,\n  title = {{Rethinking Graph Transformers with Spectral Attention}},\n  author = {Devin Kreuzer and Dominique Beaini and William L. Hamilton and Vincent Létourneau and Prudencio Tossou},\n  year = {2021},\n  eprint = {2106.03893},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2106.03893}\n}\n","citationPath":"/content/papers/citations/graph-learning/san.e69e469c3b91.bib"},"thumbnail":{"src":"/content/papers/assets/239f3ac016f803fed4fedec5cad345c48bc6b97791249f0e5cfdf2efd433b5c2.png","width":1280,"height":840},"locale":"fr","path":"/content/papers/fr/graph-learning/san.efc40fb3a1b7.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"apprendre-les-positions","text":"Apprendre les positions","depth":3},{"id":"tout-connecter-avec-deux-attentions-distinctes","text":"Tout connecter, avec deux attentions distinctes","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"quelle-valeur-pour-gamma-","text":"Quelle valeur pour \\gamma ?","depth":3},{"id":"lapport-séparé-de-la-connexion-complète-et-du-lpe","text":"L'apport séparé de la connexion complète et du LPE","depth":3},{"id":"face-aux-meilleurs-modèles-de-lépoque","text":"Face aux meilleurs modèles de l'époque","depth":3},{"id":"le-prix","text":"Le prix","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/graph-transformer","relation":"referenced","topic":""}]},{"id":"graph-learning/graphormer","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Graphormer","subtitle":"Pas si mauvais, finalement","author":"Z. Yuan","paperDate":"2021-06-09","publishedOn":"2024-03-28","world":"external/graphormer","paperTitle":"Do Transformers Really Perform Bad for Graph Representation?","paperUrl":"https://arxiv.org/abs/2106.05234","bibliography":{"title":"Do Transformers Really Perform Bad for Graph Representation?","authors":["Chengxuan Ying","Tianle Cai","Shengjie Luo","Shuxin Zheng","Guolin Ke","Di He","Yanming Shen","Tie-Yan Liu"],"url":"https://arxiv.org/abs/2106.05234","pdfUrl":"https://arxiv.org/pdf/2106.05234v5","codeUrl":"https://github.com/Microsoft/Graphormer","preprint":{"id":"2106.05234","submittedOn":"2021-06-09","url":"https://arxiv.org/abs/2106.05234"},"publication":{"venue":"NeurIPS","year":2021,"kind":"conference","url":"https://proceedings.neurips.cc/paper/2021/hash/f1c1592588411002af340cbaedd6fc33-Abstract.html"},"citation":"@misc{graphlearninggraphormer2021,\n  title = {{Do Transformers Really Perform Bad for Graph Representation?}},\n  author = {Chengxuan Ying and Tianle Cai and Shengjie Luo and Shuxin Zheng and Guolin Ke and Di He and Yanming Shen and Tie-Yan Liu},\n  year = {2021},\n  eprint = {2106.05234},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2106.05234}\n}\n","citationPath":"/content/papers/citations/graph-learning/graphormer.23b94dbe8ef3.bib"},"thumbnail":{"src":"/content/papers/assets/c2a2e0893f98e2ed6d93e1f4ee87040eeffbc63c4b955e6a319700c5e87f1847.png","width":872,"height":620},"locale":"fr","path":"/content/papers/fr/graph-learning/graphormer.d3f350c38e71.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"encodage-de-centralité","text":"Encodage de centralité","depth":3},{"id":"encodage-spatial","text":"Encodage spatial","depth":3},{"id":"encodage-des-arêtes","text":"Encodage des arêtes","depth":3},{"id":"autres-détails","text":"Autres détails","depth":3},{"id":"quels-gnn-peut-il-représenter-","text":"Quels GNN peut-il représenter ?","depth":3},{"id":"plus-fort-que-wl","text":"Plus fort que WL","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"pcqm4m-lsc","text":"PCQM4M-LSC","depth":3},{"id":"autres-jeux-de-données","text":"Autres jeux de données","depth":3},{"id":"lapport-de-chaque-encodage","text":"L'apport de chaque encodage","depth":3},{"id":"le-prix","text":"Le prix","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/graph-transformer","relation":"referenced","topic":""},{"id":"graph-learning/san","relation":"referenced","topic":""}]}],"text":"En 2021, Graphormer remporte la compétition de chimie quantique OGB-LSC avec un Transformer. Les Graph Transformers suscitent soudain beaucoup d'intérêt.\n\nL'idée est facile à suivre. En laissant chaque nœud regarder directement tous les autres, le Transformer semble contourner d'un coup les vieux blocages : surlissage en profondeur, over-squashing à longue portée, discrimination bornée par WL.\n\nMais les Graph Transformers partent alors dans tous les sens : vecteurs propres du laplacien comme positions, distances de plus court chemin comme biais, couches de messages placées avant l'attention. Aucun cadre commun ne dit ce qui aide vraiment ni pourquoi. Et l'attention globale en $O(N^2)$ limite souvent les modèles à quelques centaines de nœuds.\n\n\n> [!TIP]\n> \n> Pour GT à attention locale et positions laplaciennes, SAN entièrement connecté à deux attentions, et Graphormer à biais de plus court chemin, voir nos notes :\n> \n> - **[[20.12] Graph Transformer : Tout connecter aggrave les choses](/blog/papers/graph-learning/graph-transformer)**\n> - **[[21.06] SAN : Entendre la forme du graphe](/blog/papers/graph-learning/san)**\n> - **[[21.06] Graphormer : Pas si mauvais, finalement](/blog/papers/graph-learning/graphormer)**\n\n\nLadislav Rampášek et Mikhail Galkin, de Mila, avec Vijay Prakash Dwivedi de Nanyang et leurs collègues, veulent en tirer une recette. GPS signifie ici General, Powerful, Scalable : général, puissant, extensible.\n\n## Poser le problème\n\n### Position et structure\n\nLe Transformer ne voit pas le graphe. Une fois tous les nœuds reliés, il ignore leurs adjacences initiales : il faut lui donner ces informations séparément.\n\nLes auteurs les divisent d'abord en deux catégories :\n\n- **Encodage positionnel (PE)** : décrit la « position » d'un nœud ; deux nœuds proches devraient avoir des PE proches. Les vecteurs propres du laplacien, LapPE, sont un choix courant.\n- **Encodage structurel (SE)** : décrit la structure autour d'un nœud ou du graphe entier. Deux nœuds dont les sous-graphes environnants se ressemblent devraient avoir des SE proches. RWSE, la diagonale de la puissance $m$ de la transition aléatoire, donne la probabilité de revenir au départ en $m$ pas.\n\nChaque catégorie se divise en local, global et relatif. Les valeurs propres du laplacien sont par exemple un SE global ; l'appartenance de deux nœuds à une même sous-structure, un SE relatif. Les auteurs classent les méthodes dans un tableau et recommandent de placer PE et SE sur les nœuds ou les vraies arêtes pour accepter une attention linéaire.\n\n### Pourquoi les messages en ont besoin\n\nLe passage de messages standard discrimine comme le test 1-WL. Les auteurs illustrent cela par des Circular Skip Link : WL colore tous les nœuds pareil dans deux graphes non isomorphes, et aucun réseau à messages ne les distingue. Un PE global leur donne dès l'entrée des couleurs uniques ; un RWSE local distingue aussi les sauts des deux graphes.\n\nCes informations doivent donc être fournies séparément : le passage de messages seul ne les extrait pas de la structure.\n\nPrenons plus petit : un hexagone et deux triangles disjoints sur six nœuds. Tous les nœuds ont deux voisins, WL échoue. Calculons RWSE :\n\n```python\nimport numpy as np\nnp.set_printoptions(precision=3, suppress=True)\n\ndef graph(edges, n=6):\n    A = np.zeros((n, n))\n    for i, j in edges:\n        A[i, j] = A[j, i] = 1\n    return A\n\nhexagon = graph([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0)])\ntwo_triangles = graph([(0, 1), (1, 2), (2, 0), (3, 4), (4, 5), (5, 3)])\n\ndef rwse(A, steps=4):\n    P = A / A.sum(1, keepdims=True)                  # Transition de marche aléatoire D^-1 A\n    return np.stack([np.diag(np.linalg.matrix_power(P, m)) for m in range(1, steps + 1)], axis=1)\n\nprint(\"Hexagone       nœud 0:\", rwse(hexagon)[0])\nprint(\"Deux triangles nœud 0:\", rwse(two_triangles)[0])\n```\n\n```text\nHexagone       nœud 0: [0.    0.5   0.    0.375]\nDeux triangles nœud 0: [0.    0.5   0.25  0.375]\n```\n\nLe troisième nombre fait la différence : revenir en 3 pas a une probabilité de 0.25 dans le triangle et 0 dans l'hexagone, qui n'a pas de cycle de longueur 3. Les auteurs remarquent aussi que pour $m$ impair, RWSE peut détecter la présence du nœud dans un cycle de longueur $m$.\n\n### Propager avant l'attention peut déjà perdre l'information\n\nUne autre architecture, comme GraphTrans, empile des couches de messages avant le Transformer. Les auteurs y voient un risque : ces premières couches ont déjà leurs limites d'expressivité, de surlissage et d'over-squashing. Une information perdue dès le début reste inaccessible à l'attention suivante.\n\nLa réussite de « convolution puis Transformer » en vision vient de la forte expressivité de la convolution sur grille. Les auteurs doutent que le même raisonnement se transpose aux graphes.\n\n## Résoudre le problème\n\n### Trois ingrédients\n\nLa recette GPS comporte trois parties :\n\n1. **Encodages positionnels et structurels** : ajoutés aux caractéristiques de nœuds ou d'arêtes en entrée.\n2. **Passage de messages local** : suit seulement les vraies arêtes et traite leurs caractéristiques.\n3. **Attention globale** : laisse chaque nœud regarder tous les autres.\n\nChaque ingrédient est interchangeable : GINE, GatedGCN ou PNA pour les messages ; Transformer standard, Performer ou BigBird pour l'attention.\n\n[![Figure 1 de l'article : architecture GPS modulaire. À gauche, positions, structure et caractéristiques du graphe sont traitées par MLP, DeepSet ou SignNet, puis ajoutées aux nœuds et arêtes. À droite, chaque couche GPS, répétée L fois, applique en parallèle un passage de messages au choix (GINE, GatedGCN, PNA) et une attention globale au choix (Transformer, Performer, BigBird), additionne leurs sorties puis applique un MLP à deux couches.](/content/papers/assets/e4177a894582643d7811bced6f6c6cf8bb51ff7738da4af5d98115883e1a4bb8.png)](/content/papers/assets/e4177a894582643d7811bced6f6c6cf8bb51ff7738da4af5d98115883e1a4bb8.png)\n\n*Figure 1 de l'article (Rampášek et al.), extraite de la [**page 3 du PDF**](https://arxiv.org/pdf/2205.12454v4#page=3). Légende originale omise.*\n\n### Une couche GPS\n\nLes deux voies travaillent en parallèle, puis leurs sorties sont additionnées et traversent un MLP :\n\n$$\nX_M^{\\ell+1},\\,E^{\\ell+1}=\\mathrm{MPNN}_e^{\\ell}\\left(X^\\ell,E^\\ell,A\\right)\n$$\n\n$$\nX_T^{\\ell+1}=\\mathrm{GlobalAttn}^{\\ell}\\left(X^\\ell\\right)\n$$\n\n$$\nX^{\\ell+1}=\\mathrm{MLP}^{\\ell}\\left(X_M^{\\ell+1}+X_T^{\\ell+1}\\right)\n$$\n\nLes arêtes entrent seulement dans la voie de messages. Ces équations omettent les résidus et BatchNorm, présents dans les deux voies de l'implémentation.\n\nReprenons les deux graphes et écrivons une couche GPS aléatoire : somme des voisins pour les messages, attention Transformer à une tête, puis somme de tous les nœuds pour représenter le graphe.\n\n```python\nrng = np.random.default_rng(0)\nd = 4\nW_in = rng.normal(size=(4, d))                       # Projeter l'entrée en dimension d\nWm, Wq, Wk, Wv = (rng.normal(size=(d, d)) for _ in range(4))\nW1, W2 = rng.normal(size=(d, 2 * d)), rng.normal(size=(2 * d, d))\n\ndef gps_layer(X, A):\n    X_M = X + np.maximum((A @ X) @ Wm, 0)            # Local : somme des voisins et résidu\n    Q, K, V = X @ Wq, X @ Wk, X @ Wv\n    S = Q @ K.T / np.sqrt(d)\n    att = np.exp(S - S.max(1, keepdims=True))\n    att /= att.sum(1, keepdims=True)                 # Global : chaque nœud regarde tous les autres\n    X_T = X + att @ V\n    H = X_M + X_T                                    # Additionner les deux voies\n    return H + np.maximum(H @ W1, 0) @ W2            # Puis un MLP\n\ndef embed(A, use_rwse):\n    feats = rwse(A) if use_rwse else np.ones((len(A), 4))\n    return gps_layer(feats @ W_in, A).sum(0)        # sum readout\n\nfor use in (False, True):\n    same = np.allclose(embed(hexagon, use), embed(two_triangles, use))\n    print(\"Avec RWSE\" if use else \"Sans encodage\", \"→ représentations identiques:\", same)\n```\n\n```text\nSans encodage → représentations identiques: True\nAvec RWSE → représentations identiques: False\n```\n\nCe résultat mérite une pause. Sans encodage, même l'attention globale ne sépare pas les graphes : toutes les entrées étant égales, elle ne fait que moyenner. Voir tout le graphe ou seulement les voisins ne change rien. RWSE renseigne dès l'entrée sur la présence dans un triangle, et la même couche GPS peut enfin les distinguer.\n\n### Une complexité linéaire\n\nLes messages coûtent $O(E)$. L'attention globale standard coûte $O(N^2)$ ; une variante linéaire comme Performer donne $O(N)$. PE et SE étant sur les nœuds et les vraies arêtes, dont les caractéristiques n'entrent pas dans l'attention globale, aucune matrice complète d'attention n'est requise. Pour des graphes creux moléculaires ou de connaissances, arêtes et nœuds sont proportionnels : le total est $O(N)$, hors décomposition laplacienne de prétraitement.\n\nEn pratique, sur ogbg-molpcba, un modèle d'environ 6 millions de paramètres prend 196 secondes par époque, contre 883 pour SAN sur le même type de GPU.\n\nLes auteurs prouvent aussi qu'avec les composants appropriés, l'architecture conserve l'information des arêtes et approxime universellement les fonctions sur graphes.\n\n## Discussion\n\n### Ablation : le poids de chaque voie\n\nLes composants sont séparés sur quatre jeux de données :\n\n| Configuration | ZINC MAE ↓ | Sous-ensemble PCQM4Mv2 MAE ↓ | CIFAR10 exactitude ↑ | MalNet-Tiny exactitude ↑ |\n| --- | ---: | ---: | ---: | ---: |\n| GPS complet (Transformer) | 0.070 | 0.1159 | 72.31% | 93.50% |\n| Attention globale Performer | 0.071 | 0.1142 | 70.67% | 92.64% |\n| Attention globale BigBird | 0.071 | 0.1237 | 70.48% | 92.34% |\n| Sans attention globale | 0.070 | 0.1213 | 69.95% | 92.23% |\n| Sans passage de messages | 0.217 | 0.3294 | 68.86% | 73.90% |\n\nRetirer les messages dégrade fortement les quatre jeux ; MalNet-Tiny tombe de 93.50% à 73.90%. Pour les auteurs, les messages sont indispensables : sans eux, aucune voie ne prend les caractéristiques d'arêtes.\n\nL'attention globale dépend davantage du jeu. ZINC reste à 0.070 avec ou sans : sa cible dépend du nombre de sous-structures locales, sans besoin de connexions globales, mais avec un grand besoin d'encodage structurel. Le Transformer aide les trois autres. Performer reste derrière le standard, mais passe à de grands graphes ; BigBird ne gagne significativement rien ici et est plus lent que Performer.\n\nPour les positions et la structure, ZINC donne 0.113 de MAE sans encodage, 0.070 avec RWSE et 0.116 avec LapPE. RWSE apporte des gains réguliers à faible coût ; SignNet est le meilleur encodage pris isolément, mais coûte davantage.\n\n### Comparaison aux autres modèles\n\nSur les cinq jeux de Benchmarking GNNs, GPS obtient 0.070 de MAE sur ZINC, devant GCN à 0.367, GIN à 0.526 et Graphormer à 0.122 ; CIFAR10 donne 72.30%. Il est deuxième sur MNIST et CLUSTER, quatrième sur PATTERN, à quelques dixièmes de point des premiers.\n\nSur les tâches OGB au niveau des graphes, GPS entre dans les trois premiers sur ogbg-molpcba, ogbg-ppa et ogbg-code2 ; les auteurs soulignent qu'il bat tous les autres Graph Transformers. Sur PCQM4Mv2, GPS-medium à 19.4 millions de paramètres atteint 0.0858 de MAE de validation, un peu mieux que Graphormer à 48.3 millions et 0.0864.\n\nSur LRGB, dédié aux dépendances longues, GPS combine GatedGCN, Transformer et LapPE et dépasse toutes les références sur quatre des cinq jeux. La précision moyenne de Peptides-func passe de 0.5930 pour GCN à 0.6535 pour GPS ; le F1 de PascalVOC-SP de 0.1268 à 0.3748.\n\n### Une réévaluation, un an plus tard\n\nCes écarts LRGB seront réexaminés. En septembre 2023, Tönshoff et ses collègues de RWTH Aachen font une recherche élémentaire d'hyperparamètres sur GCN et d'autres références. GCN atteint 0.6860 sur Peptides-func, devant GPS réexécuté à 0.6534. Le point décisif est la tête : remplacer la couche linéaire unique du protocole LRGB par un MLP à deux couches comble l'essentiel de l'écart, alors que GPS change peu. [Tönshoff et al.](https://arxiv.org/abs/2309.00367v2)\n\nEn 2025, Luo et al. ajoutent six techniques, dont résidus, normalisation, FFN et positions, à GCN, GIN et GatedGCN. Sur 14 jeux au niveau des graphes, ils égalent ou dépassent GPS et d'autres Graph Transformers.\n\nAvec le recul, plusieurs ingrédients GPS — positions, structure, résidus, couches feed-forward — se retrouvent parmi les techniques qui feront revenir les GNN classiques.\n\n\n> [!TIP]\n> \n> Pour l'over-squashing visé par GPS, les cinq jeux LRGB et les deux réévaluations, voir nos notes :\n> \n> - **[[20.06] Over-squashing : Ça ne rentre plus](/blog/papers/graph-learning/over-squashing)**\n> - **[[22.06] LRGB : Des épreuves venues de loin](/blog/papers/graph-learning/lrgb)**\n> - **[[23.09] Where Did the Gap Go? : Où est passé l'écart ?](/blog/papers/graph-learning/where-did-the-gap-go)**\n> - **[[25.02] GNN+ : Le vieux coursier en a encore sous le pied](/blog/papers/graph-learning/gnn-plus)**\n\n\n## Conclusion\n\nGraphGPS décompose le Graph Transformer en trois ingrédients interchangeables : positions et structure, messages locaux, attention globale. Retirer les messages dégrade tout ; retirer l'attention coûte selon le besoin de distance ; sans encodage, l'attention ne voit pas davantage les structures invisibles aux messages.\n\nS'il fallait retenir une chose, ce serait peut-être RWSE. Quelques produits creux suffisent, et il s'ajoute à faible coût à l'entrée de n'importe quel GNN.\n\nSur ZINC au moins, retirer toute l'attention globale ne change aucune décimale de MAE ; retirer RWSE fait passer de 0.070 à 0.113. Quelques probabilités de retour d'une marche aident plus qu'une couche entière d'attention globale.\n","imageSizes":{"/content/papers/assets/e4177a894582643d7811bced6f6c6cf8bb51ff7738da4af5d98115883e1a4bb8.png":{"width":1116,"height":798}}}
