超一流 | 从XLNet的多流机制看最新预训练模型的研究进展

关注小夕并星标,解锁自然语言处理
搜索推荐算法岗求职秘籍

文 | 老饕(某厂研究员,祖传调参)

美 | 人美心细小谨思密达


导读

作为 NLP 近两年来的当红炸子鸡,以 ELMo/BERT 为代表的语言预训练技术相信大家已经很熟悉了。简单回顾下 18 年以来几个预训练的重要工作:

ELMo, GPT and BERT
  • ELMo 首先提出了基于语言模型的预训练技术,成功验证了在大规模语料上基于语言模型进行文本自监督学习的有效性。

  • GPT 提出了 NLP 预训练技术使用时应该像 CV 预训练技术一样,在下游任务中通过 fine-tuning 微调的方式进行,在 GLUE 任务榜单上取得了突破。

  • BERT 在 GPT 的基础上,提出了改进的双向语言模型学习技术 Mask language model。相较传统语言模型,Mask language model (aka MLM) 能够更有效的利用文本的上下文信息,在 transformer 这种依赖全局 attention 表示机制的学习器中,更是如虎添翼。BERT 在通用语言理解评估(GLUE)中大幅刷新了基准水平,一举打破了 11 项 NLP 记录,成为新一代语言预训练技术的大成之作。

BERT 的发表引发了 NLP 学界和业界对语言预训练技术的极大热情,针对 BERT 的一系列改进工作也如雨后春笋般涌出。ERNIE(Baidu)/SpanBert 改进了 MLM 任务的 masking 机制, UniLM 把 GPT/BERT 进行联合训练实现了统一语言预训练,XLM 把 BERT 预训练技术扩展到多语言。

然而,MLM 虽然解决了传统 language model 仅能看到单向文本信息的问题,但不得不在预训练阶段引入了不低比例的 [MASK] 掩码 ID 占位。这样在语言模型学习中就存在信息丢失(被掩码的 token 彼此不可见)。同时,MLM 的样本构造方式与 fine-tuning 阶段的训练样本存在 gap,可能影响下游任务的使用效果。针对这两个问题,XLNet 提出了 Permuted Language Modeling(aka PLM) 预训练任务。为了实现PLM,作者提出了双流机制,也因此抛玉引玉,引出了更多应用并改进双流机制的工作。

本篇文章将从XLNet的双流机制讲起,带大家一览近期的优秀工作,它们是百度的ERNIE-GEN、微软的ProphetNet、UniLMv2和MPNet。

XLNet: PLM 和 双流机制

PLM 任务

PLM的做法是将输入的顺序打乱,比如将“夕小瑶的卖萌屋”,变成“屋小夕的瑶萌卖”后进行单向语言模型的训练,这样在预测“萌”时会用到“屋小夕的瑶”的信息,可以认为同时利用了上下文。

  • 输入方面,MLM 待预测 token([M])互相间仅可见位置信息(实线连接)。PLM 中待预测 token x_2 不可见  token x_4 (虚线连接)  、但 token x_4 可见 token x_2 (实线连接)。

  • 在 15% 的掩码比例下,MLM 通过保留了 100% 的位置信息和  85% 的 token 信息,PLM 保留了(期望)92.5 % 的位置信息和 92.5% 的 token 信息。

对于 PLM 来讲,给定一段文本 x = (x1,x2,··· ,xn),就有 n 的阶乘中排列组合。在 PLM 的理想世界里,虽然对于特定序列的文本 x_i,语言模型仍然只能看到位于 x_i 之前的单向文本(上文),但考虑 x_i 之前的序列可能包含整段文本的所有组合,因此仍可认为 PLM 是有能力建模上下文信息的。

我们可以对 MLM 和 PLM 进行 “unified view” 的描述:

左:MLM、右:PLM (图自 MPNet )
双流机制

XLNet 为了实现 PLM 提出了双流机制。可以看到 PLM 任务的是通过 Query stream 进行学习的。

XLNet 双流机制

为了更容易理解,我们重新整理 XLNet 的双流输入,在上节 PLM content stream 输入的基础上补充 query stream 输入。

其中 [P] 占位符代表 PLM 中待预测的 Token,预测顺序为 4 -> 5 -> 2。

以下为 PLM 对应输入的 self-attention 掩码矩阵,其中 context (x_1, x_3, x_6) 可以同时被 content/query stream 所有 tokens 可见。

“超一流”预训练模型

XLNet 定义的双流机制,其中 query stream 把“预测任务”和输入文本(content stream)进行了分离,具有很强的通用性。事实上,我们可以定义不同的 query stream 预训练任务,甚至定义多个 query stream (多流)。今年以来,涌现出了不少基于多流机制的预训练工作,其中包括刷新多个语言生成任务 SOTA 的语言生成预训练技术 ERNIE-GEN(百度)和第二代统一语言预训练技术 UniLMv2 (微软)。

目前,基于多流机制的预训练工作包括语言生成和语言理解两大类。

“超一流”定义

  • 超一流模型,均包含 2+ 预训练任务 “流”

现有工作

  • ERNIE-GEN(百度):Multi-flow 框架,首次在生成预训练引入 span-by-span 任务,在 pre-training &     fine-tuning 阶段利用 noise-aware 机制缓解 seq-to-seq 语言生成框架面临的曝光偏差问题,应用于语言生成任务(accepted     by IJCAI 2020)

  • ProphetNet(微软):Ngram-stream 框架,每个 stream 单独建模一个粒度,用于语言生成预训练 (投稿 icml     2020)

  • UniLMv2(微软):继承 unilm v1 的思路,用 PLM 替换原 LM 任务。利用双流机制,同时做 MLM 和 PLM 任务,应用于语言理解和生成任务 (accepted by ICML 2020)

  • MPNet(微软):接近 UniLMv2,从“信息保留”理论上更好的解释了为什么需要同时保留 MLM 和 PLM 两个流的数据构造方式。预训练任务仅包含 PLM 任务,应用于语言理解任务

多流预训练技术之语言生成

ERNIE-GEN (Baidu)

ERNIE-GEN 是百度研究者提出的语言生成预训练模型。ERNIE-GEN 继承了通用语言理解预训练技术 ERNIE1.0 的思想,率先在语言生成预训练中引入了 Span-by-span 生成流,使得预训练模型具有的直接生成 Span 级(bigrams/trigrams)完整语义单元的能力

除了 Span-by-span 生成流,ERNIE-GEN 中还包括 Contextual 流(建模待生成语义单元前的上文信息)和一个 Word-by-Word 生成流。因此 ERNIE-GEN 设计了 Mulit-flow Attention 模块来进行多流的联合学习。

ERNIE-GEN: Multi-Flow Attention 实现

同时,ERNIE-GEN 在预训练阶段即有意识的设计了填充生成 (Infilling generation) 和噪音感知 (Noise-aware) 机制,来缓解 Sequence-to-Sequence 生成框架面临的曝光偏差问题。

ERNIE-GEN 论文地址:https://paperswithcode.com/paper/ernie-gen-an-enhanced-multi-flow-pre-training

ERNIE-GEN 开源地址:https://github.com/PaddlePaddle/ERNIE/tree/repro/ernie-gen

ProphetNet (微软)

ProphetNet 是微软研究者提出的语言生成预训练模型。与 ERNIE-GEN 类似的,ProphetNet 同样关注了语言生成中模型建模完整语义单元的能力,并提出了 N-gram stream 多流机制来解决该问题

ProphetNet 预训练时会同时建模多个不同粒度的语义单元。ProphetNet 把这种同时建模多种粒度的机制叫 “Future N-gram Prediction”。在实际预训练中,出于效果和效率的权衡,ProphetNet 仅使用 1-gram (word) 和 2-gram (bigram) 两个预测流。

此外,ProphetNet 在预训练中除绝对编码 embedding 外,还额外引入了相对位置编码 embedding,不过论文并没有做相关的消融实验。

ProphetNet 论文地址:https://arxiv.org/abs/2001.04063

ProphetNet 开源地址:https://github.com/microsoft/ProphetNet

多流预训练技术之语言理解

接下来我们介绍基于多流机制的语言理解预训练模型。

UniLMv2 (微软)

UniLMv2 是微软研究者提出的第二代统一语言预训练模型。与 UniLM v1 相比,v2 保留了 v1 版本的 MLM 任务,但把传统 language model 任务替换成了 PLM 任务

UniLMv2 中,MLM 和 PLM 的联合建模是通过类似 XLNet 的多流机制实现的。

UniLMv2 在 PLM 建模中还提出了 “partially autoregressive” 机制。传统的 “autoregressive” 预测是 token-by-token 的, “partially autoregressive” 的预测则是包含一个类似 Span 的概念(论文中称之为 block-wise masking),在生成的时候,组成 Span 的 token 是一起预测的,也即在 PLM 中进行 Span-by-Span 预测。

“partially autoregressive” 预测:(x_1, x_3, x_6) -> t=1, predict span by (x_4, x_5) -> t=2, predict token by (x_2)

UniLMv2 15% mask 比例里,其中 40% 按 n-gram (span) 进行 mask, 60% 按 token 进行 mask。

UniLMv2 在论文做了非常完善的策略消歧实验,有兴趣的同学可以直接去围观。

UniLMv2 论文地址:https://arxiv.org/abs/2002.12804

UniLMv2 开源地址:https://github.com/microsoft/unilm

MPNet (微软)

