论文阅读-Graph Contrastive Learning for Anomaly Detection

论文链接:https://arxiv.org/pdf/2108.07516.pdf

目录

摘要

1 介绍

2 GRAPHCAD

2.1 研究的问题

2.2方法

2.3 无监督设置的GraphCAD-pre

2.4 GraphCAD的GNN编码器

2.4.1 概述

2.4.2 边缘更新

2.4.3 节点更新

2.4.4 图形更新

2.5 训练和推理

2.6 复杂性

3 实验

3.1 实验设置

3.2 GraphCAD评估

 3.3 GraphCAD-pre评估

5 结论和未来方向


摘要

         基于图的异常检测已广泛用于检测实际应用程序中的恶意活动。迄今为止,解决这个问题的现有尝试都集中在结构特征工程或二元分类机制的学习上。

        在这项工作中,我们建议利用图对比学习并提出监督 GraphCAD 模型,以根据它们与全局上下文的距离(例如,所有节点的平均值)将异常节点与正常节点进行对比。

        为了处理标签稀缺的场景,我们通过设计用于生成合成节点标签的图破坏策略,进一步使 GraphCAD 成为一个自我监督的框架。为了实现对比目标,我们设计了一个图神经网络编码器,可以在消息传递过程中推断并进一步删除可疑链接,以及学习输入图的全局上下文。我们在四个公共数据集上进行了大量实验,证明 1) GraphCAD 显着且始终优于各种高级基线,以及 2) 其无需微调的自监督版本可以达到与其完全监督版本相当的性能。

1 介绍

        异常检测对防止各种应用程序中的恶意活动具有深远的影响,例如检测在线评论垃圾邮件 [34]、金融欺诈 [28]、[50]、虚假用户 [11] 和错误信息 [8]、[43] .最有前途的发展是通过机器学习模型利用图结构来区分异常节点和正常节点,因为图可用于对数据下的结构依赖性进行建模 [10]、[25]、[32]。

        最近,图神经网络 (GNN) [13]、[23]、[47] 的进步激发并推动了采用 GNN 检测异常的各种尝试 [10]、[18]、[32]、[42] ], [50]。基于 GNN 的异常检测的主要思想是利用 GNN 的能力来学习表达节点表示,目的是在嵌入空间中区分异常节点和正常节点。大多数GNN模型是基于两个相邻节点倾向于具有相同标签的归纳偏差。然而,异常节点和正常节点之间的可疑链接违反了上述假设,使得 GNN 产生了令人困惑的节点嵌入。

        为了进一步理解异常行为,我们以谷歌Scholar发表的作者简介中的作者“陆俊”(耶鲁大学教授)为例,以分配给他的论文为节点构建一个图,如果两篇论文有相同的合著者、隶属机构或场所,则用边连接起来。这里的目标是检测错误分配的论文(异常),即那些不是由他撰写的。这个异常检测问题可能是由 2012 年报道的一则新闻 引发的,该新闻报道了另一位来自北京化工大学的名为“Jun Lu”的研究人员使用耶鲁大学“Jun Lu”的论文作弊。此事件由错误分配的同名论文引起,表明异常检测的重要性。

        因此,我们在图 1 中说明了如何区分错误分配的论文和正确的论文。

(图 1. 检测不属于“Jun Lu”的论文(红色)的真实示例。 (a) 他所有论文的图的 t-SNE 投影,其中节点是论文,如果两篇论文共享相同的合著者、隶属关系或地点,则一条边将它们连接起来; (b) 通过使用输入特征(N、AB、GL 缩写为 Normal、ABnormal 节点和 GLobal context),正常节点和全局上下文(蓝色)与异常节点和全局上下文(红色)之间的相似性,分别); (c) GCN 生成的嵌入之间的相似性。 (d) GraphCAD 生成的嵌入之间的相似性。) 

        图 1(a) 显示了每个节点的输入特征的 t-SNE投影——其标题的 BERT 嵌入 [9]——蓝色为正常节点,红色为异常节点。我们观察到异常节点和正常节点的分布都不同,异常节点相对更加多样化。直观地,我们通过计算每个节点和全局上下文之间的相似性——所有节点特征的平均值——来量化这个观察结果,如图 1(b) 所示。这表明虽然有轻微的重叠,但可以清楚地区分两个相似性分布。受这些观察的启发,我们探索是否有一种直接的方法来捕获它们以区分异常节点和正常节点

        目前的工作。鉴于对比学习 [14]、[56] 的最新进展,我们建议将每个节点与输入图的全局上下文进行对比。潜在的假设是异常节点往往比正常节点更远离大多数节点,即图形上下文。我们将该模型命名为 GraphCAD,一种用于异常检测的图形对比学习。具体来说,我们以监督方式设计上下文感知图对比损失,即将标记的正常和异常节点分别视为正键和负键(参见第 2.2 节),不同于大多数现有的在自我监督的预训练设置中使用图形对比度学习的研究[37] ,[48] ,[61]。图 1(d) 绘制了 GraphCAD 生成的嵌入与图 1(c) 中 GCN [23] 生成的嵌入的相似性分布,展示了 GraphCAD 在考虑异常节点与正常节点分离时的惊人能力到图的全局上下文的距离。  

      除了有监督的 GraphCAD 模型外,我们还以无监督的预训练方式扩展了 GraphCAD-pre,用于处理标签稀缺的情况。简而言之,我们需要合成可直接用于替换监督对比损失中的真实标签的节点标签。为实现这一点,我们设计了一种策略,通过在该部分之外注入节点来破坏原始图的每个部分。

        为了实现对比目标,我们提出了一个具有三个模块的上下文感知 GNN 编码器:边缘更新、节点更新和图形更新。首先,边缘更新用于估计每个链接的可疑可能性,然后通过删除最可疑的链接来更新邻接矩阵。然后,节点更新是通过在更新后的邻接矩阵上传递消息来更新节点嵌入。最后,设计了图更新,迭代更新全局上下文

        我们通过两种类型的异常检测任务来验证所提出的模型,即在两个学术数据集 AMiner 和 MAS 上检测研究人员个人资料中错误分配的论文,并检测在两个商业网站 Alpha 和 Yelp 上给出欺诈评级的用户。学术数据集有多个作者简介,其中每个简介都可以看作一个图表,称为多图设置。而具有一个大图的业务数据集被视为单图设置。实验表明:1)GraphCAD 在多图数据集上产生了实质性的改进,同时与最先进的基线相比,在单图数据集上呈现出微妙但一致的性能提升; 2) 无监督的 GraphCAD-pre 与完全监督的 GraphCAD 相当。通过进一步微调,GraphCAD-pre 可以在大多数数据集上胜过 GraphCAD。一般而言,GraphCAD-pre 的性能始终优于其他图对比预训练方法。主要贡献总结如下:

        我们提出了使用图对比学习进行异常检测的想法,并通过设计上下文感知图对比目标来呈现 GraphCAD。

         • 我们设计了一种有效的策略来生成用于将GraphCAD 扩展到无监督GraphCAD-pre 的合成标签。

        • 我们设计了一个上下文感知的GNN 编码器,通过注入上下文信息来获得节点和上下文表示。

        • 我们进行了实验,展示了GraphCAD 和GraphCAD-pre 带来的实质性改进。

