去年四月被 Salesforce 收购的 MetaMind 仍然在继续进行自然语言领域的前沿研究。近日,其研究博客发布了一篇文章,详细介绍了一种用于文本摘要提取的深度强化模型(deep reinforced model),机器之心对这篇博客进行编译介绍,并在文后附带了相关的研究论文摘要。论文链接:https://arxiv.org/abs/1705.04304机器之心发布过的 MetaMind 的其它文章还有《MetaMind 发布论文:借助动态记忆网络 DMN 让机器更好地像人类般推理》和《MetaMind 深度解读 NLP 研究:如何让机器学习跳读》。
近几十年来,获取新信息的方式发生了根本性变化,也带来了越来越多挑战。信息的获取已不再是瓶颈;瓶颈在于我们是否有能力紧跟信息的步伐。我们都必须通过越来越多的阅读来获取关于工作、新闻和社交媒体的最新进展。我们研究了人工智能在信息大潮中帮助人们提高工作能力的方法——答案之一是让算法自动归纳长文本。
怎样训练能够产生长句、连贯和有意义的摘要的模型仍然是一个有待解决的研究问题。事实上,即使是最先进的深度学习算法,生成任何长文本也是很困难的。为了使模型能够成功地生成摘要,我们引入了两个独立的改进:一个更加语境化的词生成模型和一种通过强化学习(RL)训练摘要模型的新方法。
两种训练方法的结合使得系统能够创建相关且高可读性的多语句长文本(例如新闻文章)摘要,并在之前的基础上实现了显著的提升。我们的算法可以对各种不同类型的文本和摘要长度进行训练。在本文中,我们介绍了我们的模型的主要贡献,并概述了文本摘要特有的自然语言挑战。
图 1:我们的模型的示例——由新闻文章生成多语句摘要。对于每个生成的词,模型重点关注输入的特定词和之前生成的输出。
提取式摘要(Extractive Summarization)与抽象式摘要(Abstractive Summarization)
自动摘要模型可以通过以下两种方法实现:通过提取或抽象。提取式模型执行「复制和粘贴」操作:它们选择输入文档的相关短语并连接它们以形成摘要。它们非常稳健,因为它们使用直接从原文中提取的已有自然语言短语,但是由于不能使用新词或连接词,它们缺乏灵活性。它们也不能像人一样改述。相反,抽象式模型基于实际的「抽象」内容生成摘要:它们可以使用原文中没有出现的词。这使得它们有更多的潜力来产生流畅和连贯的摘要,但因为需要模型生成连贯的短语和连接词,这也是一个更难的问题。
虽然抽象式模型在理论上更强大,但在实践中也常出现错误。在生成的摘要中,典型的错误包括不连贯、不相关或重复的短语,特别是在尝试创建长文本输出时。从已有模型来看,它们缺乏一般连贯性、意识流动性和可读性。在本任务中,我们解决了这些问题,并设计了一个更稳健和更连贯的抽象式摘要模型。
为了理解我们的新抽象式模型,我们首先定义基本构建块(building block),然后介绍我们新的训练方式。
用编码器-解码器模型读取和生成文本
循环神经网络(RNN)能够处理可变长度的序列(例如文本),并为每个短语计算有用的表征(或隐藏状态)。网络逐一处理序列的每个元素(在这种情况下,即每个词);对于序列中的每个新输入,网络通过该输入和之前隐藏状态的函数输出新的隐藏状态。从这个角度讲,在每个词处计算的隐藏状态是所有之前读到的单词的函数输出。
图 2:循环神经网络通过对每个词应用相同的函数(绿色)来读取输入语句
RNN 也可以用类似的方式产生输出序列。在每个步骤中,RNN 隐藏状态用于生成添加到最终输出文本的新词,该词将被用作该模型的下一个输入。
图 3:RNN 可以生成输出序列,并重使用输出单词作为下一个函数的输入。
输入(读取)和输出(生成)RNN 可以组合在联合模型中,其中输入 RNN 的最终隐藏状态被用作输出 RNN 的初始隐藏状态。以这种方式组合,联合模型能够读取任何文本并从中生成不同的文本。该框架称为编码器-解码器(encoder-decoder)RNN(或 Seq2Seq),它是我们摘要模型的基础。另外,我们用双向编码器替代传统的编码器 RNN,它使用两个不同的 RNN 来读取输入序列:一个从左到右读取文本(如图 4 所示),另一个从右到左读取。这有助于我们的模型更好地表示输入语境。
图 4:编码器-解码器 RNN 模型可用于解决自然语言中的 sequence-to-sequence 任务(如摘要)
一种新的注意及解码机制
为了使我们的模型输出更连贯,我们允许解码器在生成新单词时回顾部分输入文档,这种技术称为时间注意(temporal attention)模型。与完全依赖自己的隐藏状态不同,解码器可以通过注意函数(attention function)整合不同部分的输入语境信息。调整注意函数,以确保模型在生成输出文本时使用不同部分的输入,从而增加摘要的信息覆盖度。
另外,为了确保我们的模型不产生重复信息,我们还允许它回顾解码器之前的隐藏状态。用类似的方式,我们定义内部解码注意函数(intra-decoder attention function),它可以回顾解码器 RNN 之前的隐藏状态。最后,解码器将来自时间注意模型的语境向量(context vector)与来自内部解码注意函数的语境向量相结合,在输出摘要中生成下一个词。图 5 展示了在给定解码步骤中这两个注意函数的联合过程。
图 5:由编码器隐藏状态和解码器隐藏状态计算得到的两个语境向量(标记为「C」)。使用这两个语境向量和当前的解码器隐藏状态(「H」),生成一个新的词(右)并添加到输出序列中。
如何训练模型?监督式学习 VS. 强化学习
要训练这个模型并应用于新闻文章等真实数据,通常的方法是使用教师强迫算法(teacher forcing algorithm):一个模型在生成一个摘要时使用参考摘要(reference summary),并且该模型在每生成一个新单词时会被分配一个逐词误差(word-by-word error,或「局部监督/local supervision」,如图 6 所示)。
图 6:用监督式学习训练模型。每个生成的单词得到一个训练监督信号,通过与同一位置的正确摘要单词进行比较来进行训练。
该方法可用于训练任意基于循环神经网络的序列生成模型,具有非常好的结果。然而,对于我们的特定任务,正确的摘要不一定要按照逐字来匹配参考序列。你可以想像,对于同样的新闻文章,两个人可能在风格、单词或句子顺序上产生不尽相同的摘要,但仍然认为摘要是好的。教师强迫算法的问题是:一旦产生了前几个单词,训练就会被误导:严格遵守一个官方正确的摘要,但不能适应一个潜在正确但不同的开头。
考虑到这一点,我们可以比教师强迫的逐词方法做得更好。这里可以应用一种称为强化学习(RL)的不同类型的训练。首先,强化学习算法使模型生成自己的摘要,然后使用外部评分器(scorer)来比较生成的摘要与正确摘要。这个评分器然后向模型表明生成的摘要有多「好」。如果分数很高,那么模型进行更新,使得这些摘要更有可能在将来出现。否则,如果得分低,模型将受到惩罚,并改变其生成过程以防止生成类似的摘要。这种强化模型擅长得出用于评估整个序列而不是逐词预测的摘要分数。
图 7:在强化学习中,模型没有对应每个预测词的局部监督信号,而是用基于整个输出和摘要参考的奖励信号(reward signal)进行训练。
如何评估摘要?
评分器到底是什么?它如何分辨出一个摘要的「好坏」?由于要人手动评估数以万计的摘要在很大程度上是耗时并不切实际的,因此,我们使用一种名为 ROUGE(Recall-Oriented Understudy for Gisting Evaluation)的自动评分指标。ROUGE 通过对比摘要中将生成的摘要中的匹配子短语和实际数据的参考摘要中的子短语来运作,即使它们并不是完全一致的。不同的 ROUGE 变体(ROUGE-1、ROUGE-2、ROUGE-L)都以相同的方式工作,但使用不同的子序列长度。
尽管 ROUGE 分数与人类判断总体上有很好的相关性,但 ROUGE 最高分的总结不一定是最可读或最自然的。当我们仅通过强化学习来训练模型使 ROUGE 得分最大化时,这就成为一个问题。我们观察到我们具有最高 ROUGE 分数的模型也会生成几乎不可读的摘要。
为了发挥两个领域的优势,我们的模式同时受到教师强迫和强化学习的训练,能够利用词级和整个摘要层面的监督使摘要具有连贯性和可读性。特别是我们发现 ROUGE 优化的强化学习有助于改善回调(即所有需要总结的重要信息实际上已经被总结),并且词级学习监督能确保良好的语言流畅性,使得摘要更连贯可读。
图 8:监督学习(红色)和强化学习(紫色)的组合,演示了我们的模型同时学习本地和全局奖励并同时优化可读性和整体 ROUGE 分数的方法
直到最近,CNN / Daily Mail 数据集中的抽象摘要的最高 ROUGE-1 分数是 35.46。结合解码器内部注意 RNN 模型的联合监督和强化学习训练,这个分数提高到了 39.87,并且,如果仅是强化学习,该分数为 41.16。图 9 显示了我们和其他的现有模型的摘要分数。即使我们的纯强化学习模型具有较高的 ROUGE 分数,我们监督的+ 强化学习模型具有较高的可读性,因此它与该摘要任务更加相关。注意: 由于使用稍微不同的数据格式,Nallapati et al 的结果与我们的和其他数据格式不能直接相比,但仍然给出了很好的参考。
图 9: CNN / Daily mail 数据集的摘要结果,比较我们的模型与现有的抽象式和提取式方法
样本输出
对于真正的摘要,这样大的改进意味着什么?现在我们来看一些根据数据集拆分的文档形成的多语句摘要。在 CNN / Daily Mail 数据集上训练后,我们的模型和它更简单化的基线生成了以下示例。正如你所看到的,这些摘要已经大大改善,但是还需要更多的工作来使它们完美。
图 10:我们的模型生成的更多的摘要例子,对比同一篇文章的人工撰写的摘要
为了说明我们在文本摘要方面的主要贡献带来的影响,图 11 显示了如果不考虑内部注意力和强化学习训练,我们模型的输出是如何离题的。
图 11:我们的模型生成的示例摘要,有和没有我们的主要贡献。原始文章中不存在的新词将以绿色显示。摘要中重复的短语显示为红色。
结论
我们的模型显著提高了在多语句摘要生成方面的最新技术水平,优于现有的抽象式模型和提取式基线。我们相信,我们的贡献(解码器内部注意模块和组合的训练目标)可以改善其他的序列生成任务,特别是较长的输出。
我们的工作也涉及诸如 ROUGE 等自动评估指标的限制,这表明需要更好的指标来评估和优化摘要模型。一个理想的度量指标在摘要的连贯性和可读性方面应与人类的判断相一致。当我们使用这样的指标来强化摘要模型时,摘要的质量可能会进一步提高。
以下为相关论文的摘要介绍:
论文:A Deep Reinforced Model for Abstractive Summarization
用于抽象式摘要的基于注意 RNN 的编码器-解码器模型已经在短输入和输出序列上取得了良好的表现。但是,对于更长的文档和摘要,这些模型通常会包含重复的和不连贯的短语。我们引入了一种带有内部注意(intra-attention)的神经网络模型和一种新的训练方法。这种方法将标准的监督式词预测和强化学习(RL)结合到了一起。仅使用前者训练的模型常常会表现出「exposure bias」——它假设在训练的每一步都会提供 ground truth。但是,当标准词预测与强化学习的全局序列预测训练结合起来时,结果得到的摘要的可读性更高。我们在 CNN/Daily Mail 和 New York Times 数据集上对这个模型进行了评估。我们的模型在 CNN/Daily Mail 数据集上得到了 41.16 的 ROUGE-1 分数,比之前的最佳模型高出了显著的 5.7 分。其也是第一个在 New York Times 语料库上表现良好的抽象式模型。人类评估也表明我们的模型能得到更高质量的摘要。