淘优惠

淘优惠

周一股股行情分析

热门文章 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】


【要闻精选】

>国家发改委颁布实施新修订的《国家以工代赈管理办法》。

>中国证监会:2月1日,全面实行股票发行注册制改革正式启动。

>深交所:全面实行注册制下,深市主板定位将进一步突出大盘蓝筹市场特色。

>药监局:加快临床急需新药、罕见病用药、儿童用药等上市速度。

>国资央企将积极推动装备制造、矿产资源、煤电等领域资源整合。

>投行、PE备战主板注册制:全面梳理在手项目,业务可能大增。

>鸡苗价格月内翻倍!业内人士:需求恢复白羽肉鸡产业链“量价齐升”。

>CINNO Research:中国市场折叠屏手机销量已连续9个季度同比正增长。

>硅业分会:本周各品类硅料价格相较两周前涨幅达到31%左右。

【公告淘金】

郑煤机(601717)+0.62%拟分拆控股子公司恒达智控至境内证券交易所上市。

赛力斯(601127)+2.17%1月新能源汽车销量4885辆,同比增长38.78%。

紫金矿业(601899)+4.07%完成苏里南Rosebel金矿项目收购。

鼎胜新材(603876)+0.20%全资子公司与LG能源签订采购协议。

中材国际(600970)+3.61%子公司签订53.76亿元工程建设总承包合同。

上海电力(600021)+1.09%拟投资匈牙利Victor13.2万千瓦光伏项目。

亚香股份(301220)+0.02%拟不超3亿元投建亚香泰国生产基地项目。

山东玻纤(605006)+1.26%投资36.99亿元建设30万吨高性能(超高模)玻纤智造项目。

交控科技(688015)+2.57%拟中标4.19亿元济南城市轨道交通某工程信号系统采购项目。

【投资聚焦】

全面实行股票发行注册制改革正式启动、关注投行业务突出券商

中信建投(601066)、国金证券(600109)、天风证券(601162)、东兴证券(601198)

科技自立自强步伐加快、国产半导体设备重要性凸显

长川科技(300604)、拓荆科技-U(688072)

“悟空”出世、国内首条量子芯片生产线亮相

光迅科技(002281)、国盾量子(688027)、科大国创(300520)、中国长城(000066)

充电30秒通话2小时、手机闪充进入“秒”时代

海特高新(002023)、台基股份(300046)、飞荣达(300602)、欣旺达(300207)

供应偏紧叠加成本支撑、节后铬系产品价格全线上涨

西藏矿业(000762)、振华股份(603067)

四川促进稀土产业高质量发展、本地稀土永磁企业受关注

盛和资源(600392)、银河磁体(300127)

央行将继续开展数字人民币创新应用、行业发展提速

创识科技(300941)、雄帝科技(300546)

三部门出台税收优惠政策、支持跨境电商发展

跨境通(002640)、焦点科技(002315)

【热点复盘】

1、AI(人工智能)

AIGC\\ChapGPT:汉王科技、厦门信达、奥雅股份、初灵信息、岭南股份、慧博云通、天娱数科、传智教育

AI:赛为智能、智能自控、川大智胜、魅视科技、佳讯飞鸿、赛摩智能、精伦电子

2、有色

锆:东方锆业、三祥新材

钨:翔鹭钨业、章源钨业

稀土+铅锌:中色股份

铅锌+铟:株冶集团

钽:东方钽业

锑:华钰矿业

锶:金瑞矿业

3、信创+数字经济

安防+数据安全:同为股份

软件+智慧停车:捷顺科技

信创+操作系统:东方中科

网安+信创:恒久科技

软件+信创:湘邮科技

数据确权:安妮股份

数字货币:楚天龙

4、其他

央企+一带一路:中成股份、北方国际

持股中航电测+多元金融:中航产融

复合铜箔:宝明科技、方邦股份

芯片封测:同兴达、中京电子

