Scaffold: Support Graph Theory Based Sparsification for Graph Neural Networks
Organizations: Pacific Northwest National Laboratory · University of Texas at Dallas · University of North Carolina at Charlotte · Adobe · Boise State University · Purdue University
Abstract
Graph neural networks (GNNs) rely on message passing over graph edges, making their computational and memory costs strongly dependent on graph density. Graph sparsification offers a natural way to reduce these costs, but removing edges indiscriminately can distort important communication structure and degrade predictive performance. We introduce Scaffold, a topology-based, unsupervised graph sparsification framework derived from support graph theory preconditioners. Scaffold explicitly controls two complementary structural quantities: dilation, which measures the length of rerouting paths induced by removed edges, and congestion, which measures how strongly these rerouted paths concentrate on the retained support. By jointly controlling dilation and congestion, Scaffold preserves short communication paths while avoiding structural bottlenecks. To our knowledge, Scaffold is the first scalable GNN sparsification framework to use a joint supporting-path dilation-congestion criterion. Across 19 homophilic and heterophilic benchmarks spanning small to large graphs, Scaffold achieves the best aggregate rank among the evaluated sparsification and related methods. Using only 10%-50% of the original edges per sparse support, Scaffold recovers or closely approaches full-graph GNN performance while using less than half the memory of full-graph training and reducing end-to-end training time, including sparsification overhead. We provide an open-source software package at https://github.com/siddhartha047/Scaffold.
Figures & tables
| Variant | Scoring / selection | Complexity | Graph | Time (s) | Use |
| Greedy | dynamic, all; best one | 0.78 | reference | ||
| Heap | dynamic, affected; heap max. | 25.16 | small | ||
| Batch | dynamic, sampled; top- | 31.01 | medium/large | ||
| Fast | static on ; top- | 2.30 | large | ||
| Sample | static, forests; budgeted draw | pre.; draw | 9.02 | large |
| Ay (a) Dataset group I: Homophilic and Heterophilic | ||||||||||||
| Method | Cora | CiteSeer | Am. Photo | WikiCS | Am. Comp. | Coauth. CS | PubMed | Coauth. Phys. | Chameleon | Squirrel | GM | |
| Target | ||||||||||||
| 2.71k/5.28k | 3.33k/4.55k | 7.65k/119.08k | 11.70k/215.60k | 13.75k/245.86k | 18.33k/81.89k | 19.72k/44.32k | 34.49k/247.96k | 0.89k/8.85k | 2.22k/47.00k | |||
| Ref. | Full-graph | 84.56 ±0.63 | 72.30 ±0.47 | 95.95 ±0.33 | 80.27 ±0.44 | 93.80 ±0.20 | 95.72 ±0.04 | 81.22 ±1.11 | 97.50 ±0.12 | 45.46 ±4.42 | 44.77 ±2.36 | 76.44 |
| No graph | 59.64 ±1.31 | 57.12 ±0.55 | 92.09 ±0.51 | 73.48 ±0.25 | 87.04 ±0.36 | 95.10 ±0.11 | 70.86 ±1.44 | 96.31 ±0.02 | 36.48 ±3.09 | 40.07 ±1.40 | 67.29 | |
| S. Forest | 80.10 ±0.26 | 69.42 ±0.56 | 93.97 ±0.08 | 76.65 ±0.22 | 90.45 ±0.25 | 95.47 ±0.19 | 79.48 ±0.46 | 96.90 ±0.02 | 36.73 ±4.52 | 37.59 ±1.74 | 71.87 | |
Appendix figures & tables29 assets
Supplementary material from the paper’s appendix.
Appendix
| Symbol | Meaning |
| ; | Input graph with nodes and edges. |
| ; | Current sparse support and initial spanning-forest backbone. |
| ; | Edge-retention ratio and target edge budget. |
| Candidate edges omitted from the current support. | |
| Supporting path of omitted edge in . | |
| Maximum dilation, edge congestion, and node congestion. |
| Time (s) | |||||
| Variant | Graph | Speedup | |||
| Scaffold-Greedy | 1.63 | 1.01 | 0.78 | ||
| Scaffold-Heap | 25.09 | 25.02 | 25.16 | ||
| Scaffold-Batch | 206.12 | 57.54 | 31.01 | ||
| Scaffold-Fast | 3.53 | 2.78 | 2.30 | ||
| Scaffold-Sample | 33.77 | 11.81 | 9.02 | ||
| Backbone | Complexity | ||
| ms | ms | ||
| Fast-MaxSF/MinSF | 22.72–23.74 | 0.035–0.036 | |
| MaxSF/MinSF | 22.25–22.41 | 0.035 | |
| Fast-RandSF | 98.76 | 0.113 | |
| RandSF | 162 | 0.234 | |
| SPF | 817 | 1.13 |
| Graph scale | Structure | Task | |||||
| Dataset | Metric | ||||||
| Heterophilic small/medium | |||||||
| Roman-empire ( Platonov et al., 2023b ) | 22.66K | 32.93K | 2.91 | -0.05 | 18 | 300 | Acc |
| Squirrel ( Platonov et al., 2023b ) | 2.22K | 47.00K | 42.28 | 0.01 | 5 | 2.09K | Acc |
| Minesweeper ( Platonov et al., 2023b ) | 10.00K | 39.40K | 7.88 | 0.01 | 2 | 7 | AUC |
| Questions ( Platonov et al., 2023b ) | 48.92K | 153.54K | 6.28 | 0.02 | 2 | 301 | AUC |
| Protocol | Architecture | Optimization | Evaluation | ||||||
| Dataset | Epochs | Runs | Norm./Res. | Dropout | LR | WD | Metric | ||
| Heterophilic small/medium | |||||||||
| Roman-empire | 2500 | 3 | 9 | 512 | bn, res ∗ | 0.50 | 1e-3 | 0 | Acc |
| Squirrel | 500 | 10 | 4 | 256 | bn, res | 0.70 | 1e-2 | 5e-4 | Acc |
| Minesweeper | 2000 | 3 | 12 | 64 | bn, res | 0.20 | 1e-2 | 0 | AUC |
| Questions | 1500 | 3 | 10 | 512 | res ∗ | 0.30 | 3e-5 | 0 | AUC |
| Method(s) GNN / budget Training and evaluation | |
| Anchors | No Graph MLP; Feature-only prediction. Spanning Forest Shared GNN; One spanning-forest support for training and inference. Full Graph TunedGNN; Original graph without sparsification. |
| Topology | Random, Local Degree, Rank Degree, Forest Fire, SCAN Shared GNN; ; One support per run and budget, reused throughout training. L-Spar, G-Spar, L-Sim, Spectral (ER), -Spanner, DSpar Shared GNN; ; Each sparsifier is evaluated independently using the shared training preset. |
| Semantic | Unified-LTH Shared GNN preset Two 200-epoch mask-search rounds followed by ticket-training epochs; graph retention , no weight pruning. AdaGLT Shared GNN preset 400 mask-search epochs followed by retraining epochs; adjacency sparsity , no weight pruning. MoG Shared GNN; ; Three sparsifier experts at retention , trained jointly with the downstream GNN. |
| Sampling | Tuned-GraphSAGE Tuned-GraphSAGE; Dataset-specific neighborhood sampling on the original graph. Tuned-GraphSAINT Shared GNN; Random-walk subgraph sampling with dataset-specific settings. |
| Scaffold | Scaffold-Greedy Shared GNN; ; Full dynamic rescoring after every insertion. Scaffold-Heap Shared GNN; ; Cached priorities with selective refresh. Scaffold-Batch Shared GNN; ; Scores sampled batches and inserts top- edges. Scaffold-Fast Shared GNN; ; Scores once on the initial spanning-forest backbone. Scaffold-Sample Shared GNN; ; Reuses precomputed weights to draw exactly budgeted supports. Scaffold settings Refreshed supports may be generated asynchronously. Scaffold- Shared GNN; ; One -edge support for training and inference. Scaffold- Shared GNN; per support; Refreshes every epochs, retains top- validation supports ( ), and infers once on their union. |
| Method | Cora | CiteSeer | PubMed | Amazon Computer | Amazon Photo | Coauthor CS | Coauthor Physics | WikiCS | GM | |
| Retention ratio † below the spanning-forest floor here: Cora, CiteSeer, PubMed | ||||||||||
| Semantic | Unified-LTH | 72.12 ±3.47 | 63.76 ±1.19 | 75.26 ±0.67 | 86.88 ±0.74 | 91.94 ±0.36 | 94.99 ±0.37 | 96.49 ±0.00 | 75.49 ±0.17 | 81.32 |
| AdaGLT | 72.74 ±0.63 | 65.26 ±1.00 | 75.84 ±0.56 | 91.53 ±0.42 | 94.16 ±0.19 | 95.13 ±0.08 | 96.65 ±0.00 | 76.48 ±0.13 | 82.67 | |
| MoG | 73.66 ±0.77 | 65.28 ±1.50 | 71.56 ±0.54 | 92.55 ±0.05 | 95.45 ±0.29 | 94.94 ±0.20 | 96.93 ±0.10 | 77.48 ±0.66 | 82.60 | |
| Topology | Random | 73.40 ±0.51 | 65.86 ±0.95 | 74.26 ±0.62 | 91.05 ±0.15 | 94.38 ±0.16 | 94.71 ±0.04 | 96.66 ±0.05 | 77.04 ±0.63 | 82.64 |
| Method | Squirrel | Chameleon | Roman empire | Amazon ratings | Minesweeper | Questions | GM | |
| Retention ratio † below the spanning-forest floor here: Roman empire, Questions | ||||||||
| Semantic | Unified-LTH | 38.17 ±2.09 | 37.61 ±3.67 | 65.43 ±0.58 | 40.49 ±0.52 | 69.70 ±1.12 | 72.42 ±0.64 | 51.75 |
| AdaGLT | 42.30 ±3.91 | 38.03 ±4.12 | 81.43 ±0.00 | 48.05 ±0.35 | 62.60 ±1.27 | 72.34 ±0.33 | 55.27 | |
| MoG | 43.25 ±1.12 | 43.40 ±3.13 | 70.44 ±0.60 | 51.24 ±0.33 | 74.02 ±0.32 | 68.90 ±1.68 | 57.07 | |
| Topology | Random | 40.90 ±1.70 | 37.85 ±3.35 | 67.07 ±0.24 | 48.40 ±0.43 | 72.39 ±1.04 | 71.89 ±0.90 | 54.48 |
| Method | ogbn- products | ogbn- arxiv | ogbn- proteins | Pokec | GM | ||
| Retention ratio † below the spanning-forest floor here: ogbn-arxiv | |||||||
| Semantic | Unified-LTH | 91.90 ±0.00 | 71.72 ±0.00 | 55.53 ±0.00 | 66.46 ±0.00 | 65.50 ±0.00 | 69.26 |
| AdaGLT | 71.45 ±0.00 | 61.17 ±0.00 | 55.94 ±0.00 | 63.58 ±0.00 | 62.99 ±0.00 | 62.83 | |
| MoG | 85.15 ±0.07 | 63.45 ±0.09 | 56.25 ±0.15 | 71.12 ±0.08 | 64.14 ±0.01 | 67.36 | |
| Topology | Random | 93.13 ±0.08 | 71.93 ±0.03 | 61.64 ±0.04 | 76.50 ±0.72 | 68.86 ±0.01 | 73.71 |
| Dataset | Scaffold-Batch | Scaffold-Fast | Scaffold-Sample | |||||||
| Cora | 0.7 | 10 | 0.998 | 1.43 | 10 | 0.870 | 1.24 | 10 | 0.844 | 1.21 |
| CiteSeer | 0.7 | 10 | 0.981 | 1.40 | 10 | 0.910 | 1.30 | 10 | 0.752 | 1.07 |
| Amazon Photo | 0.3 | 10 | 0.905 | 3.02 | 10 | 0.808 | 2.69 | 10 | 0.695 | 2.32 |
| WikiCS | 0.3 | 10 | 0.329 | 1.10 | 10 | 0.300 | 1.00 | 10 | 0.821 | 2.74 |
| Amazon Computers | 0.3 | 10 | 0.442 | 1.47 | 10 | 0.436 | 1.45 | 5 | 0.570 | 1.90 |
| Variant / stage | CPU workers | |||||
| 1 | 2 | 4 | 8 | 16 | 32 | |
| Scaffold-Fast | 498.38 | 284.13 | 213.08 | 196.54 | 201.54 | 182.08 |
| Scaffold-Batch | 630.43 | 355.01 | 265.93 | 242.33 | 232.81 | 216.50 |
| Sample : first support | 504.96 | 358.56 | 232.61 | 139.49 | 124.69 | 87.25 |
| Sample : subsequent support | 1.40 | 1.27 | 1.22 | 1.20 | 1.18 | 1.16 |
| Stage | CPU workers | |||||
| 1 | 2 | 4 | 8 | 16 | 32 | |
| First support (total) | 504.96 | 358.56 | 232.61 | 139.49 | 124.69 | 87.25 |
| Forests + weights | 472.57 | 320.16 | 195.16 | 107.40 | 87.36 | 54.80 |
| Save weights | 25.70 | 30.71 | 30.91 | 25.53 | 30.79 | 25.71 |
| Other first-support work | 6.73 | 6.60 | 6.57 | 6.53 | 6.54 | 6.53 |
| Variant | Gather-Scatter | SpMM | ||||||||
| Agg. | Rest | Total | GPU | Agg. | Rest | Total | GPU | |||
| Scaffold-Fast-1 | 0.1 | 133.9 | 37.5 | 70.8 | 242.3 | 9.98 | 12.6 | 64.6 | 211.2 | 3.97 |
| Scaffold-Fast-1 | 0.3 | 174.8 | 138.4 | 132.1 | 445.3 | 24.52 | 27.2 | 106.9 | 308.9 | 5.54 |
| Scaffold-Fast-1 | 0.5 | 223.5 | 236.7 | 190.3 | 650.5 | 39.09 | 41.5 | 146.8 | 411.7 | 7.35 |
| Full-GCN | 1.0 | 0.0 | 553.0 | 336.2 | 889.3 | 75.43 | 77.0 | 249.8 | 326.8 | 11.84 |
| Method | ogbn- products | ogbn- arxiv | ogbn- proteins | Pokec | |
| Random | 1.23 | 1.37 | 0.015 | 0.819 | 0.582 |
| Local degree | 41.20 | 30.39 | 0.543 | 24.01 | 10.02 |
| Rank degree | 249.83 | 69.20 | 4.05 | 169.86 | 27.50 |
| Forest Fire | 2501.61 | — | 10.33 | 1414.05 | 692.14 |
| SCAN | 78.66 | 47.57 | 0.649 | 40.52 | 13.32 |
| L-Spar | 80.46 | 49.19 | 0.594 | 40.83 | 11.48 |
| Method | ogbn-products | ogbn-arxiv | |||||||
| Full-GCN | 0.0 | 713.4 | 713.4 | 0.0 | 1154.0 | 1154.0 | 0.0 | 96.7 | 96.7 |
| Scaffold-Fast-1 | 72.0 | 237.0 | 309.0 | 153.1 | 549.0 | 702.0 | 6.3 | 76.3 | 82.6 |
| Scaffold-Batch-1 | 208.8 | 235.3 | 444.2 | 250.7 | 522.4 | 773.1 | 9.3 | 72.8 | 82.1 |
| Scaffold-Sample-1 | 48.8 | 238.3 | 287.1 | 133.9 | 508.1 | 642.0 | 6.1 | 70.7 | 76.7 |
| DSpar | 4.0 | 224.4 | 228.4 | 4.1 | 491.8 | 496.0 | 0.1 | 70.4 | 70.5 |
| Dataset | Method | Accuracy (%) | Time (s) | |||
| Sync | Async | Sync | Async | |||
| Cora | 0.7 | Scaffold-Fast | 82.92 ±0.47 | 82.94 ±0.90 | 12.6 | 12.3 |
| Scaffold-Sample | 83.28 ±0.26 | 83.00 ±0.29 | 11.8 | 11.4 | ||
| Amazon-Computers | 0.3 | Scaffold-Fast | 92.09 ±0.09 | 92.18 ±0.15 | 280.6 | 35.7 |
| Scaffold-Sample | 92.52 ±0.28 | 92.55 ±0.36 | 50.0 | 36.8 | ||
| Method | Chameleon | Squirrel |
| Random-1 | 37.85 ±3.35 | 40.90 ±1.70 |
| Scaffold-1 | 42.50 ±4.38 | 44.62 ±1.67 |
| Random- | 43.09 ±3.30 | 43.24 ±2.03 |
| Scaffold- | 43.89 ±2.40 | 43.99 ±1.59 |
| Full-GCN | 45.46 ±4.42 | 44.77 ±2.36 |
| Method | Amazon Computers | ogbn-arxiv | ||
| 13.8K 245.9K | 169.3K 1.2M | |||
| Acc. | Time | Acc. | Time | |
| GCN | 93.77 ±0.03 | 39.4 s | 72.58 ±1.57 | 1.9 min |
| Scaf.-GCN 1 | 92.86 ±0.44 -0.91 | 34.9 s 1.13 | 69.83 ±0.36 -2.75 | 1.8 min 1.06 |
| Scaf.-GCN K,async | 93.51 ±0.08 -0.25 | 36.3 s 1.08 | 72.15 ±0.46 -0.43 | 1.7 min 1.16 |