摘要
深度学习在图结构的各种应用中都取得了令人振奋的成果。然而,与大量针对图像或文本对抗性攻防的研究工作相比,对这类模型的鲁棒性关注较少。在本文中,我们关注通过修改数据的组合结构来欺骗模型的对抗性攻击。我们首先提出了一种基于强化学习的攻击方法,该方法学习可推广的攻击策略,同时只需要来自目标分类器的预测标签。此外,在预测置信度或梯度可用的情况下,提出了遗传算法和梯度方法的变体。我们使用合成数据和真实数据来证明,在图级和节点级分类任务中,一系列图神经网络模型都容易受到这些攻击。我们还表明,这种攻击可以用于诊断学习到的分类器。
基于强化学习的图神经网络黑盒攻击方法--RL-S2V
上图左边第一个图是原图,首先对原图用structure2vec进行训练,得到每一个节点的嵌入表达,然后用图神经网络参数化得到每一个节点的值(上图从左到右数的第四个图中的绿色信号条代表值),选取值最高的节点作为第一个节点,第5个图中间红色的节点就是选出来的第一个节点;重复上述步骤,选出第二个节点,两个节点之间的边就是需要改变的候选边。
基于梯度的白盒攻击
首先作者定义了一个图结构中梯度信息怎么计算,然后在上图中原始的图结构如上图左下角所示,邻接矩阵如图中的邻接(Adjacency)矩阵所示。已知目标模型的梯度信息与loss值,计算出各边的梯度信息,梯度信息的计算遵循反向传播过程,然后根据贪心原则,选出对 loss 的影响力最大的边,也就是的绝对值最大的边;最后依据下面的公式,决定攻击策略。注意,在上图中,作者每次攻击从图中改变了两条边(删除一条,添加一条)。
基于遗传算法的攻击
Population
随机生成R个有效的攻击策略,每个策略对两条边进行了修改。首先对攻击策略进行了限制,只能两条边。
Fitness
基于目标分类器的损失函数值,对各个候选策略进行评分。不同于随机算法,该算法虽然初始策略是随机生成的,但是接下来对各策略的取舍却不是随机的。
Selection
基于上一步得出的分数,通过加权采样或贪心选择来选取候选攻击策略。
Crossover
在候选策略中,随机进行两两配对,这样新生成的每一对攻击策略就对四条边进行了修改,从这四个子策略中随机选择两个子策略,形成新的策略。就好像人类基因的延续,父母双方的基因结合到一起,最后只选择一半的集因继承给孩子。
Mutation
假设在上一步中某一策略改变的是边 (a,b),那么在这一步中,会将改变的边变成 (a,c) 或 (b,c),顾名思义叫突变。