南洋理工提出GeneralDyG:一种通用的动态图异常检测方法

南洋理工提出GeneralDyG,一种通用的动态图异常检测方法,有效捕捉多尺度动态模式,并在多个数据集上取得了优异的性能。

原文标题:轻松进行动态图异常检测,南洋理工提出GeneralDyG

原文作者:机器之心

冷月清谈:

GeneralDyG 是一种针对动态图异常检测的通用方法,旨在解决现有方法在通用性、动态特征捕捉和计算成本方面的不足。该方法提取节点、边及其拓扑结构的关键信息以适应不同的数据集,并结合全局时间动态和局部结构变化来建模动态图中的多尺度动态模式。为了降低计算成本,GeneralDyG 构建了一个轻量级框架,可以有效捕捉关键动态特征。

该方法包含三个主要模块:
1. 时间 ego-graph 采样模块:通过 k-hop 算法提取中心事件周围的交互历史,构建紧凑的子图结构,降低计算复杂度。
2. 图神经网络提取模块 (TensGNN):交替应用节点层和边层进行特征信息的传播和更新,捕捉局部和全局特性。
3. 时间感知 Transformer 模块:整合时间序列和结构特征,捕捉全局时间依赖性和局部动态变化。

在节点级别和边级别异常检测的实验中,GeneralDyG 在多个数据集上均优于现有方法,展现了其通用性和有效性。

怜星夜思:

1、GeneralDyG 提出的 TensGNN 模块相比于传统的 GNN 在动态图异常检测方面有哪些优势?
2、如何评估 GeneralDyG 的时间 ego-graph 采样策略的有效性?除了 k-hop 算法外,还有哪些采样策略可以用于动态图异常检测?
3、文章中提到的 GeneralDyG 方法主要关注结构信息,如果要结合节点的属性信息,该如何改进这个模型?

原文内容

图片
AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]


此项研究成果已被 AAAI 2025 录用。该论文的第一作者是南洋理工大学计算与数据科学学院 (CCDS) 的硕士生杨潇,师从苗春燕教授,主要研究方向是图神经网络。该论文的通讯作者为南洋理工大学百合研究中心的瓦伦堡 - 南洋理工大学校长博士后研究员赵雪娇;申志奇,南洋理工大学计算与数据科学学院高级讲师,高级研究员。



  • 论文标题:A Generalizable Anomaly Detection Method in Dynamic Graphs

  • 论文链接:https://arxiv.org/abs/2412.16447

  • 代码:https://github.com/YXNTU/GeneralDyG


研究背景与问题描述


随着动态图数据的广泛应用,它在社交网络、电商和网络安全等领域展现了强大的建模能力。然而,与静态图相比,动态图因节点和边的动态演变特性,给数据分析带来了更大的挑战,尤其是在异常检测方面。异常检测是保障系统安全和数据完整性的关键任务,旨在识别显著偏离正常模式的异常事件,例如欺诈交易、社交媒体垃圾信息和网络入侵等。及时发现这些异常对系统的可靠性和安全性至关重要。


基于深度学习的动态图异常检测方法已取得一定进展,例如利用图神经网络提取结构信息或通过时序模型捕获时间依赖性。然而,这些方法在通用性方面仍存在显著不足。具体而言,它们通常难以适应不同的数据集和任务场景,难以高效捕获动态图中局部与全局的复杂特征。此外,一些方法在处理大规模动态图时计算成本较高,异常事件的编码也不够准确,导致在新场景中的检测性能显著下降。


方法设计


本文针对动态图异常检测中的数据分布多样、动态特征捕捉困难以及计算成本高三大挑战,提出了一种通用方法(GeneralDyg)。首先,为应对数据分布多样问题,我们提取节点、边及其拓扑结构的关键信息,从而适应不同数据集的复杂特征分布。其次,为解决动态特征捕捉的难题,我们结合全局时间动态和局部结构变化,深入建模动态图中的多尺度动态模式。最后,为降低计算成本,我们构建了一种轻量化框架,能够高效捕获关键动态特征,同时显著提升计算效率。


如图 1 所示,本文方法由三部分组成,每部分针对上述挑战提供了解决方案:


(a)时间 ego-graph 采样模块,通过构建紧凑的子图结构有效应对计算资源限制;(b)图神经网络提取模块,全面捕获动态图的节点与边的多样性和复杂结构;(c)时间感知 Transformer 模块,有效融合全局和局部动态特征。

 

图 1 :动态图异常检测框架 GeneralDyG 的整体架构


(a)时间 ego-graph 采样模块旨在通过构建紧凑的子图结构有效缓解动态图大规模数据带来的计算压力。具体来说,该模块基于中心事件,通过 k-hop 算法提取其周围交互历史,构成时间 ego-graph。k-hop 算法的设计考虑了事件间的时间顺序与拓扑关系,确保采样过程兼顾时间动态与结构特性。此外,为了捕捉事件之间的层级关系,该模块引入了特殊标记(如层级标记符号)来分隔不同层次的交互信息。这些标记能够帮助 Transformer 模块更好地识别与学习时间序列中的层级动态。此外,该模块还通过限制 k 的范围来控制采样的规模,从而在信息完整性与计算效率之间取得平衡。这样的设计在保留动态结构信息的同时,显著降低了计算复杂度。


