当前位置: 代码迷 >> 综合 >> 复旦大学邱锡鹏教授:NLP预训练模型综述 Pre-trained Models for Natural Language Processing: A Survey
  详细解决方案

复旦大学邱锡鹏教授:NLP预训练模型综述 Pre-trained Models for Natural Language Processing: A Survey

热度:35   发布时间:2023-12-06 20:28:34.0

复旦大学邱锡鹏教授:NLP预训练模型综述

文章目录

  • 01 引言
  • 02 背景
    • 2.1 语言表示学习
    • 2.2 神经上下文编码器
    • 2.3 为什么要预训练?
    • 2.4 NLP的预训练任务的简单历史
      • 2.4.1 第一代预训练:预训练词嵌入
      • 2.4.2 第二代预训练:预训练上下文编码器
  • 03 PTMs概述
    • 3.1 预训练任务
      • 3.1.1 语言模型 (LM)
      • 3.1.2 掩码语言建模 Masked Language Modeling (MLM)
        • Sequence-to-Sequence MLM (Seq2Seq MLM)
        • 增强的屏蔽语言建模 Enhanced Masked Language Modeling (E-MLM)
      • 3.1.3 排列语言模型(PLM)
      • 3.1.4 去噪声自编码器 (Denoising Autoencoder, DAE)
      • 3.1.5 对比学习(CTL)
        • Deep InfoMax (DIM)
        • Replaced Token Detection (RTD)
        • Next Sentence Prediction (NSP)
        • Sentence Order Prediction (SOP)
      • 3.1.6其他
    • 3.2 PTMs分类
    • 3.3 模型分析
      • 3.3.1 非上下文嵌入
      • 3.3.2 上下文嵌入
        • 语言知识
        • 世界知识
  • 04 PTM的4个扩展
    • 4.1 引入知识的PTMs
    • 4.2 多语言与特定语言PTMs
      • 4.2.1 Multilingual PTMs
        • 跨语言理解 Cross-Lingual Language Understanding (XLU)
        • 跨语言生成(XLG)
      • 4.2.2特定于语言的PTM
    • 4.3多模态PTM
      • 4.3.1 视频-文本PTM
      • 4.3.2图像-文本PTM
    • 4.4特定领域和特定任务的PTM
    • 4.5模型压缩
  • 05 如何将PTMs应用至下游任务
    • 5.1 迁移学习
    • 5.2 如何迁移
      • 5.2.1选择适当的预训练任务,模型架构和语料库
      • 5.2.2选择适当的层
      • 5.2.3调整还是不调整?
    • 5.3 微调策略
        • 两阶段微调
        • 多任务微调
        • 使用额外的适配模块进行微调
        • 其他
  • 06 一些PTMs的资源
  • 07应用
    • 7.1一般评估基准
    • 7.2问答
    • 7.3情感分析
    • 7.4命名实体识别
    • 7.5机器翻译
    • 7.6总结
    • 7.7对抗攻击与防御
  • 08 未来方向
        • (1)PTM的上限
        • (2)PTM的体系结构
        • (3)面向任务的预训练和模型压缩
        • (4)超越微调的知识转移
        • (5)PTM的可解释性和可靠性
  • 09结论

01 引言

多种神经网络都被应用在 NLP 任务中,比如 CNN、RNN、GNN 和 attention 机制等。
预训练模型(Pre-trained Models, PTMs)
文章内容:

1.全面审查。我们对NLP的PTM进行了全面的回顾,包括背景知识,模型架构,预培训任务,各种扩展,改编方法和应用。 2.新的分类法。我们提出了用于NLP的PTM分类法,该分类法从四个不同的角度对现有PTM进行了分类:1)表示类型,2)模型体系结构; 3)预训练任务的类型; 4)特定类型场景的扩展。 3.丰富的资源。我们收集有关PTM的大量资源,包括PTM的开源实现,可视化工具,语料库和论文清单。 4.未来方向。我们讨论并分析现有PTM的局限性。另外,我们建议可能的未来研究方向。其余的调查安排如下。第2节概述了PTM的背景概念和常用符号。第3节简要概述了PTM,并阐明了PTM的分类。第4节提供了PTM的扩展。第5节讨论如何将PTM的知识转移到下游任务。第6节提供了有关PTM的相关资源。第7节介绍了跨各种NLP任务的应用程序集合。第8节讨论了当前的挑战并提出了未来的方向。第9节总结了论文。

02 背景

2.1 语言表示学习

