Skip to content

Latest commit

 

History

History
 
 

graph

Setup

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

Test Examples

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.

Full README

click here

Supported Datasets

  • 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

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

Defense Methods

Defense Methods Defense Type Apply Domain Paper Code
GCN Victim Model Node Classification Semi-Supervised Classification with Graph Convolutional Networks test_gcn.py
ChebNet Victim Model Node Classification Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering test_chebnet.py
SGC Victim Model Node Classification Simplifying Graph Convolutional Networks test_sgc.py
GAT Adaptive Aggregation Node Classification Graph Attention Networks test_gat.py
DeepWalk Victim Model Node Embedding DeepWalk: Online Learning of Social Representations test_deepwalk.py
Node2Vec Victim Model Node Embedding node2vec: Scalable Feature Learning for Networks test_deepwalk.py
RGCN Adaptive Aggregation Node Classification Robust Graph Convolutional Networks Against Adversarial Attacks test_rgcn.py
GCN-Jaccard Graph Purifying Node Classification Adversarial Examples on Graph Data: Deep Insights into Attack and Defense test_gcn_jaccard.py
GCN-SVD Graph Purifying Node Classification All You Need is Low (Rank): Defending Against Adversarial Attacks on Graphs test_gcn_svd.py
Adv-training Adversarial Training Node Classification test_adv_train_poisoning.py
Pro-GNN Graph Purifying Node Classification Graph Structure Learning for Robust Graph Neural Network test_prognn.py
SimP-GCN Adaptive Aggregation Node Classification Node Similarity Preserving Graph Convolutional Networks test_simpgcn.py
MedianGCN Adaptive Aggregation Node Classification Understanding Structural Vulnerability in Graph Convolutional Networks test_median_gcn.py