前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Survey : 预训练模型在自然语言处理的现状

Survey : 预训练模型在自然语言处理的现状

作者头像
唐国梁Tommy
发布2022-04-18 14:37:43
8300
发布2022-04-18 14:37:43
举报
文章被收录于专栏:唐国梁Tommy唐国梁Tommy

注:本篇笔记参考论文:

Pre-trained Models for Natural Language Processing: A Survey

一、Introduction

本篇论文的贡献包含以下四个方面:

1、NLP 综合概述

① 背景知识;② 模型架构;③ 预训练任务;④ 各种各样的扩展;⑤ 自适应方法;⑥ 应用;

2、NLP 新的分类法

① 表示类型;② 模型架构;③ 预训练任务类型;④ 特定场景下的延伸;

3、NLP 丰富的开源库

① 开源的PTM实施;② 可视化工具;③ 语料;④ 论文列表;

4、NLP 未来研究方向

二、Background

1、语言表示学习

① 分布式表示的核心思想是基于低维的向量值来描述一段文本;

② embedding可以分为:上下文(contextual Embeddings)和非上下文(Non-contextual Embeddings)

图-01 NLP通用神经架构

2、神经上下文编码 (Neural Contextual Encoders)

分为两类:

(1)序列模型

序列模型通常获取序列中一个word的局部语境,可以分为两类:

① 卷积模型

原理:卷机模型获得输入语句的词向量,通过卷积操作,聚合相邻词的局部信息计算出一个word的平均值;

② 循环模型

原理:循环模型通过短记忆(shorot memory)方式获取词的上下文表示,例如:LSTM, GRU。在实际应用中,双向LSTM或GRU通常从一个word的两个方向收集信息,但是,其模型效果容易受到长期依赖问题影响。

(2)非序列模型

主要是全连接层的自注意力模型,这种模式的一个成功实例是:Transformer。

Transformer也需要其它的补充模块,例如:位置编码,层归一化,残差连接,以及 逐位的前向传播网络层(feed-forward network layers)。

① 优点

Transformer可以直接为一个序列中的两个词之间的依赖建模,这种方式非常适合于语言的长距离依赖,且效果非常好。

② 缺点

Transformer属于“重“架构、更少的模型偏置,Transformer通常需要大规模训练语料,以及在小规模语料上容易过拟合。

3、为什么需要预训练?

优点主要有三个:

① 在大规模文本语料上的预训练,能够学到通用的语言表示,并有助于下游任务;

② 预训练提供了更优的模型初始化,通常能够取得更好的泛化性能,以及在目标任务上加速收敛;

③ 预训练可以被当作一类在小规模数据集上避免过拟合的正则方法。

4、NLP中预训练模型简介

(1)第一代预训练模型:预训练词向量(word embeddings)

主要是两个浅层的架构:CBOW(continuous bag-of-word 连续词袋模型)和 SG(skip-gram)

① word2vec是这些最受欢迎的模型其中之一,它能够将预训练词向量应用到NLP的不同任务重;

② GloVe也是一个用于获取预训练词向量广泛使用的模型,这些词向量基于大规模语料中全局word-word共现统计计算而来。

缺点:

① 这些语句词向量模型尝试对输入语句进行编码,形成固定维度的词向量表示,而不是根据每个token计算上下文表示。

(2)第二代预训练模型:预训练上下文编码器(contextual Encoders)

① Seq2Seq模型能够通过无监督预训练得到大幅提升。编码器encoder和解码器decoder的权重基于两个语言模型的预训练权重进行初始化,然后通过带标签的数据进行模型微调。

② 由预训练模型BiLM,ELMO等输出的上下文表示,在大量NLP任务上,取得了大幅的提升。

三、Overview of PTMs

1、预训练任务

预训练任务可以分为以下几个类别:

(1)语言模型 LM(language model)

在NLP中最常用的无监督任务是概率语言模型,这是一个经典的概率密度预估问题。尽管LM是一个通用的概念,然而在实际应用中,LM通常是指自回归LM和单向LM。

(2)掩码语言模型 MLM(masked language model)

