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的模型架构是一个多层双向变压器编码器(a multi-layer bidirectional Transformer en
coder)
L:层数;H:隐藏层大小;A:self-attention的头数
两种模型大小:
-
B E R T b a s e BERT_{base} BERT