论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

Abstract

作者引入了一种新的语言表示模型BERT,只需增加一个输出层,就可以对预先训练的BERT模型进行微调,无需对特定于任务的架构进行重大修改。

1 Introduction

语言模型预训练已经证明对很多下游NLP任务有帮助,比如:自然语言推理,释义(通过整体分析来预测句子之间的关系);命名实体识别,问答(模型需要在词牌(token)级别产生细粒度输出)

目前有两种应用预训练语言表示的策略:

  • 基于特征的方法。例如,ELMo,用包含预训练表示的基于任务的架构作为额外特征。
  • 基于微调的方法。OpenAI GPT,引入最少的基于任务的参数,并且通过简单微调所有预训练参数对下游任务进行训练。

这两种方法在训练前具有相同的目标函数,即使用单向语言模型学习一般语言表征。

在本文中,我们改进了基于微调的方法,BERT通过使用”掩码语言模型”(MLM)预训练目标减轻了前面提到的单向性约束,不同于从左到右的语言模型预训练MLM目标能够让表示融合左侧和右侧的上下文,这使我们能预训练一个深度双向Transformer。

本文的贡献:

  • 说明了对语言表示来说双向预训练的重要性(之前的模型在pre-training阶段是单向的) BERT使用MLM来启用预训练深度双向表示
  • 预训练表示降低了许多精心设计的特定任务架构的需求 BERT是第一个基于微调的表示模型,其性能超过了许多特定任务架构。

2 Related work

Unsupervised Feature-based Approaches(基于无监督特征的方法)
  • word representation 预训练词嵌入 > 从头开始学习的嵌入 为了预训练词嵌入向量,使用了从左到右语言建模目标 + 在左右上下文中区分正确单词和错误单词的目标
  • coarser granularities(更粗粒度) 为了训练句子表示,之前的工作使用目标对候选的下一个句子进行排序,给出一个之前句子的表示,从左到右生成下一个句子单词。
  • traditional word embedding 从一个left-to-right和一个
    right-to-left语言模型中抽取上下文敏感特征 每个词牌(token)的上下文表示是 从左到右 和 从右到左 表示的串联。 LSTMs与ELMo类似,它们的模型都是基于特征的,都不是深度双向的
Unsupervised Fine-tuning Approaches(基于无监督微调的方法)

该方向的第一批工作只能从未标记文本中预训练词嵌入参数。

最近,生成上下文词牌(token)表示的句子或文本编码器已经从未标记的文本中进行了预训练,并且针对有监督的下游任务进行了微调。优点:几乎没有参数需要从头开始学习。

Transfer Learning from Supervised Data(基于监督数据的迁移学习)

计算机视觉研究表明来自大规模预训练模型的迁移学习的重要性

一个有效方法是微调用ImageNet预训练的模型

3 BERT

BERT框架主要有两步:预训练和微调

  • 预训练:模型在不同预训练任务的未标记数据上进行训练
  • 微调:BERT模型首先用预训练参数进行初始化,并且所有的参数用来自下游任务的标签数据进行微调

每一个下游任务有独立的微调模型,即使它们用相同的预训练参数进行初始化。BERT的一个显著特征就是跨不同任务的统一架构,预训练架构和最终的下游架构之间的差异很小。

Model Architecture(模型架构)

论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

BERT的模型架构是一个多层双向变压器编码器(a multi-layer bidirectional Transformer en
coder)

L:层数;H:隐藏层大小;A:self-attention的头数

两种模型大小:

  • B E R T b a s e BERT_{base}B E R T b a s e ​​ (L=12, H=768, A=12, Total Parameters=110M)
  • B E R T l a r g e BERT_{large}B E R T l a r g e ​​​ (L=24, H=1024, A=16, Total Parameters=340M)

B E R T b a s e BERT_{base}B E R T b a s e ​​ Transformer与OpenAI GPT Transformer比较:

BERT使用双向self-attention;而OpenAI GPT使用受限的self-attention,其中每个词牌(token)只能关注左侧的上下文。

Input/Output Representations(输入输出表示)

为了使BERT处理不同的下游任务,

我们的输入表示(input representation)能够在每个词牌序列(token sequence)中清楚明确地表示单个句子和句子对。

其中,句子是连续文本一段任意范围,而不是一个真实的语言句子;序列指的是输入词牌序列到BERT中,它可能是单个句子,也可能是打包在一起的真实句子。

[CLS]作为每个序列的第一个标记

[SEP]句子间的 分割符(是分割而不是区分)

; 3.1 Pre-training BERT

作者没有使用传统的从左到右或从右到左语言模型去预训练BERT,使用了两个非监督任务来预训练BERT。

Task #1:Masked LM

问题:标准的条件语言模型只能从左到右或从右到左训练,因为双向条件会让每个词间接地”看到自己”

目的:训练一个深层双向表示

解决方法:我们只是随机掩盖一部分输入词牌(input tokens),然后预测那些掩码词牌(masked tokens)

掩码语言模型(masked LM ,MLM),与掩码词牌相对应的最终隐含向量被输送到词汇表上的输出softmax,就像在标准语言模型中一样。随机屏蔽了15%的WordPiece标记,我们只预测被掩码的单词而不是重建整个输入。

问题:尽管获得了一个双向的预训练模型,但真正完全遮盖屏蔽的掩码会造成预训练和微调不匹配

解决方法:随机选择15%的词牌位置用于预测。其中,80%词牌用[MASK]掩盖,10%用随机词牌替代,剩下的10%保持不变。Ti将用于预测具有交叉熵损失的原始令牌

Task #2:Next Sentence Prediction (NSP)

许多重要的下游任务,例如问答和自然语言推理,都基于理解两个句子之间的关系。

问题:语言模型无法捕捉句子之间的关系

解决方法:对二分类的下一句预测任务进行预训练,该任务可以从任意单语语料库中生成

当为每一个预训练实例选择句子A、B时,其中50%是真实的下一个句子,标记为IsNext;而另外50%是随机句子,标记为NotNext。C用于下一句预测任务,它和表征学习目标密切相关。在之前的工作中,只有句子插入能够被传递到下游任务中,但BERT能够将所有参数都以初始化终端任务模型参数。

Pre-training data BooksCorpus(800万字)和英语维基百科(2500万字,只提取文本段落,忽略列表、表和标题)

3.2 Fine-tuning BERT

微调是很简单的(straightforward ),因为Transformer中的self-attention允许BERT通过交换适当的输入输出对许多下游任务建模。

问题:对于包含文本对的应用,一种常见的模式就是在应用双向交叉attention之前独立编码文本对。

解决方法:BERT使用self-attention机制统一这两个阶段,因为编码具有self-attention的连接文本对有效地包括了两个句子之间的双向交叉注意力。

对于每一个任务,我们只需要将特定于任务的输入和输出插入到BERT,并且端到端地微调所有参数。

在输出端,词牌表示被输入到输出层用于词牌级任务,比如 序列标记 或 问题回答 , 而[CLS]表示被输入到输出层中用于分类,比如文本蕴含或情感分析。

4 Experiments

4.1 GLUE

GLUE是多种自然语言理解任务的集合,为了在GLUE上进行微调,像第三节描述的表示输入序列(对单个句子或句子对),使用与第一个输入标记([CLS])相对应的最终隐含向量C作为聚合表示。微调过程中引入的唯一新参数是分类层权值,用C和W计算一个标准分类损失,即l o g ( s o f t m a x ( C W T ) ) log(softmax(CW^T))l o g (s o f t m a x (C W T ))。

设置batch size为32,并对所有GLUE任务进行3个epoch的微调。

论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

结果如上表所示,B E R T b a s e BERT_{base}B E R T b a s e ​和B E R T l a r g e BERT_{large}B E R T l a r g e ​都比所有系统有显著优势。B E R T l a r g e BERT_{large}B E R T l a r g e ​在所有任务中显著优于B E R T b a s e BERT_{base}B E R T b a s e ​​,特别是那些训练数据很少的任务。

; 4.2 SQuAD v1.1

斯坦福问答数据集(SQuAD v1.1)收集了100k条众包的问题/答案。给定一个问题和一篇来自Wikipedia带答案的文章,任务是预测文章中答案文本的范围。

在问答任务中,作者将输入的问题和段落表示为一个单独的打包序列。单词i作为答案范围起始的概率 = 计算Ti与向量s的点积,然后对段落中所有单词进行softmax

论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

相似的公式用于答案范围的结尾。

从位置i到位置j的候选答案范围分值 = S _Ti + E_Tj,其中,最大分值的范围用作预测。

训练目标是正确开始和结束位置的对数似然之和。

4.3 SQuAD v2.0

斯坦福问答数据集2.0扩展数据集1.1,

  • 通过允许在提供的段落中不存在简短的答案来增强问题的实际性。
  • 认为没有答案的问题有一个从start开始到[CLS]结束的答案范围

Original: https://blog.csdn.net/qq_43658933/article/details/123545761
Author: Trigger_2017
Title: 论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/548155/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球