华人博士一作:自动生成摘要超越BERT!帝国理工谷歌提出新模型Pegasus

本文主要是介绍华人博士一作:自动生成摘要超越BERT!帝国理工谷歌提出新模型Pegasus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


  新智元报道  

来源:venturebeat、arXiv

文本摘要是机器学习算法正在改进的一项任务,微软最近发表的论文“Structured Neural Summarization”证明了这一点。这是个好消息,因为自动文本摘要系统有望减少企业员工阅读信息的时间(一项调查估计人们每天至少花2.6小时阅读信息。)

不甘示弱,谷歌大脑和伦敦帝国理工学院的一个团队最近构建了一个系统——Pre-training with Extracted Gap-sentences for Abstractive Summarization,简称PEGASUS,利用谷歌的Transformer架构,并结合了针对文本摘要生成定制的预训练目标。

论文第一作者张敬卿来自帝国理工学院数据科学院,博士在读;张敬卿本科毕业于清华大学计算机科学与技术系,主要研究兴趣包括深度学习、数据挖掘、时间序列与文本挖掘、多模态问题与生成模型。

研究人员表示,该系统在12个摘要任务中均取得了最先进的结果(SOTA),这些任务涵盖新闻、科学、故事、使用说明、电子邮件、专利和立法法案等,并且在低资源摘要方面表现“惊人”,在只有1000个样本的6个数据集上超过了之前的最好结果

Pegasus模型:基于Transformer,5.68亿参数

正如研究人员指出的那样,文本摘要旨在根据输入文档生成准确而简洁的摘要。生成摘要并不是简单地复制输入里的片段,而是可能产生新的单词或涵盖主要信息,并使输出保持语言流畅。

Transformer是谷歌大脑的研究人员开发的一种神经网络架构。和其他深度神经网络一样,它们包含的功能(神经元)被布置在相互连接的层中,这些层传递输入数据的信号,并缓慢地调整每个连接的突触强度(权重)——这就是所有AI模型提取特征和学习做出预测的方式。但Transformer的独特指出在于,每个输出元素都连接到每个输入元素,并动态地计算它们之间的权重。

该团队设计了一项训练任务,在该任务中,文档中的重要句子被覆盖(masked)起来。AI必须利用网络和新闻文章来填补空白,包括那些包含在研究人员编纂的新语料库(HugeNews)中的文章。

在实验中,研究团队选择了性能最佳的Pegasus模型(有5.68亿参数),分别在从3.5亿个网页爬取的750GB文本的Common Crawl数据集,或从新闻网站收集的15亿篇文章、总计3.8TB的HugeNews数据集上进行训练。

结果证明,Pegasus生成的文本摘要在流畅性和连贯性方面都达到了很高的语言质量,而且它不需要采取额外的对策来减轻不流畅。此外,在只有100篇示例文章的低资源环境中,Pegasus生成的摘要质量可与在20000到200000篇完整的完整数据集上训练的模型相媲美。

总结本研究的贡献:

  • 我们提出了一种新的self-supervised的预训练目标,用于摘要总结、空缺句子生成,以及选择这些句子的学习策略。

  • 我们在广泛的摘要任务上评估了所提出的预训练目标,并选择了最佳的模型设置。我们使用这些设置来训练一个568M参数的PEGASUS模型,该模型在所有12个下游数据集上超过了SOTA,或与SOTA相当。

  • 我们展示了如何在几乎不受监督的情况下,通过微调PEGASUS模型在多个领域实现良好的摘要生成性能,而且仅使用1000个示例就可以在许多任务上超越以前的SOTA结果。

预训练目标GSG

在这项工作中,我们提出了一个新的预训练目标GSG(Gap Sentences Generation),但为了进行比较,我们也评估了BERT的掩码语言模型目标(masked-language model objective)。

Gap Sentences Generation (GSG)

我们假设,使用更接近下游任务的预训练目标,可以获得更好更快的微调性能。考虑到我们打算用于摘要生成,我们提出的预训练目标设计从输入文档生成类似摘要的文本。为了利用大量的文本语料库进行预训练,我们设计了一个序列到序列的自监督目标(self-supervised objective)。

图1: PEGASUS的基本架构是一个标准的Transformer encoder-decode。在这个例子中,GSG和MLM同时作为预训练目标。原始文本有三句话。一个句子被[MASK1]屏蔽,并用作目标生成文本(GSG)。其他两句话仍然保留在输入中,但是一些词被[MASK2] (MLM)随机屏蔽了。

为了更接近摘要,我们选择对文档来说重要/主要的句子。由此产生的目标既具有经验证明的masking的优势,又预期了下游任务的形式。

我们考虑3种主要的策略,用于选择m个空缺句子(gap sentences),而无需从文档中替换,文档记为,由n个句子组成:

Random:均匀地随机选择m个句子

Lead:选择前m个句子。

Principal:根据重要性选择得分最高的句子。根据重要性选择得分最高的句子。

重要性的计算公式是:

在这个公式中,句子是独立评分的(Ind),并选择最好的m。

图2显示了一个包含lead、random和principal三种策略的gap句子选择示例。

图2

掩码语言模型(Masked Language Model,MLM)

参考BERT,我们在输入文本中选择15%的tokens,所选择的tokens:(1)80%的时间被mask token替换[MASK2],或(2)10%的时间被随机token替换,或(3)10%的时间不变。我们应用MLM训练Transformer encoder,作为唯一的预训练目标或与GSG一起作为预训练目标。

图1显示了将GSG和MLM结合应用到同一个例子中的情况。然而,我们发现MLM并没有在大量的预训练步骤中改善下游任务,因此选择不将MLM应用到最终的PEGASUSLARGE模型。

评估结果:12大任务获得最优性能

图4:PEGASUSBASE在C4上预训练的效果。

图5:PEGASUSBASE在C4 (15% GSR, Ind-Orig)上训练词汇量的效果。

表1:与之前的SOTA相比,PEGASUSLARGE和PEGASUSBASE在所有下游数据集上的结果

表2:PEGASUSLARGE与XSum、CNN/DailyMail和Gigaword上其他预训练模型的比较。最佳结果用粗体显示。

表1和表2显示了PEGASUSBASE和PEGASUSLARGE在下游数据集上的性能改进。虽然PEGASUSBASE在许多数据集上都超过了当前的SOTA水平,但PEGASUSLARGE在使用HugeNews的所有下游数据集上都取得了比当前水平更好的结果,尽管C4在WikiHow上的表现更好。

图6:PEGASUSLARGE模型对一则CNN/DailyMail文本生成的摘要,它的ROUGE2-F值相对较低,为16,但在文本质量上相当好,而且事实上也很准确。

* 凡来源非注明“机器学习算法与Python学习原创”的所有作品均为转载稿件,其目的在于促进信息交流,并不代表本公众号赞同其观点或对其内容真实性负责。

推荐阅读

25岁就有娃,上交年度学霸火了!6块腹肌、歌赛冠军、Science一作

【下载】459页《Python深度学习》

视频剪辑什么鬼?Python 带你高效创作短视频

ICCV2019最佳论文SinGAN全面解读,看这一篇就懂了

GitHub标星两万的"Python抢票教程”,我们先帮你跑了一遍

这篇关于华人博士一作:自动生成摘要超越BERT!帝国理工谷歌提出新模型Pegasus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/782070

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件