小组基本信息:
- 小组方向:AI算法在入侵检测、恶意软件识别、恶意流量识别方面的应用
- 论文题目:DAGAD: Data Augmentation for Graph Anomaly Detection
摘要
- 检测异常结点,属于结点型任务
- 目前存在的两个问题:
- 异常结点很难被捕获,其异常行为很微小,并且往往没有关于异常结点的先验知识
- 现实世界中大部分的结点都是正常的,就像银行贷款一样,往往1w人里面只有几个人是不还贷款的“异常结点”。存在严重的类别不平衡问题。
- 本文的模型:
- GNN将非欧数据压缩为d维向量(表征学习)
- 图增强模块,通过对生成的d维向量增加扰动,来进行数据增强,使用增强之后的生成数据作为训练集。
- 一个用来对类别不平衡数据进行分类的模型
- 在DAGAD的架构下(分别是基于DAGAD的GCN和GAT),测试了三个数据集。
介绍
根据下游任务,也可以将图异常检测划分为:node-level, link-level, graph-level。下面以经融交易举例子:
- 异常结点:诈骗犯
- 异常边:异常交易
- 异常子图:诈骗窝
该文章针对异常结点的检测。
现在的图异常检测都是通过图的拓扑结构以及特征信息来进行的。不足之处在于:
- 异常样本太少了:例如在交易场景,90%的人在受到诈骗之后不会像平台反馈,这就导致了异常结点、异常边被标记为正常!
- 类别不平衡
另外,以前的方法在处理有限的异常结点时,没有充分利用异常结点,这也影响了最后模型区分异常结点和正常结点的能力。
框架
图神经网络
本文中作者使用GCN或GAT来将结点特征压缩为d维向量。
数据增强
- 表征增强
如果直接使用GNN后得到的表征,来进行异常检测,那么最终得到的是一个次优的模型。因为类别严重不平衡这个问题没有得到处理。
本文中使用的增强方法和cs224w中讲到的对图结构增强或者是结点特征增强不同,本文的表征增强方法是:通过GNN生成的表征,来生成新的表征,来增加最终的预测模型捕捉异常样本的能力。
PS,回顾cs224w中的图增强
- 结点特征增强:给予结点相同的初始向量、给定结点唯一ID、使用图元、PageRank、聚类系数……
- 图结构增强:增加一个虚拟结点让其和所有其余结点相连、使用$\mathcal A+\mathcal A^2$来代替邻接矩阵作为计算图……
- 互补学习
在最终的预测部分时,有两个分类器,其中分类器A对普通的concat的数据进行训练;而分类器B则既对普通concat的数据训练,也对打乱后并且concat的数据进行训练。
其intuition有点类似于ResNET:
- 总结构以及算法
类别不平衡问题
其实就是在loss前面加一个因子,可以理解为惩罚,多类惩罚大,少类惩罚小。例如:
实验
配置好环境后,直接运行代码:
1 | python -W ignore main.py |
后面的参数表示的是忽略警告信息。
运行结果如下:
论文中的实验结果如下:
可以看到实验结果基本吻合。