2 GRAPHCAD

        在本节中,我们首先介绍异常检测的问题定义(第 2.1 节),然后进行初步观察以验证 Graph-CAD 的动机(第 2.1 节)。之后,我们提出了具有理论保证的学习目标(第 2.2 节),并将监督目标进一步扩展到无监督设置(第 2.3 节)。最后,我们介绍了 GraphCAD 和 GraphCAD-pre 的上下文感知 GNN 编码器(第 2.4 节)。

2.1 研究的问题

        我们将图定义为 G = (V, X, A, Y ),其中 V 是 N 个节点的集合,A ∈ RN ×N 表示邻接矩阵,X ∈ RN ×d 是对应的特征向量,其中 xi ∈ Rd表示节点vi的d维特征向量。

        不失一般性,我们将 G 视为无向单关系图,即如果 vi 和 vj 之间存在边,则 Aij > 0,否则 Aij = 0。

        问题 1. 基于图形的异常检测。给定图 G = (V, X, A, Y ),Y 是节点标签集,如果 vi 异常,则 yi ∈ Y 等于 1,否则为 0。目标是学习函数 g : Rd → {0, 1} 以确定给定节点是异常 (1) 还是正常 (0)。

        为了解决这个问题,大多数现有的基于 GNN 的模型直接将 g 实例化为二元分类器 [10]、[32]。我们进行以下初步观察以验证所提出模式的动机。

        初步观察。为了进一步验证将节点与图 1 中的全局上下文进行对比的动机,我们还从 AMiner3 中提取了拥有超过 500,000 篇论文的 10,000 位作者。每个作者简介都被视为一个图,其论文作为节点,论文之间的联系作为边。值得注意的是,我们主要关注本文中多图设置中的异常检测,这是一个更具挑战性和探索不足的场景(参见第 3.2 节)。然而,我们提出的方法也可以实例化为单图设置。同样,这里的目标是检测错误分配的论文(异常)。对于每个作者,错误分配的论文(异常)由专业注释者或作者自己标记。对于每篇论文,我们通过其标题获得其 BERT 嵌入 [9]。然后我们计算一对论文之间的余弦相似度,并对三组的成对余弦相似度进行平均,即正常和正常 (N-N)、异常和异常 (AB-AB) 以及正常和异常 (N-AB)。图 2(a) 显示了以下现象。

        ((a) 通过 BERT 初始化的输入特征,正常节点与正常节点(蓝色)、异常节点与异常节点(红色)以及正常节点与异常节点(绿色)之间的相似性; (b) GCN 生成的嵌入之间的相似性。 (c)通过输入特征,正常节点和全局上下文(蓝色)与异常节点和全局上下文(红色)之间的相似性; (d) GraphCAD 生成的嵌入之间的相似性。) 

        Intra-Diversity:N-N 和 AB-AB 的相似性非常多样(散布在 [0.2,0.8] 内),这与图 1(a) 中的情况一致;

         • Inter-Diversity:N-AB 的相似性也多种多样,超过20% 的异常节点与正常节点相似(y > 0.5)。

        我们推测这种intra-/inter-多样性会降低传统分类器区分异常和正常异常的性能。为了验证这一点,我们基于 GCN [23] 生成的嵌入和二元分类损失来研究相同的相似性,如图 2(b)所示。结果表明,虽然N-N的相似性从[0.2,0.8]增加到[0.4,1.0],但多样性内部和多样性间的问题仍然很严重。

        先前的努力 [25]、[32] 揭示了异常的行为模式与正常节点的行为模式不同,在此基础上,他们表征了归纳偏差以检测异常。然而,他们中的大多数只关注修改消息传递过程以减少传播的噪声,而忽略了数据分布多样化时二元分类目标的有限能力。 

        受图 1(b) 中观察到的情况的启发,我们计算了每个节点与全局上下文之间的相似度——所有节点特征的平均值,并在图 2(C)中显示了 N-GL 和 AB-GL 中的平均相似度。我们可以看到,与图 2(a) 相比,虽然仍然存在重叠,但可以更清楚地区分两种相似性分布。此外,我们根据图 2(d)中 GraphCAD 生成的嵌入绘制相似性。与图 2(c) 相比,可以进一步区分正常和异常嵌入的结果。               

        对此,我们凭经验验证了上下文感知对比学习方法的动机——而不是直接捕获正常节点和异常节点之间的绝对差异,对比节点和全局上下文之间的相对距离有望成为一个更有前途的方法。解决节点分布多样性的方法。

