Deep Communicating Agents for Abstractive Summarization论文分享
《Deep Communicating Agents for Abstractive Summarization》论文分享
论文描述:论文是关于生成式摘要,和一般的用seq2seq+attention相比,作者把要输入的长文本划分成多个代理去处理,并用多个encoder编码,最后由一个decoder解码所有的中间向量得到最终的结果。
一、论文摘要:
对于生成式摘要,输入按照:词、句子、段落、单文档、多文档的顺序难度依次递增,文本内容越长,难度越大,这个难度主要体现在网络的记忆能力有限,很难联合较远的输入做出判断,即使有注意力机制,还是有一定的局限性,所以作者就提出了拆分段落成一个个协作agent,每个agent被分配一个段落,每个agent内部有一个encoder,同时所有的agent连接到一个decoder。
二、模型
表示:D表示一篇文档,Xa表示段落(x1表示第一段(agent-1),x2表示第二段……a=1,..M)。表示每一段由长度为I的单词序列组成。而 Wa,i被嵌入到n维向量 ea,i中
三、多agent编码器
本节会剖析整个模型的架构
3.1 每一个agent有下面两个栈编码器编码。
局部编码器(local encoder)
每一个agent的第一层就是局部编码器,每个段落注入到一个agent里面,局部编码器就是一个B-LSTM
产生局部编码隐层状态hi,
(1)
H是隐状态维度,因为是双向的,所有有来自两个方向的隐状态,同时还得加上词向量ea,i.
局部编码器的输出被注入到上下文编码器中。
上下文编码器(contextual encoder)
整个框架允许agent环跨多个编码层,所以每一个上下文编码器的输出都是基于从其他的agent中接收到的信息与自身的agent中接收到的信息的融合表征,同时每一个agent还会把上一层接收到的信息用到联合编码。上下文层中的lstm会收到三个输入:来自邻近lstm的隐状态,来自前一层的隐状态,从其他agent传过来的message vector。然后输出一个隐状态。
(2)
第k层agent会接收第k层中从其他agent中的输出输出的平均值,z(k)即为其他agent中传过来的message
(3)
:来自每个agent上下文层的输出的最后一个隐层状态,我们把从其他编码器agent中得到的消息求平均,再加上注意力参数
(4)
v1 W3 W4是由每个agent学到的参数,
等式(4)将其他agent发送的信息与本段中当前输入的上下文相结合。这产生了与源文档中其他主题相关的当前上下文的不同特征。在每个层中,agent相对于信息修改其自身上下文的表示。
从其他agent收到,并相应地更新它发送给其他agent的信息
3.2 使用agent attention的译码器(Decoder with Agent Attention)
框架中的decoder使用的是一个单层LSTM,输入到decoder中的输入是从第一个agent开始的。每经过一个step,decoder就会预测一个新单词加入到摘要中然后通过agent相关输入文本计算出一个新的状态St,译码器在agent上使用一种新的按等级划分的注意力机制,词注意力分布就通过下面的式子计算出来:
(5)
la是段落Xa上的注意力分布,v2,W5,W6,b1是学习到的参数,对于每一个解码step t,一个新的解码文本被用来计算每一个agent。
(6)
每个单词上下文向量表示agent从其已读取的段落中提取的信息,然后由译码器决定那一段信息和当前decoding的时间步长更加的相关。做法就是通过agent attention权衡每一个上下文向量的权重来的得到全局文档的agent attention distribution
(7)
v3,W7,W8,b2是学习到的参数,gt是一个在M个agent上的soft selection,然后我们计算agent上下文向量ct*
(8)
Ct*是一个定长向量,编码了全文中的重要信息,由agent提供,然后和decoder状态St连接到一起后一起注入到一个多层感知机中产生t时刻的词汇分布:
(9)
词汇分布:就是给词汇分配其在词汇表上的概率,词汇表使一个非常大的固定词表,然后选出在当前时间步长t上的具有最大概率的那个词作为输出,然后进行下一个step。
为了使编码器不用频繁的选择到底要用哪个agent的信息,作者还提出了contextual agent attention,也就是利用上下文的agent注意力来解决这个问题,就代表先前步长的agent attention。
(10)
3.3 多代理指针网络(Multi-Agent Pointer Network)
和 Summarization with pointergeneratornetworks所做的工作类似,作者也使用了从文档中复制候选单词来为每一个时间步骤中每个agent计算生成概率(genetation probability)的值.生成概率的出现是为了解决seq2seq+attention模型中的一个常见问题,这个问题就是通过该模型生成的摘要细节不准确这个问题,举个例子,source text:Germany beat Argentina 3:2->summary:Germany beat Argentina 2:0,我们可以看到比分是错误的。之所以出现这个问题是因为,对于模型来说,在经过多层计算后恢复第一层的某些信息这相当困难,很难从原文本中复制单词w到要输出的文本中,copy对于模型来说是很困难的。所以Abigail See就提出了生成概率来解决这个问题(Abigail See是所提论文的第一作者)。
(11)
生成概率:即通过从词汇表中选择单词并生成输出的概率,那么1-就是从原文本中复制单词作为生成的概率。
(12)
是所有W出现在原文本中的agent的注意力之和。这样的好处是即使原文本中有未登录词,也可以输出。
四、混合目标学习(Mixed Objective Learning)
作者使用多训练目标优化多重损失,在真实的实验中使用到的可能是几种的组合,也可能是所有情况都用到。几种损失函数如下:
4.1 MLE
也就是最大似然,是在本模型中都会用到的损失函数。是实际输出序列
(13)
4.2 语义衔接
随着解码器产生输出序列{y1,y2....yT},会以(“.”)为分隔符得到一些句子,然后计算这些句子之间的余弦相似度得到语义衔接损失
(14)
(15)
(15)是最终的训练目标,λ是一个可调节的超参数
4.3 增强学习损失
计算奖励是主要目的,把生成的序列和实际序列相比较然后计算,模型使用的是一种自批评训练算法
五、实验
数据:使用CNN/DailyMail和New York Times数据,在训练之前,作者划分文档成多个段落,每个段落由一个agent负责。
训练细节:文章缩短到800个字符左右,限制摘要长度在100-110之间,输入和输出的词表大小在50000以内。
结论:从m1到m7作者一共给出了7种组合,可以看到混合了MLE+SEM+RL的m7效果是最好的,同时
1.有沟通agent的模型效果要优于单一模型
2.有上下文agent attention的模型效果要优于没有的。
总的来说这种方式还是较以前的方式有效果上的提升,这种提升主要是因为覆盖了文档中的关键信息。同时生成式摘要还是有很多的问题亟待解决,生成的摘要的准确性、流畅性、总结性任然是需要提高的。