A Deep Reinforced Model for Abstractive Summarization
怎样训练能够产生长句、连贯和有意义的摘要的模型仍然是一个有待解决的研究问题。事实上,即使是最先进的深度学习算法,生成任何长文本也是很困难的。为了使模型能够成功地生成摘要,本文引入了两个独立的改进:一个更加语境化的词生成模型和一种通过强化学习(RL)训练摘要模型的新方法。
两种训练方法的结合使得系统能够创建相关且高可读性的多语句长文本(例如新闻文章)摘要,并在之前的基础上实现了显著的提升。本文的工作可以对各种不同类型的文本和摘要长度进行训练。此外,本文还介绍了相关模型的主要贡献,并概述了文本摘要特有的自然语言挑战。
论文链接:https://arxiv.org/pdf/1705.04304.pdf
阅读笔记精选
geminifox
本文瞄准的问题:现有的基于 RNN 的生成式摘要方法在处理长文档和摘要生成长度上具有相当的局限,且生成的摘要往往具有内容重复或不连贯等现象,导致质量不理想。
本文提出方法的新意:分别在 encoding 和 decoding 阶段引入了 intra-temporal attention 和 sequential intra-attention 机制,其目的在于当生成摘要的每个词时能充分考虑更多的显式或隐式状态信息或上下文信息,使得能尽可能避免之前的 step 已重点关注过或生成过的内容重复出现。此外,本文也提出一种新的基于 RL 的训练方法,并采用了一种混合目标函数来综合考虑摘要的信息覆盖度和连贯性。
Robin_CityU
处理的主要问题:exposure bias,即传统 teacher forcing 训练方法容易产生的单词容复问题。
主要的解决方案:
1. intra-temporal attention: decoding 过程中计算当前 step 在 encoder 的 attention 分布时也考虑之前的 decoding steps 在 encoder 的 attention 分布。类似 coverage 的思想,避免 decoding 过程过分集中在 encoder 的某一部分。
2. intra-decoder attention: decoding 过程加入当前 step 在之前 decoding steps 上的 attention 分布。也是为了避免重复,但是没有做两种 attention 的对比实验。
3. reinforcement learning: 训练过程中分别用 sampling 和 beam search width=1 的方式生成独立的两个序列,并计算其与 ground truth 之间的 rouge 值作为 reward function,用 policy gradient learning 优化目标函数。此处使用 rouge 一定程度上起到提升最终的 performance 功能,但是生成的句子可读性不高。
4. other tricks: pointer & generator(近来常用的copy 机制),sharing decoder weights(out projection 部分加入 embedding matrix),trigram repetion avoidance(粗暴的避免 trigram 重复的方法—遇见重复直接舍弃)。
亮点:(1)intra-temporal attention 计算对于避免 attention 过于集中有借鉴意义。(2)RL 的使用虽然有不足,但扩展了解决此类问题的思路。(3)tricks在实验中占的作用不小,论文解释不清理由,但是我们做实验时是可以一试的。
不足:(1)intra-decoder attention 的作用也许可以单独再验证一下。就个人经验而言,seq2seq 问题,decoder 部分训练的 language model 本身就很强大,如何提升 adequacy 比较重要。(2)RL 的 reward function 选取和设计有待深入分析。(3)summarization 及同类 NLP 问题,performance 的衡量标准不能仅仅以 rouge/bleu 等硬指标为主,也可以是 human readability/user study,或者结合更具体的任务(summarization 是否有助于其他任务)等。
fishthu
本文尝试解决自动摘要目前在生成长文本时会出现的重复和可读性差的问题。
采用的方法:
1. 采用了 Intra-temporal attention 和 intra-decoder attention,前者是避免多次重复 attend 到相同的 encoder hidden state 上,后者在 decoding 的过程中将之前已经 decoded 的信息也作为上下文向量输入,两者都是希望能够改善生成的序列中的单词重复的问题。
2. 将 RL 与 teaching force 结合作为训练目标,目的是减少 exposure bias 和增加可读性。RL 部分采用的是 self-critical policy gradient training 算法,使用 ROUGE-L 作为 Reward。对该算法不是很了解,还要再去看一下参考文献。
3. 其他的一些 tricks,比如 copy 机制,sharing decoder weights,beam search 时限制输出相同的 trigram 等。
darrenyaoyao
解决问题:1. repeating phase,2. exposure bias
1. 创新点:利用 intra-temporal attention 加在 encoder 跟 decoder 上,encoder 的部分,可以强化关注部分文章。decoder 的部分,可以避免出现重複的字。 除次之外,还利用现在很流行的的 pointer network 来解决 out of vocabulary 的问题。
2. 解决exposure bias的最大亮点,在引入 RL 来帮助 general。 解决这个问题的方法,最知名的就是 schedule sampling。这边提出了另一种架构。
好奇,如果结合 schedule sampling 跟 RL,对整体的效能,会不会有更好的提升。
值得探讨的实验结果:从结果的图表可以看到,许多表现最好的数据,并不是使用 ML 的 loss function. 而是只採用 RL,或许我们对于 seq2seq model 的 decoder 认知会有所改变。
Q&A 精选
yiqingyang
公式12 对应的 copy 机制是用 hard switch 吗?另外他说如果 yt 是个 oov or ner 则 ut 设置为 1,使用 copy 机制,那如果源句子中也没有这个 oov 呢,怎么得到这个词的概率?
Sunnysmile: 感觉可以将词表分为三类,一类是高频词表,一类是只有一个频率的词表,即 oov,还有一类是 source。oov 中在 source 中找不到的话可以在第二个词表中找,但这样模型计算量会增大。
yiqingyang: 感觉 oov 分两类,一个是源句子中的 oov,一个是目标词表中的一个 oov。训练时。源句子中的 oov 使用 copy 机制来计算这个 oov 的概率,如果 oov 不在源句子中,则使用生成的方式来得到 oov 的概率。
Robin_CityU: 目前为止 copy mechanism 的 paper 能把 vocabulary 设计的比较全面的只看到过港大 Jiatao Gu 那篇。
Robin_CityU: 感觉 1704.04368 和 Jiatao Gu 那篇 CopyNet 比较类似。只是 1704.04368 中对 Copy 和 Pointer 的概率是分开计算再加权求和。而 CopyNet 是放在一起计算的(我学习的是 github 上 CopyNet Theano 那一版的源码)。但总体思路很类似。
Robin_CityU
这是一个新的变量吗?如果是,那如何能保证,与 Wout 和 Wemb 分离相比,训练时收敛得更快?
Hinse: 两个猜测:1. 他 embedding 有 pre-training。主要需要训练的只是 proj, 2. 增加了 embedding 的变化(多一个途径求导过来),可能也能加速收敛?。 这个可能要实测一下, 估计更多的是个实验结果。
lijun_wu: 这 paper 实在是把太多东西(trick)堆在一起了。也没告诉每个 trick 是否都是 work 的 compare。
jianzhengming
we force our decoder to never output the same trigram more than once during testing.
这 trick 为了避免这种场景:几个高频词组合重复。
Sunnysmile: 会不会有种投机取巧的感觉?想问一下神经网络会学出很多重复的词问题的本质是什么?
lijun_wu: 1. training 不够好,时间不够长;2. 代码有 bug;3. data 本身带来(co-occurence)前两种的可能性最大,一般也不会夸张的总是重复的词语出现。但是这里的这个方法有点太硬了,不过估计效果肯定还是有的。
Ttssxuan
we hypothesize that it can assist our policy learning algorithm to generate more natural summaries.
请教一下,在其中 LOSS 的 rl 部分,前文有提到使用的是 reinforce learning,提供了一个 base hat y,不明白他的 reward 函数是如何定义的,如何判断 reward 高低呢?是依据是一段中提到的 ROUGE 标准中的 n-gram overlap between generate summary and a reference sequence 吗?那 reward 是不是直接使用 n-gram 去衡量生成的摘要?
Humh: 可以看下参考文献:Steven J Rennie, Etienne Marcheret, Youssef Mroueh, Jarret Ross, and Vaibhava Goel. 2016. Self-critical sequence training for image captioning. arXiv preprint arXiv:1612.00563.
kan_deng: Reward 函数,文中说了,是比较 y^ 与 ground truth y* 之间的差距,然后把差距代入某个评测函数,来得到的。看本页前文我划的重点语句。
论文共读报名方式
点击「阅读原文」提交内测申请,我们将在 48 小时内完成审核并和您取得联系。
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。