2.2方法

        GraphCAD 的基本思想是通过将节点与整个图的全局上下文进行对比来确定节点的异常。这是因为发现正常节点和异常节点之间到全局上下文的距离存在显着差异。换句话说,如果一个节点偏离特征空间中的大多数节点越远,它就越不正常。

        鉴于此,我们通过图对比学习(GraphCAD)区分嵌入空间中的异常节点和正常节点。具体来说,给定一个图 G,我们首先创建一个 GNN 编码器 f_{GNN},它可以输出每个节点 vi 的嵌入 hi 以及整个图(全局上下文)的嵌入 q,即 (H, q) = fGNN(X, A, W ) 其中 H = \{h_i\}^N_{i=1} 和 W 作为 f_{GNN}的可训练参数。我们以图嵌入q作为查询,一个正常节点的嵌入作为与q匹配的正键,所有异常节点的嵌入作为与q不匹配的负键。为了实现,我们以监督的方式使用 infoNCE [36] 作为具体的损失函数,这样:

         其中 τ 是温度超参数。目标函数是强制最大化正对(正常节点,全局上下文)与负对(异常节点,全局上下文)之间的一致性

        与上下文感知对比学习相比,传统的正常-异常对比是一种按节点的对比模式,通常会受到噪声标签的影响。

        例如,[21] 指出假阴性实例会阻碍对比学习的表现。相反,所提出的局部-全局方法将每个异常节点与全局上下文进行对比,可以减少单个噪声标记节点的负面影响.

为什么 GraphCAD 可以有效工作?从理论上证明了该方法的有效性,并与原有的交叉熵损失分类方法进行了比较。

        定理 1. X^{+} 表示正常节点的随机变量,p^{+}(\cdot ) 表示其边缘分布,因此X^+ - p^+(x^+)。同样,我们用 X^- 表示异常节点,用 p−(·) 表示其边缘分布,X−∼ p−(x−)。假设 p+ 和 p− 相互独立。然后我们有:最小化等式中的对比损失。 (1) 构成 1) 两个数据分布 p+(·) 和 p−(·) 的交叉熵加上 2) p−(·) 的熵的下界。正式地,                

         鉴于方程式中的两部分。 (2),对比损失 Lcon 在理论上和分析上比交叉熵损失和节点对比损失更稳健,原因如下。

        首先,局部-全局对比可以更好地处理多样化的异常分布。定理 1 表明,所提出的局部-全局对比损失可以分解为正常节点和异常节点分布之间的交叉熵加上异常节点的熵。由于第一项链接到节点对比损失 [5],这也被证明是预测标签和地面真值标签之间的交叉熵 [5],因此所提出的局部-全局对比损失具有额外的熵异常节点与交叉熵损失的比较。这种额外的熵作为归一化约束,使得学习到的异常节点特征的分布尽可能均匀地分布在特征空间中。因此,它可以更好地处理多样化的特征分布,尤其是异常多样化的分布,这可以在异常检测数据集中准确地观察到(参见图 1)。

        其次,局部-全局对比可以减少标签不平衡问题。最大化异常节点的附加熵也增加了异常节点的信息特征,在一定程度上减少了异常节点相对于正常节点的标签不平衡问题。异常检测中常见的假设是异常节点是少数类,因为异常节点的数量远小于正常节点。因此,传统的异常检测方法通常会遇到类不平衡问题。为了缓解它,提出了用于生成少数类别伪标签的数据增强技术 [3]、用于重新平衡类别分布的上采样或下采样技术 [4] 等。该方法的核心思想是增强少数类的信息,从而平衡少数类和多数类之间的训练偏差。这种平衡技术在某种程度上与方程式(2)的优化目标一致。 它增加了异常节点的信息特征以平衡训练偏差

        等式(2)的证明。h^+ = f_{GNN}(x^+,\cdot ,W),其中h ∈ Rd,则我们有正常节点嵌入矩阵H^+=\{h^+_i\}^n_{i=1},其中n是正常节点的数量。同样,我们定义h^- = f_{GNN}(x^-,\cdot ,W) 和异常节点嵌入矩阵H^-=\{h_j^-\}^m_{j=1},节点数量为m。请注意,n\gg m。令R(·) 是图形上的确定性读出函数。在不失一般性的情况下,我们假设R(·) = MEAN (·)。因此q = R(H) = \frac{1}{N}(\sum_{i=1}^{n}h_i^+ + \sum_{j=1}^{m}h_j^-)。来自等式(1),我们可以推导出:

        其中“对齐”项拉近了正常节点和全局上下文之间的距离,“均匀性”项推远了异常节点和全局上下文之间的距离 [52]。 

         请注意,通过 Inter-/Intra-Diversity 观察学习到的 n\gg m,正常节点之间的相似性分数占主导地位且通常很大,即 q^Th^+ 项自然很大,因此主要挑战在于优化“均匀性”。渐近地,假设正常节点对完全对齐,即 qT h+ = 1,最小化方程式 (3) 相当于优化第二项,即

         其中第一个不等式遵循基于对数函数凹性的 Jensen 不等式,即 log(E[x]) ≥ E[log(x)].

        由于 p+ 和 p− 相互独立,并且来自 p+ 或 p− 的数据样本遵循独立同分布。假设,最小化方程式 (5)的最后一个方程式。 相当于最小化正常和异常节点嵌入之间的相似度之和以及异常和异常节点嵌入之间的相似度之和,即

         其中第二个等式是通过首先对每个相似性得分应用指数,然后以对数形式重新调整相似性得分的期望来获得的。值得注意的是,第二个等式在最小化优化情况下成立。此外,受 [52] 中熵估计操作的启发,最后一个等式可以被视为通过 von Mises-Fisher (vMF) 核密度估计 (KDE) 的h^{+/-} [1] 的重置熵估计,其中 logZ_{vMF}是归一化常数,^H 表示重置熵估计量。

        结果表明,最小化Eq (1) 相当于最大化两个数据分布p+(·)和p−(·)之间的交叉熵和p−(·)的熵。

        连接到现有的图形 CL 框架。以监督方式执行对比学习的 Graph-CAD 不同于现有的用于 GNN 预训练的图对比学习框架,例如 GCC [37]、DGI [48]、GraphCL [61],因为它们中的大多数是自监督学习的,对比实例应该从未标记的数据中构建。例如,在 GCC [37] 中,给定一个随机采样的节点自我网络的嵌入作为查询,正键是同一节点的另一个采样自我网络的嵌入,负键是那些采样的来自其他节点。在 DGI [48] 中,给定整个图嵌入作为查询,正键是其中一个节点的嵌入,负键是排列图后同一节点的嵌入。 GraphCL [61] 进一步对比了不同的图扩充。给定图的嵌入作为查询,正键是从同一图扩充的图的嵌入,而负键是来自不同图的图。相反,在我们的异常检测目标中,给定图嵌入作为查询,正键和负键分别被约束到正常节点和异常节点。鉴于此,GraphCAD 是一种有监督的对比学习 [22]。

2.3 无监督设置的GraphCAD-pre

        获得足够的异常标签通常非常昂贵,这是大多数异常检测场景的瓶颈。因此,我们进一步将 GraphCAD 扩展为无监督预训练模型(GraphCAD-pre),以处理具有稀缺标签的现实世界应用程序。

        我们提出了一种预训练策略来解决异常检测中的标签稀缺问题。受上下文感知对比目标思想的启发,我们提出通过破坏原始图来构造伪异常。考虑到原始图的一小部分,我们将这部分之外的节点注入其中。潜在的假设是,由于图的不同部分中的节点遵循不同的分布 [37]、[48],它们可以作为原始图的一小部分上下文的伪异常。形式上,损坏图定义如下:

        定义 1. 损坏的图。给定一个图 G = (V, X, A),我们将其分成 M 个部分 \{G_i\}^M_{i=1}。对于每个部分 Gi,通过从除 Gi 之外的部分注入一组节点 \overline{V_i} = \{v_j \in G \ / G_i\}创建一个损坏图 \widehat{G_i},因此损坏节点 ̃Vi 是 Vi 和 ̄Vi 的并集,即,\widetilde{V_i} = V_i \cup \overline{V_i}\widetilde{G_i} 的损坏邻接矩阵\widetilde{A_i} 是通过使用\widetilde{V_i} 中的索引对 A 进行切片获得的。

        图 3 说明了创建损坏图的示例。有不同的方法可以将输入图分成多个部分,比如 各种图分布,可以归纳为两类:

        单图:如果原始图是单个图,我们使用聚类算法将其分成多个部分。具体来说,我们基于初始特征 X 执行 K-means 算法,并通过找到惯性肘点来确定集群的大小,这是一种广泛采用的聚类度量(参见第 3.3 节)。

         • Multi-Graphs:如果原始图由多个子图组成,没有分区,这些子图可以自然地被视为原始图的不同部分。

         对于注入节点为伪异常而原始节点为正常节点的损坏图,我们可以直接优化方程式(1)中定义的上下文感知图对比损失。 如果地面实况标签可用,可以在目标图上进一步微调。

        连接到图预训练框架。现有的图形预训练方法对异常检测的好处有限。例如,GAE [24] 在局部邻近假设下重建邻接矩阵,这会受到可疑链接的伤害。 GCC [37] 最大化同一节点采样的自我网络与从不同节点采样的自我网络之间的一致性,这种特征一致性假设不能明确地帮助区分异常节点和正常节点。 DGI [48] 将节点与整个图进行对比,类似于 GraphCAD-pre 的对比目标,而负实例的处理方式不同。在DGI中,给定一个图作为上下文,将正、负节点进行卷积并表示为独立的图,然后进行对比。但在GraphCAD-pre中,注入了从其他图中采样的负节点,可能会链接到损坏图中的正常节点,这增加了训练时区分正常节点和异常节点的难度,从而提高了模型的判别能力。本质上,DGI 更侧重于表示正常模式,而 GraphCAD-pre 则额外加强了异常与正常模式的差异

2.4 GraphCAD的GNN编码器

2.4.1 概述

        优化等式 (1)中的上下文感知对比目标。我们在GraphCAD的GNN编码器中设计了边更新、节点更新和图更新模块。

        首先,边缘更新是估计每个链接是可疑链接的可能性,然后删除可疑链接。

        然后,节点更新是通过在更新的邻接矩阵上传递消息来更新节点嵌入。

        最后,全局上下文通过图形更新进行更新。这三个模块依次在每个图卷积层执行。 L层后,context-aware contrastive objective得到优化。该框架如图4所示

 (图 4. GraphCAD 框架。在每一层,GraphCAD 都会估计每条边被怀疑的可能性,然后通过更新的邻接矩阵删除最可疑的边。它的下一步是根据更新的邻接矩阵通过消息传递来更新节点嵌入。最后它更新全局上下文。在 L 层图卷积之后,优化上下文感知对比损失函数。)

