【一起入门NLP】中科院自然语言处理第15课-预训练语言模型:预训练+精调范式(第三范式)

专栏介绍:本栏目为 “2021秋季中国科学院大学胡玥老师的自然语言处理” 课程记录,不仅仅是课程笔记噢~ 如果感兴趣的话,就和我一起入门NLP吧

目录

  • 预训练语言模型概述
    • 预训练语言模型
    • 预训练 - 精调范式
    • 预训练语言模型分类
  • 经典的预训练语言模型
    • TagLM
    • EMLO
    • ULM-FiT
    • GPT
    • BERT
    • RoBERTa
    • XLNet
    • BART

预训练语言模型概述

预训练语言模型

  • 预训练语言模型是采用迁移学习的方法(归纳迁移学习)通过自监督学习从大规模数据中获得与具体任务无关的预训练模型 ,然后用训练好的预训练模型提高下游任务的性能的一种数据增强法。

优势:

  • 利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,它隐式地学习到了通用的语法语义知识;
  • 它可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,尤其对小数据集提升明显,可以减轻NLP对有监督学习的依赖;
  • 预训练模型+微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可。

预训练 - 精调范式

训练过程分为两个阶段:

  • 第一个阶段 Pre-training 阶段:利用大型语料库完成预训练模型非监督学习(更准确地来说应该是自监督学习)
  • 第二阶段 Fine-tuning,针对特定任务在相应数据集中进行监督学习,通过Fine-tuning 技术来适配具体任务。
    【一起入门NLP】中科院自然语言处理第15课-预训练语言模型:预训练+精调范式(第三范式)_第1张图片

预训练语言模型分类

按语言模型分类:

  1. 自回归:根据上文内容预测下一个可能的单词,就是常说的自左向右的语言模型任务,或者反过来根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。例如:GPT

  2. 自编码:通过在输入X中随机Mask掉一部分单词,然后预训练过程的主要任务之一是根据上下文单词来预测这些被Mask掉的单词,这种类型的LM被称为自编码语言模型。例如:Bert

  3. 广义自回归:通过采用特殊的生成顺序根据上下文内容预测下个可能的单词称为广义自回归语言模型。例如XLNet

经典的预训练语言模型

此处插播一个冷知识:在很多关于预训练语言模型的论文或者博文中,你是不是经常看到这些动画人物呢?
在这里插入图片描述
这些动画人物是《芝麻街》中的角色,这是美国的一档少儿教育节目,还有一系列的动画电影等,是美国人家喻户晓的动画人物了。从左到右依次是:ERNIE,ELMo,BART,BERT。有没有发现华点呢?这正是目前流行的四个语言模型的缩写。
在这里插入图片描述
只能说这些科学家们用心良苦。

这一块写得比较简单,等考完考试回来一定详细补充!

TagLM

  • 动机:用语言模型任务的大量未标注语料增强序列标注任务性能。

EMLO

  • 动机:学习深层的上下文词表示知识,并用此来更好的增强各类NLP任务。
  • ELMo可以获得词的**多层(深层)**句语境中的上下文信息

ULM-FiT

  • 动机:提出一种可以让不同的NLP任务之间采用类似CV微调技术的通用归纳迁移学习方法(具体以NLP中常用的语言模型任务和分类任务之间的迁移为例)

GPT

模型结构:

  • GPT 采用了 Transformer 的 Decoder 部分,并且每个子层只有一个 Masked Multi Self-Attention(768 维向量和 12 个 Attention Head)和一个 Feed Forward (无普通transformer解码器层的编码器-解码器注意力子层) ,模型共叠加使用了 12 层的 Decoder。

BERT

动机

  • Transformer比LSTM能学到更丰富的语言结构知识,本文用Transformer的Encoder联合上下文语境训练双向语言模型(相比ELMO),并在输出端附加一个简单的输出层就可方便的将所学的深层语言结构知识迁移到各类语言任务,用以增强各类NLP任务。

Bert 模型结构

  • 使用堆叠的双向Transformer Encoder,在所有层中共同依赖于左右上下文基
    础版是12个Encoder (12层 );高级版24个Encoder (24层 )
    【一起入门NLP】中科院自然语言处理第15课-预训练语言模型:预训练+精调范式(第三范式)_第2张图片
    Masked Language Model, MLM
  • 与训练语言模型类似,将遮住某些单词的句子里作为编码器的输入,在输出端用被掩盖位置的最终隐藏状态预测被掩盖的单词。

BERT主要贡献:

  1. 预训练的有效性:这方面来说 BERT 改变了游戏规则,是因为相比设计复杂巧妙的网络结构,在海量无监督数据上预训练得到的BERT语言表示+少量训练数据微调的简单网络模型的实验结果取得了很大的优势。
  2. 网络深度:基于 DNN 语言模型 (NNLM,CBOW等) 获取词向量的表示已经在NLP领域获得很大成功,而 BERT 预训练网络基于 Transformer 的 Encoder,可以做的很深。
  3. 双向语言模型:在 BERT 之前,ELMo 和 GPT 的主要局限在于标准语言模型是单向的,GPT 使用 Transformer 的 Decoder 结构,只考虑了上文的信息。ELMo 从左往右的语言模型和从右往左的语言模型其实是独立开来训练的,共享embedding,将两个方向的 LSTM 拼接并不能真正表示上下文,其本质仍是单向的,且多层 LSTM难训练。
  4. 预训练模型包含多种知识:BERT不但包含上下文知识,还包含句子顺序关系知识

ELMo , GPT,Bert 对比
【一起入门NLP】中科院自然语言处理第15课-预训练语言模型:预训练+精调范式(第三范式)_第3张图片

RoBERTa

RoBERTa (Robustly Optimized BERT Approach)是实验为基础的论文,通过
对原来BERT模型调优达到效果提升。

XLNet

  • 动机:结合自回归语言模型(AR)和自编码(AE)语言模型各自的优势,提出一种广
    义自回归预训练语言模型,该模型具有以下优点:
  1. 消除BERT的MASK之间独立假设
  2. 取消MASK Token ,从而消除训练与预测不一致的矛盾
  3. 具有上下文关联特征

BART

动机

  • BERT 和 GPT都是单独堆叠Transformer的Encoder和Decoder (BERT和只使用
    Encoder, GPT.只使用Decoder)这种单纯的使用其中某一部分, 就会造成两个鸿沟:

你可能感兴趣的:(#,自然语言处理,自然语言处理,语言模型,第三范式,预训练语言模型)