{"notes":[{"id":"graph-learning/mpnn","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"MPNN","subtitle":"En fait, tout le monde transmet des messages","author":"Z. Yuan","paperDate":"2017-04-04","publishedOn":"2023-10-11","world":"external/mpnn","paperTitle":"Neural Message Passing for Quantum Chemistry","paperUrl":"https://arxiv.org/abs/1704.01212","bibliography":{"title":"Neural Message Passing for Quantum Chemistry","authors":["Justin Gilmer","Samuel S. Schoenholz","Patrick F. Riley","Oriol Vinyals","George E. Dahl"],"url":"https://arxiv.org/abs/1704.01212","pdfUrl":"https://arxiv.org/pdf/1704.01212v2","codeUrl":null,"preprint":{"id":"1704.01212","submittedOn":"2017-04-04","url":"https://arxiv.org/abs/1704.01212"},"publication":{"venue":"ICML","year":2017,"kind":"conference","url":"https://proceedings.mlr.press/v70/gilmer17a.html"},"citation":"@misc{graphlearningmpnn2017,\n  title = {{Neural Message Passing for Quantum Chemistry}},\n  author = {Justin Gilmer and Samuel S. Schoenholz and Patrick F. Riley and Oriol Vinyals and George E. Dahl},\n  year = {2017},\n  eprint = {1704.01212},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1704.01212}\n}\n","citationPath":"/content/papers/citations/graph-learning/mpnn.5c9aab7ce227.bib"},"thumbnail":{"src":"/content/papers/assets/44a847b2362597f5662f2709ea7ecf27df3d1f6c76cd135fde21b0ad814ca891.png","width":628,"height":388},"locale":"fr","path":"/content/papers/fr/graph-learning/mpnn.0d905aec7800.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":"le-cadre-du-passage-de-messages","text":"Le cadre du passage de messages","depth":3},{"id":"les-variantes-explorées","text":"Les variantes explorées","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"principaux-résultats-sur-qm9","text":"Principaux résultats sur QM9","depth":3},{"id":"sans-information-spatiale","text":"Sans information spatiale","depth":3},{"id":"arêtes-virtuelles-et-nœud-maître","text":"Arêtes virtuelles et nœud maître","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/over-squashing","relation":"referenced","topic":""},{"id":"graph-learning/graphgps","relation":"referenced","topic":""}]},{"id":"graph-learning/over-squashing","category":"graph-learning","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Over-squashing","subtitle":"Ça ne rentre plus","author":"Z. Yuan","paperDate":"2020-06-09","publishedOn":"2024-03-03","paperTitle":"On the Bottleneck of Graph Neural Networks and its Practical Implications","paperUrl":"https://arxiv.org/abs/2006.05205","bibliography":{"title":"On the Bottleneck of Graph Neural Networks and its Practical Implications","authors":["Uri Alon","Eran Yahav"],"url":"https://arxiv.org/abs/2006.05205","pdfUrl":"https://arxiv.org/pdf/2006.05205v4","codeUrl":"https://github.com/tech-srl/bottleneck","preprint":{"id":"2006.05205","submittedOn":"2020-06-09","url":"https://arxiv.org/abs/2006.05205"},"publication":{"venue":"ICLR","year":2021,"kind":"conference","url":"https://arxiv.org/abs/2006.05205"},"citation":"@misc{graphlearningoversquashing2020,\n  title = {{On the Bottleneck of Graph Neural Networks and its Practical Implications}},\n  author = {Uri Alon and Eran Yahav},\n  year = {2020},\n  eprint = {2006.05205},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2006.05205}\n}\n","citationPath":"/content/papers/citations/graph-learning/over-squashing.af346c012204.bib"},"thumbnail":{"src":"/content/papers/assets/c3454ca38b6e53b6467ff66db7867788efed8d8a71eec3c6e7f754e586a99d4d.png","width":1078,"height":356},"locale":"fr","path":"/content/papers/fr/graph-learning/over-squashing.53fa3625a72f.md","headings":[{"id":"poser-le-problème","text":"Poser le problème","depth":2},{"id":"le-rayon-du-problème","text":"Le rayon du problème","depth":3},{"id":"comparaison-au-goulet-des-rnn","text":"Comparaison au goulet des RNN","depth":3},{"id":"ne-regarder-que-la-part-propagée","text":"Ne regarder que la part propagée","depth":3},{"id":"une-tâche-volontairement-construite","text":"Une tâche volontairement construite","depth":3},{"id":"résoudre-le-problème","text":"Résoudre le problème","depth":2},{"id":"une-dernière-couche-entièrement-connectée","text":"Une dernière couche entièrement connectée","depth":3},{"id":"quelle-taille-de-vecteur-faut-il-","text":"Quelle taille de vecteur faut-il ?","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"tree-neighborsmatch","text":"Tree-NeighborsMatch","depth":3},{"id":"qm9","text":"QM9","depth":3},{"id":"jeux-biologiques","text":"Jeux biologiques","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"graph-learning/deeper-insights","relation":"referenced","topic":""},{"id":"graph-learning/graphgps","relation":"referenced","topic":""}]},{"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":""}]}],"text":"Pour connaître le moment dipolaire, le gap énergétique ou l'énergie de vibration au point zéro d'une molécule, les chimistes lancent généralement un calcul de théorie de la fonctionnelle de la densité (DFT). Une petite molécule demande environ mille secondes.\n\nPour cribler des millions de molécules candidates à un médicament ou à un matériau, cette vitesse devient un goulet d'étranglement.\n\nJustin Gilmer, Samuel Schoenholz, Patrick Riley, Oriol Vinyals et George Dahl, de Google Brain, Google et DeepMind, veulent prédire directement ces propriétés depuis le graphe moléculaire avec un réseau neuronal, en environ un centième de seconde par molécule.\n\nIl existait déjà de nombreux réseaux capables de traiter ces graphes, chacun sous un nom différent. La première contribution de l'article consiste à les réunir dans un même cadre.\n\n[![Figure 1 de l'article : deux voies mènent d'une molécule organique à ses propriétés. En haut, le calcul DFT prend environ 10 puissance 3 secondes. En bas, un réseau neuronal à passage de messages échange progressivement des informations entre atomes en environ 10 puissance −2 seconde. Les deux prédisent les mêmes cibles, comme l'énergie et les fréquences de vibration.](/content/papers/assets/44a847b2362597f5662f2709ea7ecf27df3d1f6c76cd135fde21b0ad814ca891.png)](/content/papers/assets/44a847b2362597f5662f2709ea7ecf27df3d1f6c76cd135fde21b0ad814ca891.png)\n\n*Figure 1 de l'article (Gilmer et al.), extraite de la [**page 1 du PDF**](https://arxiv.org/pdf/1704.01212v2#page=1). Légende originale omise.*\n\n## Poser le problème\n\nLes auteurs constatent que l'apprentissage automatique en chimie repose encore surtout sur l'ingénierie de caractéristiques. On conçoit à la main une représentation de la molécule — matrice de Coulomb, sac de liaisons (Bag of Bonds), empreinte moléculaire — puis on lui ajoute un régresseur existant.\n\nLes réseaux neuronaux ont déjà été essayés, sans adoption massive. Les auteurs font le parallèle avec les modèles d'images avant la diffusion des réseaux convolutionnels : il manque des preuves qu'un réseau doté du bon biais inductif soit utile dans ce domaine.\n\nUne molécule possède des symétries naturelles. Renuméroter les atomes ne change pas la molécule ; le modèle doit donc être invariant aux isomorphismes du graphe. Les auteurs visent deux objectifs : dégager la forme commune des réseaux sur graphes existants, puis pousser cette forme aussi loin que possible sur un véritable benchmark.\n\nCe benchmark est QM9 : environ 130,000 petites molécules, avec pour chacune 13 propriétés calculées par DFT. Le critère est parlant : la « précision chimique » définie par la communauté. Une erreur inférieure à ce seuil atteint le niveau jugé acceptable par les chimistes.\n\n## Résoudre le problème\n\n### Le cadre du passage de messages\n\nMPNN (Message Passing Neural Networks) sépare la propagation avant en deux phases.\n\nLa **phase de passage de messages** dure $T$ pas. À chaque pas, le nœud $v$ reçoit un message de chaque voisin $w$, les somme et met à jour son état :\n\n$$\nm_v^{t+1}=\\sum_{w\\in N(v)}M_t\\left(h_v^t,h_w^t,e_{vw}\\right)\n$$\n\n$$\nh_v^{t+1}=U_t\\left(h_v^t,m_v^{t+1}\\right)\n$$\n\n$M_t$ est la fonction de message, qui voit les états de l'émetteur et du destinataire ainsi que les caractéristiques d'arête $e_{vw}$ ; $U_t$ est la fonction de mise à jour.\n\nLa **phase de lecture** combine les états finaux de tous les nœuds en une représentation du graphe entier :\n\n$$\n\\hat y=R\\left(\\left\\{h_v^T\\mid v\\in G\\right\\}\\right)\n$$\n\n$R$ doit être invariant à l'ordre des nœuds. Les trois fonctions sont apprenables.\n\nLes auteurs montrent ensuite qu'au moins huit modèles existants prennent cette forme : convolutions d'empreintes moléculaires de Duvenaud et al., réseaux neuronaux sur graphes à portes (GG-NN), Interaction Networks, convolutions sur graphes moléculaires, réseaux de tenseurs profonds et trois méthodes spectrales fondées sur le laplacien (Bruna et al., ChebNet et GCN).\n\nPour GCN, le message est « l'état du voisin multiplié par les poids, puis redimensionné selon les degrés des deux extrémités » ; la mise à jour est ReLU. Sur un petit graphe à cinq nœuds, calculons ces fonctions et comparons-les à l'écriture matricielle de GCN :\n\n```python\nimport numpy as np\nrng = np.random.default_rng(0)\n\nn = 5\nedges = [(0, 1), (0, 2), (1, 2), (2, 3), (3, 4)]\nnbrs = {v: [v] for v in range(n)}            # Inclure soi-même : une boucle propre compte comme une arête\nfor i, j in edges:\n    nbrs[i].append(j)\n    nbrs[j].append(i)\ndeg = {v: len(nbrs[v]) for v in range(n)}    # Degrés après ajout des boucles propres\nh = rng.normal(size=(n, 3))\nW = rng.normal(size=(3, 3))\n\ndef message(h_v, h_w, v, w):                 # M_t(h_v, h_w, e_vw)\n    return h_w @ W / np.sqrt(deg[v] * deg[w])\n\ndef update(h_v, m_v):                        # U_t(h_v, m_v)\n    return np.maximum(m_v, 0)\n\ndef mpnn_step(h):\n    return np.array([update(h[v], sum(message(h[v], h[w], v, w) for w in nbrs[v]))\n                     for v in range(n)])\n\n# Comparer à la forme matricielle de GCN : ReLU(Â H W)\nA = np.eye(n)\nfor i, j in edges:\n    A[i, j] = A[j, i] = 1\nd = A.sum(1)\nA_hat = A / np.sqrt(np.outer(d, d))\nprint(\"Identique à la forme matricielle de GCN:\", np.allclose(mpnn_step(h), np.maximum(A_hat @ h @ W, 0)))\n```\n\n```text\nIdentique à la forme matricielle de GCN: True\n```\n\nCes deux écritures calculent la même chose : l'une adopte le point de vue d'un nœud, l'autre décrit tout le graphe par une matrice. L'intérêt du cadre est simple : changer `message` ou `update` donne un autre modèle.\n\n### Les variantes explorées\n\nAvec cette forme commune, les auteurs essaient plusieurs options pour chaque composant :\n\n- **Fonction de message** : GG-NN choisit une matrice selon le type d'arête et la multiplie par l'état du voisin. Les auteurs proposent un **edge network**, qui transforme un vecteur continu de caractéristiques d'arête en matrice $d\\times d$ : on peut ainsi intégrer des distances interatomiques. Une autre variante, **pair message**, regarde les états des deux extrémités, mais son entraînement est moins stable et n'est pas approfondi.\n- **Éléments virtuels du graphe** : on peut ajouter un type spécial d'« arête virtuelle » entre nœuds non reliés, ou un **nœud maître** connecté à tous, servant de mémoire globale lisible et modifiable à chaque pas. Dans les deux cas, l'information voyage plus loin pendant la propagation.\n- **Fonction de lecture** : outre la lecture par somme de GG-NN, les auteurs essaient set2set, conçu pour les ensembles et potentiellement plus expressif.\n- **Tours (towers)** : on découpe l'état de dimension $d$ en $k$ parties, chacune effectuant son passage de messages, puis un réseau partagé les mélange. À budget de calcul égal, l'état caché peut être plus grand.\n\nCôté entrée, traiter explicitement les hydrogènes comme des nœuds et fournir toutes les caractéristiques d'arêtes (type de liaison et distance entre atomes) compte beaucoup pour de nombreuses cibles.\n\n## Discussion\n\n### Principaux résultats sur QM9\n\nLa métrique est le **rapport d'erreur** : l'erreur absolue moyenne du modèle divisée par la précision chimique de la cible. Passer sous 1 atteint la précision chimique. Les auteurs comparent cinq représentations moléculaires conçues à la main, chacune avec un régresseur existant, deux MPNN de référence et leur meilleure variante : messages edge network, lecture set2set et hydrogènes explicites.\n\n| Méthode | Rapport d'erreur moyen sur 13 cibles |\n| --- | ---: |\n| Empreintes moléculaires ECFP4 | 53.97 |\n| Matrice de Coulomb | 3.37 |\n| Sac de liaisons BoB | 2.08 |\n| HDAD | 1.35 |\n| Convolution sur graphe moléculaire GC | 2.59 |\n| GG-NN | 1.36 |\n| **enn-s2s (cet article)** | **0.68** |\n| enn-s2s, ensemble de 5 modèles | 0.52 |\n\nLe modèle unique est le meilleur de l'époque sur les 13 cibles, dont 11 atteignent la précision chimique. Les auteurs constatent aussi qu'entraîner un modèle distinct par cible fonctionne mieux que les 13 ensemble, avec parfois jusqu'à 40% d'écart.\n\n### Sans information spatiale\n\nQM9 fournit la conformation 3D de chaque molécule, mais les applications réelles ne disposent souvent que de sa connectivité. Les auteurs testent donc aussi la topologie seule : toutes les modifications permettant aux nœuds distants d'échanger des informations sont utiles.\n\n| Modèle | Rapport d'erreur moyen |\n| --- | ---: |\n| GG-NN | 3.47 |\n| GG-NN + arêtes virtuelles | 2.90 |\n| GG-NN + nœud maître | 2.62 |\n| GG-NN + lecture set2set | 2.57 |\n\nLes trois modifications améliorent les 13 cibles ; la variante set2set atteint la précision chimique pour 5 d'entre elles. Ces expériences ajoutent une caractéristique de charge partielle par nœud, elle-même issue de DFT et indisponible en pratique ; le tableau principal précédent ne l'utilisait pas.\n\nLa variante à plusieurs tours réserve une bonne surprise. Initialement conçue pour accélérer l'entraînement, elle dépasse le modèle de référence sur 12 des 13 cibles dans les deux configurations d'entraînement et généralise mieux.\n\n### Arêtes virtuelles et nœud maître\n\nCes deux modifications n'occupent qu'un court passage dans l'article, mais méritent une relecture. Plus de trois ans plus tard, Alon et Yahav nommeront over-squashing la difficulté des GNN à transmettre les informations lointaines. Leur correction relie aussi tous les nœuds dans la dernière couche. Les Graph Transformers ajouteront ensuite, à chaque couche, une voie par laquelle tous les nœuds se voient.\n\n\n> [!TIP]\n> \n> Pour l'over-squashing et les architectures qui ajoutent ensuite une attention globale à chaque couche, voir nos notes :\n> \n> - **[[20.06] Over-squashing : Ça ne rentre plus](/blog/papers/graph-learning/over-squashing)**\n> - **[[22.05] GraphGPS : Un GPS sur le graphe](/blog/papers/graph-learning/graphgps)**\n\n\n## Conclusion\n\nL'article ramène les réseaux sur graphes jusque-là nommés séparément à trois fonctions : message, mise à jour et lecture. Ce vocabulaire se diffusera largement ; de nombreux articles utiliseront directement « message passing » pour toute cette famille.\n\nSur QM9, les auteurs combinent edge network, set2set et hydrogènes explicites pour obtenir les meilleurs résultats de l'époque sur les 13 cibles, dont 11 à la précision chimique.\n\nLes auteurs appellent à pousser cette famille à ses limites dans les applications qui comptent vraiment, pour identifier les détails d'implémentation décisifs, plutôt qu'à multiplier les variantes. Ce sont souvent ces détails qui restent les plus utiles après lecture : faut-il expliciter les hydrogènes, entraîner séparément chaque cible, quelle lecture choisir ?\n","imageSizes":{"/content/papers/assets/44a847b2362597f5662f2709ea7ecf27df3d1f6c76cd135fde21b0ad814ca891.png":{"width":628,"height":388}}}
