华人博士一作:自动生成摘要超越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

相关文章

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt