Adversarial Attack on Graph Structured Data(2018 PMLR)

Adversarial Attack on Graph Structured Data----《图结构数据的对抗攻击》

摘要

  基于图结构的深度学习已经在各种应用中显示出令人兴奋的结果。然而,与图像或文本对抗攻击和防御的大量研究工作相比,此类模型的鲁棒性却很少受到关注。在本文中,我们重点关注通过修改数据组合结构来欺骗深度学习模型的对抗性攻击。我们首先提出一种基于强化学习的攻击方法,该方法学习可泛化的攻击策略,同时只需要来自目标分类器的预测标签。在额外的预测置信度或梯度可用的情况下,我们进一步提出基于遗传算法梯度下降的攻击方法。我们使用合成数据和真实数据来表明,在图级和节点级分类任务中,一系列图神经网络模型很容易受到这些攻击。我们还表明此类攻击可用于诊断学习的分类器。

引言

  图结构在许多实际应用中发挥着重要作用。使用深度学习方法对结构化数据进行表示学习在各种应用中都显示出了有希望的结果,包括药物筛选、蛋白质分析、知识图补全等。
  尽管深度图网络取得了成功,但这些模型缺乏可解释性和鲁棒性,使得某些金融或安全相关应用程序面临风险。正如 Akoglu 等人分析的那样,图信息被证明在风险管理领域很重要。图敏感的评估模型通常会考虑用户与用户的关系:与许多高信用用户连接的用户也可能具有高信用。这种由深度图方法学到的启发式方法通常会产生良好的预测,但也可能会使模型面临风险。犯罪分子可能会尝试通过使用 Facebook 或 Linkedin 与其他人联系来伪装自己。这种对信用预测模型的“攻击”成本相当低,但后果可能很严重。由于每天发生大量交易,即使只有百万分之一的交易是欺诈的,欺诈者仍然可以获得巨大的利益。然而,尽管图像和文本等其他领域的对抗性攻击和防御最近取得了进展,但涉及图结构的领域却很少受到关注。
  因此,在本文中,我们重点关注一组图神经网络(GNN)模型的图对抗攻击。这是一个监督模型家族,在许多转导任务和归纳任务中取得了最先进的结果。通过节点分类和图分类问题的实验,我们将证明此类模型确实存在对抗样本。GNN 模型很容易受到此类攻击。
  然而,有效地攻击图结构并不是一个简单的问题。与数据是连续的图像不同,图是离散的。此外,图形结构的组合性质使其比文本困难得多。受组合优化最新进展的启发,我们提出了一种基于强化学习的攻击方法,该方法仅根据目标分类器的预测反馈来学习修改图结构。修改是通过从图中顺序添加或删除边来完成的。还使用了一种分层方法来分解二次动作空间,以使训练变得可行。图 1 说明了这种方法。我们证明,通过学习代理(黑盒)也可以提出对抗攻击的新实例,而不访问目标分类器。
在这里插入图片描述
  本文考虑了几种不同的对抗攻击设置。当从目标分类器中获取更多信息时(灰盒或白盒),还提出了一种基于梯度的方法和一种基于遗传算法的方法。这里我们主要关注以下三个设置:
白盒攻击(WBA):在这种情况下,攻击者可以访问目标分类器的任何信息,包括预测信息、梯度信息等。
实用黑盒攻击(PBA):在这种情况下,只有对目标分类器的预测可用。当可以获取预测置信度时,我们将此设置表示为PBA-C;如果只允许使用离散的预测标签,我们将此设置表示为PBA-D。
限制黑盒攻击(RBA):这种设置比PBA更进一步。在这种情况下,我们只能对部分样本进行黑盒查询,并要求攻击者对其他样本进行对抗性修改。
  我们可以看到,关于攻击者可以从目标分类器获取的信息量,我们可以将上述设置排序为WBA > PBA-C > PBA-D > RBA。为简单起见,我们关注非目标攻击,尽管它很容易扩展到目标攻击场景。

背景

  一组图用 G = { G i } i = 1 N G = \{ {G_i}\} _{i = 1}^N G={Gi}i=1N 表示,其中 ∣ G ∣ = N \left| G \right| = N G=N。每个图 G i = ( V i , E i ) {G_i} = ({V_i},{E_i}) Gi=(Vi,Ei) 由节点集 V i = { v j ( i ) } j = 1 ∣ V i ∣ {V_i} = \{ v_j^{(i)}\} _{j = 1}^{\left| {{V_i}} \right|} Vi={vj(i)}j=1Vi 和边集 E i = { e j ( i ) } j = 1 ∣ E i ∣ {E_i} = \{ e_j^{(i)}\} _{j = 1}^{\left| {{E_i}} \right|} Ei={ej(i)}j=1Ei 组成。在本文中,我们关注无向图,但扩展到有向图也很简单。可选地,节点或边可以具有关联的特征。本文主要研究攻击图监督分类算法。这里考虑了两种不同的监督学习设置:

归纳图分类:我们将每个图 G i {G_i} Gi 与标签 y i ∈ γ = { 1 , 2 , . . . , Y } {y_i} \in \gamma = \{ 1,2,...,Y\} yiγ={1,2,...,Y} 相关联,其中 Y Y Y 是类别数。数据集 D ( i n d ) = { ( G i , y i ) } i = 1 N {D^{(ind)}} = \{ ({G_i},{y_i})\} _{i = 1}^N D(ind)={(Gi,yi)}i=1N 由图实例和图标签对表示。此设置是归纳性的,因为在训练期间永远不会看到测试实例。此类任务的示例包括根据药物分子图的功能对其进行分类。因此,分类器 f ( i n d ) ∈ F ( i n d ) : G ↦ γ {f^{(ind)}} \in {F^{(ind)}}:G \mapsto \gamma f(ind)F(ind):Gγ 被优化以最小化以下损失:
在这里插入图片描述
其中, L ( ⋅ , ⋅ ) L( \cdot , \cdot ) L(,) 默认为交叉熵损失。

传导式节点分类:在节点分类设置中,图 G i {G_i} Gi 的目标节点 c i ∈ V i {c_i} \in {V_i} ciVi 与对应的节点标签 y i ∈ γ {y_i} \in \gamma yiγ 相关联。分类是在节点上,而不是在整个图上。我们在这里关注传导设置,其中整个数据集中仅考虑单个图 G 0 = ( V 0 , E 0 ) {G_0} = ({V_0},{E_0}) G0=(V0,E0)。也就是说, G i = G 0 , ∀ G i ∈ G {G_i} = {G_0},\forall {G_i} \in G Gi=G0,GiG。它是传导性的,因为在训练期间也能观察到测试节点(但不包括它们的标签)。这种情况下的示例包括对 Citeseer 等引文数据库中的论文或 Facebook 等社交网络中的实体进行分类。这里数据集表示为 D ( t r a ) = { ( G 0 , c i , y i ) } i = 1 N {D^{(tra)}} = \{ ({G_0},{c_i},{y_i})\} _{i = 1}^N D(tra)={(G0,ci,yi)}i=1N,分类器 f ( t r a ) ( ⋅ ; G 0 ) ∈ F ( t r a ) : V 0 ↦ γ {f^{(tra)}}( \cdot ;{G_0}) \in {F^{(tra)}}:{V_0} \mapsto \gamma f(tra)(;G0)F(tra):V0γ 最小化以下损失:
在这里插入图片描述

GNN 系列模型

  图神经网络 (GNN) 定义了图 G = ( V , E ) G = (V,E) G=(V,E) 上神经网络的通用架构。该架构通过迭代过程获得节点的向量表示:
在这里插入图片描述
其中, N ( v ) N(v) N(v) 为指定节点 v ∈ V v \in V vV 的邻域。初始节点嵌入 μ v ( 0 ) ∈ R d \mu _v^{(0)} \in {R^d} μv(0)Rd 设置为0。为了简单起见,我们将结果节点嵌入表示为 μ v = μ v ( K ) {\mu _v} = \mu _v^{(K)} μv=μv(K)为了从节点嵌入获得图级嵌入,在节点嵌入上应用全局池化。普通 GNN 模型运行上述迭代直至收敛。但最近人们发现,在各种应用中,使用固定的传播步骤数 T T T 和不同的参数化能够取得良好的效果。

图对抗攻击

  给定一个学习的分类器 f f f 和数据集中的一个实例 ( G , c , y ) ∈ D (G,c,y) \in D (G,c,y)D,图对抗攻击者 g ( ⋅ , ⋅ ) : G × D ↦ G g( \cdot , \cdot ):G \times D \mapsto G g(,):G×DG 要求修改图 G = ( V , E ) G = (V,E) G=(V,E) G ~ = ( V ~ , E ~ ) \tilde G = (\tilde V,\tilde E) G~=(V~,E~),使得:
