Recurrent Graph Neural Networks

递归图神经网络(RecGNN)大多是图神经网络的开创性作品。 RecGNN旨在学习具有递归神经体系结构的节点表示。 他们假设图中的节点不断与其邻居交换信息/消息,直到达到稳定的平衡。 RecGNNs在概念上很重要,并启发了后来对卷积图神经网络的研究。 特别地,消息传递的思想被基于空间的卷积图神经网络所继承。[1]

1 A New Model for earning in raph Domains

[Marco Gori, 2005, 2] 最早提出了GCN的概念。

记nnn为图上一顶点,x⃗n\vec{x}_nxn​是顶点nnn的状态(state),l⃗n\vec{l}_nln​是顶点nnn的标签。相应的,x⃗ne[n],l⃗ne[n]\vec{x}_{\text{ne}[n]}, \vec{l}_{\text{ne}[n]}xne[n]​,lne[n]​是是顶点nnn的邻居顶点的状态和标签。

  • transition function :
    x⃗n=fw(l⃗n,x⃗ne[n],l⃗ne[n]),n∈N(1.1)\vec{x}_n = f_w \left( \vec{l}_n, \vec{x}_{\text{ne}[n]}, \vec{l}_{\text{ne}[n]} \right), \qquad n \in \mathcal{N} \tag{1.1} xn​=fw​(ln​,xne[n]​,lne[n]​),n∈N(1.1)

  • output function :
    o⃗n=gw(x⃗n,l⃗n),n∈N(1.2)\vec{o}_n = g_w \left( \vec{x}_n, \vec{l}_n \right), \qquad n \in \mathcal{N} \tag{1.2} on​=gw​(xn​,ln​),n∈N(1.2)

将式(1.1)替换成下式:
x⃗n=∑u∈Nhw(l⃗n,x⃗u,l⃗u),n∈N(1.3)\vec{x}_n = \sum_{u \in \mathcal{N}} h_w \left( \vec{l}_n, \vec{x}_u, \vec{l}_u \right), \qquad n \in \mathcal{N} \tag{1.3} xn​=u∈N∑​hw​(ln​,xu​,lu​),n∈N(1.3)
其中hwh_whw​可以用显式线性函数或者神经网络。

  • Linear GNN:
    hw(l⃗n,x⃗u,l⃗u)=An,ux⃗u+bnAn,u=μs⋅∣ne[u]∣⋅Resize(ϕw(l⃗n,l⃗u))b⃗n=ρw(l⃗n)ϕw:R2q×1→Rs2×1ρw:Rq→Rsμ∈(0,1)(1.4)\begin{aligned} h_w \left( \vec{l}_n, \vec{x}_u, \vec{l}_u \right) &= A_{n,u} \vec{x}_u + b_n \\ A_{n,u} &= \frac{\mu}{s \cdot |\text{ne}[u]|} \cdot Resize\left( \phi_w (\vec{l}_n, \vec{l}_u) \right) \\ \vec{b}_n &= \rho_w (\vec{l}_n)\\ \phi_w &: \reals^{2q \times 1} \rightarrow \reals^{s^2 \times 1} \\ \rho_w &: \reals^{q} \rightarrow \reals^{s} \\ \mu & \in (0, 1) \tag{1.4} \end{aligned} hw​(ln​,xu​,lu​)An,u​bn​ϕw​ρw​μ​=An,u​xu​+bn​=s⋅∣ne[u]∣μ​⋅Resize(ϕw​(ln​,lu​))=ρw​(ln​):R2q×1→Rs2×1:Rq→Rs∈(0,1)​(1.4)

  • Neural GNN:
    hwh_whw​使用神经网络。

2 The Graph Neural Network Model

[Franco Scarselli, 2009, 3] 与 [Marco Gori, 2005, 2]相比多了边上的信息l⃗co[n]\vec{l}_{\text{co}[n]}lco[n]​。