一个好的表示应当描绘语言的内在规则比如词语含义、句法结构、语义角色甚至语用。
有两种 embedding(词嵌入)方式:上下文嵌入和非上下文嵌入,两者的区别在于词的 embedding 是否根据词出现的上下文动态地改变。

  • 非上下文嵌入
    局限:1、一个词通过这种方法获得的词嵌入总是静态且与上下文无关的,无法处理多义词;2、难以解决不在词汇表中的词(针对这个问题,很多 NLP 任务提出了字符级或词根级的词表示,如 CharCNN、FastText、Byte-Pair Encoding (BPE))。
  • 上下文嵌入
    为解决多义性和上下文相关的问题,将词在不同上下文的语义做区分。通过对词(词根)的 token 加一层 Neural Contextual Encoder(神经上下文编码器)得到词的上下文嵌入。

2.2 神经上下文编码器

大部分的神经上下文编码器都可以被分为三类:卷积模型、序列模型、基于图的模型。

在这里插入图片描述

实际操作中往往直接通过一个全连接图来建模并让模型自己学习结构(一般通过自注意力机制)。一个典型的成功运用就是 Transformer。

分析:卷积模型和序列模型都很难解决词之间的长程依赖问题,而 Transformer 虽然能更好地描述词之间的深层联系,却往往需要非常大的语料来训练,且容易在中等规模的数据集上过拟合。

2.3 为什么要预训练?

预训练的优点可以总结为以下三点:

  1. 在大规模语料上通过预训练学习通用语言表示对下游任务很有帮助;
  2. 预训练提供了更好的模型初始化参数,使得在目标任务上有更好的泛化性能和更快的收敛速度;
  3. 预训练是一种有效的正则化方法,能够避免在小数据集上过拟合。

2.4 NLP的预训练任务的简单历史

2.4.1 第一代预训练:预训练词嵌入

静态、浅层的模型训练。
例如:
word2vec(CBOW/Skip-Gram) [123]
paragraph vector [94], Skip-thought vectors [87], Context2Vec [121]

2.4.2 第二代预训练:预训练上下文编码器

神经编码器的输出向量也称为上下文词嵌入,因为它们根据其上下文表示单词语义。
例如:
(Bi-)LSTM、
ELMo\ ULMFiT
OpenAI GPT/BERT

03 PTMs概述

PTMs 的主要区别在于上下文编码器的使用、预训练任务和目标。上下文编码器已在 2.2 中做了叙述,接下来对预训练任务进行分析,并提出一种 PTMs 分类方法。

3.1 预训练任务

PTMs 按照预训练任务类型可以被分为两类:

  • 有监督学习 Supervised learning (SL)
  • 无监督学习 Unsupervised learning (UL)
  • 自监督学习 Self-Supervised learning (SSL)

有监督学习的预训练任务主要有机器翻译 (MT),典型的模型是 CoVe。而下文进一步根据实现思路将自监督/无监督任务分为两类,一是基于上下文的 (LM, DAE, PLM),二是基于对比的 (CTL)。

下文主要介绍自我监督学习。表1总结了他们的损失函数。
在这里插入图片描述

3.1.1 语言模型 (LM)

NLP 中最常见的无监督任务,LM 一般指自回归 LM (auto-regressive LM) 或者单向 LM (unidirectional LM),通过最大似然估计 (MLE) 训练计算一个句子出现的概率。

单向 LM 的缺点则是只能编码一个词左侧的文本和其自身,而更好的上下文应该编码左右两侧的文本。针对这一缺点,解决方案是双向 LM (BiLM),即一个从左到右和一个从右到左的模型的组合。

3.1.2 掩码语言建模 Masked Language Modeling (MLM)

MLM首先从输入语句中掩盖一些标记,然后训练模型以预测其余标记所掩盖的标记。但是,这种预训练方法将在预训练阶段和微调阶段之间产生不匹配,因为在微调阶段不会出现掩码令牌。为了解决这个问题,Devlin等人从经验上讲。在80%的时间内使用特殊的[MASK]令牌,在10%的时间内使用随机令牌,在10%的时间内使用原始令牌进行屏蔽。

Sequence-to-Sequence MLM (Seq2Seq MLM)

MLM通常作为分类问题解决。我们将屏蔽的序列馈送到神经编码器,该编码器的输出矢量进一步馈入softmax分类器,以预测屏蔽的令牌。或者,我们可以为MLM使用编码器-解码器(也称为序列到序列)体系结构,在该体系结构中,编码器被提供了屏蔽序列,而解码器以自回归的方式顺序生成屏蔽令牌。我们将这种MLM称为序列对序列MLM(Seq2Seq MLM),在 MASS [154]和 T5 [138]中使用。 Seq2Seq MLM可以使Seq2Seq样式的下游任务受益,例如问题回答,摘要和机器翻译。

增强的屏蔽语言建模 Enhanced Masked Language Modeling (E-MLM)

同时,有许多研究提出了不同的MLM增强版本来进一步改进BERT。
RoBERTa [111]代替了静态屏蔽,通过动态屏蔽改进了BERT。
UniLM [38,8]在三种类型的语言建模任务上扩展了掩码预测的任务:单向,双向和序列到序列的预测。
XLM [27]在称为翻译语言建模(TLM)的平行双语句子对的串联上执行MLM。