科创板次新+医药:百利天恒

固态电解质粉体:上海洗霸

成飞+军工+汽配:成飞集成

重组获批+贸易:南化股份

机器人+饮料包装:达意隆

机器人+家电:爱仕达

油气+股权变更:海默科技

回购+汽车销售:广汇汽车

年报预增+铝材:宁波富邦

年报扭亏+酿酒:威龙股份

年报预增+PCB:沪电股份

锂电智能装备:天永智能

造纸智能装备:欧克科技

军工+大飞机:博云新材

中航系+钟表:飞亚达

比亚迪+汽配:光洋股份

化妆品+电商:青岛金王

家装+数字化:东易日盛

智能燃气表:先锋电子

转型新能源:天域生态

工程监理:建发合诚

绿色包装:王子新材

动物保健:中牧股份

开板新股:福斯达

玻璃:耀皮玻璃

婴童:金发拉比

服装:华斯股份

轮胎:青岛双星

基建:上海港湾

券商:红塔证券

期货:瑞达期货



自然语言处理的预训练模型 预训练语言模型

自然语言处理 模型,nlp 预训练模型,传统的自然语言处理哪种方法建立的模型,自然语言预处理过程

摘要

本报告将从以下几个方面梳理预训练模型,陈述预训练(特指nlp领域)的what和how,总结预训练加微调模式的好处和弊端。通过时间线的方式梳理最近两年来预训练模型的发展脉络,重点阐述几个典型的预训练模型的做法和创新点。

chap1:预训练模型

预训练模型一开始是在CV中流行起来的,在图像领域,由于有些任务可能面临这数据量匮乏这一难题,直接在此任务上进行神经网络的训练非常容易导致过拟合。因此人们通常是在一些大的图像数据集上进行通用神经网络的训练,因为在神经网络中,越靠前边的网络层学到的特征越抽象,对于不同的图像数据集来说,他们之间的一些抽象特征可能是相似或者相同的,因此,通过在大的数据集上进行预训练,然后在根据特定的任务进行微调,能够加速网络的训练,缓解过数据量不足而带来的过拟合问题,预训练微调模式可以看成迁移学习的一种特定手段。

而在NLP方面,预训练手段则发展的比较晚,但是预训练的思想其实早就有了,比如最早的word2vec,其实就可以看成特殊的预训练,只不过我们的下游任务直接把学得的词向量拿来作为自己任务的初始化了,而不是进行某种方式的微调。我认为预训练模型发展较晚的原因由以下几个方面构成。

第一,NLP没有像CV一样的大型通用的数据集,由于自然语言的复杂性,很难定义合适的通用的监督型任务供预训练模型进行学习。

第二,如上所述,没有合适的标注数据集,那么进行监督学习就是不太的可能的了,大家都没有意愿去摸索如何利用无监督数据的方法。

第三,在transformer之前,NLP最常用的特征提取模块都是rnn-based,这类的特征提取模块不太适合作为预训练模型的backbone。原因是,他们都是循环递归结构,预训练追求的在大规模数据上学习通用的语言特征,而rnn-based特征提取模块作为backbone训练时时间复杂度是非常高的。大多数研究人员和研究公司都不太愿意尝试。

2.1 语言模型

语言模型是指这样的一个映射函数:

\[f:S->R \]

该映射可以建模一个句子的可能性,通常在机器翻译中应用较多。机器翻译中一般将其作为候选结果集的筛选器。

通常该函数是通过在给定预料上通过最大似然学得的。一般的,考虑单向的语言模型,通过链式法则以及最大化如下似然函数,来学习模型:

\[ heta=argmax\sum_{x\in Cor}logP_ heta(x) \\=argmax \sum _{x \in Cor}\sum_{t} logP_ heta(x_t|x_{<t})\\=argmax\sum_{x\in Cor}\sum_{t=1}^Tlog\frac{exp(h_ heta(x_{1:t-1})^Te(x_t))}{\sum_{x^\prime}exp(h_ heta(x_{1:t-1})^Te(x^\prime))} \]

上述建模方法是预训练模型中最常用的训练手段,称之为单向正向语言模型。与之相对的,下面是单向反向预训练模型:

\[ heta=argmax \sum_{x \in Cor}logP_ heta(x) \\=argmax \sum _{x \in Cor}\sum _tlogP _ heta(x_t|x_{>t}) \]

\(P_ heta\)一般用LSTM来建模,后来逐渐演变为Transformer模块,因为Transformer包含多层的Self-Attention运算,而语言模型恰恰就需要提取这种序列内部交互特征。

基于语言模型的预训练模型子18年以来层出不穷,俨然成了各大公司中的乱斗场,频繁的刷新着以NLU为核心的各类NLP任务。下表就是我根据所看的论文总结出比较典型的预训练模型的近两年的发展脉络。

模型名称 特征提取 模块 预训练任务 语言 模型 特点
ELMO BiLSTM LM 单向拼接 首次真正的将预训练的思想进行了实践
GPT Transformer LM 单向 统一下游微调任务的形式,证明了transformer结构在预训练任务中的有效性
BERT Transformer MLM,NSP 双向 创新性的提出MSM任务,首次事先了双向的语言模型
GPT2.0 Transformer LM 单向 在生成任务中取的良好的结果
MASS Transformer LM,MLM 单向,双向 将序列任务引入到预训练过程
UNILM Transformer LM,MLM,S2SLM 单向,双向 灵活的运用mask矩阵,实现仅仅用Encoder来作序列任务
MTDNN Transformer MLM 双向 在下游阶段引入了多任务学习
Transformer-XL Transformer-XL
XLNET Transformer-XL Perm-LM 双向 排列语言模型,双注意流
ALBERT Transformer MLM 双向 对BERT进行了针对性的模型压缩,保留了尽可能大的性能同时精简了模型
RoBERTa Transformer
DistillBERT Transformer 对BERT进行了模型蒸馏,从而达到模型压缩的目的
表2.1 基于语言模型的预训练模型发展脉络
2.2 ELMo:Deep contextualized word representations

ELMo(Embeddings from Langauge Model)的思想非常简单,通过双向拼接的LSTM结构作为模型的特征提取表示模块,然后使用LM作为预训练第一个阶段的任务,为了将下游不同的任务融合进去,论文在上层融合了不同的NLP任务,需要注意的是,作者在融合不同任务的时候,并没有统一的使用最顶层的向量表示,而是针对不同的任务使用了不同层的向量表示。

elmo的优点在于初步解决了之前的词向量表示中所不能解决的一词多义的问题,因为每个词向量表示都是根据其周围的词在句子中动态获得的。

2.3 GPT:Improving Language Understandingby Generative Pre-Training

GPT是Open AI的工作,开创性的使用了Transformer来作为预训练模型的特征提取模块,在NLU相关的下游任务中取得了非常好的效果。模型也是十分简洁的,预训练部分使用单向的LM,微调阶段也是十分简洁,将一些非序列而任务融合到了一个框架中去,采用了分隔符标记拼接的方式来统一处理。

2.4 GPT2.0:Language Models are Unsupervised Multitask Learners

由于GPT2.0在GPT基础上做的,除了使用了多任务以及超大预训练数据集以及超大的模型之外,在思想上并没有很大的创新,这里就不详细展开了。

2.5 BERT: Pre-training of Deep Bidirectional Transformers for Lanuage Understanding

BERT这篇论文在组会上已经多次讨论了,其中模型结构以及预训练任务大家都早已非常熟悉,这里不再赘述。

