Adversarially Robust Neural Architecture Search for Graph Neural Networks

Adversarially Robust Neural Architecture Search for Graph Neural Networks----《面向图神经网络的对抗鲁棒神经架构搜索》

摘要

  图神经网络(GNN)在关系数据建模方面取得了巨大成功。尽管如此,它们仍然容易受到对抗性攻击,这对于将 GNN 应用到风险敏感领域来说是巨大的威胁。现有的防御方法既不能保证面对新数据/任务或对抗性攻击的性能,也不能提供从架构角度理解 GNN 鲁棒性的见解。神经架构搜索(NAS)有望通过自动化GNN架构设计来解决这个问题。然而,当前的图 NAS 方法缺乏稳健的设计,并且容易受到对抗性攻击。为了应对这些挑战,我们提出了一种新颖的 GNN 鲁棒神经架构搜索框架(G-RNA)。具体而言,我们通过在搜索空间中添加图结构掩码操作来设计消息传递机制的强化搜索空间,其中包含各种防御操作候选,使我们能够搜索防御性的GNN。此外,我们定义了一个鲁棒性度量来指导搜索过程,有助于筛选出具有鲁棒性的架构。通过这种方式,G-RNA 有助于从架构角度理解 GNN 的鲁棒性,并有效地搜索最佳的对抗性鲁棒 GNN。在基准数据集上进行的大量实验结果显示,G-RNA在对抗攻击下显著优于手动设计的鲁棒性GNN和基准图NAS,分布提高了12.1%到23.4%。

引言

  图神经网络以建模关系数据而闻名,并应用于各种下游实际应用,如推荐系统[37]、知识图谱补全[25]、交通预测[6]、药物生产[45]等。与此同时,与许多其他深度神经网络一样,GNN 因其在对抗性攻击下的脆弱性而臭名昭著[33],特别是在金融和医疗保健等风险敏感领域。由于 GNN 通过聚合邻域信息来对节点表示进行建模,因此攻击者可以通过扰乱节点特征和操纵节点之间的关系来执行攻击[55]。例如,在用户-用户交互图中,欺诈者可能故意与其他重要/虚假用户交互,以误导推荐系统或愚弄信用评分模型[36]。
  人们开发了一系列针对图数据的防御方法来减少对抗性攻击的危害。基于预处理的方法(如 GCN-SVD [8] 和 GCN-Jaccard [38])在训练 GNN 之前进行结构清理,而基于注意力的模型(如 RGCN [51] 和 GNN-Guard [46])学会减少对潜在扰动边的关注。然而,这些方法依赖于攻击者的先验知识。例如,GCN-SVD利用了在Nettack[53]之后图结构的高秩倾向,而GCN-Jaccard则依赖于对图结构的同质性假设。因此,当前的方法可能无法适应遇到新数据和任务或提出新攻击方法时的场景。此外,以前的方法很大程度上忽视了 GNN 架构在防御对抗性攻击中的作用,缺乏理解 GNN 鲁棒性的架构视角
  为了减少人类在神经架构设计方面的工作量,神经架构搜索(NAS)在研究领域和工业界变得越来越流行。尽管 NAS 具有自动化鲁棒 GNN 设计的潜力,但现有的图 NAS 方法 [1,10,24,49,50] 不可避免地容易受到对抗性攻击,因为它们不考虑对抗性设置并且缺乏鲁棒性设计 [48]。因此,如何采用图 NAS 来搜索各种环境下的最佳鲁棒 GNN,同时从架构角度填补理解 GNN 鲁棒性的空白,仍然是一个巨大的挑战。
  为了解决上述问题并从架构的角度理解GNN的鲁棒性,我们提出了一种新颖的图神经网络(GNN)鲁棒性神经架构搜索框架,称为G-RNA。据我们所知,这是第一次尝试在鲁棒GNN中利用强大的图神经网络架构搜索。具体来说,我们首先设计一个具有图结构掩码操作的新颖、富有表现力且鲁棒的搜索空间。图1中的绿色部分显示了细粒度的搜索空间。图结构掩码操作涵盖了图结构的重要鲁棒性要素,并且可以恢复各种现有的防御方法。我们以我们设计的搜索空间为基础训练超级网络[14],采用单路径一次性的方式。其次,我们提出了一个鲁棒性指标,可以正确衡量架构的稳健性。基于干净的图,攻击代理会生成多个对抗样本。我们使用我们的鲁棒性指标以及干净的和生成的对抗性样本来搜索鲁棒的 GNN。图 1 中的黄色部分显示了鲁棒性度量的简单说明。在使用进化算法搜索最佳鲁棒 GNN 架构后,我们从头开始重新训练首选的鲁棒架构并进行评估。我们的贡献总结如下:

  • 我们为 GNN 开发了一个鲁棒的神经架构搜索框架,据我们所知,该框架首次考虑了图神经架构搜索中的鲁棒设计。基于这个框架,我们可以从架构的角度理解 GNN 的对抗鲁棒性。
  • 我们通过设计防御操作候选者,在面对扰动图时自动选择最合适的防御策略,提出了一种新颖的鲁棒搜索空间。此外,我们设计了鲁棒性度量,并采用进化算法和单路径一次性图 NAS 框架来搜索最佳鲁棒架构。
  • 大量的实验结果证明了我们提出的方法的有效性。在严重中毒攻击下的基准数据集上,G-RNA 的性能比最先进的稳健 GNN 提高了 12.1% 至 23.4%。

