Papers › Principal Neighbourhood Aggregation for Graph Nets
Principal Neighbourhood Aggregation for Graph Nets
Gabriele Corso, Luca Cavalleri, Dominique Beaini, Pietro Liò, Petar Veličković
Graph Neural Networks (GNNs) have been shown to be effective models for different predictive tasks on graph-structured data. Recent work on their expressive power has focused on isomorphism tasks and countable feature spaces. We extend this theoretical framework to include continuous features - which occur regularly in real-world input domains and within the hidden layers of GNNs - and we demonstrate the requirement for multiple aggregation functions in this context. Accordingly, we propose Principal Neighbourhood Aggregation (PNA), a novel architecture combining multiple aggregators with degree-scalers (which generalize the sum aggregator). Finally, we compare the capacity of different models to capture and exploit the graph structure via a novel benchmark containing multiple tasks taken from classical graph theory, alongside existing benchmarks from real-world domains, all of which demonstrate the strength of our model. With this work, we hope to steer some of the GNN research towards new aggregation methods which we believe are essential in the search for powerful and robust models.
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="2004.05718")
Code
Syntology Ran 33 of 55 code samples harvested from 4 repositories linked to this paper; 22 have no recorded run. Of those that ran: 4 ran · honoured contract; 17 ran · our draft was wrong; 5 ran · fixture could not drive it; 7 ran with no contract checked.
By repository: community (archive-listed): 55 samples from 4 repositories, 33 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
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
55 samples harvested; 33 ran; 4 honoured the contract we drafted; 22 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.
Licence: 48 of the 55 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 4 repositories linked to this paper, official or community; each sample names its own and says which. “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.
bbcfddab0672587b · report
4aecc0c5ee5d5919 · report
528a64a346d98ccd · report
e511d58ec99ede06 · report
6f4fac2426ac1ca3 · report
5fc1afe08991ab11 · report
ef6906c0d3364ced · report
a03e9cc59c2671f7 · report
6a8ff41179e540bd · report
0cb93154c335108f · report
b19d1fdc25bad3bd · report
3b1fc26527b0808f · report
ff879af48e34176e · report
481088b2fcfe7538 · report
12e2cedd3aa5d6ee · report
1459f6559164001b · report
4a7092a5a3c9f554 · report
7e7c9a7e4e3f56ed · report
6eb59d131c4ff569 · report
5aeed6a78e303573 · report
92fa1e926f5bd985 · report
fe76e55f0b804b7b · report
00473157272f2713 · report
b4f4cbb16613e6d5 · report
244b5dd39c13f84a · report
ea989e2ffeb38bb6 · report
1d260f12223b0d23 · report
5d07dbe669b9f73a · report
e1422930e833ac1b · report
d0d453f04b18e8f1 · report
3d28677798f20e1f · report
2d32c33e16bad56e · report
b673916e3a39dd5d · report
e4b24e60ca0d9599 · report
ce5e689ba09ce45d · report
8e16971a959b54a3 · report
9df9644a36246a29 · report
3aa8e705794c9d66 · report
71500fc15d19f2bc · report
f610d8297c271f3c · report
e8010b28fdc39a80 · report
2c7376a202ec32d2 · report
789af8973c8347ee · report
16f7d89050a5bb58 · report
aeafec5c97bd497f · report
d7ead85a1d37c169 · report
be921ec112433f72 · report
89ec98a7ccf842eb · report
cfb905cff1a241fd · report
94492fb6844ac8f1 · report
3d7c8bb83a9f2a81 · report
d38bd6844f4c5c7e · report
c6d0524ad9a473ce · report
1ad750797e80563a · report
c53e8d8bb36479c1 · report
Tasks
Results from the paper archive 2025-07-28
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
Introduced by this paper: PNA
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