【论文笔记】NLP 预训练模型综述

2020 年 5 月 14 日 深度学习自然语言处理
Pre-trained Models for Natural Language Processing: A Survey 花了一上午看完的综述,强烈推荐每个 NLPer 都读一读,很长一段时间内都能当做工具书来用(下一个 break-through 来临前)。
这篇作为笔记就记录下一些个人认为的重点,方便日后查阅。(不解释基础概念/模型,适合熟悉 PTMs 的人阅读)
先来说说为啥要用预训练模型:
  1. 在大语料下预训练的模型可以学习到 universal language representations,来帮助下游任务
  2. PTMs 提供了一个更好的初始化模型,可以提高目标任务的效果和加速收敛
  3. PTMs 可以看做是一种正则,防止模型在小数据集上的过拟合
既然 PTMs 有这么大优势,那当然是,用它!用它!用它!
这篇综述从四个方面(Representation Types、Architectures、Pre-training Task Types、Extensions)对现有 PTMs (Pre-trained Models) 进行了系统分类,一幅图来概括全文精华:


Representation Types and Architectures



第一代的 PTMs 是预训练的 word embeddings,像 skip-gram, glove,可以捕捉一定的语义信息,但是它是 context-free(上下文无关)的,不能捕捉上下文 higher-level 的一些特征,像概念、多义性、句法特征、语义角色、指代等。
二代的 PTMs 则是预训练的 contextual encoders,融入了上下文信息,像 CoVe, ELMo, GPT, BERT。现代的 PTMs 通常在更大的语料库上训练,采用更加强大/深的网络结构(如 Transformer),以及新的预训练任务。
论文把 contextual encoders 分为了 Sequence Models 和 Graph-based models 两大类:

有代表性的 PTMs 及其架构:

Pre-training Task Types


预训练任务分为三类:
  1. Supervised learning (SL)
  2. Unsupervised learning (UL)
  3. Self-Supervised learning (SSL) 这一类在传统意义上也是 UL 的一种,不过这里把它们区分了开来,UL 指不用人类标注的有监督的标签,而 SSL 指标签可以自动从训练数据中产生,如 MLM 任务,SSL 的学习过程其实和 SL 一样
一张表总结预训练任务及其对应的损失函数:
LM(Language Modeling)是 NLP 中最常见的无监督任务,通常特指自回归或单向语言建模,BiLM 虽然结合了两个方向的语言模型,但只是两个方向的简单拼接,并不是真正意义上的双向语言模型。MLM(Masked Language Modeling)可以克服传统单向语言模型的缺陷,结合双向的信息,但是 [MASK] 的引入使得预训练和 fine-tune 之间出现 gap,PLM(Permuted Language Modeling)则克服了这个问题,实现了双向语言模型和自回归模型的统一。
DAE(Denoising Autoencoder)接受部分损坏的输入,并以恢复原始输入为目标。与 MLM 不同,DAE 会给输入额外加一些噪声。
CTL(Contrastive Learning) 的原理是在对比中学习,其假设是一些 observed pairs of text 在语义上比随机采样的文本更为接近。CTL 比 LM 计算复杂度更低。
一些补充:
文中 MLM 部分除了普通的 Seq2Seq MLM,还总结了一些 Enhanced MLM (E-MLM):
  • RoBERTa: dynamic masking
  • UniLM: unidirectional, bidirectional, seq2seq prediction
  • XLM: translation language modeling (TLM)
  • Span-BERT: random contiguous words masking, span boundary objective
  • StructBERT: span order recovery task
  • External knowledge….
DAE 中一些破坏文本的方法:
  • Token Masking
  • Token Deletion: 模型需要预测删除的位置
  • Text Infilling:像 SpanBERT,模型预测 mask 的 span 有几个单词
  • Sentence Permutation:把文档分为句子然后随机打乱
  • Document Rotation:选择一个单词然后 rotate 文档,模型预测文档的真实起始位置
