自然语言处理从入门到应用——预训练模型总览:两大任务类型

分类目录:《自然语言处理从入门到应用》总目录
相关文章:
· 预训练模型总览:从宏观视角了解预训练模型
· 预训练模型总览:词嵌入的两大范式
· 预训练模型总览:两大任务类型
· 预训练模型总览:预训练模型的拓展
· 预训练模型总览:迁移学习与微调
· 预训练模型总览:预训练模型存在的问题


从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。总的来看,预训练模型的优势包括:

  • 在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务
  • 为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛
  • 是一种有效的正则化手段,避免在小数据集上过拟合,而一个随机初始化的深层模型容易对小数据集过拟合

下图就是各种预训练模型的思维导图,其分别按照词嵌入(Word Embedding)方式分为静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)方式分类、按照监督学习和自监督学习方式进行分类、按照拓展能力等分类方式展现:
预训练模型总览
思维导图可编辑源文件下载地址:https://download.csdn.net/download/hy592070616/87954682

预训练模型按照任务类型可分为2大类:监督学习和自监督学习两类。监督学习在预训练模型中的主要代表就是CoVe,CoVe作为机器翻译的Encoder部分可以应用于多种NLP下游任务。除了CoVe外,NLP中的绝大多数预训练模型都属于自监督学习。自监督学习实际是无监督学习的一种方法,自监督学习主要是利用辅助任务从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。因此,从“构造监督信息”这个角度来看,自监督也可看作是监督学习和无监督学习的一种融合。严格地讲,从是否由人工标注来看,自监督学习属于无监督学习的范畴。综合各种自监督学习的分类方式,我们可以将预训练模型在自监督学习中分为两种类型:基于上下文(Context Based)和基于对比(Contrastive Based)。

基于上下文(Context Based)的预训练模型

基于上下文的预训练模型主要基于数据本身的上下文信息构造辅助任务,在NLP中我们通常引入语言模型作为训练目标。预训练模型中的语言模型主要分为三大类:

模式语言模型类型优点缺点
LM自回归语言模型语言模型联合概率的无偏估计,考虑被预测单词之间的相关性,适合生成任务按照文本序列顺序拆解(从左至右分解),无法获取双向上下文信息表征
DAE自编码语言模型本质为降噪自编码(DAE)特征表示,通过引入噪声[MASK]构建MLM获取双向上下文信息表征引入独立性假设,为语言模型联合概率的有偏估计,没有考虑预测token之间的相关性;预训练时的[MASK]噪声在微调不会出现,造成两阶段不匹配问题
PLM排列语言模型综合了LM和DAE两者的优点收敛速度较慢; XLNet对于多种排列方式随机采样,并仅预测了排列后序列的最后几个token
自回归语言模型(LM): p ( x 1 : T ) = ∏ t = 1 T p ( x t ∣ x 0 : t − 1 ) p(x_{1:T})=\prod_{t=1}^Tp(x_t|x_{0:t-1}) p(x1:T)=t=1Tp(xtx0:t1)
  • 优点:语言模型(Language Model,LM)联合概率的无偏估计,即为传统的语言模型,考虑被预测单词之间的相关性,天然适合处理自然生成任务
  • 缺点:联合概率按照文本序列顺序拆解(从左至右分解),无法获取双向上下文信息表征
  • 代表模型:ELMO、GPT-1、GPT-2、ULMFiT、SiATL
自编码语言模型(DAE): p ( x 1 : T ) ≈ ∑ t = 1 T m t log ⁡ p ( x t ∣ x ~ ) p(x_{1:T})\approx\sum_{t=1}^Tm_t\log p(x_t|\tilde{x}) p(x1:T)t=1Tmtlogp(xtx~)

BERT是自编码语言模型的一个典型代表,但其采用的MLM策略和Transformer Encoder结构,导致其不适合直接处理生成任务。为了解决这一问题,也可采用基于Seq2Seq MLM方法:Encoder部分采取masked策略,而Decoder部分以自回归的方式预测Encoder部分被masked的token。此外,还有很多基于自编码语言模型的预训练模型提出了不同的MLM增强策略,称之为 Enhanced Masked Language Modeling(E-MLM)。

  • 优点:
    • 本质为降噪自编码(DAE)特征表示,通过引入噪声[MASK]构建MLM(Masked Language Model),获取双向上下文信息表征(DAE旨在采用部分损坏的输入,期望在恢复原始的未失真输入,故自编码语言模型MLM也可以视为DAE的一种)
    • 如果当前token被预测,则 m t = 1 m_t=1 mt=1,否则 m t = 0 m_t=0 mt=0 x ~ \tilde{x} x~为原始文本被替换后的输入
  • 缺点:
    • 引入独立性假设,为语言模型联合概率的有偏估计,没有考虑预测token之间的相关性
    • 预训练时的[MASK]噪声在微调阶段不会出现,造成两阶段不匹配问题,为解决这一问题,在15%被预测的token中,80%被替换为[MASK],10%被随机替换,10%被替换为原词。
  • 代表模型:BERT、MASS、T5、RoBERTa、UniLM、XLM、SpanBERT、ERNIE-Baidu、E-BERT、ERNIE-THU、BART。
排列语言模型(PLM)

排列语言模型(Permuted Language Model,PLM)综合了LM和DAE两者的优点。严格来讲,PLM和LM是标准的自回归语言模型(PLM是一种广义的自回归方法),而MLM不是一个标准的语言模型,其引入独立性假设,隐式地学习预测token(mask部分本身的强相关性)之间的关系。如果衡量序列中被建模的依赖关系的数量,标准的自回归语言模型可以达到上界,不依赖于任何独立假设。LM和PLM能够通过自回归方式来显式地学习预测token之间的关系。然而,LM无法对双向上下文进行表征,而PLM将这种传统的自回归语言模型(LM)进行推广,将顺序拆解变为随机拆解(从左至右分解),产生上下文相关的双向特征表示。PLM最为典型的代表就是XLNet,这是对标准语言模型的一个复兴[:提出一个框架来连接标准语言模型建模方法和预训练方法。PLM的本质就是语言模型联合概率的多种分解机制的体现,其将LM的顺序拆解推广到随机拆解。PLM没有改变原始文本序列的自然位置,只是定义了token预测的顺序。PLM只是针对语言模型建模不同排列下的因式分解排列,并不是词的位置信息的重新排列。

下表是上述三类语言模型的总结:

模型语言模型编码器特点
ELMoLMLSTM2个单向语言模型(前向和后向)的拼接
ULMFiTLMLSTM引入逐层解冻解决微调中的灾难性问题
SiATLLMLSTM引入逐层解冻+辅助LM解决微调中的遗忘问題
GPT-1LMTransformer-Decoder首次将Transformer应用于预训练语言模型
GPT-2LMTransformer-Decoder没有特定模型的微调流程,生成任务取得很好效果
BERTDAE(MLM)Transformer-EncoderMLM获取上下文相关的双向特征表示
MASS / T5DAE(Seq2SeqMLM)Transformer统一为类似Seq2Seq的预训练框架来改进BERT生成任务
UNILMDAE(E-MLM)Transformer-Encoder通过3个mask矩阵改进BERT生成任务
RoBERTaDAE(E-MLM)Transformer-Encoder预训练过程中采用动态mask
XLMDAE(E-MLM)Transformer-Encoder在翻译语言模型的平行语料上执行MLM
SpanBERTDAE(E-MLM)Transformer-Encoder采用random span mask和span boundary objective2个预训练目标
ENRIE-BAIDUDAE(E-MLM)Transformer-Encodermask实体和短语,2.0版本引入多任务进行增量学习
ENRIE-THU / E-BERTDAE(E-MLM)Transformer-Encoder引入知识:将实体向量与文本表示融合
BARTDAETransformer采用Seq2Seq框架和5中DAE方法
XLNETDAE(PLM)Transformer-XL双向上下文表征和双注意力流

基于对比(Contrastive Based)的预训练模型

基于对比(Contrastive Based)的预训练模型不同于基于上下文(Context Based)的预训练模型通过数据本身的上下文信息构造辅助任务,基于对比的预训练模型主要是利用样本间的约束信息构造辅助任务,这类方法也称为对比学习(Contrastive learning,CTL)。对比学习假设观察到的文本对(正样本)在语义上比随机采样的文本(负样本)更相似。对比学习背后的原理是在对比中学习。相较于语言建模,对比学习的计算复杂度更低,因而在预训练中是理想的替代训练标准。

对比学习通过构建正样本和负样本,然后度量正负样本的距离来实现自监督学习。可以使用点积的方式构造距离函数,然后构造一个Softmax 分类器,以正确分类正样本和负样本。鼓励相似性度量函数将较大的值分配给正例,将较小的值分配给负例:
L N = − E x , y + , y ∗ − [ log ⁡ exp ⁡ ( s ( x , y + ) ) exp ⁡ ( s ( x , y + ) ) + ∑ j = 1 N − 1 exp ⁡ ( ( s ( x , y j − ) ) ) ] L_N = -E_{x, y^+, y*-}[\log\frac{\exp{(s(x, y^+))}}{\exp{(s(x, y^+))+\sum_{j=1}^{N-1}\exp((s(x,y_j^-)))}}] LN=Ex,y+,y∗−[logexp(s(x,y+))+j=1N1exp((s(x,yj)))exp(s(x,y+))]

相似性度量函数通常可采取两种方式: s ( x , y ) = f enc ( x ) T f enc ( x ) s(x, y)=f_{\text{enc}(x)}^Tf_{\text{enc}(x)} s(x,y)=fenc(x)Tfenc(x) s ( x , y ) = f enc ( x ⨁ y ) s(x, y)=f_{\text{enc}}(x\bigoplus y) s(x,y)=fenc(xy)

Deep InfoMax (DIM)

DIM 方法来源于计算机视觉领域,对于全局的特征(编码器最终的输出)和局部特征(编码器中间层的特征),DIM需要判断全局特征和局部特征是否来自同一图像。InfoWord将DIM引入到NLP中,用Mutual Information的一个下界InfoNCE来重新解释BERT和XLNET的objective,并提出一个新的DIM objective以最大化一个句子的global representation和其中一个n-gram的local representation之间的Mutual Information。

Replaced Token Detection(RTD)

噪声对比估计(Noise-Contrastive Estimation,NCE)通过训练一个二元分类器来区分真实样本和假样本,可以很好的训练词嵌入。RTD与NCE相同,根据上下文语境来预测token是否替换 。word2vec中的negative sampling可看作是RTD,负样本从词表中进行带权采样。ELECTRA提出了一种新的预训练任务框架,构建生成器—判别器,生成器通过MLM任务对被mask的token进行预测,迭代器判断原始句子中的每个token是否被替代过。生成器相当于对输入进行了筛选,使判别器的任务更难,从而学习到更好的表示。生成器—判别器共享embedding,生成器部分采用small-BERT,判别器部分对每一个token采用sigmoid计算loss。微调阶段只采用判别器部分。RTD也被看作解决MLM中[MASK]在预训练和微调间差异的一种手段。WKLM在实体层进行替换,替换为具有相同实体类型的实体名称。

Next Sentence Prediction (NSP)

NSP 区分两个输入句子是否为训练语料库中的连续片段,第二个句子50%为第一句子实际的连续片段,50%从其他语料随机选择。NSP可以引导模型理解两个输入句子之间的关系,从而使对此信息敏感的下游任务受益,如QA任务。而RoBERTa表明:NSP在对单个文档中的文本块进行训练时,去除NSP任务或在下游任务上可以稍微提高性能。

Sentence Order Prediction(SOP)

SOP 使用同一文档中的两个连续片段作为正样本,而相同的两个连续片段互换顺序作为负样本。NSP融合了主题预测和相关性预测,主题预测更容易,这使得模型进行预测时仅依赖于主题学习。与NSP不同,SOP使用同一文档中的两个连续段作为正样本,但顺序互换为负样本。采取SOP任务的PTMs有ALBERT、StructBERT、BERTje等。

下表是对上述四类预训练模型的总结:

基于对比的方法特点预训练模型
DIM:Deep InfoMax最大化全局特征和局部特征间的互信息InfoWord
RTD:Replaced Token Detection根据上下文语境来预测token是否替挨word2vec-ns / ELECTRA / WKLM
NSP:Next Sentence Prediction区分两个输入句子是否为语料库中的连续片段BERT / UniLM
SOP:Sentence Order Prediction相关性预测,将两个连续片段互换顺序ALBERT / StructBERT / BERTje

参考文献:
[1] QIU XIPENG, SUN TIANXIANG, XU YIGE, et al. Pre-trained models for natural language processing: A survey[J]. 中国科学:技术科学(英文版),2020.

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

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

相关文章

MFC扩展库BCGControlBar Pro v33.5新版亮点 - 控件、脚本管理增强

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 BCGControlBar专业版 v33.5已正式发布了,此版本包含了Ribbon(功能区)自定义…

若依-vue图片上传本地改OSS前台以及后台-附带oss图片上传工具类

阿丹: 在二次开发若依的过程中发现若依的图片上传的默认的是在本地,在spring-vue版本中,如果要将平台上线那么就需要考虑这个问题,要使用fastdfs或者oss来完成代替本地的图片上传。 本篇文章我使用了oss来完成图片上传以及前台的…

【pytorch函数笔记】torch.sum()、torch.unsqueeze()

1.torch.sum torch.sum(imgs, dim0) # 按列求和 torch.sum(imgs, dim1) # 按行求和 imgs torch.Tensor([i for i in zip( range(10), range(10))]) print(imgs) s1torch.sum(imgs, dim0) # 按列求和 s2torch.sum(imgs, dim1) # 按行求和 print(s1) print(s2) 2.torch.uns…

【HTTP 协议】

一、HTTP 协议简介 在真实的网络环境中采用 TCP/IP 五层网络传输模型这样的结构传输. 物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 应用层 1. 应用层: 应用层是模型的最顶层,它为用户提供了一种与网络进行通信的方法。应用层包含了各种应用程序&…

网络抓包工具

目录 Wiresharktcpdump Wireshark Wireshark中的关键字 Seq和Ack是随机生成的,wireshark将Seq和Ack的初始值都设为0,即用“相对值”代替“真实值”方便查看。使用Edit——Preferences——Protocols——TCP选项中的Relative Sequence Numbers来选择启用在…

Jmeter

GUI Http访问接口测试 新建Thread Group、HTTP Request等四个功能,剩下两个在Listener Thread Group是新建测试用例,设置线程数。 HTTP Request 发送请求,设置服务的IP、端口号、请求方式、路径、编码方式、传入数据的Name、Value、Conten…

N-121基于微信小程序网上书城系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatisredis 本系统分微信小程序和管理后台两部分&a…

设计模式学习之抽象工厂模式

设计模式系列往期文章 设计模式学习之策略模式设计模式学习之策略模式在前端的应用设计模式学习之简单工厂模式设计模式学习之工厂方法模式 如果你已经理解了工厂方法模式,那你能够很快的明白抽象工厂模式。 温习:什么是工厂方法模式 我们先温习一下…

obs源码分析与调试:obs初始化过程

英语能力比较好的读者可以先看看官方文档:obsproject.com/docs/backen… OBS 的后端(即 libobs)使用 C 语言实现,提供了最核心的功能,包括:主流程、音视频子系统、通用的插件框架。 core/libobs/libobs 定…

基于微信小程序的上课签到系统(数据库+报告+文档+演示视频)

系统技术语言介绍: 本系统采用了SSM (Spring Spring MVC Mybatis)架构, MySQL作为基础数据库,微信开发工具作为前端基础,前端采用了 wxml的设计语言,Idea作为后台的开发工具。 功能列表: 1.…

RabbitMQ 能保证消息可靠性吗

系列文章目录 消息队列选型——为什么选择RabbitMQ RabbitMQ 五种消息模型 RabbitMQ 能保证消息可靠性吗 系列文章目录前言一、消息可靠性的定义二、几种不可靠的场景三、防意外丢失1. 消息持久化2. 队列持久化3. 发布确认3.1 简单发布确认3.2 批量发布确认3.3 异步发布确认 4…

深度学习视角下的视频息肉分割

结直肠癌(CRC)是全球第二大致命癌症和第三大常见的恶性肿瘤,据估计每年会在全球范围内造成数百万人发病和死亡。结直肠癌患者在第一阶段的生存概率超过95%,但在第四和第五阶段却大幅下降到35%以下。因此,通过结肠镜、乙状结肠镜等筛查技术对阳…