x⃗n=fw(l⃗n,l⃗co[n],x⃗ne[n],l⃗ne[n])o⃗n=gw(x⃗n,l⃗n),n∈N(2.1)\begin{aligned} \vec{x}_n &= f_w \left( \vec{l}_n, \vec{l}_{\text{co}[n]}, \vec{x}_{\text{ne}[n]}, \vec{l}_{\text{ne}[n]} \right) \\ \vec{o}_n &= g_w \left( \vec{x}_n, \vec{l}_n \right), \qquad n \in \mathcal{N} \end{aligned} \tag{2.1} xn​on​​=fw​(ln​,lco[n]​,xne[n]​,lne[n]​)=gw​(xn​,ln​),n∈N​(2.1)

相应的,
x⃗n=∑u∈Nhw(l⃗n,l⃗(n,u),x⃗u,l⃗u),n∈N(2.2)\vec{x}_n = \sum_{u \in \mathcal{N}} h_w \left( \vec{l}_n, \vec{l}_{(n,u)}, \vec{x}_u, \vec{l}_u \right), \qquad n \in \mathcal{N} \tag{2.2} xn​=u∈N∑​hw​(ln​,l(n,u)​,xu​,lu​),n∈N(2.2)

在训练上,先循环式(2.2)直到∥x⃗n(t)−x⃗n(t−1)∥≤ϵ\|\vec{x}_n(t) - \vec{x}_n(t-1)\| \leq \epsilon∥xn​(t)−xn​(t−1)∥≤ϵ,即达到稳定点,然后再经行BP反向传播,更新参数,接着继续循环式(2.2)。

3 Graph Echo State Networks

[Claudio Gallicchio, 2010, 4] 将transition function分成了:

  • local state transition function :
    xt(v)=τ(u⃗(v),xt−1(N(v)))=f(Winu⃗(v),W^Nxt−1(N(v)))(3.1)\begin{aligned} x_t(v) &= \tau \left( \vec{u}(v), x_{t-1}\left( \mathcal{N}(v) \right)\right) \\ &= f \left( W_{\text{in}} \vec{u}(v), \hat{W}_{\mathcal{N}} x_{t-1}\left( \mathcal{N}(v) \right) \right) \end{aligned} \tag{3.1} xt​(v)​=τ(u(v),xt−1​(N(v)))=f(Win​u(v),W^N​xt−1​(N(v)))​(3.1)

  • global state transition function :
    xt(g)=τ^(g,xt−1(g))=(f(Winu⃗(v1)+W^v1xt−1(g))⋮f(Winu⃗(v∣V∣)+W^v∣V∣xt−1(g))).(3.2)\begin{aligned} x_t(g) &= \hat{\tau} \left( g, x_{t-1}(g) \right) \\ &= \begin{pmatrix} f \left( W_{\text{in}} \vec{u}(v_1) + \hat{W}_{v_1} x_{t-1}(g) \right) \\ \vdots \\ f \left( W_{\text{in}} \vec{u}(v_{|\mathcal{V}|}) + \hat{W}_{v_{|\mathcal{V}|}} x_{t-1}(g) \right) \end{pmatrix}. \end{aligned} \tag{3.2} xt​(g)​=τ^(g,xt−1​(g))=⎝⎜⎜⎜⎛​f(Win​u(v1​)+W^v1​​xt−1​(g))⋮f(Win​u(v∣V∣​)+W^v∣V∣​​xt−1​(g))​⎠⎟⎟⎟⎞​.​(3.2)

output function根据任务不同选择的函数也不一样:

  • structure-to-structure:

y⃗(v)=gout(x⃗(v))=Woutx⃗(v).(3.3)\vec{y}(v) = g_{\text{out}}(\vec{x}(v)) = W_{\text{out}} \vec{x}(v). \tag{3.3} y​(v)=gout​(x(v))=Wout​x(v).(3.3)

  • structure-to-element:

y⃗(v)=gout(1∣V∣∑v∈Vx⃗(v))=Wout(1∣V∣∑v∈Vx⃗(v)).(3.4)\vec{y}(v) = g_{\text{out}} \left( \frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}} \vec{x}(v) \right) = W_{\text{out}} \left( \frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}} \vec{x}(v) \right). \tag{3.4} y​(v)=gout​(∣V∣1​v∈V∑​x(v))=Wout​(∣V∣1​v∈V∑​x(v)).(3.4)

4 Gated Graph Sequence Neural Networks

