This is the code for "LD²: Scalable Heterophilous Graph Neural Network with Decoupled Embeddings", NeurIPS 2023.
Proceedings (Paper/Supplemental) | Conference (Poster/Video/Slides) | OpenReview | GitHub
If you find this work useful, please cite our paper:
Ningyi Liao, Siqiang Luo, Xiang Li, and Jieming Shi.
LD2: Scalable Heterophilous Graph Neural Network with Decoupled Embeddings.
Advances in Neural Information Processing Systems 36: 10197-10209, 2023.
@inproceedings{liao2023ld2,
title={{LD2}: Scalable Heterophilous Graph Neural Network with Decoupled Embedding},
author={Liao, Ningyi and Luo, Siqiang and Li, Xiang and Shi, Jieming},
booktitle={Advances in Neural Information Processing Systems},
volume={36},
pages={10197-10209},
year={2023},
month={Dec},
editor = {A. Oh and T. Neumann and A. Globerson and K. Saenko and M. Hardt and S. Levine},
publisher = {Curran Associates, Inc.},
url = {https://proceedings.neurips.cc/paper_files/paper/2023/file/206191b9b7349e2743d98d855dec9e58-Paper-Conference.pdf},
}
- Use LINKX source to download raw data.
- Run command
python data_convert.py
to generate processed files under pathdata/[dataset_name]
similar to the example folderdata/actor
:
feats.npy
: features in .npy arraylabels.npz
: node label information- 'label': labels (number or one-hot)
- 'idx_train/idx_val/idx_test': indices of training/validation/test nodes
adj_el.bin
,adj_pl.bin
,attribute.txt
,deg.npz
: graph files for precomputation
- Environment: CMake 3.16, C++ 14. Dependencies: eigen3, Spectra
- Compile Cython:
python setup.py build_ext --inplace
- Install dependencies:
conda create --name [envname] --file requirements.txt
- Run minibatch experiment:
python run_mini.py -f [seed] -c [config_file] -v [device]
Baselines: LINKX | GloGNN | ACM | PPRGo | AGP
Datasets: Yelp - GraphSAINT | Reddit - PPRGo | Amazon - Cluster-GCN | tolokers | Others - LINKX
NOTE (2023-11-26): the current version has different propagation computation due to some new optimization strategies, which may cause speed differences. We will update the code soon.
- Adj propagation parallel and clocking
- Upload dataset configs