Introduction to Graph Neural Network翻译-第六章 图循环网络

还有一种趋势是在传播步骤中使用来自rnn的门机制,如GRU [Cho et al., 2014]或LSTM [Hochreiter and Schmidhuber, 1997],以减少普通GNN模型的限制,提高图上长期信息传播的有效性。

6.1 GATED GRAPH NEURAL NETWORKS

Li等人[2016]提出在传播步骤中使用门循环单元(GRU)的GGNN。
它将递归神经网络展开固定数量的 T T T步,并随时间反向传播以计算梯度。

具体地说,传播模型的基本递归是:

a v t = A v T [ h 1 t − 1 … h N t − 1 ] T + b z v t = σ ( W z a v t + U z h v t − 1 ) r v t = σ ( W r a v t + U r h v t − 1 ) h ~ v t = tanh ⁡ ( W a 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 (6.1) \begin{aligned} \mathbf{a}_{v}^{t} &=\mathbf{A}_{v}^{T}\left[\mathbf{h}_{1}^{t-1} \ldots \mathbf{h}_{N}^{t-1}\right]^{T}+\mathbf{b} \\ \mathbf{z}_{v}^{t} &=\sigma\left(\mathbf{W}^{z} \mathbf{a}_{v}^{t}+\mathbf{U}^{z} \mathbf{h}_{v}^{t-1}\right) \\ \mathbf{r}_{v}^{t} &=\sigma\left(\mathbf{W}^{r} \mathbf{a}_{v}^{t}+\mathbf{U}^{r} \mathbf{h}_{v}^{t-1}\right) \\ \widetilde{\mathbf{h}}_{v}^{t} &=\tanh \left(\mathbf{W} \mathbf{a}_{v}^{t}+\mathbf{U}\left(\mathbf{r}_{v}^{t} \odot \mathbf{h}_{v}^{t-1}\right)\right) \\ \mathbf{h}_{v}^{t} &=\left(1-\mathbf{z}_{v}^{t}\right) \odot \mathbf{h}_{v}^{t-1}+\mathbf{z}_{v}^{t} \odot \widetilde{\mathbf{h}}_{v}^{t} \end{aligned}\tag{6.1} avtzvtrvth vthvt=AvT[h1t1hNt1]T+b=σ(Wzavt+Uzhvt1)=σ(Wravt+Urhvt1)=tanh(Wavt+U(rvthvt1))=(1zvt)hvt1+zvth vt(6.1)

节点 v v v首先聚集来自其邻居的消息,其中 A v \mathbf{A}_v Av是图邻接矩阵 A \mathbf{A} A的子矩阵,并且表示节点 v v v与其邻居的连接。类似GRU的更新函数使用来自每个节点的邻居和前一个时间步长的信息来更新节点的隐藏状态。
向量 a \mathbf{a} a收集节点 v v v的领域信息, z , r \mathbf{z,r} z,r是更新门和重置门, ⊙ \odot 是Hardamard product operation。

GGNN模型是针对需要输出序列的图数据定义的问题而设计的,而现有模型侧重于产生单个输出,如节点级或图数据级分类。

Li等[2016]进一步提出了门控图序列神经网络(GGS-NNs),它使用多个 GGNNs \text{GGNNs} GGNNs产生一个输出序列 o ( 1 ) . . . o ( K ) \mathbf{o}^{(1)}...\mathbf{o}^{(K)} o(1)...o(K)
如图6.1所示,对于第 k k k个输出步骤,节点标注矩阵表示为 X ( k ) \mathbf{X}^{(k)} X(k)

6-1

在这个架构中使用了两个 GGNNs \text{GGNNs} GGNNs:
(1) F o ( k ) F_o^{(k)} Fo(k) X ( k ) \mathbf{X}^{(k)} X(k)中预测 o ( k ) \mathbf{o}^{(k)} o(k);
(2) F x ( k ) F_x^{(k)} Fx(k) X ( k ) \mathbf{X}^{(k)} X(k)中预测 X ( k + 1 ) \mathbf{X}^{(k+1)} X(k+1)
我们使用 H ( k , t ) \mathbf{H}^{(k,t)} H(k,t)表示第 k k k个输出步骤的第 t t t个传播步骤。
H ( k , 1 ) \mathbf{H}^{(k,1)} H(k,1)在每个第 k k k步的值由 X ( k ) \mathbf{X}^{(k)} X(k)初始化。
H ( t , 1 ) \mathbf{H}^{(t,1)} H(t,1)在每个第 t t t步的值由 X ( t ) \mathbf{X}^{(t)} X(t)初始化。
F o ( k ) , F x ( k ) F_o^{(k)},F_x^{(k)} Fo(k),Fx(k)可用于不同的模型或共享相同的参数。

该模型在BABI任务和程序验证任务上都得到了应用,并证明了其有效性。

6.2 Tree LSTM

通过基于树或图的传播过程,LSTM的使用方式也与GRU类似。

Tai等人[2015]提出了对基本LSTM架构的两个扩展: Child-Sum Tree-LSTMN-ary Tree - LSTM
与标准的 LSTM \text{LSTM} LSTM单元一样,每个 Tree-LSTM \text{Tree-LSTM} Tree-LSTM(由 v v v索引)包含输入输出门 i v , o v \mathbf{i}_v,\mathbf{o}_v iv,ov,存储单元 c v \mathbf{c}_v cv,和隐藏状态 h v \mathbf{h}_v hv
Tree-LSTM \text{Tree-LSTM} Tree-LSTM单元放弃单个遗忘门,但对每个孩子 k k k使用遗忘门 f v k \mathbf{f}_{vk} fvk,从而允许节点 v v v相应地从其子节点聚集信息。
Child-Sum Tree-LSTM \text{Child-Sum Tree-LSTM} Child-Sum Tree-LSTM的方程为:

h ~ v t − 1 = ∑ k ∈ N v h k t − 1 i v t = σ ( W i x v t + U i h ~ v t − 1 + b i ) f v k t = σ ( W f x v t + U f h k t − 1 + b f ) o v t = σ ( W o x v t + U o h ~ v t − 1 + b o ) u v t = tanh ⁡ ( W u x v t + U u h ^ v t − 1 + b u ) c v t = i v t ⊙ u v t + ∑ k ∈ N v f v k t ⊙ c k t − 1 h v t = o v t ⊙ tanh ⁡ ( c v t ) (6.2) \begin{aligned} \widetilde { \mathbf { h } } _ { v } ^ { t - 1 } & = \sum _ { k \in N _ { v } } \mathbf { h } _ { k } ^ { t - 1 } \\ \mathbf { i } _ { v } ^ { t } & = \sigma \left( \mathbf { W } ^ { i } \mathbf { x } _ { v } ^ { t } + \mathbf { U } ^ { i } \widetilde { \mathbf { h } } _ { v } ^ { t - 1 } + \mathbf { b } ^ { i } \right) \\ \mathbf { f } _ { v k } ^ { t } & = \sigma \left( \mathbf { W } ^ { f } \mathbf { x } _ { v } ^ { t } + \mathbf { U } ^ { f } \mathbf { h } _ { k } ^ { t - 1 } + \mathbf { b } ^ { f } \right) \\ \mathbf { o } _ { v } ^ { t } & = \sigma \left( \mathbf { W } ^ { o } \mathbf { x } _ { v } ^ { t } + \mathbf { U } ^ { o } \widetilde { \mathbf { h } } _ { v } ^ { t - 1 } + \mathbf { b } ^ { o } \right) \\ \mathbf { u } _ { v } ^ { t } & = \tanh \left( \mathbf { W } ^ { u } \mathbf { x } _ { v } ^ { t } + \mathbf { U } ^ { u } \widehat { \mathbf { h } } _ { v } ^ { t - 1 } + \mathbf { b } ^ { u } \right) \\ \mathbf { c } _ { v } ^ { t } & = \mathbf { i } _ { v } ^ { t } \odot \mathbf { u } _ { v } ^ { t } + \sum _ { k \in N _ { v } } \mathbf { f } _ { v k } ^ { t } \odot \mathbf { c } _ { k } ^ { t - 1 } \\ \mathbf { h } _ { v } ^ { t } & = \mathbf { o } _ { v } ^ { t } \odot \tanh \left( \mathbf { c } _ { v } ^ { t } \right) \end{aligned} \tag{6.2} h vt1ivtfvktovtuvtcvthvt=kNvhkt1=σ(Wixvt+Uih vt1+bi)=σ(Wfxvt+Ufhkt1+bf)=σ(Woxvt+Uoh vt1+bo)=tanh(Wuxvt+Uuh vt1+bu)=ivtuvt+kNvfvktckt1=ovttanh(cvt)(6.2)

其中 x v t x_v^t xvt是在标准 LSTM \text{LSTM} LSTM设置中 t t t时刻的输入向量,
⊙ \odot 是 Hardamard product operation.

如果树中每个节点的子节点的数量最多为 K K K,并且子节点可以从 1 1 1 K K K排序,则可以应用 N-array Tree-LSTM \text{N-array Tree-LSTM} N-array Tree-LSTM
对于节点 v v v h v k t , c v k t \mathbf{h}_{vk}^{t},\mathbf{c}_{vk}^t hvkt,cvkt代表其第 k k k个孩子在时间 t t t的隐藏状态和存储单元。

i v t = σ ( W i x v t + ∑ l = 1 K U l i h v l t − 1 + b i ) f v k t = σ ( W f x v t + ∑ l = 1 K U k l f h v l t − 1 + b f ) o v t = σ ( W o x v t + ∑ l = 1 K U l o h v l t − 1 + b o ) u v t = tanh ⁡ ( W u x v t + ∑ l = 1 K U l u h v l t − 1 + b u ) c v t = i v t ⊙ u v t + ∑ l = 1 K f v l t ⊙ c v l t − 1 h v t = o v t ⊙ tanh ⁡ ( c v t ) (6.3) \begin{aligned} \mathbf { i } _ { v } ^ { t } &= \sigma \left( \mathbf { W } ^ { i } \mathbf { x } _ { v } ^ { t } + \sum _ { l = 1 } ^ { K } \mathbf { U } _ { l } ^ { i } \mathbf { h } _ { v l } ^ { t - 1 } + \mathbf { b } ^ { i } \right) \\ \mathbf { f } _ { v k } ^ { t } & = \sigma \left( \mathbf { W } ^ { f } \mathbf { x } _ { v } ^ { t } + \sum _ { l = 1 } ^ { K } \mathbf { U } _ { k l } ^ { f } \mathbf { h } _ { v l } ^ { t - 1 } + \mathbf { b } ^ { f } \right) \\ \mathbf { o } _ { v } ^ { t } & = \sigma \left( \mathbf { W } ^ { o } \mathbf { x } _ { v } ^ { t } + \sum _ { l = 1 } ^ { K } \mathbf { U } _ { l } ^ { o } \mathbf { h } _ { v l } ^ { t - 1 } + \mathbf { b } ^ { o } \right) \\ \mathbf { u } _ { v } ^ { t } & = \tanh \left( \mathbf { W } ^ { u } \mathbf { x } _ { v } ^ { t } + \sum _ { l = 1 } ^ { K } \mathbf { U } _ { l } ^ { u } \mathbf { h } _ { v l } ^ { t - 1 } + \mathbf { b } ^ { u } \right) \\ \mathbf { c } _ { v } ^ { t } & = \mathbf { i } _ { v } ^ { t } \odot \mathbf { u } _ { v } ^ { t } + \sum _ { l = 1 } ^ { K } \mathbf { f } _ { v l } ^ { t } \odot \mathbf { c } _ { v l } ^ { t - 1 } \\ \mathbf { h } _ { v } ^ { t } & = \mathbf { o } _ { v } ^ { t } \odot \tanh \left( \mathbf { c } _ { v } ^ { t } \right) \end{aligned} \tag{6.3} ivtfvktovtuvtcvthvt=σ(Wixvt+l=1KUlihvlt1+bi)=σ(Wfxvt+l=1KUklfhvlt1+bf)=σ(Woxvt+l=1KUlohvlt1+bo)=tanh(Wuxvt+l=1KUluhvlt1+bu)=ivtuvt+l=1Kfvltcvlt1=ovttanh(cvt)(6.3)

相较于$\text{Child-Sum Tree-LSTM}, N − ary Tree-LSTM N-\text{ary Tree-LSTM} Nary Tree-LSTM为每个子节点 k k k,引入单独的参数矩阵,这允许模型根据其子节点条件为每个节点学习更细粒度的表示。

6.3 graph LSTM

这两种类型的 Tree-LSTMs \text{Tree-LSTMs} Tree-LSTMs可以很容易地适应图。Zayats和Ostendorf[2018]中的 graph-structured LSTM就是N-ary Tree-LSTM应用于图的一个例子。
然而,它只是一个简化版本,因为图中的每个节点最多有两条传入边(来自它的父节点和兄弟节点)。Peng等人[2017]提出了基于关系提取任务的Graph LSTM的另一种变体。
图和树的主要区别在于图的边有的标签。并且Peng等人利用不同的权重矩阵来表示不同的标签:

i v t = σ ( W i x v t + ∑ k ∈ N v U m ( v , k ) i h k t − 1 + b i ) f v k t = σ ( W f x v t + U m ( v , k ) f h k t − 1 + b f ) o v t = σ ( W o x v t + ∑ k ∈ N v U m ( v , k ) o h k t − 1 + b o ) u v t = tanh ⁡ ( W u x v t + ∑ k ∈ N v U m ( v , k ) u h k t − 1 + b u ) c v t = i v t ⊙ u v t + ∑ k ∈ N v f v k t ⊙ c k t − 1 h v t = o v t ⊙ tanh ⁡ ( c v t ) (6.4) \begin{aligned} \mathbf { i } _ { v } ^ { t } & = \sigma \left( \mathbf { W } ^ { i } \mathbf { x } _ { v } ^ { t } + \sum _ { k \in N _ { v } } \mathbf { U } _ { m ( v , k ) } ^ { i } \mathbf { h } _ { k } ^ { t - 1 } + \mathbf { b } ^ { i } \right) \\ \mathbf { f } _ { v k } ^ { t } & = \sigma \left( \mathbf { W } ^ { f } \mathbf { x } _ { v } ^ { t } + \mathbf { U } _ { m ( v , k ) } ^ { f } \mathbf { h } _ { k } ^ { t - 1 } + \mathbf { b } ^ { f } \right) \\ \mathbf { o } _ { v } ^ { t } & = \sigma \left( \mathbf { W } ^ { o } \mathbf { x } _ { v } ^ { t } + \sum _ { k \in N _ { v } } \mathbf { U } _ { m ( v , k ) } ^ { o } \mathbf { h } _ { k } ^ { t - 1 } + \mathbf { b } ^ { o } \right) \\ \mathbf { u } _ { v } ^ { t } & = \tanh \left( \mathbf { W } ^ { u } \mathbf { x } _ { v } ^ { t } + \sum _ { k \in N _ { v } } \mathbf { U } _ { m ( v , k ) } ^ { u } \mathbf { h } _ { k } ^ { t - 1 } + \mathbf { b } ^ { u } \right) \\ \mathbf { c } _ { v } ^ { t } & = \mathbf { i } _ { v } ^ { t } \odot \mathbf { u } _ { v } ^ { t } + \sum _ { k \in N _ { v } } \mathbf { f } _ { v k } ^ { t } \odot \mathbf { c } _ { k } ^ { t - 1 } \\ \mathbf { h } _ { v } ^ { t } & = \mathbf { o } _ { v } ^ { t } \odot \tanh \left( \mathbf { c } _ { v } ^ { t } \right) \end{aligned} \tag{6.4} ivtfvktovtuvtcvthvt=σ(Wixvt+kNvUm(v,k)ihkt1+bi)=σ(Wfxvt+Um(v,k)fhkt1+bf)=σ(Woxvt+kNvUm(v,k)ohkt1+bo)=tanh(Wuxvt+kNvUm(v,k)uhkt1+bu)=ivtuvt+kNvfvktckt1=ovttanh(cvt)(6.4)

其中 m ( v , k ) m(v,k) m(v,k)代表节点 v , k v,k v,k之间的边标签, ⊙ \odot 是元素积(Hardamard product operation)。

梁等人[2016]提出了一种图LSTM网络来解决语义对象解析任务。该算法采用置信度驱动的策略自适应地选择起始节点,并确定节点更新顺序。它遵循将现有的LSTM泛化为图结构数据的相同思想,但具有特定的更新顺序,而上述方法与节点的顺序无关。

6.4 sentence LSTM

张某等人。[2018c]提出了一种改进文本编码的 Sentence-LSTM(S-LSTM) \text{Sentence-LSTM(S-LSTM)} Sentence-LSTM(S-LSTM)
它将文本转换为图,并利用 G r a p h − L S T M Graph-LSTM GraphLSTM来学习表示。
S-LSTM \text{S-LSTM} S-LSTM在许多NLP问题中表现出很强的表示能力。

具体地说, S-LSTM \text{S-LSTM} S-LSTM模型将每个单词视为图中的一个节点,并添加一个超节点。对于每一层,单词节点可以聚合来自其相邻单词以及超级节点的信息。
超节点可以聚集来自所有单词节点以及其自身的信息。 不同节点的连接可以在图6.2中找到。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPGCctEA-1590728154935)(https://s1.ax1x.com/2020/05/12/YN5OG8.png)]

这些连接设置背后的原因是,超节点可以提供全局信息来解决远距离依存问题,并且单词节点可以根据其相邻的单词来建模上下文信息。
因此,每个词都可以获得足够的信息,并对局部和全局信息进行建模。

S-LSTM \text{S-LSTM} S-LSTM模型可用于许多自然语言处理(NLP)任务。词的隐藏状态可用于解决序列标注、词性标注等词级任务。超节点的隐藏状态可以用来解决句子分类等句子级任务。
该模型在几个任务上取得了有希望的结果,而且它的表现也超过了强大的Transformer[Vaswani等人,2017]模型。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Introduction to Graph Neural Networks》是一本介绍神经网络的PDF。神经网络是一类用于处理结构数据的深度学习模型。该PDF主要介绍了神经网络的基本概念、结构和应用。 首先,PDF简要介绍了神经网络的起源和发展背景。它指出传统的神经网络模型无法有效地处理结构数据中的关系和局部信息,而神经网络的出现填补了这一空白。 接着,PDF详细解释了神经网络的基本概念。它提到神经网络通过将节点和边表示为向量,利用卷积操作来更新节点的表示,从而融合了节点的邻居信息。同时,它还介绍了神经网络在处理无向、有向和多时的不同形式和应用。 然后,PDF分析了神经网络的结构。它介绍了常见的神经网络结构,如Graph Convolutional Networks (GCN)、GraphSAGE和Graph Attention Networks (GAT)等。对于每种结构,PDF详细解释了其原理和在实践中的应用。 最后,PDF总结了神经网络的应用领域。它指出神经网络在社交网络分析、化学分子表示、推荐系统和计算机视觉等领域有广泛的应用。并且,它还提供了一些成功案例和相关论文的引用。 综上所述,《Introduction to Graph Neural Networks》这本PDF全面而详细地介绍了神经网络的基本概念、结构和应用。对于对神经网络感兴趣的读者来说,这本PDF是一份很好的入门资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值