[Yujia Li, 2015, 5] 在[Franco Scarselli, 2009, 3]基础上,将l⃗co[n]\vec{l}_{\text{co}[n]}lco[n]​分成出边和入边:

h⃗v(t)=f∗(l⃗v,l⃗co[v],l⃗ne[v],h⃗ne[v](t−1))=∑v′∈IN[v]f(l⃗v,l⃗(v′,v),l⃗v′,h⃗v′(t−1))+∑v′∈OUT[v]f(l⃗v,l⃗(v,v′),l⃗v′,h⃗v′(t−1))(4.1)\begin{aligned} \vec{h}_{v}^{(t)} &= f^{*}\left( \vec{l}_v, \vec{l}_{\text{co}[v]}, \vec{l}_{\text{ne}[v]}, \vec{h}_{\text{ne}[v]}^{(t-1)} \right) \\ &= \sum_{v^{'} \in \text{IN}[v]} f \left( \vec{l}_v, \vec{l}_{(v^{'}, v)}, \vec{l}_{v^{'}}, \vec{h}_{v^{'}}^{(t-1)} \right) +\sum_{v^{'} \in \text{OUT}[v]} f \left( \vec{l}_v, \vec{l}_{(v, v^{'})}, \vec{l}_{v^{'}}, \vec{h}_{v^{'}}^{(t-1)} \right) \end{aligned} \tag{4.1} hv(t)​​=f∗(lv​,lco[v]​,lne[v]​,hne[v](t−1)​)=v′∈IN[v]∑​f(lv​,l(v′,v)​,lv′​,hv′(t−1)​)+v′∈OUT[v]∑​f(lv​,l(v,v′)​,lv′​,hv′(t−1)​)​(4.1)

h⃗v\vec{h}_vhv​使用GRU单元:
h⃗v(1)=[x⃗vT,0⃗]TA=[A(out),A(in)]a⃗v(t)=Av:T[h⃗1(t−1),⋯,h⃗∣V∣(t−1)]T+b⃗z⃗v(t)=σ(Wza⃗v(t)+Uzh⃗v(t−1))r⃗v(t)=σ(Wra⃗v(t)+Urh⃗v(t−1))h⃗v(t)~=tanh⁡(Wa⃗v(t)+U(r⃗v(t)⊙h⃗v(t−1)))h⃗v(t)=(1−z⃗v(t))⊙h⃗v(t−1)+z⃗v(t)⊙h⃗v(t)~.(4.2)\begin{aligned} \vec{h}_v^{(1)} &= \left[\vec{x}_v^T, \vec{0} \right]^T \\ A &= \left[A^{\text{(out)}}, A^{\text{(in)}} \right] \\ \vec{a}_v^{(t)} &= A_{v:}^T\left [\vec{h}_{1}^{(t-1)}, \cdots, \vec{h}_{|\mathcal{V}|}^{(t-1)} \right]^T + \vec{b} \\ \vec{z}_v^{(t)} &= \sigma \left( W^{z} \vec{a}_v^{(t)} + U^{z} \vec{h}_v^{(t-1)} \right) \\ \vec{r}_v^{(t)} &= \sigma \left( W^{r} \vec{a}_v^{(t)} + U^{r} \vec{h}_v^{(t-1)} \right) \\ \widetilde{\vec{h}_v^{(t)}} &= \tanh \left( W \vec{a}_v^{(t)} + U \left( \vec{r}_v^{(t)} \odot \vec{h}_v^{(t-1)} \right) \right) \\ \vec{h}_v^{(t)} &= \left( 1 - \vec{z}_v^{(t)} \right) \odot \vec{h}_v^{(t-1)} + \vec{z}_v^{(t)} \odot \widetilde{\vec{h}_v^{(t)}}. \end{aligned} \tag{4.2} hv(1)​Aav(t)​zv(t)​rv(t)​hv(t)​​hv(t)​​=[xvT​,0]T=[A(out),A(in)]=Av:T​[h1(t−1)​,⋯,h∣V∣(t−1)​]T+b=σ(Wzav(t)​+Uzhv(t−1)​)=σ(Wrav(t)​+Urhv(t−1)​)=tanh(Wav(t)​+U(rv(t)​⊙hv(t−1)​))=(1−zv(t)​)⊙hv(t−1)​+zv(t)​⊙hv(t)​​.​(4.2)

output function :
h⃗G=tanh⁡(∑v∈Vσ(i([h⃗v(T),x⃗v]))⊙tanh⁡j([h⃗v(T),x⃗v]))\vec{h}_{\mathcal{G}} = \tanh \left( \sum_{v \in \mathcal{V}} \sigma \left( i\left( [\vec{h}_v^{(T)}, \vec{x}_v]\right) \right) \odot \tanh j\left( [\vec{h}_v^{(T)}, \vec{x}_v]\right) \right) hG​=tanh(v∈V∑​σ(i([hv(T)​,xv​]))⊙tanhj([hv(T)​,xv​]))
其中i(.),j(.)i(.),j(.)i(.),j(.)都是神经网络,以[h⃗v(T),x⃗v][\vec{h}_v^{(T)}, \vec{x}_v][hv(T)​,xv​]做输入。

输出序列o⃗(1),⋯,o⃗(K)\vec{o}^{(1)}, \cdots, \vec{o}^{(K)}o(1),⋯,o(K),对于第kkk个输出,记X(k)=[x⃗1(k),⋯,x⃗∣V∣(k)]∈R∣V∣×LV\mathcal{X}^{(k)} = \left[ \vec{x}_{1}^{(k)}, \cdots, \vec{x}_{|\mathcal{V}|}^{(k)} \right] \in \reals^{|\mathcal{V}| \times L_{\mathcal{V}}}X(k)=[x1(k)​,⋯,x∣V∣(k)​]∈R∣V∣×LV​,在第ttt步为H(k,t)=[h⃗1(k,t),⋯,h⃗∣V∣(k,t)]∈R∣V∣×D\mathcal{H}^{(k,t)} = \left[ \vec{h}_{1}^{(k,t)}, \cdots, \vec{h}_{|\mathcal{V}|}^{(k,t)} \right] \in \reals^{|\mathcal{V}| \times D }H(k,t)=[h1(k,t)​,⋯,h∣V∣(k,t)​]∈R∣V∣×D。结构如下图:

在使用H(k,T)\mathcal{H}^{(k,T)}H(k,T)预测Xk+1)\mathcal{X}^{k+1)}Xk+1)时,我们向模型当中引入了节点标注。每个节点的预测都是相互独立的,使用神经网络j([h⃗v(k,T),x⃗v(k)])j\left( [\vec{h}_v^{(k,T)}, \vec{x}_v^{(k)}]\right)j([hv(k,T)​,xv(k)​])来完成:
x⃗v(k+1)=σ(j([h⃗v(k,T),x⃗v(k)]))\vec{x}_v^{(k+1)} = \sigma \left( j\left( [\vec{h}_v^{(k,T)}, \vec{x}_v^{(k)}]\right) \right) xv(k+1)​=σ(j([hv(k,T)​,xv(k)​]))

训练上也与[Franco Scarselli, 2009, 3]不同,而是采用随时间步逐步BP。

5 Learning Steady-States of Iterative Algorithms over Graphs

[Hanjun Dai, 2018, 6] 同样是采用了不动点的原理,中间迭代过程为:
h⃗v(0)←constant,∀v∈Vh⃗v(t+1)←T({h⃗u(t)}u∈N(v)),∀t≥1.(5.1)\begin{aligned} \vec{h}_v^{(0)} &\leftarrow \text{constant} , &\forall v \in \mathcal{V} \\ \vec{h}_v^{(t+1)} &\leftarrow \mathcal{T} \left( \{ \vec{h}_u^{(t)} \}_{u \in \mathcal{N}(v) } \right), &\forall t \geq 1. \end{aligned} \tag{5.1} hv(0)​hv(t+1)​​←constant,←T({hu(t)​}u∈N(v)​),​∀v∈V∀t≥1.​(5.1)
稳定状态为:
h⃗v∗=T({h⃗u∗}u∈N(v)),∀v∈V.(5.2)\vec{h}_v^{*} = \mathcal{T} \left( \{ \vec{h}_u^{*} \}_{u \in \mathcal{N}(v) } \right), \quad \forall v \in \mathcal{V}. \tag{5.2} hv∗​=T({hu∗​}u∈N(v)​),∀v∈V.(5.2)