2.4.2 边缘更新

        我们将可疑链接定义为连接具有相反标签的节点的链接。例如,几乎每个商业网站中的欺诈者都可以通过普遍评价的产品链接到一些良性用户。这种可疑链接违反了邻居之间的同质假设——两个相邻节点往往具有相似的特征和相同的标签——并影响传统消息传递和可疑链接的性能。

        尽管已经进行了许多尝试来检测此类可疑链接 [10]、[63],但它们只是根据链接的节点特征预测可能性,而不考虑节点标签。不同的是,我们另外对节点与全局上下文 h − q 之间的相对距离进行建模。这里的承诺是距离可以作为隐式标签来指导模型删除可疑链接——那些由与全局上下文具有明显距离的节点连接的链接。

        上下文感知链接预测器。链接预测器接受两个链接节点h(l−1)i和h(l−1)j的表示作为输入,通过以下方法估计节点vi和vj之间的链接似然:

         其中 ⊕ 是连接运算符,MLP 是一个投影层,带有一个 sigmoid 激活函数,用于将似然归一化为 [0,1]。 (h_i^{l-1}-h_j^{l-1})明确表示两个节点的相似性,而 (h_i^{l-1}-q^{l-1})表示从 vi 到全局节点的距离上下文,隐含地表明两个节点——即使它们的局部特征略有不同——鉴于它们与全局上下文的相对位置相似,也很可能链接在一起。 3.2 节中的消融研究从经验上证明了这种上下文感知链接预测器的有效性。

        为了加速链路预测器的优化,除了方程式中的对比目标之外,我们还优化了预测损失。 (1).具体来说,我们将正常节点之间的链接视为正面链接,将可疑链接视为负面链接。预测损失定义为

         它作为约束直接最大化正常链接的概率并最小化可疑链接的概率。

        Gumbel-softmax 链接去除器。我们通过使用伯努利近似、Gumbel-softmax 重新参数化技巧 [19]、[33] 的二进制情况来删除可疑链接以彻底减少它们的负面影响,以解决离散的不可微分问题。具体来说,我们定义指标矩阵I\in R^{N*N} ,对于链接似然p_{ij}^{(l)} ,我们 通过以下等式决定是否保留链接 (I_{ij}^{(l)}=1) 或不保留链接 (I_{ij}^{(l)}=0)

         其中 Bernoulli (p) 是保留链接的概率为 p 的伯努利近似,λ 是控制采样过程锐度的温度超参数(λ 越低,保留的链接越多),ε ∼ Gumbel (0, 1) 是重新参数化的 Gumbel 噪声。在正向过程中,我们根据等式 (9) 进行采样。得到 I^{(l)}_{ij} 。在反向过程中,采用直通梯度估计器 [3] 将梯度传递给松弛值 p_{ij}^{(l)} 而不是离散值 I^{(l)}_{ij}

         边缘残差。最近,RealFormer [15] 验证了注意力分数的残差连接的效果。受此启发,我们对原始边缘似然与估计边缘似然进行残差连接,以平滑边缘演化,如下所示:

         其中 α 是一个可学习的参数,用于平衡最后一层的权重和估计的权重 pij ,\odot并表示 Hadamard 乘积。(对应元素乘积)

2.4.3 节点更新

        更新节点嵌入可以分为聚合和组合操作

         其中方程式 (11) 是基于更新的邻接矩阵聚合最后一层的相邻消息,Eq.(12) 是将聚合信息与相关节点组合。通常,这两个操作足够灵活以适应任何 GNN。第 3 节中的实验研究了几个具体函数。

2.4.4 图形更新

        简单地说,我们可以对所有节点执行总和、最大或平均池化以更新全局上下文。但是,它们不区分正常节点和异常节点,这导致全局上下文不准确。

        为了缓解它,我们引入了一个内存缓冲区 m 来注册最后一层的全局上下文 q^{(l-1)},在此基础上我们计算每个节点对全局上下文的贡献。假设是偏离当前全局上下文的节点应该在下一个更新步骤中被削弱。这种基于内存的机制已成功应用于通用计算机器[2]、[54]。正式地,

         首先,我们根据每个节点 vi 与记忆向量的余弦相似度计算注意力 \partial ^{(l)}_i。然后我们通过加权聚合不同的节点来更新全局上下文 q^{(l)}并更新记忆向量 m。

        基于内存的图更新策略可以尽可能地摆脱异常节点对“正”全局上下文的负面影响

2.5 训练和推理

        在每个时期,我们都优化了方程式(1)中的上下文感知对比损失和等式(8) 中的链接预测器约束损失。 如下:

         其中 λ 是一个平衡的超参数。我们凭经验在我们的模型中将 λ 设置为 0.2。算法 1 概述了训练过程。

 

        在推理过程中,对于要预测的节点 vi,我们不是直接预测二进制标签,而是通过计算其嵌入h_i^{L}与最后一层的图嵌入 q^{(L)}之间的余弦相似度来估计其异常分数(即越低,越反常)。

2.6 复杂性

        GraphCAD 的时间复杂度与普通 GNN 处于同一数量级。因为在 GNN 的节点更新步骤之上,GraphCAD 添加了两个额外的高效步骤,边缘更新和图形更新。 k 层边缘更新的时间复杂度为 O (D_kE),其中 E 是边缘数,Dk 是 k 层的嵌入大小。 k层图更新的时间复杂度为O(D_kN),其中N为节点数。由于嵌入大小远小于节点或边的数量,因此 GraphCAD 的时间复杂度随图规模线性增长,这与普通 GNN 相同。

3 实验

        在本节中,我们进行了两个主要的实验,分别验证监督GraphCAD和非监督GraphCAD-pre在两种类型的异常检测应用程序上的性能。 所有的代码和数据集现在都在线.

3.1 实验设置

        数据集。我们评估了所提出的模型,用于检测研究人员在两个学术数据集上的个人资料中错误分配的论文,并检测在两个商业网站上给出欺诈评级的用户。学术数据集都是多图数据集,商业数据集都是单图数据集。表 1 显示了统计数据。

 

         • AMiner:是一个免费的在线学术系统,收集了超过 1 亿研究人员和 2.6 亿份出版物 [46]、[62]。我们提取了 1,104 名在线研究人员的个人资料,然后对于每个个人资料,我们通过添加论文作为节点并在两篇论文之间创建链接来构建图表(如果它们共享相同的合著者、地点或组织)错误分配的论文由人工注释者提供。

        • MAS:是微软学术搜索系统,包含超过 1900 万研究人员和 5000 万篇出版物 [44]。与 AMiner 类似地提取和构建了 2,098 个图,而真实标签由 KDD cup 2013 [41] 提供。

        Alpha [26]:是一个比特币交易平台。通过将用户添加为节点并将用户之间的评级关系添加为链接来创建单个图。良性用户是平台的创始人或被正面评价的用户。欺诈者是被良性用户评价为负面的用户。

        • Yelp [39]:是一个供用户对旅馆和餐馆进行评分的平台。通过添加由 Yelp 过滤的垃圾邮件(异常)和合法(正常)评论作为节点来创建单个图。如果两个评论由同一用户发布,针对具有相同评级的相同产品或在同一个月发布,则会在两个评论之间创建链接

        对于两个多图学术数据集,我们使用 BERT 嵌入的论文标题作为每个节点的初始特征。对于 Yelp,我们利用每个节点 [10] 的 100 维词袋初始特征的稀疏矩阵。

        对于 Alpha,由于我们没有节点的边信息,我们对图 Laplacian s.t 进行特征分解。 I - D^{-1/2}AD^{-1/2} = U\wedge U^T 以 I 为单位矩阵,D 为度矩阵,并使用 U [49] 中的特征向量作为每个节点的初始 256 维特征。

        评估指标。我们采用广泛应用于异常检测 [10]、[32] 的 ROC 曲线下面积 (AUC) 和更注重异常排名的平均精度 (MAP) 作为评估指标。