在这里插入图片描述
这里, I ( ⋅ , ⋅ , ⋅ ) : G × G × V ↦ { 0 , 1 } I( \cdot , \cdot , \cdot ):G \times G \times V \mapsto \{ 0,1\} I(,,):G×G×V{0,1} 是一个等价指标(扰动程度),它告诉两个图 G G G G ~ \tilde G G~ 在分类语义下是否等价。
  在本文中,我们重点关注对离散结构的修改。攻击者 g g g 可以在 G G G 中添加或删除边来构造新图。这种类型的操作非常丰富,因为通过对边进行一系列修改,可以执行添加或删除节点的操作。此外,修改边比修改节点更难,因为选择一个节点只需要 O ( ∣ V ∣ ) O(\left| V \right|) O(V) 复杂度,而选择一条边需要 O ( ∣ V ∣ 2 ) O({\left| V \right|^2}) O(V2) 复杂度。
  由于攻击者的目的是欺骗分类器 f f f,而不是实际更改实例的真实标签,因此应首先定义等效指示符 I ( ⋅ , ⋅ , ⋅ ) I( \cdot , \cdot , \cdot ) I(,,) 以限制攻击者可以执行的修改。我们使用两种方法来定义等效指标:

(1)显式语义。在这种情况下,假设分类器 f ∗ {f^*} f 是可访问的。因此,等价指标 I ( ⋅ , ⋅ , ⋅ ) I( \cdot , \cdot , \cdot ) I(,,) 定义为:
在这里插入图片描述
其中, Ⅱ ( ⋅ ) ∈ { 0 , 1 } ( \cdot ) \in \{ 0,1\} (){0,1} 是指示函数。

(2)小修改。在许多情况下,当显式语义未知时,我们会要求攻击者在邻域图中进行尽可能少的修改:
在这里插入图片描述
上式中, m m m 是允许修改的最大边数,且 N ( G , b ) = { ( u , v ) : u , v ∈ V , d ( G ) ( u , v ) ≤ b } N(G,b) = \{ (u,v):u,v \in V,{d^{(G)}}(u,v) \le b\} N(G,b)={(u,v):u,vV,d(G)(u,v)b} 定义 b b b 跳邻域图,其中 d ( G ) ( u , v ) ∈ { 1 , 2 , . . . } {d^{(G)}}(u,v) \in \{ 1,2,...\} d(G)(u,v){1,2,...} 是图 G G G 中两个节点之间的距离(几跳)。
  以在社交网络中为例,一个可疑的行为可能是在短时间内添加或删除许多朋友,或者与一个没有共同朋友的人建立友谊。方法(2)消除了上述两种可疑的行为,从而规范 g g g 的行为。

作为分层强化学习的攻击

  给定一个实例 ( G , c , y ) (G,c,y) (G,c,y) 和一个目标分类器 f f f,我们将攻击过程建模为一个有限时间视野马尔可夫决策过程 M ( m ) ( f , G , c , y ) {M^{(m)}}(f,G,c,y) M(m)(f,G,c,y)。这个 MDP 的定义如下:
