引
最近读了几篇关于deep learning在summarization领域应用的paper,主要的方法是借鉴机器翻译中seq2seq的技术,然后加上attention model提升效果。今天来分享其中一篇paper,Generating News Headlines with Recurrent Neural Networks Abstract本文的思路是用LSTM RNN作为encoder-decoder框架的模型,并且使用了attention模型来生成新闻文章的标题,效果很好。并且提出了一种简化版的attention mechanism,相比于复杂版的注意力机制在解决headline generation问题上有更好的效果。
ModelOverviewencoder使用文章内容作为输入,一个时间点表示一个单词,每个单词先通过embedding层将词转换为一个分布式向量( decoder将encoder中最后一个词向量作为输入,decoder本质是一个rnnlm,使用softmax和attention mechanism来生成每个词。 损失函数: 这里y是输出的词,x是输入的词。 本文采用了4层LSTM,每层有600个单元,使用Dropout控制过拟合,所有参数的初始值都服从-0.1到0.1的平均分布,训练方法是RMSProp,学习速率0.01,动量项0.9,衰减项0.9,训练9个回合,在第5个回合之后,每个回合都将训练速率减半。batch训练,384组训练数据为一个batch。
Attention注意力机制可以用来帮助神经网络更好地理解输入数据,尤其是一些专有名词和数字。attention在decoder阶段起作用,通过将输出与所有输入的词建立一个权重关系来让decoder决定当前输出的词与哪个输入词的关系更大(即应该将注意力放到哪个词上)。 本文采用两种不同的注意力机制,第一种称作复杂注意力模型( 第二种称作简单注意力模型( 对比两幅图可以看出区别在于隐藏层的最后一层的表示上,简单模型将encoder部分在该层的表示分为两块,一小块用来计算注意力权重(
DatasetOverview本文用English Gigaword数据集,该数据集包括了六大主流媒体机构的新闻文章,包括纽约时报和美联社,每篇文章都有清晰的内容和标题,并且内容被划分为段落。经过一些预处理之后,训练集包括5.5M篇新闻和236M单词。 Preprocessingheadlines作为target,news text的第一段内容作为source,预处理包括:小写化,分词,从词中提取标点符号,标题结尾和文本结尾都会加上一个自定义的结束标记 数据集被划分为训练集和保留集,训练集将会被随机打乱。
Dataset Issues训练集中会出现标题与所输入文本关系不大的情况,比如:标题包括以下字样For use by New York Times service clients,或者包括一些代码,biz-cover-1等等,本文对此不作处理,因为一个理想的模型可以处理这些问题。‘
Evaluation模型的优劣用两种方法进行评价。第一种,将训练集和保留集
Analysis计算硬件是GTX 980 Ti GPU,每种模型的计算都会花费4.5天时间。效果直接看下图: 在应用模型结果做保留集的预测时,不同新闻来源的文章预测效果不一样。比如:在BBC、华尔街日报、卫报的效果就非常好,但是在赫芬顿邮报和福布斯的效果就很差。
Understanding information stored in last layer of the neural network存在有许多思路来理解注意力机制函数,考虑下面的公式,从输入计算到softmax输出: 第一个部分表示attention context vector对decoder输出的影响,由于context是从input计算得来的,可以理解为encoder的每个输入对decoder输出的影响;第二个部分表示decoder当前隐藏层最后一层对输出的影响;第三个部分表示偏置项。 Understanding how the attention weight vector is computed
Errors本文的模型中存在几种类型的错误,包括: 1、神经网络机制在填充细节时细节发生丢失。比如:target是 72 people died when a truck plunged into a gorge on Friday,而模型的预测是 72 killed in truck accident in Russia。这种错误经常出现在decoder beam很小的情况下。 2、生成的headline与输入的文本没有太大的关系,这些headline在训练集中出现太多次。这种错误常出现在decoder beam很大的情况下。 上述两种错误反映了本文的模型对decoder beam非常敏感。
Future Work使用BiRNN来代替RNN配合attention model效果可能会更好一些。
Conclusions本文提出的simple attention mechanism效果很不错。 Review本篇文章是近期所读文章中最简单的一篇,没有太精彩的理论和创新,是一个工程性很强的paper,将实现过程中的思路和一些参数交代的很清楚,对于复现此paper提供了很大的帮助。 深度学习是一门研究表示学习的技术,用一张巨大的网来表征给入的数据,使得模型不依赖于领域的特征,是一种full data driven的模型,听起来像是一种银弹,尤其是近几年的在各大领域的都收获了state-of-the-art的结果,但模型的参数调优不没有太多的理论依据,之前的神经网络规模小调参数时间代价会小一些,但deep learning动不动就需要几天甚至几周的训练时间,调参数代价太大;中间层的表示如何解释,也是一个十分头疼的事情,对于cv领域来说还好,总可以将matrix显示成一幅图片来看效果,比较直观,但对于nlp领域,hidden state到底是什么,表示哪个词?表示哪种关系?词向量的每一个维度代表什么?具体真说不清楚,只有在输出的那一层才能看到真正的意义。 一个领域的发展需要很多种不同思路的试错,应该是一种百家争鸣的态势,而不是大家一股脑地都用一种技术,一种思路来解决问题,理论模型都趋于大同,这样对这个领域的发展不会有太积极的意义。 machine translation是最活跃的一个研究领域,seq2seq框架就是从该领域中提炼出来的,attention model也是借鉴于soft alignment,对于文本摘要这个问题来说,套用seq2seq只能解决headlines generation的问题,面对传统的single document summarization和multi document summarization任务便束手无策了,因为输入部分的规模远大于输出部分的话,seq2seq的效果不会很好,因此说abstractive summarization的研究还长路漫漫。不过这里可以将extractive和abstractive结合在一起来做,用extractive将一篇文档中最重要的一句话提取出来作为输入,套用seq2seq来做abstractive,本质上是一个paraphrase的任务,在工程中可以试一下这种思路。 Link[1] Generating News Headlines with Recurrent Neural Networks |
|