论文 A Graph-to-Sequence Model for AMR-to-Text Generation 阅读笔记

论文发表在2018 ACL上,论文地址:https://arxiv.org/abs/1805.02473
本篇文章主要详细叙述了该论文的主要内容,全部都由自己总结,若文章有地方不正确或与读者想法不一致,欢迎在评论区中提出讨论.

AMR与AMR-to-Text Generation

AMR(Abstract Meaning Representation):a semantic formalism that encodes the meaning of a sentence as a rooted, directed graph.
AMR-to-Text Generation:to recover a text representing the same meaning as an input AMR graph.
在这里插入图片描述

sequence-to-sequence model

对AMR图作深度优先遍历,获得一个序列v1, . . . , vN,N为tokens的个数,例如上述AMR图的例子遍历后的序列为:“describe :arg0 ( person :name ( name :op1 ryan ) ) :arg1 person :arg2 genius”. (PS:我们可以看到,在AMR原图上“describe” and “genius”直接相连,而在序列上的距离为14)
我们需要计算每一个token vj的representation,方法有两个:
1.直接使用word embedding:
在这里插入图片描述
ej为token vj的word embedding;
2.为了减轻数据稀疏性问题并获得更好的单词表示作为输入,作者还可以对token的字符characters采用了正向LSTM,然后和word embedding作concatenate操作:
在这里插入图片描述
Encoder
S2S的encoder是一个双向LSTM,对于每一步j来说:
在这里插入图片描述
Decoder
S2S的Decoder使用了attention-based LSTM;
attention memory A以及每一个attention vector aj定义如下:
在这里插入图片描述
这里引入两个向量:
the previous context vector µt−1, which is calculated with attention from A
the previous coverage vector γt−1, which is the accumulation of all attention distributions so far

对于LSTM的每一步t,输入为当前输入的word embedding et 以及一个上一时刻的context vector µt−1,得到hidden state St,然后计算attention probability αt,i,如下:
在这里插入图片描述
接着更新coverage vector γt
在这里插入图片描述
αt可以理解为所有token在t时刻(token vt)此时的attention分布信息,用一个向量表示.

更新context vector µt
在这里插入图片描述
此时刻t的ouput probability distribution:
在这里插入图片描述
用到的是St以及µt.
这样,t时刻就可以得到一个Pvocab,概率向量中最大的vocabulary即为该时刻输出的word,最后可以输出一个序列w1, w2, . . . , wM.

graph-to-sequence model

与baseline中的sequence-to-sequence model不同,论文提出用graph-to-sequence model直接对图结构建模而不进行序列化.

The graph encoder
在这里插入图片描述
对于图G = (V, E),用hidden state vector hj 表示每个节点 vj ∈ V. 整个图就可以表示为:
在这里插入图片描述
经过一系列的graph state transition,我们可以得到graph states g0, g1, . . . , gt, . . . .

Input representation
g0时,所有节点的初始化states为h0,即对于所有节点j:
在这里插入图片描述
这里的h0为hyperparameter.
除了节点有representation外,还定义了图的edge representation,有两种方法:
在这里插入图片描述
其中el和ei分别表示edge label l和源节点vi的word embeeding,方法二即式(7)表示可以对节点i的word的字符characters采用正向LSTM,然后再作concatenate,与上面的(1)(2)类似,注意edge的representation不会随着t变化.

State transition
对于节点j,第t层,先计算出:
在这里插入图片描述
在这里插入图片描述
这里针对边的方向分为incoming和outgoing,这里其实就是一个对邻居的聚合,可以看作用的是一种sum aggregation.
接着我们需要用这四个关键信息去计算:
在这里插入图片描述
上面的操作就是在图上针对节点使用LSTM,使用了input gate,output gate,forget gate,使用上述的state transition,每个步骤之后,每个节点的信息都会传播到其所有相邻节点,经过多层的state transition,就可以得到每个节点的输出hj.

Decoder
graph-to-sequence的decoder使用和s2s的一样,都有两个小地方需要改变:
上面的式子(3)(4)中的aj需要更改为:
在这里插入图片描述
用的是encoder得到的每个节点j的representation(last state).(但笔者不理解的是这里的xj代表什么,是表示连接j节点的所有边的representation加起来吗,如果有懂的同学可以在下面评论留言哦)
另一个不一样的地方是decoder的initial state s−1 是graph encoder所有节点的hj的平均.

2020.03.19

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值