git clone https://github.com/DSE-MSU/DeepRobust.git
cd DeepRobust
python setup.py install
Test GCN on perturbed graph (5% metattack)
python examples/graph/test_gcn.py --dataset cora
Test GCN-Jaccard on perturbed graph (5% metattack)
python examples/graph/test_gcn_jaccard.py --dataset cora
Generate attack by yourself
python examples/graph/test_mettack.py --dataset cora --ptb_rate 0.05
For a practice of deeprobust graph package, you can also refer to https://github.com/ChandlerBang/Pro-GNN.
- Cora
- Cora-ML
- Citeseer
- Pubmed
- Polblogs
- ACM: link1 link2
- BlogCatalog: link
- Flickr: link
- UAI: A Unifed Weakly Supervised Framework for Community Detection and Semantic Matching.
- PyTorch Geometric Datasets: Amazon-Computers, Amazon-Photo, CoauthorCS CoauthorPhysics...
For more details, please take a look at dataset.py
Attack Methods | Type | Perturbation | Evasion/ Poisoning |
Apply Domain | Paper | Code |
---|---|---|---|---|---|---|
Nettack | Targeted Attack | Structure Features |
Both | Node Classification | Adversarial Attacks on Neural Networks for Graph Data | test_nettack.py |
FGA | Targeted Attack | Structure | Both | Node Classification | Fast Gradient Attack on Network Embedding | test_fga.py |
Metattack | Global Attack | Structure Features |
Poisoning | Node Classification | Adversarial Attacks on Graph Neural Networks via Meta Learning | test_mettack.py |
RL-S2V | Targeted Attack | Structure | Evasion | Node Classification | Adversarial Attack on Graph Structured Data | test_rl_s2v.py |
Node Embedding Attack | Global Attack | Structure | Poisoning | Node Embedding | Adversarial Attacks on Node Embeddings via Graph Poisoning | test_node_embedding_attack.py |
Baselines for Node Embedding Attack Degree, eigencentrality and random |
Global Attack | Structure | Poisoning | Node Embedding | Adversarial Attacks on Node Embeddings via Graph Poisoning | test_node_embedding_attack.py |
PGD, Min-max | Global Attack | Structure | Both | Node Classification | Topology Attack and Defense for Graph Neural Networks: An Optimization Perspective | test_pgd.py test_min_max.py |
DICE | Global Attack | Structure | Both | Node Classification | Hiding individuals and communities in a social network | test_dice.py |
IG-Attack | Targeted Attack | Structure Features |
Both | Node Classification | Adversarial Examples on Graph Data: Deep Insights into Attack and Defense | test_ig.py |
NIPA | Global Attack | Structure | Poisoning | Node Classification | Non-target-specific Node Injection Attacks on Graph Neural Networks: A Hierarchical Reinforcement Learning Approach | test_nipa.py |
RND | Targeted Attack Global Attack |
Structure Features Adding Nodes |
Both | Node Classification | test_rnd.py | |
SGAttack | Targeted Attack | Structure | Poisoning | Node Classification | Adversarial Attack on Large Scale Graph | test_sga.py |