相关工作

图数据的对抗鲁棒性

  尽管 GNN 在各种应用中取得了广泛的成功 [43,44,47],但 GNN 很容易受到对抗性攻击 [2-4,33,39,53],即对图的轻微扰动可能会导致性能急剧下降。根据文献,对抗性攻击根据攻击者的知识(白盒攻击和黑盒攻击)、扰动类型(结构攻击和特征攻击)、攻击阶段(逃避攻击和中毒攻击)和目标节点(目标攻击和非目标攻击)有不同的分类。
  为了应对对抗性攻击,人们提出了几种防御模型来增强 GNN 的鲁棒性。图预处理方法在 GNN 模型训练之前识别并纠正潜在的结构扰动。例如,在特征平滑度的假设下,GCN-Jaccard [38] 删除了 Jaccard 相似度较低的边缘。观察 Nettack 下邻接矩阵的高秩趋势,GCN-SVD [8]通过其低秩近似来重建邻接矩阵。图注意力方法的目的是在易受影响的边/特征上学习更少的注意力权重。例如,RGCN [51]使用高斯分布进行隐藏层节点表示,并根据其方差计算注意力。 Pro-GNN [20]通过保持低秩和稀疏邻接矩阵以及特征平滑度来联合学习图结构和模型参数。GNN-Guard [46] 学会更多地关注相似节点之间的边并修剪不相关节点之间的边。VPN [19] 通过考虑 r-hop 邻居的图供电重新加权边来进行防御。此外,图证明鲁棒性方法[18, 35]为图在扰动预算下的鲁棒性认证提供了理论保证。然而,这个分支超出了本工作的范围,我们将留作比较未来的工作。
  之前的所有研究都严重依赖手动设计,因此无法适应新的数据、任务或对抗性攻击。此外,现有方法忽略了 GNN 架构固有的鲁棒性。相反,我们提出的方法在图结构上专门设计了搜索空间,可以针对不同的数据和任务自动搜索最佳的鲁棒 GNN。

图神经架构搜索

  神经架构搜索(NAS)是一个蓬勃发展的研究方向,它自动搜索高性能神经架构并减少人工设计架构的人力。由于非欧几里得图属性和特殊的神经架构,图数据上的 NAS 具有挑战性 [42, 48]。GraphNAS[10]使用循环网络作为控制器来生成GNN架构,并采用强化学习来搜索最优架构。为了进行有效的搜索,可微 NAS 方法 [14, 26] 联合优化模型权重和架构参数。 DSS [24]提出了一种可微的一次性图 NAS 并动态更新搜索空间。SANE [49] 还利用可微搜索算法,并使用跳跃知识网络(JKNet)主干构建 GNN 架构 [41]。GNAS [1] 使用设计的 GNN 范式重建 GNN,并学习最佳消息传递深度。GASSO [30]使用图结构学习作为可微架构搜索过程中的去噪过程。图NAS还用于复杂的图数据,例如异构图[7]和时间图[29]。然而,现有的图 NAS 方法没有考虑对抗性攻击的鲁棒性

鲁棒的神经架构搜索

  鲁棒神经架构搜索利用 NAS 来搜索对抗性鲁棒神经架构。由于在图数据上没有鲁棒 NAS 的相关工作,我们回顾了两篇关于计算机视觉的相关论文。RobNets [13] 是第一个探索架构鲁棒性的工作。通过一次性 NAS,RobNets 通过对抗性训练对候选架构进行微调,然后采样更稳健的架构。DSRNA [16]提出了两种可微的度量,有助于通过可微的搜索算法搜索鲁棒的架构。我们的工作既不是基于对抗性训练,也不是采用持续松弛的架构参数。总而言之,我们的工作的不同之处在于,我们考虑为图数据量身定制的不同搜索空间并利用不同的搜索算法

准备工作

