Semi-Supervised Classification with Graph Convolutional Networks
时间:2017
Intro
要解决的问题:图上的结点分类,其中只有小部分结点有label。
这是一个基于图的半监督学习,可以通过在损失函数中额外加一项graph-based regularization来解决:
其中
L
0
\mathcal{L}_0
L0表示label的损失,
f
f
f表示神经网络,
X
X
X是结点特征矩阵,
Δ
=
D
−
A
\Delta=D-A
Δ=D−A表示unnormalized graph Laplacian(???),
A
A
A是邻接矩阵,
D
i
i
=
∑
j
A
i
j
D_{ii}=\sum_jA_{ij}
Dii=∑jAij,这个方程假设了连接的结点更可能有一样的label,但因为边的存在除了表示结点之间的相似性外还有别的信息,所以这一假设可能限制模型的表达能力
本文通过直接用神经网络来encode图结构并在 L 0 \mathcal{L}_0 L0上训练来避免在损失函数中包括graph-based regularization,以邻接矩阵 A A A为条件的神经网络会使得模型将监督学习损失的梯度信息传递到其他图的其他结点上,使得无论是否有标签的结点都能学习到好的representation
本文贡献有以下两点
- 提出了一个直接在图上作用的神经网络
- 使用提出的网络在图上进行半监督学习,得到了更好的效果
Fast Approximate convolutions on graphs
multi-layer GCN的一层传播规则如下
其中
A
~
=
A
+
I
N
\tilde{A}=A+I_N
A~=A+IN,是无向图
G
\mathcal{G}
G的邻接矩阵加上每个结点自连接,
D
~
i
i
=
∑
j
A
~
i
j
\tilde{D}_{ii}=\sum_j{\tilde{A}_{ij}}
D~ii=∑jA~ij,
W
(
l
)
W^{(l)}
W(l)是训练参数,
H
(
l
)
∈
R
N
×
D
H^{(l)}\in R^{N\times D}
H(l)∈RN×D是第
l
l
l层的激活矩阵,且
H
(
l
)
=
X
H^{(l)}=X
H(l)=X,接下来证明这个形式是受到图上局部光谱滤波(localized spectral filter)的一阶逼近得到的
Spectral Graph Convolutions
图上的谱卷积定义为对信号
x
∈
R
N
x\in R^N
x∈RN和卷积核
g
θ
=
d
i
a
g
(
θ
)
g_\theta=diag(\theta)
gθ=diag(θ)的乘积
其中
U
U
U是normalized graph Laplacian
L
=
I
N
−
D
−
1
2
A
D
1
2
=
U
Λ
U
T
L=I_N-D^{-\frac{1}{2}}AD^{\frac{1}{2}}=U\Lambda U^T
L=IN−D−21AD21=UΛUT的特征向量,其中
Λ
\Lambda
Λ是特征值的对角矩阵,
U
T
x
U^Tx
UTx是图傅里叶变换,可以将
g
θ
g_\theta
gθ看做
L
L
L的特征值的函数
g
θ
(
Λ
)
g_\theta(\Lambda)
gθ(Λ),上图的计算复杂度很高,因此通过truncated expansion来逼近
此时计算复杂度由
O
(
N
2
)
O(\mathcal{N}^2)
O(N2)降低到了
O
(
∣
ε
∣
)
O(|\varepsilon|)
O(∣ε∣)
Layer-Wise Linear Model
将上面的式子stack起来就可以得到层的结构,此时选择 K = 1 K=1 K=1,后面的看不懂
Semi Supervised Node Classification
下面使用之前的模型来进行半监督学习,因为邻接矩阵
A
A
A中包括了
X
X
X中不包含的信息,因此通过图卷积将它们融合起来,整个模型如图所示
Example
考虑一个两层的GCN
其中
W
(
0
)
W^{(0)}
W(0)是输入到隐层的权值,
W
(
1
)
W^{(1)}
W(1)是隐层到输出的权值,最后计算所有带标签样本的交叉熵损失
Conclusion
本文提出了一个图卷积网络,它能够以图作为输入,通过逐层的特征映射,完成了半监督的学习任务,达到了较好的效果
问题
- 图结点的个数是样例的个数,在样本多的情况下计算量会很大
- 暂时不支持有向图
- 内存开销和数据集成正比