【导读】本篇论文是采用强化学习做抽取式摘要的首次尝试,作者在论文中通过强化学习对 ROUGE 进行全局优化,实现了自动生成文档摘要。对文档中的句子进行预测是否为候选摘要句子,并对所有句子进行打分,最后从候选摘要句子中选出打分高的m个句子作为文档摘要。
论文地址:
https://arxiv.org/abs/1802.08636
本篇文章分两部分来学习此论文,前部分主要讲解模型组成,后部分为实验。
从上图中可以看出论文中的模型由三部分组成:句子编码(Sentence Encoder)、文档编码(Document Encoder )、句子提取(Sentence Extractor)
Sentence Encoder
作者使用TNC(temporal narrow convolution),卷积核的宽度为h,即用一个大小为h个词的窗口,在句子中提取特征,每个filter都会产生一个feature map,它的大小为(k-h+1)*1,k表示句子s_i的长度。作者使用多个kernel。并且每个kernel扫描多次。如上图所示,对于输入的文本D中的某个句子s_i“Police are still hunting for the driver”,句子长度k为7,作者将句子中的每个词进行降维,分别用 5*4,2*4的卷积核进行3次卷积运算(步长为1,依次向下移动1),对于蓝色卷积核,完成对一个句子的遍历所产生的feature map为41,并且卷积了3次,因此就如上图生成的蓝色部分的feature map。
然后作者对feature map进行了Ma x pooling,最终生成6个维度的特征表示。
Document Encoder
就是组合句子序列来获得文档的表示
使用LSTM来避免梯度消失问题
对一系列句子(s_1,s_2,…s_n),用相反的顺序将句子送进模型中
Sentence Extractor
通过带softmax层的LSTM,对句子进行0或1的二分类标注。在某时刻t_i读入句子s_i,并通过从Document Encoder中获得的文档表示以及之前的被标注的句子综合考虑,做出分类预测,然后对softmax层的分数p进行排序。作者通过强化学习并优化ROUGE(recall-oriented understanding for gisting evaluation)对句子进行排序。
什么是 ROUGE呢?
ROUGE是自动文档摘要的相关国际测评中常常用到的一种内部评价方法,当然还有其他的方法比如Edmundson,我们这里会简单对 ROUGE进行介绍,其包含 ROUGE-N, ROUGE-L(最长公共子句, Fmeasure), ROUGE-W(带权重的最长公共子句, Fmeasure), ROUGE-S(不连续二元组, Fmeasure) 四种。
ROUGE-N基于摘要中n元词(n-gram)的共现信息来评价摘要,是一种面向n元词召回率的评价方法,N一般取1,2,3,4,代表基于一元词到4元词,可以理解为有几个词连在一起。
计算公式:
其中,n-gram表示n元词,{Ref Summaries}表示参考摘要,红框表示模型训练生成的摘要与参考摘要匹配的个数。由于ROUGE的计算公式是根据召回率进行改的,类比召回率可知,rouge=系统算法生成的摘要与参考摘要相同的N-gram数/参考摘要中的N-gram总数。
为什么使用ROUGE作为评价指标呢?
作者从目标函数交叉熵损失说起。之前的工作一般通过最大化p(y|D,θ),即对给定文档D,最大化句子序列(s1,s2,…sn)的训练label y的似然,这个目标可以通过最小化每个解码步骤的交叉熵损失达成:
然而交叉熵导致模型训练出现两个:
模型任务与交叉熵不一致:最大似然估计旨在最大化ground truth的似然,然而模型的任务是 a) 对句子进行排名以生成摘要 和 b)在测试时刻使用ROUGE进行评估;
对ground truth标签的依赖:用于训练摘要系统的文档集合不应该包含0,1标签来暗示某个句子是否应该被保留,相反,它们通常都是训练生成的摘要中进行推断得出的。
上图中的文档有31句,只显示了15句,单独标记句子(individual Oracle)产生太多为1的标签,31个句子有12个标记为1(上表中只显示15个句子其中10句为1),导致模型过拟合;集体标记(collective Oracle)仅包含被认为能成为摘要的少数句子,这样训练出来的模型会欠拟合,那些在训练过程中获得较高rouge分数的句子也应该被考虑在内。
针对这些问题,作者采用的训练策略不是最大化ground truth的似然,而是对文档中的每个句子预测单一的rouge分数,然后选出分数最高高的m个句子组成摘要。
使用强化学习为句子排序
作者将最大似然交叉熵与强化学习中的奖励作为目标函数来全局优化ROUGE,这个算法允许探索可能的摘要空间,使得模型对没见过的数据更加robust。
在开始正文之前,针对强化学习做个简单介绍。强化学习是通过反馈信息不断调整策略,从而算法能够学习到:在什么样的状态下选择什么样的动作可以获得最好的结果。强化学习的五个要素:机器(Agent)、 状态、动作、环境、奖赏,具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。
Policy Learning
作者提出的模型可以被看作和文档组成的环境之间交互的Agent。模型通过读入文档D,在对文档中的句子使用策略(p(yi|si,D,θ))来预测分数。当“agent”读完一篇文档,带有标签1的句子就会被抽取出来,然后就会给“agent”一个“奖励”(这个被选出来候选摘要要与标注摘要足够相似),作者使用rough-1,rough-2,rough-L的平均值作为“奖励”r,rough-1,rough-2用于评估信息量,rough-L用于评估语句的流畅度。
公式:
p_θ代表p(y|D,θ)。强化学习是基于不可微分的奖励函数(这里指rough)的期望梯度:
使用高概率样本进行训练
在实践中,为了方便计算,作者采用来自p_θ中的单一样本y^作为训练一个batch中的期望梯度的近似:
作者在这里提到随机策略来学习,它的优点是能够挑战复杂任务, 比如这个从非常大量的候选句子摘要中进行选择的任务。
(随机策略:p=π(x,a),表示在状态x下执行a动作的概率)
作者将等式(4)中y^的搜索空间限制为最大概率样本集合 Y^,并使用获得最高分的k次抽取结果作为 Y^的近似。也就是说,作者从文档中选择具有比较高rough分数的p个句子(长度小于m)组成候选摘要,然后用标注摘要进行验证,所有的摘要要按着F1 score(rough-1,rough-2,rough-L的平均值)进行排序。
数据集:CNN/Daily Mail数据集
CNN数据集抽取3个句子(m=3),k取5;Daily Mail数据集抽取4个句子(m=4),k取15,这两个数据集都从10个最高分句子序列(p=10)中来估计高分抽取。使用 One Billion Word Benchmark 预料库,skip-gram模型(上下文窗口为6,负采样为10)来训练词嵌入。
实验结果:
专 · 知
专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~
专知《深度学习:算法到实战》课程全部完成!560+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程