When labels lie, the graph spreads it.

glnbench.github.io · 2026-07-15 · by Long Nguyen ·generic
A unified benchmark of 13 method configurations across 24 datasets, 9 label-noise models, and 7 GNN backbones — measuring accuracy, oversmoothing, and compute.

When labels lie, the graph spreads it.

Survey & Benchmark · Graph Learning under Label Noise

When labels lie, the graph spreads it.

A unified, reproducible benchmark for graph neural networks under noisy supervision. We benchmark 12 robustness methods plus a Standard baseline, then stress-test them where it counts — strong backbones, heterophily, scale, and cost — not just clean citation graphs.

Build an experiment View on GitHub What's inside

13

method configurations

24

graph datasets

9

label-noise models

7

GNN backbones

The problem

Noise doesn't stay where you put it.

Unlike i.i.d. models, a GNN passes messages along edges, so supervision at one node can influence learned representations throughout its neighbourhood. Existing benchmarks answer this on small homophilic citation graphs with one backbone. We ask the harder questions: does robustness survive a strong, wide backbone? does it hold under heterophily and at scale? and what does it cost?

One run, end to end

Configure → run → measure, in a single pipeline.

Every configuration flows through the same path: apply the selected label-noise process, assemble a backbone with a robustness method, train with early stopping while probing oversmoothing, then evaluate on the clean test split.

pipeline overview · config.yaml → Cartesian sweep → mean ± std

GLNBench two-row code control flow: config.yaml expands into isolated runs; each run loads graph splits, adds train and validation label noise, combines a GNN backbone with a robustness method, trains with validation and early stopping, restores the best checkpoint, evaluates on clean test labels, and writes classification, oversmoothing, compute, carbon, and JSON results.

What's covered

The axes we vary.

13 configurations · 12 robustness methods + baseline

Standard baseline NRGNN densify PI-GNN pairwise CR-GNN contrastive RTGNN peer + governance UnionNET support-set GNN-Cleaner label correction GraphCleaner post-hoc detect ERASE coding-rate GNNGuard edge defense CE+W2 spectral GCOD centroid reliability CommDefense self-supervised

7 backbones

GCNGATGATv2 GINGPS GCN\ tunedGAT\ tuned

9 label-noise models

UniformCoin-flipPair RandomRandom PairFlip Uniform MixDeterministicInstance

24 datasets — homophilic to heterophilic, citation to industrial

Planetoid citation

cora · citeseer · pubmed

Heterophilous platonov et al.

amazon-ratings · tolokers · roman-empire · minesweeper · questions

Co-purchase amazon

amazon-computers · amazon-photo · dblp

Social attributed

blogcatalog · flickr

GraphLAND industrial · to 1.4M nodes

hm-categories · pokec-regions · web-topics · tolokers-2 · city-reviews · artnet-exp · web-fraud

Structured gnn-benchmark · lrgb

pattern · cluster · pascalvoc-sp · coco-sp

Beyond accuracy

We measure three things at once.

Accuracy alone hides why a method wins or fails. Each run reports how it classifies, how its representations behave, and what it costs.

Classification

  • Accuracy · macro-F1
  • Precision · Recall
  • ROC-AUC
  • clean / mislabelled / recovered splits
  • Oversmoothing

  • NumRank · Erank
  • EDir · EProj
  • MAD
  • rank-collapse as a failure signal
  • Compute & carbon

  • FLOPs — train & inference
  • wall-clock time
  • CO₂ via CodeCarbon
  • the price of robustness

What we found

Robustness is conditional — not a property you inherit.

Reported gains do not automatically transfer. The benchmark surfaces failure modes that only appear off the usual small citation graphs.

Finding 01

It depends on the backbone.

On the standard GCN/GAT backbones most methods beat Standard under noise (ERASE +14.3, RTGNN +9.0, GraphCleaner +8.4 on Cora/uniform). On a strong, wide GCN\* the gap compresses toward the baseline — or the method fails outright.

Finding 02 — collapse

Geometry-based methods collapse at width. rank ≈ 1

ERASE and UnionNET fall to chance train accuracy on the 512-wide backbone — clean and noisy alike — as their embedding rank collapses to one. Healthy at h64, they degenerate at h512. Documented, not patched.

Finding 03

Structure amplifies label noise.

Message-passing-induced rank collapse is a measurable mechanism through which topology degrades representations under noise — visible directly in the oversmoothing metrics, not just the accuracy.

Finding 04 — cost

The price varies by orders of magnitude.

GNNGuard recomputes cosine attention every epoch (≈170× Standard per epoch); NRGNN's edge predictor runs out of memory on large graphs. Six of thirteen methods do not scale past mid-sized graphs.

Reproducible by design

Run the whole thing in three steps.

Pinned dependencies, a Cartesian sweep syntax in one YAML, and incremental execution that resumes where it stopped. Prefer a guided start? The Experiment Builder creates and validates the configuration for you.

1 · install (pinned: torch 2.2.1, PyG 2.5.3)

python3 -m pip install -r requirements.txt

2 · point config.yaml at a dataset / noise / method

£[cora, roman-empire] expands to a sweep grid

3 · run — resumes automatically, aggregates seeds

python3 main.py -c config.yaml

results → results/<experiment>/experiment.json

1. One config, many runs. The £\[…\] sweep syntax turns a single YAML into a Cartesian grid over datasets, noise types, rates, and methods. 2. Incremental & resumable. Only missing runs execute; bump \--num-runs from 5 to 10 and only runs 6–10 fire. 3. Faithful by default. Each method mirrors its official source; the no-oracle adaptations we make are documented, not silent.

Citation

If it helps your work, please cite us.

bibtexcopy

@misc{gln-benchmark, title = {Survey and Benchmark of Graph Learning under Label Noise}, author = {Wani, Farooq Ahmad and Purificato, Antonio and Bucarelli, Maria Sofia and Di Francesco, Andrea Giuseppe and Corelli, Michael and Pryymak, Oleksandr and Silvestri, Fabrizio}, year = {2026}, note = {Code: github.com/GLNBench/GLNBench} }

Authors

Farooq Ahmad Wani Antonio Purificato Maria Sofia Bucarelli Andrea Giuseppe Di Francesco Michael Corelli Oleksandr Pryymak Fabrizio Silvestri

glnbench.github.io · 1 images · 2 links

Comments (0)

No comments yet