NetWalk:动态图下异常检测的表示学习

459 阅读3分钟

小知识,大挑战!本文正在参与“   程序员必备小知识   ”创作活动

本文同时参与 「掘力星计划」   ,赢取创作大礼包,挑战创作激励金

先上论文地址 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.

1.Introduction

大多数现有的网络embedding方法都是针对静态图,因此不是应用不断变化的动态 sketch-based (through clustering and outlier detection.)

2.问题定义

图数据流G用 G\(t\)=\(V\(t\),E\(t\)\)\表示,t时刻整个图的快照,t时刻到达的边$E^t$,t时刻到达的顶点$V^t$,从1-t这整个时间段的边E(t),顶点V(t)。所以有 V\(t\)=\\bigcup \{V\^i\}_ \{i=1\}\^t \,类似的所以有$E(t)=\bigcup{E^i}_{i=1}^t$ 。我们的目标在时刻t检测匿名的顶点,边,社区。有几个挑战 需要cohensive的方式编码动态网络。 当新的网络结构到来,应该很容易的用已经学习好的网络表示编码 当新的网络结构到来,网络表示可以快速更新。

3 ENCODING NETWORK STREAMS

3.1 Network Walk Generation

3.2 Learning Network Representations

提出了clique embedding,利用deep autoencoder neural network去学习向量表示,(最小化每个walk下顶点对的距离)。输入输出是one-hot。我们的目的是针对每个输入的walk学习到一个latent representation。

实际上就是一个自编码器,把每个walk当作一个句子进行输入重构。 针对第n层重构出的表示,计算重构损失。 针对中间层的 latent representation,让一个walk内的词尽可能接近。 针对输入和输出稀疏性问题,a sparse auto-encoder with sparsity parameter ρ and penalize it with the Kullback-Leibler divergence。

论文后面是一些计算梯度的过程。详细可以看论文。 算法伪代码

3.3 Edge Encoding

学习好顶点的表示后,使用Hadamardoperato 进行边的编码。比如都2个顶点取平均,点乘,很灵活。

3.4 Maintaining Network Representations Incrementally

network为每个顶点维持一个reservoir。 新的边到来时,更新策略:

给出了一个定理:对于顶点i,它的邻居v在reservior里面的概率。

更新的例子

删除有同样的策略。总结来说,每个顶点有个reservior,这个reservior的大小是固定的。新来边的时候,针对里面的每个顶点,都会以概率p替换。删除边的时候只针对删除了的顶点进行替换。 算法:新来边的时候,通过reservior去产生新的walk更新网络。

4 ANOMALY DETECTION

聚类,算中心点,判断新来的边和中心点的距离。

5 EVALUATION

还是要看下7是怎么产生groundtruth的。

6问题

和addgraph相比较看,这个是利用walk提取特征,addgraph是利用gcn提取特征。 addgraph针对新来的图结构利用short和long-term进行更新。本文只是增量维护。 收获:边的embedding和顶点embedding表示很像。都集中在这种embedding上,而不是说怎么去定义异常。

Thanks for your reading ~

专注机器学习与风控算法前沿进展,分享数据挖掘比赛,机器学习,反作弊,推荐系统等技术文章。

快来关注我一起学习呀!

enter description here