图神经网络

  令 G = ( A , X ) G = (A,X) G=(A,X) 表示具有 N N N 个节点的图,其中 A ∈ R N × N A \in {R^{N \times N}} ARN×N 是邻接矩阵, X ∈ R N × D 0 X \in {R^{N \times {D_0}}} XRN×D0 是相应的特征矩阵。对于节点 i i i,其邻域表示为 N ( i ) {\rm N}(i) N(i)
  图神经网络将图数据作为输入和输出节点/图表示来执行节点分类和图分类等下游任务。通常,对于具有 C C C 个标签的节点分类任务,我们计算:

z i = ( f α ( A , X ) ) i {z_i} = {({f_\alpha }(A,X))_i} zi=(fα(A,X))i (1)

其中, z i ∈ R C {z_i} \in {R^C} ziRC 是节点 i i i 的预测向量, f α {f_\alpha } fα 表示基于架构 α \alpha α 的图神经网络。GNN 的设计可以分为层内设计、层间设计和学习配置[42]。层内设计通常遵循消息传递机制[11]:通过聚合邻域信息来更新节点表示。GNN 中更新节点表示的一般公式记为:

h i ( l ) = σ ( W ( l ) C o m b ( h i ( l − 1 ) , A g g r ( e i j ( l ) h j ( l − 1 ) , j ∈ N ~ ( i ) ) ) ) h_i^{(l)} = \sigma ({W^{(l)}}Comb(h_i^{(l - 1)},Aggr(e_{ij}^{(l)}h_j^{(l - 1)},j \in \tilde {\rm N}(i)))) hi(l)=σ(W(l)Comb(hi(l1),Aggr(eij(l)hj(l1),jN~(i)))) (2)

其中, h i ( l ) h_i^{(l)} hi(l) 表示第 l l l 个隐藏层中节点 i i i 的节点表示, e i j ( l ) e_{ij}^{(l)} eij(l) 是节点 i i i j j j 之间的相关系数, N ~ ( i ) = { i } ∪ N ( i ) \tilde {\rm N}(i) = \{ i\} \cup {\rm N}(i) N~(i)={i}N(i) 表示具有自环的节点 i i i 的邻域, A g g r ( ⋅ ) Aggr( \cdot ) Aggr() 是聚合邻域信息的函数, C o m b ( ⋅ ) Comb( \cdot ) Comb() 旨在结合自身信息和邻居信息, σ ( ⋅ ) \sigma ( \cdot ) σ() 是激活函数。
  除了GNN层的设计之外,如何连接不同的隐藏层也很关键。一些 GNN 直接使用最后一个隐藏层输出作为预测,同时也可以添加预处理层、后处理层和跳过连接 [22]。至于学习配置,它们是用于训练 GNN 的超参数,例如学习率、优化器等。

图神经架构搜索

一般来说,图 NAS 可以表述为以下双层优化问题:

α ∗ = a r g max ⁡ α ∈ O A c c v a l ( W ∗ ( α ) , α ) {\alpha ^*} = \mathop {arg\max }\limits_{\alpha \in {\rm O}} Ac{c_{val}}({W^*}(\alpha ),\alpha ) α=αOargmaxAccval(W(α),α) (3)

W ∗ ( α ) = arg ⁡ min ⁡ W L t r a i n ( W , α ) {W^*}(\alpha ) = \mathop {\arg \min }\limits_W {L_{train}}(W,\alpha ) W(α)=WargminLtrain(W,α) (4)

其中方程 (3) 是在搜索空间 O {\rm O} O 中寻找最佳架构 α ∗ {\alpha ^*} α 的上层优化问题,等式 (4) 是计算某一特定架构 α \alpha α 的最佳模型权重 W W W 的下层优化问题。 A c c v a l Ac{c_{val}} Accval 表示验证集上的预测精度, L t r a i n {L_{train}} Ltrain 是训练集上的分类交叉熵损失。
  现有的图 NAS 方法 [1,10,12,48,50] 按照等式(2)中的消息传递方案设计其搜索空间。NAS 方法可以搜索式(2)中的所有组件, 例如聚合函数、相关系数和激活函数以及隐藏层大小和学习配置等超参数。在本文中,我们主要考虑寻找架构设计。

鲁棒图神经架构搜索

  在本节中,我们首先阐述图鲁棒 NAS 的问题。然后,我们介绍了新颖且富有表现力的搜索空间以及防御性操作候选者,即图结构掩码。基于设计的搜索空间,我们构建了一个包含所有可能架构的超网,并以单路径一次性方式对其进行训练。最后,我们介绍了我们提出的鲁棒性度量并描述了利用进化算法的搜索过程。

问题表述

  给定搜索空间 O {\rm O} O,我们的目标是找到具有 高预测精度高对抗鲁棒性 的最佳架构 α ∗ ∈ O {{\alpha ^*} \in {\rm O}} αO。我们将 GNN 的鲁棒神经架构搜索问题表述为:

α ∗ = a r g max ⁡ α ∈ O A c c v a l ( α ) + λ R ( α ) {\alpha ^*} = \mathop {arg\max }\limits_{\alpha \in {\rm O}} Ac{c_{val}}(\alpha ) + \lambda R(\alpha ) α=αOargmaxAccval(α)+λR(α)

其中, R ( ⋅ ) R( \cdot ) R() 是鲁棒性度量, λ \lambda λ 是平衡模型精度和鲁棒性的超参数。

鲁棒 GNN 的搜索空间

  我们遵循消息传递机制设计了一个细粒度的搜索空间。总的来说,我们的 GNN 架构中有六个可调整的组件:图结构掩码,节点相关系数,邻居聚合器,组合函数,跳跃连接和层聚合器。前四个组件属于层内操作,其余两个组件属于层间操作。

层内操作

  在第 l l l 层消息传递中,首先采用防御操作 D ∈ O D D \in {{\rm O}_D} DOD 来构建图结构掩码并重建图结构:

M ( l ) = D ( A ( l − 1 ) ) , A ( l ) = A ⊙ M ( l ) {{\rm M}^{(l)}} = D({{\rm A}^{(l - 1)}}),{{\rm A}^{(l)}} = {\rm A} \odot {{\rm M}^{(l)}} M(l)=D(A(l1)),A(l)=AM(l)

其中, M ( l ) = { m i j } {{\rm M}^{(l)}} = \{ {m_{ij}}\} M(l)={mij} 是图结构掩码矩阵, A ( l ) {{\rm A}^{(l)}} A(l) 表示第 l l l 层中的图结构。 ⊙ \odot 是 Hadamard 积, A ( 0 ) = A {{\rm A}^{(0)}} = {\rm A} A(0)=A。每个元素 m i j ∈ [ 0 , 1 ] {m_{ij}} \in [0,1] mij[0,1] 是节点 i i i 和节点 j j j 之间的掩码分数,其中 m i j = 0 {m_{ij}} = 0 mij=0 表示删除这条边, m i j = 1 {m_{ij}} = 1 mij=1 表示对原始边没有修改。防御操作的目的是为潜在的扰动边分配更少的权重。
  受到当前防御方法[33]成功的启发,我们总结了图结构操作的鲁棒性属性,并相应地在我们的搜索空间中设计了代表性的防御操作。这样,我们就可以在面对扰动图时选择最合适的防御策略。据我们所知,这是第一次为了增强 GNN 的鲁棒性而专门设计搜索空间。具体来说,我们在搜索空间中包含五个图结构掩码操作。(1)Identity保持与前一层相同的图结构。(2)低秩近似 (LRA) 根据前一层邻接矩阵的奇异值分解的前 r r r 个分量重建第 l l l 层中的邻接矩阵。(3)节点特征相似度(NFS)删除节点特征之间具有较小 Jaccard 相似度的边。(4)邻居重要性估计 (NIE) 通过基于量化节点之间相关性的剪枝策略来更新掩码值。(5)Variable Power Operator (VPO)使用影响力强度的参数对原始邻接矩阵加权,形成一个变幂图。
  此外,更多像图结构学习[52]这样的操作可以集成到图结构掩码操作中。掩码操作的公式如表1所示。我们将LRA和NFS限制在第一层(仅用于预处理),并在所有层中利用其他三个操作。值得一提的是,图结构掩模候选可以很容易地扩展到处理图结构的其他方法,例如去噪方法。掩码操作不会阻塞后面的消息传递过程。它们可以被视为与相关系数等其他运算的正交运算。
在这里插入图片描述
  对于层内的其他三个组成部分,我们对相关系数的选择遵循附录表 4 中总结的文献。基于掩码图结构 A ( l ) {{\rm A}^{(l)}} A(l) 和相关系数 { e i j ( l ) } \{ e_{ij}^{(l)}\} {eij(l)},邻居聚合器 A g g r ∈ O a g g r Aggr \in {{\rm O}_{aggr}} AggrOaggr 用于聚合邻居表示。然后,组合函数 C o m b ∈ O c o m b {Comb} \in {{\rm O}_{comb}} CombOcomb 合并自身信息和邻居信息。在这里,我们探索了两种结合自身信息和邻居信息的典型方法,即 GraphSAGE [15] 和 GIN [40]。GraphSAGE 对节点表示和邻居信息进行不同的特征转换。GIN 首先对自身信息和邻居信息进行加权求和,然后使用多层感知器来提高 GNN 的表达能力。组合消息后,应用激活函数 σ ( ⋅ ) \sigma ( \cdot ) σ()。总的来说,第 l l l 层中节点 i i i 的隐藏表示计算为:

