当前位置: 首页 > 编程日记 > 正文

ICML 2019:序列到序列自然语言生成任务超越BERT、GPT!微软提出通用预训练模型MASS | 技术头条...

640?wx_fmt=png


来源 | 微软研究院AI头条(id:MSRAsia)

责编 | Jane


编者按:从2018年开始,预训练(pre-train) 毫无疑问成为NLP领域最热的研究方向。借助于BERT和GPT等预训练模型,人类在多个自然语言理解任务中取得了重大突破。然而,在序列到序列的自然语言生成任务中,目前主流预训练模型并没有取得显著效果。为此,微软亚洲研究院的研究员在ICML 2019上提出了一个全新的通用预训练方法MASS,在序列到序列的自然语言生成任务中全面超越BERT和GPT。在微软参加的WMT19机器翻译比赛中,MASS帮助中-英、英-立陶宛两个语言对取得了第一名的成绩


BERT在自然语言理解(比如情感分类、自然语言推理、命名实体识别、SQuAD阅读理解等)任务中取得了很好的结果,受到了越来越多的关注。然而,在自然语言处理领域,除了自然语言理解任务,还有很多序列到序列的自然语言生成任务,比如机器翻译、文本摘要生成、对话生成、问答、文本风格转换等。在这类任务中,目前主流的方法是编码器-注意力-解码器框架,如下图所示。


640?wx_fmt=png

编码器-注意力-解码器框架


编码器(Encoder)将源序列文本X编码成隐藏向量序列,然后解码器(Decoder)通过注意力机制(Attention)抽取编码的隐藏向量序列信息,自回归地生成目标序列文本Y。


BERT通常只训练一个编码器用于自然语言理解,而GPT的语言模型通常是训练一个解码器。如果要将BERT或者GPT用于序列到序列的自然语言生成任务,通常只有分开预训练编码器和解码器,因此编码器-注意力-解码器结构没有被联合训练,记忆力机制也不会被预训练,而解码器对编码器的注意力机制在这类任务中非常重要,因此BERT和GPT在这类任务中只能达到次优效果。


新的预训练方法——MASS


专门针对序列到序列的自然语言生成任务,微软亚洲研究院提出了新的预训练方法:屏蔽序列到序列预训练(MASS: Masked Sequence to Sequence Pre-training)。MASS对句子随机屏蔽一个长度为k的连续片段,然后通过编码器-注意力-解码器模型预测生成该片段。


640?wx_fmt=png

屏蔽序列到序列预训练MASS模型框架


如上图所示,编码器端的第3-6个词被屏蔽掉,然后解码器端只预测这几个连续的词,而屏蔽掉其它词,图中“_”代表被屏蔽的词。


MASS预训练有以下几大优势:


(1)解码器端其它词(在编码器端未被屏蔽掉的词)都被屏蔽掉,以鼓励解码器从编码器端提取信息来帮助连续片段的预测,这样能促进编码器-注意力-解码器结构的联合训练;


(2)为了给解码器提供更有用的信息,编码器被强制去抽取未被屏蔽掉词的语义,以提升编码器理解源序列文本的能力;


(3)让解码器预测连续的序列片段,以提升解码器的语言建模能力。


统一的预训练框架

  

MASS有一个重要的超参数k(屏蔽的连续片段长度),通过调整k的大小,MASS能包含BERT中的屏蔽语言模型训练方法以及GPT中标准的语言模型预训练方法,使MASS成为一个通用的预训练框架。


当k=1时,根据MASS的设定,编码器端屏蔽一个单词,解码器端预测一个单词,如下图所示。解码器端没有任何输入信息,这时MASS和BERT中的屏蔽语言模型的预训练方法等价。


640?wx_fmt=png


当k=m(m为序列长度)时,根据MASS的设定,编码器屏蔽所有的单词,解码器预测所有单词,如下图所示,由于编码器端所有词都被屏蔽掉,解码器的注意力机制相当于没有获取到信息,在这种情况下MASS等价于GPT中的标准语言模型。


640?wx_fmt=png


MASS在不同K下的概率形式如下表所示,其中m为序列长度,u和v为屏蔽序列的开始和结束位置,x^u:v表示从位置u到v的序列片段,x^\u:v表示该序列从位置u到v被屏蔽掉。可以看到,当K=1或者m时,MASS的概率形式分别和BERT中的屏蔽语言模型以及GPT中的标准语言模型一致。


640?wx_fmt=png


我们通过实验分析了屏蔽MASS模型中不同的片段长度(k)进行预训练的效果,如下图所示。


640?wx_fmt=png


