对于我们中的许多人来说,跟上每天到达我们收件箱的文件量可能是一项挑战:报告、评论、简报、政策等等。 当收到一份新文件时,读者通常希望它包含对要点的简要总结,以便有效地对其进行优先排序。 但是,撰写文档摘要可能在认知上具有挑战性且耗时,尤其是当文档编写者是一个初学者时。
为了解决这个问题,我们最近宣布 Google Docs 现在会自动生成建议,以帮助文档编写者在可用时创建内容摘要。 今天,我们描述了如何使用机器学习 (ML) 模型实现这一点,该模型可以理解文档文本,并在有把握的情况下生成文档内容的 1-2 句自然语言描述。 然而,文档编写者可以保持完全控制——按原样接受建议,也可以进行必要的编辑以更好地捕获文档摘要,或者完全忽略建议。 读者还可以使用此部分以及大纲,以更高层次理解和浏览文档。 虽然所有用户都可以添加摘要,但自动生成的建议目前仅适用于 Google Workspace 企业客户。 基于语法建议、智能撰写和自动更正,我们认为这是改善工作场所书面沟通的又一有价值的步骤。
模型细节
如果没有在过去五年中机器学习在自然语言理解 (NLU) 和自然语言生成 (NLG) 方面的巨大进步,尤其是在引入 Transformer 和 Pegasus 之后,自动生成的摘要是不可能的。
抽象文本摘要结合了长文档语言理解和生成的个别挑战性任务,一直是 NLU 和 NLG 研究中长期存在的问题。 结合 NLU 和 NLG 的一种流行方法是使用序列到序列学习来训练 ML 模型,其中输入是文档词,输出是摘要词。 然后,神经网络学习将输入标记映射到输出标记。 序列到序列范式的早期应用将循环神经网络 (RNN) 用于编码器和解码器。
Transformers 的引入为 RNN 提供了一个有前途的替代方案,因为 Transformers 使用自注意力来提供对长输入和输出依赖关系的更好建模,这在文档摘要中至关重要。 尽管如此,这些模型仍需要大量手动标记的数据才能充分训练,因此仅 Transformer 的出现不足以显着提升文档摘要的最新技术水平。
Transformers 与自我监督预训练(例如 BERT、GPT、T5)的结合在许多可用有限标记数据的 NLU 任务中取得了重大突破。 在自我监督的预训练中,模型使用大量未标记的文本来学习一般的语言理解和生成能力。 然后,在随后的微调阶段,模型学习将这些能力应用于特定任务,例如总结或问答。
Pegasus 的工作通过引入针对抽象摘要定制的预训练目标将这一想法更进一步。 在 Pegasus 预训练中,也称为 Gap Sentence Prediction (GSP),来自未标记的新闻文章和 Web 文档的完整句子从输入中屏蔽,并且需要模型重建它们,以剩余的未屏蔽句子为条件。 特别是,GSP 试图通过不同的启发式方法来掩盖被认为对文档至关重要的句子。 直觉是使预训练尽可能接近摘要任务。 Pegasus 在一组不同的汇总数据集上取得了最先进的结果。 然而,将这一研究进展应用到产品中仍然存在许多挑战。
将最近的研究进展应用到 Google Docs
Data
自我监督的预训练产生具有通用语言理解和生成能力的 ML 模型,但随后的微调阶段对于模型适应应用领域至关重要。 我们在具有与典型用例一致的手动生成摘要的文档语料库上对模型的早期版本进行了微调。
然而,该语料库的早期版本存在不一致和高度变异的问题,因为它们包含多种类型的文档,以及编写摘要的多种方式——例如,学术摘要通常冗长而详细,而执行摘要则简短而有力。 这导致了一个很容易混淆的模型,因为它已经在许多不同类型的文档和摘要上进行了训练,以至于它很难学习它们之间的关系。
幸运的是,Pegasus 工作的一个关键发现是,有效的预训练阶段在微调阶段需要较少的监督数据。 一些总结基准测试需要 1,000 个微调示例,以便 Pegasus 与看到 10,000 多个受监督示例的 Transformer 基线的性能相匹配——这表明人们可以关注质量而不是数量。
我们仔细清理和过滤微调数据,以包含更一致的训练示例,并代表摘要的连贯定义。 尽管我们减少了训练数据的数量,但这导致了更高质量的模型。 与最近在数据集蒸馏等领域的工作一致的关键教训是,拥有一个更小、高质量的数据集比拥有一个更大的高方差数据集更好。
Serving
一旦我们训练了高质量的模型,我们就转向了在生产中为模型服务的挑战。虽然编码器-解码器架构的 Transformer 版本是为序列到序列任务(如抽象摘要)训练模型的主要方法,但在实际应用中服务可能效率低下且不切实际。主要的低效率来自 Transformer 解码器,我们通过自回归解码逐个令牌生成输出摘要令牌。当摘要变得更长时,解码过程变得明显变慢,因为解码器在每一步都处理所有先前生成的令牌。 RNN 是一种更有效的解码架构,因为没有像 Transformer 模型中的先前标记的自我注意。
我们使用知识蒸馏(将知识从大型模型转移到更小更高效模型的过程)将 Pegasus 模型提炼为 Transformer 编码器和 RNN 解码器的混合架构。为了提高效率,我们还减少了 RNN 解码器层的数量。生成的模型在延迟和内存占用方面有显着改善,而质量仍与原始模型相当。为了进一步改善延迟和用户体验,我们使用 TPU 提供摘要模型,这可显着提高速度并允许单台机器处理更多请求。
持续的挑战和下一步工作
虽然我们对迄今为止取得的进展感到兴奋,但我们仍在继续应对一些挑战:
- 文档覆盖率:由于文档之间存在巨大差异,因此很难为微调阶段开发一组文档,在推理时也存在同样的挑战。我们的用户创建的一些文档(例如会议记录、食谱、课程计划和简历)不适合总结或难以总结。目前,我们的模型仅建议对最有信心的文档进行摘要,但我们希望随着模型的改进继续扩大这一集合。
- 评估:抽象摘要需要捕捉文档的本质,并且需要流畅且正确的语法。一个特定的文档可能有许多可以被认为是正确的摘要,并且不同的读者可能喜欢不同的摘要。这使得仅使用自动指标评估摘要变得困难,用户反馈和使用统计数据对于我们理解和不断提高质量至关重要。
- 长文档:长文档是模型最难总结的一些文档,因为它更难捕获所有点并将它们抽象在一个摘要中,而且它还可以显着增加训练和服务期间的内存使用量。然而,长文档可能对模型自动总结最有用,因为它可以帮助文档编写者在这项繁琐的任务中抢占先机。我们希望我们可以应用最新的 ML 优势来更好地应对这一挑战。
结论
总的来说,我们很高兴能够应用 NLU 和 NLG 的最新进展来继续帮助用户进行阅读和写作。 我们希望 Google Workspace 现在提供的自动建议功能可以让作者更轻松地使用摘要对文档进行注释,并帮助读者更轻松地理解和浏览文档。
本文转载自Google AI,原文链接:https://ai.googleblog.com/2022/03/auto-generated-summaries-in-google-docs.html。