(b)在时间 ego-graph 的基础上,本文设计了一种新的图神经网络(TensGNN)来提取丰富的结构信息。TensGNN 通过交替应用节点层和边层来实现特征信息的传播与更新,从而在节点特征和边特征之间构建强关联。具体而言,节点层利用节点的邻接矩阵和特定拉普拉斯矩阵进行卷积运算,同时结合边的特征更新节点表示。相应地,边层则基于边的邻接关系和节点的状态更新边的特征表示。这种交替堆叠的方式能够更好地捕捉动态图中的局部与全局特性。此外,该模块引入了轻量化的算子,避免了冗余计算,在大规模数据集上也能保持较高的计算效率。


(c)时间感知 Transformer 模块:最后,GeneralDyG 通过时间感知 Transformer 模块整合时间序列和结构特征。在自注意力机制中,模型分别利用 Query 和 Key 编码图的拓扑结构信息,而将 Value 保留为原始事件特征,以确保异常检测的准确性。通过这一模块,模型能够有效捕获动态图中全局的时间依赖性和局部的动态变化,从而实现对复杂异常模式的准确建模。


实验验证

本文在节点级别(node level)和边级别(edge level)两个层面上进行了实验评估,使用了四个真实数据集:SWaT 和 WADI 用于节点级别异常检测,Bitcoin-Alpha 和 Bitcoin-OTC 用于边级别异常检测。


我们将 GeneralDyG 与 20 种主流基线方法进行对比,这些基线方法涵盖了图嵌入(如 node2vec、DeepWalk)和异常检测(如 TADDY、SAD、GDN)两大类别。实验通过 AUC、AP 和 F1 等指标全面评估模型性能,并在不同异常比例(1%、5%、10%)下进行了系统性测试。结果表明,GeneralDyG 在所有数据集上均显著优于现有方法,展现了卓越的通用性与检测能力,如图 2 所示。


图 2 Bitcoin-Alpha 和 Bitcoin-OTC 数据集上的边异常检测性能对比。


总结


总的来说,我们提出了一种通用的动态图上异常检测方法 GeneralDyg,解决数据分布多样、动态特征捕获难和计算成本高三大核心问题,GeneralDyG 展现了卓越的通用性和鲁棒性,为动态图异常检测提供了一种高效且通用的解决方案。详细方法流程以及实验结果请参考原文。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

除了楼上说的,TensGNN 还使用了轻量化的算子,避免了冗余计算,这使得它在大规模数据集上也能保持较高的计算效率。毕竟,动态图的数据量通常很大,效率也是一个重要的考量因素。

评估采样策略的有效性,可以从两个方面入手:一是看采样后的子图是否保留了原始图的关键信息,可以使用一些图结构相似性指标来衡量;二是看采样策略对异常检测性能的影响,可以通过比较不同采样策略下的 AUC、AP 等指标来评估。

TensGNN 通过在节点和边之间交替传播信息,能够更有效地捕捉动态图中结构的细微变化。这对于异常检测至关重要,因为异常通常表现为局部结构的突变。相比之下,传统的 GNN 可能无法有效捕捉这些细微但关键的变化。

如果节点属性是时序数据,可以考虑使用一些时序模型,例如 RNN 或 Transformer,来对节点的属性序列进行建模,然后将输出的隐藏状态作为节点的特征表示,再输入到 GNN 中。这样可以更好地捕捉节点属性的时序动态。

可以在 TensGNN 模块中将节点的属性信息融入到节点的特征表示中,例如将属性信息和结构信息拼接起来作为节点的初始特征。这样,GNN 就可以在传播过程中同时考虑结构信息和属性信息。

除了在 GNN 中融合属性信息,还可以考虑使用一些基于注意力机制的方法,根据节点的属性信息对邻居节点进行加权聚合。这样可以更灵活地捕捉节点属性和结构之间的关系。

我觉得TensGNN 的核心优势在于它交替应用节点层和边层来更新特征,这样可以更好地捕捉节点和边之间的相互影响,从而更全面地理解动态图的演化。传统的 GNN 可能更关注节点特征而忽略了边特征的重要性,在动态图中,边的变化往往蕴含着重要的异常信息。

除了 k-hop,还可以考虑一些基于随机游走的采样方法,例如 Node2Vec 和 DeepWalk,它们可以捕捉到更全局的结构信息。当然,也可以根据具体的应用场景设计一些更具针对性的采样策略,例如针对特定类型的异常模式进行采样。

我觉得还可以考虑时间窗口采样,比如设定一个时间窗口,只采样该时间窗口内的节点和边,这样可以更关注局部的动态变化。当然,时间窗口的大小需要根据具体情况进行调整。