式(5.1)的T\mathcal{T}T其实就是transition function。

  • transition function :
    TΘ[{hu^}u∈N(v)]=W1σ(W2[x⃗v,∑u∈N(v)[h^u,x⃗u]]).(5.3)\mathcal{T}_{\Theta} \left[ \{ \widehat{ h_u } \}_{u \in \mathcal{N}(v) } \right] = W_1 \sigma \left( W_2 \left[ \vec{x}_v, \sum_{u \in \mathcal{N}(v)} \left[ \widehat{h}_u , \vec{x}_u \right] \right] \right). \tag{5.3} TΘ​[{hu​​}u∈N(v)​]=W1​σ⎝⎛​W2​⎣⎡​xv​,u∈N(v)∑​[hu​,xu​]⎦⎤​⎠⎞​.(5.3)

  • output function :
    g(h^v)=σ(V2TReLU(V1Th^v)).(5.4)g(\widehat{h}_v) = \sigma \left( V_2^T \text{ReLU} \left( V_1^T \widehat{h}_v \right) \right). \tag{5.4} g(hv​)=σ(V2T​ReLU(V1T​hv​)).(5.4)

在训练过程中,使用了采样的操作,取V~={v1,⋯,vN}∈V\widetilde{\mathcal{V}} = \{ v_1, \cdots, v_N \} \in \mathcal{V}V={v1​,⋯,vN​}∈V,则h^vi\hat{h}_{v_i}h^vi​​的更新过程为:
h^vi←(1−α)h^vi+αTΘ[{hu^}u∈N(v)],∀vi∈V~.(5.5)\hat{h}_{v_i} \leftarrow (1 - \alpha)\hat{h}_{v_i} + \alpha \mathcal{T}_{\Theta} \left[ \{ \widehat{ h_u } \}_{u \in \mathcal{N}(v) } \right], \quad \forall v_i \in \widetilde{\mathcal{V}}. \tag{5.5} h^vi​​←(1−α)h^vi​​+αTΘ​[{hu​​}u∈N(v)​],∀vi​∈V.(5.5)

参考文献

  • 1 Wu Z, Pan S, Chen F, et al. A Comprehensive Survey on Graph Neural Networks.[J]. arXiv: Learning, 2019.
  • 2 M. Gori, G. Monfardini and F. Scarselli, “A new model for learning in graph domains,” Proceedings. 2005 IEEE International Joint Conference on Neural Networks, 2005., Montreal, Que., 2005, pp. 729-734 vol. 2.
  • 3 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.
  • 4 Gallicchio C, Micheli A. Graph Echo State Networks[C]. international joint conference on neural network, 2010: 1-8.
  • 5 Li Y, Tarlow D, Brockschmidt M, et al. Gated Graph Sequence Neural Networks[J]. arXiv: Learning, 2016.
  • 6 Dai H, Kozareva Z, Dai B, et al. Learning Steady-States of Iterative Algorithms over Graphs[C]. international conference on machine learning, 2018: 1106-1114.

