Skip to content
forked from Tiiiger/SGC

official implementation for the paper "Simplifying Graph Convolutional Networks" focusing on Dependencies, Authors:, Data, Usage, Downstream.

License

Notifications You must be signed in to change notification settings

chenxingqiang/SGC

 
 

Repository files navigation

Simplifying Graph Convolutional Networks

Authors:

*: Equal Contribution

Overview

This repo contains an example implementation of the Simple Graph Convolution (SGC) model, described in the paper Simplifying Graph Convolutional Networks.

SGC removes the nonlinearities and collapes the weight matrices in Graph Convolutional Networks (GCNs) and is essentially a linear model. For an illustration,

SGC achieves competitive performance while saving much training time. For reference, on a GTX 1080 Ti,

Dataset Metric Training Time
Cora Acc: 81.0 % 0.13s
Citeseer Acc: 71.9 % 0.14s
Pubmed Acc: 78.9 % 0.29s
Reddit F1: 94.9 % 2.7s

This home repo contains the implementation for citation networks (Cora, Citeseer, and Pubmed) and social network (Reddit). if you find this repo useful, please cite:

@article{sgc,
  title={Simplifying Graph Convolutional Networks},
  author={Wu, Felix and Zhang, Tianyi and Souza Jr., Amauri Holanda and Fifty, Christopher and Yu, Tao and Weinberger, Kilian Q.},
  journal={arXiv preprint arXiv:1902.07153},
  year={2019}
}

Other reference implementation

Another reference implementation can be found within the PyTorch Geometric Project with documentation and example. Note that in example, the hyperparameters are set differently from our official implementation.

Dependencies

Our implementation works with PyTorch>=1.0.0 Install other dependencies: $ pip install -r requirements.txt

Data

We provide the citation network datasets under data/, which corresponds to the public data splits. Due to space limit, please download reddit dataset from FastGCN and put reddit_adj.npz, reddit.npz under data/.

Usage

Citation Networks: We tune the only hyperparameter, weight decay, with hyperopt and put the resulting hyperparameter under SGC-tuning. See tuning.py for more details on hyperparameter optimization.

$ python citation.py --dataset cora --tuned
$ python citation.py --dataset citeseer --tuned --epochs 150 
$ python citation.py --dataset cora --tuned

Reddit:

$ python reddit.py --inductive --test

Downstream

We collect the code base for downstream tasks under downstream. Currently, we are releasing only SGC implementation for text classification. More downstream tasks are coming soon.

Acknowledgement

This repo is modified from pygcn, and FastGCN. We thank Matthias Fey, author of PyTorch Geometric for his help on providing a reference implementation of SGC within PyTorch Geometric.

About

official implementation for the paper "Simplifying Graph Convolutional Networks" focusing on Dependencies, Authors:, Data, Usage, Downstream.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%