论文导读 | Graph2Seq

北京大学 张欣勃
在这里插入图片描述
Seq2Seq在很多任务上达到了很好的效果,如神经机器翻译(Neural Machine Translation)、自然语言生成(Natural Language Generation)、语音识别(Speech Recognition)、药物检测(Drug Discovery)等,其结构可概括为编解码器(encoder-decoder),在encoder中,将输入表示为序列(sequence),并采用LSTM等模型进行表示,并通常在decoder阶段结合注意力机制输出序列。然而基于图数据结构的任务,已有的方法将图映射为一个序列,再用seq2seq模型进行训练,在图数据结构转化为序列时会丢失大量的结构信息。于是本文提出了一种图序列学习神经网络模型Graph2Seq。Graph2Seq模型遵循传统的编解码器方法,包含两个主要组件,一个图编码器和一个序列解码器。其中图编码器旨在对输入的图数据学习其节点嵌入表示和图的嵌入表示,序列解码器则基于这些嵌入表示,基于注意力机制生成相应的目标序列。
在这里插入图片描述

1、节点的嵌入表示:

在这里插入图片描述
在这里插入图片描述
算法逻辑见上述伪码,node embedding算法通过融合K阶邻居的信息来进行节点表示。具体来说,本文使用了2K个融合函数(使用在这里插入图片描述k=1,2,…,K 进行表示)来融合邻节点的信息。这 2K 个融合函数对应于两个方向和K阶邻居的组合。注意到AGGREGATE函数每次的输入都是 v的1阶邻节点,而不会扩展到 v 的 K 阶邻节点。在每次循环之后,v的k阶节点的信息会被传递到 v 的 k-1 阶节点上,这样经过 k 次循环之后,v 就可以融合到 k 阶邻居上的信息了。
在这里插入图片描述
在这里插入图片描述

2、图的嵌入表示:

在这里插入图片描述

采用Pooling-based Graph Embedding和Node-based Graph Embedding两种方法。对于第二种方法,将一个超级节点vs添加到输入图中,并将图中的所有其他节点直接连接到vs上,使用前面提到的节点嵌入生成算法,通过聚合邻居节点的嵌入表示来生成节点vs的嵌入表示。这样vs就捕获到了所有节点的信息,可视为图的嵌入。

3、基于注意力机制的解码器:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验数据集为bAbI Task 19 Path Finding,输入是一段文本与一个Query,输出是相应的路径。为解决这个问题,将描述的问题转化成图,将问题处理为求两个节点No1和No2之间的最短路径,这两个节点在图中表示o1和o2。为了用Graph2Seq解决这个问题,我们用text属性START注释No1,用text属性END注释No2。对于图中每条边上的文字属性,本文定义了一个额外的节点对其进行表示(例如,将 “A west B“表示为A->v->B, v 表示与west相对应的节点)。

在这里插入图片描述

此外,文章探讨了不同聚合方式和跳数对实验结果的影响。基于最短路径任务,构建了三个数据集,输入为一个有向图,一个开始节点与一个结束节点,输出为连接开始节点与结束节点的路径:

在这里插入图片描述
从结果中可以看出来,1、MA的效果都不比LA与PA差(因此,在后续实验中,默认使用MA)2、单用F和B在DCG上不差。因为有环时当跳数足够大(大于环的长度,反向的信息仍然可以获得)。
在这里插入图片描述
在这里插入图片描述

当跳数达到图的直径时,本模型才能达到最优的性能。此外,相比于小图,attention机制可以显著改善大图上的性能。

总结

本文模型实质上是对Seq2Seq的一个扩展,在Encoder-Decoder框架中,输入与输出不仅可以是机器翻译中的不同的语言,还可以是不同的拓扑结构。总体来说,本文的节点表示算法上与GCN、GAT等并无太大差别。解码器上的attention机制也很广泛。对于处理边的方式上,将有标签边变换为一个节点来进行表示。通过这种方式,GCN、GAT等模型可以被应用到很多包含有标签边的图上(如知识图谱或AMR)等。

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值