DAGAD-Data Augmentation for Graph Anomaly Detection
文献地址:DAGAD: Data Augmentation for Graph Anomaly Detection | IEEE Conference Publication | IEEE Xplore
1 介绍
1.1 问题
文章研究了在图数据中检测异常节点的技术。现有方法面临两个主要问题:
- 异常样本稀缺:由于异常行为通常较为隐蔽,且缺少足够的背景知识,因此难以有效捕捉异常样本。
- 类别不平衡:现实中的图数据中,大部分对象是正常节点,异常节点数量极少,导致类别不平衡的问题。
为了解决这些问题,论文提出了一种基于数据增强的图异常检测框架,称为DAGAD(Data Augmentation-based Graph Anomaly Detection)。这个框架包括三个模块:
- 信息融合模块:利用图神经网络编码器学习节点的表示。
- 数据增强模块:通过生成额外的训练样本来扩充训练集。
- 不平衡学习模块:优化少数类别(异常类)和多数类别(正常类)之间的分布差异。
1.2 贡献
本文在图异常检测领域的贡献包括以下几个方面:
- 所提出的图数据增强技术在嵌入空间中从原始训练集生成附加样本。通过两种分类器的互补使用,将增强样本和原始样本一起用于学习异常和正常类别的区分性表示。
- 基于表示的增强模块为异常检测任务中的异常样本稀缺问题提供了一个全面的解决方案。该模块还具有扩展性,可应用于其他依赖极少标注样本的图学习任务。
- 提出了一个简单但有效的不平衡学习模块,通过使用类专属损失来减轻类别不平衡问题,该模块还可以轻松集成到其他半监督图异常检测器中。
- 在三个数据集上的广泛实验以及消融研究证明了DAGAD的优越性和所提出模块在不同评价标准下的有效性。
1.3 相关工作
A. Graph Anomaly Detection
B. Data Augmentation
C. Class-imbalanced Learning
2. 框架介绍
2.1. 信息融合模块(Information Fusion Module)
信息融合模块使用图神经网络(GNN)编码器将图的拓扑结构信息和节点属性信息整合为低维向量表示。通过这种表示,图的复杂结构和节点特征可以在统一的空间中得到表达,从而使后续的检测过程更加高效。
- 节点表示:使用GNN编码器将节点属性 $X$ 和邻接矩阵 $A$ 转换为节点表示 $H$,即 ,其中 。
- 信息聚合:每个节点的表示 在第 层通过聚合其邻居节点的信息进行更新,公式为: 其中, 表示聚合函数(如求和或均值), 表示节点 的邻居集合。
通过信息融合模块,节点的多维度特征被整合成一个统一的低维表示,有助于后续的异常检测。
2.2. 数据增强模块(Data Augmentation Module)
DAGAD框架的数据增强模块旨在通过生成额外的训练样本来丰富训练数据,从而缓解异常样本稀缺的问题。不同于传统的图结构或节点属性的增强方法,本模块基于节点的低维表示生成新样本,使得模型可以更好地识别异常。数据增强模块的关键步骤包括表示的随机置换、样本组合和补充学习。
2.2.1. 基于表示的增强
首先,DAGAD通过随机置换操作生成增强样本。假设已经通过信息融合模块获得了每个节点的表示 ,这里 表示节点 的低维嵌入。为了生成增强样本,我们对这些表示进行随机置换操作:
- 随机置换:使用置换函数 对表示进行打乱,得到置换后的表示集 :其中, 表示置换后的表示集合,将节点的表示 随机映射到 。
通过置换操作,我们可以生成一组新样本的表示,这些表示与原始样本存在差异,但保留了部分原始信息,从而增加了训练数据的多样性。
为了让两个分类器 和 能在增强样本上协同工作,DAGAD通过组合不同的节点表示生成新样本。具体的组合步骤如下:
原始样本表示:将两个GNN编码器生成的不同节点表示拼接在一起,以构建原始样本的节点表示:
其中, 和 分别是分类器 和 使用GNN编码器生成的节点 的表示。通过这种方式,节点表示融合了两种编码器提取的特征。
增强样本表示:使用置换后的表示生成增强样本的节点表示,将置换后的表示与原始样本的部分表示拼接在一起:
其中, 是分类器 的第 个节点在置换后的表示集合中的表示。
此外,为了确保标签和增强样本表示的对应性,增强样本的标签也通过随机置换生成:
其中, 是原始标签集合。
这种样本组合方式使得DAGAD在保留原始样本的基础上,生成了具有差异性的增强样本,从而扩充了训练数据。
2.2.2. 补充学习(Complementary Learning)
在数据增强的基础上,DAGAD框架还引入了补充学习过程,使两个分类器 和 以互补的方式进行训练,从而在原始和增强样本上都能优化性能。
多层感知器(MLP):每个分类器包含一个多层感知器(MLP),用于节点最终表示的学习。MLP的计算公式如下:
其中:
- 是可训练的权重矩阵;
- 是偏置项;
- 是前一层的节点表示。
通过MLP层,我们可以捕获到节点的最终表示 ,并通过Softmax函数计算节点为异常或正常的概率。
Softmax分类:对于每个节点的最终表示 ,我们使用Softmax函数来计算其属于异常或正常类别的概率:
然后,通过以下公式确定节点的标签:
互补优化策略:
- 分类器 :专注于原始样本,特别是异常样本的特征学习。分类器 的训练目标是尽可能准确地识别异常样本,因此它会尝试过拟合异常类,即深入学习异常类的特征和模式。这使得分类器 能够提取更多异常相关的信息,从而帮助另一个分类器提升对异常类的识别能力。
- 分类器 :主要在增强样本上进行训练,利用数据增强模块生成的额外样本来丰富其学习过程。分类器 在训练过程中会接触到更多样本,尤其是增强后的样本,这使得它可以更全面地学习异常和正常样本的区别特征。因此, 的任务是提升模型的泛化能力和鲁棒性,避免过度依赖原始样本中的特征。
损失函数
1. 原始样本的损失函数()
原始样本的损失函数由两个分类器 和 的损失组合而成:
展开公式如下:
其中:
- 是交叉熵(Cross-Entropy,CE)损失函数,主要用于分类器 。
- 是广义交叉熵(Generalized Cross-Entropy,GCE)损失函数,主要用于分类器 。
- 是一个权重项,用于在训练过程中共享分类器 和 的信息,确保它们在学习过程中能够相互补充。这个权重项是根据两者的CE损失之比计算的,用来动态调整两者的贡献。
权重项 的计算
这个公式确保权重项在训练过程中根据两者的损失值动态调整。当的损失减小时,权重减小,这样会促使更加聚焦于异常类特征,从而增加对异常类的识别。
2. 增强样本的损失函数()
分类器 还会对增强样本进行训练,通过广义交叉熵损失(GCE)来计算增强样本的损失:
其中:
- 表示增强样本的节点表示(基于置换后的节点表示生成)。
- 表示增强样本的标签(通过随机置换生成,以确保与增强表示对应)。
通过这个损失项,分类器 能够有效利用增强样本,提升对异常类别的泛化能力。
3. 总体损失函数()
将所有部分结合在一起,DAGAD框架的总体损失函数定义为:
损失函数设计的意义
- 信息共享与互补:通过权重项 ,DAGAD实现了分类器 和 之间的互补学习,使得 专注于异常类的特征,而 则在增强样本的帮助下学习更多的区分特征。
- 鲁棒性提升:通过在 中加入增强样本的损失项,模型能够有效利用增强样本的特性,提升对异常样本的识别能力。
- 动态调整:权重项 动态平衡了两个分类器在学习过程中的贡献,确保它们在整个训练过程中保持互补。
这套损失函数设计使得DAGAD能够有效应对异常样本稀缺和类别不平衡问题,从而在图异常检测任务中实现更好的性能。
3. 不平衡学习模块(Imbalance-tailored Learning Module)
3.1. 不平衡问题
在图异常检测任务中,异常样本往往占少数,而正常样本较多,这导致模型在训练时更偏向于正常类,容易忽视异常类。为了解决这一问题,DAGAD设计了一个不平衡学习模块,通过对类别进行加权处理来平衡两类样本对学习过程的贡献。
3.2. 类别加权交叉熵损失(Class-wise Cross-Entropy Loss)
标准的实例级交叉熵损失(instance-wise Cross-Entropy Loss)如下:
其中, 表示节点 属于其真实类别 的概率。
为了应对类别不平衡问题,DAGAD为异常类和正常类分配相同的权重,设计了类别级别的交叉熵损失 ,定义如下:
具体展开为:
其中, 和 分别表示训练集中异常样本和正常样本的数量。
3.3. 类别加权广义交叉熵损失(Class-wise Generalized Cross-Entropy Loss)
类似地,DAGAD对广义交叉熵损失(GCE Loss)也进行了类别加权处理,定义了类别加权广义交叉熵损失 :
4. 总体损失函数的更新
在不平衡学习模块的引入下,DAGAD框架的总体损失函数从公式(11)更新为公式(15):
其中, 是基于类别加权的损失函数。
通过引入类别加权的损失函数,不平衡学习模块有效地平衡了正常类和异常类对模型训练的影响,使得模型可以在训练过程中对异常类样本进行更充分的学习,从而改善异常检测性能。
4. 学习流程(Learning Process)
该算法描述了DAGAD框架的训练流程,以下是对算法各步骤的解释:
算法输入和输出
- 输入:
- 图数据 ,包含节点及其属性。
- 训练集 ,包括训练节点及其标签 。
- GNN编码器 和 ,用于生成节点表示。
- 分类器 和 ,用于检测异常。
- 训练迭代次数 。
- 输出:
- 预测标签 ,即对所有节点的预测结果。
训练过程
- 初始化参数:算法首先初始化相关参数(如模型权重、偏置等)。
迭代循环:从第1次迭代开始,直到达到设定的最大迭代次数 。
步骤4:从GNN编码器 和 提取节点的初始表示 和 ,即通过公式(1)获得节点的嵌入。
步骤5:根据公式(3)和公式(4),生成原始节点表示 以及增强后的节点表示 。其中, 是原始样本的拼接表示, 是增强样本的拼接表示。
步骤6-8:将原始节点表示 和增强后的节点表示 分别输入到多层感知器(MLP)中:
- 步骤6: 表示通过 的MLP层得到的节点表示。
- 步骤7: 表示通过 的MLP层得到的原始节点表示。
- 步骤8: 表示通过 的MLP层得到的增强节点表示。
步骤9:根据公式(6)和(7),计算每个节点的预测标签 。
步骤10:根据公式(15)计算训练集上的总损失 。该损失包括原始样本和增强样本的类别加权损失。
步骤11:通过最小化总损失 来更新GNN编码器 、 以及分类器 和 的参数。
- 结束迭代:当达到最大迭代次数 时,算法结束训练。
- 返回预测标签:输出对所有节点的预测结果 。
3. 实验验证
在DAGAD框架的实验部分,作者提出四个关键问题,以指导实验的设计和结果分析:
1. DAGAD 是否在异常检测任务上优于现有的基准方法?
目的:验证 DAGAD 在图异常检测任务中的有效性,尤其是在应对异常样本稀缺和类别不平衡问题上的表现。
实验设计:通过将 DAGAD 与现有的多种图异常检测方法(如无监督和基于图神经网络的检测方法)进行比较,在不同数据集上对比它们的性能。
评价指标:通常使用准确率、宏观精确率(Macro-Precision)、宏观召回率(Macro-Recall)、宏观 F1 值(Macro-F1)以及 AUC 等指标来评估模型的检测能力。
结果预期:如果 DAGAD 优于其他方法,则表明其设计在异常检测任务中确实具有优势,尤其在不平衡数据集和稀缺异常样本的场景下更为突出。
2. DAGAD 的各个模块对其总体性能有何贡献?
目的:确定 DAGAD 框架中每个模块(信息融合模块、数据增强模块和不平衡学习模块)的独立贡献,验证这些模块在提升模型性能上的作用。
实验设计:进行消融实验,即逐个移除 DAGAD 中的每个模块,测试移除某个模块后模型的性能变化。这可以帮助识别每个模块的独立作用。
结果预期:理想情况下,移除任意一个模块都将导致模型性能下降。这将证明每个模块在提升 DAGAD 整体性能方面的独特价值,并证实这些模块设计的合理性。
3. DAGAD 在不同程度的不平衡数据上表现如何?
目的:评估 DAGAD 在数据类别不平衡的情况下的表现,验证其不平衡学习模块的有效性。
实验设计:通过调整数据集中正常类和异常类样本的比例,生成不同不平衡程度的数据集。在这些不同的不平衡设置下,测试 DAGAD 和其他基准方法的性能,观察 DAGAD 的不平衡学习模块在多大程度上能够提升对少数异常类的检测能力。
结果预期:DAGAD 应在严重类别不平衡的情况下仍能保持较高的异常检测精度,而其他方法的性能则可能因类别不平衡而显著下降。这将证明不平衡学习模块在增强异常检测效果方面的有效性。
4. DAGAD 的性能对超参数设置的敏感性如何?
目的:分析 DAGAD 中的超参数对模型性能的影响,确保模型的鲁棒性和稳定性。
实验设计:调整 DAGAD 中的主要超参数(如损失函数中的正则化参数 和 ,这些参数控制了各损失项的权重),观察这些超参数的不同设置对模型最终性能的影响。
结果预期:理想情况下,DAGAD 应在一定范围内对超参数不敏感,即轻微的超参数调整不会导致性能的大幅波动。这种稳健性表明 DAGAD 在实际应用中具有良好的适应性。
总结
实验部分提出的四个问题帮助系统性地评估了 DAGAD 的有效性和设计合理性。这些问题分别从整体性能、模块贡献、不平衡处理能力和参数敏感性多个角度出发,确保 DAGAD 在多种场景下的有效性和鲁棒性。实验结果如果能够成功回答这些问题,将有力支持 DAGAD 在图异常检测领域的创新性和应用价值。
4. 总结
1. 研究贡献
本文提出了一种新的图异常检测框架——DAGAD(Data Augmentation for Graph Anomaly Detection)。该框架专注于解决图异常检测任务中的两个主要挑战:
- 异常样本稀缺:异常样本数量少且分布不规律,导致模型难以有效学习异常特征。
- 类别不平衡:正常样本远多于异常样本,使得模型更容易偏向正常类,从而忽视异常检测。
为应对这些挑战,DAGAD设计了三个核心模块:
- 信息融合模块:利用图神经网络(GNN)编码器,将节点的属性和拓扑结构整合在统一的低维表示中。
- 数据增强模块:基于节点表示进行随机置换,生成额外的增强样本,从而丰富训练数据,缓解异常样本稀缺问题。
- 不平衡学习模块:采用类别加权的损失函数,平衡正常类和异常类样本的权重,确保模型在不平衡数据上也能有效检测异常。
2. 实验结果
实验结果验证了DAGAD在图异常检测任务中的优越性能,主要体现在以下几个方面:
- 整体性能优越:在多个图数据集上,DAGAD在准确率、F1值、AUC等评价指标上均优于现有的多种基准方法,证明其设计在异常检测任务中的有效性。
- 模块贡献显著:通过消融实验,证明了信息融合、数据增强和不平衡学习模块对整体性能提升的独立贡献,验证了各模块设计的合理性和有效性。
- 适应不平衡数据:DAGAD在处理类别不平衡问题上表现尤为突出,其不平衡学习模块使得模型在异常类别上的召回率和精确率显著提高。
- 参数稳健性:DAGAD在参数敏感性分析中表现出对超参数的鲁棒性,证明了该模型在实际应用中的适应性。
3. 未来工作
作者在总结中通常还会指出DAGAD的潜在改进方向和未来研究方向,例如:
- 增强样本生成的多样性:未来可以尝试更复杂的增强策略,例如基于生成对抗网络(GAN)生成更具代表性的异常样本。
- 扩展到其他类型的图数据:DAGAD目前主要针对静态图数据,未来可扩展到动态图和异质图数据,进一步提升其适用性。
- 探索更高效的模型优化策略:DAGAD可以结合更高效的图神经网络优化方法,以提升训练速度和模型的可扩展性。
5. 难点理解
5.1.补充学习中损失函数
5.1.1. 权重调整机制让 更聚焦于异常样本
在DAGAD的损失设计中,通过动态权重 的调整来平衡 和 的作用。当 值较小时,意味着 的表现已经较好,系统会减少对 的依赖。这时, 的损失项对总体损失的影响减少, 可以专注于异常类样本的特征提取。
这种设计的目的,是让 尽可能学习到异常样本中独特的模式和特征,而不必兼顾正常样本的泛化。这使得 能在异常类别上更有针对性,增强其对异常样本的敏感度。
5.1.2. 允许 过拟合异常类特征
在传统的二分类任务中,我们通常希望分类器对所有类别保持泛化,以防止过拟合。然而,在异常检测任务中,异常样本通常稀少且特征多样,需要分类器对异常样本有更深入的理解。DAGAD允许 在异常类上过拟合,即让 强化对异常样本的特征学习,而不必过多关注正常样本的特征。
这种做法的合理性在于, 已经在增强样本和正常样本上进行泛化学习,可以保持对正常样本的良好检测能力。而 可以专注于异常样本的特征学习,即使在异常类上存在一些过拟合,也能提升异常检测的效果。
5.1.3. 专注异常特征帮助 提升对异常的敏感度
通过让 聚焦于异常样本的特征,DAGAD的补充学习机制使得 和 的检测特性互为补充。在这种安排下:
- 会成为异常样本的“专家”,通过过拟合异常类,深度学习其特征,尽可能区分异常样本和正常样本。
- 则在增强样本上保持对正常类的泛化能力,并借助 提供的异常特征,提升自身的异常检测能力。
这种设计可以理解为: 为 提供了关于异常样本的“先验知识”,使 能够在广泛的样本上更准确地检测异常。
5.1.4. 损失函数的作用:推动 聚焦异常特征
在损失函数设计上,DAGAD通过动态调整 的值,使得 的损失在整体损失中逐渐减少。当 学习效果较好时, 会趋向于较小值,从而减弱 的损失项在总体损失中的权重。这种设计让 更加“自由”地专注异常样本,不必兼顾正常样本的泛化性能。