当k取大约句子长度一半时(50% m),下游任务能达到最优性能。屏蔽句子中一半的词可以很好地平衡编码器和解码器的预训练,过度偏向编码器(k=1,即BERT)或者过度偏向解码器(k=m,即LM/GPT)都不能在该任务中取得最优的效果,由此可以看出MASS在序列到序列的自然语言生成任务中的优势。


序列到序列自然语言生成任务实验


预训练流程


MASS只需要无监督的单语数据(比如WMT News Crawl Data、Wikipedia Data等)进行预训练。MASS支持跨语言的序列到序列生成(比如机器翻译),也支持单语言的序列到序列生成(比如文本摘要生成、对话生成)。当预训练MASS支持跨语言任务时(比如英语-法语机器翻译),我们在一个模型里同时进行英语到英语以及法语到法语的预训练。需要单独给每个语言加上相应的语言嵌入向量,用来区分不同的语言。我们选取了无监督机器翻译、低资源机器翻译、文本摘要生成以及对话生成四个任务,将MASS预训练模型针对各个任务进行精调,以验证MASS的效果。


无监督机器翻译


在无监督翻译任务上,我们和当前最强的Facebook XLM作比较(XLM用BERT中的屏蔽预训练模型,以及标准语言模型来分别预训练编码器和解码器),对比结果如下表所示。


640?wx_fmt=png


可以看到,MASS的预训练方法在WMT14英语-法语、WMT16英语-德语一共4个翻译方向上的表现都优于XLM。MASS在英语-法语无监督翻译上的效果已经远超早期有监督的编码器-注意力-解码器模型,同时极大缩小了和当前最好的有监督模型之间的差距。


低资源机器翻译


低资源机器翻译指的是监督数据有限情况下的机器翻译。我们在WMT14英语-法语、WMT16英语-德语上的不同低资源场景上(分别只有10K、100K、1M的监督数据)验证我们方法的有效性,结果如下所示。


640?wx_fmt=png


在不同的数据规模下,我们的预训练方法的表现均比不用预训练的基线模型有不同程度的提升,监督数据越少,提升效果越显著。


文本摘要生成


在文本摘要生成(Gigaword Corpus)任务上,我们将MASS同BERT+LM(编码器用BERT预训练,解码器用标准语言模型LM预训练)以及DAE(去噪自编码器)进行了比较。从下表可以看到,MASS的效果明显优于BERT+LM以及DAE。


640?wx_fmt=png


对话生成


在对话生成(Cornell Movie Dialog Corpus)任务上,我们将MASS同BERT+LM进行了比较,结果如下表所示。MASS的PPL低于BERT+LM。


640?wx_fmt=png


在不同的序列到序列自然语言生成任务中,MASS均取得了非常不错的效果。接下来,我们还将测试MASS在自然语言理解任务上的性能,并为该模型增加支持监督数据预训练的功能,以期望在更多自然语言任务中取得提升。未来,我们还希望将MASS的应用领域扩展到包含语音、视频等其它序列到序列的生成任务中。


(本文为 AI科技大本营转载文章,转载请联系原作者)


CTA核心技术及应用峰会


5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。


更多重磅嘉宾请识别海报二维码查看,目前会议早鸟票发售中(原票价1099元),点击阅读原文即刻抢购。添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

640?wx_fmt=jpeg

推荐阅读

  • 从Pixel 3a到Android Q,一份谷歌AI能力的“成绩单” | Google I/O全程回顾

  • GitHub日收12000星,微软新命令行工具引爆程序员圈!

  • Python datetime指南:教你如何处理日期和时间(附试题+答案)

  • 从小白到入门算法,我的经验分享给你~

  • 开了个会:破局企业云通信,华为加速 Buff 开发者!

  • 独家! 币安被盗原因找到了! 7074枚比特币竟是这样丢掉的

  • 保送清华成博士,华为 12 年搞通信,他为何如此看待 5G ?| 人物志

  • 补偿100万?Oracle裁900+程序员,新方案已出!

  • 什么叫云原生应用?| 技术头条

  • @程序员,不加班就滚吧 | 程序员有话说

640?wx_fmt=png

相关文章:

linux 命令详解 二十七

4. 循环语句: Bash Shell中主要提供了三种循环方式:for、while和until。 for循环声明格式: for variable in word_list do command done 见如下示例脚本: /> cat > test7.sh for score in math engl…

【Live555】live555源码详解系列笔记

【Live555】liveMedia下载、配置、编译、安装、基本概念 【Live555】live555源码详解(一):BasicUsageEnvironment、UsageEnvironment 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet 【Live555】live555源码详解(三):Groupsock 【Live555】l…

android 每个块半径不同的扇形图,自定义view

1.首先看效果图 2.自定义PieChartView,继承自View,下边为PieChartView代码 package com.yingjinbao.im.peach.customview;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint…

人工智能的浪潮中,知识图谱何去何从?

