This is a sample implementation of "Robust Graph Convolutional Networks Against Adversarial Attacks", KDD 2019.
tensorflow >= 1.12
numpy >= 1.14.2
scipy >= 1.1.0
networkx >= 2.0.0
gcn (note that you need to follow https://github.com/tkipf/gcn to correctly install gcn instead of using pip)
python src/train.py --dataset cora
optional arguments:
--dataset Dataset string.
--learning_rate Initial learning rate.
--epochs Number of epochs to train.
--hidden Number of units in hidden layer.
--dropout Dropout rate (1 - keep probability).
--para_var Parameter of variance-based attention.
--para_kl Parameter of kl regularization.
--para_l2 Parameter for l2 loss.
--early_stopping Tolerance for early stopping (# of epochs).
If you find this code useful, please cite our paper:
@inproceedings{zhu2019robust,
title={Robust graph convolutional networks against adversarial attacks},
author={Zhu, Dingyuan and Zhang, Ziwei and Cui, Peng and Zhu, Wenwu},
booktitle={Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining},
pages={1399--1407},
year={2019}
}
Our code is adapted from the Tensorflow implementation of GCN by Thomas Kipf (https://github.com/tkipf/gcn).