The Graph Neural Network Model
摘要
数据包含许多潜在关系可以表示为图,这些数据存在于科学和工程的众多领域,比如计算机视觉、分子化学、分子生物、模式识别以及数据挖掘。本文提出了一种新型的神经网络模型,称为图神经网络(GNN)模型,对现有的神经网络模型进行了拓展,适用于处理可以表示为图的数据。GNN模型通过一个函数 τ ( G , n ) ∈ R m \tau(G,n) \in \mathbb{R}^m τ(G,n)∈Rm将图 G G G和其中的一个顶点 n n n映射到一个 m − m- m−维欧式空间,可以直接处理众多实用类型的图,比如无环图,圈,有向和无向图等。通过一个监督学习算法对GNN模型的参数进行评估,并考虑了算法的计算成本。实验的结果证实了算法的有效性和泛化能力。
I n d e x Index Index T e r m s Terms Terms: 图神经网络,图处理,递归神经网络
引言
在许多领域数据可以自然的转化为图结构,比如蛋白质组学、图像分析、软件工程和自然语言处理等。最简单的图结构类型有单点和序列。信息可以被表示为树、无环图等更为复杂的图结构。传统上地数据关系挖掘作为通信领域中演绎逻辑设计的子项目,最近由于统计中的相关概念和神经网络在该领域的应用产生了一些新的研究方向。
在机器学习中,结构化的数据通常与从样本中学习一个函数 τ \tau τ 的目标相关联,这个函数 τ ( G , n ) ∈ R m \tau(G,n) \in \mathbb{R}^m τ(G,n)∈Rm 将图 G G G 和其中的一个顶点 n n n 映射到实向量。
关于图的应用一般可以分为两类,在本文中分别称为 g r a p h graph graph- f o c u s e d focused focused 和 n o d e node node- f o c u s e d focused focused 应用。 g r a p h graph graph- f o c u s e d focused focused 应用,函数与顶点相互独立,对图结构实现一个分类器或者回归任务。比如化学中的化合物可以通过图进行建模,每个顶点表示原子或者化学基团,边表示化学键。映射可以用来评估被评测化合物是否能导致某一特定的疾病。
n o d e node node- f o c u s e d focused focused 应用,映射依赖于顶点,因此分类或者回归任务依赖于每个顶点的性质,例如目标检测问题,检测图像中是否包含特定的目标,并进行定位。
传统的机器学习应用,在于处理阶段将图结构信息映射为简单的表示,比如实向量,即将图结构数据进行压缩,然后使用list-based技术处理被压缩的数据。了也正因此,一些重要的信息可能会丢失,例如节点间的拓扑信息依赖。
本文提出监督类型的神经网络模型,图神经网络(GNN),适用于面向图和顶点的应用方向。
GNNs 基于信息扩散机制。对于给定的图通过一组unit进行处理,每个unit和图的一个顶点对应。这些unit相互间进行信息交互并更新各自的状态直到一个稳定状态。根据每个unit的状态,GNN完成最后的输出。同时,引进了相应的学习算法,用来对GNN中的参数进行估计。
图神经网络模型
符号
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 的边,于顶点 n n n,和边 ( n 1 , n 2 ) (n_1,n_2) (n1,n2) 相对应的属性表示为 l n ∈ R l N l_n \in \mathbb{R}^{l_N} ln∈RlN 和 l ( n 1 , n 2 ) ∈ R l E l_{(n_1,n_2)}\in \mathbb{R}^{l_E} l(n1,n2)∈RlE。 l l l表示将图中所有的属性堆积构成的张量。
本文中考虑的domain是图和顶点构成的集合
D
=
G
×
N
\mathcal{D}=\mathcal{G}\times \mathcal{N}
D=G×N,其中
G
\mathcal{G}
G 图集合,
N
\mathcal{N}
N 顶点集合。监督学习框架的学习集合
L
=
{
(
G
i
,
n
i
,
j
,
t
i
,
j
)
∣
G
i
=
(
N
i
,
E
i
)
∈
G
;
n
i
,
j
∈
N
i
;
t
i
,
j
∈
R
m
,
1
≤
i
≤
p
,
1
≤
j
≤
q
i
}
\mathcal{L}=\{(G_i,n_{i,j},t_{i,j})|G_i=(N_i,E_i)\in \mathcal{G}; n_{i,j}\in N_i; t_{i,j}\in \mathbb{R}^m, 1\leq i \leq p, 1\leq j\leq q_i\}
L={(Gi,ni,j,ti,j)∣Gi=(Ni,Ei)∈G;ni,j∈Ni;ti,j∈Rm,1≤i≤p,1≤j≤qi}其中
t
i
,
j
t_{i,j}
ti,j表示顶点
n
i
,
j
n_{i,j}
ni,j所对应的期望目标值。
模型
一个直观的想法是将图中的顶点视为目标或者concept,边表示顶点间关系。每个concept 都自然的通过各自的特征和关联concepts的特征定义。然后通过顶点包含的信息以及其邻域的信息,给每个顶点
n
n
n一个状态向量
x
n
∈
R
s
x_n\in \mathbb{R}^s
xn∈Rs,如Fig.2所示。
参数函数
f
w
f_w
fw 称为局部变换函数,描述了顶点
n
n
n和其邻域的依赖性。
g
w
g_w
gw 称为局部输出函数,刻画了输出值的生成过程。
x
n
=
f
w
(
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
,
l
n
e
[
n
]
)
x_n = f_w(l_n,l_{co[n]},x_{ne[n]},l_{ne[n]})
xn=fw(ln,lco[n],xne[n],lne[n])
o
n
=
g
w
(
x
n
,
l
n
)
(
1
)
o_n=g_w(x_n,l_n) ~~~~~~~~~~~~~~~~~~(1)
on=gw(xn,ln) (1)其中
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
,
l
n
e
[
n
]
l_n,l_{co[n]},x_{ne[n]},l_{ne[n]}
ln,lco[n],xne[n],lne[n]分别表示顶点
n
n
n的属性,关联边的属性,邻接顶点的状态和属性。
R e m a r k : Remark: Remark:
- 邻域的定义可以根据实际情况自由设定。
- 变换函数和输出函数的参数可能依赖于不同给顶点 n n n。本文考虑相同的参数设置。
整合所有的状态,属性以及输出等式(1),可以表示为 x = F w ( x , l ) x=F_w(x,l)~~~~~~~~~~~~~~~~~~~~~~~~~ x=Fw(x,l) o = G w ( x , l N ) ( 2 ) o=G_w(x,l_N)~~~~~~~~~~~~~~~~~(2) o=Gw(x,lN) (2)其中 F w F_w Fw全局变换函数, G w G_w Gw全局输出函数。
实际上等式(2)定义了一个映射
φ
w
:
D
→
R
m
\varphi_w:\mathcal{D}\rightarrow \mathbb{R}^m
φw:D→Rm,以一个图为输入,图的每个顶点输出一个向量
o
n
o_n
on。
这里假设
F
w
F_w
Fw是压缩映射,即对
∀
x
,
y
\forall x,y
∀x,y,
∣
∣
F
w
(
x
,
l
)
−
F
w
(
y
,
l
)
∣
∣
≤
μ
∣
∣
x
−
y
∣
∣
||F_w(x,l)-F_w(y,l)||\leq\mu||x-y||
∣∣Fw(x,l)−Fw(y,l)∣∣≤μ∣∣x−y∣∣。
对于nonpositional图, 将(1)中的函数 f w f_w fw替换为 x n = ∑ u ∈ n e [ n ] h w ( l n , l ( n , u ) , x u , l u ) , n ∈ N ( 3 ) x_n = \sum_{u\in ne[n]}h_w(l_n,l_{(n,u)},x_u,l_u),~~~~~~n\in N~~~~~~(3) xn=u∈ne[n]∑hw(ln,l(n,u),xu,lu), n∈N (3)
实现GNN需要如下技术:
- 求解(1)的方法。
- 更新 f w f_w fw和 g w g_w gw的学习算法。
- f w f_w fw和 g w g_w gw的实现方案。
状态值的计算
通过经典的迭代方式对状态进行计算:
x
(
t
+
1
)
=
F
w
(
x
(
t
)
,
l
)
(
4
)
x(t+1)=F_w(x(t),l)~~~~~~(4)
x(t+1)=Fw(x(t),l) (4)其中
x
(
t
)
x(t)
x(t)表示
x
x
x的第
t
t
t次迭代值。
因此状态和输出值的迭代计算过程如下:
x
n
(
t
+
1
)
=
f
w
(
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
)
(
t
)
,
l
n
e
[
n
]
)
x_n(t+1)=f_w(l_n,l_{co[n]},x_{ne[n])}(t),l_{ne[n]})
xn(t+1)=fw(ln,lco[n],xne[n])(t),lne[n])
o
n
(
t
)
=
g
w
(
x
n
(
t
)
,
l
n
)
,
n
∈
N
.
(
5
)
o_n(t)=g_w(x_n(t),l_n),~~~~~~n\in N.~~~~~~~(5)
on(t)=gw(xn(t),ln), n∈N. (5)函数
f
w
f_w
fw和
g
w
g_w
gw可以使用前馈神经网络实现。
学习算法
给定数据集
L
=
{
(
G
i
,
n
i
,
j
,
t
i
,
j
)
∣
G
i
=
(
N
i
,
E
i
)
∈
G
;
n
i
,
j
∈
N
i
;
t
i
,
j
∈
R
m
,
1
≤
i
≤
p
,
1
≤
j
≤
q
i
}
\mathcal{L}=\{(G_i,n_{i,j},t_{i,j})|G_i=(N_i,E_i)\in \mathcal{G}; n_{i,j}\in N_i; t_{i,j}\in \mathbb{R}^m, 1\leq i \leq p, 1\leq j\leq q_i\}
L={(Gi,ni,j,ti,j)∣Gi=(Ni,Ei)∈G;ni,j∈Ni;ti,j∈Rm,1≤i≤p,1≤j≤qi}学习参数函数
φ
w
\varphi_w
φw。学习任务可以转化为最小化如下损失函数:
e
w
=
∑
i
=
1
p
∑
j
=
1
q
i
(
t
i
,
j
−
φ
w
(
G
i
,
n
i
,
j
)
)
2
.
(
6
)
e_w=\sum_{i=1}^p\sum_{j=1}^{q_i}(t_{i,j}-\varphi_w(G_i,n_{i,j}))^2.~~~~(6)
ew=i=1∑pj=1∑qi(ti,j−φw(Gi,ni,j))2. (6)
学习算法,基于梯度下降策略,可以分为下面三步:
- 迭代更新(5),直到 x ( T ) ≈ x x(T)\approx x x(T)≈x
- 计算梯度 ∂ e w ( T ) / ∂ w \partial e_w(T)/\partial w ∂ew(T)/∂w
- 更新权重 w w w
定理 1(可微性)
F
w
F_w
Fw和
G
w
G_w
Gw分别是GNN的全局变换和输出函数。如果
F
w
(
x
,
l
)
F_w(x,l)
Fw(x,l)和
G
w
(
x
,
l
N
)
G_w(x,l_N)
Gw(x,lN)对于
x
,
w
x,w
x,w是连续可微的,则
φ
w
\varphi_w
φw对于
w
w
w也是连续可微的。
定理 2(反向传播)
F
w
F_w
Fw和
G
w
G_w
Gw分别是GNN的全局变换和输出函数。假设
F
w
(
x
,
l
)
F_w(x,l)
Fw(x,l)和
G
w
(
x
,
l
N
)
G_w(x,l_N)
Gw(x,lN)对于
x
,
w
x,w
x,w是连续可微的。定义
z
(
t
)
=
z
(
t
+
1
)
⋅
∂
F
w
∂
x
(
x
,
l
)
+
∂
e
w
∂
o
⋅
∂
G
w
∂
x
(
x
,
l
N
)
.
(
7
)
z(t)=z(t+1) \cdot \frac{\partial F_w}{\partial x}(x,l)+\frac{\partial e_w}{\partial o}\cdot \frac{\partial G_w}{\partial x}(x,l_N).~~~~(7)
z(t)=z(t+1)⋅∂x∂Fw(x,l)+∂o∂ew⋅∂x∂Gw(x,lN). (7)
z
=
lim
t
→
−
∞
z
(
t
)
z=\lim_{t\rightarrow-\infty}z(t)
z=limt→−∞z(t)。进一步有:
∂
e
w
∂
w
=
∂
e
w
∂
o
⋅
∂
G
w
∂
w
(
x
,
l
N
)
+
z
⋅
∂
F
w
∂
w
(
x
,
l
)
(
8
)
\frac{\partial e_w}{\partial w}=\frac{\partial e_w}{\partial o}\cdot \frac{\partial G_w}{\partial w}(x,l_N)+z\cdot \frac{\partial F_w}{\partial w}(x,l)~~~~~~~~~~~~~~~~(8)
∂w∂ew=∂o∂ew⋅∂w∂Gw(x,lN)+z⋅∂w∂Fw(x,l) (8)其中
x
x
x是GNN的稳定状态。
具体学习算法如TABLE 1所示.主程序不断更新权重,直到期望的准确率或是到特定的停机标准。
变换和输出函数实现
Linear GNN
等式(3)可以自然的用如下函数表示:
h
w
(
l
n
,
l
(
n
,
u
)
,
x
u
,
l
u
)
=
A
n
,
u
x
u
+
b
n
(
12
)
h_w(l_n,l(n,u),x_u,l_u)=A_{n,u}x_u+b_n~~~~~~~~~~~~~(12)
hw(ln,l(n,u),xu,lu)=An,uxu+bn (12)其中
b
n
∈
R
s
b_n\in \mathbb{R}^s
bn∈Rs,
A
n
,
u
∈
R
s
×
s
A_{n,u}\in \mathbb{R}^{s\times s}
An,u∈Rs×s由两个神经网络(文中使用FNNs)的输出定义,变换网络
ϕ
w
:
R
2
l
N
+
l
E
→
R
s
2
\phi_w:\mathbb{R}^{2l_N+l_E}\rightarrow\mathbb{R}^{s^2}
ϕw:R2lN+lE→Rs2, forcing网络
ρ
w
:
R
l
N
→
R
s
\rho_w:\mathbb{R}^{l_N}\rightarrow\mathbb{R}^{s}
ρw:RlN→Rs。
Nonlinear GNN
h w h_w hw为多层 FNN。
实验结果
The Mutagenesis Problem
数据集中每一个分子转化为一个图,顶点表示原子,便表示原子键(ABs)。顶点的属性包括原子类型,能量状态,以及全局属性atom-bond(AB),chemical measurements ( C ), precoded structural (PS)。每个图中有一个监督顶点,AB描述的第一个原子。如果分子发生突变,期望输出为 1, 否则为 -1.
计算复杂性
Scarselli F, Gori M, Tsoi A C, et al. The graph neural network model[J]. IEEE Transactions on Neural Networks, 2009, 20(1): 61-80.