{"notes":[{"id":"graph-learning/classic-gnns","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Classic GNNs","subtitle":"Régler avant de comparer","author":"Z. Yuan","paperDate":"2024-06-13","publishedOn":"2025-11-25","paperTitle":"Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification","paperUrl":"https://arxiv.org/abs/2406.08993","bibliography":{"title":"Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification","authors":["Yuankai Luo","Lei Shi","Xiao-Ming Wu"],"url":"https://arxiv.org/abs/2406.08993","pdfUrl":"https://arxiv.org/pdf/2406.08993v2","codeUrl":"https://github.com/LUOyk1999/tunedGNN","preprint":{"id":"2406.08993","submittedOn":"2024-06-13","url":"https://arxiv.org/abs/2406.08993"},"publication":{"venue":"NeurIPS Datasets and Benchmarks","shortVenue":"NeurIPS D&B","year":2024,"kind":"conference","url":"https://proceedings.neurips.cc/paper_files/paper/2024/hash/b10ed15ff1aa864f1be3a75f1ffc021b-Abstract-Datasets_and_Benchmarks_Track.html"},"citation":"@misc{graphlearningclassicgnns2024,\n  title = {{Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification}},\n  author = {Yuankai Luo and Lei Shi and Xiao-Ming Wu},\n  year = {2024},\n  eprint = {2406.08993},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2406.08993}\n}\n","citationPath":"/content/papers/citations/graph-learning/classic-gnns.166c6c5a9ba0.bib"},"thumbnail":{"src":"/content/papers/assets/c0d0343c2ddf281c63e4c48623074c885c2a966b5b3100ad107199638d9822c8.png","width":1080,"height":516},"locale":"fr","path":"/content/papers/fr/graph-learning/classic-gnns.fe40f6daf8d8.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":"trois-modèles-classiques","text":"Trois modèles classiques","depth":3},{"id":"quatre-hyperparamètres","text":"Quatre hyperparamètres","depth":3},{"id":"protocole-expérimental","text":"Protocole expérimental","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"homophilie","text":"Homophilie","depth":3},{"id":"hétérophilie","text":"Hétérophilie","depth":3},{"id":"grands-graphes","text":"Grands graphes","depth":3},{"id":"quel-hyperparamètre-compte-le-plus-","text":"Quel hyperparamètre compte le plus ?","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/deeper-insights","relation":"referenced","topic":""},{"id":"graph-learning/gnn-plus","relation":"referenced","topic":""}]},{"id":"graph-learning/deeper-insights","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Deeper Insights","subtitle":"Trop bien lissé","author":"Z. Yuan","paperDate":"2018-01-22","publishedOn":"2023-11-29","paperTitle":"Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning","paperUrl":"https://arxiv.org/abs/1801.07606","bibliography":{"title":"Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning","authors":["Qimai Li","Zhichao Han","Xiao-Ming Wu"],"url":"https://arxiv.org/abs/1801.07606","pdfUrl":"https://arxiv.org/pdf/1801.07606v1","codeUrl":null,"preprint":{"id":"1801.07606","submittedOn":"2018-01-22","url":"https://arxiv.org/abs/1801.07606"},"publication":{"venue":"AAAI","year":2018,"kind":"conference","url":"https://ojs.aaai.org/index.php/AAAI/article/view/11604"},"citation":"@misc{graphlearningdeeperinsights2018,\n  title = {{Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning}},\n  author = {Qimai Li and Zhichao Han and Xiao-Ming Wu},\n  year = {2018},\n  eprint = {1801.07606},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1801.07606}\n}\n","citationPath":"/content/papers/citations/graph-learning/deeper-insights.52354c86fac9.bib"},"thumbnail":{"src":"/content/papers/assets/2a13880b48fae6456e19c622cee1d7c7907f8c31d6890722d4980a381fddb06a.png","width":1396,"height":268},"locale":"fr","path":"/content/papers/fr/graph-learning/deeper-insights.3da7994e8311.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":"comparer-au-réseau-entièrement-connecté","text":"Comparer au réseau entièrement connecté","depth":3},{"id":"le-lissage-laplacien","text":"Le lissage laplacien","depth":3},{"id":"lisser-trop-souvent","text":"Lisser trop souvent","depth":3},{"id":"trop-peu-de-couches-pose-aussi-problème","text":"Trop peu de couches pose aussi problème","depth":3},{"id":"le-remède--donner-plus-détiquettes-à-gcn","text":"Le remède : donner plus d'étiquettes à GCN","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/appnp","relation":"referenced","topic":""},{"id":"graph-learning/sgc","relation":"referenced","topic":""}]},{"id":"graph-learning/gnn-plus","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"GNN+","subtitle":"Le vieux coursier en a encore sous le pied","author":"Z. Yuan","paperDate":"2025-02-13","publishedOn":"2025-12-06","paperTitle":"Can Classic GNNs Be Strong Baselines for Graph-level Tasks? Simple Architectures Meet Excellence","paperUrl":"https://arxiv.org/abs/2502.09263","bibliography":{"title":"Can Classic GNNs Be Strong Baselines for Graph-level Tasks? Simple Architectures Meet Excellence","authors":["Yuankai Luo","Lei Shi","Xiao-Ming Wu"],"url":"https://arxiv.org/abs/2502.09263","pdfUrl":"https://arxiv.org/pdf/2502.09263v3","codeUrl":"https://github.com/LUOyk1999/GNNPlus","preprint":{"id":"2502.09263","submittedOn":"2025-02-13","url":"https://arxiv.org/abs/2502.09263"},"publication":{"venue":"ICML","year":2025,"kind":"conference","url":"https://proceedings.mlr.press/v267/luo25h.html"},"citation":"@misc{graphlearninggnnplus2025,\n  title = {{Can Classic GNNs Be Strong Baselines for Graph-level Tasks? Simple Architectures Meet Excellence}},\n  author = {Yuankai Luo and Lei Shi and Xiao-Ming Wu},\n  year = {2025},\n  eprint = {2502.09263},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2502.09263}\n}\n","citationPath":"/content/papers/citations/graph-learning/gnn-plus.7d14d260e648.bib"},"thumbnail":{"src":"/content/papers/assets/0be1b8a606332519d042698f1c6afd3ef8857eb95682b95df1cdeb9e3bfe7648.png","width":604,"height":510},"locale":"fr","path":"/content/papers/fr/graph-learning/gnn-plus.3c2c63013097.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"deux-types-de-tâches","text":"Deux types de tâches","depth":3},{"id":"une-comparaison-équitable-","text":"Une comparaison équitable ?","depth":3},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"trois-modèles-classiques","text":"Trois modèles classiques","depth":3},{"id":"six-techniques","text":"Six techniques","depth":3},{"id":"comment-comparer-","text":"Comment comparer ?","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"résultats-densemble","text":"Résultats d'ensemble","depth":3},{"id":"plus-rapides-aussi","text":"Plus rapides aussi","depth":3},{"id":"le-rôle-de-chaque-technique","text":"Le rôle de chaque technique","depth":3},{"id":"les-limites-reconnues-par-les-auteurs","text":"Les limites reconnues par les auteurs","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/classic-gnns","relation":"referenced","topic":""},{"id":"graph-learning/graphgps","relation":"referenced","topic":""},{"id":"graph-learning/where-did-the-gap-go","relation":"referenced","topic":""}]}],"text":"Les Graph Transformers s'installent d'abord sur les petites molécules, puis gagnent la classification de nœuds, notamment sur les graphes de millions de nœuds. Dans les articles de NodeFormer, SGFormer ou Polynormer, GCN, GAT et GraphSAGE restent souvent loin derrière.\n\nYuankai Luo et Lei Shi, de Beihang, avec Xiao-Ming Wu de l'université polytechnique de Hong Kong, remarquent que beaucoup de ces nouveaux modèles reposent encore, explicitement ou non, sur un GNN pour apprendre le local, complété par l'attention globale.\n\nLe passage de messages classique aurait-il été sous-estimé en classification de nœuds ?\n\nWu connaît bien la question. En 2018, avec Qimai Li et leurs collègues, il interprétait GCN comme un lissage laplacien et montrait le surlissage en profondeur.\n\n\n> [!TIP]\n> \n> Pour comprendre pourquoi GCN fonctionne et pourquoi il s'approfondit mal, voir notre note :\n> \n> - **[[18.01] Deeper Insights : Trop bien lissé](/blog/papers/graph-learning/deeper-insights)**\n\n\n## Poser le problème\n\nLa classification de nœuds prédit les classes inconnues à partir de quelques nœuds étiquetés. Deux situations sont distinguées :\n\n- **Homophilie** : les nœuds reliés partagent souvent leur classe, comme des articles qui se citent.\n- **Hétérophilie** : les nœuds reliés ont souvent des classes différentes.\n\nOn attribue généralement aux GNN une hypothèse implicite d'homophilie, qui les rendrait faibles sur l'hétérophilie. Des études récentes trouvent pourtant GCN standard assez compétitif dans ce cas.\n\nD'autres réévaluations ont eu lieu ; les auteurs jugent leurs jeux trop rares, peu divers et leurs réglages incomplets. Ils veulent vérifier à assez grande échelle jusqu'où les GNN classiques peuvent aller avec les seuls hyperparamètres.\n\n## Résoudre le problème\n\n### Trois modèles classiques\n\nTrois GNN élémentaires sont retenus. GCN moyenne soi-même et ses voisins selon les degrés ; GraphSAGE attribue des poids séparés à soi-même et à la moyenne des voisins ; GAT apprend leur poids par attention. Les modèles eux-mêmes restent identiques.\n\n### Quatre hyperparamètres\n\nOn règle des ingrédients déjà habituels dans les autres réseaux :\n\n- **Normalisation** : BatchNorm ou LayerNorm avant l'activation de chaque couche.\n- **Dropout** : après l'activation.\n- **Connexions résiduelles** : la représentation précédente est multipliée par $W_r$, puis ajoutée directement à la couche :\n\n$$\nh_v^{l}=\\mathrm{Dropout}\\Big(\\sigma\\Big(\\mathrm{Norm}\\Big(h_v^{l-1}W_r^l+\\sum_{u\\in\\mathcal N(v)\\cup\\{v\\}}\\frac{1}{\\sqrt{\\hat d_u\\hat d_v}}h_u^{l-1}W^l\\Big)\\Big)\\Big)\n$$\n\n- **Profondeur** : de 1 à 10 couches.\n\nLe résidu aide particulièrement en hétérophilie. Exemple extrême : six nœuds en cycle, voisins toujours de classes opposées, chacun ayant le one-hot de sa classe comme caractéristiques.\n\n```python\nimport numpy as np\n\nn = 6\nM = np.zeros((n, n))\nfor i in range(n):\n    M[i, (i + 1) % n] = M[(i + 1) % n, i] = 1      # Cycle de six nœuds\nlabel = np.array([0, 1, 0, 1, 0, 1])               # Voisins toujours de classes opposées\nX = np.eye(2)[label]                               # Caractéristique : sa propre classe\n\nAt = M + np.eye(n)\nd = At.sum(1)\nA_hat = At / np.sqrt(np.outer(d, d))               # Moyenne pondérée GCN\n\ngcn = A_hat @ X                                    # Moyenne pondérée seulement\nres = X + A_hat @ X                                # Ajouter la représentation initiale, W_r = I\nprint(\"Nœud 0 après une couche GCN:\", gcn[0].round(2), \" Bonnes réponses\", (gcn.argmax(1) == label).sum(), \"nœuds\")\nprint(\"Nœud 0 avec résidu:\", res[0].round(2), \" Bonnes réponses\", (res.argmax(1) == label).sum(), \"nœuds\")\n```\n\n```text\nNœud 0 après une couche GCN: [0.33 0.67]  Bonnes réponses 0 nœuds\nNœud 0 avec résidu: [1.33 0.67]  Bonnes réponses 6 nœuds\n```\n\nChaque nœud a deux voisins de l'autre classe : leur moyenne couvre sa propre classe. Le résidu conserve son information initiale. Ce n'est qu'un schéma ; le véritable $W_r$ est appris.\n\n### Protocole expérimental\n\nIl y a 18 jeux de données :\n\n- **8 homophiles** : Cora, CiteSeer, PubMed, Computer, Photo, CS, Physics, WikiCS.\n- **6 hétérophiles** : Squirrel, Chameleon, Amazon-Ratings, Roman-Empire, Minesweeper, Questions.\n- **4 grands graphes** : ogbn-proteins, ogbn-arxiv, ogbn-products d'OGB et le réseau social pokec, de 130,000 à 2.45 millions de nœuds.\n\nLes comparaisons incluent les Graph Transformers conçus pour les grands graphes, comme SGFormer, Polynormer, GOAT, NodeFormer et NAGphormer, ainsi que GraphGPS et Exphormer ; pour l'hétérophilie, des GNN spécialisés comme H2GCN sont ajoutés.\n\nLa recherche reprend Polynormer : taux d'apprentissage {0.001, 0.005, 0.01}, dimensions cachées {64, 256, 512}, choix de BN ou LN et des résidus, dropout {0.2, 0.3, 0.5, 0.7}, profondeur de 1 à 10, jusqu'à 2,500 époques. Les Graph Transformers sont réentraînés dans les mêmes plages et le même environnement. Chaque résultat moyenne 5 initialisations.\n\n## Discussion\n\nLes GNN classiques réglés terminent premiers sur 17 des 18 jeux. Regardons les trois groupes.\n\n### Homophilie\n\nGCN passe de 81.60% à 85.10% sur Cora, de 89.65% à 93.99% sur Computer. GAT gagne 4.16 points sur WikiCS à 81.07%, passant de septième à premier devant Polynormer. GCN réglé gagne Cora, CiteSeer, PubMed et Physics.\n\n### Hétérophilie\n\nLes gains y sont plus grands. GCN gagne 6.34 et 4.98 points sur Squirrel et Chameleon, et termine premier sur les deux, comme sur Minesweeper et Questions. Les modèles spécialisés H2GCN ou GloGNN restent derrière.\n\nRoman-Empire est spectaculaire : GCN passe de 73.69% à 91.27%, soit 17.58 points. C'est aussi l'unique exception parmi les 18 jeux : Polynormer garde la tête à 92.66%.\n\n### Grands graphes\n\n| Modèle | ogbn-proteins (ROC-AUC) | ogbn-arxiv | ogbn-products | pokec |\n| --- | ---: | ---: | ---: | ---: |\n| GraphGPS | 77.15 | 71.23 | Mémoire insuffisante | Mémoire insuffisante |\n| Exphormer | 77.62 | 72.32 | Mémoire insuffisante | Mémoire insuffisante |\n| SGFormer | 79.92 | 72.76 | 81.54 | 82.44 |\n| Polynormer | 79.53 | 73.40 | 83.82 | 86.06 |\n| GCN (réglé) | 77.29 | **73.53** | 82.33 | **86.33** |\n| GraphSAGE (réglé) | 82.21 | 73.00 | **83.89** | 85.97 |\n| GAT (réglé) | **85.01** | 73.30 | 80.99 | 86.19 |\n\nTous les Graph Transformers du tableau sont réentraînés dans les mêmes conditions. GraphGPS et Exphormer manquent de mémoire sur ogbn-products à 2.45 millions de nœuds et pokec à 1.63 million. Les quatre victoires reviennent aux GNN classiques. GCN gagne 10.88 points sur le chiffre initial de pokec ; GAT, 12.99 sur ogbn-proteins.\n\nLes auteurs y voient un passage de messages toujours très efficace pour représenter les nœuds des grands graphes ; les Graph Transformers actuels n'ont pas encore vraiment résolu les anciens problèmes de surlissage et de dépendances longues.\n\n### Quel hyperparamètre compte le plus ?\n\nRetirer chacun des quatre choix donne quatre observations :\n\n1. **La normalisation compte sur les grands graphes**, peu sur les petits. Sans elle, GraphSAGE et GAT perdent 4.79 et 4.69 points sur ogbn-proteins. Les auteurs supposent qu'elle stabilise les distributions de caractéristiques très variées des grands graphes.\n2. **Le dropout aide presque toujours.** GraphSAGE perd 2.70 points sur PubMed et 6.57 sur Roman-Empire sans lui.\n3. **Les résidus comptent surtout en hétérophilie.** Sur Roman-Empire, GCN perd 16.43 points, de 91.27% à 74.84% : presque tout son progrès vient d'eux.\n4. **L'hétérophilie demande généralement davantage de profondeur.**\n\n[![Figure 1 de l'article : six courbes, profondeur de 2 à 10 en abscisse. GCN en haut, GraphSAGE en bas ; colonnes pour homophilie (Computer, Photo, CS), hétérophilie (Roman-Empire, Minesweeper, Questions) et grand graphe (ogbn-arxiv). L'homophilie plafonne vers 6 couches ou baisse ; les trois courbes hétérophiles montent globalement ; ogbn-arxiv culmine vers 4 à 5 couches puis baisse.](/content/papers/assets/c0d0343c2ddf281c63e4c48623074c885c2a966b5b3100ad107199638d9822c8.png)](/content/papers/assets/c0d0343c2ddf281c63e4c48623074c885c2a966b5b3100ad107199638d9822c8.png)\n\n*Figure 1 de l'article (Luo et al.), extraite de la [**page 9 du PDF**](https://arxiv.org/pdf/2406.08993v2#page=9). Légende originale omise.*\n\nGCN est en haut, GraphSAGE en bas. Au centre, les courbes hétérophiles montent généralement avec la profondeur ; à gauche, les homophiles culminent surtout avant 6 couches. Selon les auteurs, les structures hétérophiles plus complexes exigent des réseaux plus profonds pour saisir les relations ; les résidus permettent de les entraîner.\n\n## Conclusion\n\nAucun nouveau modèle : seulement trois des plus anciens GNN correctement réglés. Ils gagnent sur 17 des 18 jeux ; sur les deux plus grands graphes, certains Graph Transformers ne peuvent même pas fonctionner.\n\nL'année suivante, les mêmes auteurs passent aux tâches au niveau des graphes : six techniques courantes ajoutées à GCN, GIN et GatedGCN, puis une nouvelle comparaison aux Graph Transformers.\n\n\n> [!TIP]\n> \n> Pour cette réévaluation au niveau des graphes, voir notre note :\n> \n> - **[[25.02] GNN+ : Le vieux coursier en a encore sous le pied](/blog/papers/graph-learning/gnn-plus)**\n\n\nQuand un nouveau Graph Transformer bat largement GCN en classification de nœuds, commencez par lire l'annexe : résidus, normalisation et profondeurs explorées de GCN. Vous pourrez alors juger son tableau.\n","imageSizes":{"/content/papers/assets/c0d0343c2ddf281c63e4c48623074c885c2a966b5b3100ad107199638d9822c8.png":{"width":1080,"height":516}}}
