Abstract
属性图异常检测旨在识别明显偏离大多数正常节点的节点,由于图结构数据在现实世界各种场景中的普遍性和复杂性,这种检测方法受到越来越多的关注。然而,目前主流的异常检测方法主要是针对集中式环境设计的,在某些敏感情况下可能会带来隐私泄露风险。
尽管图联邦学习提供了一个很有前景的解决方案,它可以在分布式系统中进行协作模型训练,同时保护数据隐私,但由于每个客户端拥有的图数据量通常有限,因此实际挑战也随之而来。因此,将联合图学习直接应用于分布式环境中的异常检测任务可能会导致性能结果不理想。
为了解决这些挑战,我们提出了一个基于对比自监督学习( CSSL ) [联邦CSSL异常检测框架( FedCAD )]的联合图异常检测框架。FedCAD通过联邦学习( FL )交互来更新客户端之间的异常节点信息。
首先,FedCAD 使用伪标签发现技术初步确定客户端的异常节点。
其次,FedCAD 采用本地异常邻居嵌入聚合策略。该策略可使当前客户端聚合来自其他客户端的异常节点的邻居嵌入,从而放大异常节点与其邻居节点之间的区别。
在对比学习中,这样做能有效增强正负实例对之间的对比,从而通过这种学习范式提高异常检测的效率和精度。
最后,在四个真实图数据集上的实验结果证明了 FedCAD 的效率。
术语表:
一、INTRODUCTION
异常检测(Anomaly Detection)是机器学习中的一个基本研究问题,已经在图像分析和时间序列分析等多个领域得到了广泛的研究。它的主要目标是识别出表现出异常行为或不符合典型模式的数据点或实体。传统的异常检测方法主要集中于单维数据或简单的关系结构。
然而,随着社交网络、物联网 (IoT) 和生物网络等领域复杂关系数据的出现,属性图异常检测的重要性变得日益明显。
属性图表示复杂的数据结构,包括节点、边以及附着在每个节点和边上的各种属性信息。与传统的仅表示节点间相互作用的图不同,属性图为每个节点纳入了丰富的特征信息,允许对更复杂的相互作用系统进行建模[ 2 ]。
属性图上的异常检测涉及在这种更复杂的背景下识别异常的节点、边或子结构。与单维或表格数据不同,属性图上的异常检测带来了更大的挑战。属性图中异常节点的检测对于各种安全相关的应用具有重要的意义,近年来已成为一个迫切的研究课题。例如,社会网络分析、财务欺诈检测、网络安全等。
随着图神经网络( GNNs )的发展,属性图异常检测取得了重大进展,并在许多现实世界的复杂场景中表现出了良好的性能。
尽管传统的集中式异常检测方法取得了进步,但它们往往需要直接访问潜在的敏感用户数据,从而引发了严重的隐私问题[3]。
下面是一个常见场景的例子。考虑到金融行业的实际问题,由于各种原因,城市居民会去不同的银行。因此,他们的客户信息、交易网络和违约记录只存储在他们访问过的银行中。对于希望合作对其客户进行全面信用评估并确定共同行业黑名单的银行来说,一个能够在客户网络(包含来自不同银行的所有子图)中执行高效推理的强大异常检测模型是一个关键要求。
但由于担心用户隐私和利益冲突,所有银行都很难共享用于训练异常检测模型的客户网络。在上述情况下,出现了两个挑战。
上述情况带来了两个挑战。
第一个挑战是数据隐私保护。如何在分布式系统中训练异常检测模型,同时保护数据隐私?
第二个挑战是小型客户端子图。在分布式系统中,每个客户端的数据规模较小,客户端之间的数据可能会重叠。如何扩大每个客户端的数据规模以提高异常检测的效果?
联邦图学习是解决这一问题的一个令人信服的替代方案,它可以在不损害个人数据所有者隐私的情况下,促进分布式系统之间的协作模型训练[4]。它允许客户在本地维护数据,只共享模型参数或加密梯度。然而,当直接应用于分布式环境中的异常检测任务时,由于每个客户端掌握的图数据相对较少,联合图学习可能会因学习过程中缺乏全面的数据暴露而导致性能下降。
对于数据隐私保护的第一个挑战:
在本文中,我们提出了一种联邦图异常检测框架FedCAD,该框架融合了联邦图学习和异常检测的思想。
首先,FedCAD通过联邦参数聚合间接获取其他客户端的图结构,并将其集成到其客户端图结构中。
其次,FedCAD不直接共享节点特征,而是通过对比学习采样得到目标节点的邻居子图,并在共享前将子图嵌入到低维嵌入向量中。同时,服务器只上传异常节点邻域子图嵌入,而不上传正常节点邻域子图嵌入。
这两点保证了数据的隐私安全。
ps:
对于客户端子图规模较小的第二个挑战:
一个明显的方法是扩大每个客户端的数据,公司或组织通过其他渠道扩大数据集的规模。然而,扩大数据集的规模是有成本的。
另一种方法是进行数据增强。然而,目前大多数数据增强方法都适用于计算机视觉(CV)和自然语言处理(NLP)领域。由于图形是复杂的非欧几里得图形,因此可用于图形数据的数据增强技术很少。此外,数据增强产生的数据多为负例,降低了模型在异常检测任务中的性能。
FedCAD通过使用“局部异常邻居嵌入聚合机制”解决了这一挑战,使得当前客户端能够聚合其他客户端的异常节点邻居嵌入,扩大了异常节点与其邻居节点之间的差异,使得对比学习中的正例实例对和负例实例对之间的差异明显,以提高后续对比学习异常检测的有效性。
在本文中,我们提出了FedCAD。以下是我们主要贡献的总结。
1.我们提出了一个联合图异常检测框架FedCAD。FedCAD可以在分布式图数据上进行协作,在保护数据隐私的同时训练高质量的图异常检测模型。
2.我们提出了一种异常信息更新策略,使得每个客户端能够在联邦处理过程中聚合来自其他客户端的异常节点邻居嵌入。通过这样做,扩大了异常节点与其邻居节点之间的差异,使得对比学习中正例对与负例对之间的差异明显,以提高后续对比学习异常检测的有效性。
3.我们在4个数据集上对提出的FedCAD进行了评估。结果验证了算法的性能及其相对于基线方法的优越性。
二、RELATED WORK
在这一部分中,我们将概述与本文最相关的研究领域,包括属性网络上的异常检测、对比自监督学习(CSSL)、以及联邦图学习
2.1Anomaly Detection on Attributed Networks
由于属性网络在复杂系统建模中的广泛应用,近年来属性网络异常检测逐渐兴起。一些浅层方法被用于属性网络异常检测。佩罗齐和Akoglu [ 6 ]通过提取每个节点的自网络信息来检测属性网络上的异常。
Peng等人[ 7 ]在残差分析中加入CUR分解对属性网络进行异常检测,以缓解噪声特征对异常检测的不利影响。
GNN 是一类深度神经网络[9],专门用于模拟非欧几里得图结构数据中固有的关系模式。随后,出现了一系列基于频谱的 GNN 变体,利用图信号处理观点的过滤器 [10]。其中,图卷积网络(GCN)通过实现谱图卷积操作的局部一阶近似而脱颖而出[11]。这种策略性方法能有效提取有意义的节点表征。由于基于深度学习的异常检测技术发展迅速,研究人员也提出了基于属性网络的异常检测方法。
Ding等[ 8 ]通过一个具有GCN层的自编码器,基于邻接矩阵和属性矩阵的重构误差计算异常。
Fan等人[ 12 ]提出了一个学习网络结构和节点属性之间跨模态交互的框架。
Li等人[ 13 ]使用谱图自编码器来提取每个节点的潜在嵌入,并使用高斯混合模型( GMM )来检测每个节点。
Yu等人[ 14 ]使用随机游走采样和自动编码器模型来动态学习网络嵌入,并使用基于聚类的检测器来检测异常。
Liu等人[ 15 ]克服了自动编码器不能充分利用数据和不能对大规模网络数据进行操作的缺点。
本文使用基于CSSL的异常检测框架来捕获目标节点与其相邻子结构之间的联系。通过对比学习衡量每个实例对与其输出评分的一致性,对异常节点进行统计检测。
2.2Contrastive Self-Supervised Learning
CSSL是自监督学习的一个重要分支,在没有明确标签的情况下,通过训练模型来识别节点之间的相似性和差异性[ 16 ]。CSSL在合作学习中取得的显著成就推动了其在基于图的学习范式中的逐步应用。
DGI 通过将节点表示与图层摘要向量配对来构建对比性实例对,利用图层破坏来生成负样本,从而实现在无监督环境下的节点表示学习 [17]。
图形对比编码(GCC)通过在通用图形数据集上进行预训练来初始化 GNN,使用的策略包括对每个节点抽取两个子图作为正实例对,并利用信息噪声对比估计(InfoNCE)损失函数进行表征学习[18]。
图形互信息(GMI)的重点是优化节点嵌入与其邻居原始属性之间以及相连节点嵌入之间的一致性[19]。然而,大多数 CSSL 方法并不直接针对异常检测,尽管它们在学习数据表示方面很有效。
为了适应异常检测,用于归属网络异常检测的 CSSL 框架(CoLA)调整了整个对比学习框架,以计算单个节点的异常得分[15]。由于认识到传统的实例对定义可能无法充分捕捉节点异常,CoLA 为图对比学习提出了一种新的对比实例对形式。
这种新颖的设计强调每个节点的本地信息而非全局属性。虽然大量研究已经证明了图对比学习的广泛适用性,但将其应用于分布式环境中属性网络的异常检测仍是一个新颖而复杂的研究课题。
2.3Federated Graph Learning
联邦学习是一种新颖的分布式学习范式,可与多个客户端联合建模 [20]、[21]。
联邦学习已在许多领域得到广泛研究,例如图像识别 [22]、车辆定位 [23]、机械故障诊断 [24]、无线通信 [25] 和边缘计算 [26]。
联邦图学习是联邦学习的一个方向,受到广泛关注。联邦图学习是一种新兴技术,可以在分布于多个客户端的图数据集上联合训练机器学习模型,以确保用户隐私[27]。
Caldarola 等人[28] 利用 GCN 对 FL 中的域间交互进行建模并研究跨域异质性。
He 等人[29]提出了适合图嵌入算法的通用联盟框架。
Jiang 等人[30]、Chen 等人[31]和 Wu 等人[32]研究了联合 GNN 的隐私问题。
Wang 等人[33] 在图 FL 中引入了模型无关金属学习(MAML),以便在处理非独立和同分布(IID)图数据时保持模型的通用性。
Zhang 等人[34] 研究了子图 FL 背景下的缺失邻居合成问题。
Xie 等人[35] 研究了图分类,以减少本地系统所拥有的图的结构和特征的异质性。
Peng 等人[36]重点研究了如何加强联合学习的隐私保护,并研究了如何在联合知识图嵌入中使用差分隐私。
三、PRELIMINARIES
3.1Notations and Definitions
在《命名法》中对这些记法进行了总结。对于表示法,我们用粗略的小写代表一个向量( e.g . , x)。
粗体大写字母表示矩阵(如 X),书法字母表示集合(如 V)。
定义1 (属性网络):
G = ( V、E、X)表示一个属性网络,其中V是节点集,E是边集,X∈Rn × f是属性矩阵.
属性矩阵的第i行向量xi∈Rf表示第i个节点的属性向量。
属性网络的结构表示为二元邻接矩阵A∈Rn × n,其中节点vi和vj之间是否存在链接用Ai,j = 1表示,否则Ai,j = 0。
一个属性网络也可以表示为G = ( A , X)。
定义2(联邦学习客户端子图):
FL 系统中有一个服务器和 M 个客户端。
对于 Ci ∈ [M],GCi = (VCi , ECi , XCi ) 是客户端 Ci 的子图。
需要注意的是,每个客户端的节点数和图结构存在一定差异,但客户端之间也存在一些重叠节点。也就是说,对于任何图 GCk,都存在 k ̸= t,这样 VCk ∩ VCt ̸= ∅。这种设置符合现实世界中图形数据的分布。
3.2Problem Statement
3.2.1Node Anomaly Detection in Distributed Systems
假设有 M 个客户端,GCk 表示客户端 Ck 拥有的数据,目标是在分布式系统中训练异常得分函数 f。根据每个节点的异常得分进行排序,即可检测出异常节点。
我们采用无监督异常检测方法。在训练阶段,我们只给出包含异常节点的属性网络 G,而不给出节点的异常标签.
在这项工作中,我们旨在提出一种属性网络上的联合异常检测框架,它可以对不同客户端中的孤立子图进行协作学习,从而训练出高质量的异常检测模型,同时保护数据隐私。
四、DESIGN OF FEDCAD
4.1Overall Architecture
我们提出了一个新的基于属性网络的联合CSSL异常检测框架FedCAD,如图1所示
首先,我们采用了一种属性网络上的异常检测框架,该框架可以通过训练对比学习模型来建模目标节点与其部分邻近子结构之间的关系,从而揭示图中的各种异常。
其次,我们将异常检测算法集成到联合学习框架中,实现了一个通用的联合图异常检测框架,称为 FedAD。它简单地将本地异常检测模型与经典的联合学习算法 Fedavg [37]相结合,允许本地客户端上传异常检测模型的参数,在服务器中对参数进行平均聚合以更新参数,最后将更新后的参数发送到各个客户端。
第三,在 FedAD 的基础上,我们提出了 FedCAD。FedCAD 采用联合学习的方式,将客户端通过对比学习采样的目标节点邻域子图的向量嵌入上传到服务器。
服务器会聚合客户端之间的异常信息,并将聚合后的向量嵌入集发送给每个客户端。客户端执行平均聚合,从而改善对比学习中目标节点与邻居子图之间关系的差异,提高局部异常检测的有效性。
4.2Local Anomaly Detection Module
我们采用了一个异常检测模块,如图2所示。总体流程如算法1所示。
1.实例对取样: 我们采用对比实例对:
第一个元素是一个节点,称为 “目标节点”。目标节点会在每轮内随机遍历图上的每个节点。
第二个元素是从 “目标节点 ”中抽取的子图。属性网络中的节点异常通常反映为目标节点与其本地邻居之间的不一致性。
实例对Pi可以表示如下:
其中vi是目标节点,Gi是由vi采样得到的子图。
yi是Pi的标签。
在正实例对中,目标节点和子图是连通的。在负实例对中,目标节点和子图是不连通的。
2.基于Gcn的对比学习模型:
首先,将局部子图输入GCN,得到局部子图嵌入。GCN模型可以写成如下形式:
其中" D~i “是局部子图的度矩阵,” Xi “是属性矩阵,” Ei "是子图节点的嵌入。
W0是第0轮可学习参数
然后,通过平均池化方法将子图节点 Ei 的嵌入向量转换为局部子图嵌入向量elg i
具体方法如下:
式中:ni为子图Gi中的节点数。
我们还将目标节点映射到相同的嵌入空间进行比较
其中W ( 0 )为GCN的映射权重矩阵,xvi为目标节点的属性向量,etni为目标节点嵌入。
我们通过比较嵌入向量和嵌入空间来计算最终的预测得分:
其中W ( d )是判别器权重矩阵,σ ( · )是logistic sigmoid函数。
作为目标函数,我们使用标准的二进制交叉熵( BCE )损失。具体地,目标函数表示如下:
yi是实例对Pi的标签
si是最终预测得分
4.3Anomaly Score Computation
通常,训练好的GNN模型能够更有效地捕获正常样本的匹配模式,因为它们在训练数据中所占比例较大,具有明显的规律和特征。相反,异常样本由于其多样性和不规则性,使得模型难以拟合其模式,从而提出了更大的挑战。
理想情况下,对于一个正常节点,其正对s ( + ) i的预测得分应该接近于1,而负对s ( - ) i的预测得分应该接近于0 .
对于异常节点,由于模型不能很好地区分其匹配模式,其正负对的预测得分之间的区分度较低。利用上述性质,我们可以将每个节点的异常分数定义为它的负分数和正分数的差。
对于正常节点,该值为负;对于异常节点,该值接近于0。因此,异常分值越高,该节点出现异常的概率越大。
每个节点vi的异常得分写如下:
其中s ^( + )^ i为正对的预测得分,而s ^( - )^ i是负对的预测得分。
然而,目标节点的单样本局部子图无法描述整个邻域分布,导致性能下降。为了解决这个问题,我们重复运行多轮来计算平均预测分数。
每个节点的最终异常分数写如下:
式中:R为采样轮数。
4.4FedAD Algorithm
Fed Avg是第一个基本FL算法。我们将异常检测算法集成到联邦学习框架中,实现了一个简单的联邦图异常检测框架,称为FedAD,如图3所示。
具体来说,假设有M个客户端,GCk表示客户端Ck拥有的数据,WCk表示在客户端Ck上训练的局部异常检测模块。WG表示服务器上的全局模型。客户端与服务器之间共进行Tc轮通信。总体流程如算法2所示。FedAD算法流程为以下几个步骤。
1.Initialization
服务器初始化超参数和本地异常检测模块参数W0G等,并分发到各个客户端。
2.局部异常检测模块训练
每个客户端从服务端接收到本地异常检测参数后,训练本地异常检测模型,并利用本地数据更新本地异常检测参数。
对于客户端Ck来说,第t次通信是:
其中α为学习率,更新后的本地模型参数W t Ck上传至服务器。
Global Model Parameters Update
服务器将各客户端上传的更新后的局部模型参数进行聚合,生成更新后的全局模型参数Wt+1 G。其公式为:
其中,| GCk |表示客户端Ck的样本数。将更新后的全局模型参数W t + 1G分发给各个客户端继续下一轮训练。
整个过程将重复步骤2 )和步骤3 ),直到全局模型收敛或达到最大通信次数。
FedAD 结合了本地异常检测模型和经典的联合学习算法 FedAvg。
首先,FedAD 是我们提出的联合异常检测 FedCAD 的组成部分,为 FedCAD 提供异常节点得分、目标节点嵌入向量和邻居节点嵌入矩阵。其次,FedAD 是 FedCAD 的消融版本,用于验证伪标签发现、本地异常邻居嵌入聚合和本地判别模块的有效性。
4.5Anomaly Information Update Between Clients Based on FL
图形数据的稀缺性导致在形成正例和负例对时,重复节点过多。因此,当对比学习从如此有限的数据中抽取负面实例对时,这些实例对中的相邻节点极有可能与正面实例对中的节点重叠。这会导致正负实例对之间的区别不明显,最终降低对比学习的效果。
在联邦学习过程中,FedCAD 会额外聚合来自其他客户端的异常节点的邻节点嵌入。这一策略扩大了异常节点与其相邻节点之间的差异,使正负实例对之间的对比更加明显。
4.6Pseudo-Label Discovery
根据 FedAD 的异常节点得分,我们尝试发现异常节点的伪标签。
对于 S 中第 i 个节点的 Sk 预测结果,如果预测得分高于阈值,则为伪标签。
其中,Y ̄ k Ci 是客户端 Ci 第 k 个目标节点的伪标签,λ∈ (-1, 0) 是置信度阈值。
然后,我们提取所有目标节点的邻节点嵌入矩阵 UCi,该矩阵由局部子图嵌入向量 elg i 组成。
我们将 Uk Ci 中的向量 Y ̄ k Ci = 0 设为 0 向量。这主要有两个原因。第一,可以有效保护数据隐私。只有上传异常节点邻居嵌入向量才能有效保护数据隐私不被泄露。第二,大大减少了联盟学习的通信开销。异常节点的比例很小,只上传异常节点的邻居嵌入向量可以节省大量通信开销。
最后,每个客户端将 U 和 Y ̄ 上传到服务器。
4.6.1Local Anomaly Neighbor Embedding Aggregate
本地异常邻居嵌入聚合:服务器接收到每个客户端更新的 U 和 Y ̄后,获取与每个客户端和其他客户端重合的异常节点的伪标签。
然后,服务器根据重合节点的伪标签聚合所有客户端的异常邻居嵌入。
具体步骤如下:
1.伪标签 Y ̄ Ci 与其他客户端的伪标签 Y ̄ C j 相交,得到重合的异常节点伪标签集 YCi
2.我们复制 M 份目标节点的邻域嵌入矩阵 UCi,然后根据得到的重合异常节点伪标签集 Y ̄ C j Ci,用其他客户端的邻域嵌入矩阵 UC j 替换邻域嵌入矩阵 UCi。
3.服务器对每个客户端上传的每个邻域嵌入重复执行上述过程。
4.6.2Local Discriminator Module
我们将聚合的邻居嵌入矩阵集发送给各自的客户端。每个客户端都会对聚合的邻居嵌入矩阵集取平均值,从而扩大异常目标节点与其邻居之间的差异
然后,我们得到由 (6) 生成的目标节点嵌入向量 etn i。接下来,我们将 ulg i 和 etn i 输入本地判别模块进行训练。本地判别模块也使用样本双线性评分函数,其写法如下:
我们试图最大化地面实况标签 yi 和预测结果 si 之间的相似性。因此,我们采用标准 BCE 损失作为目标函数