操作  正如我们在第 3 节中提到的,攻击者可以添加或删除图中的边。因此,在时间步 t t t 的单个动作是 a t ∈ A ⊆ V × V {a_t} \in A \subseteq V \times V atAV×V。然而,简单地在 O ( ∣ V ∣ 2 ) O({\left| V \right|^2}) O(V2) 空间中执行操作的成本太高。我们很快就会展示如何使用分层操作来分解这个操作空间
状态  时间 t t t 的状态 s t {s_t} st 由元组 ( G ^ t , c ) ({\hat G_t},c) (G^t,c) 表示,其中 G ^ t {\hat G_t} G^t 是一个部分修改的图,对 G G G 进行了一些边的添加/删除。
奖励  攻击者的目的是欺骗目标分类器。因此,只有在 MDP 结束时才会收到非零奖励,为:
在这里插入图片描述
修改的中间步骤不会获得任何奖励。也就是说,对于所有 t = 1 , 2 , . . . , m − 1 , r ( s t , a t ) = 0 t = 1,2,...,m - 1,r({s_t},{a_t}) = 0 t=1,2,...,m1,r(st,at)=0 ,在PBA-C设置中,如果可以访问目标分类器的预测置信度,我们还可以使用 r ( G ~ , c ) = L ( f ( G ~ , c ) , y ) r(\tilde G,c) = L(f(\tilde G,c),y) r(G~,c)=L(f(G~,c),y) 作为奖励。
结束条件  一旦代理修改了 m m m 条边,该过程就会停止。为简单起见,我们关注固定长度的 MDP。在较少修改就足够的情况下,我们可以简单地让代理修改虚拟边
  根据上述设置,此MDP的轨迹示例如下: ( s 1 , a 1 , r 1 , . . . , s m , a m , r m , s m + 1 ) ({s_1},{a_1},{r_1},...,{s_m},{a_m},{r_m},{s_{m + 1}}) (s1,a1,r1,...,sm,am,rm,sm+1) ,其中, s 1 = ( G , c ) {s_1} = (G,c) s1=(G,c) s t = ( G ^ t , c ) , ∀ t ∈ { 2 , . . . , m } {s_t} = ({\hat G_t},c),\forall t \in \{ 2,...,m\} st=(G^t,c),t{2,...,m},以及 s m + 1 = ( G ~ , c ) {s_{m + 1}} = (\tilde G,c) sm+1=(G~,c)。最后一步将获得奖励 r m = r ( s m , a m ) = r ( ( G ~ , c ) ) {r_m} = r({s_m},{a_m}) = r((\tilde G,c)) rm=r(sm,am)=r((G~,c)) 并且所有其他中间奖励为0: r t = 0 , ∀ t ∈ { 1 , 2 , . . . , m − 1 } {r_t} = 0,\forall t \in \{ 1,2,...,m - 1\} rt=0,t{1,2,...,m1}。由于这是一个有限范围的离散优化问题,我们使用 Q-learning 来学习 MDP。在我们的初步实验中,我们还尝试了像 Advantage Actor Critic 这样的策略优化方法,但发现 Q-learning 工作得更稳定。所以下面我们重点关注 Q-learning 的建模。
  Q-learning是一种离策略(off-policy)优化方法,它直接拟合如下的贝尔曼最优方程:
在这里插入图片描述
这隐含地表明了贪婪策略:
在这里插入图片描述
其中, γ \gamma γ 固定为 1。请注意,对于大型图而言,直接在 O ( ∣ V ∣ 2 ) O({\left| V \right|^2}) O(V2) 空间中操作操作的成本太高。因此,我们建议将 a t ∈ V × V {a_t} \in V \times V atV×V 处的动作分解为 a t = ( a t ( 1 ) , a t ( 2 ) ) {a_t} = (a_t^{(1)},a_t^{(2)}) at=(at(1),at(2)),其中 a t ( 1 ) , a t ( 2 ) ∈ V a_t^{(1)},a_t^{(2)} \in V at(1),at(2)V 。因此,单个边动作 a t {a_t} at 被分解为这条边的两个端点。分层 Q 函数建模如下:
在这里插入图片描述
在上面的公式中, Q 1 ∗ {Q^{1*}} Q1 Q 2 ∗ {Q^{2*}} Q2 是实现原始 Q ∗ {Q^*} Q 的两个函数。仅当选择一对 ( a t ( 1 ) , a t ( 2 ) ) (a_t^{(1)},a_t^{(2)}) (at(1),at(2)) 时,才认为操作已完成。因此奖励只有在 a t ( 2 ) a_t^{(2)} at(2) 完成后才有效。很容易看出,这种分解具有与等式(8)中相同的最优结构,但执行一个动作只需要 O ( 2 × ∣ V ∣ ) = O ( ∣ V ∣ ) {O(2 \times \left| V \right|) = O(\left| V \right|)} O(2×V)=O(V) 复杂度。图 1 说明了此过程。
  进一步看一下方程(10),由于只有最后一个时间步的奖励不为零,并且给出了修改预算 m m m,因此我们可以将贝尔曼方程显式展开为:
在这里插入图片描述
为了使符号紧凑,我们仍然使用 Q ∗ = { Q t , 1 ∣ 2 ∗ } t = 1 m {Q^*} = \{ Q_{t,1|2}^*\} _{t = 1}^m Q={Qt,1∣2}t=1m 来表示 Q Q Q 函数。由于数据集中的每个样本都定义了一个 MDP,因此可以为每个 MDP M i ( m ) ( f , G i , c i , y i ) , i = 1 , . . . , N M_i^{(m)}(f,{G_i},{c_i},{y_i}),i = 1,...,N Mi(m)(f,Gi,ci,yi),i=1,...,N 学习单独的 Q Q Q 函数。然而,我们在这里关注更实际和更具挑战性的设置,其中仅学习一个 Q ∗ {Q^*} Q。因此,要求学习到的 Q 函数对所有 MDP 进行泛化或迁移:
在这里插入图片描述
其中, Q ∗ {Q^*} Q θ \theta θ 参数化。下面我们提出了这种 Q ∗ {Q^*} Q 的参数化(原文3.1.1),它可以推广到 MDP。