Span- BERT [76]用随机连续词掩蔽和跨度边界目标(SBO)代替了MLM,以将结构信息集成到预训练中,这要求系统根据跨度边界来预测掩蔽的跨度。StructBERT [187]引入了跨度顺序恢复任务以进一步整合语言结构。而 ERINE (Baidu) 则是选择 MASK 实体和短语,E-BERT 和 ERINE (THU) 则是利用了实体 embedding 方法,这三者都是借助了外部知识来丰富 MLM。

丰富MLM的另一种方法是整合外部知识(请参阅第4.1节)。

3.1.3 排列语言模型(PLM)

针对 MLM 中使用 MASK 导致的预训练与微调过程的不一致,Permuted Language Modeling (PLM) 对于一个给定序列,生成其所有可能排列进行采样作为训练的目标。值得注意的是,PLM 并不改变原始文本的位置,而是重新定义 token 预测的顺序。
实际上,由于收敛速度较慢,仅预测了置换序列中的最后几个标记。 并针对目标感知表示引入了特殊的双流自我注意 two-stream self-attention 。

3.1.4 去噪声自编码器 (Denoising Autoencoder, DAE)

这里将原文中 Masked Language Modeling (MLM) 与 DAE 合并为一个部分,因为一般将 BERT 中提出的 MLM 看作是基于 DAE 的思路实现的。

DAE 的目的是通过向输入文本中添加噪声,利用含噪声的样本去重构不含噪声的输入。主要有五个实现方式:挡住 (MASK) token、删除 token、填充 token、句子排列、文本轮换。

(1)token屏蔽:从输入中随机采样令牌,并将其替换为[MASK]元素。
(2)token删除:从输入中随机删除令牌。与令牌屏蔽不同,该模型需要确定缺失输入的位置。
(3)文本填充:与SpanBERT一样,许多文本跨度也被采样并替换为单个[MASK]标记。每个跨度长度均来自泊松分布( λ \lambda λ = 3)。该模型需要预测跨度中缺少多少个token。
(4)句子置换:根据句号将文档分为多个句子,并以随机顺序关闭这些句子。
(5)文件轮换:随机地均匀选择一个token并旋转文件,以使其从该token开始。该模型需要标识文档的实际开始位置。

3.1.5 对比学习(CTL)

在这里插入图片描述

CTL (Contrastive Learning) 基于一种“learning by comparison”的思路,假设某些观测文本对比随机采样文本在语义上更相似,通过构建正样本和负样本并度量距离来实现学习。CTL 通常比 LM 具有更少的计算复杂度,也因此成为一个值得选择的 PTMs 训练标准。

例子:
Collobert et al. [26] 提出了成对排序任务,以区分真假短语。 该模型需要预测合法短语的得分要比通过用随机单词替换其中心单词而获得的不正确短语更高的分数。
Mnih和Kavukcuoglu [125]使用噪声对比估计(Noise-Contrastive Estimation,NCE)[54]有效地训练了词的嵌入,该算法训练了一个二元分类器来区分真实样本和假样本。

Deep InfoMax (DIM)

DIM 最初是在 CV 领域提出的用于最大化图像全局特征与局部特征之间的互信息(Mutual Information)的方法。

InfoWord 将 DIM 引入到语义表达学习中,提出用 DIM objective 以最大化句子的全局表示和一个 N-gram 的具备表示之间的互信息。

在这里插入图片描述

Replaced Token Detection (RTD)

RTD 和 NCE 大体相同,根据上下文来预测 token 是否替换。

CBOW 的 negetive sampling 就可以看作是一个 RTD 的简单版本,其中采样是根据词汇表中的分布进行采样。

ELECTRA 基于 RTD 提出了一种新的 generator-discriminator 框架。首先用 MLM 任务训练 generator,再用 generator 的权重初始化 discriminator,再用判别任务(判别哪些 token 被 generator 替换过)训练 discriminator。

最终在下游任务只需要对 discriminator 进行 fine-tuning。RTD 也是一种很好的解决 MLM 导致的不一致问题的方法。

WKLM[195] 则是通过在实体层面(entity-level)进行词替换,替换为同一个实体类型的实体名。

Next Sentence Prediction (NSP)

NSP 训练模型区分两个输入语句是否为训练语料中连续的片段,在选择预训练句对时,第二个句子 50% 是第一个句子实际的连续片段,50% 是语料中的随机段落。NSP 能够教会模型理解两个输入句子之间的联系,从而使得如 QA 和 NLI 这种对此类信息敏感的下游任务受益。