MLM首先会把输入语句中的一些tokens覆盖掉,然后根据剩下的tokens去训练模型预测这些被掩盖的tokens。

MLM可以分为两类:

① Seq2Seq MLM

对于MLM可以使用encoder-decoder架构,encoder读取一个掩码语句,decoder有序地以自回归方式生成带有掩码的tokens。

② E-MLM(Enhanced MLM)

RoBERT通过动态masking提升BERT表现;

UniLM在三类语言模型任务上扩展了mask预测任务,分别是:单向、双向、序列到序列预测。

(3)排列语言模型 PLM(permuted language model)

PLM是一个在输入语句随机排列上的语言模型任务。从语句所有可能的随机排列结果中,随机抽取一些样本。然后,在这些语句中选择一些tokens当作target,基于剩下的tokens和targets的的自然位置,训练模型预测这些targets。

(4)去噪自编码器 DAE(denoising autoencoder)

DAE 获取部分“脏数据”,目标是恢复原始有序的输入数据。尤其对于语言,类似于标准的Transformer这样的序列到序列的模型,通常被用来重构原始的文本。

有以下几种方式构建“脏数据”(corrupt text):

① token masking 掩码

② token deletion 删除

③ text infilling 填充

④ sentence permutation 排列

⑤ document rotation 交替

(5)对比学习 CTL(contrastive learning)

对比学习假设一些所观察的文本对语义更相似,而非随机采样的文本对。

① 损失函数:即如果文本对语义相似,则尽可能学习,缩小这个差距。

② CTL目前有如下两种方式:

NSP(Next Sentence Prediction)下一句预测

目标:训练模型区分训练语料中的两个输入语句是否前后连续(即上下句)

SOP(Sentence Order Prediction)语句顺序预测

目标:假设有两个语句A和B,正样本:A - B,负样本:B - A

2、预训练模型的分类

(1)表示类型 representation type

根据下有任务的表示方式,可以将PTM分为:上下文模型 和 非上下文模型

图-02 表示PTM列表

(2)模型架构

主要有:LSTM、Transformer encoder、Transformer decoder、Transformer-encoder-decoder

(3)预训练任务类型
(4)扩展 extensions

PTM用于各种各样的场景,种类还包含:基于知识的PTM,多模态PTM,特定领域的PTM,压缩版PTM

四、Extensions of PTMs

1、知识增强 PTM

PTM 通常从通用的、大规模的文本语料学习通用知识表示,但是,缺乏领域知识。

2、多语言 - 特定语言 PTM

基于多国语言语料进行模型训练,学习,或者基于特定语言语料学习文本表示。

3、多模态 PTM

① 视频 - 文本 PTM ;② 图像 - 文本 PTM;③ 语音 - 文本 PTM;

4、特定领域 - 特定任务 PTM

① BioBERT 用于生物领域文本;

② SciBERT 用于科学领域文本;

③ ClinicalBERT 用于医药领域文本;

5、模型压缩

模型压缩是一种潜在方式用于减少模型尺寸,提升计算效率。

目前,有六种方式用来模型压缩,分别是:

(1)模型裁剪 model pruning

裁剪掉神经网络的部分模块,例如:权重、神经元、通道、注意力头,因而,能够获得减少模型尺寸后的效果,以及加速推理时间。

(2)量化 quantization

将更高精度的参数压缩至更低精度的参数,可以理解为数据值由细到粗。

(3)参数共享 parameter sharing

将模型中的一些层的参数与其它层共享,减少总的参数量。

(4)知识蒸馏 knowledge distillation

本质上是用一个小模型(student模型)经过训练后尽量逼近一个大模型(teacher模型)的效果。

知识蒸馏可以分为以下三种类型:

① soft target probabilities 软目标概率蒸馏

用teacher的输出目标值当作训练的target,这个就是软目标的意思。然后,student模型去学习,逼近这个target。

② other knowledge 其它知识蒸馏

③ other structure 其它结构蒸馏

(5)模块替换 module replacing

用压缩后的子模块替换原始PTM中的大模块,减少模型尺寸。

(6)提前退出 early exit

减少推理时间,不用跑完整个模型的所有层,可以在执行到某些层后,立即退出。例如:DeeBERT,FastBERT,ELBERT;

图-03 压缩模型对比

五、Adapting PTMs to Downstream Tasks

1、迁移学习

① 定义:将从源任务(source task)学习到的知识经过调整后用于目标任务(target task)

② 类型:领域适应(domain adaption),跨语言(cross-lingual)学习,多任务学习

2、 如何迁移?

(1)选择合适的预训练任务,模型架构和语料

(2)选择合适的模型层

对于一个预训练的深度模型,不同的层能够捕获到不同种类的信息,例如:位置信息,长期依赖信息,语义信息,共现信息等。

有三种选择表示的方式:

① 仅保留embedding 层 (embedding only)

仅选择预训练的静态embedding,模型的其它层仍然需要针对新的目标任务,从头开始训练。

② 最高层 (top layer)

最简单、有效的方式是将top layer的表示直接输入到特定任务的模型中。

③ 所有层(all layers)

以自动化地方式选择最优层,例如:ELMO

(3)微调 或 不微调

① 特征提取:冻结预训练模型参数;

② 模型微调:预训练参数进行微调;

3、微调策略

(1)两阶段的微调

① 阶段一:PTM被迁移到由中间任务或语料的模型微调上;

② 阶段二:迁移后的模型再基于目标任务进行微调。

(2)多任务微调

缺点:参数无效,因为每个任务都需要根据自己的特点微调(参数改变)。

(3)适应模块的微调

两种方式:self-ensemble 自集成 和 self-distillation 自蒸馏。

六、Resources of PTMs

1、资源列表

图-04

七、Future Directions

1、Upper Bound of PTMs

更大的语料、更多训练步骤,更深的模型结构,分布式训练

2、PTM 架构

打破目前PTM现有的模型架构,减少计算复杂性。

3、特定任务的预训练和模型压缩

4、基于微调后的知识迁移

5、预训练模型的可解释性

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐国梁Tommy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Introduction
    • 1、NLP 综合概述
      • 2、NLP 新的分类法
        • 3、NLP 丰富的开源库
          • 4、NLP 未来研究方向
      • 二、Background
        • 1、语言表示学习
          • 2、神经上下文编码 (Neural Contextual Encoders)
            • (1)序列模型
            • (2)非序列模型
          • 3、为什么需要预训练?
            • 4、NLP中预训练模型简介
              • (1)第一代预训练模型:预训练词向量(word embeddings)
              • (2)第二代预训练模型:预训练上下文编码器(contextual Encoders)
          • 三、Overview of PTMs
            • 1、预训练任务
              • (1)语言模型 LM(language model)
              • (2)掩码语言模型 MLM(masked language model)
              • (3)排列语言模型 PLM(permuted language model)
              • (4)去噪自编码器 DAE(denoising autoencoder)
              • (5)对比学习 CTL(contrastive learning)
            • 2、预训练模型的分类
              • (1)表示类型 representation type
              • (2)模型架构
              • (3)预训练任务类型
              • (4)扩展 extensions
          • 四、Extensions of PTMs
            • 1、知识增强 PTM
              • 2、多语言 - 特定语言 PTM
                • 3、多模态 PTM
                  • 4、特定领域 - 特定任务 PTM
                    • 5、模型压缩
                      • (1)模型裁剪 model pruning
                      • (2)量化 quantization
                      • (3)参数共享 parameter sharing
                      • (4)知识蒸馏 knowledge distillation
                      • (5)模块替换 module replacing
                      • (6)提前退出 early exit
                  • 五、Adapting PTMs to Downstream Tasks
                    • 1、迁移学习
                      • 2、 如何迁移?
                        • 3、微调策略
                          • (1)两阶段的微调
                          • (2)多任务微调
                          • (3)适应模块的微调
                      • 六、Resources of PTMs
                        • 1、资源列表
                        • 七、Future Directions
                          • 1、Upper Bound of PTMs
                            • 2、PTM 架构
                              • 3、特定任务的预训练和模型压缩
                                • 4、基于微调后的知识迁移
                                  • 5、预训练模型的可解释性
                                  相关产品与服务
                                  NLP 服务
                                  NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档