其他攻击方式

  RL-S2V( Q ∗ {Q^*} Q 的参数化)适合黑盒攻击和迁移。然而,对于不同的攻击场景,可能会首选其他算法。我们首先在第 3.2.1 节中介绍需要最少信息的 RandSampling;然后在Sec 3.2.2中,提出了白盒攻击GradArgmax;最后,GeneticAlg是一种进化计算,在第3.2.3节中提出。

随机采样

  这是最简单的攻击方法,从图 G G G 中随机添加或删除边。当抽样到一个边修改动作 a t = ( u , v ) {a_t} = (u,v) at=(u,v) 时,我们只有在它满足语义约束 I ( ⋅ , ⋅ , ⋅ ) I( \cdot , \cdot , \cdot ) I(,,) 时才会接受。这需要对攻击的最少信息。尽管简单,但有时也能得到很好的攻击率。

基于梯度的白盒攻击

  梯度已经成功地用于修改连续输入,例如,图像。然而,针对离散结构获取梯度并非易事。回想一下方程(3)中定义的一般迭代嵌入过程,我们为每对 ( u , v ) ∈ V × V (u,v) \in V \times V (u,v)V×V 关联一个系数 α u , v {\alpha _{u,v}} αu,v
在这里插入图片描述
α u , v {\alpha _{u,v}} αu,v=Ⅱ ( u ∈ N ( v ) ) (u \in N(v)) (uN(v))。也就是说, α \alpha α 本身就是二进制邻接矩阵。不难看出,上述公式与式(3)具有相同的效果。然而,这些附加系数给了我们关于每条边(存在或不存在)的梯度信息
在这里插入图片描述
为了对模型进行攻击,我们可以进行梯度上升,即 α u , v ← α u , v + η ∂ L ∂ α u , v {\alpha _{u,v}} \leftarrow {\alpha _{u,v}} + \eta \frac{{\partial L}}{{{\partial _{{\alpha _{u,v}}}}}} αu,vαu,v+ηαu,vL 。然而,攻击是在一个离散的结构上,其中只允许添加或删除 m m m 条边。这里我们需要解决一个组合优化问题:
在这里插入图片描述
我们简单地使用贪婪算法来解决上述优化问题。这里,给定一组系数 { α u t , v t } t = 1 m \{ {\alpha _{{u_t},{v_t}}}\} _{t = 1}^m {αut,vt}t=1m G G G 的修改是通过顺序修改图 G ^ t {\hat G_t} G^t 的边 ( u t , v t ) ({u_t},{v_t}) (ut,vt) 来执行的:
在这里插入图片描述
也就是说,我们修改最有可能导致目标发生变化的边。根据梯度的符号,我们添加或删除边。我们将其命名为 GradArgmax,因为它基于梯度信息进行贪婪选择。
  攻击流程如图2所示。由于这种方法需要梯度信息,因此我们将其视为白盒攻击方法。此外,梯度考虑了图中的所有节点对,计算成本至少为 O ( ∣ V ∣ 2 ) O({\left| V \right|^2}) O(V2),不包括等式(18)中梯度的反向传播。如果没有进一步的近似,这种方法无法扩展到大图。
在这里插入图片描述

遗传算法

  进化计算已成功应用于许多零阶优化场景,包括神经结构搜索和图像的对抗攻击。在这里,我们提出了一种实现遗传算法类型的黑盒攻击方法。给定一个实例 ( G , c , y ) (G,c,y) (G,c,y) 和目标分类器 f f f,该算法涉及五个主要组成部分,如下所述:
总体:总体是指候选解的集合。
适应度:当前群体中的每个候选解决方案都会获得一个衡量解决方案质量的分数。我们使用目标模型的损失函数作为得分函数。一个好的攻击解决方案应该会增加这种损失。由于适应度是一个连续分数,因此它不适用于仅可访问分类标签的 PBA-D 设置。
选择:给定当前种群的适应度分数,我们可以进行加权采样或贪心选择来选择下一代的“繁殖”种群 P b ( r ) P_b^{(r)} Pb(r)
交叉:选择 P b ( r ) P_b^{(r)} Pb(r) 后,我们随机选择两个候选图并通过混合这两个候选的边来进行交叉。
突变:突变过程也是受生物学启发的。
在这里插入图片描述
在这里插入图片描述

