博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记|Get To The Point: Summarization with Pointer-Generator Networks
阅读量:4290 次
发布时间:2019-05-27

本文共 1694 字,大约阅读时间需要 5 分钟。

该论文是ACL2017的一篇影响力较大的论文:

在这里插入图片描述

文章目录

概述

抽取式文本摘要实现简单,所有内容都是从原文中抽取,但想要高质量的,足够抽象的摘要,则需要进行生成式文本摘要。

神经序列到序列模型是生成式文本摘要的一种可行的方法。然而,这些模型有两个缺点:重现事实细节不准确,重复生成。在本文工作中,作者提出了一个新的架构,以两种正交的方式增强标准的seq2seq的注意力模型。

首先,作者使用一个混合的pointer-generator网络。一边能从源文本复制单词,有助于准确地复制信息,同时可以通过生成器产生新单词。其次,作者使用覆盖机制来跟踪已经总结的内容防止重复生成。

模型

基线模型

在这里插入图片描述

上图为基线模型。原文章的token被逐个输入encoder(单层双向LSTM),产生一个编码器隐藏状态序列 h i h_i hi(相当于注意力机制中的key和value)。在每一时间步t上,decoder(单层单向LSTM)接收前一个单词的单词嵌入(训练时,这是参考摘要中的前一个单词;测试时,为decoder产生的前一个单词),decoder状态为 s t s_t st(相当于query)。其中,注意力分布的计算方法为:
在这里插入图片描述
其中, v , W h , W s , b a t t n v, W_h, W_s, b_{attn} v,Wh,Ws,battn 为可学习参数。
注意力分布可看作源词中的可能性分配,告诉decoder关注哪里来产生下一个词,然后注意力分布被用来提供encoder隐藏状态的加权和,即上下文向量 h t ∗ h^*_t ht
在这里插入图片描述
注意力分布与decoder state通过两个线性层连接,产生词表分布 P v o c a b P_vocab Pvocab,是词表中所有单词的概率分布
在这里插入图片描述

指针生成网络

在这里插入图片描述

上图为该论文提出指针生成网络。
注意力分布和上下文向量和之前的基线模型一样,每个时间步的生成概率 p g e n p_{gen} pgen由上下文向量 h t ∗ h^*_t ht,decoder状态 s t s_t st,和decoder的输入 x t x_t xt生成:
在这里插入图片描述
p g e n p_{gen} pgen决定是生成,还是从原文复制。
从而词w的概率:
在这里插入图片描述
若w是OOV词,则 P v o c a b = 0 P_{vocab}=0 Pvocab=0,若w在原文中未出现,则 ∑ i : w i = w a i t {\sum}_{i:w_i=w}a^t_i i:wi=wait为0.
至此,使用复制机制解决了OOV问题。

保持一个覆盖向量 c t c_t ct,它是之前所有的decoder时间步上的注意力分布的总和(区分于上下文向量 h t ∗ h^*_t ht):

在这里插入图片描述
直观地说, c t c_t ct是源文档单词的非标准化分布,它表示这些单词迄今为止从注意力机制获得的覆盖程度。注意, c 0 c_0 c0是一个零向量,因为在第一个时间步中,没有涉及任何源文档。
将覆盖向量 c t c_t ct作为注意机制的额外输入,将式(1)变为:
在这里插入图片描述
之前的决策蕴含在 c t c_t ct中,注意力机制选择下一个关注点时,更容易避免重复关注于同一个位置,从而避免产生重复的文本。

实验

数据集使用CNN/Daily Mail,实验结果如下:

在这里插入图片描述

上半部分为生成式,下半部分为抽取式。显然本文中的方法,pointer-generator+coverage与当时的几种生成式方法对比有着明显优势。但是lead-3方法虽然简单,由于文章往往在开头就点明主旨,有着很高的表现,当时的一众模型在ROUGE-1的指标上都不能将其超越。

分析

由于本文方法是生成式的,考量该方法的抽象程度,下图表示原文中不存在的的n元组的比例。

在这里插入图片描述
可见本文方法相对于参考摘要和基线模型,产生新的n元组并不频繁,属于较低的水平,在35%地情况下,本文模型会复制原文中的句子,这与参考摘要的1.3%还有较大差距。

下图为两个摘要示例。

在这里插入图片描述
综上,该文的贡献主要在于:

  1. 复制机制解决OOV问题
  2. 覆盖机制解决重复生成问题

转载地址:http://nemgi.baihongyu.com/

你可能感兴趣的文章
Const指针 、 指向const的指针 、引用、指针
查看>>
GDB调试命令
查看>>
常见数据类型的字节数
查看>>
gcc/g++ 编译常见问题
查看>>
【设计模式】 工厂模式实例 C++ , 利用工厂模式写一个计算器
查看>>
opencv
查看>>
【图像处理】 一、OSTU分割
查看>>
Android常用的框架有哪些
查看>>
SSL 证书创建与部署
查看>>
学习搭建人工智能环境遇到的问题
查看>>
自己编写的计算器
查看>>
视频物体检测
查看>>
Tomcat启动遇到的问题
查看>>
Gradle-gradlew
查看>>
grpc-整合gradle与代码生成
查看>>
grpc-gradle与grpc流程完美整合(3)
查看>>
设计模式-装饰模式(Decorator)
查看>>
git-子模块submodule
查看>>
设计模式-策略模式(Strategy)
查看>>
设计模式-观察者模式(Observer)
查看>>