小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
个人第一篇看的第一篇关于动态图边检测的文章~里面还有很多不懂的地方~
1 Introduction
异常检测常见的领域就是在电商。比如异常的用户会通过对目标商品以及流行商品做大量的相同操作,比如同时点击目标商品和流行商品,从而增加了目标商品和流行商品的相似性。从而在推荐系统里增加了评分。这篇文章是针对动态图的异常检测,异常检测 对于下流任务很重要。 和传统的图方法相比,GCN能够自动的传播从邻居节点的信息,从而扩散节点的异常概率。GCN在异常检测方面主要的问题在于没有考虑时间特征(不能在动态图上忽略的)目前的一些工作 CAD [Sricharan and Das, 2014] and Netwalk [Yu et al., 2018] 把 graph embedding方法应用到动态图,但是不能 捕捉节点的 “长期模式”和“短期模式”。
主要贡献:
- 提出AddGraph框架,提出一个attention-based GRU的GCN框架,获得短时和长时特征。
- 受到知识图谱的启发,引入一个negative sampling 和margin loss来检测异常边。
- 实验证明。
2 Related Work
2.1 Anomaly Detection in Dynamic Graph 只利用结构信息的边异常检测,比如把2个cluster之间的边当作异常边。 CM-Sketch使用了局部的结构信息和一个边历史的行为来决定一条边是否异常。 spotLight随机选取一系列节点集合 n个节点集合,(通过计算图和这n个节点集合重合部分)把整个图在每个timestamp上编码成一个vector,这个方法通过 聚集这些vectors找到异常图。缺点:只能找到 instantaneous 异常,只是某个时刻的异常图。
2.2 Graph Embedding Deepwalk [Tang et al., 2015], LINE [Tang et al., 2015] and Node2vec [Grover and Leskovec, 2016]
2.3 Anomaly Detection over Graph Embedding [Yu et al., 2018] proposed NetWalk, a dynamic graph embedding model based on random walk,用netwalk提取出embedding表示再用clustring的方法做异常检测。
3 Proposed Method
3.1 问题定义
图数据流G用 {G\^t\}\_1\^T 表示,$G^t=(V^t,E^t)$表示在t时刻整个图的快照,V和E代表顶点和边。e = \(i,j,w)\\in E\^t\意味着在时刻t,i和j之间存在一个权重为w的边。A表示邻接矩阵,值为边的权重。论文的目的是检测t时刻的异常边,也就是针对$e \in E^t$,输出f(e)。在训练阶段不需要异常的数据,也就是假设t以前的数据都是正常的。测试阶段使用有标签的异常数据测试性能。
3.2 Addgraph 框架
核心是2块。 1.用GCN处理先前的节点状态和当前的边的状态。(long-term) 2.用attention-based 模型处理一个窗口的信息(short-term) GCN for content and structural features
GRU with attention to combine short-term and long-term states. attention模块
GRU模块
计算好每个节点的隐状态H后,计算分数。
3.3 Selective Negative Sampling and Loss
为了解决异常样本不足的问题。因为我们假定训练阶段的数据都是正常的,所以 采用:针对每个正常的样本,做一个负采样当作匿名样本。 [Wangetal.,2014]启发,针对(i,j),建立一个伯努利分布:以$p=\frac {d_i}{(d_i+d_j)}$的概率替换i节点,以1-p概率替换j节点。由于产生出来的边仍然可能是正常的,不能用交叉损失那种定义损失的方式。 [Bordes et al., 2013] 使用margin-based pairwise loss:
这个损失函数的目的让f(i,j,w)尽可能的小,f(i',j',w)尽可能的大。 总的损失函数。
4.实验
4.1 setup
digg是一个回复网络,节点代表用户,边代表发了消息。每个节点的content feature是随机生成。 为了验证框架能否提取出有效的content+struct信息,先不用时间特征,然后再拓展到时序。
4.2 Results on Graphs without Timestamps
前50%训练,后50%测试。
4.3 Results on Dynamic Graphs
测试阶段:随着新产生的点增加,会让算法的auc下降,因为没有以前的特征。
5总结
在这个图里定义的是边的异常检测~ 用attention获得短时特征,gcn获得长时间的特征。 数据集给了强假设,之前时刻得到的在图里存在的都是正常边。 实验部分和3个算法做了对比,很有研究空间~
参考文献: 【1】Yu W, Cheng W, Aggarwal C C, et al. Netwalk: A flexible deep embedding approach for anomaly detection in dynamic networks[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 2672-2681. 【2】Zheng L, Li Z, Li J, et al. Addgraph: anomaly detection in dynamic graph using attention-based temporal GCN[C]//Proceedings of the 28th International Joint Conference on Artificial Intelligence. AAAI Press, 2019: 4419-4425.
专注机器学习与风控算法前沿进展,分享数据挖掘比赛,机器学习,反作弊,推荐系统等技术文章。
快来关注我一起学习呀!