实验

  对于 GeneticAlg,我们设置种群大小 ∣ P ∣ = 100 \left| P \right| = 100 P=100,轮数 R = 10 R = 10 R=10。我们将交叉率和变异率调整为{0.1,…,0.5}。对于RL-S2V,我们调整其S2V模型的传播次数K={1,…,5}。GradArgmax 和 RandSampling 没有参数调整。

图攻击

  三分类图任务,其中每个类包含 5,000 个图,共15,000个图。因此图中最多可以有 3 个分量。请参见图 4 进行说明。数据集分为训练集和两个测试集。测试集 I 包含 1,500 个图,而测试集 II 包含 150 个图。每个集合包含来自不同类的相同数量的实例。
在这里插入图片描述
  我们选择 structure2vec 作为攻击的目标模型。表 2 显示了不同设置的结果。对于测试集 I,我们可以看到 Structure2vec 在区分连接组件的数量方面实现了非常高的准确度。在大多数情况下,增加 K 似乎可以提高泛化能力。然而,我们可以看到,在实际的黑盒攻击场景下,GeneticAlg 和 RL-S2V 可以将准确率降低至 40% ∼ 60%。在攻击图分类算法时,GradArgmax 似乎不是很有效。
  对于测试集 II 上的限制黑盒攻击(参见表 2 的下半部分),要求攻击者在不访问目标模型的情况下提出对抗性样本。由于 RL-S2V 是在测试集 I 上学习的,因此它能够将其学习的策略转移到测试集 II。这表明目标分类器犯了某种形式的一致错误。
在这里插入图片描述
  该实验表明,(1)监督图问题确实存在对抗性例子;(2)具有良好泛化能力的模型仍然会遭受对抗性攻击; (3) RL-S2V 可以学习可转移的对抗策略来攻击未见过的图。

节点级攻击

  在这个实验中,我们想要检查对节点分类问题的对抗性攻击。与第 4.1 节不同,这里的设置是直通式的,在训练期间也可以看到测试样本(但看不到它们的标签)。这里我们使用四个真实世界的数据集,即 Citeseer、Cora、Pubmed 和 Finance。前三个是通常用于节点分类的小规模引文网络,其中每个节点都是具有相应词袋特征的论文。最后一个是一个大规模数据集,包含电子商务一天内的交易,其中节点集包含买家、卖家和信用卡。要求分类器区分正常交易和异常交易。每个数据集的统计数据如表3所示。节点还包含不同维度的特征。我们使用 GCN 作为攻击的目标模型。这里的“小修改”是用来规范攻击者的。也就是说,给定图 G 和目标节点 c,对抗样本仅限于删除节点 c 2 跳内的单条边
在这里插入图片描述
  结果如表4所示。我们可以看到,虽然删除单条边是对图可以做的最小修改,但在这些小图上的攻击率仍然约为 10%,在 Finance 数据集中为 4%。我们还进行了详尽的攻击作为健全性检查,这是任何算法在攻击预算下可以做到的最好的。如果允许修改两条边,分类器准确率将降低至 60% 或更低。然而,考虑到图中的平均度并不大,删除两条或更多条边将违反“小修改”约束。我们需要小心,只创建对抗性样本,而不是实际更改该样本的真实标签。
在这里插入图片描述
  在这种情况下,GradArgmax 表现得很好,这与图级攻击的情况不同。这里关于邻接矩阵 α \alpha α 的梯度不再被平均,这使得更容易区分有用的修改。对于测试集 II 上的限制黑盒攻击,RL-S2V 仍然学习泛化到未见过的样本的攻击策略。尽管我们在现实数据集中没有黄金分类器(替代模型),但提出的对抗样本很可能是有效的:(1)结构修改微小且在2-hop以内; (2)我们没有修改节点特征。

对抗样本的检查

  在本节中,我们将不同攻击者提出的对抗样本可视化。RL-S2V针对图级分类问题提出的解决方案如图5所示。真实标签为 1, 2, 3,而目标分类器错误地预测为 2, 1, 2。在图 5(b) 和 © 中,RL 代理连接两个相距 4 跳的节点(添加红边之前)。这表明,虽然目标分类器struct2vec是用K=4训练的,但它并没有有效地捕获4跳信息。图 5(a) 还显示,即使连接距离只有 2 跳的节点,分类器也会出错。
