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

2022 年 4 月 11 日 图与推荐

官网: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

  • • 配备异常值生成方法与模型评价指标

使用示例:

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文章,以方便用户更好地使用,为社区提供新的见解。

5. 联系方式

如有任何问题或建议,请与PyGOD团队取得联系。你可以通过在GitHub提交issue反馈问题,提交PR参与贡献(比如提交论文代码以便加入PyGOD),或发送电子邮件至dev@pygod.org来反馈你的想法。你也可以直接联系团队成员:

伊利诺伊大学芝加哥分校:刘泽宽,窦英通

卡内基梅隆大学:赵越,丁雪莹,胡曦阳

北京航空航天大学:张瑞桐

伊利诺伊理工学院:陈灿宇


亚利桑那州立大学:丁凯泽

大家的 star,fork,watch,转发,和使用,都是对PyGOD团队持续维护和更新的强力支持!

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

官网:https://pygod.org/

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

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


登录查看更多
6

相关内容

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。异常也被称为离群值、新奇、噪声、偏差和例外。 特别是在检测滥用与网络入侵时,有趣性对象往往不是罕见对象,但却是超出预料的突发活动。这种模式不遵循通常统计定义中把异常点看作是罕见对象,于是许多异常检测方法(特别是无监督的方法)将对此类数据失效,除非进行了合适的聚集。相反,聚类分析算法可能可以检测出这些模式形成的微聚类。 有三大类异常检测方法。[1] 在假设数据集中大多数实例都是正常的前提下,无监督异常检测方法能通过寻找与其他数据最不匹配的实例来检测出未标记测试数据的异常。监督式异常检测方法需要一个已经被标记“正常”与“异常”的数据集,并涉及到训练分类器(与许多其他的统计分类问题的关键区别是异常检测的内在不均衡性)。半监督式异常检测方法根据一个给定的正常训练数据集创建一个表示正常行为的模型,然后检测由学习模型生成的测试实例的可能性。
专知会员服务
32+阅读 · 2021年9月16日
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
49+阅读 · 2021年1月20日
一份简单《图神经网络》教程,28页ppt
专知会员服务
124+阅读 · 2020年8月2日
专知会员服务
118+阅读 · 2020年7月22日
【WWW2020】DGL深度图神经网络实战教程,PPT+代码
专知会员服务
175+阅读 · 2020年4月12日
生成式对抗网络GAN异常检测
专知会员服务
116+阅读 · 2019年10月13日
推荐系统领域13个开源工具总结
机器学习与推荐算法
1+阅读 · 2021年12月7日
入群交流一波图神经网络框架 PyG 2.0 吧~
图与推荐
3+阅读 · 2021年11月17日
可能是最好用的图神经网络框架, PyG 2.0发布
图与推荐
0+阅读 · 2021年9月13日
异常检测论文大列表:方法、应用、综述
专知
126+阅读 · 2019年7月15日
PyTorch & PyTorch Geometric图神经网络(GNN)实战
专知
81+阅读 · 2019年6月1日
Github热门图深度学习(GraphDL)源码与框架
新智元
21+阅读 · 2019年3月19日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
13+阅读 · 2008年12月31日
Arxiv
0+阅读 · 2022年4月18日
Arxiv
0+阅读 · 2022年4月14日
Arxiv
21+阅读 · 2020年10月11日
VIP会员
相关VIP内容
专知会员服务
32+阅读 · 2021年9月16日
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
49+阅读 · 2021年1月20日
一份简单《图神经网络》教程,28页ppt
专知会员服务
124+阅读 · 2020年8月2日
专知会员服务
118+阅读 · 2020年7月22日
【WWW2020】DGL深度图神经网络实战教程,PPT+代码
专知会员服务
175+阅读 · 2020年4月12日
生成式对抗网络GAN异常检测
专知会员服务
116+阅读 · 2019年10月13日
相关资讯
推荐系统领域13个开源工具总结
机器学习与推荐算法
1+阅读 · 2021年12月7日
入群交流一波图神经网络框架 PyG 2.0 吧~
图与推荐
3+阅读 · 2021年11月17日
可能是最好用的图神经网络框架, PyG 2.0发布
图与推荐
0+阅读 · 2021年9月13日
异常检测论文大列表:方法、应用、综述
专知
126+阅读 · 2019年7月15日
PyTorch & PyTorch Geometric图神经网络(GNN)实战
专知
81+阅读 · 2019年6月1日
Github热门图深度学习(GraphDL)源码与框架
新智元
21+阅读 · 2019年3月19日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
13+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员