When Bipartite Graph Learning Meets Anomaly Detection in Attributed Networks: Understand Abnormalities from Each Attribute
This is the official PyTorch implementation of ''When Bipartite Graph Learning Meets Anomaly Detection in Attributed Networks: Understand Abnormalities from Each Attribute'' (Peng, Z, Wang, Y, Lin, Q, Dong, B, & Shen, C, Neural Networks 2025): https://doi.org/10.1016/j.neunet.2025.107194
The code is presented in an easy-to-understand pattern. You could further optimize it based on your own needs.
numpy>=1.23.5
scipy>=1.10.0
torch>=1.12.1
dgl>=0.9.0
tensorboard>=2.11.0
scikit-learn>=1.2.1
tqdm>=4.64.1
icecream>=2.1.3
networkx>=2.8.4
matplotlib>=3.7.1
pandas>=1.5.3
We provide Enron dataset for model evaluation.
python main.py --dataset enron --gpu 0
- Process adjacency matrix and feature matrix into
scipy.sparse.csr_matrix
. - Process node labels into
numpy
dense matrix. - Pack these three things above into a
dict
with key names:
{'A': adj_matrix, 'X': features, 'gnd': labels}
- Dump the
dict
into./data/mydataset.pickle
withpickle
module. - Run in shell:
python main.py --dataset mydataset --gpu 0
Please cite our paper if you make advantage of EAGLE in your research:
@article{peng2025bipartite,
title={When bipartite graph learning meets anomaly detection in attributed networks: Understand abnormalities from each attribute},
author={Peng, Zhen and Wang, Yunfan and Lin, Qika and Dong, Bo and Shen, Chao},
journal={Neural Networks},
pages={107194},
year={2025},
publisher={Elsevier}
}