在这里插入图片描述
  图6展示了GradArgmax提出的解决方案。橙色节点是攻击的目标节点。GradArgmax 建议添加蓝色的边,删除黑色的边。黑色节点与橙色节点有相同的节点标签,而其他节点则没有。边缘越厚,梯度的大小就越大。图 6(b) 删除了一个具有相同标签的邻居,但仍然有其他黑色节点连接。在这种情况下,图卷积网络(GCN)表现出过度敏感。图中 6(c) 图中的错误是合理的,因为虽然红色边没有连接具有相同标签的两个节点,但它连接到了一个距离为 2 跳的同一类别的大型节点社区。在这种情况下,GCN 的预测是合理的。
在这里插入图片描述

防御攻击

  与图像不同,由于节点数目有限,这里可能的图结构数量也是有限的。因此,通过将对抗样本重新添加到进一步的训练中,可以期望提高目标模型的鲁棒性。例如,在第4.1节的实验中,添加对抗样本进行训练等同于增加训练集的大小,这肯定是有益的。因此,我们在这里寻求使用一种经济的对抗训练方法——在训练过程中简单地执行边删除以进行防御
  训练期间丢弃边与 Dropout 不同。Dropout 对隐藏层中的神经元进行操作,而边 drop 则修改离散结构。它也不同于简单地删除整个隐藏向量,因为删除一条边可能会影响多个边。例如,GCN 计算归一化图拉普拉斯算子。因此,删除单条边后,需要重新计算某些条目的归一化图拉普拉斯算子。这种方法与 Hamilton 等人的方法类似,他在训练期间对固定数量的社区进行采样以提高效率。在这里,我们在每个训练步骤中全局随机丢弃边
  对抗训练后的新结果如表 5 所示。从表中我们可以看出,虽然目标模型的准确率保持相似,但各种方法的攻击率下降了约1%。尽管改进的规模并不显着,但这种廉价的对抗性训练显示出了一定的有效性。
在这里插入图片描述

结论

  在本文中,我们研究了图结构化数据的对抗性攻击。为了执行有效的攻击,我们针对三种不同的攻击设置分别提出了三种方法,即 RL-S2V、GradArgmax 和 GeneticAlg。我们证明了一系列 GNN 模型很容易受到此类攻击。通过可视化攻击样本,我们还可以检查目标分类器。我们还通过实验讨论了防御方法。我们未来的工作包括开发更有效的防御算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/191262.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】Array VPN任意文件读取漏洞

漏洞描述 华耀(中国)科技有限公司(简称:Array)于2003年创建于北京,是优秀的网络功能平台解决方案提供商,也是应用交付解决方案、移动应用接入(SSL VPN)解决方案的全球领导者。华耀现有员工200余人,其中研发团队占到100余人,总部位于北京。并在北京、上海、广州、杭…

知识点小总结

‘Integer(int)‘ 已经过时了 https://blog.csdn.net/qq_43116031/article/details/127793512 解决Java中的“找不到符号“错误 解决Java中的“找不到符号“错误_java: 找不到符号_很酷的站长的博客-CSDN博客 可右键打开 错误: 编码 UTF-8 的不可映射字符 错误: 编码 UTF-8 …

1603. 整数集合划分(2016年408数据结构算法题)

一、题目 1603. 整数集合划分https://www.acwing.com/problem/content/description/1605/ 二、算法的基本设计思想 由题意知,将最小的 个元素放在 中,其余的元素放在 中,分组结果即可满足题目要求。仿照快速排序的思想,基于枢…

面向对象编程:Rust的面向对象特性

欢迎关注我的公众号lincyang新自媒体,回复关键字【程序员经典书单】,领取程序员的100本经典书单 大家好!我是lincyang。 今天我们将深入探讨Rust语言中的面向对象编程(OOP)特性,并将其与其他流行编程语言进…

C语言之指针知识点总结

C语言之指针知识点总结 文章目录 C语言之指针知识点总结1. 初识指针1.1 取地址操作符 &1.2 指针变量1.3 解引用操作符 *1.4 指针变量1.4.1 大小1.4.2 指针类型的意义 1.5 void*指针1.6 const关键字1.61 const修饰变量1.6.2 const修饰指针变量 1.7 指针的运算1.7.1 指针-整数…

微信小程序便民小工具源码

微信小程序便民小工具源码,包含身材计算,房贷计算器,工资计算器,血型计算器,进制计算器,量角器,计数器等便民工具。 微信扫一扫即可预览 微信扫一扫即可预览 下载链接:https://www.ym4j.com/program/7525

