小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
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 ~
专注机器学习与风控算法前沿进展,分享数据挖掘比赛,机器学习,反作弊,推荐系统等技术文章。
快来关注我一起学习呀!