图神经网络中的图结构对抗攻击与防御方法详解
1. 问题描述与背景
在机器学习领域,对抗攻击指通过在输入数据上添加人眼难以察觉的微小扰动,导致模型做出错误预测。在图神经网络(GNN)中,对抗攻击针对图结构数据(节点特征和图结构)进行,目的是欺骗GNN模型。这类攻击对GNN在关键领域(如社交网络分析、推荐系统、金融风控)的应用构成了安全威胁,因此研究图结构的对抗攻击与防御方法至关重要。
关键挑战:与图像等欧氏空间数据不同,图数据是离散的、非欧的,且图结构(如边是否存在)是离散的二进制值,这使得在图上的对抗扰动设计更具挑战性。
2. 图对抗攻击的分类与目标
2.1 攻击目标分类
- 逃逸攻击(Evasion Attack):在测试阶段对图数据进行扰动,使训练好的GNN模型失效。这是最常见的攻击场景。
- 投毒攻击(Poisoning Attack):在训练阶段对图数据进行扰动,污染训练数据,导致模型学到错误的模式。
2.2 攻击者知识分类
- 白盒攻击:攻击者完全了解GNN模型的结构、参数和训练数据。
- 黑盒攻击:攻击者仅能通过查询获取模型的输入-输出反馈,不知道模型内部细节。
2.3 攻击的具体目标
- 针对性攻击:使模型对特定目标节点(如某个用户节点)分类错误。
- 非针对性攻击:降低模型在整个图上的整体分类精度。
3. 图对抗攻击的典型方法
下面以经典的Nettack(一种白盒投毒攻击方法)为例,逐步讲解攻击原理。
3.1 问题形式化
- 设原始图为 \(G = (A, X)\),其中 \(A\) 是邻接矩阵,\(X\) 是节点特征矩阵。
- GNN模型为 \(f_{\theta}(A, X)\),参数为 \(\theta\)。
- 攻击目标:在满足扰动预算 \(\Delta\) 的前提下,修改 \(A\) 和/或 \(X\),使目标节点 \(v_t\) 的分类错误最大化。
- 修改约束:通常限制添加/删除的边数不超过 \(\Delta\),特征修改的幅度受限。
3.2 攻击的优化问题
攻击可视为一个双层优化问题:
- 外层:攻击者优化扰动 \(\delta\),以最大化损失。
- 内层:模型在扰动后的图 \(G' = (A + \delta_A, X + \delta_X)\) 上训练,得到参数 \(\theta^*\)。
对于投毒攻击,目标是:
\[\max_{\delta} \mathcal{L}(f_{\theta^*}(A + \delta_A, X + \delta_X), y_{v_t}) \quad \text{s.t.} \quad \|\delta\| \leq \Delta \]
其中 \(\theta^* = \arg\min_{\theta} \mathcal{L}_{train}(f_{\theta}(A + \delta_A, X + \delta_X), Y_{train})\)。
3.3 Nettack的攻击步骤
Nettack采用贪心算法近似求解上述离散优化问题:
步骤1:定义影响评分
对于每条候选的边修改(添加或删除),计算其对目标节点 \(v_t\) 的分类置信度的影响。具体地,使用梯度或影响函数来估计修改边 \((i, j)\) 对损失 \(\mathcal{L}\) 的影响。
步骤2:贪心选择扰动
- 初始化扰动集合 \(S = \emptyset\)。
- 在每次迭代中,评估所有可能的单边修改(添加/删除),选择使目标节点分类置信度下降最大的那个修改,加入 \(S\)。
- 重复直到达到扰动预算 \(\Delta\)。
步骤3:特征攻击(可选)
类似地,对节点特征的微小修改(如翻转二进制特征)也可用贪心策略选择。
步骤4:生成对抗图
应用选定的扰动,得到对抗图 \(G'\),用于训练或测试GNN。
4. 图对抗攻击的防御方法
防御旨在提高GNN对对抗攻击的鲁棒性。主要方法包括:
4.1 对抗训练
- 思想:在训练过程中,主动将对抗样本加入训练集,使模型学习抵抗扰动。
- 步骤:
- 在每轮训练中,对当前训练图生成对抗扰动。
- 用原始图和对抗图一起训练模型,优化损失:
\[ \min_{\theta} \left( \mathcal{L}(f_{\theta}(A, X), Y) + \lambda \mathcal{L}(f_{\theta}(A', X'), Y) \right) \]
其中 \((A', X')\) 是对抗图,\(\lambda\) 是权衡参数。
4.2 图净化
- 思想:在输入GNN之前,检测并移除可能的对抗性边或特征。
- 方法:
- 基于图结构统计:例如,删除图中高度异常的边(如度数差异极大的节点之间的边)。
- 基于重构:使用图自编码器重建图,过滤掉重构误差大的边。
4.3 鲁棒聚合函数
- 思想:改进GNN中的邻域聚合函数,使其对异常值不敏感。
- 方法:
- 中位数聚合:用邻域特征的中位数代替均值,减少异常节点影响。
- 注意力机制修正:在GAT中引入先验知识或正则化,防止注意力权重被对抗节点操纵。
4.4 认证鲁棒性
- 思想:为GNN提供可证明的鲁棒性保证,即在一定扰动预算内,保证预测不变。
- 方法:
- 利用可微的鲁棒性证书(如基于Lipschitz常数),在训练中最大化证书下界。
5. 总结与展望
- 图对抗攻击 利用图数据的离散性和拓扑结构,通过修改边或特征欺骗GNN。
- 典型方法 如Nettack,通过贪心策略选择扰动,高效实现攻击。
- 防御方法 包括对抗训练、图净化、鲁棒聚合和认证鲁棒性,各有优缺点。
- 未来方向:更高效的黑盒攻击、针对动态图的攻击、可扩展的认证防御等。
通过理解攻击与防御的博弈,可以设计更安全的GNN系统,推动其在安全关键领域的可靠应用。