(二) Windows 下 Sublime Text 3 安装离线插件 Anaconda

1 下载 Sublime Text 3 免安装版 Download - Sublime Text 2 下载 Package Control,放到 Sublime Text Build 3211\Data\Installed Packages 目录下。 Installation - Package Control 3 页面搜索 anaconda anaconda - Search - Package Control Anaconda - Pac…

4. 标准 IO 库

4. 标准 IO 库 1. 标准 IO 简介2. FILE 指针3. 标准输入、标准输出和标准错误4. fopen() 和 flose()5. fread() 和 fwrite()6. fseek 定位7. 检查或复位状态7.1 feof()7.2 ferrof()7.3 clearerr() 8. 格式化 IO8.1 格式化输出8. 2 格式化输入 9. IO 缓冲9.1 文件 IO 的内核缓冲…

坚鹏:中国人寿临沂公司当下中国经济形势与寿险业发展机遇培训

中国人寿保险(集团)公司属国家大型金融保险企业,2016年中国人寿入主广发银行,开启保险、投资、银行三大板块协同发展新格局。2022年,集团公司合并营业收入站稳万亿平台;合并总资产突破6万亿元大关。中国人寿…

数据结构与算法Java版本单元测验题

1.【实验题 2-2】实现以下对单链表的操作,题意和算法描述见《习题解答》图 2-7。 //将单链表 list 逆转,将各结点的 next 指向其前驱。泛型方法,返回值类型前声明类型参数 T public static void reverse(SinglyList list) 【思考题 2-6】实现…

MySQL进阶知识

目录 MySQL的Linux安装 存储引擎 MySQL的体系结构 存储引擎简介 存储引擎特点 InnoDB 逻辑存储结构 MyISAM Memory 对比 存储引擎选择 索引 介绍 索引结构 BTree索引 Hash索引 索引分类 索引语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 expla…

VUE简易购物车程序

目录 效果预览图 完整代码 效果预览图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

【数据结构初阶】树,二叉树

树&#xff0c;二叉树 1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构2.1概念2.2现实中的二叉树2.3 特殊的二叉树2.4 二叉树的性质2.5 二叉树的存储结构 1.树概念及结构 1.…

开发知识点-ArkTS-鸿蒙开发-Typescript

Typescript IED IED https://developer.harmonyos.com/cn/develop/deveco-studio/#download

我的第一次SACC之旅

今年有很多第一次&#xff0c;第一次作为“游客”参加DTCC&#xff08;中国数据库大会&#xff09;&#xff0c;第一次作为讲师参与ACDU中国行&#xff08;成都站&#xff09;&#xff0c;第一次参加OB年度发布会&#xff08;包含DBA老友会&#xff09;&#xff0c;而这次是第一…

弹窗concrt140.dll丢失的解决方法,深度解析concrt140.dll丢失的原因

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示或者系统崩溃的情况。其中&#xff0c;concrt140.dll是一个常见的错误提示&#xff0c;这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题&#xff0c;本文将介绍5种详细的解决方法&#xff0c;帮助您恢…

SpringBoot进阶——解释springboot的自动配置原理

相关的博客文章如下&#xff1a; SpringBootApplication注解的理解——如何排除自动装配 & 分布式情况下如何自动加载 & nacos是怎么被发现的 引出 1.spring.factories文件存储能够进行自动配置的Bean信息&#xff1b; 2.EnableAutoConfiguration关闭数据源的自动配置…

SpringBoot——自定义start

优质博文&#xff1a;IT-BLOG-CN 一、Mybatis 实现 start 的原理 首先在写一个自定义的start之前&#xff0c;我们先参考下Mybatis是如何整合SpringBoot&#xff1a;mybatis-spring-boot-autoconfigure依赖包&#xff1a; <dependency><groupId>org.mybatis.spr…

【Linux】一文看懂基础IO并模拟实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 本篇导航 0. C语言的文件接口1. 系统的文件接口1.1 open打开文件1.2 write写入文件 2. 文件系统介绍2.1 如何理解一切皆文件? 3. 输入输…

Pyqt5设计师中如何插入图片

问题描述&#xff1a;Pyqt5设计师中如何插入图片。使用Pyqt5做一个示意图界面&#xff0c;是一个”假界面“。 问题解决&#xff1a; 第一步&#xff0c;从Widget Box中拖入一个Label&#xff0c;具体如下图所示。 第二步&#xff0c;在右侧属性编辑器→QLabel→pixmap中选择…
最新文章