文章信息
Published in: 2023 IEEE Conference on Secure and Trustworthy Machine Learning (SaTML)
作者:Xiaojun Xu; Hanzhang Wang; Alok Lal; Carl A. Gunter; Bo Li
核心思路
本文的核心思路在于利用生成图的技术来预测哪些边可能是恶意边,使用生成图技术预测概率低的那些边被过滤掉,(此模型只关注删除边而不增加边,因为文中提到相比删除边缘,添加边缘通常是一种更便宜、更实际的攻击方式。例如,在一个无向引用网络中,作者可以轻松地通过在自己的论文中引用其他作者来添加边缘,但如果他们的论文已被其他人引用,则无法删除边缘。)其核心是他所提出的图生成模型,不同于以往的图生成模型要求生成的图多样化,本生成模型只要求学到本图的结构特征信息。模型整体结构图如下:
EDoG模型解释
本文提出了一种受序列生成方法启发的深度图生成模型,该模型将逐个生成边以构建整个图。我们基于随机抽样的子图训练生成模型,并将训练好的模型应用于预测E中哪些边最不可能被生成。这些生成概率低的边将被认为是恶意的。 我们的模型,记为fgen,将以图G=(VEX)作为输入,并输出一个概率分布,指示如果我们要向图中添加一条边,哪对节点可能会被添加。也就是说,fgen的输出是对尚未连接的所有节点对的概率分布。
生成图模型
基于这个模型,我们可以在仅具有节点信息(V,X)的情况下,通过一种逐步过程来生成图。具体来说,我们从一个空的边集E(0)开始,并逐步向集合中添加边。在每个时间步t,我们将(V,E(t-1),X)输入到fgen中,使用输出的概率分布对新的边进行采样,然后将新的边添加到边集中,得到E(t)。 在实践中,我们使用带有双线性输出层的GCN来计算概率。首先,我们应用一个两层的GCN来计算每个节点u在时间t-1的嵌入向量 。然后,对于每对节点(u,v),我们应用双线性函数 来计算得分。为了确定下一个时间步将生成哪条边,我们对所有尚未连接的节点对的得分进行softmax计算概率.
详细的算法如下:
具体来说,给定一个子图Gi,我们将执行以下操作:
1)随机生成一个排列以获取边的顺序。按照这个顺序,我们将在每个时间步开始时,从一个空的边集开始,并在图中添加一条边;
2)在每个时间步t,将当前的邻接矩阵A(t)和节点特征X输入到模型fgen中,并为目标节点对Etarget计算得分suv;
3)将边的最终得分计算为我们在所有时间步中计算的得分的平均值。
使用Alg.1,我们可以推断图G中哪些边可能是恶意的。在这个推断阶段,我们首先从G中采样子图,并计算每个子图中边的连接概率。然后,通过相应地计算平均值来计算原始图中边的得分。较小的得分意味着边不太可能被生成,因此可能是恶意的。
本处使用采样子图是因为攻击产生的边往往是少量的(如果数量过大就不满足攻击不可察特点),所以采样的子图大部分为干净图,可以用于训练。
当攻击的边比例增加后,每个子图包含攻击性边的概率升高,此时子图生成前再加一层过滤器,把明显恶意连边去除掉,过滤器部分后文会详细描述。
我们将使用基于梯度的方法迭代地最小化训练损失,以训练模型fgen。在每个训练步骤中,计算训练损失的过程如Alg.3所示。与推断阶段类似,我们首先从G=(V,E,X)中采样子图。然而,为了训练模型,我们不仅要计算已连接节点对(即子图中的边)的概率,还要计算一组未连接节点对E_nonexist的概率。这个集合是从图中未连接的节点对中均匀采样的,并且我们在不同的训练步骤中采样不同的集合。我们让集合大小为E_nonexist = E_exist。因此,每个时间步的训练损失都是所有节点对的二元交叉熵损失。如果节点对在原始图中连接,则ground_truth标签为1,否则为0。计算损失后,我们可以应用基于梯度的优化器来更新fgen中的模型参数。
带有过滤器的生成图模型
图生成模型确实具有从子图中学习模式的强大能力。然而,恶意图的存在仍然可能损害GraphGenDetect的性能,因为我们的图生成模型会将恶意边的模式视为良性并很好地学习它,导致算法不稳定。因此,我们提出了一个有效的过滤过程,即我们可以首先过滤掉原始图中看似可疑的一部分边,并在过滤后的图上训练我们的生成模型。如果恶意边确实被过滤掉,那么在训练过程中大多数采样的子图应该是良性的,我们可以期望我们训练的生成模型将捕捉到良性子图的结构特性。在实践中,我们发现我们的LinkPred方法是过滤边的一种很好的方法,因为它是一种稳定的算法,并且在大多数情况下可以达到可接受的性能来过滤掉恶意边。我们将这种方法称为LinkPred + GraphGenDetect。也就是说,我们首先对G应用LinkPred,以获得每条边的得分,指示其可能是恶意的程度。然后我们将删除具有最高恶意得分的顶部k条边,得到G_filter = (V,E_filter,X)。因此,我们可以在G_filter上训练我们的GraphGenDetect模型,并最终使用训练好的模型来检测G中的恶意边。
朴素的链接预测算法不适合在子图上进行训练,原因有两个方面:首先,许多链接预测算法是基于整个图的特征提取的;其次,链接预测算法往往具有相对较小的模型容量来捕捉整个子图的模式。因此,我们只能在子图上基于深度神经网络训练提出的图生成模型。基于生成模型,我们将能够确定哪些边缘最不可能被生成,这些边缘高度可能是恶意的。我们发现这样的生成模型擅长从子图中发现模式,从而检测恶意边缘。
OutlierDetect (OD)
当应用于多边直接攻击(攻击者被允许向图中添加多个边缘。恶意添加的边缘将与目标节点相连,并且恶意边的数量不应超过目标节点的度。也就是说,|E′\E| ≤ deg(vt),对于任意边∀e(i, j) ∈ E′\E,vt ∈ e(i, j)。)时,链接预测和图生成方法有时会失败,特别是当节点度数很大时。
我们将这归因于恶意边的集体力量原则,这可以理解为:当许多恶意边连接到一个节点时,它们相互确认彼此的合法性。我们在图5中展示了一个例子。
假设一个节点最初与1类中的三个节点相连。如果攻击者添加了一条恶意边,将其连接到2类中的一个节点,这条边将显得异常,容易被检测到。然而,如果攻击者改为在2类中添加三条恶意边,那么每个恶意边的合法性将得到其余恶意边的支持,它们都将被判断为良性。 在这种情况下,G中目标节点的邻居应包含许多不同的类别(例如,50%在1类中,50%在2类中),而其他节点邻居的类别通常相对一致。因此,我们可以计算几个边缘邻域信息的边特征,例如,边缘邻域中不同类别出现的次数。我们可以期望恶意边的特征向量与良性边的特征向量不同。因此,我们可以在所有边上建立一个异常检测模型,并将异常值视为恶意。
这种方法的直觉来自于对直接结构攻击中攻击者行为的观察:为了使目标受害节点被错误分类为另一个类(比如类1),攻击者倾向于在目标节点与属于类1的节点之间添加许多边。因此,考虑到其先前的连接,目标节点的邻居节点的类分布可能非常多样化。相比之下,良性节点的邻域中的类应该相当统一。受到这一现象的启发,我们提出了一种基于边的异常检测模型,该模型基于边的邻居节点的类分布计算以下特征:
- 邻居节点的不同类的数量。
- 每个类在邻居节点中的平均出现次数。
- 邻居节点中最频繁出现类的出现次数。
- 邻居节点中第二频繁类的出现次数(如果邻居节点中只有一个类,则为0)。
- 每个类在邻居节点中出现次数的标准差。
- 图中每个节点的介数中心性的对数。
注意,对于大多数节点,我们没有地面真实类信息,因此我们将首先在图G上拟合一个GNN,并使用预测作为标签。对于每条边,我们计算每个节点的上述特征,并将它们连接在一起,构建一个10维特征向量。然后,我们使用带有RBF核的单类SVM对这些边特征向量进行训练,以检测异常值。训练好的模型将为每条边计算一个得分,指示其异常性。该值越大,该边越有可能是恶意的。
模型总述
对于攻击的目标节点度较低时,生成图模型和带过滤器生成图模型在大多数情况下表现良好,另一方面,OutlierDetect在检测目标节点的高度攻击时效果很好。
根据节点度信息,我们的最终管道,即图的边缘检测(EDoG),如图2所示。这是一个集成模型,它平均了LinkPred + GraphGenDetect、OutlierDetect和GraphGenDetect的输出。特别是,我们在图上应用三种方法,并为每条边获取它们的预测得分。然后对于高度节点之间的边(在实践中,我们选择两个节点的度之和大于6作为标准),我们使用三种方法的得分的平均值;否则,对于低度节点,我们仅使用LinkPred + GraphGenDetect和GraphGenDetect的平均得分。这样做的优点是:首先,GraphGenDetect和LinkPred + GraphGenDetect在多边直接攻击的高节点度方面表现不佳,并且将其与OutlierDetect结合起来可以显著改善检测性能;其次,GraphGenDetect方法表现良好,但有时不太稳定,因此聚合模型可以帮助显著提高其稳健性。
实验结果
本文使用毒化边检测AUC作为衡量指标。
根据文中的描述,当知道攻击类型时,可以根据具体的攻击类型选择合适的检测方法,LinkPred + GraphGenDetect对单边攻击和小度目标节点(度数为5)的多边直接攻击效果很好。对于大度目标节点的多边直接攻击,OutlierDetect是合适的选择。对于多边间接攻击,GraphGenDetect和LinkPred + GraphGenDetect都表现良好,我们选择LinkPred + GraphGenDetect与单边攻击中的一致性。对于元攻击,我们使用EDoG,因为元攻击可能包含各种类型的恶意边。所提出方法的平均AUC接近0.85,表明了我们的检测管道EDoG对不同攻击的有效性。
而当不知道攻击类型时,EDoG管道可以作为一种通用的检测方法,结合了多种检测原语,如图生成模型、异常检测等,以适应各种可能的对抗性攻击。通过使用这种综合的检测方法,EDoG管道能够在不知道具体攻击类型的情况下有效地检测恶意边,提高系统的安全性和鲁棒性
我们考虑自适应攻击,即攻击者完全了解我们的检测流程,并有意尝试在攻击过程中规避我们的检测。我们设计自适应攻击如下:给定干净的图G,攻击者首先运行EDoG流程,并获取所有节点对的预测分数。然后,在攻击过程中,攻击者只注入具有较低EDoG预测分数的恶意边(实际上,我们仅使用较低25%的边)。通过这样的过程,攻击者试图只注入对EDoG系统看起来良性的边。需要注意的是,这些边并不能保证逃避检测,因为注入恶意边后,EDoG分数会发生变化。
我们将自适应攻击的结果如表V所示,并与允许注入任意边的标准攻击进行比较。为了执行自适应攻击,攻击者的恶意边选择受到限制。因此,我们可以观察到攻击成功率大大降低。在大多数情况下,成功率降低了50%以上。这表明即使攻击者完全了解我们的检测流程,我们的检测流程仍然难以规避。