Official implementation of Unsupervised Graph Poisoning Attack via Contrastive Loss Back-propagation, WWW22
Built based on GCA and DeepRobust.
Tested on pytorch 1.7.1 and torch_geometric 1.6.3.
1.To produce poisoned graphs with CLGA
python CLGA.py --dataset Cora --num_epochs 3000 --device cuda:0
It will automatically save three poisoned adjacency matrices in ./poisoned_adj which have 1%/5%/10% edges perturbed respectively. You may reduce the number of epochs for a faster training.
2.To produce poisoned graphs with baseline attack methods
python baseline_attacks.py --dataset Cora --method dice --rate 0.10 --device cuda:0
It will save one poisoned adjacency matrix in ./poisoned_adj.
3.To train the graph contrastive model for node classification with the poisoned graph
python train_GCA.py --dataset Cora --perturb --attack_method CLGA --attack_rate 0.10 --device cuda:0
It will load and train on the corresponding poisoned adjacency matrix specified by dataset, attack_method and attack_rate.
For link prediction, run train_LP.py.