【Attack】拓扑缺陷图注入攻击

在这里插入图片描述
KDD’21

😄

图注入攻击:攻击者无法修改输入图的现有link结构和节点属性,而是通过向其中注入对抗性节点来执行攻击。

图注入攻击不同于图修改攻击所面临的挑战:

  1. 如何将现有节点与注入节点连接
  2. 如何从头开始为注入节点生成特征。

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=ϕ(hvk1,f({huk}uA(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,uA1(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,uA1(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,vT}。然后优化使 M M M的准确率下降。

在这里插入图片描述

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ca1m4n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值