arXiv:1609.02907v4
这篇论文笔记主要参考了
1.【GCN】论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
2. 机器学习论文笔记-Semi-Supervised Classification with Graph Convolutional Networks
3. 从CNN到GCN的联系与区别——GCN从入门到精(fang)通(qi)
文章目录
0.补充知识
使用神经网络模型 f ( X , A ) f(X,A) f(X,A) 对所有带标签节点进行基于监督损失的训练。
- X X X为输入数据
- A A A是图 G = ( V , E ) G=(V,E) G=(V,E)的邻接矩阵
- D D D是顶点的度矩阵(对角矩阵), D i i = ∑ j A i j D_{ii} = \sum_{j}A_{ij} Dii=∑jAij
- (Laplacian 矩阵, Combinatorial Laplacian): L = D − A L = D - A L=D−A
- (Laplacian 矩阵, Symmetric normalized Laplacian): L s y s = D − 1 2 L D − 1 2 = I N − D − 1 2 A D − 1 2 L^{sys} = D^{-\frac{1}{2}} L D^{-\frac{1}{2}} = I_{N} - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} Lsys=D−21LD−21=IN−D−21AD−21
- (Laplacian 矩阵, Random walk normalized Laplacian): L = D − 1 L = I N − D − 1 A L = D^{-1} L = I_{N} - D^{-1} A L=D−1L=IN−D−1A
1.INTRODUCTION
图半监督学习的目标是,在给定的图结构的数据中,少部分节点是有标记的,大部分节点是未标记的,预测出未标记节点的标签。
经典的方法:
-
基于平滑正则,即假设相邻的节点具有相似的label–[Zhu et al., 2003]: L = L 0 + λ L r e g \mathcal{L} = \mathcal{L}_0 + \lambda \mathcal{L}_{reg} L=L0+λLreg,
L r e g = ∑ i , j A i j ∥ f ( X i ) − f ( X j ) ∥ 2 = f ( X ) T ( D − A ) f ( X ) \mathcal{L}_{reg} = \sum_{i,j} A_{ij}\| f(X_i) - f(X_j)\|^2 = f(X)^{T} \left( D - A \right) f(X) Lreg=∑i,jAij∥f(Xi)−f(Xj)∥2=f(X)T(D−A)f(X)
2.Graph中的快速卷积
图卷积网络(GCN)的每层表达式为
H
(
l
+
1
)
=
σ
(
D
~
−
1
2
A
~
D
~
−
1
2
H
(
l
)
W
(
l
)
)
H^{(l + 1)} = \sigma\left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right)
H(l+1)=σ(D~−21A~D~−21H(l)W(l))
其中
- A ~ = A + I N \tilde{A} = A + I_{N} A~=A+IN
- D ~ i , i = ∑ j A ~ i , j \tilde{D}_{i,i} = \sum_{j} \tilde{A}_{i,j} D~i,i=∑jA~i,j
- σ ( ⋅ ) \sigma(\cdot) σ(⋅)为激活函数
- W ( l ) W^{(l)} W(l) 为学习参数
原始方法
定义谱方法的图卷积为
g
θ
⋆
x
=
U
g
θ
U
T
x
g_{\theta} \star x = U g_{\theta} U^{T} x
gθ⋆x=UgθUTx.
其中
- g θ = d i a g ( θ ) , θ ∈ R N g_{\theta} = diag(\theta), \theta \in \mathbb{R}^{N} gθ=diag(θ),θ∈RN
- L = I N − D − 1 2 A D − 1 2 = U Λ U T L = I_{N} - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} = U \Lambda U^{T} L=IN−D−21AD−21=UΛUT , U U U为 L L L的特征向量,相应的 Λ \Lambda Λ为特征值的组成的对角阵,两者相互对应。
Chebyshev多项式逼近法
[Hammond et al., 2011]将
g
θ
(
Λ
)
g_{\theta}(\Lambda)
gθ(Λ)用Chebyshev多项式
T
k
(
x
)
T_{k}(x)
Tk(x)逼近:
g
θ
′
(
Λ
)
≈
∑
k
=
0
K
θ
k
′
T
k
(
Λ
~
)
,
Λ
~
=
2
λ
m
a
x
(
Λ
)
Λ
−
I
N
g_{\theta^{'}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ), \qquad \tilde{\Lambda} = \frac{2}{\lambda_{max}(\Lambda)} \Lambda - I_N
gθ′(Λ)≈k=0∑Kθk′Tk(Λ~),Λ~=λmax(Λ)2Λ−IN
因此得到Chebyshev多项式逼近图上谱卷积为:
g
θ
′
⋆
x
≈
U
(
∑
k
=
0
K
θ
k
′
T
k
(
Λ
~
)
)
U
T
x
=
∑
k
=
0
K
(
U
θ
k
′
T
k
(
Λ
~
)
U
T
)
x
=
∑
k
=
0
K
θ
k
′
T
k
(
U
Λ
~
U
T
)
)
x
=
∑
k
=
0
K
θ
k
′
T
k
(
L
~
)
x
\begin{aligned} g_{\theta^{'}} \star x & \approx U \left( \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) \right) U^T x \\ & = \sum_{k=0}^{K} \left( U \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) U^T \right) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}\left( U \tilde{\Lambda} U^T \right) ) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}(\tilde{L}) x \end{aligned}
gθ′⋆x≈U(k=0∑Kθk′Tk(Λ~))UTx=k=0∑K(Uθk′Tk(Λ~)UT)x=k=0∑Kθk′Tk(UΛ~UT))x=k=0∑Kθk′Tk(L~)x
其中
L
~
=
2
λ
m
a
x
(
L
)
L
−
I
N
\tilde{L} = \frac{2}{\lambda_{max}(L)} L - I_N
L~=λmax(L)2L−IN。
Chebyshev多项式逼近法简化
如果取
λ
m
a
x
≈
2
\lambda_{max} \approx 2
λmax≈2则有
L
~
=
L
−
I
N
\tilde{L} = L - I_N
L~=L−IN。Chebyshev多项式只取前两项,即
K
=
1
K = 1
K=1 有
g
θ
′
⋆
x
≈
(
θ
0
′
+
θ
1
′
(
L
−
I
N
)
)
x
=
(
θ
0
′
−
θ
1
′
D
−
1
2
A
D
−
1
2
)
x
.
\begin{aligned} g_{\theta^{'}} \star x & \approx \left( \theta_{0}^{'} + \theta_{1}^{'} (L - I_N) \right) x \\ & = \left( \theta_{0}^{'} - \theta_{1}^{'} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x \end{aligned}.
gθ′⋆x≈(θ0′+θ1′(L−IN))x=(θ0′−θ1′D−21AD−21)x.
单参数法
令参数
θ
0
′
=
−
θ
1
′
=
θ
\theta_{0}^{'} = - \theta_{1}^{'} = \theta
θ0′=−θ1′=θ,图上谱卷积又可以简化为
g
θ
′
⋆
x
≈
θ
(
I
N
+
D
−
1
2
A
D
−
1
2
)
x
g_{\theta^{'}} \star x \approx \theta \left( I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x
gθ′⋆x≈θ(IN+D−21AD−21)x
注意
I
N
+
D
−
1
2
A
D
−
1
2
I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}}
IN+D−21AD−21拥有范围为
[
0
,
2
]
[0,2]
[0,2]的特征值,这将会导致数值不稳定性和梯度爆炸/消失。因此我们介绍下面的归一化技巧(renormalization trick):
I
N
+
D
−
1
2
A
D
−
1
2
→
D
~
−
1
2
A
~
D
~
−
1
2
.
I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}.
IN+D−21AD−21→D~−21A~D~−21.
其中
A
~
=
A
+
I
N
,
D
~
i
,
i
=
∑
j
A
~
i
,
j
=
∑
j
(
A
i
,
j
+
(
I
N
)
i
,
j
)
=
D
i
,
i
+
1
\tilde{A}=A+I_N,\tilde{D}_{i,i} = \sum_{j}\tilde{A}_{i,j} = \sum_{j} \left( A_{i,j} + (I_N)_{i,j}\right) = D_{i,i} + 1
A~=A+IN,D~i,i=∑jA~i,j=∑j(Ai,j+(IN)i,j)=Di,i+1。上式展开为
I
N
+
D
−
1
2
A
D
−
1
2
→
D
~
−
1
2
A
~
D
~
−
1
2
=
(
D
+
I
N
)
−
1
2
(
A
+
I
N
)
(
D
+
I
N
)
−
1
2
=
(
D
+
I
N
)
−
1
2
A
(
D
+
I
N
)
−
1
2
+
(
D
+
I
N
)
−
1
.
\begin{aligned} I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} & \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} (A+I_N) (D + I_N)^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} A (D + I_N)^{-\frac{1}{2}} + (D + I_N)^{-1} \end{aligned}.
IN+D−21AD−21→D~−21A~D~−21=(D+IN)−21(A+IN)(D+IN)−21=(D+IN)−21A(D+IN)−21+(D+IN)−1.
推广
输入
X
∈
R
N
×
C
X \in \mathbb{R}^{N \times C}
X∈RN×C,
C
C
C为输入的通道数,经过滤波
Θ
∈
R
C
×
F
\Theta \in \mathbb{R}^{C \times F}
Θ∈RC×F得到含有
F
F
F个通道的卷积后结果
Z
∈
R
N
×
F
Z \in \mathbb{R}^{N \times F}
Z∈RN×F:
Z
=
D
~
−
1
2
A
~
D
~
−
1
2
X
Θ
Z = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta
Z=D~−21A~D~−21XΘ
3.半监督节点分类
上图中,左(a)是一个GCN网络示意图,在输入层拥有
C
C
C个输入,中间有若干隐藏层,在输出层有
F
F
F个特征映射;图的结构(边用黑线表示)在层之间共享;标签用
Y
i
Y_i
Yi表示。右(b)是一个两层GCN在Cora数据集上(使用了5%的标签)训练得到的隐藏层激活值的形象化表示,颜色表示文档类别。
考虑一个用于半监督图节点分类问题的两层GCN,邻接矩阵为 A A A(二进制/加权)。
预处理
计算
A
^
=
D
~
−
1
2
A
~
D
~
−
1
2
\hat{A} = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}
A^=D~−21A~D~−21,模型则为:
Z
=
f
(
X
,
A
)
=
s
o
f
t
m
a
x
(
A
^
R
e
L
U
(
A
^
X
W
(
0
)
)
W
(
1
)
)
Z = f(X, A) = softmax \left( \hat{A} ReLU \left( \hat{A} X W^{(0)} \right) W^{(1)} \right)
Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))
交叉熵
评估所有带标签的节点集
Y
L
\mathcal{Y}_L
YL的交叉熵误差:
L
=
−
∑
l
∈
Y
L
∑
f
=
1
F
Y
l
f
ln
(
Z
l
f
)
\mathcal{L} = - \sum_{l \in \mathcal{Y}_L} \sum_{f=1}^{F} Y_{lf} \ln (Z_{lf})
L=−l∈YL∑f=1∑FYlfln(Zlf)
训练
网络中的权重 W ( 0 ) W^{(0)} W(0)和 W ( 1 ) W^{(1)} W(1)通过梯度下降训练。我们对每个【训练迭代】使用完整的数据集执行【批量梯度下降】,这是一个可行的选择,只要数据集适合内存。对于 A A A使用稀疏表示,即边数是线性的。通过Dropout引入训练过程中的随机性。我们将内存效率扩展与小批随机梯度下降留作以后的工作。
5.实验
- 引文网络:半监督文档分类
- 从知识图中提取的二分图:半监督实体分类
5.1数据集
实验参数
- 使用3.1节中的两层GCN网络
- prediction accuracy:1000张带标签测试集
- 对比实验:十层网络
- 使用500张带标签验证集:超参数的初始化、所有层的dropout率、第一层的L2正则化因子、隐藏层单元的个数
引文网络数据集
- 最大200迭代期
- Adam算法
- 学习率为0.01
- 停止条件:验证集loss连续十个迭代期没有下降
- 权重初始化方法:Xavier
- (按行)对输入特征向量归一化
随机图数据集
- 隐藏层32个单元
- 省略dropout和L2正则化
6.结果
四个常用的数据集,三个citation networks和一个knowledge graphs,都取得了不错的效果。
CPU和GPU上的训练时间:
对比不同的卷积逼近方式,作者提出的归一化技巧(renormalization trick)这种方式优势明显,表现优异:
模型深度对性能的影响,可以看出,3层左右的时候效果比较好。