这里稍微说下BERT用于预训练中的MLM任务,以及为什么可以称之为双向的语言模型。理想情况下,我们都希望一个词的语义特征表示是由其上下文共同编码决定的。显然上面基于链式法则的单向语言模型是不能够学习到双向语义表示的,因为在预测\(x_t\)时,无论是正向的语言模型还是反向的语言模型,都只由该时刻一侧的序列决定,所以模型自然不能将双向的信息编码到中心词中去。而BERT通过借鉴close-test这样的任务思想,借助Self-Attention Mask,巧妙的解决了上述问题。BERT可以形式化最大如下似然函数:

\[ heta=argmax \sum_{x \in Cor}P_ heta(x|\overline x) \\=argmax\sum _{x \in Cor}\sum _t m(t)\cdot P_ heta(x_t|\overline x)\\=\sum_{t=1}^Tm_tlog\frac{exp(H_ heta(\hat x)_t^Te(x_t))}{\sum _{x\prime}exp(H_ heta(\hat x)_t^Te(x^\prime))} \]

其中

\[m(t)=\begin{cases}1,x_t masked \\ 0,otherwise \end{cases} \]

\(H_ heta(x)=[H_ heta(x)_1,H_ heta(x)_2,。。。,H_ heta(x)_T]\),这里的\(H_ heta\)是Transformer结构的编码器。

具体的\(\overline x\)是通过Transformer的Encoder部分来完成特征提取的,在预测当前单词t时刻单词时,通过Attention Mask保证\(x_t\)时刻的信息不泄露。由于Self-Attention计算是对整个句子进行query操作,所以就把双向的信息编码进去了。通过这样的任务转化,BERT就建模到了双向的语义表示信息,但是BERT也面临着如下的为解决问题:

  • 如果在Transformer不加入Position Encoding这一操作,那么该特征提取模块实际上就是One-Hot表示而已,不能建模句子内部的相对位置信息。这也是为什么需要加入额外的位置嵌入信息这一操作。
  • 可以看出在进行序列预测时,上述的建模实际上有默认被Mask掉的部分各自相互独立,显然这是不合理的。
  • 同时,在单步预测被mask掉位置的单词时,将其他位置的mask信息信息也编码了进来,这样做有优点,也有弊端,优点是相当于人为的引进了噪声,可以增强模型的鲁棒性,缺点只能通过启发式的方法设置MASK的数量占比。无法确定究竟引入多少的MASK是合适的。
  • MASS:Masked Sequence to Sequence Pre-training for Language Generation

要注意的是,包括BERT在内的预训练模型大多都在一些NLU任务上表现优异,这些任务的基本都是一些序列分类任务,当然,也有很多人在一些序列标注任务上做过一些尝试,但是像机器翻译,文本摘要或者其他的序列生成任务,这些预训练模型便显的力不从心了。根本的原因是:这些模型都只是由一个Encoder结构组成,对于标注任务单独一个Encoder还是可以解决的,但是像序列生成这样的任务便无能为力了。

MASS就是为了解决这一问题而提出的预训练模型。实际上MASS的思想很简单,既然一个单独的Encoder不能解决,那么再叠加一个Decoder作为解码部分不就可以了,因此MASS在预训练模型部分添加了Decoder结构,并将最优化目标设为如下形式:

\[ heta=argmaxL_ heta(\cal X)=\sum_{x\in \cal X}logP_ heta(x^{u:v}|x^{/u:v}) \\=\sum_{x\in \cal X}\sum _{t=u}^vlogP_ heta(x_t^{u:v}|x_{<t}^{u:v},x^{/u:v}) \]

建模这样的最大似然有两个好处,一个是BERT时各Mask位置相互独立这一假设消失了,另外一个就是不用再引入这么多Mask信息了。

2.6 UniLM:Unified Language Model Pre-training

UniLM的巧妙之处在于将上面提到的三种语言模型都集成到了一个模型中去,而且仅仅用了Encoder结构。

预训练采用了1/3的双向语言模型,1/3的序列到序列语言模型、各占1/6的从左到右的以及从右到左的单向语言模型。同时也像BERT一样集成了NSP任务。