然而,近来 NSP 的必要性也遭到了质疑,XLNet 的作者发现不用 NSP loss 的单句训练优于使用 NSP 的句对训练。RoBERTa 的作者进一步分析表明:在对单个文本中的文本块训练时,去除 NSP 会在下游任务稍微提高性能。

Sentence Order Prediction (SOP)

NSP 结合了主题预测相关性预测,而因为主题预测更容易,模型将更依赖于主题预测。为了更好地模拟句子连贯性,ALBERT [91]用句子顺序预测(SOP)损失代替了NSP损失,SOP 使用一个文档中的两个连续片段作为正样本,将这两个片段交换顺序作为负样本。

采用了 SOP 的 ALBERT 在多项下游任务中结果都优于 BERT。 StructBERT [187]和BERTje [32]也使用 SOP 作为自监督学习任务。

3.1.6其他

除上述任务外,还有许多其他辅助的预培训任务,它们旨在吸收事实知识(请参阅第4.1节),改进跨语言任务(请参阅第4.2节),多模式应用程序(请参阅第4.3节)。 或其他特定任务(请参阅第4.4节)。

3.2 PTMs分类

在这里插入图片描述

1.表示类型:根据用于下游任务的表示,我们可以将PTM分为非上下文模型和上下文模型。
2.体系结构:PTM使用的骨干网,包括LSTM,Transformer编码器,Transformer解码器和完整的Transformer体系结构。 “ Transformer编码器”和“ Transformer解码器”的区别在于,解码器部分使用带有三角矩阵的蒙板自我注意来防止token进入其未来(右边)位置。
3.预训练任务类型:已经在第3.1节中讨论了它们。
4.扩展:针对各种情况而设计的PTM,包括知识丰富的PTM,多语言或特定语言的PTM,多模型PTM,特定领域的PTM和压缩的PTM。我们将在第4节中特别介绍这些扩展。

在这里插入图片描述

图3显示了分类法以及一些相应的代表性PTM。此外,表2更详细地区分了一些代表性的PTM。

3.3 模型分析

大量文献分析了存储在预训练的非上下文和上下文嵌入中的语言知识和世界知识。

3.3.1 非上下文嵌入

首先探究静态词嵌入,以获取各种知识。 Mikolov等[124]发现,由神经网络语言模型学习的单词表示能够捕获语言的语言规律性,并且单词之间的关系可以通过特定于关系的向量来表征。Rubinstein等人 [145]发现,分布词表示法擅长预测生物分类属性(例如,狗是动物),但无法学习定语属性(例如,天鹅是白色的)。同样,Gupta等[53] 表明word2vec嵌入隐式编码实体的引用属性。分布式单词向量与简单的监督模型一起可以学习以合理的准确度预测实体的数字和二进制属性。

3.3.2 上下文嵌入

大量研究已经探究并归纳了上下文嵌入中的不同类型的知识。通常,知识有两种类型:语言知识和世界知识。

语言知识

Tenney等[174],刘等[105]发现BERT在许多句法任务上表现出色,例如词性标记和成分标记。但是,与简单的语法任务相比,BERT在语义和细粒度的语法任务方面还不够出色。
此外,Tenney等。 [173]分析了BERT层在不同任务中的作用,发现BERT以与NLP pipelines中相似的顺序解决任务。此外,主语-动词一致性[49]和语义角色[43]的知识也被证实存在于BERT中。此外,休伊特和曼宁[58],贾瓦哈尔等[71],Kim等[84]提出了几种从BERT提取dependency trees and constituency trees 的方法,证明了BERT编码语法结构的能力。 Reif等[142]探索了BERT中内部表示的几何,并找到了一些证据:1)语言特征似乎在分离的语义和句法子空间中表示; 2)注意力矩阵包含语法表示; 3)BERT很好地区分了词义。

世界知识

探索世界知识的一种直接方法是使用“填空”的完形填空语句查询BERT,例如“ Dante出生于[MASK]”。 Petroni等 [132]通过从几个知识源手动创建 single-token 的完形填空语句(查询)来构造LAMA(语言模型分析)任务。他们的实验表明,BERT与传统信息提取方法比,包含世界知识。由于LAMA中查询生成过程的简单性,Jiang等人[73]认为,LAMA只是衡量语言模型所知的下限,并提出了更高级的方法来生成更有效的查询。尽管有LAMA令人惊讶的发现,但随后的工作也对其提出质疑[135,81]。同样,一些研究从BERT得出了下游任务的关系知识[15]和常识知识[31]。

04 PTM的4个扩展

4.1 引入知识的PTMs

通常 PTMs 都是用大量语料训练通用的语言表示,而将外部的领域知识引入到 PTMs 被证明式有效的。自 BERT 以来,就有很多预训练任务用以将外部知识纳入 PTMs,如:

LIBERT:linguistically-informed BERT ,通过附加语言约束任务纳入了语言知识。(!!!)