3.2 GraphCAD评估

        基线。我们将 GraphCAD 与四种通用 GNN 模型进行比较,包括 GCN [23]、GAT [47]、Graph-SAGE [13] 和 GIN [58],以及三种用于异常检测的特定 GNN 模型,即 GeniePath [31]、GraphConsis [32] 和 CARE-GNN [10],将在第 4 节中进一步介绍。其他基于 GNN 的异常检测模型,例如 GAS [27]、FdGars [51]、Semi-GNN [50] 和 Player2Vec [63],根据经验证明不如采用的基线强大,因此在实验中被忽略。我们还通过注入特征向量作为特征来执行节点分类,从而与逻辑回归进行比较。

        设置。对于多图数据集,即 AMiner 和 MAS,我们提取 70% 的图作为训练集,10% 作为验证集,20% 作为测试集。在训练期间,我们按照算法 1 在每个图上执行 GraphCAD。为了测试,我们根据节点嵌入与相应图上下文之间的余弦相似性按升序对节点进行排名,然后我们评估每个图的 AUC 和 MAP 并对所有测试图的指标作为最终指标。

        对于单图数据集,即 Alpha 和 Yelp,我们还从单图中提取 70% 的标记节点作为训练数据,10% 作为验证集,20% 作为测试集。我们在单个图上执行 GraphCAD,并评估测试数据中排名节点的 AUC 和 MAP。值得注意的是,对于输入为具有多关系链接的图的 GraphConsis 和 CARE-GNN,我们使用其多关系信息,而 GraphCAD 将两个节点之间的多关系链接合并为单关系链接。我们进行了 5 次试验并报告了平均结果。

        执行。对于 GraphCAD,层数 L 根据经验设置为 2,温度超参数 τ 在方程式中设置为 0.1。 (1),并且在等式中λ被设置为0.6。 (9).我们使用学习率为 1×10−3 的 Adam 进行训练。学习率设置为前 10% 步的初始值,然后线性衰减到初始值的 1/10。对于 GCN、GAT、GraphSAGE 和 GIN,我们利用 Pytorch Geometric 提供的实现,并将所有通用 GNN 的卷积层数设置为 2。对于 GeniePath、GraphConsis 和 CARE-GNN,我们使用作者的官方代码和相同的训练设置。数据格式被适当地转换以适应他们的设置。所有模型都在 Python 3.7.3、1 个 NVIDIA Tesla V100 GPU、512GB RAM、Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz 上运行。

        总体结果。表 2 显示了 GraphCAD 的性能以及四个数据集上的所有比较方法。我们可以看到,在所有数据集上,GraphCAD 大大改善了所有其他基线,AUC 为 +2.5-27.35%,MAP 为 +0.31-28.06%。在所有基线中,逻辑回归表现最差,因为它只利用结构信息,没有应用图卷积来整合邻居消息

        没有一种特定的基于图的异常检测方法可以在所有数据集上保持优于一般 GNN 的优势。例如,GraphConsis [32] 在 AMiner 上的表现比 GIN [58] 差。表中突出显示的结果来自 GraphCAD,它采用上下文感知对比目标和三级 GNN 编码器,在所有数据集上表现稳定最好

         消融研究。为此,有两个主要区别: 上下文感知的对比目标和GraphCAD与其他基线之间的三阶段GNN编码器。因此,我们进行了消融研究,以验证GraphCAD中不同组件的有效性。四种主要的模型变量如下所示,结果如表3所示。

         w/ CE 损失:改变等式(1) 中的对比损失使用交叉熵。

        • 边缘​​更新策略:将第2.4.2 节中的边缘更新组件更改为w/o LP 约束,即删除方程(8)中的约束损失Llink,w/o Global info.删除等式 (7) 中的 (h_{i/j}^{(l-1)} - q^{(l-1)}); w/o Edge Update 删除整个边缘更新步骤。

        • 节点更新策略:改变等式(11)和方程式(12)中的节点更新策略 对 GCN、GAT、GraphSAGE 或 GIN 中的节点更新策略。

        • Graph Update Strategies:将Eq.(13)中基于内存的读出函数改为所有节点的平均池化(Ave Pooling)、总和池化(Sum Pooling)和最大池化(Max Pooling)。

        节点更新策略。从表 3 可以看出,在大多数情况下,具有各种节点更新策略的 GraphCAD 优于其他基线,这表明上下文感知对比目标和三级 GNN 编码器的优越性。

        我们还观察到不同的策略存在性能差距,AUC 不到 6%,MAP 不到 7%。在多图数据集上,GraphCAD 在 GCN [23] 中使用均值聚合和串联 COMBINE 策略表现最佳,而在单图数据集上,它在 GCN [23] 中使用总和聚合和串联 COMBINE 策略表现最佳 [58]。显然,不同节点更新策略的性能变化趋势类似于一般 GNN,如表 2 顶部所示。因此我们推测不稳定主要是由于 GNN 中节点更新策略的内在特征。

        因此,除非另有说明,否则我们仅在其余部分以最佳节点更新策略(即多图数据集上的 GCN 和单图数据集上的 GIN)对 GraphCAD 进行实验。

        对比损失函数。从表 3 中,我们看到 GraphCAD 在多图数据集上相对于 +CE 损失的性能增益(AUC 为 +6.09-9.54%,MAP 为 +7.76-17.71%)远高于单图数据集(AUC 为 +0.46-1.89%,MAP 为 +0.60-2.10%)。

        这些结果从经验上验证了定理1,即上下文感知的对比目标在生成能力方面比交叉熵更有弹性。由于不同图中的异常节点分布通常有很大差异,因此多图设置比单图设置呈现出更多样的异常分布。因此,优化异常节点的熵对于跨各种图学习更通用的模型起着至关重要的作用。更重要的是,我们提出的上下文感知对比损失在单图数据集中的表现略好于 CE 损失,这表明我们的方法可以在一定程度上解决类不平衡问题。

        上下文感知 GNN 编码器。带有 CE 损失的 GraphCAD 优于其他最先进的基线高达 17.81% AUC,这阐明了所提出的上下文感知 GNN 编码器的强大表示能力。这些改进可以归功于两个方面:上下文感知边缘更新和基于内存的全局更新。因此,我们进一步验证了每个组件的有效性。

        边缘更新策略。没有 LP 约束的 GraphCAD 比 GraphCAD 表现稍差,这表明链路预测损失不仅可以加速链路预测器的优化,而且有助于整体改进。没有全局信息的 GraphCAD。表现不及 Graph-CAD,揭示了将到全局上下文的距离作为隐式监督的上下文感知链接预测器,可以有利于可疑链接预测。

        与上述两个变体相比,没有边缘更新的 GraphCAD 表现最差(AUC 为 -0.84-1.63%),验证了所提出的边缘更新机制的有效性。但是,边缘更新带来的性能提升并不显着。我们推测连接相同标签节点的规范链接占据了所有链接的大部分(例如,表 1 中 AMiner 上的 90.5% 和 MAS 上的 84.4%)。因此,链接预测器去除少量可疑链接只能发挥有限的作用。为了验证这一点,我们从 MAS 和 Alpha 中选择硬实例,即连接至少 k^{10} 个正常节点的异常节点,并重新评估过滤数据集上的变体。从图 5(a) 中,我们可以看到 GraphCAD 在两个数据集上的 AUC 分别显着优于没有边缘更新的 3.12% 和 2.04%。结果表明,边缘更新步骤可以有效地减少可疑链接的负面影响

         全局更新策略。所提出的基于内存的全局上下文更新机制表现最好,与其他变体机制相比,AUC 提高了 0.83-8.93%,MAP 提高了 1.07-16.76%。因为记录最后一层全局上下文的内存可以帮助估计当前层中每个节点的贡献,因此有利于当前层中精确全局上下文的生成。

        迁移学习。为了进一步研究上下文感知对比损失与交叉熵目标相比的稳健性,我们在 AMiner/MAS 上训练 GraphCAD 及其带有 CE 损失的变体,并在 MAS/AMiner11 上对其进行评估。如表4所示,在迁移学习设置下,GraphCAD的性能下降(AUC为-2.14-3.21%)明显小于w/ CE损失(AUC为3.25-7.38%),表明上下文感知对比目标相对于交叉熵目标具有更强的鲁棒性。

 3.3 GraphCAD-pre评估

        基线。我们将 GraphCAD-pre 与最先进的图形预训练模型进行比较,包括 GAE [24]、GPT-GNN [17]、GraphCL [61] 和为异常检测量身定制的图形预训练模型, DCI [53]、ANEMONE [20]、CoLA [30],在无人监督的情况下。 GAE 是通过重建顶点邻接矩阵来保持结构相关性。除了结构相关性之外,GPT-GNN 还通过预测屏蔽属性来保留属性相互作用。 GraphCL 最大化通过图数据扩充获得的同一图的两个实例的相互信息。 DCI [53] 是 DGI 的基于集群的版本,它最大化了集群嵌入和其中节点之间的细粒度互信息,并被证明对图异常检测有效。 ANEMONE 和 CoLA 的性能都低于建议的 GraphCAD-pre。虽然 ANEMONE 和 CoLA 提出了类似的节点子图对比学习,但是他们通过局部随机游走算法而不是 GraphCAD-pre 中的全局聚类算法对子图进行采样。后者会导致更多样化的正常样本更难以区分。相反,前者在训练时忽略了这种困难的正态样本,会降低模型的泛化能力。为了公平比较,所有预训练模型都采用与 GraphCAD 相同的 GNN 编码器。

        数据集。在在线 AMiner 系统中,我们隐藏了表 1 中标记的 1,104 个图,并从中提取了额外的 4,800 个损坏图。根据 2.3 节中的多图破坏策略,我们首先为整个提取的 AMiner 数据集构建一个大型论文图,然后根据不同研究人员的论文所有权将其分成多个图。对于每个图,我们通过将其他研究人员图中的论文作为具有 15% 特定损坏率的异常注入来破坏它,即注入节点数与图中现有节点数之间的比率。原始图中的链接保留在损坏图中的节点之间。然后我们以相同的方式构建 MAS corrupting graph 数据集。

        对于Alpha和Yelp单图数据集,我们首先根据它们的输入特征,通过经典的K-means算法将其聚类为K个子图。我们基于特征信息而不是结构信息执行聚类算法,因为结构信息比特征信息更容易被异常用户篡改。尽管异常用户可能同时执行导致特征损坏的属性异常行为和导致用户之间可疑链接的异常结构行为,但后者会对整个图产生更大的负面影响。例如,在社交网络中,谣言传播者通常通过与普通用户建立联系并通过这些联系散布谣言来伪装成普通用户。因此,识别正常和异常之间的可疑联系在图形异常检测中更为重要。鉴于此,用极有可能被可疑链接污染的结构信息来分割图是不合适的。我们没有尝试通过特征信息来分割 Alpha 图,因为它在数据集中不可用。

        簇内相关性通过平方和标准衡量,即惯性 ,由 \sum_{i=0}^{|V|}min_{u_k\in C}(||x_i-u_k||^2)估计。其中 uk 是第 k 个聚类中心的嵌入,C 是 K 个不相交的聚类。为了自动设置合适的 K,我们利用 Elbow Methods 来选择惯性的肘点,即定位惯性趋势从陡峭变为稳定的最佳 K*(参见图 7)。最后,图表大小 K 在 Alpha 上设置为 20,在 Yelp 上设置为 30。