MPNet 也是微软研究者的工作。这篇工作和 UniLMv2 比较神似,都是在探讨如何融合 MLM 和 PLM 这两种任务。MPNet 论文首先从统一的视角对 MLM 和 PLM 进行对比:

  • 输出依赖(Output Dependency): MLM 假设被掩码的 tokens 是相互独立的(或者说他们彼此间是互相屏蔽的),这样建模上下文的时候就存在信息丢失。而 PLM 的待预测的 tokens 预测顺序可以有 N 阶乘的排列组合,因此可以更好的建模待预测 tokens 的上下文。

  • 输入差异(Input Discrepancy): MLM 中 mask 掩码隐藏了 token 信息,但通过“占位”的方式保留了位置信息。而标准的 PLM 待预测的 token 只能看到对应 permute 序列的前序部分,在 15% 预测比例下,期望能看到 85% + 7.5% = 92.5% 的 token 和 位置信息。

MPNet 在输入上保留了 MLM 的掩码 [M] 进行占位,而输出仅进行 PLM 的学习。因此,在输入上 MPNet 和 UniLMv2 是非常相似的,主要的区别是 UniLMv2 的输出也进行 MLM 的学习。

MPNet:输入包含 MLM 的掩码占位、输出仅进行 PLM 的学习

MPNet 的实验做的比较扎实,消融实验分别验证了 “position compensation”([Maskl] 占位)、"output dependency” (PLM) 去除后的下游任务效果。

MPNet 论文地址
https://arxiv.org/abs/2004.09297

MPNet 开源地址:https://github.com/microsoft/MPNet

总结

BERT 横空出世一年多以来,语言预训练技术不断发展融合。XLNet 提出的 PLM,以及实现 PLM 的双流机制,在更多的语言预训练后起之秀的手中不断发扬光大。

恩,一切都是那么美好。


萌屋公告

喜欢本文的小伙伴们,记得扫描下方二维码关注并星标置顶,我才能来到你面前哦。

卖萌屋妹子们的原创技术干货有 ACL2020学术前沿系列、NLP综述系列、NLP论文清单系列、NLP基础入门系列、搜索与推荐系列、深度学习初/中/高级炼丹技巧、机器学习入门系列、算法岗offer收割系列等。订阅号后台回复【干货】即可打包带走。

卖萌屋里有众多顶会审稿人、大厂研究员、知乎大V和美丽小姐姐(划掉????‍♀️),我们成立了 自然语言处理 / 知识图谱 / 深度学习 / 机器学习 / 校招求职 高质量讨论群,订阅号后台回复入群即可上车。

夕小瑶的卖萌屋

_

关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | 神经网络与非神经网络简单知识问答方法的强基线分析

来源:NAACL 2018链接:http://aclweb.org/anthology/N18-2047本文关注任务为面向简单问题的知识库问答(仅用KB中的一个事实就能回答问题)。作者将任务划分为实体检测,实体链接,关系预测与证据整合&#xff0…

干货 | 搞定用户画像只需5个步骤

【转】http://www.sohu.com/a/115611583_445326有一句话是,千万人撩你,不如一人懂你,这句话在互联网圈可以说成是,真正的了解用户,才能得到用户,所以,用户画像的重要性不言而喻。什么是用户画像…

领域情报搜索实践:真实场景下的问答实施策略与风险分析

知识搜索,对于一个企业而言,目前无论是在对内管理还是对外服务的业务上,都有着大量的需求,并表现出急迫性的特征。 例如,很多企业都积累了大量的企业知识资产,并且规模以每年200%的速度增长,其…

数据结构--二叉树 Binary Tree

文章目录1.概念2.存储方式2.1 链式存储(二叉树代码大部分是链式实现的)2.2 顺序存储(基于数组)3.二叉树的遍历3.1 基于链表的二叉树实现代码3.2 基于数组的二叉树实现代码3.3 非递归法 二叉树遍历1.概念 二叉树,每个节…

算法工程师思维导图—数据结构与算法

卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。点击这里查看具体使用指南。该手册有两种获取方式:公众号后台回复…

通过预训练提升语言理解

官方地址:https://blog.openai.com/language-unsupervised/文章:https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf代码:https://github.com/openai/finetune-tran…

最全Java架构师130面试题:微服务、高并发、大数据、缓存等中间件

一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 二、Java基础 接口与抽象类的区别&#xf…

智能投顾全面解读

智能投顾全面解读 <p>传统投顾一直是与理财产品的销售紧密结合在一起的。投顾即销售&#xff0c;在国内理财界也是约定俗成的现实。<br></p><p>传统投资顾问即证券投资顾问业务遵循《证券投资顾问业务暂行规定》&#xff0c;开展证券投资顾问业务的机构…

数据结构--二叉查找树 Binary Search Tree

