AI 摘要 · 由英文经 AI 翻译
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
TL;DR
标准语言模型预训练是单向的,但问答任务需要双向上下文。BERT 通过掩码语言建模和下一句预测来预训练深层双向表示,在十一项 NLP 任务上取得了新的最佳结果,其中 BERTLARGE 的 GLUE 得分达到 80.5。
问题
标准语言模型预训练是单向的,而问答等任务需要双向上下文。
出处:§1 · p. 1方法
BERT 通过掩码语言建模和下一句预测来预训练深层双向表示。
出处:§1 · p. 2, §3.1 · p. 4结果
BERT 在十一项 NLP 任务上取得了新的最佳结果,其中 BERTLARGE 的 GLUE 得分达到 80.5。
出处:§1 · p. 2, §4.1 · p. 6启示与局限
掩码预训练与微调之间存在不一致,因为微调时不会出现 [MASK] 词元。
出处:§3.1 · p. 4
Abstract
from arXiv · showhide
We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).
1 引言
BERT 通过掩码语言建模预训练深度双向表示,并通过下一句预测学习文本对表示。它在十一项 NLP 任务上取得最优结果,同时减少了对复杂任务专用架构设计的依赖。
1 引言
- 基于特征的方法将预训练表示融入任务专用架构,而微调仅需少量任务专用组件,即可调整全部预训练参数。ELMo (Peters et al., 2018a) 是基于特征的方法的代表,OpenAI GPT 则是微调方法的代表。两者在预训练时都采用单向语言建模目标。出处:§1 · p. 1
- 单向语言模型限制了预训练架构的选择;作者认为,这对句子级任务并非最优,对词元级问答任务甚至可能有害。问答任务尤其需要双向上下文。出处:§1 · p. 1
- BERT 的掩码语言建模目标利用左右两侧上下文预测被随机掩盖的词元,从而实现深度双向预训练。额外的下一句预测任务用于联合预训练文本对表示。出处:§1 · pp. 1–2
- BERT 不同于 Radford et al. (2018) 的单向预训练,也不同于 Peters et al. (2018a) 对独立训练的各方向语言模型进行的浅层拼接。掩码语言建模使 BERT 能够学习深度双向表示。出处:§1 · p. 2
- BERT 在十一项 NLP 任务上取得最优结果,在句子级和词元级任务上超越了许多任务专用架构。作者指出,BERT 是首个基于微调、在涵盖这两类任务的大规模评测中均达到最优性能的表示模型。出处:§1 · p. 2
2 相关工作
已有语言表征研究包括基于特征的无监督方法、无监督微调,以及从大规模有监督数据集进行迁移的方法。
2.1 基于特征的无监督方法
- 预训练词嵌入建立在数十年的非神经与神经表征研究基础上,相较于从零学习的词嵌入,能提升 NLP 系统的性能 。训练目标包括从左到右的语言建模 ,以及利用左右两侧上下文区分正确与错误的词 (Mikolov et al., 2013)。出处:§2.1 · p. 2
- 已有研究将表征扩展到更粗的粒度,包括句子嵌入 (Kiros et al., 2015; Logeswaran and Lee, 2018) 和段落嵌入 (Le and Mikolov, 2014)。句子表征的训练目标包括对候选下一句排序 (Jernite et al., 2017; Logeswaran and Lee, 2018)、根据前一句的表征从左到右生成下一句的词 (Kiros et al., 2015),以及由去噪自编码器衍生的目标 (Hill et al., 2016)。出处:§2.1 · p. 2
- ELMo 及其前身 (Peters et al., 2017, 2018a) 将从左到右和从右到左的语言模型表征拼接起来,提供上下文敏感的词元特征。将 ELMo 集成到任务专用架构中,可提升问答、情感分析和命名实体识别的基准表现 (Peters et al., 2018a)。Melamud et al. (2016) 采用基于特征、非深层双向的 LSTM,利用两侧上下文预测词;Fedus et al. (2018) 则使用完形填空训练提升文本生成的鲁棒性。出处:§2.1 · p. 2
2.2 无监督微调方法
- 无监督微调先在无标注文本上预训练上下文感知的句子或文档编码器,使下游任务只需从零学习少量参数。早期方法仅预训练词嵌入 ,后来的编码器则采用从左到右的语言建模和自编码器目标 (Howard and Ruder, 2018; Dai and Le, 2015)。OpenAI GPT 在 GLUE 的多项句子级任务上取得了当时最先进的结果 (Wang et al., 2018a)。出处:§2.2 · pp. 2–3
2.3 从有监督数据进行迁移学习
- 有监督迁移也取得了成功,所用数据包括大规模自然语言推理数据集 (Conneau et al., 2017) 和机器翻译数据集 (McCann et al., 2017)。计算机视觉提供了另一种有效的迁移学习范式:微调在 ImageNet 上预训练的模型 。出处:§2.3 · p. 3
3 BERT
BERT 通过掩码语言建模和下一句预测,在无标注文本上预训练双向 Transformer 编码器,再针对下游任务微调全部参数。
3 BERT
- BERT 采用基于 Vaswani et al. (2017) 的多层双向 Transformer 编码器,不同于 GPT 仅关注左侧上下文的自注意力机制。BERTBASE 有 12 层,隐藏层维度为 768,含 12 个注意力头和 110M 个参数;BERTLARGE 有 24 层,隐藏层维度为 1024,含 16 个注意力头和 340M 个参数。为便于比较,BERTBASE 的模型规模与 OpenAI GPT 相同。出处:§3 · p. 3
- BERT 将单个文本片段或文本对表示为一个序列,每个词元的表示由词元嵌入、片段嵌入和位置嵌入相加得到。WordPiece 嵌入 (Wu et al., 2016) 使用含 30,000 个词元的词表;[SEP] 和学习得到的 A/B 片段嵌入用于区分成对的文本片段。每个序列都以 [CLS] 开头,其最终隐藏状态作为用于分类的整体表示。出处:§3 · p. 4, Figure 2 · p. 5
3.1 预训练 BERT
- 随机选取 15% 的 WordPiece 位置进行掩码语言建模,仅预测这些位置的原始词元,以训练双向表示。选中的词元有 80% 的概率替换为 [MASK],10% 替换为随机词元,10% 保持不变,以缓解微调时不出现 [MASK] 所造成的不一致。预训练使用 BooksCorpus(800M 词) 和英文维基百科(2,500M 词),仅保留维基百科的正文段落,排除列表、表格和标题;为获得较长的连续序列,需要使用文档级语料。出处:§3.1 · pp. 4–5
- 下一句预测样本中,50% 使用真实的下一句,50% 使用随机句子,以学习有助于 QA 和 NLI 的句间关系。[CLS] 向量用于预测 IsNext 或 NotNext,最终模型的 NSP 准确率达到 97%-98%。未经微调时,该向量并不是有意义的句子表示。出处:§3.1 · p. 4, §3 · p. 4
3.2 微调 BERT
- BERT 在有标注的下游数据上端到端微调全部参数,每个任务都从同一组预训练参数初始化独立模型。自注意力通过双向交叉注意力对拼接的文本对进行联合编码;任务专用输出层使用词元表示完成标注或问答,使用 [CLS] 完成分类。从同一个预训练模型出发,所有报告的结果均可在单个 Cloud TPU 上用至多 1 小时,或在一个 GPU 上用数小时复现。出处:§3 · p. 3, §3.2 · p. 5
4 实验
BERT 的微调实验涵盖 11 项 NLP 任务,仅使用轻量的任务专用输出层,就在 GLUE、两个版本的 SQuAD 和 SWAG 上超越了已有系统。
4.1 GLUE
- GLUE 微调使用最终的 [CLS] 表示,仅添加分类层权重,并采用标准分类损失进行训练。单句和句对输入均使用同一种表示。出处:§4.1 · p. 5
- BERTLARGE 的官方 GLUE 得分为 80.5,OpenAI GPT 则为 72.8。排除 WNLI 后,BERTBASE 和 BERTLARGE 的平均准确率分别比此前最优结果提高 4.5% 和 7.0%。BERT 在 MNLI 上的准确率绝对提升 4.6%;BERTLARGE 在所有任务上均优于 BERTBASE,尤其是在训练数据较少的任务上。出处:Table 1 · p. 6, §4.1 · p. 6
4.2 SQuAD v1.1
- SQuAD v1.1 微调将问题与篇章拼接为输入,仅引入起点和终点向量来预测答案片段。词元表示与向量的点积用于计算起点和终点概率,训练时使用正确端点的对数似然。预测时选择得分最高且终点不早于起点的片段。出处:§4.2 · p. 6
- 相较于 SQuAD v1.1 排行榜上对应的最佳系统,BERT 的集成系统提升 +1.5 F1,单系统提升 +1.3 F1。单个 BERT 模型也超过了最佳集成系统;BERT 的集成系统由七个采用不同预训练检查点和微调随机种子的系统组成。先在 TriviaQA (Joshi et al., 2017) 上微调仅带来 0.1-0.4 F1 的提升,即使不做这一步,BERT 仍优于已有系统。出处:§4.2 · pp. 6–7, Table 2 · p. 7
4.3 SQuAD v2.0
- 在 SQuAD v2.0 上,BERT 比此前最佳系统提升 +5.1 F1。对于无法回答的问题,将答案片段的起点和终点都设为 [CLS] 词元;预测时,使用在开发集上使 F1 最大化的阈值,比较最佳答案片段与该空答案片段的得分。此模型不使用 TriviaQA 数据。出处:Table 3 · p. 7, §4.3 · p. 7
4.4 SWAG
- BERTLARGE 在 SWAG 上的准确率比 ESIM+ELMo 提升 +27.1%,比 OpenAI GPT 提升 8.3%。将四个候选续句分别与给定句子配对;用一个任务专用向量为各个 [CLS] 表示打分,再通过 softmax 对各选项得分进行归一化。出处:Table 4 · p. 7, §4.4 · p. 7
5 消融实验
BERT 的消融实验表明,下一句预测和深度双向建模能提升下游任务表现,增大模型规模也有益于小数据任务。冻结 BERT 提取的特征在命名实体识别上的表现也接近全模型微调。
5.1 预训练任务的影响
- 移除 NSP 会显著降低 QNLI、MNLI 和 SQuAD 1.1 的表现;用从左到右建模替代掩码语言建模,则会使所有受测任务的表现下降。各 BERTBASE 变体使用相同的预训练数据、微调方案和超参数;从左到右的变体不使用 NSP,微调时仍限制为仅使用左侧上下文。其在 MRPC 和 SQuAD 上的性能降幅最大。出处:Table 5 · p. 8, §5.1 · p. 8
- 加入随机初始化的 BiLSTM 可改善从左到右 BERT 在 SQuAD 上的表现,但仍远逊于预训练的双向模型,且会降低 GLUE 表现。新增的 BiLSTM 旨在弥补从左到右的词元表示缺少右侧上下文的问题。出处:§5.1 · p. 8
- ELMo 这类分别训练的从左到右和从右到左模型,成本是单个双向模型的两倍,却无法在每一层联合利用两个方向的上下文。即使拼接两者的词元表示,从右到左的模型仍无法在问答任务中根据问题来表示答案。出处:§5.1 · p. 8
5.3 基于 BERT 特征的方法
- 使用固定特征的 BERT 支持任务专用架构,并可一次性预计算生成成本高昂的表示,供成本更低的下游模型反复实验使用。相比之下,微调方法只添加一个简单的分类层,并联合更新模型的全部参数。出处:§5.3 · p. 9
5.2 模型规模的影响
- BERT 模型越大,在所有受测 GLUE 数据集上的准确率就越高,包括数据量较小的 MRPC。实验在四个数据集上分别进行五次独立微调,计算平均开发集准确率;MRPC 仅有 3,600 个标注训练样本。作者强调充分预训练的重要性,并推测,只需少量新增参数的直接微调,使小数据任务也能利用更大规模的表示。出处:§5.2 · pp. 8–9, Table 6 · p. 9
5.3 基于 BERT 特征的方法
- 在 CoNLL-2003 NER 上,最佳的基于特征的 BERT 变体拼接最上面的四个隐藏层,F1 比全模型微调低 0.3。冻结的 BERT 激活值先输入随机初始化的两层、768 维 BiLSTM,再进行分类。BERTLARGE 的表现可与最先进的方法相媲美。出处:Table 7 · p. 9, §5.3 · p. 9
6 结论
本文将基于语言模型的迁移学习拓展到深层双向架构,使同一预训练模型能够有效处理多种 NLP 任务。
“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”附录 · A BERT 的补充细节
附录中的补充材料分为 BERT 实现细节、实验细节和补充消融研究。
A BERT 的补充细节
- 附录 A 补充介绍 BERT 的实现细节。出处:Appendix for “BERT: Pre-training of… · p. 12
“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”附录
- 附录 B 补充介绍实验细节。出处:Appendix for “BERT: Pre-training of… · p. 12
- 附录 C 提供补充消融研究,包括训练步数和不同的掩码方式。出处:Appendix for “BERT: Pre-training of… · p. 12
A.1 预训练任务图解
BERT 的掩码策略促使模型为每个输入词元学习上下文表示,同时使表示偏向实际观测到的词。掩码语言模型的收敛速度略慢于从左到右的训练,但实验效果的提升足以抵偿额外的训练成本。
掩码语言模型与掩码策略
- 词有 80% 的概率被替换为 [MASK],10% 的概率被替换为随机词,10% 的概率保持不变,目的是使表示偏向实际观测到的词。出处:§A.1 · p. 12
- 由于无法确定哪些词需要预测、哪些词被随机替换,编码器必须为每个输入词元保留分布式上下文表示。所有词元中有 1.5% 被随机替换,这似乎并未损害语言理解能力。出处:§A.1 · p. 12
- 掩码语言模型的收敛速度略慢于从左到右的训练,但实验效果的提升足以抵偿增加的训练成本。掩码语言模型在每个批次中预测 15% 的词元,而从左到右的训练会预测每个词元。出处:§A.1 · pp. 12–13
A.2 预训练流程 … B 实验设置详解
BERT 预训练结合掩码语言建模与下一句预测;微调时只需增加一个输出层,即可处理序列级或词元级任务。消融实验表明,大部分性能提升来自这两项预训练任务及其实现的双向建模。
A.2 预训练流程
- 在下一句预测中,50% 的训练文本对使用真实的下一段文本,另 50% 使用随机文本片段。两个文本片段分别使用 A/B 嵌入,合计最多包含 512 个词元;这些“句子”不一定对应单个自然句。WordPiece 分词后,以均匀的 15% 概率进行掩码处理,不对词内片段作特殊处理。出处:§A.2 · p. 13
- 预训练共进行 1,000,000 步,每批包含 256 个序列,相当于在含 3.3 十亿个词的语料库上训练约 40 轮。训练损失为掩码语言模型的平均似然与下一句预测的平均似然之和。出处:§A.2 · p. 13
- 预训练使用 Adam,学习率为 1e-4,预热 10,000 步,学习率线性衰减,dropout 为 0.1。Adam 的参数为 β1 = 0.9、β2 = 0.999,L2 权重衰减为 0.01。与 OpenAI GPT 一样,BERT 使用 gelu 而非 relu。出处:§A.2 · p. 13
- 90% 的预训练步使用长度为 128 的序列,其余 10% 使用长度为 512 的序列,以学习位置嵌入。由于注意力计算开销随序列长度呈平方增长,这种安排可降低训练成本。出处:§A.2 · p. 13
A.3 微调流程
- 微调时搜索的批大小为 16 或 32,Adam 学习率为 5e-5、3e-5 或 2e-5,训练轮数为 2、3 或 4。其余大部分超参数与预训练保持一致,包括 0.1 的 dropout。通过穷举搜索选出开发集表现最佳的模型;相比小数据集,包含 100k+ 个标注样本的数据集对超参数选择的敏感性低得多。出处:§A.3 · pp. 13–14
A.4 BERT、ELMo 与 OpenAI GPT 的比较
- 尽管设计上刻意保持相似,BERT 与 GPT 在训练数据、特殊嵌入的预训练、批大小及微调学习率选择上仍有差异。GPT 使用 BooksCorpus(800M 词),BERT 还使用 Wikipedia(2,500M 词);两者均训练 1M 步,每批分别包含 32,000 和 128,000 词。BERT 在预训练阶段就学习 [SEP]、[CLS] 和 A/B 嵌入,而不是到微调时才引入特殊词元;它还根据各任务的开发集选择学习率,而非像 GPT 那样固定使用 5e-5。出处:§A.4 · p. 14
- 消融实验表明,大部分性能提升来自 BERT 的两项预训练任务及其实现的双向建模,而非与 OpenAI GPT 的其他训练差异。GPT 使用从左到右的 Transformer 语言模型;BERT 和 GPT 采用微调方式,而 ELMo 采用基于特征的方式。出处:§A.4 · p. 14
A.5 不同任务的微调示例
- BERT 只需增加一个输出层,即可支持序列级和词元级任务,尽量减少从头学习的参数。[CLS] 提供分类输出,[SEP] 则用于分隔不连续的词元序列。出处:§A.5 · p. 14
B.1 GLUE 基准实验详述 · C 补充消融实验
GLUE 实验涵盖句对和单句任务;为公平对比 OpenAI GPT,未纳入 WNLI。本文仅报告单任务微调结果,但与 MNLI 联合进行多任务训练显著提升了 RTE 的表现。
B.1 GLUE 基准实验详述
- MNLI 将句对分为蕴含、矛盾或中立三类 ;RTE 是训练数据较少的二分类蕴含任务 。MNLI 是通过众包构建的大规模任务。出处:§B.1 · pp. 14–15
- QQP 识别语义等价的 Quora 问题 ,MRPC 则判断新闻句对是否语义等价 。MRPC 的句对从网络新闻中自动提取,并由人工标注。出处:§B.1 · pp. 14–15
- QNLI 将 SQuAD 问答任务 (Rajpurkar et al., 2016) 转换为判断句子是否包含答案的二分类任务 (Wang et al., 2018a)。正例中的问题–句子对包含正确答案;负例则使用同一段落中不含正确答案的句子。出处:§B.1 · p. 14
- SST-2 是单句情感二分类任务,使用带有人工情感标注的影评句子 。出处:§B.1 · p. 15
- CoLA 是单句二分类任务,预测英语句子在语言学上是否可接受 (Warstadt et al., 2018)。出处:§B.1 · p. 15
- STS-B 的句对来自新闻标题等来源,以 1 到 5 的语义相似度分数标注 。分数表示两个句子在语义上的相似程度。出处:§B.1 · p. 15
- 在 WNLI 上,多数类基线的准确率为 65.1,超过了所有经过训练的 GLUE 提交模型;为公平对比 OpenAI GPT,BERT 未纳入 WNLI。WNLI 是小型推理数据集 ,GLUE 网页指出其构建存在问题。出处:§B.1 · p. 15
- 报告的结果仅采用单任务微调,但与 MNLI 联合进行多任务训练显著提升了 RTE 的表现。作者认为,多任务微调可能进一步提升性能。出处:§B.1 · p. 15
C.1 训练步数的影响
延长预训练可提高 BERTBASE 在 MNLI 上的微调准确率。MLM 预训练的收敛速度略慢于 LTR 预训练,但绝对准确率几乎从一开始就超过后者。
C.1 训练步数的影响
- 实验对预训练步数不同的模型检查点进行微调,并测量其 MNLI 开发集准确率。Figure 5 展示了这一对比。出处:§C.1 · p. 16
- BERTBASE 预训练 1M 步而非 500k 步时,MNLI 准确率可再提高近 1.0%。完整预训练共进行 1,000,000 步,每批包含 128,000 个词。出处:§C.1 · p. 16
- MLM 预训练的收敛速度略慢于 LTR 预训练,但绝对准确率几乎从一开始就超过后者。MLM 仅预测每批中 15% 的词,而 LTR 预测每个词。出处:§C.1 · p. 16
C.2 不同掩码方式的消融实验
掩码消融实验发现,微调对不同策略均较稳健,但仅使用 MASK 预训练会影响基于特征的 NER,而仅使用 RND 预训练的效果远逊于 BERT 的混合策略。
C.2 不同掩码方式的消融实验
- 这些掩码策略旨在减少预训练与微调之间的不一致,因为微调时从不出现 [MASK]。作者预计,基于特征的方法会面临更大的不一致,因为模型无法调整其表示。出处:§C.2 · p. 16
- 评估报告了 MNLI 和 NER 的开发集结果,其中 NER 同时采用微调和基于特征的方法。基于特征的方法遵循 Section 5.3 中确定的最佳方案,拼接 BERT 的最后四层。出处:§C.2 · p. 16
- 微调对不同掩码策略均较稳健,而基于特征的 NER 对仅使用 MASK 的预训练较为敏感。仅使用 RND 的效果也远逊于 BERT 的混合策略。出处:Table 8 · p. 16, §C.2 · p. 16
- 80% MASK、10% SAME 和 10% RND 构成了 BERT 用于 MLM 预训练的混合掩码策略。MASK 将目标词元替换为 [MASK],SAME 保持其不变,RND 则将其替换为另一个随机词元。出处:§C.2 · p. 16
Related papers
This paper cites
Cited by
- Bridging Semantics and Structure: A Theoretically Grounded Framework for Link Prediction on TAGs2026
- Proving and Improving the Platonic Representation Hypothesis with JEPAs2026
- CHORD: Cross-Model Hallucination Detection via Relational Graph Discrimination2026
- Evaluating Causal Reasoning in LLMs: A Case Study in the Challenges of Procedural Generation2026
- Are Seismic Foundation Models More Than Glorified Feature Extractors?2026
- NLP-based Message Prioritisation for Opportunistic Routing: A Case Study of Nepal Earthquake Emergency Communication2026