掌桥专利:专业的专利平台
掌桥专利
首页

一种图神经网络模型黑盒攻击方法及装置

文献发布时间:2024-04-18 20:00:50


一种图神经网络模型黑盒攻击方法及装置

技术领域

本申请涉及图神经网络安全领域,尤其涉及一种图神经网络模型黑盒攻击方法及装置。

背景技术

图数据是一种表示对象及对象之间关系的数据结构,被广泛应用于各种领域,从社交网络、交通网络、知识图谱到推荐系统都可以表示为图数据。图神经网络模型将基于深度学习的方法应用至图数据上,来学习图数据中深层次的结构信息和语义信息,已成为图学习的主流方法,被广泛应用于各种与图数据相关的下游任务,如节点分类、链路预测、图分类等,并取得了最先进的性能。虽然图神经网络模型在各种图数据分析任务中具有出色的性能,但在实践中也引起了迫切的安全问题。近年研究表明,深度学习模型往往缺乏鲁棒性,图神经网络模型很容易受到对抗性攻击,攻击者只需在图上添加微小的扰动(如添加或删除有限的边),就能轻松欺骗GNN模型,从而使应用于实际场景的图神经网络模型算法存在明显漏洞,严重影响了实际应用系统的可靠性和安全性。例如,在社交网络中,用户之间的关系通常被表示为图。攻击者可以创建大量虚假账户,这些假冒账户在图中模拟社交关系。这些虚假账户可能会与真实用户建立虚假的友谊关系,以获得更多的关注和信任。这可以用于虚假宣传、舆论操纵或其他恶意目的。因此,针对图神经网络模型对抗攻击的研究是非常有必要的,它不仅有助于深入理解图神经网络模型的工作原理和脆弱性,而且对于提高图神经网络模型的鲁棒性和安全性具有重要意义。

现有的图对抗攻击方法主要分为基于梯度的方法和基于非梯度的方法。其中,基于非梯度的方法,攻击者更偏向采用强化学习的方法,通过频繁查询目标模型的输出结果以修改图数据。这种方法计算量大,成本高且容易引起防御机制的察觉。相比于此,基于梯度的方法,即攻击者利用模型的目标损失对图结构的梯度信息迭代地指导对抗扰动的生成,最终生成对抗样本对图神经网络模型进行对抗性攻击,这种方法更简单、更高效、更容易实现,是目前的主流攻击策略。

但是它也面临了一定的问题。目前基于梯度的方法由于直接利用目标损失在图结构上的梯度往往存在较大的梯度波动,使模型在攻击迭代中生成不稳定的结构梯度,进而导致生成的扰动不稳定,损害攻击性能。此外,由于图结构的离散性,基于梯度的方法无法保证生成的扰动是有效可靠的扰动,目前存在生成一些攻击结果与预期相反的恶意扰动,这类方法没有考虑生成扰动的可靠性。

发明内容

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种图神经网络模型黑盒攻击方法,用于解决现有攻击技术生成的扰动不稳定、不可靠,攻击结果不理想的问题。

本申请的第二个目的在于提出一种图神经网络模型黑盒攻击装置。

本申请的第三个目的在于提出一种电子设备。

为达上述目的,本申请第一方面实施例提出一种图神经网络模型黑盒攻击方法,包括以下步骤:

获取原始图数据并选择代理模型,将所述原始图数据划分为训练集与测试集,根据所述训练集训练所述代理模型,并将所述测试集输入到训练好的所述代理模型中,得到所述测试集的预测标签;

将所述原始图数据初始化作为初始化后的对抗图,将初始化后的所述对抗图输入到所述代理模型进行训练,训练结束后,得到目标代理模型;

根据所述预测标签与所述目标代理模型,计算本次迭代的测试集损失,并基于两次迭代测试集损失值之差判断前一次迭代的扰动是否满足预设条件,如果不满足预设条件,对所述扰动进行校正;

在所述扰动满足预设条件时,根据所述目标代理模型的损失函数构建增强动量梯度,根据所述增强动量梯度对所述对抗图进行更新,生成本次迭代的对抗图,其中,将本次迭代的对抗图作为下次迭代的输入;