漆桂林认为,目前知识图谱整个领域最关注的问题还是如何能够高效、低成本构建知识图谱,而这个问题对于研究人员来说,仍是一个非常大的挑战,比如现在大家都在关注如何在少量甚至无标注场景下进行知识图谱构建。 记者 | Jane 责编 |…

布Sendmail之网,安全则不漏(上)

Sendmail是一种古老的邮件服务器,但是它仍然存在着种种问题,最大的问题就是安全问题。由于Sendmail邮件服务器占据了很大的市场份额,因此,提高Sendmail的安全性就显得格外重要了。本篇拟从证书、Starttls、Sasl技术来探讨Sendmail…

英伟达发布新型GAN,豹子秒变沙皮狗!| 技术头条

作者 | 刘静编译 | 李尔客转自自图灵TOPIA(ID:turingtopia)5月9日,英伟达首席研究科学家刘明宇在社交网站公布了其最新研究成果:一种新型的GAN,在测试期间只需几张示例图像,就可以将图像转换为以前从未见过…

【Live555】live555源码详解(九):ServerMediaSession、ServerMediaSubsession、live555MediaServer

【Live555】live555源码详解系列笔记 继承协作关系图 下面红色表示本博客将要介绍的三个类所在的位置: ServerMediaSession、ServerMediaSubsession、DynamicRTSPServer DynamicRTSPServer是live555MediaServer中实现的类,用来创建RTSP服务器 17、ServerMediaSession Se…

windows下mysql和linux下mysql主从配置

1. linux下mysql安装版本5.6 windows下mysql版本5.7 不要问我为什么版本不一致 就是想这么搞 2. linux为主服务器 windows为从服务器 3.找到liunx下mysql配置文件 添加如下 然后重新启动 4.添加复制用户 5.查看master状态,记录下两个参数 mysql> show mas…

myeclipse快捷键大全

1.转变大写:ctrlshiftx; 2.转变小写:ctrlshifty; 3.关闭当前窗口:ctrlw; 4.关闭所有的窗口:ctrlshiftw; 5.帮助提示:这个可以选择自己喜欢的键位组合:我比较喜欢ctrlenter; 6.复制当前行:ctrlal…

算力觉醒后,智慧距离勃发就只差一个想法

“太阳把自己的能量以光的形式洒向地面,让植物得以利用光合作用生长成熟;繁茂的草木不仅为动物们提供了栖息的家园,更将太阳的馈赠化为甜蜜的果实,在滋养万灵的同时把自己对未来的希望变成种子,播撒到远方……形成下一…

【Ubuntu】将Ubuntu的源改为国内源

1、备份源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、查询系统代号 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal我在Ubuntu20.4上做的测试,Ubun…

浏览器缓存和webpack缓存配置

网络请求会耗费大量时间和请求,如果可以重用为改变的网络资源,对于用户来说可以更快更流畅的查看网页,对于服务器来说减少了很多负荷,所以浏览器缓存是前端优化的重要内容。本文介绍了浏览器缓存的机制和缓存在webpack中的应用。 …

ipsec ***野蛮模式应用