SentiLR:通过对每个单词添加情感极性,将 MLM 拓展至 Label-Aware MLM (LA-MLM),在多个情感分类任务达到 SOTA。

SenseBERT:不仅能预测被 mask 的 token,还能预测 WordNet 中的 supersense。

ERINE (THU):将知识图谱中预训练的实体嵌入与文本中相应的实体提及相结合,以增强文本表示。(!!!)

KnowBERT:端到端将带实体连接模型与实体表示集成。(!!!)

KEPLER:将知识嵌入和语言模型对象联合。(!!!)

K-BERT:不同于以上几个模型通过实体嵌入引入知识图谱中的结构化信息,K-BERT 通过直接将知识图谱中相关三元组引入句子,获得一个 BERT 的拓展的树形输入。

K-Adapter:针对不同预训练任务独立训练不同的适配器以引入多种知识,以解决上述模型在注入多种知识出现的遗忘问题。

关等[51]采用常识知识库,ConceptNet和ATOMIC来增强GPT-2的故事生成能力。为了进一步捕获合理故事中句子之间的因果关系和时间依存关系,采用了多任务学习,该学习结合了区分性目标,可以在微调过程中区分真假故事。(!!!)

KT-NET:杨等[200]提出了一种知识-文本融合模型来获取相关的语言和事实知识,以进行机器阅读理解。采用一种注意机制从(knowledge bases)KB中自适应地选择所需的知识,然后将所选的知识与BERT融合以实现上下文和知识感知的预测。(!!!)

洛根四世等[113]和Hayashi等[56]将语言模型分别扩展为知识图语言模型knowledge graph language model(KGLM)和潜在关系语言模型latent relation language model(LRLM),这两种模型都允许以知识图为条件的预测。这些新颖的以KG为条件的语言模型显示了进行预训练的潜力。(!!!)

4.2 多语言与特定语言PTMs

4.2.1 Multilingual PTMs

学习多语言文本表示对于跨语言 NLP 任务是很重要的。

跨语言理解 Cross-Lingual Language Understanding (XLU)

早期的大多数工作都集中在学习多语言单词嵌入[44、117、152],该语言表示在单个语义空间中来自多种语言的文本。但是,这些方法通常需要语言之间的(弱)对齐。近期有如下几个多语言 PTMs:

Multilingual-BERT:M-BERT,在 Wikipedia 上 104 种种语言的文本上进行 MLM 训练,每个训练样本都是单语言的,也没有专门设计跨语言目标,但即便如此,M-BERT 在跨语言任务上表现还是非常好。

XLM:通过结合跨语言任务 TLM (translation language modeling),提升了 M-BERT 的性能。

Unicoder:提出三个跨语言预训练任务:1) cross-lingual word recovery; 2) cross-lingual paraphrase classification; 3) cross-lingual masked language model。

XLM-RoBERTa(XLM-R)[28]是一种按比例缩放的多语言编码器,它以大量增加的训练数据进行了预训练,其预训练任务仅是单语言的MLM。 XLM-R在包括XNLI,MLQA和NER在内的多个跨语言基准测试中获得了最新的成果。

跨语言生成(XLG)

多语言生成是一种从输入语言生成具有不同语言的文本的任务,例如机器翻译和跨语言抽象摘要。与用于多语言分类的PTM不同,用于多语言生成的PTM通常需要共同预训练编码器和解码器,而不是仅仅关注编码器。

MASS[154]在多种语言上使用单语Seq2Seq MLM预先训练了Seq2Seq模型,并为无人监督的 NMT 取得了重大改进。

XNLG [19]为跨语言自然语言生成执行两阶段的预训练。第一阶段通过单语言MLM和跨语言MLM(XMLM)任务对编码器进行预训练。第二阶段通过使用单语言DAE和跨语言自动编码(XAE)任务对解码器进行预训练,同时保持编码器固定。实验表明XNLG在跨语言问题生成和跨语言抽象摘要方面的优势。

mBART [112]是BART [98]的多语言扩展,它在25种语言的大规模单语言语料库上与Seq2Seq去噪自动编码器(DAE)任务一起对编码器和解码器进行预训练。实验表明,mBART可以在各种机器翻译(MT)任务中显着提高性能。

4.2.2特定于语言的PTM

尽管多语言PTM在多种语言上表现良好,但最近的工作表明,使用单一语言训练的PTM明显优于多语言结果[119、93、180]。对于没有明确单词边界的中文,建模较大的粒度[29,36,191]和多粒度[164,165]词表示法已显示出巨大的成功。

Kuratov和Arkhipov [90]使用迁移学习技术使多语言PTM适应俄语的单语言PTM。

另外,一些单语言的PTM已针对不同的语言发布,例如CamemBERT [119]和FlauBERT [93](法语),FinBERT [180](芬兰语),BERTje [32]和RobBERT [34](荷兰语),AraBERT [4]阿拉伯语。

4.3多模态PTM

随 PTMs 在 NLP 领域的广泛应用,一些多模态 PTMs 也被设计出来,在一些语音、视频、图像数据集上进行了预训练,比如:

  • 视频-语言:VideoBERT[159]、CBT[158]、Uni-ViLM[116]
  • 图像-语言:用于 visual question answering (VQA) and visual commonsense reasoning (VCR),如 ViLBERT[114]、LXMERT[169]、VisualBERT[100]、B2T2、VLBERT、 Unicoder-VL、UNITER
  • 音频-文本:用于端到端 Speech Question Answering (SQA) 任务,如 SpeechBERT

4.3.1 视频-文本PTM

VideoBERT [159]和CBT [158]是联合的视频和文本模型。为了获得用于预训练的视觉和语言标记的序列,分别通过基于CNN的编码器和现成的语音识别技术对视频进行预处理。单个Transformer编码器在处理后的数据上进行训练,以学习视频字幕等下游任务的视觉语言表示。

此外,Uni-ViLM [116]提出引入生成任务,以进一步预训练在下游任务中使用的解码器。

4.3.2图像-文本PTM

旨在适应诸如视觉问题解答(VQA)和视觉常识推理(VCR)之类的下游任务。几个提出的模型采用两个单独的编码器分别用于图像和文本表示,例如ViLBERT [114]和LXMERT [169]。

4.4特定领域和特定任务的PTM

大多数 PTMs 都是在 Wikipedia 这样的通用领域语料库上训练的,这就限制了他们在特定领域内的表现。

近期有一些用专业领域语料训练的 PTMs,例如BioBERT [96]用于生物医学文本,SciBERT [11]用于科学文本,ClinicalBERT [68,3]用于临床文本。除了对特定领域的PTM进行预训练之外,一些工作还尝试使可用的预训练模型适应目标应用,例如生物医学实体标准化[72],专利分类[95],进度说明分类和关键字提取[170]。还提出了一些面向任务的预训练任务,例如用于情感分析的 在SentiLR [82]上的的Label-Aware MLM ,用于文本摘要的Gap句子生成(GSG)[205]和用于流离失所检测的嘈杂单词检测[186]。

4.5模型压缩

有五种压缩PTM的方法[45]:
(1)模型修剪,删除不重要的参数,
(2)权重量化[39],使用占位更少(低精度)的参数
(3)参数共享(parameter sharing):在相似模型单元之间共享参数
(4)知识蒸馏[60],它训练了一个较小的学生模型,该模型从原始模型的中间输出中学习,并且
(5)模块替换,用更紧凑的替代品替换了原始PTM的模块。

表3比较了一些代表性的压缩PTM。

在这里插入图片描述

05 如何将PTMs应用至下游任务

5.1 迁移学习

5.2 如何迁移

考虑以下三个问题:

5.2.1选择适当的预训练任务,模型架构和语料库

5.2.2选择适当的层

H ( l ) ( 1 < = l < = L ) H^{(l)}(1<=l<=L) H(l)(1<=l<=L)表示预训练的第l层,g(.)表示目标任务的特定模型。
有三种方式选择表示:
a)Embedding Only。一种方法是仅选择预训练的静态嵌入,而模型的其余部分仍需要从头开始进行训练以完成新的目标任务。如 word2vec 和 Glove;
他们无法捕获可能更有用的高级信息。词嵌入仅在捕获词的语义上有用,但是我们还需要了解词义之类的高级概念。
b)顶层。最简单有效的方法是将顶层的表示形式馈送到特定于任务的模型 g ( H ( L ) ) g(H(L)) g(H(L))中。如BERT。
c)所有层。自动选择最佳层,例如ELMo [129]:
r t = γ ∑ l = 1 L α l h t ( l ) r_t = \gamma \sum_{l=1}^L \alpha_l h_t^{(l)} rt?=γl=1L?αl?ht(l)?
其中 a l a_l al?是第l层的softmax归一化权重,而γ是标度,用于缩放通过预训练模型输出的矢量。mixup representation 被输入到特定于任务的模型 g ( r t ) g(r_t) g(rt?)中。

5.2.3调整还是不调整?

目前两种迁移方式:

  1. 特征提取(冻结了预训练参数)
  2. 微调(未冻结和微调了预训练参数)
    在特征提取方式中,将经过预训练的模型视为现成的特征提取器。此外,重要的是要公开内部层,因为它们通常会编码最易迁移的表示形式[131]。
    尽管这两种方式都可以极大地使大多数NLP任务受益,但是特征提取方式却需要更复杂的特定于任务的体系结构。因此,对于许多不同的下游任务而言,微调方法通常比特征提取方法更为通用和方便。
    表4给出了适应性PTM的一些常见组合。
    在这里插入图片描述

5.3 微调策略

自ULMFit和BERT以来,微调已成为PTM的主要适应方法。但是,微调的过程通常很脆弱:即使使用相同的超参数值,不同的随机种子也可能导致结果大不相同[37]。
除了标准的微调之外,还有一些有用的微调策略。

两阶段微调

第一阶段,在一个中间任务/语料上进行迁移,第二阶段,迁移到目标任务。
Story ending predic- tion by transferable bert: TransBERT
How to ?ne-tune BERT for text classi?cation?
Sentence encoders on STILTs: Supplementary training on intermediate labeled-data tasks
Convolutional sequence to sequence learning

多任务微调

多任务和预训练互为补充。
Multi-task deep neural networks for natural language understanding

使用额外的适配模块进行微调

原始参数固定,在 PTMs 里接入一些 fine-tunable adaptation modules
BERT and PALs: Projected attention layers for e?cient adaptation in multi-task learning
Parameter-e?cient transfer learning for NLP

其他

其他:逐层解冻而非连续 fine-tune 所有层;
Improving BERT ?ne-tuning via self-ensemble and self-distillation
Universal language model ?ne-tuning for text classi?cation: gradual unfreezing
An embarrassingly simple approach for transfer learning from pretrained language models: sequential unfreezing

06 一些PTMs的资源

一些开源的应用:
在这里插入图片描述
word2vec:
https://github.com/tmikolov/word2vec

GloVe:
https://nlp.stanford.edu/projects/glove

FastText:
https://github.com/facebookresearch/fastText

Transformers:
https://github.com/huggingface/transformers

Fairseq:
https://github.com/pytorch/fairseq

Flair:
https://github.com/flairNLP/flair

AllenNLP:
https://github.com/allenai/allennlp

FastNLP:
https://github.com/fastnlp/fastNLP

Chinese-BERT:
https://github.com/ymcui/Chinese-BERT-wwm

BERT:
https://github.com/google-research/bert

RoBERTa:
https://github.com/pytorch/fairseq/tree/master/examples/roberta

XLNet:
https://github.com/zihangdai/xlnet/

ALBERT:
https://github.com/google-research/ALBERT

T5:
https://github.com/google-research/text-to-text-transfer-transformer

ERNIE (Baidu):
https://github.com/PaddlePaddle/ERNIE

相关资源:

论文列表:
https://github.com/thunlp/PLMpapers
https://github.com/tomohideshibata/BERT-related-papers
https://github.com/cedrickchee/awesome-bert-nlp

BERT Lang Street(收集 BERT 在不同数据集和任务上的表现):
https://bertlang.unibocconi.it/

BERTViz(应用 transformer 的模型的注意力可视化):
https://github.com/jessevig/bertviz

07应用

如何以可比较的指标评估PTM。因此,有必要进行大规模基准测试。

7.1一般评估基准

GLUE (The General Language Understanding Evaluation) 标准是一个集合了 9 个自然语言理解任务的标准。

其中包括:单个句子分类任务(CoLA和SST-2)、文本对分类任务(MNLI, RTE, WNLI, QQP, MRPC)、文本相似度任务(STSB)、相关性排行任务(QNLI)。GLUE 标准能够能够很好地评估模型的鲁棒性和通用性。GLUE不提供测试集的标签,而是设置evaluation server。

而近期 NLP 的快速发展促使了新的标准 SuperGLUE 的提出,相比 GLUE,SuperGLUE 有更多富有挑战性且多种多样的任务,如指代消解和 QA。

最新的corresponding leaderboard在
4) https://gluebenchmark.com/
5) https://super.gluebenchmark.com/

7.2问答

问答系统(Question answering, QA)或是狭义概念的机器阅读理解(machine reading comprehension, MRC)也是 NLP 的重要任务。

从易到难,有三种类型的 QA 任务:单回合提取 QA (single-round extractive QA, SQuAD)、多回合生成QA (multi-round generative QA, CoQA)、多跳问答 (multi-hop QA, HotpotQA)。

针对提取 QA,有通过 PTM 初始化 encoder 的回溯阅读架构(retrospective reader architecture);针对多回合生成 QA,有“PTM+Adversarial Training+Rationale Tagging+Knowledge Distillation”架构;针对多跳 QA,有“Select, Answer, and Explain” (SAE) 系统。

最新的模型在:
6) https://rajpurkar.github.io/SQuAD-explorer/
7) https://stanfordnlp.github.io/coqa/
8) https://hotpotqa.github.io/

7.3情感分析

BERT 通过在广泛使用的情感分析数据集 SST-2 上进行微调后,表现超过了先前的 SOTA 模型。而后又有很多将 BERT 进行调整以应用在 aspect 级的情感分析(ABSA)任务上。

(原文中有很多参考文献)

