文章链接:2106.09876v1.pdf (arxiv.org)
摘要:动态图的异常检测由于其在社交网络、电子商务和网络安全中的广泛应用而引起越来越多的关注。最近基于深度学习的方法已经显示更优异的结果。然而,它们未能解决动态图中异常检测的两个核心挑战:缺乏对无属性节点的信息编码以及难以从耦合的时空动态图中学习判别知识。为了克服这些挑战,在本文中,我们提出了一种基于Transform的动态图异常检测框架(TADDY)。我们的框架构建了一个综合的节点编码方法,以更好地代表每个节点的结构和时间的信息在时间序列图中。同时,TADDY通过动态图Transformer模型从具有耦合时空模式的动态图中捕获信息表示。大量的实验结果表明,我们提出的TADDY框架优于SOTA。
模型介绍
TADDY由四个组件组成,即基于边缘的子结构采样,时空节点编码,动态图Transformer和异常检测器。该框架以端到端的方式进行训练。首先,为了捕获每个目标边缘的时空上下文,我们执行基于边缘的子结构采样以获取多个时间戳中的目标节点和上下文节点。然后,时空节点编码生成节点编码作为Transformer模型的输入。每个节点的空间和时间信息都被集成到固定长度编码中。然后,动态图Transformer提取边的时空信息。最后,在判别异常检测器中,我们执行负采样以生成伪负边缘,并且采用由二进制交叉熵损失训练的边缘评分模块来计算输出异常分数。
Edge-based Substructure Sampling
异常经常发生在图的局部子结构中,这表明我们应该将我们的感受野放大到合适的局部尺度。而不是工作在一个完整的动态图,我们首先采样子结构作为我们的异常检测框架的数据元素。由于我们专注于检测异常边缘,因此我们执行基于边缘的采样:动态图中的每条边被视为采样子结构的中心,并被表示为目标边。对于给定的目标边,我们将源节点和到达节点表示为目标节点。目标节点的相邻节点称为上下文节点。
借用图扩散技术来为每个目标边缘采样固定大小和重要性感知的上下文节点集。通过图扩散,获得图结构的全局视图,然后我们可以量化每个节点对于给定目标节点/边的重要性。形式上,给定静态图的邻接矩阵,我们定义图扩散为
其中是广义转移矩阵,是决定全局信息与局部信息之比的加权系数。
给定扩散矩阵S,行(一维向量)指示从全局角度来看第i个节点与每个节点之间的连接性。例如,表示具有连续值的第i个节点和第j个节点之间的连通度。通过利用这个属性,我们可以为给定的目标边挑选固定数量的最重要的封闭节点。以 =(v1,v2)为例,我们可以通过将两个目标节点的连通性向量相加来计算的连通性向量:
然后,我们对(是一维向量,里面是每个节点的连通性数值)进行排序,并选择具有较大值的top-k节点以形成上下文节点集U。注意,当选择前k个连接节点时,应该排除目标节点本身。最后,子结构的采样节点集可以表示为上下文节点集和目标节点的并集,其可以形式化为。
根据基于扩散的采样,我们可以从单个静态图中生成上下文节点。然而,对于动态图,应该考虑多个时间戳来捕捉动态演化。在这里,我们简单地将静态采样方法扩展到动态图。给定时间戳t处的目标边。通过滑动窗口机制,TADDY能够捕捉时间戳(t − τ + 1)和t之间的动态演变。然后,对于每个Gi ,我们计算扩散矩阵并得到相应的连通性向量。通过挑选前k个节点并添加目标节点,第i个时间戳的子结构节点集可以被采样为。通过将多个时间戳的节点集集成在一起,我们可以得到最终的子结构节点集。
Spatial-temporal Node Encoding
本文研究的动态图节点是无属性的,这就提出了如何从无属性动态图中构造信息编码作为网络输入的问题。类似于NLP中的one-hot编码的概念,可用的解决方案是使用身份节点编码作为原始节点特征,其中唯一的one-hot向量表示每个节点。然而,身份节点编码具有两个限制。首先,one-hot编码不能包含足够的结构和时间信息。one-hot编码只表示节点的身份,难以表达节点的结构角色和时间状态。第二,标识节点编码对大规模和节点变化的动态图不友好。第三,固定维数不能适应动态图中常见的节点集的动态变化。
受Transformer中位置编码的启发,我们引入了一种新的动态图的时空节点编码。所提出的节点编码包括三个组件,即基于扩散的空间编码,基于距离的空间编码,和相对时间编码。空间编码的两个术语分别从全局和局部角度表示每个节点的结构角色。不同地,时间编码项提供子结构节点集合中的每个元素的时间信息。最后,将三个编码项融合为包含全面时空信息的输入节点编码。请注意,我们通过可学习的线性投影生成编码,原因是可学习函数更灵活地模拟不同时间戳或位置之间的相关性。
Diffusion-based Spatial Encoding
基于图扩散的空间编码。为了防止由相似扩散值引起的不可区分的编码,我们不直接采用原始扩散值,而是使用基于秩的编码。具体而言,对于单个时间戳子结构节点集中的每个节点,根据其扩散值对节点进行排序,并采用排序作为数据。使用可学习的编码函数(单层线性映射)计算基于扩散的空间编码。基于扩散的空间编码的定义给出为:
Distance-based Spatial Encoding
基于距离的空间编码表示目标边缘周围的局部连接。具体地,对于单时间戳子结构节点集合中的每个节点,我们将其到目标边缘的距离表示为用于编码的数据。到目标边缘的距离可以被分解为到两个目标节点的相对距离的最小值。对于目标节点本身,距离表示为0。单层线性映射被用作可学习的编码函数,这与基于扩散的编码相同。形式上,基于距离的空间编码可以表示为:
Relative Temporal Encoding
时间编码是为了表示子结构节点集中每个节点的时间信息。相对时间编码定义为目标边缘的出现时间t与时间戳i的当前时间之差。我们的主要任务是预测目标边缘的合法性,因此相对于目标边缘的时间是异常检测的一个更重要的因素。类似的线性映射也被应用作为编码函数,并且相对时间编码的形式表达被给出为:
Encoding Fusion
为了提高运行效率,我们将融合节点编码定义为三个编码项的总和,而不是将它们连接成具有更高维度的向量。编码融合形式化如下:
给定一条目标边,编码为:
Dynamic Graph Transformer
为了学习动态图中的空间和时间知识,我们建议单独采用Transformer模型作为编码器。利用节点编码的多个时间戳作为输入,动态图Transformer可以用单个编码器同时捕获空间和时间特征。动态图形Transformer由两个模块组成:Transformer和池化。利用Transformer模块,通过注意机制获取丰富的跨领域知识,最后由注意层生成信息丰富的节点嵌入。之后,池化将子结构节点集中的所有节点的嵌入聚合到目标边的嵌入向量中。
Transformer Module
Transformer模块的目标是将子结构节点集合内的节点的编码聚合为节点嵌入。为此,利用多个关注层来交换不同节点的信息。具体而言,单个注意层可以写为:
通过自适应地聚合所有节点的信息来获得每个节点的输出。在我们的Transformer模块中,变换器模块第0层的输入被定义为目标边缘的编码矩阵。最终层L的输出表示为Transformer模块的输出节点嵌入矩阵Z,其中每行表示对应节点的嵌入向量。
Pooling Module
Discriminative Anomaly Detector
在获取边缘嵌入之后,异常检测的目标是学习动态图中的每个边缘的异常得分。在这里,我们考虑一个端到端的框架,其中基于神经网络的异常检测器计算异常分数。通过负采样策略生成伪异常边缘,并使用训练集中的现有边缘(正)以及伪异常边缘(负)一起训练异常检测器。
对于边数为的图的每个时间戳,我们随机抽取相等数目的节点对作为负对的候选。然后,我们检查所有这些节点对,以确保它们不属于所有训练时间戳中现有的正常边集,我们重新采样一个新的节点对,并对每个非法节点对进行验证,直到节点对有效。负采样后,利用上下文采样获取每个负边的子结构节点集,并进行时空节点编码。然后,编码被馈送到动态图Transformer模型,以获得负边缘的嵌入。
构造异常检测器来区分正边缘嵌入和负边缘嵌入。具有Sigmoid激活的全连接神经网络层被用作计算边缘嵌入的异常分数的评分模块,其形式化为:
模型伪代码
该框架以迭代和端到端的方式进行训练。在每次迭代中,对不同的负边缘进行采样以防止训练偏差和过拟合。对于所有的正边和负边,我们依次执行子结构采样、节点编码、Transformer嵌入和异常得分计算。最后,通过反向传播的监督下的二进制交叉熵损失函数的参数更新。
实验结果