当迭代次数达到预设迭代次数时,利用最终生成的对抗图对其他图神经网络模型进行攻击。

可选的,所述获取原始图数据并选择代理模型,包括:

选择图结构数据集作为所述原始图数据,其中,所述原始图数据包括原始图的邻接矩阵及特征矩阵,表示为

选择图神经网络模型作为所述代理模型,其中,所述图神经网络模型的递归表达式和输出表达式分别为:

其中,

可选的,所述将初始化后的所述对抗图输入到所述代理模型进行训练,训练结束后,得到目标代理模型,包括:

选择交叉熵损失函数作为所述代理模型的损失函数,其中,所述交叉熵损失函数的表达式为:

其中,

使用Adam优化器训练所述代理模型,直至所述代理模型在所述训练集上收敛,训练结束后,得到所述目标代理模型。

可选的,所述基于两次迭代测试集损失值之差判断前一次迭代的扰动是否满足预设条件,包括:

将两次迭代测试集损失值之差作为前一次迭代生成扰动的扰动判断分数,其中,所述扰动判断分数的计算公式为:

其中,

比较所述扰动判断分数与分数阈值,若所述扰动判断分数不小于所述分数阈值,则前一次迭代的扰动满足预设条件,否则,判断其为恶意扰动。

可选的,所述交叉熵损失函数值的计算公式为:

其中,

可选的,在所述扰动被判断为恶意扰动时,对所述扰动进行校正,包括:

根据恶意扰动

选择所述余弦相似度值最大的对应连边,替代所述恶意扰动。

可选的,所述在所述扰动满足预设条件时,根据所述目标代理模型的损失函数构建增强动量梯度,根据所述增强动量梯度对所述对抗图进行更新,生成本次迭代的对抗图,包括:

利用所述目标代理模型的训练损失,根据反向传播规则,求解训练损失于输入邻接矩阵的梯度,并在每次梯度计算时,先利用前一次迭代的梯度预先确定更新方向,即:

其中,

沿所述更新方向上采样多次并进行梯度计算,得到采样的平均梯度,即:

其中,

对所述采样的平均梯度进行动量累计,得到本次迭代的增强动量梯度,计算公式为:

其中,

根据本次迭代的所述增强动量梯度,确定当前对抗图中各条边的梯度值,选择梯度值最大的元素对应的连边进行翻转,得到本次迭代的对抗图

可选的,所述选择梯度值最大的元素对应的连边进行翻转,包括:

若所选的边为

其中,

为达上述目的,本申请第二方面实施例提出了一种图神经网络模型黑盒攻击装置,包括:

输入模块,用于获取原始图数据并选择代理模型,将所述原始图数据划分为训练集与测试集,根据所述训练集训练所述代理模型,并将所述测试集输入到训练好的所述代理模型中,得到所述测试集的预测标签;

训练模块,用于将所述原始图数据初始化作为初始化后的对抗图,将初始化后的所述对抗图输入到所述代理模型进行训练,训练结束后,得到目标代理模型;

扰动判断模块,用于根据所述预测标签与所述目标代理模型,计算本次迭代的测试集损失,并基于两次迭代测试集损失值之差判断前一次迭代的扰动是否满足预设条件,如果不满足预设条件,对所述扰动进行校正;

更新模块,用于在所述扰动满足预设条件时,根据所述目标代理模型的损失函数构建增强动量梯度,根据所述增强动量梯度对所述对抗图进行更新,生成本次迭代的对抗图,其中,将本次迭代的对抗图作为下次迭代的输入;

攻击模块,用于当迭代次数达到预设迭代次数时,利用最终生成的对抗图对其他图神经网络模型进行攻击。

为达上述目的,本申请第三方面实施例提出了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面中任一项所述的方法。

为达上述目的,本申请第四方面实施例提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面中任一项所述的方法。

为达上述目的,本申请第五方面实施例提出了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项所述的方法。

本申请的实施例提供的技术方案至少带来以下有益效果:

通过多次迭代对对抗图进行更新,在每次迭代中对上一次的扰动进行校正,并通过梯度计算,构建增强动量梯度,以进行添加扰动处理,生成最终的对抗图对其他图神经网络模型进行攻击,从而通过修改图结构或节点特征,以欺骗图神经网络模型等算法,对基于图数据的应用系统造成影响,解决现有攻击技术生成的扰动不稳定、不可靠,攻击结果不理想的问题。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本申请实施例示出的一种图神经网络模型黑盒攻击方法的流程图;

图2是根据本申请实施例示出的对扰动进行判断处理的流程图;

图3是根据本申请实施例示出的一种图神经网络模型黑盒攻击装置的框图;

图4是一种电子设备的框图。

具体实施方式

下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的图神经网络模型黑盒攻击方法和装置。

图1是根据本申请实施例示出的一种图神经网络模型黑盒攻击方法的流程图。

如图1所示,该方法包括以下步骤:

步骤101,获取原始图数据并选择代理模型,将原始图数据划分为训练集与测试集,根据训练集训练代理模型,并将测试集输入到训练好的代理模型中,得到测试集的预测标签。

本申请实施例中,需要进行原始图数据的获取以及代理模型的选择。

可以理解的是,网络上有各种公开的原始图数据集,从其中选择某些论文的图结构数据集作为本申请中原始图数据,其中,原始图数据包括原始图的邻接矩阵及特征矩阵,表示为

需要说明的是,本申请中原始图数据的获取方式并不局限于公开的图结构数据集,部分未公开的图结构数据集也可以作为本申请原始图数据的获取来源。

在本申请实施例中,选取图神经网络模型作为代理模型,其中,图神经网络模型的递归表达式和输出表达式分别为:

其中,

由此,将原始图输入图神经网络模型,能够获得预测标签

可以理解的是,本步骤所进行的是数据的准备工作,在此步骤中,对超参数进行设定。

本申请实施例中,超参数包括迭代次数

能够理解的是,根据预设比例将原始图数据划分为训练集与测试集,根据训练集训练代理模型,并将测试集输入到训练好的代理模型中,得到测试集的预测标签是比较常规的训练过程,划分的预设比例根据实际场景而决定。

能够理解的是,模型的训练是个重复迭代的过程,通过不断地调整模型的网络参数进行训练,直到模型整体的损失函数值小于预设值,或者模型整体的损失函数值不再变化或变化幅度缓慢,模型收敛,得到训练好的模型。

可选地,还可为达到预设的训练次数,则可认为训练结束。

可选地,还可为达到预设的训练时间,则可认为训练结束。

步骤102,将原始图数据初始化作为初始化后的对抗图,将初始化后的对抗图输入到代理模型进行训练,训练结束后,得到目标代理模型。

本申请实施例中,对抗图初始化就是将对抗图初始化为原始图,然后每次迭代修改一条边,对应就是对对抗图的邻接矩阵做一个位置修改,也即是每次迭代对抗图都更新一次。最后通过T次迭代,修改T条边,利用最终生成的对抗图来攻击其他图神经网络模型。

可以理解的是,迭代前,将原始图初始化作为输入的对抗图,而在迭代过程中输入的对抗图为上次迭代中生成的。

本申请实施例中,对于对抗图

其中,交叉熵损失函数的表达式为:

其中,

能够理解的是,模型的训练是个重复迭代的过程,通过不断地调整模型的网络参数进行训练,直到模型整体的损失函数值小于预设值,或者模型整体的损失函数值不再变化或变化幅度缓慢,模型收敛,得到训练好的模型。

可选地,还可为达到预设的训练次数,则可认为训练结束。

可选地,还可为达到预设的训练时间,则可认为训练结束。

可以理解的是,在训练前,对代理模型的测试集损失值进行初始化。

步骤103,根据预测标签与目标代理模型,计算本次迭代的测试集损失,并基于两次迭代测试集损失值之差判断前一次迭代的扰动是否满足预设条件,如果不满足预设条件,对扰动进行校正。