7.4命名实体识别

命名实体识别(Named Entity Recognition, NER)也是知识提取的一个基础任务,在很多 NLP 任务上都有重要作用。
由于ELMo和BERT在NLP中发挥了作用,因此关于NER的预训练模型还有很多工作要做。
(原文中有很多参考文献)

7.5机器翻译

机器翻译(Machine Translation, MT)也是 NLP 的一项重要任务。几乎所有 MT 模型都使用了 encoder-decoder 框架,该框架首先通过编码器将输入令牌编码为隐藏表示,然后以目标语言从解码器解码输出令牌。

而近期随预训练模型的发展,也有不少尝试将 BERT 之类的预训练模型用于初始化 encoder,取得了一定成效。

7.6总结

从长文本中总结出短文本也是近期 NLP 的热点。也有很多尝试将 PTM 应用在总结文本任务上,如将 BERT 通过插入 [CLS] token 来学习句子表示的模型 BERTSUM。

7.7对抗攻击与防御

深入的神经模型容易受到对抗性示例的攻击,这些示例可能会误导模型以产生特定的错误预测,并产生来自原始输入的不可察觉的扰动。在CV中,对抗性攻击和防御已得到广泛研究。然而,由于语言的离散性,对于文本来说仍然是挑战。为文本生成对抗性样本需要具备以下方面:
(1)人类判断力无法感知,但会误导神经模型;
(2)语法流利,语义上与原始输入一致。

08 未来方向

尽管PTM已证明可以胜任各种NLP任务,但由于语言的复杂性,仍然存在挑战。在本节中,我们建议PTM的五个未来方向。

(1)PTM的上限

随 BERT 的出现,我们可以发现,很多模型都可以通过更长的训练步长不在和更大的语料来提升性能,比如去年的 T5 使用的 C4 数据集。而我们也可以通过加深模型来提升性能,比如 Turing-NLG 使用了 72 个 transformer 层。

PTMs 的共同目标都是学习语言的本质通用知识(或者说是世界的知识),然而,随着模型的不断加深,语料的不断增大,训练模型的花销也越来越大。一种更可行的解决方案是设计更有效的模型架构、自监督预训练任务、优化器和软硬件方面的技巧等。ELECTRA [24]就是这个方向上一个很好的尝试。

(2)PTM的体系结构

Transformer 是 PTMs 的一个高效的框架,但 Transformer 的局限在于计算复杂度。由于 GPU 显存大小的限制,目前大多数 PTM 无法处理序列长度超过 512 个 token 的序列。打破这一限制需要改进 Transformer 的结构设计,如 Transformer-XL。设计深层神经网络结构是很有挑战性的任务,或许使用如神经结构搜索 (NAS) 这类自动化的方案。

(3)面向任务的预训练和模型压缩

在实践中,不同的目标任务需要 PTMs 的不同功能。PTMs 和下游任务的差异通常在于模型架构与数据分发。更大的差异可能会使得 PTMs 的使用收益更小,比如 text generation 和 text matching 的任务就有很大差异
大型 PTMs 应用到实际场景时面临的低容量设备和低延迟应用的要求:为下游任务精心设计特定的模型结构与预训练任务,或者直接从现有的 PTMs 中提取部分与任务有关的知识
使用模型蒸馏技术对现有的 PTMs 进行教育,来完成目标任务。

与其从头训练任务导向的PTM,不如通过模型压缩等技术将它们与现有的通用PTM一起教(见4.5节)。尽管在CV中对CNN的模型压缩进行了广泛的研究[18],但对NLP的PTM压缩只是开始。transformer 的完全连接结构也使模型压缩更具挑战性。

(4)超越微调的知识转移

Fine-tuning 是目前将 PTM 的知识迁移至下游任务的主要方法,但参数效率却很低,每个下游任务都有特定的 fine-tuned 参数。

一个可以改进的解决方案是固定 PTMs 的原始参数,并为特定任务添加小型的可微调的适配器,这样就可以在不同的下游任务使用共享的 PTMs。从 PTM‘s 中挖掘知识也可以更灵活,比如:知识提取、知识蒸馏、数据增加、将 PTMs 作为外部知识等等。

(5)PTM的可解释性和可靠性

可解释性:PTMs 的深层非线性结构/Transformer 类结构/语言的复杂性使得解释 PTM 变得更加困难

可靠性:PTMs 在对抗性样本中显得非常脆弱。Adversarial defenses 也是一个非常有前景的方向

09结论

本论文对NLP的PTM进行了全面的概述,包括背景知识,模型架构,预培训任务,各种扩展,改编方法,相关资源和应用程序。基于当前的PTM,从四个不同的角度提出了PTM的新分类法。还建议了PTM的几种未来研究方向。

参考:https://zhuanlan.zhihu.com/p/139015428

  相关解决方案