A Deep Reinforced Model for Abstractive Summarization
来源:互联网 发布:淘宝店铺绑定分店过程 编辑:程序博客网 时间:2024/05/19 16:47
A Deep Reinforced Model for Abstractive Summarization
Romain Paulus, Caiming Xiong, and Richard Socher. 2017.A Deep Reinforced Model for Abstractive Summarization
官方博客介绍
Introduction
本周读的是Salesforce研究发表的关于自动文本摘要的论文,自动文本摘要主要分成抽取式和生成式,抽取式主要是从原文中找到和主题相关的句子或短语,然后组合成摘要,有点类似“复制粘贴”的模式;而生成式主要是在理解了原文的基础上,对原文进行抽象,然后用语义相近的词或者不同表述方法进行文本摘要,更符合人类的形式。但是长文本生成摘要过程中,经常出现不连贯不相关内容、重复语句等问题,基于这些问题,论文中使用了很多trick,包括融合了改进的attention机制和强化学习的训练方法,结果在CNN/Daily Mail、New York Times数据集上达到了新的state-of-the-art。
Model
论文的主要框架还是Seq2Seq,输入是原文文本,输出是文本摘要,encoder采用bi-LSTM,decoder采用单层LSTM。
A new Attention and Decoding Mechanism
文中使用了两套attention机制,Intra-temporal attention和Intra-decoder attention。前者是作用在encoder中上的,对input中每个词计算权重,这样能使生成的内容信息覆盖原文。后者是作用在decoder上的,对已经生成的词也计算权重,这样能够避免生成重复的内容。然后两者拼接起来进行decode生成下一个词。如下图所示:
在计算Intra-temporal attention权重的过程中,论文采用了一种方法对input中获得较高权重的词进行惩罚,以防后面decode过程中再次赋予该词高权重。计算公式如下,decoder的Intra-decoder attention权重计算则少了以下第二个公式。
eti=hdtTWeattnhei
Supervised Learning vs. Reinforcement Learning
RNN运行一般有两种mode:(1) Free-running mode;(2) Teacher-Forcing mode。前者就是正常的RNN运行方式:上一个隐状态的输出就做为下一个隐状态的输入,这样做有可能出现训练的早期,靠前的state中如果出现了极差的结果,后面的全部state都会受影响,以至于最终结果非常不好也很难溯源到发生错误的源头,而后者Teacher-Forcing mode的做法是,每次不使用上一个隐状态的输出作为下一个隐状态的输入,而是直接使用ground truth的对应上一项作为下一个隐状态的输入,这样做能使得较快地生成正确的结果,但也会过于依赖数据,training时效果很好,testing时无ground truth数据效果变差。
传统的目标函数一般是使用极大似然函数,但在生成文本摘要时,却存在以下局限性:1)在teacher forcing的监督式训练中有ground truth的支持,错误没有发生累积,而在test过程中,错误没有纠正向后传播,错误会累积,比如训练过程中t时刻生成了单词’tech’,而ground truth中该词应该是’science’,那么接下来生成t+1时刻的单词时,接收的输入还是groud truth中的’science’一词,并不是’tech’,所以错误也发生在t时刻,不会向后传播,但test过程则会。2)对于文本摘要,往往不止一种解读,一份参考,这种word by word的监督式学习和极大似然目标函数会使得模型只生成像参考摘要中一模一样的模式。
Lml=−∑nt=1log p(y∗t|y∗1,...,y∗t−1,x)
而用于评价生成摘要的ROUGE指标考虑到这一灵活性,通过比较参考摘要和生成的摘要,给出摘要的评价。所以希望在训练时引入ROUGE指标。但由于ROUGE不可导,无法直接对ROUGE进行梯度计算。因此,可以考虑用强化学习将ROUGE指标加入训练目标。
文中的做法是模型先生成摘要样本,每一步生成摘要词时选择概率最大的词
如果只采用强化学习的目标函数进行训练,无法保证摘要的质量和可读性,因此最终再将两者进行加权,即保持了语言的可读性又保证了摘要的灵活性。
Token generation and pointer
将一些词直接copy过来,解决一部分OOV的问题。主要参考以下的论文。
Jiatao Gu, Zhengdong Lu, Hang Li, et al. “Incorporating Copying Mechanism in Sequence-to-Sequence Learning”. ACL 2016.
Caglar Gulcehre, Sungjin Ahn, Ramesh Nallapati et al. “Pointing the Unknown Words”. ACL 2016.
Sharing decoder weights
encoder和decoder共享embedding权重。
Repetition avoidance at test time
对于生成摘要中有重复出现tri-gram的直接忽略,这得具体分析数据和人为制定规则。
Result
如果去除掉intra-attention和强化学习,那么摘要出现很多重复句子。以下是博客举例的几篇文章摘要:
Thoughts
集合了大部分前沿论文的做法,采用了很多trick,但并有一些并没有做对比实验,很难解释是否是该trick起到作用。比如前面提到的Intra-decoder attention。
文中说是生成式文本摘要,但从博客举的例子来看,似乎都是从原文中的句子进行组合,更像是抽取式,可能是因为采用了pointer的原因,大部分是pointer在起作用?
这里的强化学习似乎不是很准确,只是利用了reward的思路?reward函数的设计也似乎有点简单?
- A Deep Reinforced Model for Abstractive Summarization
- #Paper Reading# A Neural Attention Model for Abstractive Sentence Summarization
- Abstractive Document Summarization with a Graph-Based Attentional Neural Model
- Controllable Abstractive Summarization
- [EMNLP2015]A Neural Attention Model for Sentence Summarization
- #Paper Reading# SummaRuNNer: A RNN based Sequence Model for Extractive Summarization of Documents
- 论文笔记1:SummaRuNNer: A RNN based Sequence Model for Extractive Summarization of Documents
- RBM-An approach for text summarization using deep learning algorithm
- A Hierarchical Deep Temporal Model for Group Activity Recognition
- #Paper Reading# Abstractive Sentence Summarization with Attentive Recurrent Neural Networks
- 立体匹配之(三): A Deep Visual Correspondence Embedding Model for Stereo Matching Costs
- Deep Learning for Chatbots, Part 2 – Implementing a Retrieval-Based Model in Tensorflow
- Deep Learning for Chatbots, Part 2 – Implementing a Retrieval-Based Model in Tensorflow
- A Powerful Generative Model Using Random Weights for the Deep Image Representation笔记
- Introduction for Structured Text Summarization
- Fear the REAPER A System for Automatic Multi-Document Summarization with Reinforcement Learning
- Deep Learning 读书笔记(十二):A Neural Probabilistic Language Model
- A Lightened CNN for Deep Face Representation
- spring的helloworld
- hdu 3062 2-sta
- ubuntu16.04安装kinect2的驱动及其在ROS中使用
- java对字符的编码处理
- Rhyme/Linux U盘的挂载与卸载
- A Deep Reinforced Model for Abstractive Summarization
- 三个关键词看“全网通”:改革、开放与公平
- 文章标题 AngularJs记事本 简单实现(判断输入框以及查找)
- 【观察】医疗行业:双重变革压力下的机遇与挑战
- 欢迎使用CSDN-markdown编辑器
- 4、JQuery——DOM节点删除、复制和拷贝
- git教程
- 代码封装/匿名对象/关键字(this ,static)/工具类main方法/
- ubuntu执行startx命令之后,无法登录