Gated Graph Sequence Neural Networks

1. 前言

这篇论文提出了一种基于GRU1的GNN,能够进行输出单个值的任务(如结点分类、图分类等),也能完成序列输出的任务(如最短路、欧拉环等)。论文中使用bAbI2(bAbI是Facebook AI推出的文本理解/推理任务生成器)任务和程序验证的任务对GG-NN, GGS-NN进行了测试均达到了很好的效果。

论文中讨论的是针对有向图的GNN。那么是如何表示有向图的GNN呢?
对于有向图 G = ( V , E ) \mathcal{G} = (\mathcal{V}, \mathcal{E}) G=(V,E),其邻接矩阵由两部分组成 A = [ A i n , A o u t ] A=[A_{in}, A_{out}] A=[Ain,Aout] A i n , A o u t A_{in},A_{out} AinAout分别为入,出邻接矩阵。 G \mathcal{G} G中每个结点 v v v都定义了其 I N IN IN O U T OUT OUT结点集,分别表示指向 v v v的边的起始结点集和从 v v v出发的边的终点结点集。 v v v的邻居结点集 N B R NBR NBR定义为 I N ∪ O U T IN \cup OUT INOUT,并且对于边和结点都可以有各自的标签。

论文中对GNN进行了回顾。GNN将图数据映射到输出的过程中,可以划分为两个部分:PROPAGATION MODEL, OUTPUT MODEL,分别用来计算节点的表征和将节点表征映射到输出。

论文针对非序列的输出和序列的输出分别提出了GG-NNs(Gated Graph Neural Networks)和GGS-NNs(Gated Graph Sequence Neural Networks)。其中GG-NNs是基于GNN的,不同的是使用了GRU来构建PROPAGATION MODEL 和 OUTPUT MODEL。用于输出序列的GGS-NN则是在GG-NN的基础上构建的。接下来先介绍一下GRU1,在介绍GG-NN和GGS-NN。

GRU(Gated Recurrent Unit) 门控循环单元。GRU可以视为LSTM的变体,与LSTM很相似。与常规的RNN中的单元相比,门控神经单元间的连接是不变的,但每个门控神经单元内部都是经过精心设计的。作为门控RNN能够学会决定何时清除状态。
在这里插入图片描述

2. GG-NN

GG-NN 的过程如下图所示。
在这里插入图片描述
从上图中可以看出,GG-NN的输入是 “Annotate nodes with problem specific information”,在论文中称为"Node Annotations",这与之前提到的结点标签并不是同一个,node annotations 是在特定问题下所定义的“标签/特征”。根据特定的问题领域会为每个节点生成annotation(如何生成annotations?),在输入层会将annotation用0填充成固定的大小作为网络的输入。结点的annotations通过PROPAGATION MODEL—基于GRU的t层(论文中成t-steps, 但根据我的理解是指网络有t层)网络,再将计算后的数据通过OUTPUT MODEL输出任务结果。

3. GGS-NN

GGS-NN 的过程如下。
在这里插入图片描述
从上图中也能看出,GGS-NN是在GG-NN的基础上搭建的。GGS-NN的输入也是Node Annotations。每一步输入的Annotations是根据上一步的的隐层的输出转换而来的。每一步中的隐层输出会分别传给两个GG-NN,一个用来产生这一步的输出,另一个则用来产生下一步的输入,即下一步输入的node annotations。其实,在GGS-NN中除了上述两个GG-NN外,还有一个GG-NN用于在每一步确定是否继续,该GG-NN会在graph-level(把图看成一个特殊的结点,与图中的所有结点都有联系)上来进行一个二分类。

论文中使用bAbI任务和程序逻辑验证进行测试。bAbI任务中将实体和实体间关系看作点和边(有点类似知识图谱),利用GG-NN/GGS-NN来进行推理。为解决程序验证中的program invariants 问题是这篇论文的一个主要出发点。通过将程序运行过程中heap的状态看作图数据,在这些数据的基础上以序列的方式生成程序的sepration logic3 表达式。

参考资料:



欢迎访问我的个人博客~~~

References


  1. Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger
    Schwenk, and Yoshua Bengio. Learning phrase representations using rnn encoder-decoder for statistical
    machine translation, 2014. ↩︎ ↩︎

  2. Jason Weston, Antoine Bordes, Sumit Chopra, Alexander M. Rush, Bart van Merriënboer, Armand Joulin,
    and Tomas Mikolov. Towards ai-complete question answering: A set of prerequisite toy tasks, 2015. ↩︎

  3. Peter O’Hearn, John Reynolds, and Hongseok Yang.
    Local reasoning about programs that alter data
    structures. In Laurent Fribourg, editor, Computer Science Logic, pages 1–19, Berlin, Heidelberg, 2001.
    Springer Berlin Heidelberg. ↩︎

猜你喜欢

转载自blog.csdn.net/Miha_Singh/article/details/111876589
今日推荐