第6章-GCN的性质
GCN指的是利用上一章定义的图卷积层堆叠而成的模型。
6.1 GCN与CNN的联系
6.2 GCN能够进行端到端学习
端到端(end-to-end)学习实现了一种自动化从数据中高效学习的机制。端到端学习能取得良好的效果依赖于基于某个特定问题的定制化网络层的构建。
图数据包含两部分信息:
- 属性信息:节点的固有性质
- 结构信息:节点间的关联性质
需要对这两部分信息进行端到端的学习。
图数据的学习方式
1、基于手工特征的方式
①用图的统计特征(节点的度等)作为结构信息
②
c
o
n
c
a
t
(
v
⃗
结
构
信
息
,
v
⃗
属
性
信
息
)
concat(\vec v_{结构信息},\vec v_{属性信息})
concat(v结构信息,v属性信息)
③送到下游进行任务学习
问题:结构信息是人为定义的。
2、基于随机游走(Random Walk)的方式
①使用随机游走的方法将节点的结构信息映射到一个新的特征向量空间中
②
c
o
n
c
a
t
(
v
⃗
结
构
信
息
,
v
⃗
属
性
信
息
)
concat(\vec v_{结构信息},\vec v_{属性信息})
concat(v结构信息,v属性信息)
③送到下游进行任务学习
问题:表示学习和任务学习是分离的,并不高效。
3、基于GCN的方式
对于结构信息和属性信息的学习体现在: L ~ s y m X W \tilde L_{sym}XW L~symXW。
①
X
W
XW
XW对属性信息进行仿射变换
②
L
~
s
y
m
(
X
W
)
\tilde L_{sym}(XW)
L~sym(XW)聚合邻居节点,对结构信息进行编码
③进行任务学习
优点:
①对表示学习和任务学习一起进行端到端优化,具有更好的适应性。
②结构信息和属性信息的学习是同时进行的,二者之间有很好的互补关系。
GCN可以看作Weisfeiler-Lehman算法的一种变形。
《什么是Weisfeiler-Lehman(WL)算法和WL Test?》
6.3 GCN是一个低通滤波器
GCN的损失函数中一般不会添加正则项。
L
~
s
y
m
=
D
~
−
1
2
A
~
D
~
−
1
2
=
I
−
L
~
s
=
V
(
1
−
Λ
~
)
V
T
=
V
[
1
−
λ
~
1
⋱
1
−
λ
~
N
]
V
T
\tilde L_{sym}=\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}=I-\tilde L_s=V(1-\tilde \Lambda)V^T= \\[2ex] V \begin{bmatrix} 1-\tilde \lambda_1& & \\[2ex] & \ddots& \\[2ex] & &1-\tilde \lambda_N \end{bmatrix} V^T
L~sym=D~−21A~D~−21=I−L~s=V(1−Λ~)VT=V⎣⎢⎢⎢⎡1−λ~1⋱1−λ~N⎦⎥⎥⎥⎤VT
其中
L
~
s
=
D
~
−
1
2
L
D
~
−
1
2
\tilde L_s=\tilde D^{-\frac{1}{2}}L\tilde D^{-\frac{1}{2}}
L~s=D~−21LD~−21,频率响应函数可以定义为:
p
(
λ
)
=
1
−
λ
~
i
∈
(
−
1
,
1
]
p(\lambda)=1-\tilde \lambda_i\in (-1,1]
p(λ)=1−λ~i∈(−1,1]
如果将信号矩阵
X
X
X不断左乘
K
K
K次
L
~
s
y
m
\tilde L_{sym}
L~sym,其频率响应函数就可以定义为:
p
(
λ
)
=
(
1
−
λ
~
i
)
k
p(\lambda)=(1-\tilde \lambda_i)^k
p(λ)=(1−λ~i)k
随着
K
K
K的增加,在低频段上的缩放效果更强,因此是一种低通滤波器。
为了突出低通特性、减少参数,还可以将多层GCN退化为,
Y
=
σ
(
L
~
s
y
m
K
X
W
)
Y=\sigma(\tilde L_{sym}^KXW)
Y=σ(L~symKXW)
6.4 GCN的问题——过平滑
其实就是网络的层数多了反而效果会不好,我们将这个现象成为GCN的过平滑(Over-Smooth)问题。
直观理解:多层堆叠,不断对信号进行平滑操作,使得信号趋于相同,因此丧失了节点特征的多样性。
空域视角
GCN的本质是聚合邻居节点,随着层数的增加,一旦达到某个阈值,该节点的覆盖节点可能就是整张图。
解决方法:
①增加跳跃(skip)连接来聚合每层节点的输出。
②重新分配
A
A
A的权重。
A
i
j
′
=
{
A
i
j
p
/
d
e
g
(
v
i
)
,
i
≠
j
1
−
p
,
i
=
j
A'_{ij}= \begin{cases} A_{ij}p/deg(v_i),& i\ne j \\[2ex] 1-p,& i=j \end{cases}
Aij′=⎩⎨⎧Aijp/deg(vi),1−p,i=ji=j
其中
p
∈
[
0
,
1
]
p\in [0,1]
p∈[0,1]。
总结
有一些概念和公式理解的还是不好,慢慢来吧。