TDGIA: 图神经网络的有效注入攻击
- 图注入攻击下 GNN 的脆弱性
- TDGIA框架
- 拓扑缺陷边选择
- 平滑的对抗优化
- 整体攻击流程
KDD’21
😄
图注入攻击:攻击者无法修改输入图的现有link结构和节点属性,而是通过向其中注入对抗性节点来执行攻击。
图注入攻击不同于图修改攻击所面临的挑战:
- 如何将现有节点与注入节点连接
- 如何从头开始为注入节点生成特征。
budget限制:注入节点的数量,注入节点的度,注入节点的特征
本文方法的环境条件:
1. 黑盒设置。攻击者无法访问目标GNN模型或目标节点的正确标签;
2. 逃逸攻击。这种攻击只能在推理阶段进行。
GIA步骤:
首先,生成现有节点和注入节点(AI、V)之间的边; 其次,优化注入节点的特征。这种细分可以很大程度上降低复杂性,并使 GIA 适用于大规模图形。
图注入攻击下 GNN 的脆弱性
直观上,GIA 的功能要求注入的节点在边缘上传播(误导)信息,以影响其他(现有)节点。 哪些模型容易受到这种影响?
本文证明了如果排列不变图 ML 模型不是结构无知的,那么它是 GIA 可攻击的。我的理解是这里的结论得出图神经网络往往可以被图注入攻击成功的,即GNN面对GIA的脆弱性被证明。
关于排列不变、 GIA 可攻击、结构无知的定义
为了更好地设计对 GNN 的注入攻击,本文继续探索 GNN 的拓扑漏洞。
一般来说,在节点 𝑣 上执行的 GNN 层可以表示为聚合过程: h v k = ϕ ( h v k − 1 , f ( { h u k } u ∈ A ( v ) ) ) \textbf{h}_v^k=\phi(\textbf{h}_v^{k-1},f(\{\textbf{h}_u^k\}_{u\in A(v)})) hvk=ϕ(hvk−1,f({huk}u∈A(v)))
A(𝑣) 表示节点 𝑣 的邻域,A(𝑣) 包括直接连接到𝑣 的节点以及可以在一定步数内连接到𝑣 的节点。 我们使用 A t ( v ) A_t(v) At(v) 来表示𝑣的𝑡跳邻居,即可以在𝑡步内到达𝑣的节点。 我们使用 f t ( ⋅ ) f_t(·) ft(⋅)作为相应的聚合函数。 因此,聚合过程可以进一步表示为:
简单来说,就是图消息传递的机制/边的消息聚合/图结构很容易得出一阶邻居的扰动会影响全局输出:
TDGIA框架
最简单来说,根据度选择目标节点,包括是谁、多少个,都是由degree选择的。
本文的topology就是依据节点度⭐️
拓扑缺陷边选择
原始节点的特征不变,注入节点的原始特征为0。所以,首先最大化对第1时刻权重的影响。一般GNNs比如GCN w u , 1 = 1 d e g ( u ) d e g ( v ) , u ∈ A 1 ( v ) w_{u,1}=\frac{1}{\sqrt{deg(u)deg(v)}}, u\in A_1(v) wu,1=deg(u)deg(v)1,u∈A1(v),而基于平均池化的GNNs比如GraphSAGE w u , 1 = 1 d e g ( v ) , u ∈ A 1 ( v ) w_{u,1}=\frac{1}{deg(v)}, u\in A_1(v) wu,1=deg(v)1,u∈A1(v),与GCN不同,GraphSAGE的权重只与目标节点𝑣的度数有关,而与邻居节点𝑢的度数无关。
对于TDGIA使用这俩的权重组合,衡量节点 v v v的拓扑脆弱性。
d d d是注入节点的度的预算, λ v \lambda_v λv越高,表明该节点在拓扑结构上越脆弱,因此GIA攻击倾向于选择这样的节点进行连接注入。
这种组合方式考虑了节点的度数和邻居的数量,允许攻击者在选择注入节点时,不仅考虑节点的度数(即连接的丰富度),也考虑了节点在图中的局部结构(即邻居的数量)。一个节点可能度数很高,但如果其邻居分布较为稀疏,它可能在拓扑上更为脆弱。
那么,一个注入节点与多少目标节点产生边是由 d d d决定的,加上GraphSAGE的方式也就是为了稍微偏向于目标节点 v v v的度一点。
附录A.2从理论上证明了式(10)可以推广到多层GNN,因此这种拓扑缺陷边缘选择策略在一般GNN下仍然有效。
平滑的对抗优化
一旦选择了注入节点的拓扑缺陷边,下一步就是为注入节点生成特征以提高攻击效果。
平滑损失函数。 通常,在对抗性攻击中,我们反向优化用于训练模型的损失函数。 例如,我们可以使用KL散度的倒数作为目标集T中节点𝑣的攻击损失:
为防止梯度爆炸,使用平滑损失函数:
所以,优化目标:
平滑特征优化。使用Clamp函数来限制特征的优化范围:
为防止梯度消失,使用平滑损失函数:
整体攻击流程
- 连续攻击(Sequential Attack)
在每个批次(batch)中,向图中添加少量节点,选择目标节点与之相链接,并优化它们的特征。我们重复此过程,直到满足注入预算。 - 代理模型(Surrogate Model): GCN
在黑盒设置下,攻击者没有有关被攻击模型的信息,因此必须对代理模型进行攻击。 具体来说,我们首先使用输入图上给定的训练数据训练代理模型 M M M,并使用 M M M生成代理标签 { y ^ v , v ∈ T } \{\hat{y}_v, v\in T\} {y^v,v∈T}。然后优化使 M M M的准确率下降。