图网络学习算法之——GGNN (Gated Graph Neural Network)

之前的图网络学习算法系列中,我们已经总结了如传统的Deepwalk,以及以卷积图神经网络为基础的GCN,GAT和GraphSAGE方法。今天,我们来学习下Graph Neural Network中的另一大类型,利用门控信息来进行更新的Gated Graph Neural Network(GGNN)。

论文:Gated graph sequence neural networks

链接:arxiv.org/pdf/1511.0549

首先,构建一个图G = (V, E), 节点v ∈ V中存储D维向量,边e ∈ E中存储D × D维矩阵,我们利用GGNN来多次迭代地学习节点v的embedding,并最终由所有节点的embedding得到全图的表达。

GGNN是一种基于GRU的经典的空间域message passing的模型。message passing的通用框架共包含三部分操作:信息传递操作(M),更新操作(U),读取操作(R)。从如下公式中可以看出,节点v的t+1时刻的embedding m,由其当前时刻的embedding,以及其邻居节点的当前时刻embedding,和二者的交互的边信息所决定。

在全图的信息传递过程中,采用的是GRU的原理。

传播模型如下图所示,其中式(1), h_v^1 为节点v的初始隐向量,为D维的向量,当节点输入特征 x_v 维度小于D时,后面采取补0的padding方式。

式(2)中, A_v 为图1(c)的矩阵A中选出对应节点v的两列,A为D*2D维, A_v 为1*2D维,最终的 a_v^t 为1*2D维的向量,表示当前节点和相邻节点间通过edges的相互作用的结果。可以看到,计算时对A去了in和out两列,因此这里计算的结果考虑了双向的信息传递。

式(3)-(6)为类似GRU的计算过程。其中, z_v^t 控制遗忘信息, r_v^t 控制新产生信息。式(6)中的前半部分选择遗忘过去的哪些信息,而后者选择记住新产生的哪些信息。 h_v^t 则为最终更新的节点状态。

输出模型部分,该模型可输出两种类型,第一种为节点级别,每个节点输出一个值,可解决节点分类问题;第二种为全图输出一个值,可解决类似用全图的节点表示一篇文章的document classification问题。

针对每个节点的输出有如下公式,其中g为特定的函数,表示利用每个节点的最终状态及其初始状态来求其输出。

针对全图的输出,采用的为self-attention的机制,用于选出哪些节点和全图的输出最相关。

针对全图的输出,采用的为self-attention的机制,用于选出哪些节点和全图的输出最相关。进操作,如在每个节点与其邻居节点交互的计算过程中,加入更丰富更细化的交互信息。相关的改进方法与对应场景我将在后面的文章中持续更新。

发布于 2019-09-21

文章被以下专栏收录