具体的,UniLM采用了如下方式来统一的集成上述预训练过程:

引用:

Improving Language Understandingby Generative Pre-Training

GPT:Improving Language Understandingby Generative Pre-Training

BERT:Pre-training of Deep Bidirectional Transformers for Lanuage Understanding

MASS:Masked Sequence to Sequence Pre-training for Language Generation

Unified Language Model Pre-training for Natural Language Understanding and Generation

XLNet: Generalized Autoregressive Pretrainingfor Language Understanding



自然语言处理常用模型方法总结 预训练语言模型

自然语言处理常用模型方法有哪些,语言模型 自然语言处理,传统的自然语言处理哪种方法建立的模型,自然语言处理实例
预训练模型的梳理总结

摘要

本报告将从以下几个方面梳理预训练模型,陈述预训练(特指nlp领域)的what和how,总结预训练加微调模式的好处和弊端。通过时间线的方式梳理最近两年来预训练模型的发展脉络,重点阐述几个典型的预训练模型的做法和创新点。

chap1:预训练模型

预训练模型一开始是在CV中流行起来的,在图像领域,由于有些任务可能面临这数据量匮乏这一难题,直接在此任务上进行神经网络的训练非常容易导致过拟合。因此人们通常是在一些大的图像数据集上进行通用神经网络的训练,因为在神经网络中,越靠前边的网络层学到的特征越抽象,对于不同的图像数据集来说,他们之间的一些抽象特征可能是相似或者相同的,因此,通过在大的数据集上进行预训练,然后在根据特定的任务进行微调,能够加速网络的训练,缓解过数据量不足而带来的过拟合问题,预训练微调模式可以看成迁移学习的一种特定手段。

而在NLP方面,预训练手段则发展的比较晚,但是预训练的思想其实早就有了,比如最早的word2vec,其实就可以看成特殊的预训练,只不过我们的下游任务直接把学得的词向量拿来作为自己任务的初始化了,而不是进行某种方式的微调。我认为预训练模型发展较晚的原因由以下几个方面构成。

第一,NLP没有像CV一样的大型通用的数据集,由于自然语言的复杂性,很难定义合适的通用的监督型任务供预训练模型进行学习。

第二,如上所述,没有合适的标注数据集,那么进行监督学习就是不太的可能的了,大家都没有意愿去摸索如何利用无监督数据的方法。

第三,在transformer之前,NLP最常用的特征提取模块都是rnn-based,这类的特征提取模块不太适合作为预训练模型的backbone。原因是,他们都是循环递归结构,预训练追求的在大规模数据上学习通用的语言特征,而rnn-based特征提取模块作为backbone训练时时间复杂度是非常高的。大多数研究人员和研究公司都不太愿意尝试。

2.1 语言模型

语言模型是指这样的一个映射函数:

\[f:S->R \]

该映射可以建模一个句子的可能性,通常在机器翻译中应用较多。机器翻译中一般将其作为候选结果集的筛选器。

通常该函数是通过在给定预料上通过最大似然学得的。一般的,考虑单向的语言模型,通过链式法则以及最大化如下似然函数,来学习模型:

\[ heta = argmax\sum_{x\in Cor}logP_ heta(x) \\ = argmax \sum _{x \in Cor}\sum_{t} logP_ heta(x_t|x_{<t})\\=argmax\sum_{x\in Cor}\sum_{t=1}^Tlog\frac{exp(h_ heta(x_{1:t-1})^Te(x_t))}{\sum_{x^\prime}exp(h_ heta(x_{1:t-1})^Te(x^\prime))} \]

上述建模方法是预训练模型中最常用的训练手段,称之为单向正向语言模型。与之相对的,下面是单向反向预训练模型:

\[ heta = argmax \sum_{x \in Cor}logP_ heta(x) \\ = argmax \sum _{x \in Cor}\sum _tlogP _ heta(x_t|x_{>t}) \]