h i ( l ) = σ ( W ( l ) C o m b ( h i ( l − 1 ) , A g g r ( m i j ( l ) e i j ( l ) h j ( l − 1 ) , j ∈ N ~ ( i ) ) ) ) h_i^{(l)} = \sigma ({W^{(l)}}Comb(h_i^{(l - 1)},Aggr(m_{ij}^{(l)}e_{ij}^{(l)}h_j^{(l - 1)},j \in \tilde {\rm N}(i)))) hi(l)=σ(W(l)Comb(hi(l1),Aggr(mij(l)eij(l)hj(l1),jN~(i))))

节点表示被初始化为节点特征,即 h ( 0 ) = X {h^{(0)}} = X h(0)=X

层间操作

  遵循 JK-Net [41] 和 SANE [49] 的思想,我们通过层聚合器 L a y e r _ A g g r ∈ O l a y e r Layer\_Aggr \in {{\rm O}_{layer}} Layer_AggrOlayer 聚合中间层中的节点表示。跳跃操作 S k i p ∈ O s k i p Skip \in {{\rm O}_{skip}} SkipOskip 决定了连接到最终层聚合器的跳跃连接。

z i = L a y e r _ A g g r ( S k i p ( h i ( 1 ) ) , . . . , S k i p ( h i ( L ) ) ) {z_i} = Layer\_Aggr(Skip(h_i^{(1)}),...,Skip(h_i^{(L)})) zi=Layer_Aggr(Skip(hi(1)),...,Skip(hi(L)))

其中 L L L 是消息传递层的最大数量。使用 JK-Net 主干,我们通过设置最大深度来选择最佳模型深度。例如,如果我们设置 L = 4 L = 4 L=4 并且跳过操作为[Idenity,Zero,Idenity,Zero],则选择的最佳消息传递层数为3。获得最终的节点表示后,我们添加几个全连接层来进行分类。
  我们在表 2 中总结了所有组件及其候选操作。我们的搜索空间富有表现力,更重要的是,提高了防御能力。如附录表 5 所示,我们的搜索空间可以恢复一些经典的手动设计的 GNN 和最先进的鲁棒 GNN,例如 GCN-SVD、GCN-Jaccard、GNN-Guard 和 VPN。
在这里插入图片描述

超网络训练

  利用所提出的搜索空间,我们构建了一个超级网络并以单路径一次性方式对其进行训练[14]。我们构建的超网络包含基于我们的搜索空间的所有可能的架构,也称为一次性模型。在超网络中,每个架构都表现为单一路径。与 GNAS [1] 或 DSS [24] 等对架构参数使用连续松弛的图 NAS 方法不同,我们通过统一单路径采样 [14] 来训练超网。在训练过程中,我们每次都会统一采样一条路径来更新权重。之后,我们通过进化算法搜索最佳架构,而无需进一步的训练步骤。

计算鲁棒性

  这一部分将介绍如何使用进化算法和鲁棒性度量来衡量架构的鲁棒性以及具体的搜索过程。直观地说,在面对各种扰动的图数据时,鲁棒的 GNN 的性能不应该下降太多。令 T Δ {{\rm T}_\Delta } TΔ 表示具有扰动预算 Δ \Delta Δ 的图数据的攻击者。我们将鲁棒性指标定义为:

R ( A , f ) = − E A ′ [ 1 N ∑ i = 1 N D K L ( f ( A ) i ∣ ∣ f ( A ′ ) i ) ] , A ′ = T Δ ( A ) R(A,f) = - {{\rm E}_{A'}}\left[ {\frac{1}{N}\sum\limits_{i = 1}^N {{D_{KL}}(f{{(A)}_i}||f{{(A')}_i})} } \right],A' = {{\rm T}_\Delta }(A) R(A,f)=EA[N1i=1NDKL(f(A)i∣∣f(A)i)],A=TΔ(A) (9)

其中, f f f 表示 GNN, f ( A ) i {f{{(A)}_i}} f(A)i 是节点 i i i 的概率预测向量, D K L ( p ∣ ∣ q ) = ∑ i p i log ⁡ p i q i {D_{KL}}(p||q) = \sum\nolimits_i {{p_i}\log \frac{{{p_i}}}{{{q_i}}}} DKL(p∣∣q)=ipilogqipi 表示两个分布 p p p q q q 之间的 Kullback-Leibler (KL) 散度。在这里,我们使用 KL 距离来测量给定干净数据和扰动数据的预测差异。我们的攻击代理 T {\rm T} T 的选择从简单的随机攻击 [5] 或 DICE [54] 到高级攻击方法如 Mettack [54] 或 Nettack [53]。在相同的扰动预算 Δ \Delta Δ 内,我们的攻击代理生成 T T T 个扰动图结构 { A t ′ } t = 1 T \{ {A'_t}\} _{t = 1}^T {At}t=1T。等式 (9) 可近似为:

R ( A , f ) ≈ − 1 T N ∑ t = 1 T ∑ i = 1 N ( D K L ( f ( A ) i ∣ ∣ f ( A ′ ) i ) ) R(A,f) \approx - \frac{1}{{TN}}\sum\limits_{t = 1}^T {\sum\limits_{i = 1}^N {({D_{KL}}(f{{(A)}_i}||f{{(A')}_i}))} } R(A,f)TN1t=1Ti=1N(DKL(f(A)i∣∣f(A)i))

R ( A , f ) R(A,f) R(A,f) 越大,表明干净数据的预测与扰动数据之间的距离越小,因此 GNN 架构就越鲁棒。
  为了说明所提出的鲁棒性度量的有效性,我们随机选择 300 个架构并计算它们的鲁棒性度量值,并评估 Cora 数据集中 5% 结构扰动后它们的性能下降(实验细节在第 5.2 节中描述)。图 2a 显示了 R R R 在对数尺度上的分布,而图 2b 显示了不同 R R R 间隔的平均精度下降。精度下降可以被视为实际鲁棒性的真实测量。从图 2b 中,我们可以看到平均准确率下降与鲁棒性指标呈负相关。当鲁棒性度量相对较小时,准确度可能会降低多达10%。然而,当鲁棒性指标较大时,准确率下降幅度约为 3.5%。这一现象表明我们的鲁棒性度量成功地筛选出了具有鲁棒性的架构。
在这里插入图片描述

进化搜索算法

  在我们的工作中,我们采用进化算法来搜索具有所提出的鲁棒性度量的最佳鲁棒图架构。我们没有从头开始训练每个候选架构,而是仅利用进化算法进行推理和搜索。所有架构的权重都是固定的,与超网训练阶段学习到的权重相同。在一个搜索时期中,我们通过适应度函数 A C C v a l ( α ) + λ R ( α ) AC{C_{val}}(\alpha ) + \lambda R(\alpha ) ACCval(α)+λR(α) 选择前 K K K 个鲁棒候选者。随后进行交叉和变异,从候选群体中生成子架构。我们在附录 B.4 中展示了搜索算法。

实验

  在本节中,我们通过评估扰动图上选定的架构进行实验来验证我们提出的方法。此外,我们还可视化了不同操作的性能,以更好地理解 GNN 架构的鲁棒性。其他实验结果,包括目标攻击下的防御性能、异质图评估以及我们提出的鲁棒性指标中超参数 λ \lambda λ 的敏感性分析,请参见附录 C。实验设置的详细信息请参阅附录 D。

半监督节点分类任务

  在半监督节点分类任务中,我们采用 Mettack [54] 进行非目标中毒结构攻击,并基于扰动图评估 GNN 的鲁棒性。我们将变化的边的比例从 0% 改变到 25%,并计算扰动图的重新训练精度。对于每个设置,我们实验 10 次并报告平均结果和标准偏差。最终的防御结果总结在表3中。附录 C.3 提供了有关受到攻击的 G-RNA 搜索架构的更多信息。
在这里插入图片描述
  总体而言,我们的 G-RNA 在对抗性攻击下成功优于所有基线。当面对严重中毒攻击时(例如,当改变的边的比例为 15% 或更多时),我们可以看到扰动性能明显提高。例如,G-RNA 在 25% 结构扰动下的防御性能分别超过普通 GCN 23.4%、20.9% 和 12.1%。对于基于NAS的方法,对在干净数据上搜索得到的最优架构进行评估,包括在干净和扰动图上测试它们的鲁棒性,以进行公平比较。我们可以看到,架构准确性和鲁棒性之间确实存在权衡。尽管 GraphNAS 在干净的图上显示了令人印象深刻的结果,但它在对抗性攻击下的漏洞也很明显,例如GraphNAS 在对抗性攻击下的性能有时甚至比经典 GNN 还要差。因此,有必要让 Graph NAS 变得更加健壮。在CiteSeer中,G-RNA在20%和25%结构扰动下的性能几乎是GraphNAS的两倍,这表明我们的方法具有很强的防御能力。

鲁棒性度量的消融研究

  我们进行了消融研究,通过移除鲁棒性度量(标记为G-RNA w/o rob)。我们完整的G-RNA在所有数据集上都表现出比G-RNA w/o rob更好的性能,显示出我们提出的鲁棒性度量的有效性。

与不使用结构的比较

  当图结构严重中毒时,通过消息传递范式聚合邻居消息可能不可靠。因此,我们将我们的方法与不使用边的 GCN 进行比较,称为 GCN-NoGraph [20],即节点特征上的两层 MLP。请注意,超过 GCN-NoGraph 的性能表示有效的图结构,而低于 GCN-NoGraph 的性能则意味着 GNN 的图结构无信息或混乱。图3显示了与GCN-NoGraph的比较。对于所有比较方法,只有 G-RNA 的性能始终优于 GCN-NoGraph。 GCN-Jaccard 对于小扰动表现良好,但无法抵御大扰动。此外,当两个数据集的扰动率超过 15% 时,我们可以看到 GCN 和 GraphNAS 的明显下降。
在这里插入图片描述

理解操作鲁棒性

  为了理解各种GNN组件的鲁棒性,我们随机抽样了300个架构,并评估它们在干净和攻击图上的性能。为了进行公平的比较,我们对所有选择的架构保持相同的训练配置。具体来说,我们将每个架构训练 200 个时期,学习率为 0.005,权重衰减为 5e-4。我们使用分类准确率的下降作为衡量标准,并在 Mettack(5% 扰动率)下的 Cora 数据集上报告结果,而其他数据集也显示出类似的趋势。一种架构的性能下降越少,该架构就越稳健。图 4a 和图 4b 显示了各种架构设计下的鲁棒性箱线图。对于每个子图,顶部的图显示了干净图表上的操作选择和模型测试精度之间的关系,而底部的图则通过精度降低显示了操作的鲁棒性。我们提出以下观察。
在这里插入图片描述
内部消息传递层设计 图 4a 显示了该架构对于不同层内架构设计的鲁棒性。为了简单起见,我们只考虑第一层的层内操作。我们可以看到,架构设计在架构准确性和稳健性方面都发挥着重要作用。使用预处理图结构掩码操作提高了 GNN 模型的鲁棒性,但牺牲了一些准确性。对于 Cora 数据集,NFS 是预处理扰动图数据最有效的操作。GCN是Mettack下相关系数最脆弱的。一个可能的原因是Mettack采用了两层GCN模型作为代理模型来生成对抗性样本。对于邻居聚合操作,Sum 显示出高精度和相对稳健的性能。更重要的是,Max 还能够生成一些鲁棒的架构。此外,组合函数对于增强 GNN 的鲁棒性至关重要,因为我们可以看到使用 GIN 或 SAGE 操作时精度下降较小。因此,在消息传递中必须区分自身消息和邻居消息。

消息传递层间设计 我们的层间设计包括跳过连接和层聚合操作。我们还研究了消息传递层的数量如何影响 GNN 的鲁棒性。结果总结在图 4b 中。跳过连接有助于提高模型的准确性和鲁棒性。对于层聚合,没有明显的差异,并且 LSTM 的表现比其他两种操作稍微鲁棒一些。更有趣的是,增加模型深度使得 GNN 在对抗性攻击下更加脆弱。2 层 GNN 在 Cora 数据集上显示出相当好的性能。

结论和局限性

  在本文中,我们提出了第一个针对 GNN 的对抗性鲁棒 NAS 框架。我们将图结构掩码操作合并到搜索空间中,以增强 GNN 的防御能力。我们还定义了一个鲁棒性指标,可以有效地衡量架构的鲁棒性。实验结果证明了我们提出的方法在对抗性攻击下的有效性。我们根据经验分析了不同操作的架构鲁棒性,这为深入了解 GNN 架构背后的鲁棒性机制提供了见解。
  同时,效率低下是许多 NAS 方法的共同问题。由于这个弱点不是我们的主要关注点,因此我们希望将这个限制留作未来的工作。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年亚太杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

10、背景分离 —— 大津算法

上一节学习了通过一些传统计算机视觉算法,比如Canny算法来完成一个图片的边缘检测,从而可以区分出图像的边缘。 今天再看一个视觉中更常见的应用,那就是把图片的前景和背景的分离。 前景和背景 先看看什么是前景什么是背景。 在图像处理和计算机视觉中,"前景"…

HC-SR501传感器制作一个报警系统

接线图: 引脚连接: 1. 将 PIR 信号引脚连接到 arduino 数字 引脚 13。 2. 将 PIR V 引脚连接 到 arduino 5v 引脚。 3. 将 PIR GND 引脚连接到 arduino GND 引脚。 4. 将arduino数字 引脚12连接 到220欧姆电阻,并将该电阻连接到 LED V …

Python开源项目周排行 2023年第38周

#2023年第38周2023年11月19日1easybc用于解析分组加密算法的输入 [EasyDC] 程序,然后根据差分密码分析对分组加密算法进行安全分析。它支持以下功能: EasyBC 的解释器。 基于 SMT 的方法,用于确定各种密码操作的分支数。 S-box 中的差分传播建…

盘点54个Python实用工具源码Python爱好者不容错过

盘点54个Python实用工具源码Python爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1OXyEh-Yy3JI90jvn6d6wRw?pwd8888 提取码:8888 项目名称 7z辅助破解工…

AUTODL云服务器使用大致步骤(适合本人版)

(一)在官网上创建一个服务器 (二)远程连接指令: 改为: (三)连接后,可在中进行代码运行 输入一些指令 python ......

【linux】进行间通信——共享内存+消息队列+信号量

共享内存消息队列信号量 1.共享内存1.1共享内存的原理1.2共享内存的概念1.3接口的认识1.4实操comm.hppservice.cc (写)clint.cc (读) 1.5共享内存的总结1.6共享内存的内核结构 2.消息队列2.1原理2.2接口 3.信号量3.1信号量是什么3…

下一代搜索引擎会什么?

现在是北京时间2023年11月18日。聊一聊搜索。 说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力&a…

Theory behind GAN

假如要生成一些人脸图,实际上就是想要找到一个分布,从这个分布内sample出来的图片像是人脸,分布之外生成的就不像人脸。而GAN要做的就是找到这个distribution。 在GAN之前用的是Maximum Likelihood Estimation。 Maximum Likelihood Estimat…

CI/CD --git版本控制系统

目录 一、git简介 二、git使用 三、github远程代码仓库 一、git简介 Git特点: 速度简单的设计对非线性开发模式的强力支持(允许成千上万个并行开发的分支)完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数…

4.Pod详解【四】

文章目录 4. Pod详解4.1 Pod介绍4.1.1 Pod结构4.1.2 Pod定义 4.2 Pod配置4.2.1 基本配置4.2.2 镜像拉取4.2.3 启动命令4.2.4 环境变量4.2.5 端口设置4.2.6 资源配额 4.3 Pod生命周期4.3.1 创建和终止4.3.2 初始化容器4.3.3 钩子函数4.3.4 容器探测4.3.5 重启策略 4.4 Pod调度4.…

Sectigo证书——全球SSL证书第一品牌

随着互联网技术的发展和网络安全意识的提升,SSL证书已经成为确保网络数据传输安全的重要工具。而在众多SSL证书品牌中,Sectigo无疑是其中的佼佼者,被誉为“全球证书第一品牌”。 Sectigo是一个有着超过二十年行业经验的老牌认证机构&#xff…

卷积神经网络(CNN)衣服图像分类的实现

文章目录 前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)我的环境: 2. 导入数据3.归一化4.调整图片格式5. 可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作 1. 设置GPU(如果使用的是CPU可以…

图像分类(六) 全面解读复现MobileNetV1-V3

MobileNetV1 前言 MobileNetV1网络是谷歌团队在2017年提出的,专注于移动端和嵌入设备的轻量级CNN网络,相比于传统的神经网络,在准确率小幅度降低的前提下大大减少模型的参数与运算量。相比于VGG16准确率减少0.9%,但模型的参数只…

Swin Transformer

Swin Transformer 简介 下采样的层级设计,能够逐渐增大感受野。采用window进行注意力计算,极大降低了内存消耗,避免了整张图像尺寸大小的qkv矩阵滑窗操作包括不重叠的 local window,和重叠的 cross-window。不重叠的local window…

leetcode34.排序数组中查找元素第一个和最后一个位置两种解题方法(超详细)

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/?envTypelist&envIdZCa7r67M这道题,读者可能会说这道题有什么好…

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发…

详解ssh远程登录服务

华子目录 简介概念功能 分类文字接口图形接口 文字接口ssh连接服务器浅浅介绍一下加密技术凯撒加密加密分类对称加密非对称加密非对称加密方法(也叫公钥加密) ssh两大类认证方式:连接加密技术简介密钥解析 ssh工作过程版本协商阶段密钥和算法…

程序员如何做事更细致?

最近在工作中老是犯一些小错误,哦,当然也不是最近了,其实我一直是个马虎的人,我很讨厌做一些细活,因为这会让我反复改动多次在会成功,而平时的代码由于有debug,即便出错了,再改回来即…