Papers › Recipe for a General, Powerful, Scalable Graph Transformer

Recipe for a General, Powerful, Scalable Graph Transformer

25 May 2022arXiv:2205.12454archive 2025-07-28

Ladislav Rampášek, Mikhail Galkin, Vijay Prakash Dwivedi, Anh Tuan Luu, Guy Wolf, Dominique Beaini

We propose a recipe on how to build a general, powerful, scalable (GPS) graph Transformer with linear complexity and state-of-the-art results on a diverse set of benchmarks. Graph Transformers (GTs) have gained popularity in the field of graph representation learning with a variety of recent publications but they lack a common foundation about what constitutes a good positional or structural encoding, and what differentiates them. In this paper, we summarize the different types of encodings with a clearer definition and categorize them as being local, global or relative. The prior GTs are constrained to small graphs with a few hundred nodes, here we propose the first architecture with a complexity linear in the number of nodes and edges O(N+E) by decoupling the local real-edge aggregation from the fully-connected Transformer. We argue that this decoupling does not negatively affect the expressivity, with our architecture being a universal function approximator on graphs. Our GPS recipe consists of choosing 3 main ingredients: (i) positional/structural encoding, (ii) local message-passing mechanism, and (iii) global attention mechanism. We provide a modular framework GraphGPS that supports multiple types of encodings and that provides efficiency and scalability both in small and large graphs. We test our architecture on 16 benchmarks and show highly competitive results in all of them, show-casing the empirical benefits gained by the modularity and the combination of different strategies.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2205.12454")

Code

Syntology Ran 3 of 21 code samples harvested from 1 repository linked to this paper; 18 have no recorded run. Of those that ran: 3 ran with no contract checked.

By repository: community (archive-listed): 21 samples from 1 repository, 3 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

rampasek/GraphGPS officialmentioned in papermentioned on GitHubpytorchMIT report
graphcore/ogb-lsc-pcqm4mv2 mentioned on GitHubtf report
hamed1375/exphormer mentioned on GitHubpytorch report
linusbao/MoSE mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

21 samples harvested; 3 ran; 0 honoured the contract we drafted; 18 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

3ran
18unverified

Licence: 0 of the 21 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from graphcore/ogb-lsc-pcqm4mv2. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

_scatter_min graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) ran MIT (permissive) · 23d181463d883ce2 · report
_scatter_sum graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) ran MIT (permissive) · 734d560a1dc6e70b · report
generate_dropout_seed graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) ran MIT (permissive) · b9465ab1ad9e2278 · report
BiasedSelfAttentionLayer graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · e2ab63adef0914be · report
FFNLayer graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · c84df930a004726a · report
GPSLayer graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 6d03ea56f29b99a2 · report
GenericAggregator graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 154587abcabb598b · report
GraphDropout graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 1fd88eabe2bf5a70 · report
InteractionNetworkLayer graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 971b7db74f2673f3 · report
ResnetMultiplier graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 52b6ed371f4e7c09 · report
_gather graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 401bcf859fc41772 · report
_scatter_count graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 5dda6b2e7b928bd7 · report
_scatter_max graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 14e69fb09fcdefa4 · report
_scatter_mean graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 13e732c6b1e941a0 · report
_scatter_mean_and_var graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 1dbf2926681fecd6 · report
_scatter_softmax graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 8cdb18106afd6290 · report
_scatter_sqrtN graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 7f92923b18f2f819 · report
_scatter_std graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 1e17cdf620f5b2c6 · report
_scatter_var graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · eba3c0cda10371e3 · report
call_outlined_function graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · 8584b125423d1de0 · report
gather graphcore/ogb-lsc-pcqm4mv2/model/hybrid/layers.py community (archive-listed) unverified MIT (permissive) · df3a80c6ac89079c · report

Tasks