\(P_ heta\)一般用LSTM来建模,后来逐渐演变为Transformer模块,因为Transformer包含多层的Self-Attention运算,而语言模型恰恰就需要提取这种序列内部交互特征。

基于语言模型的预训练模型子18年以来层出不穷,俨然成了各大公司中的乱斗场,频繁的刷新着以NLU为核心的各类NLP任务。下表就是我根据所看的论文总结出比较典型的预训练模型的近两年的发展脉络。

模型名称特征提取 模块预训练任务语言 模型特点
ELMOBiLSTMLM单向拼接首次真正的将预训练的思想进行了实践
GPTTransformerLM单向统一下游微调任务的形式,证明了transformer结构在预训练任务中的有效性
BERTTransformerMLM,NSP双向创新性的提出MSM任务,首次事先了双向的语言模型
GPT2.0TransformerLM单向在生成任务中取的良好的结果
MASSTransformerLM,MLM单向,双向将序列任务引入到预训练过程
UNILMTransformerLM,MLM,S2SLM单向,双向灵活的运用mask矩阵,实现仅仅用Encoder来作序列任务
MTDNNTransformerMLM双向在下游阶段引入了多任务学习
Transformer-XLTransformer-XL
XLNETTransformer-XLPerm-LM双向排列语言模型,双注意流
ALBERTTransformerMLM双向对BERT进行了针对性的模型压缩,保留了尽可能大的性能同时精简了模型
RoBERTaTransformer
DistillBERTTransformer对BERT进行了模型蒸馏,从而达到模型压缩的目的
表2.1 基于语言模型的预训练模型发展脉络
2.2 ELMo:Deep contextualized word representations

ELMo(Embeddings from Langauge Model)的思想非常简单,通过双向拼接的LSTM结构作为模型的特征提取表示模块,然后使用LM作为预训练第一个阶段的任务,为了将下游不同的任务融合进去,论文在上层融合了不同的NLP任务,需要注意的是,作者在融合不同任务的时候,并没有统一的使用最顶层的向量表示,而是针对不同的任务使用了不同层的向量表示。

elmo的优点在于初步解决了之前的词向量表示中所不能解决的一词多义的问题,因为每个词向量表示都是根据其周围的词在句子中动态获得的。

2.3 GPT:Improving Language Understandingby Generative Pre-Training

GPT是Open AI的工作,开创性的使用了Transformer来作为预训练模型的特征提取模块,在NLU相关的下游任务中取得了非常好的效果。模型也是十分简洁的,预训练部分使用单向的LM,微调阶段也是十分简洁,将一些非序列而任务融合到了一个框架中去,采用了分隔符标记拼接的方式来统一处理。

2.4 GPT2.0:Language Models are Unsupervised Multitask Learners

由于GPT2.0在GPT基础上做的,除了使用了多任务以及超大预训练数据集以及超大的模型之外,在思想上并没有很大的创新,这里就不详细展开了。

2.5 BERT: Pre-training of Deep Bidirectional Transformers for Lanuage Understanding

BERT这篇论文在组会上已经多次讨论了,其中模型结构以及预训练任务大家都早已非常熟悉,这里不再赘述。

这里稍微说下BERT用于预训练中的MLM任务,以及为什么可以称之为双向的语言模型。理想情况下,我们都希望一个词的语义特征表示是由其上下文共同编码决定的。显然上面基于链式法则的单向语言模型是不能够学习到双向语义表示的,因为在预测\(x_t\)时,无论是正向的语言模型还是反向的语言模型,都只由该时刻一侧的序列决定,所以模型自然不能将双向的信息编码到中心词中去。而BERT通过借鉴close-test这样的任务思想,借助Self-Attention Mask,巧妙的解决了上述问题。BERT可以形式化最大如下似然函数:

\[ heta = argmax \sum_{x \in Cor}P_ heta(x|\overline x) \\ = argmax\sum _{x \in Cor}\sum _t m(t)\cdot P_ heta(x_t|\overline x)\\=\sum_{t=1}^Tm_tlog\frac{exp(H_ heta(\hat x)_t^Te(x_t))}{\sum _{x\prime}exp(H_ heta(\hat x)_t^Te(x^\prime))} \]

其中

\[m(t) = \begin{cases}1,x_t masked \\ 0,otherwise \end{cases} \]

\(H_ heta(x) = [H_ heta(x)_1,H_ heta(x)_2,。。。,H_ heta(x)_T]\),这里的\(H_ heta\)是Transformer结构的编码器。

具体的\(\overline x\)是通过Transformer的Encoder部分来完成特征提取的,在预测当前单词t时刻单词时,通过Attention Mask保证\(x_t\)时刻的信息不泄露。由于Self-Attention计算是对整个句子进行query操作,所以就把双向的信息编码进去了。通过这样的任务转化,BERT就建模到了双向的语义表示信息,但是BERT也面临着如下的为解决问题:

  • 如果在Transformer不加入Position Encoding这一操作,那么该特征提取模块实际上就是One-Hot表示而已,不能建模句子内部的相对位置信息。这也是为什么需要加入额外的位置嵌入信息这一操作。
  • 可以看出在进行序列预测时,上述的建模实际上有默认被Mask掉的部分各自相互独立,显然这是不合理的。
  • 同时,在单步预测被mask掉位置的单词时,将其他位置的mask信息信息也编码了进来,这样做有优点,也有弊端,优点是相当于人为的引进了噪声,可以增强模型的鲁棒性,缺点只能通过启发式的方法设置MASK的数量占比。无法确定究竟引入多少的MASK是合适的。
  • MASS:Masked Sequence to Sequence Pre-training for Language Generation

要注意的是,包括BERT在内的预训练模型大多都在一些NLU任务上表现优异,这些任务的基本都是一些序列分类任务,当然,也有很多人在一些序列标注任务上做过一些尝试,但是像机器翻译,文本摘要或者其他的序列生成任务,这些预训练模型便显的力不从心了。根本的原因是:这些模型都只是由一个Encoder结构组成,对于标注任务单独一个Encoder还是可以解决的,但是像序列生成这样的任务便无能为力了。

MASS就是为了解决这一问题而提出的预训练模型。实际上MASS的思想很简单,既然一个单独的Encoder不能解决,那么再叠加一个Decoder作为解码部分不就可以了,因此MASS在预训练模型部分添加了Decoder结构,并将最优化目标设为如下形式:

\[ heta = argmaxL_ heta(\cal X)=\sum_{x\in \cal X}logP_ heta(x^{u:v}|x^{/u:v}) \\ =\sum_{x\in \cal X}\sum _{t=u}^vlogP_ heta(x_t^{u:v}|x_{<t}^{u:v},x^{/u:v}) \]

建模这样的最大似然有两个好处,一个是BERT时各Mask位置相互独立这一假设消失了,另外一个就是不用再引入这么多Mask信息了。

2.6 UniLM:Unified Language Model Pre-training

UniLM的巧妙之处在于将上面提到的三种语言模型都集成到了一个模型中去,而且仅仅用了Encoder结构。

预训练采用了1/3的双向语言模型,1/3的序列到序列语言模型、各占1/6的从左到右的以及从右到左的单向语言模型。同时也像BERT一样集成了NSP任务。

具体的,UniLM采用了如下方式来统一的集成上述预训练过程:

引用:

Improving Language Understandingby Generative Pre-Training

GPT:Improving Language Understandingby Generative Pre-Training

BERT:Pre-training of Deep Bidirectional Transformers for Lanuage Understanding

MASS:Masked Sequence to Sequence Pre-training for Language Generation

Unified Language Model Pre-training for Natural Language Understanding and Generation

XLNet: Generalized Autoregressive Pretraini