文章自动摘要之Pointer-Generator Networks

xiaoxiao2021-02-28  36

文章自动摘要之Pointer-Generator Networks(翻译)

论文地址:https://arxiv.org/abs/1704.04368

Abstract:

         Neural sequence-to-sequence models提供了种新的可以行的文字摘要途径(他们不限于简单的选择并重新排列原文的文本)。但是这些,这些模型有两个缺点:他们不正确的描述事实细节,并且倾向于重复。在我们的工作中,我们提出了一个以两种正交建模的方式,从标准的序列到序列的attentional model的新颖架构。首先,我们使用了一个可以从原文本中通过指向复制单词的混合的pointer-generator network,这样做有助于准确再现信息,同时保留了通过generator结构重现新词的能力。再次我们使用coverage结构来跟踪已经总结的内容,这样可以防止重复。我们把我们的model用在了 CNN/Dailly Mail summarization的任务上,ROUGE得分至少超过了当前abstractive state-of-the-art 2 ROUGE!

1 Introduction:

        文本摘要是一个压缩一段文章到一个包含原始文本主要信息的较短的描述。有两种广泛的摘要方法:extractive和abstractive(抽取和摘要),extractive仅限于段落,直接从原文中获取;abstractive方法可能产生一些原文不存在的新词,就像我们人通常写摘要一样!extractive方法相对容易些,因为从原文中复制大块文本可以确保基本的语法和准确性。但在另一方面,在一个抽象框架中,具备解释,概括和合并现实世界的知识这些复杂的能力是至关重要的。

        由于abstractive方法提取摘要的困难,过去大部分的工作都是基于extractive方法的。然而最近sequence-to-sequence models,其中RNN既可以读又可以自由的生成文本,这使得abstractive方法成为了可行。虽然这些系统有了希望,他们表现出了不良的效果,比如,不能准确的再现事实的细节,无法处理超出的词汇(OOV),并且进场重复生成的内容。

        在本文中,我们介绍一种在上下文的总结中可以处理这三种问题的体系结构。在最近的abstractive工作集中在了标题的生成(压缩一两个句子到一个单一的标题),我们认为长文本的总结更具有挑战性(需要更高的abstactive能力,同时避免重复)并最终更有用。我们把我们的model应用到最近推出包含了新闻和多句摘要的的CNN/Daily Mail数据,结果表明我们超越了最先进的abstractive系统至少2个ROUGE。

我们的混合pointer-generator network可以便利的从原文本通过指向复制单词,这提高了准确性和处理超出的词汇(OOV),同时保留了生成新单词的能力。这个网络可以认为是取了extarctive方法和abstarctive方法的的平衡点,和用于短文摘要(Guet al.’s (2016) CopyNet and Miao and Blunsom’s(2016) Forced-Attention Sentence Compression)比较相似。我们提出了一个新变量-coverage vector(覆盖向量),用来跟踪和控制原文本。我们证明coverage(覆盖变量)非常有效的消除了重复。

2 Our Models:

       在本节中,我们描述(1)baseline线,sequence-to-sequence mode,(2)pointer generater mode (3)coverage机制,非常容易加入到前两种模型的一种机制。我们的模型可以在线获得。

    2.1 Sequence-to-sequence attentional model

            我们的baseline和Nallapati相似,并在图2中做了描述。文章的词我们一一的喂入到encoder(单层双向LSTM),生成encoder的隐藏状态的序列。在每一步,decoder(单层单项的LSTM)接收前一个生成的词,然后具有解码的状态。attention的分布的计算参考Bahdanau et al. (2015):

其中是需要学习的参数。attention分配可以看做是对源词的概率分布,告诉解码器在哪里寻找下一个词。接下来,用attention分布计算出一个隐层encoder的加权和,称这个向量为上下文向量(context vector ):

context vector可以看做是一个固定大小的、代表到这一步从文中读取的内容,和decoder的状态联系上,并通过两个线性层来生成词汇的分布:

,,,都是学习的参数,是提供给我们在词汇表中所有单词预测的概率分布:

在训练过程中,第t步的loss是目标单词在那一步的负的似然对数值:

整个序列的整体loss是:

2.2 Pointer-generator network

       我们的pointer-generator network是一个baseline和point network的混合体,因为他允许通过指向复制单词,同时也可以从固定的词汇表中生成词。在pointer-generator model中,attention的分布和context vector的计算按照2.1节。另外,每步t生成词的可能性,他是通过context vector ,decoder状态和decoder的输入计算得到的:

其中,,和scalar 是学习参数,是sigmoid function.用做一个软开关,来选择是从词汇表中抽样生成词还是从输入序列中根据atention的分布 通过抽样来复制一个词。对于每一个文本,让扩展的词汇表去表示固定的词汇表,以及所有出现在源文本的词汇。我们得到了如下的分布,包含扩展的词汇表上:

提示:如果是一个超出的词汇(OOV),为0;同样,如果没有在源文本中出现,为0。生成超出词汇的能力是pointer-generator netword的主要优势。通过对比model,比如baseline仅限于他们预先设定好的词汇。

           损失函数如等式(6)和(7)所描述的,但是我们修改了的概率分布,在等式(9)中已经给出。

2.3 Coverage mechanism

        对于sequence-to-sequence models来说,重复是一个经常性的问题,尤其是在生成多个句子时更显著。我们应用coverage model来解决这个问题。在coverage model中,我们维护了一个coverage vecoter ,他是先前步的decoder的attention值的总和:

直观的,是一种(非标准化)覆盖原文本词汇的分布,是到目前为止的已经从attention机制生成的词汇的覆盖程度。注意 第一步源文本的单词没有被覆盖的,所以是个零向量。

          coverage vector被用作了attention机制的新增加的输入,这样等式(1)改为:

是一个和向量一样长度的学习参数,这样确保了attention机制当前的结论(选择哪里需要关注)是通过先前的信息得到的。这使得attention机制避免重复关注同一个位置(词),因此避免了生成重复的文字。我们定义个coverage loss来多次惩罚对相对位置的关注就有必要了(参考第5节):

coverage loss是有界的;。等式(12)不同于机器翻译中使用的coverage loss。在机器翻译(MT)中,我们应该有一个一对一的翻译比例,相应的,如果coverage vector大于或者小于1的时候将受到惩罚。这里的损失函数更灵活,因为摘要不需要全部覆盖(覆盖每一句),我们只能惩罚到当前步每个attention分布的重复,来预防词重复获得attention。最后,coverage loss 通过一个超参数,加上最初的loss函数来产生一个新的损失函数:

3 Related Work

转载请注明原文地址: https://www.6miu.com/read-2621766.html

最新回复(0)