IPSEC野蛮模式:简介:IKE 的协商模式 在RFC2409(The Internet Key Exchange )中规定,IKE 第一阶段的协商可以采用两种模式:主模式(Main Mode )和野蛮模式(Aggressive Mode…

漫画:什么是LRU算法?

本期封面作者:A17————— 两个月前 —————用户信息当然是存在数据库里。但是由于我们对用户系统的性能要求比较高,显然不能每一次请求都去查询数据库。所以,小灰在内存中创建了一个哈希表作为缓存,每次查找一个用户的时候…

第15章节-Python3.5-Django实现用户登录与前端交互2 14

目的我想登陆成功后显示我的后台管理(实现过程): 新建home.html 在templates目录下代码如下: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body style"…

【GLib】GLib学习笔记(一):GLib、GObject、GType

1、GLib GLib是 Gtk 库和 Gnome 的基础。glib 可以在多个平台下使用&#xff0c;比如 Linux、Unix、Windows 等。GLib为许多标准的、常用的 C 语言结构提供了相应的替代物。 GLib是GTK的基础库&#xff0c;它由基础类型、对核心应用的支持、实用功能、数据类型和对象系统五个…

tomcat配置tomcat-redis-session-manager

为什么80%的码农都做不了架构师&#xff1f;>>> 今天写了半天程序&#xff0c;有点乏了。想想来配置一下tomcat-redis-session-manager吧&#xff0c;但是按照 官方文档配了总是tomcat启动错误。 java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/Ge…

链式比较、奇怪的字母、有趣的import...Python冷知识(六)

本文转载自Python编程时光&#xff08;ID:Python-Time&#xff09;冷知识系列&#xff0c;已经更新至第六篇。谈谈 Python 那些不为人知的冷知识&#xff08;一&#xff09;谈谈 Python 那些不为人知的冷知识&#xff08;二&#xff09;谈谈 Python 那些不为人知的冷知识&#…

【GLib】GLib学习笔记(二):源码编译

一、源码下载 http://ftp.acc.umu.se/pub/GNOME/sources/glib/本人下载是最新版本(截至2020-08-26)&#xff1a;glib-2.65.2.tar.xz 二、安装依赖 1、安装依赖库 sudo apt install cmake sudo apt install zlib1g-dev sudo apt install meson sudo apt install ninja sudo …

java之类和对象

概述 面向过程&#xff1a;面向过程主要是把问题分解成多个不同的步骤&#xff0c;然后把各个步骤变成方法&#xff0c;它更强调过程。代表语言&#xff1a;c 面向对象&#xff1a;面向对象会把问题分解成各个对象&#xff0c;然后各个对象之间进行交互&#xff0c;每个对象内部…

【GLib】GLib学习笔记(三):gtypes、garray、gerror、goption

1、类型&#xff1a;glib/gtypes.h 1.1 基本类型&#xff1b; typedef char gchar; typedef short gshort; typedef long glong; typedef int gint; typedef gint gboolean;typedef unsigned char guchar; typedef unsigned short gushort; typedef unsigned lo…

Bert时代的创新:Bert应用模式比较及其它 | 技术头条

作者&#xff1a;张俊林&#xff0c;中国中文信息学会理事&#xff0c;中科院软件所博士。目前在新浪微博 AI Lab 担任资深算法专家。在此之前&#xff0c;张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队&#xff0c;以及在百度和用友担任技术经理及技术总监等职务。他是…

HashSet 详解

为什么80%的码农都做不了架构师&#xff1f;>>> package com.sun;/* |——SortedSet接口——TreeSet实现类 Set接口——|——HashSet实现类|——LinkedHashSet实现类 HashSet 此类实现 Set 接口&#xff0c;由哈希表&#xff08;实际上是一个 HashMap 实例&#…

肖仰华:知识图谱落地,不止于“实现”

作者 | Just出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;“知识将比数据更重要&#xff0c;得知识者得天下”&#xff0c;去年十月&#xff0c;在 CSDN 对肖仰华教授的一篇约稿里&#xff0c;他指出数据的真正价值蕴含于其深加工的知识中。从 Google 于 2012 年提…

【摄像头】摄像头相关名词解释

1、白平衡 白平衡,字面上的理解是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。 那什么是白色?这就涉及到一些色彩学的知识,白色是指反射到人眼中的光线由于蓝、绿、红三种色光比例相同且具有一定的亮度所形成的视觉反应。我们都知道…

金额跳动动画效果

前言 金额效果&#xff0c;因为觉得公司目前的金额太乏味&#xff0c;决定加点效果&#xff0c;也特此写了个小demo&#xff0c;代码非常简单&#xff0c;贴代码方便大家看看 通过 runtime 建立属性(setter/getter方法) /** 由于分类中要添加属性&#xff0c;所以通过runtime方…

POJ 3070 Fibonacci

裸奔的矩阵乘法&#xff0c;当模板了。 #include <iostream>#include <cstring>#include <cstdio>using namespace std;const int N 2;const int MOD 10000;struct Mat {long long mat[N][N];void init() {for(int i 0; i < N; i) {for(int j 0; j &l…

推荐一个小而美的Python代码格式化工具

代码可读性是评判代码质量的标准之一&#xff0c;有一个衡量代码质量的标准是 Martin 提出的 “WFT” 定律&#xff0c;即每分钟爆出 “WTF” 的次数。你在读别人代码或者做 Code Review 的时候有没有 “WTF” 冲动呢&#xff1f; 为了帮助开发者统一代码风格&#xff0c;Pytho…

【摄像头】摄像机工作原理

1、摄像机工作原理 外部光线穿过镜头(lens)后&#xff0c; 经过滤光片(color filter)滤波后照射到光学传感器(Sensor)上面&#xff0c; Sensor 将从 lens 上传导过来的光线转换为电信号&#xff0c;再通过内部的 AD 转换为数字信号。 如果 Sensor 没有集成 DSP&#xff0c;则通…

@程序员,别再自己闷头学了

60 年冬去春来&#xff0c;人工智能技术发展起起落落。现在是 2019 年&#xff0c;属于 AI 不可阻挡的新转机正强势袭来。 科技巨头一向是未来技术发展最重要的风向标。2011 年&#xff0c;随着 Google 将一线业务引入深度学习技术&#xff0c;落伍移动时代的微软也拉起了一支…