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中

Deep Communicating Agents for Abstractive Summarization论文分享

 

 

三、多agent编码器

本节会剖析整个模型的架构

 

3.1 每一个agent有下面两个栈编码器编码。

局部编码器(local encoder)

 

每一个agent的第一层就是局部编码器,每个段落注入到一个agent里面,局部编码器就是一个B-LSTM

产生局部编码隐层状态hi,

 

                                                          Deep Communicating Agents for Abstractive Summarization论文分享  (1)

 

H是隐状态维度,因为是双向的,所有有来自两个方向的隐状态,同时还得加上词向量ea,i.

 

局部编码器的输出被注入到上下文编码器中。

 

上下文编码器(contextual encoder)

Deep Communicating Agents for Abstractive Summarization论文分享

整个框架允许agent环跨多个编码层,所以每一个上下文编码器的输出都是基于从其他的agent中接收到的信息与自身的agent中接收到的信息的融合表征,同时每一个agent还会把上一层接收到的信息用到联合编码。上下文层中的lstm会收到三个输入:来自邻近lstm的隐状态,来自前一层的隐状态,从其他agent传过来的message vector。然后输出一个隐状态。

                                            Deep Communicating Agents for Abstractive Summarization论文分享(2)

第k层agent会接收第k层中从其他agent中的输出输出的平均值,z(k)即为其他agent中传过来的message

                                         Deep Communicating Agents for Abstractive Summarization论文分享(3)

:来自每个agent上下文层的输出的最后一个隐层状态,我们把从其他编码器agent中得到的消息求平均,再加上注意力参数

 

                                          Deep Communicating Agents for Abstractive Summarization论文分享 (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上使用一种新的按等级划分的注意力机制,词注意力分布就通过下面的式子计算出来:

                                    Deep Communicating Agents for Abstractive Summarization论文分享(5)

la是段落Xa上的注意力分布,v2,W5,W6,b1是学习到的参数,对于每一个解码step t,一个新的解码文本被用来计算每一个agent。

                                               Deep Communicating Agents for Abstractive Summarization论文分享(6)

每个单词上下文向量表示agent从其已读取的段落中提取的信息,然后由译码器决定那一段信息和当前decoding的时间步长更加的相关。做法就是通过agent attention权衡每一个上下文向量的权重来的得到全局文档的agent attention distribution

 

                                                       Deep Communicating Agents for Abstractive Summarization论文分享(7)

 

 

v3,W7,W8,b2是学习到的参数,gt是一个在M个agent上的soft selection,然后我们计算agent上下文向量ct*

                                                      Deep Communicating Agents for Abstractive Summarization论文分享  (8)

 

Ct*是一个定长向量,编码了全文中的重要信息,由agent提供,然后和decoder状态St连接到一起后一起注入到一个多层感知机中产生t时刻的词汇分布:

                                                   Deep Communicating Agents for Abstractive Summarization论文分享 (9)

词汇分布:就是给词汇分配其在词汇表上的概率,词汇表使一个非常大的固定词表,然后选出在当前时间步长t上的具有最大概率的那个词作为输出,然后进行下一个step。

为了使编码器不用频繁的选择到底要用哪个agent的信息,作者还提出了contextual agent attention,也就是利用上下文的agent注意力来解决这个问题,就代表先前步长的agent attention。

                                                Deep Communicating Agents for Abstractive Summarization论文分享(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是所提论文的第一作者)。

                                                       Deep Communicating Agents for Abstractive Summarization论文分享 (11)

生成概率:即通过从词汇表中选择单词并生成输出的概率,那么1-就是从原文本中复制单词作为生成的概率。

                                                       Deep Communicating Agents for Abstractive Summarization论文分享     (12)

是所有W出现在原文本中的agent的注意力之和。这样的好处是即使原文本中有未登录词,也可以输出。

 

四、混合目标学习(Mixed Objective Learning)

 

作者使用多训练目标优化多重损失,在真实的实验中使用到的可能是几种的组合,也可能是所有情况都用到。几种损失函数如下:

 

4.1 MLE

也就是最大似然,是在本模型中都会用到的损失函数。是实际输出序列

                                      Deep Communicating Agents for Abstractive Summarization论文分享  (13)

4.2 语义衔接

随着解码器产生输出序列{y1,y2....yT},会以(“.”)为分隔符得到一些句子,然后计算这些句子之间的余弦相似度得到语义衔接损失

                                        Deep Communicating Agents for Abstractive Summarization论文分享(14)

 

                                   Deep Communicating Agents for Abstractive Summarization论文分享  (15)

(15)是最终的训练目标,λ是一个可调节的超参数

 

 

4.3 增强学习损失

计算奖励是主要目的,把生成的序列和实际序列相比较然后计算,模型使用的是一种自批评训练算法

                                Deep Communicating Agents for Abstractive Summarization论文分享        

五、实验

 

数据:使用CNN/DailyMail和New York Times数据,在训练之前,作者划分文档成多个段落,每个段落由一个agent负责。

 

训练细节:文章缩短到800个字符左右,限制摘要长度在100-110之间,输入和输出的词表大小在50000以内。

Deep Communicating Agents for Abstractive Summarization论文分享

Deep Communicating Agents for Abstractive Summarization论文分享

 

结论:从m1到m7作者一共给出了7种组合,可以看到混合了MLE+SEM+RL的m7效果是最好的,同时

1.有沟通agent的模型效果要优于单一模型

2.有上下文agent attention的模型效果要优于没有的。

 

总的来说这种方式还是较以前的方式有效果上的提升,这种提升主要是因为覆盖了文档中的关键信息。同时生成式摘要还是有很多的问题亟待解决,生成的摘要的准确性、流畅性、总结性任然是需要提高的。