PyGOD: Python 图数据异常检测开源工具库

2022-04-15 14:40:24 浏览数 (2)

官网:https://pygod.org/

GitHub:https://github.com/pygod-team/pygod/

文档:https://docs.pygod.org/en/latest/

1. 背景介绍

图模型可以对复杂的拓扑关系进行建模。因为其强大的表达能力,图模型最近被广泛用于推荐系统,生物制药等领域,并在很多领域上都有对应的开源工具库(推荐系统:GNN-RecSys,生物制药:DGL-LifeSci)。

作为数据挖掘中的经典问题,异常检测技术在图数据上的应用也逐渐受到关注。其主要应用方向有:虚假信息检测、金融欺诈检测,系统安全监测等。

如下图所示,用户在社交媒体上的好友关系就能自然地构成一张节点为用户,边为好友关系的图。通过寻找图中异常的的节点,边和子图,我们就能够发现对应可疑的用户,关系和群组,从而进一步采取相应措施。

图数据异常检测(图源:https://arxiv.org/abs/2106.07178)

为快捷地检测上述异常个体和行为,开源社区需要图数据异常检测工具库。虽然表格数据上的异常检测已有相对成熟的工具库(PyOD),但由于图结构数据的复杂性和图异常检测的独特性,表格数据上的异常检测方法难以直接运用至图结构数据。

为了弥补这一缺陷,近日PyGOD团队开源了首个基于 Python 的大型「图数据上的异常检测工具库」--PyGOD (Python Graph Outlier Detection),目前集成了超过10个重要的图数据异常检测模型。

2. 工具特色

PyGOD有下面几个特色:

  • • 像scikit-learn一样简单的API,只要5行代码就能实现图异常检测
  • • 完整的文档和交互式案例
  • • 无论是工业应用还是学术对比,你只需要准备PyG的数据格式,其他的交给PyGOD
  • • 配备异常值生成方法与模型评价指标

使用示例:

代码语言:javascript复制
from pygod.models import DOMINANT

model = DOMINANT()  # 初始化模型(可在此设置超参数)
model.fit(data)  # data是一个PyG数据对象

# 获取输入数据的raw outlier scores
outlier_scores = model.decision_scores

# 对新的数据进行预测
test_outlier_scores = model.decision_function(test_data)

3. 支持模型

目前PyGOD仅实现了图数据上的无监督的异常节点检测模型,在后续更新中将不断拓展PyGOD的范围。

方法

模型

年份

参考文献

MLP

MLPAE

2014

Anomaly Detection Using Autoencoders with Nonlinear Dimensionality Reduction

GNN

GCNAE

2016

Variational Graph Auto-Encoders

MF

ONE

2019

Outlier Aware Network Embedding for Attributed Networks

GNN

DOMINANT

2019

Deep Anomaly Detection on Attributed Networks

GAN

GAAN

2020

Generative Adversarial Attributed Network Anomaly Detection

GNN

AnomalyDAE

2020

Dual Autoencoder for Anomaly Detection on Attributed Networks

GNN

DONE

2020

Outlier Resistant Unsupervised Deep Architectures for Attributed Network Embedding

GNN

AdONE

2020

Outlier Resistant Unsupervised Deep Architectures for Attributed Network Embedding

GNN

OCGNN

2021

One-Class Graph Neural Networks for Anomaly Detection in Attributed Networks

GNN

GUIDE

2021

Higher-order Structure Based Anomaly Detection on Attributed Networks

除此之外,PyGOD 还包含一些模型评价方法:

类型

名称

功能

Metric

eval_precision_at_k

Calculating Precision@k

Metric

eval_recall_at_k

Calculating Recall@k

Metric

eval_roc_auc

Calculating ROC-AUC Score

Data

gen_structure_outliers

Generating structural outliers

Data

gen_attribute_outliers

Generating attribute outliers

4. 未来计划

根据 PyGOD 项目文档,其团队承诺会对项目进行长期维护,不断添加新的基于图的异常检测方法。团队也致力于把大家的图异常检测模型推广给其他学者作为 baseline,或者直接部署到工业界来创造生产力。团队也将在短期内公布arxiv文章,以方便用户更好地使用,为社区提供新的见解。

更多详情请参阅如下链接:

官网:https://pygod.org/

GitHub:https://github.com/pygod-team/pygod/

文档:https://docs.pygod.org/en/latest/

0 人点赞