文章目录1.二叉查找树概念2.二叉查找树操作2.1 查找2.2 插入2.3 删除2.4 其他3. 支持重复数据的二叉查找树4 有散列表了&#xff0c;还需要二叉查找树&#xff1f;5 代码实现1.二叉查找树概念 二叉查找树要求&#xff0c;在树中的任意一个节点&#xff0c;其左子树中的每个节点…

最新蚂蚁金服Java面试题:Docker+秒杀设计+RocketMQ+亿级数据设计

蚂蚁金服一面&#xff1a; 1 自我介绍 2 讲一下ArrayList和linkedlist的区别&#xff0c;ArrayList的扩容方式&#xff0c;扩容时机。 3 hashmap的实现&#xff0c;以及hashmap扩容底层实现。 4 NIO了解么&#xff0c;讲一下和BIO的区别&#xff0c;AIO呢。阻塞&#xff0c;…

论文浅尝 | 常识用于回答生成式多跳问题

链接&#xff1a;https://arxiv.org/pdf/1809.06309.pdfAnsweringTasks多跳问题一般需要模型可以推理、聚合、同步上下文中不同的信息。就需要理解那些人类通过背景知识可以理解的限制关系。本文提出了一个很强的baseline模型&#xff08;multi-attention pointer-generator d…

中国智能投顾行业

原文地址&#xff1a; 中国智能投顾行业 一、概要 财富管理与新兴金融科技的结合&#xff0c;使得财富管理行业正在进入新的阶段——智能财富管理。近几年全球出现的智能投顾模式已然成为智能财富管理的一大热点。智能投顾&#xff0c;简而言之&#xff0c;就是基于投资者的投…

别让数据坑了你!用置信学习找出错误标注(附开源实现)

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | JayLou娄杰&#xff08;NLP算法工程师&#xff0c;信息抽取方向&#xff09;编 | 北大小才女小轶美 | Sonata1 前言在实际工作中&#xff0c;你是否遇到过这样一个问题或痛点&#xff1a;无论是通过哪种…

助力句子变换:35W抽象、43W同义、13W简称三大知识库对外开源

句子变换&#xff0c;是指根据给定中文句子&#xff0c;借助某种语言处理手段&#xff0c;扩展出一定数据规模的中文句子集合&#xff0c;是一个从1到N的过程&#xff0c;目的在于解决搜索&#xff08;查询扩展&#xff09;、分类&#xff08;样本扩充&#xff09;、抽取&#…

数据结构--红黑树 Red Black Tree

文章目录1.概念2.操作2.1 左旋、右旋&#xff08;围绕某个节点的左/右旋&#xff09;2.2 插入2.3 删除3. 代码1.概念 二叉树在频繁动态增删后&#xff0c;可能退化成链表&#xff0c;时间复杂度由 O(lgn) 变成 O(n)。&#xff08;不平衡&#xff09;平衡二叉树&#xff0c;树中…

深度学习在用户画像标签模型中的应用

原文地址&#xff1a;https://blog.csdn.net/chaishen10000/article/details/79324016 最近一段时间都在学习深度学习&#xff0c;想着在用户画像标签模型中看能不能用上&#xff0c;终于&#xff0c;用了一个多月的时间&#xff0c;结合实际的场景和数据&#xff0c;搭建了一套…

最强京东Java面试题(共现场4面)

一面&#xff08;基础面&#xff1a;约1个小时&#xff09; 自我介绍&#xff0c;主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 Autowired的实现原理 Bean的默认作用范围是什么&#xff1f;其他的作用范围&#xff1f; 索引是什么概念有什么作用&#xff1f;MyS…

工业界求解NER问题的12条黄金法则

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | JayLou娄杰&#xff0c;夕小瑶编 | 可盐可甜兔子酱美 | Sonata众所周知&#xff0c;命名实体识别&#xff08;Named Entity Recognition&#xff0c;NER&#xff09;是一项基础而又重要的NLP词法分析任…

POJ 1577 Falling Leaves(二叉查找树)

题目链接&#xff1a;http://poj.org/problem?id1577 题目大意&#xff1a; 二叉查找树按照叶子节点&#xff0c;从下往上抹去该树&#xff0c;给出抹除字符序列&#xff0c;求该二叉树&#xff0c;并前序打印 解题思路&#xff1a; 最后抹除的是根节点&#xff0c;把抹除的…

最新阿里内推高级Java面试题

阿里Java一面题目 osi七层网络模型&#xff0c;五层网络模型&#xff0c;每次层分别有哪些协议 死锁产生的条件&#xff0c; 以及如何避免死锁&#xff0c;银行家算法&#xff0c;产生死锁后如何解决 如何判断链表有环 虚拟机类加载机制&#xff0c;双亲委派模型&…