The Graph Neural Network
Abstract
- 在一些科学和工程领域内,许多数据之间的潜在关系可以用图来表示。比如以下几个方面:
(1) computer vision(计算机视觉)
(2) molecular chemistry(分子化学)
(3) molecular biology (分子生物学)
(4) pattern recognition(模式识别)
(5) data mining(数据挖掘) - 本文提出了Graph Neural Network (GNN)模型,可以用来直接处理大多数实际有用的图(如:无环图、循环图、有向图、无向图)。
【Tip】:GNN模型通过实现函数 τ ( G , n ) ∈ R m \tau(\boldsymbol{G}, \boldsymbol{n}) \in \mathbb{R}^{m} τ(G,n)∈Rm,将图 G \boldsymbol{G} G 和图中的一个顶点 n \boldsymbol{n} n 映射到m维欧几里得空间。 - 本文关键字:Graphical domains, graph neural networks(GNNs), graph processing, recursive neural networks。
Introduction
面向图域的应用程序的分类
Tip:本文面向图域的应用程序分为两大类:graph-focused 和 node-focused。
- graph-focused:
(1) 函数 τ \tau τ 独立于结点 n \boldsymbol{n} n,从而直接可以在图结构数据集上实现分类或回归。
(2) 如下图所示:一个化合物可以用图来建模,nodes代表原子(或化学基团),edges代表化学键。
- node-focused:
(1) 函数 τ \tau τ 依赖于结点 n \boldsymbol{n} n,因此分类或回归的实现会取决于节点的属性。
(2) 这里以对象识别为例:见下图,对应于城堡的节点为黑色,输出1;而在城堡之外的节点则为白色,输出0。
传统图数据的处理方法及存在的问题
-
在传统的机器学习应用里,一般在预处理阶段处理图结构数据,将图结构信息映射为简单的表示。
例如:将图结构数据映射为实向量,对数据进行压缩后,然后使用list-based技术处理数据。 -
这样简单的图数据处理就会出现一些问题:
例如:在这样的简单映射过程中,图结构的拓扑依赖关系会丢失,预处理的结果将会取决于预处理算法的细节表现。 -
为了解决上面所述的问题,有一些方法被提出,其主要思想大致如下:使用图结点之间的拓扑关系,对底层的图结构数据进行编码,以便在数据处理步骤合并图结构信息。
-
GNN模型的提出及简析
(1) 本文提出的监督神经网络适用于 graph-focused 和 node-focused 这两类问题,在拓展了RNN和随机游走模型的基础上,保留了它们的特点。
(2) GNN可以直接处理更一般的图类和 node-focused 应用,略过了会丢失图结构信息的预处理阶段。
(3) GNN是基于受限制的信息扩散机制的,每个 unit 对应图的一个节点,并按照节点的连接关系连接,这些 unit 交换信息并更新自身的状态,直到达到稳定的平衡。
The Graph Neural Network Model
定义及相关概念
- 本文的一些概念和符号
(1) 一个图 G \boldsymbol{G} G 由一对 ( N , E ) (\boldsymbol{N},\boldsymbol{E}) (N,E) 表示,其中 N \boldsymbol{N} N 表示节点集, E \boldsymbol{E} E 表示边集。
(2) n e [ n ] ne[n] ne[n] 表示节点 n n n 的邻接点集。
(3) c o [ n ] co[n] co[n] 表示以节点 n n n 为一个顶点的边集。
(4) l n ∈ R l N \boldsymbol{l}_n\in\mathbb{R}^{l_{N}} ln∈RlN 表示节点 n n n 的特征向量。
(5) l ( n 1 , n 2 ) ∈ R l E \boldsymbol{l}_{(n_1,n_2)}\in\mathbb{R}^{l_{E}} l(n1,n2)∈RlE 表示边 ( n 1 , n 2 ) (n_1,n_2) (n1,n2) 的特征向量。
(6) l \boldsymbol{l} l 表示所有向量堆叠在一起的向量。 - positional graphs 和 nonpositional graphs
(1) positional graphs:将唯一的整数标识符分配给节点的每个邻居,以指示其逻辑位置。
(2) nonpositional graphs:除了 positional graphs 目前所描述的那些图。
【Tip】:本文是基于 nonpositional graphs 讨论的,其后 f w \boldsymbol{f}_w fw 和 g w \boldsymbol{g}_w gw 函数的实现都是在此基础上。 - 假设有一个图-节点对集合
D
=
G
×
N
\mathcal{D}=\mathcal{G}\times\mathcal{N}
D=G×N,其中
G
\mathcal{G}
G 表示图集合,
N
\mathcal{N}
N 表示
G
\mathcal{G}
G 中的节点集合。在此图数据域的基础上,我们提出一个带有以下数据集的监督学习框架:
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 } \begin{array}{r} \mathcal{L}=\left\{\left(\boldsymbol{G}_{i}, n_{i, j}, \boldsymbol{t}_{i, j}\right) \mid, \boldsymbol{G}_{i}=\left(\boldsymbol{N}_{i}, \boldsymbol{E}_{i}\right) \in \mathcal{G}\right. \left.n_{i, j} \in \boldsymbol{N}_{i} ; \boldsymbol{t}_{i, j} \in \mathbb{R}^{m}, 1 \leq i \leq p, 1 \leq j \leq q_{i}\right\} \end{array} L={(Gi,ni,j,ti,j)∣,Gi=(Ni,Ei)∈Gni,j∈Ni;ti,j∈Rm,1≤i≤p,1≤j≤qi}
其中 n i , j ∈ N i n_{i,j}\in\boldsymbol{N}_i ni,j∈Ni 代表 N i ∈ N \boldsymbol{N}_i\in\mathcal{N} Ni∈N 中的第 j j j 节点; t i , j t_{i,j} ti,j 是与 n i , j n_{i,j} ni,j 相关联的期望目标。
GNN模型设计
- 基本的思路
\quad 图中的每个节点代表一个 concept ,边代表这些 concept 的关系,每个 concept 由其自身的 features 和与其相关联的 concepts(即 n e [ n ] ne[n] ne[n])来定义。因此,我们给每个节点 n n n 添加一个状态向量 x n ∈ R s \boldsymbol{x}_n\in\mathbb{R}^s xn∈Rs 来表示节点 n n n 的状态。并由此得出节点 n n n 的输出 ο n \boldsymbol{\omicron}_n οn。 - 假设 f w \boldsymbol{f}_w fw 为 local transition function 代表了节点 n n n 对其 n e [ n ] ne[n] ne[n] 的依赖, g w \boldsymbol{g}_w gw 为local output function用于描述输出的产生。我们先以下图为例: x 1 \boldsymbol{x}_1 x1的表示如图所示,涉及其邻接点的特征、邻接点的状态、以及相关边的特征。则可得对任意节点 n n n 有如下表示:
x
n
=
f
w
(
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
,
l
n
e
[
n
]
)
ο
n
=
g
w
(
x
n
,
l
n
)
(1)
\begin{aligned} \boldsymbol{x}_n &=\boldsymbol{f}_w(\boldsymbol{l}_n,\boldsymbol{l}_{co[n]},\boldsymbol{x}_{ne[n]},\boldsymbol{l}_{ne[n]})\\ \boldsymbol{\omicron}_n &=\boldsymbol{g}_w(\boldsymbol{x}_n,\boldsymbol{l}_n) \end{aligned}\tag{1}
xnοn=fw(ln,lco[n],xne[n],lne[n])=gw(xn,ln)(1) 我们继续对相关向量进行堆叠,即可得如下表示:
KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 156: …\boldsymbol{l}_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{N})\tag{2} \en…当(2)式中的
x
\boldsymbol{x}
x 和
ο
\boldsymbol{\omicron}
ο 被唯一定义,且(2)式定义了一个映射 KaTeX parse error: Got function '\boldsymbol' with no arguments as superscript at position 59: …rrow\mathbb{R}^\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{m}。此时根据Banach的不动点理论,假设
F
w
\boldsymbol{F}_w
Fw 是关于状态
x
\boldsymbol{x}
x 的压缩映射函数,则(2)这个方程组存在唯一解。即以一个图为输入,节点
n
n
n 返回一个输出
ο
n
\boldsymbol{\omicron}_n
οn 。
【Tip】压缩映射函数
F
w
\boldsymbol{F}_w
Fw,即对
∀
x
,
y
,
∥
F
w
(
x
,
l
)
−
F
w
(
y
,
l
)
∥
≤
μ
∥
x
−
y
∥
\forall x, y,\left\|F_{w}(x, l)-F_{w}(y, l)\right\| \leq \mu\|x-y\|
∀x,y,∥Fw(x,l)−Fw(y,l)∥≤μ∥x−y∥,
0
≤
μ
<
1
0\leq\mu<1
0≤μ<1。
\quad
这时我们回到(1)式,它让处理 positional graphs 和 nonpositional graphs 成为可能。但是(1)式对于 positional graphs 更为有用,对于 nonpositional graphs我们将(1)中的
f
w
\boldsymbol{f_w}
fw 更换为
h
w
\boldsymbol{h_w}
hw 如下所示:
x
n
=
∑
u
∈
n
e
[
n
]
h
w
(
l
n
,
l
(
n
,
u
)
,
x
u
,
l
u
)
,
n
∈
N
(3)
\boldsymbol{x}_{n}=\sum_{u \in \mathrm{ne}[n]} h_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{(n, u)}, \boldsymbol{x}_{u}, \boldsymbol{l}_{u}\right), \quad n \in \boldsymbol{N}\tag{3}
xn=u∈ne[n]∑hw(ln,l(n,u),xu,lu),n∈N(3)这里是根据 nonpositional graphs 的性质进行设置,将原本用于节点
n
n
n 的函数
f
w
\boldsymbol{f_w}
fw,换成作用于
n
n
n 的邻接点的函数
h
w
\boldsymbol{h_w}
hw,将所有邻接点计算的值求和作为节点
n
n
n 的状态。
2. 实现GNN模型需要解决的问题
(1) 解决(1)式的方法
(2) 更新
f
w
\boldsymbol{f}_w
fw 和
g
w
\boldsymbol{g}_w
gw 的学习算法
(3)
f
w
\boldsymbol{f}_w
fw 和
g
w
\boldsymbol{g}_w
gw 的实现方案
【Tip】接下来将围绕这三个问题展开讨论
Computation of the State
- 刚刚我们说了Banach不动点理论确定了方程组(1)存在唯一的解。那么这个解可求吗?又如何求呢?其实不动点理论除了可以确定有唯一解外,还提供了一个经典的迭代求解的方法(4):
x ( t + 1 ) = F w ( x ( t ) , l ) (4) \boldsymbol{x}(t+1)=\boldsymbol{F}_w(\boldsymbol{x}(t),\boldsymbol{l})\tag{4} x(t+1)=Fw(x(t),l)(4)这里 x ( t ) \boldsymbol{x}(t) x(t) 代表 x \boldsymbol{x} x 的第 t t t 次迭代结果,(4)式对任意的初值 x ( 0 ) \boldsymbol{x}(0) x(0) 可以以指数的速度收敛于(2)的解。 - 当我们将其还原回(1)式,可得(5)式如下:
x n ( t + 1 ) = f w ( l n , l c o [ n ] , x n e [ n ] ( t ) , l n e [ n ] ) o n ( t ) = g w ( x n ( t ) , l n ) , n ∈ N (5) \begin{aligned} \boldsymbol{x}_{n}(t+1) &=f_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{\mathbf{c o [ n}]}, \boldsymbol{x}_{\mathrm{ne}[n]}(t), \boldsymbol{l}_{\mathrm{ne}[n]}\right) \\ \boldsymbol{o}_{n}(t) &=g_{\boldsymbol{w}}\left(\boldsymbol{x}_{n}(t), \boldsymbol{l}_{n}\right), \quad n \in \boldsymbol{N} \end{aligned}\tag{5} xn(t+1)on(t)=fw(ln,lco[n],xne[n](t),lne[n])=gw(xn(t),ln),n∈N(5) (5)式中的计算其实是一个由多个计算 f w \boldsymbol{f}_w fw 和 g w \boldsymbol{g}_w gw 单元组成的网络,也就是编码网络,具体我们见下图:在此图中:
a.将此图中的每个节点都替换成计算 f w \boldsymbol{f}_w fw 的 u n i t unit unit
b.每个 u n i t unit unit 都存储了节点 n n n 的当前状态 x n ( t ) \boldsymbol{x}_n(t) xn(t)
c.当 u n i t unit unit 被激活后,会通过当前节点的特征以及邻接信息来计算节点 n n n 的下一个时刻状态 x n ( t + 1 ) \boldsymbol{x}_n(t+1) xn(t+1)
d.节点的输出,是由实现 g w \boldsymbol{g}_w gw 的 u n i t unit unit 产生
我们把上图展开,会得到下面的等效图:
从这张图我们不难发现,当 f w \boldsymbol{f}_w fw 和 g w \boldsymbol{g}_w gw 由FNN(前馈神经网络)实现时,这个编码网络其实就是RNN(循环神经网络)。
【Tip】至此实现GNN模型的第一个问题解决
The Learning Algorithm
- 学习算法的基本实现思路
\quad GNN的学习算法其实就是评估参数 w \boldsymbol{w} w,使得函数 KaTeX parse error: Got function '\boldsymbol' with no arguments as superscript at position 59: …rrow\mathbb{R}^\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{m} 能够逼近下面学习数据集中的数据
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 } \begin{array}{r} \mathcal{L}=\left\{\left(\boldsymbol{G}_{i}, n_{i, j}, \boldsymbol{t}_{i, j}\right) \mid, \boldsymbol{G}_{i}=\left(\boldsymbol{N}_{i}, \boldsymbol{E}_{i}\right) \in \mathcal{G}\right. \left.n_{i, j} \in \boldsymbol{N}_{i} ; \boldsymbol{t}_{i, j} \in \mathbb{R}^{m}, 1 \leq i \leq p, 1 \leq j \leq q_{i}\right\} \end{array} L={(Gi,ni,j,ti,j)∣,Gi=(Ni,Ei)∈Gni,j∈Ni;ti,j∈Rm,1≤i≤p,1≤j≤qi}这里之前我们说过 n i , j ∈ N i n_{i,j}\in\boldsymbol{N}_i ni,j∈Ni 代表 N i ∈ N \boldsymbol{N}_i\in\mathcal{N} Ni∈N 中的第 j j j 节点; t i , j t_{i,j} ti,j 是与 n i , j n_{i,j} ni,j 相关联的期望目标。 q i q_i qi 则是代表 G i \boldsymbol{G}_{i} Gi 中的监督节点的个数。对于 graph-focused 和 node-focused 两类任务来说,其实都是节点监督问题。那么这个学习任务就可以被转化为(6)式:也就是最小化这个二次代价函数
e w = ∑ i = 1 p ∑ i = 1 q i ( t i , j − φ w ( G i , n i , j ) ) 2 (6) e_{\boldsymbol{w}}=\sum_{i=1}^{p} \sum_{i=1}^{q_{i}}\left(\boldsymbol{t}_{i, j}-\varphi_{\boldsymbol{w}}\left(\boldsymbol{G}_{i}, n_{i, j}\right)\right)^{2}\tag{6} ew=i=1∑pi=1∑qi(ti,j−φw(Gi,ni,j))2(6) - 基于梯度下降策略算法的基本步骤
(1) 利用迭代方程(5)迭代 T T T 次得到 x n ( t ) \boldsymbol{x}_n(t) xn(t) ,此时接近(2)的不动点解: x ( T ) ≈ x \boldsymbol{x}(T)\approx\boldsymbol{x} x(T)≈x
(2) 计算参数权重 w w w 的梯度: ∂ e w ( T ) ∂ w \boldsymbol{\frac{\partial e_{w}(T)}{\partial w}} ∂w∂ew(T)
(3) 根据上一步计算的结果更新权重 w w w - 学习算法的基本流程
如此图所示:FORWARD用于计算不动点,BACKWARD用于计算权重梯度。
【Tip】至此实现GNN模型的第二个问题解决
Transition and Output Function Implementations
-
g
w
\boldsymbol{g_w}
gw 函数的实现
g w \quad\boldsymbol{g_w} gw 是一个输出函数,其本身不需要满足任何特定的约束。在GNN中, g w \boldsymbol{g_w} gw 用多层前馈神经网络实现。 -
f
w
\boldsymbol{f_w}
fw 函数的实现
\quad 【Tip】 f w \boldsymbol{f}_w fw 的实现是基于 nonpositional graphs,采用 Linear 和 Nonlinear 两种不同的策略来实现。
(1) Linear (nonpositional) GNN
\quad 式(3)的函数可以用以下方式来实现:
h w ( l n , l ( n , u ) , x u , l u ) = A n , u x u + b n h_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{(n, u)}, \boldsymbol{x}_{u}, \boldsymbol{l}_{u}\right)=\boldsymbol{A}_{n, u} \boldsymbol{x}_{u}+\boldsymbol{b}_{n} hw(ln,l(n,u),xu,lu)=An,uxu+bn其中,向量 b n ∈ R s \boldsymbol{b}_{n}\in\mathbb{R}^s bn∈Rs,矩阵 A n , u ∈ R s × s \boldsymbol{A}_{n,u}\in\mathbb{R}^{s\times s} An,u∈Rs×s,两者被定义为两个前馈神经网络的输出,向量 b n \boldsymbol{b}_{n} bn 由 f o r c e i n g n e t w o r k forceing\ network forceing network 产生;矩阵 A n , u \boldsymbol{A}_{n,u} An,u 由 t r a n s i t i o n n e t w o r k transition\ network transition network 产生。又 f o r c e i n g n e t w o r k forceing\ network forceing network 表示为: ϕ w : R 2 l N + l E → R s 2 \phi_{\boldsymbol{w}}:\mathbb{R}^{2 l_{N}+l_{E}} \rightarrow \mathbb{R}^{s^{2}} ϕw:R2lN+lE→Rs2; t r a n s i t i o n n e t w o r k transition\ network transition network 表示为: ρ w : R l N → R s \rho_{\boldsymbol{w}}: \mathbb{R}^{l_{N}} \rightarrow \mathbb{R}^{s} ρw:RlN→Rs,则 b n \boldsymbol{b}_{n} bn 和 A n , u \boldsymbol{A}_{n,u} An,u 可定义如下:
A n , u = μ s ∣ ne [ u ] ∣ ⋅ Ξ b n = ρ w ( l n ) \begin{aligned} \boldsymbol{A}_{n, u} &=\frac{\mu}{s|\operatorname{ne}[u]|} \cdot \mathbf\Xi\\ \boldsymbol{b}_{n} &=\rho_{\boldsymbol{w}}\left(l_{n}\right) \end{aligned} An,ubn=s∣ne[u]∣μ⋅Ξ=ρw(ln)这里, μ ∈ ( 0 , 1 ) \mu\in(0,1) μ∈(0,1); μ s ∣ ne [ u ] ∣ \frac{\mu}{s|\operatorname{ne}[u]|} s∣ne[u]∣μ为系数; Ξ = resize ( ϕ w ( l n , l ( n , u ) , l u ) ) \Xi=\operatorname{resize}\left(\phi_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{(n, u)}, \boldsymbol{l}_{u}\right)\right) Ξ=resize(ϕw(ln,l(n,u),lu)),这里是将 s 2 s^2 s2 维向量转化为 s × s s\times s s×s 的矩阵。当我们为 t r a n s i t i o n n e t w o r k transition\ network transition network 选取合适的激活函数(比如: t a n h ( ) tanh() tanh(),双曲正切函数),可以使得 ∥ ϕ w ( l n , l ( n , u ) , l u ) ∥ 1 ≤ s \left\|\phi_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{(n, u)}, \boldsymbol{l}_{u}\right)\right\|_{1} \leq s ∥ ∥ϕw(ln,l(n,u),lu)∥ ∥1≤s。在这种情况下: F w ( x , l ) = A x + b F_{\boldsymbol{w}}(\boldsymbol{x}, \boldsymbol{l})=\boldsymbol{A} \boldsymbol{x}+\boldsymbol{b} Fw(x,l)=Ax+b,其中, A \boldsymbol{A} A 和 b \boldsymbol{b} b 分别是 A n , u \boldsymbol{A}_{n,u} An,u 和 b n \boldsymbol{b}_{n} bn 的堆叠形式,在通过简单的代数运算即可得:
∥ ∂ F w ∂ x ∥ 1 = ∥ A ∥ 1 ≤ max u ∈ N ( ∑ n ∈ ne [ u ] ∥ A n , u ∥ 1 ) ≤ max u ∈ N ( μ s ∣ ne [ u ] ∣ ⋅ ∑ n ∈ ne [ u ] ∥ Ξ ∥ 1 ) ≤ μ \begin{aligned} \left\|\frac{\partial F_{\boldsymbol{w}}}{\partial \boldsymbol{x}}\right\|_{1} &=\|\boldsymbol{A}\|_{1} \leq \max _{u \in \boldsymbol{N}}\left(\sum_{n \in \operatorname{ne}[u]}\left\|\boldsymbol{A}_{n, u}\right\|_{1}\right) \leq \max _{u \in N}\left(\frac{\mu}{s|\operatorname{ne}[u]|} \cdot \sum_{n \in \operatorname{ne}[u]}\|\Xi\|_{1}\right) \leq \mu \end{aligned} ∥ ∥∂x∂Fw∥ ∥1=∥A∥1≤u∈Nmax⎝ ⎛n∈ne[u]∑∥An,u∥1⎠ ⎞≤u∈Nmax⎝ ⎛s∣ne[u]∣μ⋅n∈ne[u]∑∥Ξ∥1⎠ ⎞≤μ即对 ∀ w , F w \forall w,\ F_w ∀w, Fw 都是一个与一范式相关的压缩映射函数。
(2) Nonlinear (nonpositional) GNN
\quad 在这种方式下, h w \boldsymbol{h_w} hw 直接用多层前馈神经网络实现。为了保证 F w \boldsymbol{F_w} Fw 是一个压缩映射函数,会有部分的参数 w \boldsymbol{w} w 不会被使用,这可以通过添加惩罚项来实现,如下所示:
e w = ∑ i = 1 p ∑ j = 1 q i ( t i , j − φ w ( G i , n i , j ) ) 2 + β L ( ∥ ∂ F w ∂ x ∥ ) e_{\boldsymbol{w}}=\sum_{i=1}^{p} \sum_{j=1}^{q_{i}}\left(\boldsymbol{t}_{i, j}-\varphi_{\boldsymbol{w}}\left(\boldsymbol{G}_{i}, n_{i, j}\right)\right)^{2}+\beta L\left(\left\|\frac{\partial F_{\boldsymbol{w}}}{\partial \boldsymbol{x}}\right\|\right) ew=∑i=1p∑j=1qi(ti,j−φw(Gi,ni,j))2+βL(∥ ∥∂x∂Fw∥ ∥) , L ( y ) = { ( y − μ ) 2 y > μ 0 y ≤ μ L(y)=\begin{cases}& (y-\mu)^2& y>\mu\\&0& y\leq\mu\end{cases} L(y)={(y−μ)20y>μy≤μ,为惩罚项 。
【Tip】至此实现GNN模型的第三个问题解决
Experimental results
\qquad 此部分使用文章所述的两种解决方法 nonlinear 和 linear 将GNN模型用于Subgraph Matching Problem 、Mutagenesis Problem 、Web Page Ranking三个问题的解决上,其效果各有不同,大家有余力可以自行分析。
公式速查
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
}
\begin{array}{r} \mathcal{L}=\left\{\left(\boldsymbol{G}_{i}, n_{i, j}, \boldsymbol{t}_{i, j}\right) \mid, \boldsymbol{G}_{i}=\left(\boldsymbol{N}_{i}, \boldsymbol{E}_{i}\right) \in \mathcal{G}\right. \left.n_{i, j} \in \boldsymbol{N}_{i} ; \boldsymbol{t}_{i, j} \in \mathbb{R}^{m}, 1 \leq i \leq p, 1 \leq j \leq q_{i}\right\} \end{array}
L={(Gi,ni,j,ti,j)∣,Gi=(Ni,Ei)∈Gni,j∈Ni;ti,j∈Rm,1≤i≤p,1≤j≤qi}
x
n
=
f
w
(
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
,
l
n
e
[
n
]
ο
n
=
g
w
(
x
n
,
l
n
)
(1)
\begin{aligned} \boldsymbol{x}_n &=\boldsymbol{f}_w(\boldsymbol{l}_n,\boldsymbol{l}_{co[n]},\boldsymbol{x}_{ne[n]},\boldsymbol{l}_{ne[n]} \\ \boldsymbol{\omicron}_n &=\boldsymbol{g}_w(\boldsymbol{x}_n,\boldsymbol{l}_n) \end{aligned}\tag{1}
xnοn=fw(ln,lco[n],xne[n],lne[n]=gw(xn,ln)(1)
KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 156: …\boldsymbol{l}_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{N}) \end{align…
x
n
=
∑
u
∈
n
e
[
n
]
h
w
(
l
n
,
l
(
n
,
u
)
,
x
u
,
l
u
)
,
n
∈
N
(3)
\boldsymbol{x}_{n}=\sum_{u \in \mathrm{ne}[n]} h_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{(n, u)}, \boldsymbol{x}_{u}, \boldsymbol{l}_{u}\right), \quad n \in \boldsymbol{N}\tag{3}
xn=u∈ne[n]∑hw(ln,l(n,u),xu,lu),n∈N(3)
x
(
t
+
1
)
=
F
w
(
x
(
t
)
,
l
)
(4)
\boldsymbol{x}(t+1)=\boldsymbol{F}_w(\boldsymbol{x}(t),\boldsymbol{l})\tag{4}
x(t+1)=Fw(x(t),l)(4)
x
n
(
t
+
1
)
=
f
w
(
l
n
,
l
c
o
[
n
]
,
x
n
e
[
n
]
(
t
)
,
l
n
e
[
n
]
)
o
n
(
t
)
=
g
w
(
x
n
(
t
)
,
l
n
)
,
n
∈
N
(5)
\begin{aligned} \boldsymbol{x}_{n}(t+1) &=f_{\boldsymbol{w}}\left(\boldsymbol{l}_{n}, \boldsymbol{l}_{\mathbf{c o [ n}]}, \boldsymbol{x}_{\mathrm{ne}[n]}(t), \boldsymbol{l}_{\mathrm{ne}[n]}\right) \\ \boldsymbol{o}_{n}(t) &=g_{\boldsymbol{w}}\left(\boldsymbol{x}_{n}(t), \boldsymbol{l}_{n}\right), \quad n \in \boldsymbol{N} \end{aligned}\tag{5}
xn(t+1)on(t)=fw(ln,lco[n],xne[n](t),lne[n])=gw(xn(t),ln),n∈N(5)
e
w
=
∑
i
=
1
p
∑
i
=
1
q
i
(
t
i
,
j
−
φ
w
(
G
i
,
n
i
,
j
)
)
2
(6)
e_{\boldsymbol{w}}=\sum_{i=1}^{p} \sum_{i=1}^{q_{i}}\left(\boldsymbol{t}_{i, j}-\varphi_{\boldsymbol{w}}\left(\boldsymbol{G}_{i}, n_{i, j}\right)\right)^{2}\tag{6}
ew=i=1∑pi=1∑qi(ti,j−φw(Gi,ni,j))2(6)
参考文献
[1] Franco Scarselli, Marco Gori, Ah Chung Tsoi, Markus Hagenbuchner, Gabriele Monfardini : The Graph Neural Network Model. IEEE Trans. Neural Networks 20(1): 61-80 (2009)