Loading... [Adversarial Attacks on Neural Networks for Graph Data](https://dl.acm.org/doi/abs/10.1145/3219819.3220078) ## 1. 背景 基于图的深度学习模型,尤其是图卷积网络,在节点分类任务上取得了很好的性能,但是此前还没有人研究过他们对于对抗性攻击是否具有鲁棒性。然而,对抗性攻击在一些实际应用场景中是十分常见的,如:搜索引擎、推荐系统、欺诈检测等。攻击者可能通过修改自身属性以及与其他用户的联系,使系统无法做出正确的判断。因此研究图上的对抗性攻击很有必要。 不同于传统的对抗性攻击,图上的对抗性攻击具有以下三个挑战: (1)图的结构和节点特征等信息都是离散的,难以直接利用基于梯度的优化方法; (2)难以在图上定义不被人感知的对抗性扰动; (3)节点分类往往基于直推式学习,模型需要在扰动后的数据上重新训练,因此躲避攻击(evasion attacks)是不可行的,只能使用更为复杂的投毒攻击(poisoning attacks)。 鉴于以上挑战,该论文提出了一个属性图的对抗性攻击模型,用于攻击基于图卷积的半监督分类模型,并开发了Nettack算法来实现这些攻击。 ## 2. 原理 图上的对抗性攻击旨在对原图$G^{(0)}=(A^{(0)}, X^{(0)})$中的一部分节点$\mathcal{A}$进行微小的修改,得到图$G^{'}=(A^{'}, X^{'})$,从而改变分类模型对目标节点$v_0$的分类结果。 其中对邻接矩阵的修改$(A^{(0)}\to A^{'})$称为**结构攻击(structure attacks)**,对节点特征的修改$(X^{(0)} \to X^{'})$称为**特征攻击(feature attacks)**; $\mathcal{A}$是攻击节点集合,即可被操纵的节点集,$v_0$是目标节点,即希望通过攻击改变分类结果的节点。如果直接对目标节点$v_0$进行修改,则称为**直接攻击(direct attack)**;反之,对$v_0$节点以外的节点进行修改,间接地影响$v_0$的分类结果,称为**影响者攻击(influencer attack)**。 基于图的对抗性攻击模型可定义为下式(式1),其中$Z^*$是GCN分类模型,$\theta^*$是根据扰动后的图训练得到的参数,$(A^{'},X^{'})\approx(A,X)$用于确保扰动是不明显的。该式表明,图对抗性攻击模型的目标是找到图$G^{(0)}$的一个微小扰动$G^{'}$,使目标节点$v_{0}$的预测标签c和真实标签$c_{old}$的距离最大化。 $$ \mathop{\arg\max}\limits_{(A^{'},X^{'})\in{\mathcal{{P}}_{\Delta,\mathcal{A}}^{G_0}}} \max_{c\ne c_{old}}\ln{Z^{*}_{v_0,c}}-\ln{Z^{*}_{v_0,c_{old}}} \\ where Z^{*}=f_{\theta^*}(A^{'},X^{'}) \ with\ \theta^{*} = \arg\min_{\theta}L(\theta;A^{'},X^{'}) \\ s.t. \ (A^{'},X^{'})\approx(A,X) $$ 为了便于衡量扰动是否是不明显的,论文将图的扰动分为**结构扰动**和**特征扰动**两个方面,并分别进行了定量分析。 ### 2.1 结构扰动 图结构最显著的特征就是它的度分布,因此可以通过判断扰动前后节点的度分布是否相似来判断扰动是否明显。在实际网络中,节点的度往往服从幂律分布$p(x)\propto x^{-\alpha}$,对于图G而言,参数$\alpha$可通过下式(式2)近似求解。 $$ \alpha_G \approx 1 + |\mathcal{D}_G|\cdot \left[ \sum_{d_i\in\mathcal{D}_G}\log\frac{d_i}{d_{min}-\frac{1}{2}}\right]^{-1} $$ 其中,$d_{min}$是参与计算的最小的度,$\mathcal{D}_G = \{d_{v}^{G} \mid v\in V,d_{v}^{G}\ge d_{min}\}$是所有满足条件的度的集合。对于给定的参数$\alpha_x$,可通过下式(式3)计算样本的对数似然函数值。 $$ l(\mathcal{D}_x) = |\mathcal{D}_x|\cdot\log{\alpha_x}+|\mathcal{D}_x|\cdot\alpha_x\cdot\log{d_{min}}-(\alpha_x+1)\sum_{d_i\in\mathcal{D}_x}\log{d_i} $$ 根据对数似然函数值,进行显著性检验,估计样本$\mathcal{D}_G$与$\mathcal{D}_{G'}$是否来自相同的幂律分布,最后可得到检验统计量如下式(式4)所示。其中$H_0$是原假设,即样本$\mathcal{D}_G$与$\mathcal{D}_{G'}$来自相同的幂律分布,$H_0$是备择假设,即样本$\mathcal{D}_G$与$\mathcal{D}_{G'}$来自不同的幂律分布。 $$ \Lambda(G^{(0)}, G^{'}) = -2\cdot l(H_0)+2\cdot l(H_1) $$ 当$\Lambda(G^{(0)}, G^{'}) \lt \tau \approx 0.004$时,接受原假设$H_0$,认为图结构的扰动是不明显的。 ### 2.2 特征扰动 对于节点特征来说,如果两个特征从未共同出现过,添加扰动使得他们共现了,那么这个扰动是容易被注意到的;相反,如果两个特征经常一起出现,而某个节点特征中他们没有共现,添加扰动以后他们共现了,那么这个扰动则是不容易被注意到的。因此,可以对特征扰动施加共现约束,以防止添加易于检测或不切实际的特征。 定义图$G^{(0)}$上的特征共现图$C=(\mathcal{F},E)$,其中$\mathcal{F}$是节点特征集合,$E\subseteq\mathcal{F}\times\mathcal{F}$反映了节点特征是否共同出现。节点u的特征集合为$S_u = \{j\mid X_{uj}\ne0\}$。如果下式(式5)成立,则认为将特征i添加到节点u上是不容易被注意到的。 $$ p(i\mid S_u) = \frac{1}{|S_u|} \sum_{j\in S_u}{\frac{1}{d_j}\cdot E_{ij}} \gt \sigma $$ 上式反映了从节点u最初的特征开始,执行一步随机游走到达特征i的概率,论文中取$\sigma = 0.5\cdot\frac{1}{|S_u|} \sum_{j\in S_u}{\frac{1}{d_j}}$。 ### 2.3 生成对抗图 为了更高效地计算扰动带来的影响,文章将GCN中的非线性激活函数替换为线型激活函数,如下式(式6)所示。 $$ Z^{'} = softmax(\hat{A}\hat{A}XW^{(1)}W^{(2)}) = softmax(\hat{A}^2XW) $$ 考虑到softmax函数对预测结果没有影响,可以得到代理模型$\log Z^{'} = \hat{A}^2XW$,于是式1可简化为(式7): $$ \mathcal{L}_s(A,X;W,v_0)=\max_{c\ne c_{old}}[\hat{A}^2XW]_{v_{0}c} - [\hat{A}^2XW]_{v_{0}c_{old}} $$ 为了进一步优化模型,文章定义了两个函数分别评估结构扰动和属性扰动对损失函数的影响,具体下式(式8)所示。对于结构攻击,改变的只有邻接矩阵A,因此XW可看作常量;对于特征攻击,改变的只有节点特征X,因此A和W可看作常量。 $$ s_{struct}(e;G,v_0):=\mathcal{L}_s(A^{'},X;W,v_0) \\ s_{feat}(f;G,v_0):=\mathcal{L}_s(A,X^{'};W,v_0) $$ 生成对抗图的具体算法(Nettack)如图1所示。算法输入原图$G^{(0)}$、目标节点$v_0$、攻击节点集合$\mathcal{A}$和允许修改的数量$\Delta$,输出修改后的图$G^{'}$。算法先根据式4和式5建立可行的扰动解空间$C_{struct}$和$C_{feat}$,其中$C_{struct}$是所有可被修改且不易被注意到的边的集合,$C_{feat}$是所有可被修改且不易被注意到的特征集合。然后采用贪心的思想,从解空间中选择一个能最大化评估分数(式8)的扰动进行操作。循环上述步骤$\Delta$次,便能得到图$G^{(0)}$的一个对抗图$G^{'}$。  最后,论文中还给出了扰动解空间和评估分数的增量计算方法,使算法能够高效地运行。 ## 3. 实验 论文中将数据集划分为10%的训练集、10%的验证集和80%的测试集,在分类模型训练期间,如果连续30次迭代过程中验证集的F1分数都不再增加,则停止训练。 不同的攻击算法在Cora数据集上的攻击效果如图2所示,图中每个点代表一个目标节点, Clean表示在原始数据上的分类结果,分割线右侧是影响者攻击(Nettack-In)的分类结果,可以看到,在各个实验中,影响者攻击(Nettack-In)的性能远低于直接攻击(Nettack)。 图(a)对比了躲避攻击和投毒攻击在GCN模型上的性能,其中测试躲避攻击时,使GCN模型参数保持不变,测试投毒攻击时,GCN模型会被重新训练。图(a)显示躲避攻击和投毒攻击在GCN模型上均具有很好的性能。图(b)(c)(d)分别展示了Nettack在GCN模型、CLN模型、DeepWalk模型上的攻击效果,并与FGSM和Rnd等算法进行了对比。Nettack在这些场景中均能发挥出很好的性能,且由于Rnd和FGSM。同时,图(b)(c)(d)的结果也证明了Nettack是可迁移的。  各攻击算法在不同数据集和分类模型上的攻击效果如表1所示,表中的数字表示目标节点被正确分类的比例。可以看到,Nettack的直接攻击在各模型上都具有最好的性能。  论文中还给出了知识受限情况下Nettack算法的运行结果,如图3所示。图(a)是Nettack直接攻击与Rnd的对比结果,即使仅使用10%的图数据,Nettack直接攻击也能达到很好的效果,且优于使用整个图数据的Rnd算法。图(b)展示了Nettack影响攻击的效果,对比直接攻击,影响攻击需要使用更多的图数据和更多的扰动才能成功攻击,且攻击效果远低于直接攻击。  下面使用作者在github上提供的代码对GCN模型进行了对抗性攻击测试。 使用Cora数据集,目标节点编号为15,真实类别为0,扰动次数与目标节点的度相同,攻击前后均对模型进行5次重新训练,得到目标节点的分类结果如图4所示。左图是攻击前的预测结果:每次重新训练,GCN模型均能正确地预测目标节点的类别。右图是攻击后的预测结果:每次重新训练,GCN模型都会将目标节点错误地预测为6号类别。可见Nettack的攻击效果十分显著。  ## 4. 总结 Nettack是一种基于图的对抗性攻击模型,可以有效地降低节点分类器的分类性能,证明了基于图的深度学习模型对于对抗性攻击不具有鲁棒性。 在知识受限的情况下,Nettack也能发挥出显著的效果,此外,Nettack使用了代理模型,不依赖具体的分类器,具有可迁移的性质。 学习了该篇论文后,我对图神经网络有了新的认识。虽然图神经网络在节点分类任务上有很好的性能,但是这种模型本身是脆弱的,仅仅在图结构和节点属性上添加微小的扰动,就足以使其产生错误的分类结果。因此,考虑如何防御图对抗性攻击是十分必要的。 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏
1 条评论
表评论3224