图结构数据已广泛应用于许多现实世界的应用程序中, 例如社交网络(Facebook和Twitter), 生物网络(蛋白质或基因相互作用)以及属性图(PubMed和Arxiv)等[1-3]. 节点分类任务是图结构数据上最重要的任务之一, 即给定一个节点子集及其标签, 预测其余节点的标签. 对于节点分类任务, 基于图的深度学习模型——图神经网络已实现了最先进的性能[4], 而图卷积网络(GCN)作为一种特殊的图神经网络, 在此任务上取得了更好的结果.
目前的研究更多的是将重点放在如何提高GCN的性能上, 却很少有人关注GCN模型的鲁棒性. 但是, 研究表明, GCN是极易受到对抗攻击的. 例如, 只须对图数据的拓扑结构或者节点的特征进行微小的修改就能使GCN得到错误的分类结果[5]. 目前的攻击方法中, 绝大多数是通过修改图数据的拓扑结构和节点属性来进行攻击的, 然而, 这样的攻击在现实场景中是不适用的. 例如, 在社交网络应用程序中, 攻击者必须登录用户的帐户才能更改现有的连接和功能, 而获得登录访问权限几乎是不可能的. 相比之下, 在实践中添加与用户相对应的伪节点(fake node)会容易得多.
TUA就是一种通过添加伪节点进行攻击的针对性通用攻击方法. 在针对GCN的所有攻击方法中, 通用攻击方法是一种特殊的攻击方法, 此方法要求GCN将所有的受害节点都错误分类, 而不是某个单独的节点[6-8]. 针对性通用攻击则要求GCN将所有受害节点都错误地分到某一个指定的类别[9]. 本文则是基于TUA算法, 通过引入梯度选择的方法, 使得本文方法在所有类别的实验中都取得了与TUA方法相当甚至优于TUA方法的结果, 平均ASR相对TUA得到了1.7%的提升.
1 相关知识介绍 1.1 图卷积网络 (GCN)[4, 10]给定属性图
$ {H^{(l + 1)}} = \sigma ({\tilde D^{ - \frac{1}{2}}}\tilde A{\tilde D^{ - \frac{1}{2}}}{H^{(l)}}{W^{(l)}}) $ | (1) |
其中,
$Z = f(A,X) = {\textit{Softmax}} (\hat A{\textit{ReLU}}(\hat AX{W^{(0)}})X{W^{(1)}})$ | (2) |
其中,
在过去的几年中, Zungner等[6]和Dai等[5]首先发现了GCN容易受到对抗性攻击的特性. 而根据攻击的不同阶段, GCN中的对抗攻击分为两种类型: 投毒攻击(训练期间的攻击)和逃避攻击(测试期间的攻击). 通常, 投毒攻击的重点是通过干扰训练数据来降低GCN模型的性能, 而逃避攻击则通过修改属性或拓扑结构来构造对抗性样本, 从而使GCN模型的性能降低. 另外, 根据攻击的不同目的, 对图结构化数据的对抗攻击可分为节点分类攻击, 链接预测攻击和图分类攻击.节点分类攻击的目的是使某些节点被GCN误分类. 链接预测攻击的重点是减少节点之间的关联, 从而导致GCN提供错误的预测结果. 图分类攻击则旨在增强指定图与目标分类之间的相关性, 以使GCN无法正确分类给定图样本. 本文提出的GTUA可以归为逃避攻击和节点分类攻击.
在对图结构数据的所有对抗攻击中, 伪节点攻击是一种常见的攻击方法, 通过将一组伪节点注入到图中来实现, 从而可以避免对原始图进行拓扑或属性修改. 例如, GreedyAttack和GreedyGAN通过将伪造的节点直接添加到受害节点来进行目标节点攻击[11]. Wang等[12]引入近似快速梯度符号法, 该方法在受害节点和其他节点之间添加了一个恶性节点, 从而导致受害节点被错误分类. 但是, 大多数现有的伪节点攻击并非旨在进行普遍的对抗攻击. 而在本文提出的GTUA中, 伪节点充当受害节点的2跳邻居. 由于GCN的攻击过程, 伪节点特征的影响通过攻击节点传递到受害节点, 从而进行针对性通用对抗攻击.
2 基于梯度选择的图卷积网络针对性通用对抗攻击基于梯度选择的图卷积网络针对性通用对抗攻击(GTUA)的目标是使得每一个与攻击节点(从标签为目标类别的节点集中随机选择)连接的受害节点都得到与攻击节点相同的标签(如图1所示). 主要由3个步骤完成: 添加伴随0特征的伪节点; 计算目标函数关于伪节点特征矩阵的梯度矩阵; 按梯度矩阵元素大小进行梯度选择并确定扰动特征. 下面分别详细介绍每一个步骤.
2.1 添加伴随0特征的伪节点在添加伪节点之前, 先简单介绍几步预处理过程: 对于给定的图
$ A' = \left[ {\begin{array}{*{20}{c}} A&E \\ {{E^{\rm T}}}&P \end{array}} \right] ,\;\; X' = \left[ {\begin{array}{*{20}{c}} X \\ {{X_F}} \end{array}} \right] $ | (3) |
其中,
2.2 计算目标函数关于伪节点特征矩阵的梯度矩阵
在此首先明确本文的目的是, 对于给定的图
$ \left\{ \begin{split} &\mathop {\arg \max }\limits_{{X_F}} \sum\limits_{v \in {V_T}} {F\left( {A',X',v} \right)} \hfill \\ & {\rm {s.t.}}\;{\left\| E \right\|_0} + {\left\| {{X_F}} \right\|_0} \le \Delta \hfill \\ \end{split}\right. $ | (4) |
其中,
$ \begin{gathered} F\left( {A',X',v} \right) = {\left[ {f\left( {A{'_{\left( {v,{V_A}} \right)}},X'} \right)} \right]_{v,{c_o}}} - {\left[ {f\left( {A{'_{\left( {v,{V_A}} \right)}},X'} \right)} \right]_{v,{c_v}}} \hfill \\ \end{gathered} $ | (5) |
式(5)是关于每一个辅助节点的目标函数部分,
前面确定了目标函数, 那么如何计算扰动?在这里首先介绍基于梯度的方法. 因为只考虑对
$ Grad = {\nabla _{{X_F}}}\sum\limits_{v \in {V_T}} {F\left( {A',X',v} \right)} $ | (6) |
以往的基于梯度的方法基本都是采用一种贪婪式的选择方法[13]: 在每一次迭代中只改动一个元素, 因此找到每一次迭代中的梯度矩阵中的最大元素作为修改的对象即可. TUA也是采用这样一种方式, 首先找到
$\left\{ \begin{split} &Gra{d_{\max }} = \mathop {\arg \max }\limits_{i,j} Grad(i,j) \hfill \\ &i \in 1,2, \cdots ,{N_F};j \in 1,2, \cdots ,d \hfill \end{split}\right. $ | (7) |
然后找到
本文提出的GTUA也是采用一种基于梯度的贪婪式方法, 但是在这个过程中加上一个梯度选择的过程. 具体做法就是在得到
$\left\{ { \begin{split} &Gra{d_1} = \max \left\{ {Grad(i,j)} \right\} \hfill \\ &Gra{d_2} = \max \left\{ {\left\{ {Grad(i,j)} \right\}\backslash \left\{ {Gra{d_1}} \right\}} \right\} \hfill \\ &\;\;\;\;\;\;\;\;\;\;\;\;\;\;\vdots \hfill \\ &Gra{d_k} = \max \left\{ {\left\{ {Grad(i,j)} \right\}\backslash \left\{ {Gra{d_1}, \cdots ,Gra{d_{k - 1}}} \right\}} \right\} \hfill \end{split} } \right.$ | (8) |
然后分别计算将其在
$ \left\{ \begin{split} &{\textit{Loss}}_1 = \sum\limits_{v \in {V_T}} {F\left( {A',{X_1}',v} \right)} \hfill \\ &{\textit{Loss}}_2 = \sum\limits_{v \in {V_T}} {F\left( {A',{X_2}',v} \right)} \hfill \\ &\;\;\;\;\;\;\;\;\;\;\;\vdots \hfill \\ &{\textit{Loss}}_k = \sum\limits_{v \in {V_T}} {F\left( {A',{X_k}',v} \right)} \hfill \end{split}\right. $ | (9) |
其中,
$ Gra{d_{\rm{obj}}} = \mathop {\arg }\limits_{i,j} \left\{ {\mathop {\arg \max Los{s_n}}\limits_n } \right\} $ | (10) |
加入这样一个梯度选择的过程, 是出于以下思考: 因为考虑A和X都是取值为0或1的离散数据类型, 因此在选择
3 实验分析 3.1 数据集和评价指标
本文在3个常用的属性图数据集上进行实验: Cora (2 708节点, 5 429边, 1 433特征, 7类别), Citeseer (3 312节点, 4 732边, 3 703特征, 6类别) 和 PubMed (19717节点, 44338边, 500特征, 3类别)[14-16]. 此外, 根据Kipf&Welling的设置, 在3个相应的数据集上训练GCN模型. 最后用平均攻击成功率(ASR)作为模型性能的评价标准, ASR越高, 表明模型的攻击效果越好.
3.2 实验设置首先按照TUA的方法加快微扰计算. 因为大多数基于梯度的攻击都存在时间和内存成本高的问题, 为了解决这个问题, Li等[16]提出了一种有效加速攻击的框架, 该攻击框架攻击由目标节点的k跳邻居组成的较小子图(k取决于GCN层数), 从而可以避免不必要的图信息存储和计算[17]. 因为本文是基于Kipf&Welling的设置来训练GCN, 也就是一个2层的GCN, 因此只需要关注以目标节点为中心, 以其一阶邻居和二阶邻居组成的子图即可. 根据TUA的实验发现, 当
本文进行两组实验, 第一组实验用来查看在梯度选择过程中选择不同数量的梯度值
第二组实验选择一个恰当的
表2展示了GTUA与TUA的一次训练加测试的耗时对比, 可以发现: 因为GTUA梯度选择的过程需要计算
4 结论与展望
本文提出了一种基于梯度的图卷积网络针对性通用对抗攻击GTUA, 实验结果表明, 与当前流行的方法TUA相比, GTUA最差能够达到与其一样的结果, 但在多数情况下优于TUA, 由此可以看出梯度选择的过程确实提升了扰动的质量. 另外, 本文也留下了一个后续的研究方向: 对于离散数据类型上的基于梯度的方法, 都可以尝试加入梯度选择的过程, 由本文的结果可以大胆地预测, 其在很大程度上可能会带来效果上的提升.
[1] |
Grover A, Leskovec J. Node2Vec: Scalable feature learning for networks. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco: ACM, 2016. 855–864.
|
[2] |
Rhee SM, Seo S, Kim S. Hybrid approach of relation network and localized graph convolutional filtering for breast cancer subtype classification. Proceedings of the 27th International Joint Conference on Artificial Intelligence. Stockholm: IJCAI, 2018. 3527–3534.
|
[3] |
Ying R, He RN, Chen KF, et al. Graph convolutional neural networks for web-scale recommender systems. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. London: ACM, 2018. 974–983.
|
[4] |
Kipf TN, Welling M. Semi-supervised classification with graph convolutional networks. arXiv: 1609.02907, 2016.
|
[5] |
Dai HJ, Li H, Tian T, et al. Adversarial attack on graph structured data. Proceedings of the 35th International Conference on Machine Learning. Stockholm: ICML, 2018. 1115–1124.
|
[6] |
Zügner D, Akbarnejad A, Günnemann S. Adversarial attacks on neural networks for graph data. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. London: ACM, 2018. 2847–2856.
|
[7] |
Bojchevski A, Günnemann S. Adversarial attacks on node embeddings via graph poisoning. Proceedings of the 36th International Conference on Machine Learning. Long Beach: ICML, 2019. 695–704.
|
[8] |
Takahashi T. Indirect adversarial attacks via poisoning neighbors for graph convolutional networks. Proceedings of 2019 IEEE International Conference on Big Data (Big Data). Los Angeles: IEEE, 2019. 1395–1400.
|
[9] |
Dai JZ, Zhu WF, Luo XF. A targeted universal attack on graph convolutional network. arXiv: 2011.14365, 2020.
|
[10] |
刘杰, 李喜旺. 基于图神经网络的工控网络异常检测算法. 计算机系统应用, 2020, 29(12): 234-238. DOI:10.15888/j.cnki.csa.007717 |
[11] |
Wang XY, Cheng MH, Eaton J, et al. Attack graph convolutional networks by adding fake nodes. arXiv: 1810.10751, 2018.
|
[12] |
Wang JH, Luo MN, Suya F, et al. Scalable attack on graph data by injecting vicious nodes. Data Mining and Knowledge Discovery, 2020, 34(5): 1363-1389. DOI:10.1007/s10618-020-00696-7 |
[13] |
Moosavi-Dezfooli SM, Fawzi A, Frossard P. DeepFool: A simple and accurate method to fool deep neural networks. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 2574–2582.
|
[14] |
Sun MJ, Tang J, Li HC, et al. Data poisoning attack against unsupervised node embedding methods. arXiv: 1810.12881, 2018.
|
[15] |
Guo C, Pleiss G, Sun Y, et al. On calibration of modern neural networks. Proceedings of the 34th International Conference on Machine Learning. Sydney: ICML, 2017. 1321–1330.
|
[16] |
Li JT, Xie T, Chen L, et al. Adversarial attack on large scale graph. arXiv: 2009.03488, 2020.
|
[17] |
Wu F, Zhang TY, De Souza Jr AH, et al. Simplifying graph convolutional networks. arXiv: 1902.07153, 2019.
|