本申请实施例中,为了保证所选扰动的可靠性,每次迭代需要对前一次迭代的扰动进行判断,判断过程如图2所示。

具体的,将两次迭代测试集损失值之差作为前一次迭代生成扰动的扰动判断分数,其中,扰动判断分数的计算公式为:

其中,

其中,交叉熵损失函数值的计算公式为:

其中,

随后,比较扰动判断分数与分数阈值

当扰动满足预设条件时,无需对扰动进行修改,

当扰动被判断为恶意扰动时,需要对其进行修改,记该恶意扰动表示为

本申请实施例中,根据恶意扰动

由于余弦相似度值可以反应候选集中候选边的重要性,值越高,说明对应的边越重要,因此本申请实施例中,选择余弦相似度值最大的对应连边,来替代恶意扰动。

步骤104,在扰动满足预设条件时,根据目标代理模型的损失函数构建增强动量梯度,根据增强动量梯度对对抗图进行更新,生成本次迭代的对抗图。

本申请实施例中,通过模型的损失函数对当前对抗图进行梯度计算,构建增强动量梯度,并基于增强动量梯度进行添加扰动处理,生成本次迭代的对抗扰动,其中,将本次迭代的对抗图作为下次迭代的输入。

具体的,步骤104的实施步骤为:

(1)利用目标代理模型的训练损失,根据反向传播规则,求解训练损失于输入邻接矩阵的梯度,并在每次梯度计算时,先利用前一次迭代的梯度预先确定更新方向,即:

其中,

然后沿更新方向上采样多次并进行梯度计算,得到采样的平均梯度,即:

其中,

(2)进一步对采样的平均梯度进行动量累计,得到本次迭代的增强动量梯度,计算公式为:

其中,

(3)根据本次迭代的增强动量梯度,确定当前对抗图中各条边的梯度值,选择梯度值最大的元素对应的连边进行翻转,得到本次迭代的对抗图,从而更新对抗图的邻接矩阵

翻转的具体过程是:

设所选的边为

其中,

由此,得到本次迭代最终生成的对抗图。

步骤105,当迭代次数达到预设迭代次数时,利用最终生成的对抗图对其他图神经网络模型进行攻击。

本申请实施例中,在迭代次数达到预先设置的迭代次数

本申请实施例通过多次迭代对对抗图进行更新,在每次迭代中对上一次的扰动进行校正,并通过梯度计算,构建增强动量梯度,以进行添加扰动处理,生成最终的对抗图对其他图神经网络模型进行攻击,从而通过修改图结构或节点特征,以欺骗图神经网络模型等算法,对基于图数据的应用系统造成影响,解决现有攻击技术生成的扰动不稳定、不可靠,攻击结果不理想的问题。

图3是根据本申请实施例示出的一种图神经网络模型黑盒攻击装置10的框图,包括:输入模块100、训练模块200、扰动判断模块300、更新模块400和攻击模块500。

输入模块100,用于获取原始图数据并选择代理模型,将原始图数据划分为训练集与测试集,根据训练集训练代理模型,并将测试集输入到训练好的代理模型中,得到测试集的预测标签;

训练模块200,用于将原始图数据初始化作为初始化后的对抗图,将初始化后的对抗图输入到代理模型进行训练,训练结束后,得到目标代理模型;

扰动判断模块300,用于根据预测标签与目标代理模型,计算本次迭代的测试集损失,并基于两次迭代测试集损失值之差判断前一次迭代的扰动是否满足预设条件,如果不满足预设条件,对扰动进行校正;

更新模块400,用于在扰动满足预设条件时,根据目标代理模型的损失函数构建增强动量梯度,根据增强动量梯度对对抗图进行更新,生成本次迭代的对抗图,其中,将本次迭代的对抗图作为下次迭代的输入;

攻击模块500,用于当迭代次数达到预设迭代次数时,利用最终生成的对抗图对其他图神经网络模型进行攻击。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图4所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如语音指令响应方法。例如,在一些实施例中,语音指令响应方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的语音指令响应方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音指令响应方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称 "VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

技术分类

06120116541244