One-Class Graph Neural Networks for Anomaly Detection in Attributed Networks (OCGNN)

July 4, 2020 ยท View on GitHub

The Pytorch and DGL implement of the paper.

Details of our dataset

The Cora dataset has 7 categories of machine learning papers: "Case Based", "Genetic Algorithms", "Neural Networks (Class label = 2 in the DGL dataloader)", "Probabilistic Methods", "Reinforcement Learning", "Rule Learning", "Theory";

The Citeseer dataset consists of 6 paper classes: "Agents", "AI", "DB", "IR (Class label = 3)", "M"L, "HCI";

Each publication in the Pubmed dataset is classified into one of three classes ("Diabetes Mellitus, Experimental", "Diabetes Mellitus Type 1", "Diabetes Mellitus Type 2 (Class label = 2)").

In our experiments, classes in bold are defined as the normal classes, while the other classes are anomalous classes.

GNN based methods

Example:

python main.py --dataset [cora/citeseer/pubmed] --module [GCN/GAT/GraphSAGE/GAE] --nu 0.1 --lr 0.001 --n-hidden 32 --n-layers 2 --weight-decay 0.0005 --n-epochs 4000 --early-stop

Requirements:

pytorch>=1.4 DGL>=0.4.2 sklearn>=0.20.1 numpy>=1.16 networkx>=2.1

Two-stage mixture methods

Example:

python twostage.py --dataset [cora / citeseer / pubmed] --mode [A/X/AX] --emb-method [DeepWalk / Node2Vec / LINE / SDNE / Struc2Vec] --ad-method [PCA / OCSVM / IF / AE]

Requirements:

Pyod>=0.7.6 tensorflow>=1.4.0,<=1.14.0 gensim==3.6.0 DGL>=0.4.2 sklearn>=0.20.1 numpy>=1.16 networkx>=2.1