🚀 SCOUT: Structure-Aware Aspect and Anchor-Count Selection for Node Attribute Augmentation via Positional Information
SCOUT is a model-agnostic augmentation framework that enhances graph neural networks (GNNs) when node attributes are missing, sparse, or uninformative, by leveraging multi-aspect positional information and a graph-aware anchor selection mechanism.
When node attributes are absent or limited, GNNs often fail to distinguish structurally similar nodes, leading to degraded downstream performance.
SCOUT addresses this by:
- Selecting positional aspects (centrality–similarity pairs) via a graph-level attention mechanism.
- Determining the anchor-count per graph using a principled elbow method grounded in power-law centrality distributions.
- Augmenting node features with positional information that complements original attributes (when present).
This results in significant gains across link prediction and node classification tasks, both with and without node attributes.
📄 Paper: SCOUT: Structure-Aware Aspect and Anchor-Count Selection for Node Attribute Augmentation via Positional Information
🌐 Conference: The Web Conference (WWW), 2026
📁 Code: https://github.com/seinkim01/SCOUT
- Installation
- Usage
- Project Structure
- Features
- Configuration
- Dependencies
- Examples
- Experimental Results
- Troubleshooting
- Contributors
- License
We recommend using Conda to manage dependencies:
# Recommended
conda env create -f requirements_conda.yaml
conda activate scoutOr, use pip:
pip install -r requirements.txtTo run link prediction on Cora with SCOUT:
bash scripts/run_linkpred.shFor node classification:
python src/core/train_nodeclf.pyAll major configurations can be modified via the config files or script arguments.
SCOUT/
├── attrs/ # Precomputed centrality & similarity scores
├── datasets/ # Graph datasets (e.g., Cora, Citeseer)
├── logs/ # Training logs
├── results/ # Output metrics and predictions
├── scripts/ # Automation scripts for experiments
├── src/
│ ├── core/ # Training pipelines & preprocessing
│ ├── models/ # GNN modules, decoder, attribute gates
│ └── utils/ # Data loading, helper functions
├── requirements.txt
├── requirements_conda.yaml
└── README.md
- ✅ Model-agnostic augmentation: Integrates with any GNN backbone.
- 🧠 Graph-level positional aspect selection: Learns which structural features matter.
- 🎯 Elbow-based anchor-count detection: Automatically selects anchor nodes per graph.
- 📈 Performance improvements on OGB & citation benchmarks, both with/without features.
- 🔧 Supports downstream tasks: link prediction & node classification.
- Datasets: Place in
datasets/ - Attributes: Precompute and store in
attrs/ - Custom aspects: Modify
generate_attributes.py - Logging: Enabled via
logs/directory - Models: Can be swapped or extended under
src/models/
- Python ≥ 3.8
- PyTorch
- DGL or PyG
- NumPy, SciPy, tqdm
- cuGraph (optional for acceleration)
Check requirements_conda.yaml for exact versions.
# Link prediction with SCOUT augmentation
bash scripts/run_linkpred.sh
# Node classification on augmented features
python src/core/train_nodeclf.pySCOUT achieves:
- +26.88% Hits@20 on ogbl-ddi (w/o original attributes)
- +11.69% accuracy on ogbn-mag (w/ original attributes)
- Outperforms HPLC, P-GNN, SEAL and others across tasks
Refer to the paper or results/ for detailed tables and plots.
-
Issue: Attribute files not found?
Ensure correct folder structure underattrs/. -
Issue: CUDA memory overflow?
Reduce batch size or number of anchors (K). -
Using PyG or DGL?
Modify model imports insrc/models/.
- Dong-Hyuk Seo — Hanyang University
- Sein Kim — Hanyang University
- Taeri Kim — Hanyang University
- Won-Yong Shin — Yonsei University
- Sang-Wook Kim — Hanyang University
📌 This code is currently under review for publication at WWW 2026.
The license will be updated upon acceptance. For academic use only.
📣 For citation, please refer to the paper once it's published officially.