CTL 的一些任务:
  • Deep InfoMax (DIM):比较难解释,上图
  • Replaced Token Detection (RTD):e.g., CBOW-NS 中的负样本选择可以看做是简单的 RTD, ELECTRA 利用生成器来选择替代序列中的某些 token, WKLM 替换某些实体为同一实体类型下的其他实体
    Next Sentence Prediction (NSP):两个输入句子是否为训练数据中的连续片段
    Sentence Order Prediction (SOP):两个连续片段作为正样本,而相同的两个连续片段互换顺序作为负样本。ALBERT 首次提出,NSP 同时做了 topic prediction 和 coherence prediction,而 topic prediction 太简单了模型会倾向用主题信息来做最后预测,而 SOP 更加聚焦在 coherence prediction 上



Extentions of PTMs


一些补充:
Knowledge-Enriched,外部知识的融入具体来说大概有下面几类:
  • Linguistic
    • LIBERT 通过额外的 linguistic constraint task 来融入语言学知识
    • SentiLR 引入 token 级别的情感极性,改造 MLM 为 label-aware MLM
    • KnowBERT
  • Semantic
    • SenseBERT 不仅预测 masked token,还预测 token 在 WordNet 对应的 supersenses
  • Commonsense
    • ConceptNet, ATOMIC, 用来提高 GPT-2 在故事生成上的效果
  • Factual
    • ERNIE(THU), KnowBERT, K-BERT, KEPLER
  • Domain-specific
    • K-BERT
  • KG-conditioned language models
    • KGLM, LRLM
模型压缩的几种方法,很好理解
  • Model Pruning:CompressingBERT
  • Weight Quantization: Q-BERT, Q8BERT
  • Parameter Sharing: ALBERT
  • Knowledge Distillation
    • Distillation from soft target probablilites: DistilBERT
    • Distillation from other knowledge: TinyBERT, MobileBERT, MiniLM
    • Distillation to other structures: from transformer to RNN / CNN
  • Model Replacing
    • BERT-of-Theseus
  • Others
    • FastBERT,动态减少计算步骤

Adapting PTMs to Downstream Tasks


迁移学习需要考虑的问题:
  1. 选择合适的预训练任务、模型框架和语料

  2. 选择合适的 layer
    Embedding only; Top layer; All layers (更灵活的方式是像 ELMo 一样自动选择最好的层)

  3. 选择迁移方式(to tune or not to tune)
    Feature extraction: pre-trained parameters are frozen
    Fine-tuning: pre-trained parameters are unfrozen and fine-tuned


Fine-tuning strategies:
  • Two-stage fine-tuning
    • 第一阶段,在一个中间任务/语料上进行迁移,第二阶段,迁移到目标任务
    • Story ending prediction by transferable bert: TransBERT
    • How to fine-tune BERT for text classification?
    • Sentence encoders on STILTs: Supplementary training on intermediate labeled-data tasks
    • Convolutional sequence to sequence learning
  • Multi-task fine-tuning
    • 多任务和预训练互为补充
    • Multi-task deep neural networks for natural language understanding
  • Fine-tuning with extra adaptation modules
    • 原始参数固定,在 PTMs 里接入一些 fine-tunable adaptation modules
    • BERT and PALs: Projected attention layers for efficient adaptation in multi-task learning
    • Parameter-efficient transfer learning for NLP
  • Others
    • Improving BERT fine-tuning via self-ensemble and self-distillation
    • Universal language model fine-tuning for text classification: gradual unfreezing
    • An embarrassingly simple approach for transfer learning from pretrained language models: sequential unfreezing

论文链接戳下方阅读原文


Future Direction


  • Upper Bound of PTMs
    • PTMs 并没有发展到其上限。目前大多数的 PTMs 都可以通过使用更多的步长以及更大的数据集来提升性能,因此一个实际的方向是在现有的软/硬件基础上,去设计更高效的模型结构、自监督预训练任务、优化器和训练技巧,如 ELECTRA
  • Architecture of PTMs
    • Transformer 的主要局限在于其计算复杂度(输入长度的平方)。GPU 显存大小的限制使得多数 PTMs 无法处理超过 512 个 token 的序列长度。打破这一限制需要改进 Transformer 的结构设计,如 Transformer-XL。设计深层神经网络结构是很有挑战性的任务,或许使用如神经结构搜索 (NAS) 这类自动化的方案
  • Task-oriented Pre-training and Model Compression
    • 在实践中,不同的目标任务需要 PTMs 的不同功能。PTMs 和下游任务的差异通常在于模型架构与数据分发。更大的差异可能会使得 PTMs 的使用收益更小,比如 text generation 和 text matching 的任务就有很大差异
    • 大型 PTMs 应用到实际场景时面临的低容量设备和低延迟应用的要求:为下游任务精心设计特定的模型结构与预训练任务,或者直接从现有的 PTMs 中提取部分与任务有关的知识
    • 使用模型蒸馏技术对现有的 PTMs 进行教育,来完成目标任务
  • Knowledge Transfer Beyond Fine-tuning
    • 提高 Fine-tuning 的参数利用效率。之前 fine-tune 中的参数效率很低,要为每个下游任务 fine-tune 各自的参数。一个改进方案是之前提到过的固定 PTMs 的原始参数,并为特定任务添加小的 fine-tunable adaptation modules,这样就可以使用共享的 PTM 来支持多个下游任务
    • 更灵活的从 PTMs 中挖掘知识,如 feature extraction, knowledge distillation, data augmentation, using PTMs as external knowledge
  • Interpretability and Reliability of PTMs
    • 可解释性:PTMs 的深层非线性结构/Transformer 类结构/语言的复杂性使得解释 PTM 变得更加困难
    • 可靠性:PTMs 在对抗性样本中显得非常脆弱。Adversarial defenses 也是一个非常有前景的方向


投稿或交流学习,备注: 昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多: 机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等
记得备注呦


登录查看更多
8

相关内容

在搭建网络模型时,需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当参数训练到比较好的时候就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。
专知会员服务
102+阅读 · 2020年3月12日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
65+阅读 · 2020年1月2日
2019->2020必看的十篇「深度学习领域综述」论文
专知会员服务
269+阅读 · 2020年1月1日
注意力机制模型最新综述
专知会员服务
260+阅读 · 2019年10月20日
一文读懂最强中文NLP预训练模型ERNIE
AINLP
24+阅读 · 2019年10月22日
ERNIE Tutorial(论文笔记 + 实践指南)
AINLP
30+阅读 · 2019年8月28日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
站在BERT肩膀上的NLP新秀们(PART I)
AINLP
30+阅读 · 2019年6月4日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
7+阅读 · 2019年2月27日
自然语言处理中注意力机制综述
Python开发者
11+阅读 · 2019年1月31日
NLP预训练模型大集合
机器学习算法与Python学习
8+阅读 · 2018年12月28日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
本周NLP、CV、机器学习论文精选推荐
PaperWeekly
8+阅读 · 2018年12月21日
基于深度学习的NLP 32页最新进展综述,190篇参考文献
人工智能学家
27+阅读 · 2018年12月4日
Arxiv
29+阅读 · 2020年3月16日
Tutorial on NLP-Inspired Network Embedding
Arxiv
7+阅读 · 2019年10月16日
Arxiv
5+阅读 · 2019年9月25日
Arxiv
6+阅读 · 2019年9月4日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
3+阅读 · 2018年8月27日
VIP会员
相关资讯
一文读懂最强中文NLP预训练模型ERNIE
AINLP
24+阅读 · 2019年10月22日
ERNIE Tutorial(论文笔记 + 实践指南)
AINLP
30+阅读 · 2019年8月28日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
站在BERT肩膀上的NLP新秀们(PART I)
AINLP
30+阅读 · 2019年6月4日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
7+阅读 · 2019年2月27日
自然语言处理中注意力机制综述
Python开发者
11+阅读 · 2019年1月31日
NLP预训练模型大集合
机器学习算法与Python学习
8+阅读 · 2018年12月28日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
本周NLP、CV、机器学习论文精选推荐
PaperWeekly
8+阅读 · 2018年12月21日
基于深度学习的NLP 32页最新进展综述,190篇参考文献
人工智能学家
27+阅读 · 2018年12月4日
相关论文
Arxiv
29+阅读 · 2020年3月16日
Tutorial on NLP-Inspired Network Embedding
Arxiv
7+阅读 · 2019年10月16日
Arxiv
5+阅读 · 2019年9月25日
Arxiv
6+阅读 · 2019年9月4日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
3+阅读 · 2018年8月27日
Top
微信扫码咨询专知VIP会员