Skip to content

ChandlerBang/SimP-GCN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimP-GCN

A Pytorch implementation of "Node Similarity Preserving Graph Convolutional Networks" (WSDM 2021). [paper]

Abstract

Graph Neural Networks (GNNs) explore the graph structure and node features by aggregating and transforming information within node neighborhoods. However, through theoretical and empirical analysis, we reveal that the aggregation process of GNNs tends to destroy node similarity in the original feature space. But there are many scenarios where node similarity plays a crucial role. Thus, it has motivated the proposed framework SimP-GCN that can effectively and efficiently preserve node similarity while exploiting graph structure. We validate the effectiveness of SimP-GCN on seven benchmark datasets including three assortative and four disassorative graphs. The results demonstrate that SimP-GCN outperforms representative baselines. Further probe shows various advantages of the proposed framework.

Requirements

See that in https://github.com/ChandlerBang/SimP-GCN/blob/main/requirements.txt

tqdm==4.42.0
torch==1.2.0
ipdb==0.13.2
scipy==1.4.1
dgl==0.5.2
numpy==1.17.4
pandas==1.0.3
networkx==2.3
scikit_learn==0.23.2
tensorboardX==2.1

Installation

pip install -r requirements.txt

Reproduce the results

All the hyper-parameters settings are included in scripts folder. For example, you can run the following commands.

sh scripts/assortative/cora.sh
sh scripts/disassortative/actor.sh

You can run python run.py to get all the results. Make sure you have installed the same version of depedencies.

Note that for adversarial robustness, you need to install DeepRobust as follows:

git clone https://github.com/DSE-MSU/DeepRobust.git
cd DeepRobust
python setup.py install

You might also need to delete the saved cora temporary files generated by experiments on assortative graphs. It is because when evaluating adversarail robustness we use the largest connected component of the graph instead of the entire graph.

rm saved/cora* 
sh scripts/adversarial/cora.sh

You can also choose to run the test example (test_simpgcn.py) in DeepRobust.

python DeepRobust/deeprobust/exmaples/graphs/test_simpgcn.py --dataset cora --ptb_rate 0.2

Acknowledgement

This repository is modified from SelfTask-GNN, DropEdge and Geom-GCN. We sincerely thank them for their contributions.

Cite

For more information, you can take a look at the paper.

If you find this repo to be useful, please cite our paper. Thank you.

@inproceedings{jin2020node,
  title={Node Similarity Preserving Graph Convolutional Networks}, 
  author={Jin, Wei and Derr, Tyler and Wang, Yiqi and Ma, Yao and Liu, Zitao and Tang, Jiliang},
  booktitle={Proceedings of the 14th ACM International Conference on Web Search and Data Mining},
  year={2021},
  organization={ACM}
}

About

Implementation of the WSDM 2021 paper "Node Similarity Preserving Graph Convolutional Networks"

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published