本技术涉及深度学习,特别是涉及一种黑盒图注入攻击方法、装置、计算机设备和存储介质。
背景技术:
1、图神经网络(gnn)在各种图学习任务中取得了巨大成功,例如节点分类、边预测和图分类。与图像、音频或文本等欧几里得数据相比,图数据包含灵活且丰富的结构信息,使得对图数据的对抗性攻击更具威胁性。图修改攻击(graph modification attack,gma)可以通过向图结构中添加对抗扰动(添加或删除边)来显着影响图神经网络的性能。然而,图修改攻击中的一个常见假设是攻击者有权修改原始数据,这在大多数情况下是不切实际的。因此,在不修改现有图结构的情况下向图中注入假节点的图注入攻击(graphinjection attack,gia)引起了更多关注。例如,在社交媒体平台上,恶意用户可以通过创建虚假帐户并与目标帐户添加连接来操纵图神经网络模型,使该模型对目标账户错误分类。
2、与图修改攻击相比,图注入攻击是一种更具挑战的攻击方法,因为攻击者必须生成具有恶意特征的假节点,而这些假节点是难以被察觉到异常的。此外,攻击者必须精心策划假节点与原始节点之间的连接关系以及假节点内部的连接关系。大多数图注入攻击发生在白盒设置中,攻击者可以完全访问目标模型和图数据。图注入攻击在白盒设置中非常有效,攻击者可以通过注入精心设计的假节点大大削弱目标模型。然而,在现实世界中,攻击者很难在模型训练前获得训练数据和目标模型的详细信息。因此,黑盒设置是一种更实用的图注入攻击方式,因为它只允许攻击者访问有限的数据和查询目标模型。
3、现有的白盒图注入攻击方法更偏向于理论研究,在实际情况下无法实现。而黑盒攻击是最贴近于现实情况的攻击设置。目前的黑盒图注入攻击能够利用查询结果优化假节点,从而达成攻击目的。但是,初始假节点的特征通常是随机初始化生成的,然后通过查询迭代优化,因此需要多次查询才能成功实施攻击。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种黑盒图注入攻击方法、装置、计算机设备和存储介质。
2、一种黑盒图注入攻击方法,所述方法包括:
3、获取原始引用关系图和修改后的引用关系图;所述修改后的引用关系图是通过注入假节点对所述原始引用关系图中的目标节点进行修改得到的;
4、将所述原始引用关系图和所述修改后的引用关系图分别输入预先经过无监督学习的节点编码器对目标节点进行特征提取,得到初始嵌入向量和修改后的嵌入向量;
5、根据所述修改后的嵌入向量、所述初始嵌入向量以及查询失败的嵌入向量,得到第一损失函数;
6、根据奖励预测器预测所述修改后的嵌入向量对应的查询结果和注入假节点后目标模型查询目标节点得到的查询结果计算得到第二损失函数;所述奖励预测器用于预测目标节点的查询结果;
7、通过预先构建的假节点生成器计算所述第一损失函数和所述第二损失函数相对于所述假节点的梯度值,采用梯度优化方法迭代更新所述梯度值,输出迭代停止时的假节点。
8、在其中一个实施例中,还包括:节点编码器对目标节点进行特征提取,得到嵌入向量为:
9、
10、其中,w0和w1分别是节点编码器中两个图卷积层的参数,in是单位矩阵,是对角矩阵,σ(·)是激活函数。
11、在其中一个实施例中,还包括:将节点编码器生成的嵌入向量作为奖励预测器的输入,通过多层感知机来预测目标节点的查询结果为:
12、
13、其中,f(zt)是目标节点的查询结果,zt是目标节点的嵌入向量,al和bl是多层感知机第l层的权重和偏置,σ(·)是激活函数。
14、在其中一个实施例中,还包括:根据所述修改后的嵌入向量、所述初始嵌入向量以及查询失败的嵌入向量,得到第一损失函数为:
15、
16、其中,s(·,·)表示余弦相似度,表示在第q次查询中注入假节点后对应的修改后的嵌入向量,表示在第q次查询之前查询失败的嵌入向量,表示第一损失函数。
17、在其中一个实施例中,还包括:根据奖励预测器预测所述修改后的嵌入向量对应的查询结果和注入假节点后目标模型查询目标节点得到的查询结果计算得到第二损失函数为:
18、
19、其中,ce(·,·)表示交叉熵损失,yt表示注入假节点后目标模型查询目标节点得到的查询结果,表示注入假节点后奖励预测器输出的目标节点的查询结果,表示第二损失函数。
20、在其中一个实施例中,还包括:计算所述第一损失函数和所述第二损失函数相对于所述假节点的梯度值为:
21、
22、其中,为梯度值,为在第q次查询中注入假节点后假节点的特征矩阵,表示第一损失函数,表示第二损失函数。
23、在其中一个实施例中,还包括:在梯度优化过程中,采用clamp函数,根据假节点的特征矩阵中的最大值和最小值限制所述特征矩阵中各个特征的范围。
24、一种黑盒图注入攻击装置,所述装置包括:
25、数据获取模块,用于获取原始引用关系图和修改后的引用关系图;所述修改后的引用关系图是通过注入假节点对所述原始引用关系图中的目标节点进行修改得到的;
26、特征提取模块,用于将所述原始引用关系图和所述修改后的引用关系图分别输入预先经过无监督学习的节点编码器对目标节点进行特征提取,得到初始嵌入向量和修改后的嵌入向量;
27、第一损失计算模块,用于根据所述修改后的嵌入向量、所述初始嵌入向量以及查询失败的嵌入向量,得到第一损失函数;
28、第二损失计算模块,用于根据奖励预测器预测所述修改后的嵌入向量对应的查询结果和注入假节点后目标模型查询目标节点得到的查询结果计算得到第二损失函数;所述奖励预测器用于预测目标节点的查询结果;
29、假节点生成模块,用于通过预先构建的假节点生成器计算所述第一损失函数和所述第二损失函数相对于所述假节点的梯度值,采用梯度优化方法迭代更新所述梯度值,输出迭代停止时的假节点。
30、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
31、获取原始引用关系图和修改后的引用关系图;所述修改后的引用关系图是通过注入假节点对所述原始引用关系图中的目标节点进行修改得到的;
32、将所述原始引用关系图和所述修改后的引用关系图分别输入预先经过无监督学习的节点编码器对目标节点进行特征提取,得到初始嵌入向量和修改后的嵌入向量;
33、根据所述修改后的嵌入向量、所述初始嵌入向量以及查询失败的嵌入向量,得到第一损失函数;
34、根据奖励预测器预测所述修改后的嵌入向量对应的查询结果和注入假节点后目标模型查询目标节点得到的查询结果计算得到第二损失函数;所述奖励预测器用于预测目标节点的查询结果;
35、通过预先构建的假节点生成器计算所述第一损失函数和所述第二损失函数相对于所述假节点的梯度值,采用梯度优化方法迭代更新所述梯度值,输出迭代停止时的假节点。
36、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
37、获取原始引用关系图和修改后的引用关系图;所述修改后的引用关系图是通过注入假节点对所述原始引用关系图中的目标节点进行修改得到的;
38、将所述原始引用关系图和所述修改后的引用关系图分别输入预先经过无监督学习的节点编码器对目标节点进行特征提取,得到初始嵌入向量和修改后的嵌入向量;
39、根据所述修改后的嵌入向量、所述初始嵌入向量以及查询失败的嵌入向量,得到第一损失函数;
40、根据奖励预测器预测所述修改后的嵌入向量对应的查询结果和注入假节点后目标模型查询目标节点得到的查询结果计算得到第二损失函数;所述奖励预测器用于预测目标节点的查询结果;
41、通过预先构建的假节点生成器计算所述第一损失函数和所述第二损失函数相对于所述假节点的梯度值,采用梯度优化方法迭代更新所述梯度值,输出迭代停止时的假节点。
42、上述黑盒图注入攻击方法、装置、计算机设备和存储介质,通过节点编码器获取无监督知识,通过奖励预测器从查询中获取经验,通过假节点生成器实施攻击,利用图的无监督知识来优化假节点,攻击者可以在只有少量知识的情况下学习到质量很高的目标节点嵌入表示,从而有针对性地生成假节点,并干扰节点分类器对目标节点的预测输出。所提出的奖励预测器和假节点生成器能够充分利用查询信息,优化假节点,逐渐提高攻击成功率。提高黑盒攻击中的初始查询成功率。本发明实施例,能够提高黑盒图注入攻击的成功率。