前言
在计算机视觉以及自然语言处理领域中,现有的技术大多把原始输入表示为欧几里得数据(Euclidean data)。欧几里得数据最显著的特征就是有规则的空间结构,比如图片是规则的正方形栅格,比如语音是规则的一维序列。而这些数据结构能够用一维、二维的矩阵表示,如下图所示
但是现实的处理问题当中还存在大量的非欧几里得数据,如社交多媒体网络数据,化学成分结构数据,生物基因蛋白数据以及知识图谱数据等等。如下图:
图神经网络的出现为这些非欧几里得数据的处理提供了新的思路。
图(Graph)
图(graph)是数据结构和算法学中最强大的框架之一。图可以用来表现多种类型的结构或系统,在很多应用上都有用武之地。
图
G
G
G可以通过顶点集合V(vertex)和边E(edge)来进行描述。
G
=
(
V
,
E
)
G=(V,E)
G=(V,E)
根据顶点之间是否存在方向依赖关系,边可以是有向的,也可以是无向的。下图中a、b为无向图,c、d为有向图。
图有两个基本特征:
- 每个节点都有自己的特征信息
- 图谱中的每个节点还具有结构信息
总的来说,在图数据里面,我们要同时考虑到节点的特征信息以及结构信息,如果靠手工规则来提取,必将失去很多隐蔽和复杂的模式,因此我们尝试用图神经网络自动化地同时学到图的特征信息与结构信息。
图神经网络
简介
图神经网络是一种直接作用于图结构上的神经网络。图神经网络有以下特点:
- 忽略节点的输入顺序;
- 在计算过程中,节点的表示受其周围邻居节点的影响,而图本身连接不变;
- 图结构的表示,使得可以进行基于图的推理。
关于图的应用一般可以分为两类,分别称为 graph-focused 和 node-focused应用。
graph-focused 应用,函数与顶点相互独立,对整个图实现分类或回归任务。比如化学中的化合物可以通过图进行建模,每个顶点表示原子或者化学基团,边表示化学键。映射可以用来评估被评测化合物是否能导致某一特定的疾病。
node-focused 应用,映射依赖于节点,因此分类或者回归任务依赖于每个节点的性质,例如目标检测问题,检测图像中是否包含特定的目标,并进行定位。
符号
G
=
(
N
,
E
)
G=(N,E)
G=(N,E),其中
N
N
N 表示顶点集,
E
E
E 表示边集合
n
e
[
n
]
ne[n]
ne[n] 表示顶点
n
n
n 的邻接顶点
c
o
[
n
]
co[n]
co[n] 表示与顶点
n
n
n 相连的边
x
n
x_{n}
xn 表示顶点
n
n
n 的特征
x
c
o
[
n
]
x_{co[n]}
xco[n] 表示与顶点
n
n
n 相连的边的特征
h
n
e
[
n
]
h_{ne[n]}
hne[n] 表示顶点
n
n
n 邻接顶点的嵌入表示 (state embedding)
x
n
e
[
n
]
x_{ne[n]}
xne[n] 表示顶点
n
n
n 相邻节点的特征
h
n
h_{n}
hn 表示顶点
n
n
n 的嵌入表示
基本模型
图神经网络通常由两个模块组成:传播模块(propagation module) 和 输出模块(output module)
(1)传播模块
图中节点之间传递信息并更新状态,包括aggregator和updater两部分
aggregator:其目的为通过聚合节点
n
n
n周围节点的信息,学习节点
n
n
n的嵌入表示
h
n
h_{n}
hn,具体为:
h
n
=
f
(
x
n
,
x
c
o
[
n
]
,
h
n
e
[
n
]
,
x
n
e
[
n
]
)
h_{n}=f(x_{n},x_{co[n]},h_{ne[n]},x_{ne[n]})
hn=f(xn,xco[n],hne[n],xne[n])
其中,
f
f
f 可以解释为前馈全连接神经网络。
updater:模型在学习过程中迭代更新节点
n
n
n的嵌入表示
H
t
+
1
=
F
(
H
t
,
X
)
H^{t+1}=F(H^t,X)
Ht+1=F(Ht,X)
其中,
t
t
t为第
t
t
t轮迭代,
X
X
X为所有特征,
H
t
H^t
Ht为第
t
t
t轮迭代中所有节点的嵌入表示。
(2)输出模块
输出模块根据模型的应用类型不同可分为两种形式
1.node-focused
对于节点分类问题,模型输出最后一次迭代后每个节点对应的标签
o
n
=
g
(
h
n
T
,
x
n
)
o_n=g(h_n^T,x_n)
on=g(hnT,xn)
其中,
g
g
g 可以解释为前馈全连接神经网络。
此时模型的损失函数为:
l
o
s
s
=
∑
i
=
1
p
(
t
i
−
o
i
)
loss=\sum_{i=1}^p(t_i-o_i)
loss=i=1∑p(ti−oi)
其中
t
i
t_i
ti为第
i
i
i个节点的真实标签,
o
i
o_i
oi为模型输出标签,
p
p
p为节点数量
2.graph-focused
对于图分类问题,使用READOUT 函数从最后一次迭代中聚合节点特征来获取整个图的表征向量
h
(
G
)
h(G)
h(G)
h
(
G
)
=
R
E
A
D
O
U
T
(
{
h
v
(
K
)
∣
v
∈
G
}
)
h(G)=READOUT(\{h_v^{(K)}|v\in G\})
h(G)=READOUT({hv(K)∣v∈G})
READOUT 函数可以是一个简单的置换不变函数,例如求和或者 graph-level 的 pooling 函数 (Ying et al., 2018; Zhang et al., 2018)。
常见模型
图神经网络按图类型、训练方法、传播方法的不同有多种变体,详细如下图所示:
下一篇博客将介绍常见的几种模型:图卷积神经网络(GCN)、门控图神经网络(GGNN)、注意力图神经网络(GAT)
参考:
https://blog.youkuaiyun.com/u011748542/article/details/86289511
https://yq.aliyun.com/articles/694432
https://blog.youkuaiyun.com/u012678060/article/details/81056008
http://www.zhuanzhi.ai/document/2c5360f090fb1d6b434eb53870660712
https://www.jianshu.com/p/89fbed65cd04?winzoom=1