文章目录
简述.
- 发布于 2019 2019 2019 年。
- 针对图神经网络 G N N \rm GNN GNN 的脆弱性 Vulnerability —— 易受攻击。对抗攻击常常具有隐蔽性,并且只需要在图数据的结构、特征上做出微小的修改就能够使得 G N N GNN GNN 以较高的置信度给出错误预测。
- 对抗学习 Adversarial Learning 是增强模型防御能力的有效方法,其做法是在模型的训练阶段以掺杂攻击样本的方式进行数据增强。
- 针对图模型的对抗学习挑战有二,其一是图神经网络的每一层天然具有脆弱特性,注意到图神经网络中的聚合层 Aggregation Layer 会聚合邻居节点的特征来捕捉图结构,这就使得单个节点的预测结果不仅取决于它自身特征,而且会受到邻居节点特征的影响。
- 其二,图数据的离散本质使得生成攻击样本是一个组合优化问题,对攻击样本的生成方法提出了效率和效果的双重挑战。
DefNet.
- D e f N e t \rm DefNet DefNet 是作者提出的框架,并非具体网络,其原文陈述如下:
An effective framework for defending popular Graph Neural Networks against adverasrial attacks.
- 该框架由两部分组成 —— 精炼编码器 Graph Encoder Refining 和 对抗对比学习 Adversarial Contrastive Learning. 前者针对原生 G N N \rm GNN GNN 中聚合层与感知层 Perceptron Layer 存在的固有脆弱性进行改进;后者采用对抗对比学习的方式来训练 G N N \rm GNN GNN,并且引入条件生成对抗网络 Conditional GAN 来解决离散空间中对抗样本的生成问题。
-
D
e
f
N
e
t
\rm DefNet
DefNet 的框架如下图所示:
Dual-Stage Aggregation.
- 指 F i g . 1 \rm Fig.1 Fig.1 中的两种聚合层 —— A G G i n t r a \rm AGG_{intra} AGGintra 和 A G G i n t e r . \rm AGG_{inter}. AGGinter. 前者对目标节点 v v v 的邻域采用平均池化的方式来执行聚合,形式化表示如下: a ^ v ( k ) = A G G i n t r a ( { h u ( k − 1 ) ∣ u ∈ N v } ) = 1 ∣ N v ∣ ∑ u ∈ N v h u ( k − 1 ) (1) \hat \bm a_v^{(k)}={\rm AGG_{intra}}\big(\{\bm h_u^{(k-1)}\big|u\in\mathcal N_v\}\big)=\frac1{|\mathcal N_v|}\sum_{u\in\mathcal N_v}\bm h_u^{(k-1)}\tag{1} a^v(k)=AGGintra({hu(k−1)∣∣u∈Nv})=∣Nv∣1u∈Nv∑hu(k−1)(1)
- 后者对不同层的结果进行聚合,具体方式是简单连接,形式化表示如下: a v ( k ) = A G G i n t e r ( a ^ v ( k ) , h v ( k − 1 ) , h v ( k − 2 ) , ⋯ , h v ( 1 ) ) = [ a ^ v ( k ) ; h v ( k − 1 ) ; h v ( k − 2 ) ; ⋯ ; h v ( 1 ) ] (2) \begin{aligned}\bm a_v^{(k)}&={\rm AGG_{inter}}\big(\hat\bm a_v^{(k)},\bm h_v^{(k-1)},\bm h_v^{(k-2)},\cdots,\bm h_v^{(1)}\big)\\&=\big[\hat\bm a_v^{(k)};\bm h_v^{(k-1)};\bm h_v^{(k-2)};\cdots;\bm h_v^{(1)}\big]\end{aligned}\tag{2} av(k)=AGGinter(a^v(k),hv(k−1),hv(k−2),⋯,hv(1))=[a^v(k);hv(k−1);hv(k−2);⋯;hv(1)](2)
- 之所以采用平均池化,是因为相较于求和池化和最大池化,平均池化对于微小的扰动会更具鲁棒性,相当于整个邻域共同承担了扰动。
- 选用简单连接而非直接聚合的理由是防止噪音信息、攻击信息随着每一次迭代的聚合而指数增长。这里用
G
C
N
\rm GCN
GCN 和
G
r
a
p
h
S
A
G
E
\rm GraphSAGE
GraphSAGE 为对比,描述了基于 skip-connection 的聚合,
G
r
a
p
h
S
A
G
E
\rm GraphSAGE
GraphSAGE 的伪代码如下,黄色标注为聚合:
Bottleneck Perceptron.
- 回到 D e f N e t \rm DefNet DefNet, ( 1 ) , ( 2 ) (1),(2) (1),(2) 中的隐层向量 h v ( k ) \bm h_v^{(k)} hv(k) 是感知层的输出结果。已有研究表明神经网络脆弱性与输入数据维度成正比,并且真实数据尽管是高维的,但能够很好地执行低维嵌入。因此对于聚合向量 a v ( k ) \bm a_v^{(k)} av(k) 执行一个降维映射,称其为瓶颈映射 Bottleneck Perceptron,形式化表述如下: h v ( k ) = R e L U ( W p ( k ) ⋅ a v ( k ) ) (3) \bm h_v^{(k)}={\rm ReLU}\big(\bm W_p^{(k)}\cdot\bm a_v^{(k)}\big)\tag{3} hv(k)=ReLU(Wp(k)⋅av(k))(3)这里 h v ( k ) \bm h_v^{(k)} hv(k) 是单个节点 v v v 的嵌入表示,对所有节点的表示执行平均池化得到图 G G G 的嵌入表示 h G \bm h_G hG,形式化如下: h G = σ ( W r ⋅ 1 ∣ V ∣ ∑ i = 1 ∣ V ∣ h i ( K ) ) (4) \bm h_G=\sigma\Big(\bm W_r\cdot\frac1{|V|}\sum_{i=1}^{|V|}\bm h_i^{(K)}\Big)\tag{4} hG=σ(Wr⋅∣V∣1i=1∑∣V∣hi(K))(4)
Adversarial Contrastive Learning.
- 在对抗对比学习 A C L \rm ACL ACL 部分将图嵌入 h G \bm h_G hG 作为全局约束来规范节点嵌入学习过程,所谓约束是将 h G \bm h_G hG 作为条件。定义 G θ G_\theta Gθ 是捕捉真实数据分布的生成器,用于生成对抗样本; D W D_{\bm W} DW 为判别器,用于判定样本是来自于真实数据还是生成器 G θ . G_\theta. Gθ.
- 形式化定义如下: D W ( h v ∣ h G ) = σ ( h v W D h G ) (5) D_{\bm W}(\bm h_v|\bm h_G)=\sigma\big(\bm h_v\bm W_D\bm h_G\big)\tag{5} DW(hv∣hG)=σ(hvWDhG)(5)于是整个对抗对比学习过程的目标函数如下: min G max D E p + [ log D W ( h v ∣ h G ) ] + E g θ [ log ( 1 − D W ( G θ ( h v ′ ∣ h G ) ) ) ] (6) \min_G\max_DE_{p^+}\big[\log D_{\bm W}(\bm h_v|\bm h_G)\big]+E_{g_\theta}\big[\log\big(1-D_{\bm W}(G_\theta(\bm h_v'|\bm h_G))\big)\big]\tag{6} GminDmaxEp+[logDW(hv∣hG)]+Egθ[log(1−DW(Gθ(hv′∣hG)))](6)
- 生成器 G θ G_\theta Gθ 的目标是让判别器无法分辨出样本是来自于真实数据还是生成器,目标函数中与 G θ G_\theta Gθ 有关的部分是: E g θ [ log ( 1 − D W ( G θ ( h v ′ ∣ h G ) ) ) ] (7.1) E_{g_\theta}\big[\log\big(1-D_{\bm W}(G_\theta(\bm h_v'|\bm h_G))\big)\big]\tag{7.1} Egθ[log(1−DW(Gθ(hv′∣hG)))](7.1)因此对于理想的 G θ G_\theta Gθ, D W D_{\bm W} DW 会输出 1 1 1,认为数据来自于真实分布,而 log 0 → − ∞ \log0\rightarrow-\infin log0→−∞,因此对于 G θ G_\theta Gθ 来说需要最小化目标函数,即 min G . \min_G. minG.
- 判别器 D W D_{\bm W} DW 的目标是正确分辨样本,目标函数中与 D W D_{\bm W} DW 相关的部分是: E p + [ log D W ( h v ∣ h G ) ] + E g θ [ log ( 1 − D W ( G θ ( h v ′ ∣ h G ) ) ) ] (7.2) E_{p^+}\big[\log D_{\bm W}(\bm h_v|\bm h_G)\big]+E_{g_\theta}\big[\log\big(1-D_{\bm W}(G_\theta(\bm h_v'|\bm h_G))\big)\big]\tag{7.2} Ep+[logDW(hv∣hG)]+Egθ[log(1−DW(Gθ(hv′∣hG)))](7.2)对于理想判别器而言, D W ( h v ∣ h G ) = 1 , D W ( G θ ( h v ′ ∣ h G ) ) = 0 D_{\bm W}(\bm h_v|\bm h_G)=1,D_{\bm W}(G_\theta(\bm h_v'|\bm h_G))=0 DW(hv∣hG)=1,DW(Gθ(hv′∣hG))=0,这时两个对数部分都为零,因此对于 D W D_{\bm W} DW 来说需要最大化目标函数,即 max D . \max_D. maxD.
实验.
- 实验分为两个部分,第一部分测试 G E R \rm GER GER 模块精炼编码器的效果;第二部分测试 A C L \rm ACL ACL 模块使用对抗对比学习策略与其他对比学习策略的差别。
GER.
- 对于 A G G i n t r a \rm AGG_{intra} AGGintra 层,对比不同池化函数的效果,即求和池化、最大池化与平均池化,分别以 sum、max、mean 表示。
- 对于 A G G i n t e r \rm AGG_{inter} AGGinter 层,对比不同跨层连接方式的差异,以无跨层连接和 G r a p h S A G E \rm GraphSAGE GraphSAGE 中的跳跃连接作为对照, D e f N e t \rm DefNet DefNet 使用的方式记为稠密连接,分别以 none、skip、dense 表示。
- 对于瓶颈映射部分,分别将映射输出维度设置为低、中、高,对比效果,用 low、mid、high 表示。
- 实验使用分类结果的间隔作为分类器性能衡量标准,即 l a b e l label label 类别和最高置信度错分类别之间的预测概率差值,形式化如下: s = Z v ∗ [ c ] − max c ′ ≠ c Z v ∗ [ c ′ ] (8) s=Z^*_v[c]-\max_{c'\neq c}Z^*_v[c']\tag{8} s=Zv∗[c]−c′=cmaxZv∗[c′](8)可视化结果如下:
- 【
A
G
G
i
n
t
r
a
\rm AGG_{intra}
AGGintra】
- 【
A
G
G
i
n
t
e
r
\rm AGG_{inter}
AGGinter】
- 【
B
o
t
t
l
e
n
e
c
k
P
e
r
c
e
p
t
r
o
n
\rm Bottleneck~Perceptron
Bottleneck Perceptron】
ACL.
- 对模型进行攻击后测试分类任务准确率,与对抗对比学习进行对照的学习方法是传统学习方法与噪声对比学习。其中模型采用 G C N \rm GCN GCN 和 G r a p h S A G E \rm GraphSAGE GraphSAGE,前缀 R \rm R R 表示加入了 G E R \rm GER GER 模块,下标 A C L , N C L \rm ACL,NCL ACL,NCL 分别表示对抗对比学习和传统对比学习。
- 实验结果如下: