This repository is an implementation of our paper in PyTorch, based on GIL's implementation. Some of the libraries in the requirements.txt requires manual installation due to older version needed.
python == 3.6.2
torch == 1.1.0
numpy == 1.16.4
scipy == 1.3.0
networkx == 2.3
sage == 9.0
geoopt ==0.0.1
torch_scatter == 1.3.0
torch_geometric == 1.3.0
Before training, run
source set_env.sh
This will create environment variables that are used in the code.
We provide examples of training commands used to train JSGNN for link prediction and node classification.
- Cora JSGNN (Test ROC-AUC: 99.36):
python train.py --task lp --dataset cora --model JSGNN --dropout 0.1 --weight-decay 0.0005 --manifold PoincareBall --lr 0.01 --dim 16 --num-layers 1 --act relu --bias 1 --normalize-feats 0
- Pubmed JSGNN (Test ROC-AUC: 96.97):
python train.py --task lp --dataset pubmed --model JSGNN --dropout 0.1 --weight-decay 0.0 --manifold PoincareBall --lr 0.01 --dim 16 --num-layers 1 --act relu --bias 1
- Photo JSGNN (Test accuracy: 97.32):
python train.py --model JSGNN --manifold PoincareBall --lambda-uniform=0.2 --lambda-wasser=0.1 --task nc --dataset amazonphoto --dropout 0.1 --weight-decay 0.0 --lr 0.01 --dim 16 --num-layers 2 --act elu --bias 1 --use-feat=1
- Cora JSGNN (Test accuracy: 83.30):
python train.py --lambda-wasser=0.005 --lambda-uniform=0.5 --task nc --dataset cora --model JSGNN --dropout 0.5 --weight-decay 0.001 --manifold PoincareBall --lr 0.01 --dim 16 --num-layers 3 --act elu --bias 1