本文转载自:
自动文摘(六)
目录
Abstract
Introduction
Related work
Models
Encoder-Decoder with Attention
Large Vocabulary Trick
Vocabulary expansion
Feature-rich Encoder
Switching Generator/Pointer
Hierarchical Encoder with Hieratchical Attention
Experiments and Results
Gigaword Corpus
DUC Corpus
CNN/DailyMail Corpus
Qualitative Analysis
Conclusions
Link
再坚持一下,就会等到黎明破晓,重见光明。
今天继续分享一篇sentence level abstractive summarization相关的paper,出自于IBM Watson,Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond
本文是一篇非常优秀的paper,在seq2seq+attention的基础上融合了很多的features、trick进来,提出了多组对比的模型,并且在多种不同类型的数据集上做了评测,都证明了本文模型更加出色。从本文中得到了很多的启发。
(1)单纯地data-driven模型并不能很好地解决文本摘要的问题,针对文本摘要问题的特点,融合一些feature到模型之中,对模型的效果有很大的帮助。
(2)他山之石可以攻玉。其他领域的研究成果,小的trick都可以尝试借鉴于文本摘要问题之中,比如seq2seq+attention的技术从机器翻译中借鉴过来应用于此,比如LVT技术等等。
(3)文本摘要问题的解决需要解决好方方面面的问题,不仅仅是模型方面,还有数据集,还有评价指标,每个方面的进步都会是一大进步。
(4)deep learning技术训练出的模型泛化能力和扩展能力还有很长的路要走,对训练数据的严重依赖,导致了泛化能力和扩展能力的不足。针对特定的问题,构建特定的训练数据集,这对corpus的建设提出了更高的要求。
本文将自动文摘问题当作一个Seq2Seq
的问题,并且应用Attentional Encoder-Decoder Recurrent Neural Networks
框架来解决这个问题,并且在两个不同的数据集上取得了超越ABS(Rush,2015)模型的结果。同时,本文还提出多种模型来研究自动文摘中的重要问题,比如对关键词进行建模,并且得出词对于文档研究起关键作用的结论。研究结果表明本文的解决方案在性能上有很大的提升,另外,还贡献了一个包括多句子文摘的数据集和基准。
本文的贡献点有三个:(1)在两个新的数据集上应用seq2seq+attention模型,并且取得了state-of-the-art的结果;(2)研究了关键词对于自动文摘所起到的关键作用,并且提出了一种新的模型;(3)提出了一个新的数据集,供研究者使用。
本文研究的文本摘要问题是根据一篇长文来生成一篇短摘要或者标题,可以等同于将输入文本序列映射为一个目标文本序列,也就是seq2seq的问题。目前,解决seq2seq的问题,都是借鉴machine translation的方法。
但文本摘要问题和机器翻译问题有着很大的不同。
(1)文本摘要的问题输出长度一般都很短,并且不依赖于输入的长度。
(2)文本摘要的问题一般都会损失大量的信息,只保留少量的核心概念作为输出,而机器翻译则要保证信息损失最低,在单词级别上保证对齐。
那么机器翻译的相关技术是否会在文本摘要问题上表现同样突出呢?本文将会回答这个问题。受文本摘要与机器翻译问题的不同特点所启发,本文将超越一般的架构而提出新的模型来解决摘要问题。
本文与之前seq2seq类的paper有着一个很明显的区别,就是将摘要问题和机器翻译问题严格区别开,而不是简单地套用MT的技术来解决摘要问题,根据摘要问题的特点提出了更加合适的模型,相比于之前的研究更进了一步。
之前大量的研究都是集中于extractive摘要方法,在DUC2003和2004比赛中取得了不俗的成绩。但人类在做摘要工作时,都是采用abstractive方法,理解一篇文档然后用自己的语言转述出来。随着深度学习技术在NLP任务中的广泛使用,研究者们开始更多地研究abstractive方法,比如Rush组的工作,比如哈工大Hu的工作。
本文的贡献:
(1)在两种不同数据集上应用seq2seq+attention的模型,得到了state-of-the-art结果。
(2)根据摘要问题的特点提出了针对性的模型,结果更优。
(3)提出了一个包括多句子摘要的数据集和基准。
绝大多数的extractive方法都是unsupervised learning方法,不需要数据集来做训练,更适合搭建实用的文本摘要系统;而abstractive方法一般都是supervised learning方法,虽然在评测任务中表现更佳,但需要大量的领域数据做训练,横向扩展性并不好,数据集的内容、质量和规模都直接影响着模型的效果,目前比较难应用在实际系统中。所以,在data-driven的模型中,往往都需要配合大规模、高质量、领域相关的数据集。相比之下deep learning的方法更加简单粗暴一下,并不需要什么领域知识和特征工程,只要给定输入输出,就能拟合出一个巨大的神经网络,并且取得优于传统解决方案的结果,但太过依赖于数据,因此丧失了一般性。
这个模型本文的基准模型,Encoder是一个双向GRU-RNN,Decoder是一个单向GRU-RNN,两个RNN的隐藏层大小相同,注意力模型应用在Encoder的hidden state上,一个softmax分类器应用在Decoder的生成器上。
基准模型是套用Bahdanau,2014在机器翻译中的方法,解决方案的思路都与之前的paper类似,并无新颖之处。
这个模型引入了large vocabulary trick(LVT)
技术到文本摘要问题上。本文方法中,每个mini batch中decoder的词汇表受制于encoder的词汇表,decoder词汇表中的词由一定数量的高频词构成。这个模型的思路重点解决的是由于decoder词汇表过大而造成softmax层的计算瓶颈。本模型非常适合解决文本摘要问题,因为摘要中的很多词都是来自于原文之中。
LVT是一个针对文本摘要问题的有效方法,考虑到了摘要中的大部分词都是来源于原文之中,所以将decoder的词汇表做了约束,降低了decoder词汇表规模,加速了训练过程。
LVT技术很好地解决了decoder在生成词时的计算瓶颈问题,但却不能够生成新颖的有意义的词。为了解决这个问题,本文提出了一种扩展LVT词汇表的技术,将原文中所有单词的一度最邻近单词扩充到词汇表中,最邻近的单词在词向量空间中cosine相似度来计算得出。
词汇表的扩展是一项非常重要的技术,word embedding在这里起到了关键作用。用原文中单词的最邻近单词来丰富词汇表,不仅仅利用LVT加速的优势,也弥补了LVT带来的问题。
文本摘要面临一个很大的挑战在于确定摘要中应该包括哪些关键概念和关键实体。因此,本文使用了一些额外的features,比如:词性,命名实体标签,单词的TF和IDF。将features融入到了word embedding上,对于原文中的每个单词构建一个融合多features的word embedding,而decoder部分,仍采用原来的word embedding。
本文的一个创新点在于融入了word feature,构建了一组新的word embedding,分别考虑了单词的词性、TF、IDF和是否为命名实体,让单词具有多个维度的意义,而这些维度上的意义对于生成摘要至关重要。本文结果的优秀表现再一次印证了简单粗暴的纯data driven方法比不上同时考虑feature的方法。后面的研究可以根据本文的思路进行进一步地改进,相信会取得更大的突破。
文本摘要中经常预见这样的问题,一些关键词出现很少但却很重要,由于模型基于word embedding,对低频词的处理并不友好,所以本文提出了一种decoder/pointer机制来解决这个问题。模型中decoder带有一个开关,如果开关状态是打开generator,则生成一个单词;如果是关闭,decoder则生成一个原文单词位置的指针,然后拷贝到摘要中。pointer机制在解决低频词时鲁棒性比较强,因为使用了encoder中低频词的隐藏层表示作为输入,是一个上下文相关的表示,而仅仅是一个词向量。
Pointer机制与某篇paper中的Copy机制有异曲同工之妙,都是用来解决OOV问题的,本文的最关键的是如何计算开关状态是generator的概率,这一层的计算关系到当前time step是采用generator模式还是pointer模式。
数据集中的原文一般都会很长,原文中的关键词和关键句子对于形成摘要都很重要,这个模型使用两个双向RNN来捕捉这两个层次的重要性,一个是word-level,一个是sentence-level,为了区别与Li的工作,本文在两个层次上都使用注意力模型。注意力权重如下:
本文模型示意图如下:
注意力机制的本质是一组decoder与encoder之间相关联的权重,本文在两个层次上重新定义了attention weight,既考虑了某个encoder中每个word对于decoder的重要性,也考虑了该word所在sentence对于decoder的重要性。
为了作对比,本文采用了Rush文章中的Gigaword数据集和他的开源代码来处理数据,形成了380万训练样本和约40万验证样本和测试样本,本文随机选取2000组样本作为验证和测试集来测试本文模型的性能,为了更加公平地对比,本文使用了Rush采用的测试集来对比。
初始词向量的生成是用Word2Vec,但在训练的过程中会更新词向量。训练的参数设置也都采用一般的训练设置。
在Decoder阶段,采用大小为5的beam search
来生成摘要,并且约束摘要长度不大于30个单词。
评价指标方面,采用full-length Rouge召回率,然而该指标更加青睐于长摘要,所以在比较两个生成不同长度摘要的系统时并不公平,用full-length F1来评价更加合理。
对比实验共有以下几组:
(1)words-1sent:baseline模型,对应之前的Encoder-Decoder with Attention模型。1sent表示模型的输入是原文的第一句话。
(2)words-lvt2k-1sent:对应之前的Large Vocabulary Trick模型。lvt2k表示decoder的词汇表上限是2000。
(3)words-lvt2k-(2|5)sent:与第二组实验采用相同的模型,只是输入采用了原文的前两句话和前五句话。
(4)words-lvt2k-2sent-exp:对应之前的Vocabulary expansion模型。
(5)words-lvt2k-2sent-hieratt:对应之前的Hierarchical Encoder with Hieratchical Attention模型。
(6)big-words-lvt2k-(1|2)sent:模型与第二组实验相同,但将embedding size和hidden state size增大到了200和400。
(7)big-feats-lvt2k-2sent:对应之前的Feature-rich Encoder模型。
(8)feats-lvt2k-2sent-ptr:对应之前的Switching Generator/Pointer模型。
实验结果如下:
从表中清晰地看到switching generator/pointer模型在各个指标上都是最好的模型,本文的模型在Rush测试集中的结果都优于Rush的ABS+模型。
Gigaword由于其数据量大的特点,常被用于文本摘要任务中作为训练数据。本文的训练、生成参数都沿用了传统的方法,评价指标选择了更合适的F1,共设计了8大组实验,从方方面面对比了各个模型之间的优劣,从多个角度说明了本文模型比前人的模型更加优秀。
数据集对于deep learning是至关重要的,构建一个合适的数据集是一个非常有意义的工作。哈工大之前有一个工作就是构建了微博摘要的数据集,方便了研究中文文本摘要的研究者。
DUC2003作为模型的验证集,DUC2004作为对比测试的数据集,模型的训练都是通过Gigaword来做,这里主要是为了对比本文模型和Rush的ABS和ABS+模型,结果如下:
在DUC2003中big-words-lvt2k-1sent表现更加突出,所以用该模型来与其他系统进行对比,结果明显优于其他系统。
本文模型相比于其他系统的优势在DUC数据集中并不如Gigaword数据集上更加明显。因为大家的模型都是采用Gigaword来做的,模型都非常好地拟合了Gigaword数据集。从这个结论中也可以看出,deep learning技术对于数据集规模、质量和类型的依赖,并不能很好地泛化到其他数据内容中。
现有的abstractive摘要系统都是单句摘要,本节实验将要证明本文的模型同样在多句摘要任务中会有更好的表现。
实验结果如下:
从表中结果可以看出,switching generator/pointer模型更加优秀。
本文的一大贡献在于构建了CNN/DailyMail文本摘要数据集,用来评测多句摘要的任务,为今后大量的相关工作提供了数据保障。
本文的模型在一些数据的处理会理解错原文的意思,生成一些“错误”的摘要。另外,Switching Generator/Pointer模型不仅仅在处理命名实体上有优势,而且在处理词组上表现也非常好。未来的工作中,将会对该模型进行更多的实验。效果见下图:
本文模型相对于Rush的模型有了更进一步的效果,但对于文本摘要问题来说,并没有本质上的提升,也会经常出现这样或者那样的错误。指标上的领先是一种进步,但与评价指标太过死板也有关系,现有的评价指标很难从语义这个层次上来评价结果。所以,文本摘要问题的解决需要解决方方面面的问题,比如数据集,比如评价指标,比如模型,任何一个方面的突破都会带来文本摘要问题的突破。
本文提出的模型相比于前人的模型有更好的效果,并且构建了一个新的摘要数据集,可以满足多句摘要的任务。
[1] Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond