论文链接:AnomMAN: Detect Anomaly on Multi-view Attributed Networks。
大多数图异常检测算法仅仅考虑单种类型节点的交互活动来检测属性网络上的异常,但未能考虑多视图属性网络中的丰富交互活动。 事实上,在多视图属性网络中统一考虑所有不同类型的交互并检测异常实例仍然是一项具有挑战性的任务。
AnomMAN用于检测多视图属性网络上的异常。 为了同时考虑节点属性和节点之间所有的交互活动,作者使用注意机制来定义网络中所有视图的重要性。 此外,由于其低通特性,图卷积操作不能简单地应用于异常检测任务。 因此,AnomMAN 使用图自动编码器模块来克服这个缺点并将其转化为其自身的优势。
贡献如下:
AnomMAN模型框架:
a. 原始输入由多视图属性子图组成。
b. 根据不同的视图提取子图。
c. 多视图属性网络编码器层将结构和属性嵌入到相同的子空间中。
d. 将不同视图的潜在的特征表达与注意力机制融合在一起。
e. 重构节点的结构和特征属性。
f. 根据重建损失得到异常分数。
不同的视角得到的子图:如果用户A和用户B做了同样的活动,就得到一个关于A和B的活动子图(比如用户A评论了商品,用户B也评论了商品,于是得到一个评论视角的子图,活动行为为评论)。存在K种活动类型,于是会得到K种子图。
第一个参数V(u)表示用户user类型节点集合,第二个参数V(i)表示商品item类型节点集合,第三个参数表示活动类型,第4个参数表示用户节点特征信息。这里引申出一个关系矩阵A,A(i,j)=1表示用户i和用户j对同一个物品做了第k种类型的活动行为、否则A(i,j)=0。不同的视角下有不同的关系矩阵A。
然后我们的任务是去检测存在异常的节点。
传统的深度自编码器不适合处理具有拓扑结构的数据,所以自然用了GCN作为编码器,不同视图的子网络图中有不同的GCN编码器。
所以针对每个子图的信息编码函数如下:
A是关系矩阵,W是参数矩阵,g是非线性的激活函数,H是节点的特征向量矩阵,l表示第l层编码,当l=0时,H等于节点的原始特征向量矩阵X。然后还要对关系矩阵进行标准化,然后得到下面的公式,好吧,这个就是GCN的数学表达式,看不懂的点击这里DGL框架搭建GCN图卷积神经网络模型。
每个子图经过GCN编码后得到输出如下:
每个Z都包含了对应属性图下n个用户节点的表达向量。
但是这里有一个问题,作者表示,GCN作为一个作为低通滤波器,容易过滤掉很多异常信息,这就会使得异常检测很困难,因此作者将多层的GCN进行简化得到了如下最终的表达式:
到这里我们已经得到了每个视图下的节点特征信息的编码表达,通常,多视图属性网络中的每个节点都包含各种语义信息,特定视图的节点表示只能反映特定视图的节点信息,为了学习更全面的表示,作者将所有视图的编码表征融合在一起。作者采用了注意力机制去融合所有视图下的特征表达。公式如下:
如果不了解注意力机制的同学可以先详细了解一下,剩下的就是注意力权重的计算:
最终每个用户节点的特征表达如下:
在得到了最终的节点特征表达之后,我们需要在每个视图中重建节点的属性和网络的结构,为了后面计算属性误差和重构误差。
针对每个视图中的网络结构重构,简单来说就是重构用户节点之间的邻接矩阵A,也可以理解为去得到两个节点之间存在联系的可能性。这里用sigmoid函数把输出的权重映射到0-1之间,于是在第k种视图中,节点i和节点j之间存在联系的可能性计算公式如下:
因此,重构后的关系矩阵如下:
然后继续得到重构误差如下:
通过第一范式得到最终的重构误差表达式:
上述的网络结构重构需要针对每个视图单独计算,这里的节点属性特征重构针对整个图的节点计算,不需要再单独每个视图计算,因此重构的节点属性特征表达如下:
然后得到节点重构的误差如下:
最终我们结合结构的重构误差和节点属性的重构误差如下:
然后针对每个节点,得到的异常分数为:
把下面这个总的损失函数尽可能最小化,然后需要手动调整超参数:
这里作者采用了两个真实的数据集去评估模型:
作者这里对比了几种异常检测算法模型,如下:
其中Dominant 和 Radar 是之前两种最先进的算法,用于检测属性网络上的异常。
在本文中,作者提出了 AnomMAN(Detect Anomaly on Multi-view Attributed Networks)模型,旨在检测多视图属性网络上的异常。 AnomMAN 解决了当前算法在多视图属性网络异常检测中的局限性。 AnomMAN 使用基于图自动编码器的模型来克服图卷积作为低通滤波器在异常检测任务中的缺点。 此外,它使用更强的低通滤波器作为 AnomMAN 的多视图属性网络编码器,并在此任务中表现出更好的性能。 在两个真实世界数据集上的实验结果表明,AnomMAN 优于最先进的模型和该论文模型的两个变体。