图卷积神经网络GCN---递归GCN代表作相关推荐

  1. GCN—图卷积神经网络理解

    文章目录 一.CNN卷积 二.GCN 图卷积神经网络 2.1 GCN优点 2.3 提取拓扑图空间特征的两种方式 三.拉普拉斯矩阵 3.1 拉普拉斯矩阵的谱分解(特征分解) 3.2 傅里叶变换.卷积类比 ...

  2. tensorflow lstm 预测_图卷积神经网络GCN与递归结构RNN相结合的时间序列预测

    时间序列预测任务可以按照不同的方法执行.最经典的是基于统计和自回归的方法.更准确的是基于增强和集成的算法,我们必须使用滚动周期生成大量有用的手工特性.另一方面,我们可以使用在开发过程中提供更多自由的神 ...

  3. 深度学习:GCN(图卷积神经网络)理论学习总结

    目录 来源 作用 原理 解释 核心 两种理解 空间域的缺点 图的概念 学习新特征 目标 提出 步骤 图卷积 分类 特点 常见问题 缺点 改进 残差结构与扩张卷积 图注意力网络GAT 邻接矩阵的探索 A ...

  4. DeepLearning | 图卷积神经网络(GCN)解析(论文、算法、代码)

    本篇博客主要讲述三种图卷积网络(Graph Convolutional Network, GCN)的算法原理及python实现,全文阅读时间约10分钟. 博主关于图神经网络的文章 DeepLearni ...

  5. GCN图卷积神经网络综述

    文章目录 一.GNN简史 二.GCN的常用方法及分类 2.1 基于频域的方法 2.2 基于空间域的方法 2.3 图池化模块 三. GCN常用的基准数据集 四.GCN的主要应用 4.1 计算机视觉 4. ...

  6. 图卷积神经网络(GCN)入门

    GCN是从CNN来的 CNN成功在欧式数据上:图像,文本,音频,视频 图像分类,对象检测,机器翻译 CNN基本能力:能学到一些局部的.稳定的结构,通过局部化的卷积核,再通过层级堆叠,将这些局部的结构变 ...

  7. 举个例子,如何用GCN图卷积神经网络实现摔倒监测?

    作者 | 李秋键 责编 | 寇雪芹 头图 | 下载于视觉中国 引言 近几年来深度学习的发展越来越火热,其中最为典型的就是半监督学习的新研究进展GCN.由Kipf和Welling提出的GCN被证明是一种 ...

  8. Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质

    GCN: Graph Convolutional Network(图卷积网络) 环境准备 Python版本:Python 3.6.8 PyTorch版本:PyTorch1.1.0 RDKit版本:RD ...

  9. 图卷积神经网络(GCN)理解与tensorflow2.0代码实现

    图(Graph),一般用 G=(V,E)G=(V,E)G=(V,E) 表示,这里的VVV是图中节点的集合,EEE 为边的集合,节点的个数用NNN表示.在一个图中,有三个比较重要的矩阵: 特征矩阵XXX ...

最新文章

  1. android调用web接口,Android调用webservice 接口
  2. 关闭子页面刷新父页面,不需要弹出确认窗口
  3. java设计模式--观察者模式(Observer)
  4. LeetCode算法入门- Longest Valid Parentheses -day12
  5. 【华为云技术分享】如何度量前端项目研发效率与质量(上)
  6. nested exception is java.io.FileNotFoundException: class path resource [spring/spring-datasource-mog
  7. 技嘉服务器主板是什么型号,技嘉主板小型号字母代表什么意思?
  8. 《少有人走的路-心智成熟的旅程》读书分享
  9. ept技术_EPT与VPID
  10. 用python实现相声、评书自动下载(四)
  11. Python:python镜像源汇总及使用
  12. 【python】之pymysql模块,操作mysql数据库!
  13. cocosCreator日历插件
  14. 吴思里:PCG腾讯文档前端面试经历
  15. 少年歌行游戏一直显示连接服务器,少年歌行出现第三方登陆失败怎么办 解决方案一览...
  16. iOS微信第三方登录
  17. 单片机自定义延时函数Delay取值详解
  18. 如何在不泄露私人信息的情况下共享屏幕
  19. windows10映射网络驱动器教程、步骤(出现网络错误、浏览不能选择的解决办法)
  20. zabbix自定义监控项-统计AP在线、离线数量(AC:H3C WX5540H)

热门文章

  1. 神经网络可以用来预测吗,神经网络预测的局限性
  2. hadoop hellokitty 单词统计
  3. 开源-程序开发(55)
  4. 解决当考生点击开始考试的时候出现卡顿问题
  5. GPS定位平台软件,GPS/UWB/WIFI融合定位,提供开发接口
  6. 开发一套电商管理系统需要具备哪些功能?
  7. Tensorflow学习——猫狗大战
  8. gg 修改器游戏被保护_火柴人战争遗产无敌版修改器下载-火柴人战争遗产修改器手机版下载...
  9. linux sz rz
  10. OSChina 周四乱弹 —— 只有这个条件达成,我才有码神附体的手速