(图 7. Alpha (a) 和 Yelp (b) 上图(簇)数 K 与 K 和 K+1 之间的惯性差距 σ (K) 的相关性。红点表示在没有微调的情况下实现 GraphCAD-pre 最佳性能的 K*。) 

        设置。在没有任何标记数据(0% 标记数据)的情况下,我们在损坏的图形上训练 GraphCAD-pre 和基线,并在与受监督的 GraphCAD 相同的测试集上对其进行评估。然后我们还探索了少样本学习设置,即,当给定一定比例的标记数据时,我们进一步微调预训练模型。

        执行。对于 GraphCAD-pre,我们遵循与 GraphCAD 相同的设置。对于 GAE、DCI、GPT-GNN 和 GraphCL,我们使用作者的官方代码和相同的训练设置。请注意,对于 GraphCL,我们尝试了论文中定义的所有图扩充方法,并选择了在测试集中实现最佳性能的子图扩充,无需微调。

        总体的结果。图6显示了在四个数据集上,给定不同百分比的标记数据,所有比较方法的预训练和微调性能。从结果中,我们看到在 0%、10% 和 60% 标记数据上微调的 GraphCAD-pre(蓝线)分别与 AMiner、MAS 和 Alpha 上的完全监督的 GraphCAD(黑色虚线)相当.更重要的是,当 GraphCAD-pre 对所有标记数据进行微调时,它在 AMiner、MAS 和 Alpha 上的 AUC 甚至分别比 GraphCAD 高出 1.72%、2.19% 和 1.04%,这揭示了所提出的 pre 的有效性-培训框架。

         当提供任何百分比的标记数据时,我们的模型也优于所有基线。 GAE 和 GPT-GNN 专注于重建图中的链接。 GraphCL 旨在捕获整个图的正态分布。他们的目标离异常检测有点远。 DCI 在所有基线中表现最好。给定全局上下文作为查询,DCI 旨在对比子图中的节点(正常节点)和其他子图中的节点(异常节点)。目标类似于GraphCAD-pre,但与GraphCAD-pre损坏的图不同,DCI中的异常与正常节点完全断开并独立嵌入其他图中,这可能会降低伪标签的学习难度相比带有真实标签。 ANEMONE 和 CoLA 均未达到建议的 GCCAD-pre。尽管 ANEMONE 和 CoLA 提出了类似的节点子图对比学习,但他们通过局部随机游走算法而不是 GCCAD-pre 中的全局聚类算法对子图进行采样。后者会导致更难以区分的更多样化的正常样本。相反,前者在训练时忽略了这种困难的正态样本,会降低模型的泛化能力。

        我们还观察到,在 Yelp 上,没有任何预训练模型在没有任何标记数据的情况下都没有取得显着的性能。一方面,如表 1 所示,由于浓度最小,Yelp 是最多样化的数据集,这阻止了 GraphCAD-pre、DCI 和 GraphCL 发现正确的正常模式。另一方面,由于 Yelp 上可疑链接的比例为 22.70%,是数据集中最大的,因此以保持链接同质性为目标的 GAE 和 GPT-GNN 将错误地重建那些有噪声的链接。但是,在提供大部分标记数据的百分比时,GraphCAD-pre仍然比其他预训练模型表现最好,这表明GraphCAD-pre具有区分正常节点和异常节点的能力。

        损坏比率。图 5(b) 显示了注入节点的比率(损坏比率)与 GraphCAD-pre 在 AMiner 和 Alpha 上的性能之间的相关性,没有进行微调。结果表明,当大约 15% 的异常节点被注入时,性能达到最佳。损坏率的设置方式与其他数据集相同。

        聚类数。图 7 显示了 Alpha 和 Yelp 上图(簇)数 K 与 K 和 K + 1 之间的惯性差距 σ (K) 之间的相关性。无需微调即可实现 GraphCAD-pre 最佳性能的最优 K* 标记为红色。我们观察到,当 K*(红色)大约在惯性趋势从陡峭变为稳定的肘点附近时,GraphCAD-pre 表现最佳。虽然我们选择了 Yelp 上的肘点,但 Yelp 是如此多样化,以至于没有一种图形预训练方法可以达到预期的性能。

        聚类的特征。我们通过结构信息或特征信息来比较聚类算法对预训练性能的影响。我们通过结构信息对 Yelp 的图进行 K-means,结果比通过特征信息聚类要差得多(即 12.56% 对 14.17% 就 MAP 而言),这表明更多的噪声结构信息火腿- 根据聚类和预训练性能。

5 结论和未来方向

        本文提出了 GraphCAD,一种用于异常检测的图形对比学习模型。 GraphCAD 不是直接对节点标签进行分类,而是根据异常节点与图形全局上下文的距离将异常节点与正常节点进行对比。我们通过设计图破坏策略来生成合成节点标签,进一步将 GraphCAD 扩展到无监督版本。为了实现对比目标,我们设计了一个三级 GNN 编码器来推断和删除消息传递过程中的可疑链接,以及学习全局上下文。四个真实世界数据集的实验结果表明,GraphCAD 明显优于基线,并且 GraphCAD-pre 在没有任何微调的情况下可以在两个学术数据集上实现与完全监督版本相当的性能。由于 GraphCAD 的性能高度依赖于全局上下文的一致表示,因此 GraphCAD 在 Yelp 上的表现相对较差,Yelp 是一个大型单图,也是所有评估数据集中最多样化的数据集。为了改善这一点,可以在要检测的节点中简单地采样一个子图作为本地上下文。我们把这个留在以后的工作中。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值