Graph ClassificationGraph Property PredictionGraph RegressionGraph Representation LearningLink PredictionMolecular Property PredictionNode ClassificationRepresentation Learning

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Graph Classification CIFAR10 100k GPS Accuracy (%) 72.298 #11 of 20 Archive leaderboard report
Graph Classification ENZYMES GraphGPS Accuracy 78.667±4.625 #2 of 54 Archive leaderboard report
Graph Classification IMDb-B GraphGPS Accuracy 79.250±3.096 #10 of 51 Archive leaderboard report
Graph Classification MNIST GPS Accuracy 98.05 #12 of 13 Archive leaderboard report
Graph Classification MalNet-Tiny GPS Accuracy 93.36 ± 0.6 #4 of 4 Archive leaderboard report
Graph Classification NCI1 GraphGPS Accuracy 85.110±1.423 #13 of 69 Archive leaderboard report
Graph Classification NCI109 GraphGPS Accuracy 81.256±0.501 #20 of 38 Archive leaderboard report
Graph Classification PROTEINS GraphGPS Accuracy 77.143±1.494 #35 of 103 Archive leaderboard report
Graph Classification Peptides-func GPS AP 0.6535±0.0041 #30 of 44 Archive leaderboard report
Graph Property Prediction ogbg-code2 GPS Ext. data No #6 of 21 Archive leaderboard report
Graph Property Prediction ogbg-code2 GPS Number of params 12454066 #6 of 21 Archive leaderboard report
Graph Property Prediction ogbg-code2 GPS Test F1 score 0.1894 #6 of 21 Archive leaderboard report
Graph Property Prediction ogbg-code2 GPS Validation F1 score 0.1739 ± 0.001 #6 of 21 Archive leaderboard report
Graph Property Prediction ogbg-molhiv GPS Ext. data No #27 of 43 Archive leaderboard report
Graph Property Prediction ogbg-molhiv GPS Number of params 558625 #27 of 43 Archive leaderboard report
Graph Property Prediction ogbg-molhiv GPS Test ROC-AUC 0.7880 #27 of 43 Archive leaderboard report
Graph Property Prediction ogbg-molhiv GPS Validation ROC-AUC 0.8255 ± 0.0092 #27 of 43 Archive leaderboard report
Graph Property Prediction ogbg-molpcba GPS Ext. data No #20 of 36 Archive leaderboard report
Graph Property Prediction ogbg-molpcba GPS Number of params 9744496 #20 of 36 Archive leaderboard report
Graph Property Prediction ogbg-molpcba GPS Test AP 0.2907 #20 of 36 Archive leaderboard report
Graph Property Prediction ogbg-molpcba GPS Validation AP 0.3015 ± 0.0038 #20 of 36 Archive leaderboard report
Graph Property Prediction ogbg-ppa GPS Ext. data No #6 of 18 Archive leaderboard report
Graph Property Prediction ogbg-ppa GPS Number of params 3434533 #6 of 18 Archive leaderboard report
Graph Property Prediction ogbg-ppa GPS Test Accuracy 0.8015 #6 of 18 Archive leaderboard report
Graph Property Prediction ogbg-ppa GPS Validation Accuracy 0.7556 ± 0.0027 #6 of 18 Archive leaderboard report
Graph Regression Lipophilicity GraphGPS R2 0.790±0.004 #8 of 23 Archive leaderboard report
Graph Regression Lipophilicity GraphGPS RMSE 0.579±0.006 #8 of 23 Archive leaderboard report
Graph Regression PCQM4Mv2-LSC GPS Test MAE 0.0862 #9 of 20 Archive leaderboard report
Graph Regression PCQM4Mv2-LSC GPS Validation MAE 0.0852 #9 of 20 Archive leaderboard report
Graph Regression Peptides-struct GPS MAE 0.2500±0.0005 #22 of 39 Archive leaderboard report
Graph Regression ZINC GPS MAE 0.070 ± 0.002 #9 of 27 Archive leaderboard report
Graph Regression ZINC GINE MAE 0.070 ± 0.004 #10 of 27 Archive leaderboard report
Graph Regression ZINC-500k GPS MAE 0.070 #12 of 36 Archive leaderboard report
Graph Regression ZINC-full GraphGPS Test MAE 0.024±0.007 #7 of 19 Archive leaderboard report
Link Prediction PCQM-Contact GPS MRR 0.3337±0.0006 #17 of 18 Archive leaderboard report
Molecular Property Prediction ESOL GraphGPS R2 0.911±0.003 #9 of 20 Archive leaderboard report
Molecular Property Prediction ESOL GraphGPS RMSE 0.613±0.010 #9 of 20 Archive leaderboard report
Molecular Property Prediction FreeSolv GraphGPS R2 0.861±0.037 #12 of 22 Archive leaderboard report
Molecular Property Prediction FreeSolv GraphGPS RMSE 1.462±0.188 #12 of 22 Archive leaderboard report
Node Classification CLUSTER GPS Accuracy 77.95 #9 of 12 Archive leaderboard report
Node Classification COCO-SP GPS macro F1 0.3412±0.0044 #7 of 19 Archive leaderboard report
Node Classification PATTERN GPS Accuracy 86.685 #9 of 11 Archive leaderboard report
Node Classification PascalVOC-SP GPS macro F1 0.3748±0.0109 #8 of 21 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

GPSGTSGraph TransformerLapEigenLaplacian PEMPNNPerformerTransformer

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections