当前位置:   article > 正文

【论文精读】BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding

pre-training of deep bidirectional transformers for language understanding


一、文章概览

(一)标题

  • pretraineing:在一个数据集上训练好一个模型,这个模型主要的目的是用在别的任务上
  • deep bidirectional Transformer:更深的双向transformer
    在这里插入图片描述

(二)摘要

  • 与GPT对比,BERT模型旨在通过联合调节所有层中的左右上下文来预训练未标记文本的深度双向表示
  • 与ELMo对比,ELMo使用的是基于RNN的架构,因此ELMo在用到一些下游任务时,需要对架构进行调整,而预训练的 BERT 模型只需一个额外的输出层即可进行微调。

(三)导论

语言模型的预训练主要包括两类:

  • 句子级别任务:目的是建模句子之间的关系
  • 词元级别任务:例如命名实体识别,其中模型需要在标记级产生细粒度的输出

将预训练的语言表示应用到下游任务的两种策略:

  • 基于特征的方法(例如ELMo):使用特定于任务的架构,其中包括预训练的表示作为附加特征,也就是说把学到的特征和输入一起放进去
  • 基于微调的方法(例如GPT):引入最少的特定于任务的参数,通过简单地微调所有预训练参数来对下游任务进行训练

这两种方法在预训练期间共享相同的目标函数,它们使用单​​向语言模型来学习通用语言表示。

BERT:来自 Transformers 的双向编码器表示来改进基于微调的方法

  • 使用“掩码语言模型”(MLM)预训练目标来单向性约束;

MLM:随机屏蔽输入中的一些标记,目标是根据其上下文来预测被屏蔽掉的原始词汇

  • 与从左到右的语言模型预训练不同,MLM 目标使表示能够融合左右上下文,这使我们能够预训练深度双向 Transformer;
  • 除了掩码语言模型之外,我们还使用“下一句预测”任务来联合预训练文本对表示。

(四)相关工作

  1. 无监督的基于特征的方法
  2. 无监督微调方法
  3. 从监督数据迁移学习

二、模型细节

(一)预训练和微调

BERT框架的两个步骤:预训练和微调

  • 预训练期间:模型在不同的预训练任务中使用未标记的数据进行训练
  • 微调期间:模型先用预先训练的参数进行初始化,然后再用下游任务的标记数据进行微调

在这里插入图片描述

(二)模型架构

模型架构 BERT 的模型架构是一个多层双向 Transformer 编码器,基本上是基于 Vaswani 等人描述的原始实现,作者在本文中设置了两个模型参数:

  • BERT B A S E _{BASE} BASE(L= 12,H=768,A=12,总参数=110M)——用于和GPT模型做对比而设计的,其参数量和GPT相当。
  • BERT L A R G E _{LARGE} LARGE(L=24,H=1024,A=16,总参数=340M)—— 扩大了模型规模,其在所有任务上的效果都有所提升。

L:Transformer 块的个数;H:隐藏层大小;A:自注意力头的数量

(三)输入输出

  • 模型输入: 可以是单个句子,也可以是打包在一起的两个句子。“句子”可以是连续文本的任意范围,而不是实际的语言句子。
  • 嵌入方式: 使用具有 30,000 个标记词汇的 WordPiece 嵌入。每个序列的第一个标记始终是一个特殊的分类标记([CLS])。句子对被打包成一个序列。
  • 句子的区分方式:
    • 用一个特殊的标记([SEP])区分一对句子中的两个句子,并且添加一个学习嵌入表明它属于句子 A 还是句子 B
    • 对于一个给定的token,它的输入表示是token嵌入+段落嵌入+位置嵌入

在这里插入图片描述

三、预训练BERT

BERT应用MLM(Masked Language Mode)方法训练词的语义理解能力,用NSP(Next Sentence Prediction) 训练句子之间的理解能力。

(一)任务1:MLM(Masked Language Mode)

MLM: 随机取部分词进行掩码操作(用替换符[MASK]替换词),让BERT预测这些被掩码词。在本文中作者随机掩码了每个序列的15%的tokens。

缺点: 一个句子可能有多个掩码词,假设A和B均为掩码词,预测掩码词B时,由于词A的信息缺失,原有的语义信息缺失,这就导致在微调阶段或推理阶段中,由于输入文本不含[MASK],从而产生由训练与预测数据偏差导致的性能损失。为了缓解这种影响,作者采用三种方式进行词替换:(分别对应完型+纠错+重建三个能力)

  • 80%的用替换符[MASK]进行替换;
  • 10%用随机的词进行替换;
  • 10%的词不做替换。

在这里插入图片描述

(二)任务2: NSP(Next Sentence Prediction)

自然语言推理和QA等许多重要的下游任务都是基于对两个句子之间关系的理解,语言模型不具有直接捕获句子之间的语义联系。

NSP主要用于训练句子之间的理解能力。具体来讲,BERT的输入语句由两个句子构成,其中,50%的概率将语义连贯的两个连续句子作为训练文本,另外50%的概率将完全随机抽取的两个句子作为训练文本,而BERT需要根据输入的两个句子判断它们是否为真实的连续句对。
在这里插入图片描述

(三)预训练数据集

预训练过程很大程度上遵循现有的语言模型预训练文献。对于预训练语料库,我们使用 BooksCorpus(8 亿字)(Zhu et al., 2015)和英语维基百科(2,500M 字)。对于维基百科,我们仅提取文本段落并忽略列表、表格和标题。为了提取长的连续序列,使用文档级语料库而不是打乱的句子级语料库(例如 Billion Word Benchmark(Chelba 等人,2013))至关重要。

四、微调

BERT将微调训练的任务分为四种,分别是句对分类、单句分类、文本问答和单句标注。对于每个任务,只需将特定于任务的输入和输出插入BERT,并对所有端到端参数进行微调。
在这里插入图片描述

参考:
经典论文–《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
BERT 论文逐段精读【论文精读】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/500097
推荐阅读
相关标签
  

闽ICP备14008679号