返回报告库

AI / Technology

BERT让同一个语言模型同时看见词的左边与右边

单向上下文与深层双向上下文的差别

图 1|教学重绘。上方目标词只能接收左侧信息;下方同一目标词在多层处理中联合接收两侧信息。图示用于解释机制,不是论文原图。依据:论文 pp. 1–4、Figure 3 文字说明。

当时的预训练迁移主要有两条路:ELMo 把独立训练的左向和右向表示作为特征塞进任务专用网络;OpenAI GPT 则预训练一个从左向右读的 Transformer,再整体微调。论文认为,两者都没让同一深层网络在每一层同时融合左右信息。对问答这类逐词定位任务,这个限制尤其直接:判断某个词是不是答案,往往既要看问题,也要看它前后的段落内容。来源:论文 §§1–2、附录 A.4

BERT 的两项预训练任务

图 2|教学重绘。左侧表示用周围信息还原被遮住的词;右侧表示区分真实相邻段与随机配对。图中不展示 15% 与 80/10/10 的比例,精确设置以上文和论文为准。

方法块 2|两项预训练。 MLM 随机选中 15% 的词片作为预测目标;其中 80% 换成 [MASK],10% 换成随机词,10% 保持原词。模型只预测被选中的原词。下一句预测(Next Sentence Prediction, NSP)则看到两段文本:一半是真正相邻的下一段,一半是语料中的随机段,模型判断二者关系。来源:论文 §3.1、附录 A.1–A.2

从一次预训练到多种下游任务

图 3|教学重绘。大编码器由无标注文本预训练,再分别接入小型任务输出层并整体微调;每个任务仍会得到各自的微调模型。依据:论文 Figure 1 说明与 §3.2。

方法块 3|迁移。 到下游任务时,所有 BERT 参数都会继续训练。分类读取 [CLS] 表示;序列标注读取各词位置的表示;抽取式问答只增加答案起点和终点向量。论文强调,相比预训练,这一步便宜得多:从同一检查点出发,文中实验可在单块 Cloud TPU 上一小时内、或 GPU 上数小时内复现。来源:论文 §3.2,PDF p. 5

研究附录

Jacob Devlin、Ming-Wei Chang、Kenton Lee、Kristina Toutanova,2018(arXiv v2,2019)。原论文:摘要页 · PDF

一、结论先行

BERT 解决的核心问题是:怎样先从大量无标注文本中学到通用语言表示,再用很少的任务专用结构,把这份能力迁移到分类、推理、实体识别和问答等不同任务。它的关键改变不是发明一种全新的 Transformer,而是用“遮住词再还原”的训练方式,让 Transformer 编码器的每一层都能联合利用左、右上下文;之后,整个预训练模型再随具体任务一起微调。来源:论文第 1、3 节,PDF pp. 1–5

记住三点:

  1. 先遮住,才有真正的双向学习。 如果目标词仍在输入里,深层双向网络可能直接看到答案;掩码语言模型(Masked Language Model, MLM)绕开了这个问题。
  2. 一套主体,适配多种任务。 预训练后的编码器保持不变形,只需换输入组织方式和一个很小的输出层,再端到端微调。
  3. 结果很强,但代价与边界同样明确。 论文在 11 项 NLP 任务上刷新当时结果;同时,预训练使用 33 亿词、最多 64 块 TPU 芯片训练 4 天,证据主要来自英语基准。来源:摘要、论文 §§3–4、附录 A.2

二、问题:为什么只从左往右读不够

当时的预训练迁移主要有两条路:ELMo 把独立训练的左向和右向表示作为特征塞进任务专用网络;OpenAI GPT 则预训练一个从左向右读的 Transformer,再整体微调。论文认为,两者都没让同一深层网络在每一层同时融合左右信息。对问答这类逐词定位任务,这个限制尤其直接:判断某个词是不是答案,往往既要看问题,也要看它前后的段落内容。来源:论文 §§1–2、附录 A.4

三、方法:先制造填空题,再整体微调

方法块 1|输入。 BERT 把单句或句对装进同一序列:开头放 [CLS],两段之间放 [SEP];每个位置的输入是词片(WordPiece)、句段和位置三种嵌入之和。词表含 30,000 个词片。BERT_BASE 有 12 层、1.10 亿参数;BERT_LARGE 有 24 层、3.40 亿参数。来源:论文 §3,PDF pp. 3–4

方法块 2|两项预训练。 MLM 随机选中 15% 的词片作为预测目标;其中 80% 换成 [MASK],10% 换成随机词,10% 保持原词。模型只预测被选中的原词。下一句预测(Next Sentence Prediction, NSP)则看到两段文本:一半是真正相邻的下一段,一半是语料中的随机段,模型判断二者关系。来源:论文 §3.1、附录 A.1–A.2

方法块 3|迁移。 到下游任务时,所有 BERT 参数都会继续训练。分类读取 [CLS] 表示;序列标注读取各词位置的表示;抽取式问答只增加答案起点和终点向量。论文强调,相比预训练,这一步便宜得多:从同一检查点出发,文中实验可在单块 Cloud TPU 上一小时内、或 GPU 上数小时内复现。来源:论文 §3.2,PDF p. 5

四、证据与限制:最有力的是消融,不只是排行榜

论文最显眼的结果来自当时的测试集或排行榜:GLUE 总分 80.5,对比 OpenAI GPT 的 72.8;MultiNLI 准确率 86.7;SQuAD v1.1 测试 F1 为 93.2;SQuAD v2.0 测试 F1 为 83.1,比此前最佳高 5.1 点。来源:摘要、论文 Tables 1–3

证据BERT 结果对照或变化读法
GLUE 测试总分80.5GPT 72.8同期综合基准上的广泛提升
SQuAD v2.0 测试 F183.1此前最佳 78.0抽取答案且允许“无答案”
SQuAD v1.1 开发集 F1 消融88.5去 NSP 87.9;左到右且去 NSP 77.8双向 MLM 的贡献比单看总榜更可辨认
MNLI-m 开发集准确率消融84.4去 NSP 83.9;左到右且去 NSP 82.1两项任务均有贡献,但幅度因任务而异

消融实验是更强的机制证据:在相同预训练数据、微调方案和超参数下,左到右模型在论文选取的五项任务上都弱于双向 MLM;去掉 NSP 也会降低 QNLI、MNLI 和 SQuAD 1.1。不过,这仍不是完美隔离:论文自己列出 BERT 与 GPT 在语料规模、批大小、特殊标记引入时机和微调学习率选择上的差异,因此不能把排行榜上的全部差距都简单归因于“双向”。来源:论文 §5.1、Table 5、附录 A.4

还要保留四个边界:第一,预训练语料是 BooksCorpus 的 8 亿词与英文 Wikipedia 的 25 亿词,论文没有据此证明跨语言能力;第二,结论来自指定基准和当时榜单,不等于开放环境中的可靠理解;第三,BERT_LARGE 的预训练用了 64 块 TPU 芯片、耗时 4 天,复制“训练方法”不等于复制“训练门槛”;第四,自注意力成本随序列长度平方增长,论文为提速让 90% 的训练步只用 128 长度,最后 10% 才用 512。来源:论文 §3.1、附录 A.2

五、实际意义:它改变的是搭建 NLP 系统的默认方式

解释块 1|产品含义(本文解释,不是作者原话)。 BERT 把工作重心从“为每个任务手工搭一套深网络”移到“维护一个通用预训练底座,再为具体数据微调”。这能缩短建模路径,但不会自动解决数据标签质量、领域偏移、延迟、算力或错误可解释性。

解释块 2|采用前先问。 你的任务是否真的需要双向编码,而不是逐词生成?输入是否常超过 512 词片?领域语言与 BooksCorpus/Wikipedia 相差多大?排行榜提升能否在自己的错误成本、推理预算和数据切分上复现?这些问题决定了论文机制是否能转化成可用价值。

最大的未决风险是外推:论文有力地证明了“在所测英语任务上,深层双向预训练加整体微调有效”,却没有证明模型具备一般意义上的语言理解,也没有覆盖多语言、公平性、鲁棒性、隐私或生产部署表现。最稳妥的结论因此是:BERT 提供了一种经过广泛基准验证的表示学习配方,而不是对真实世界理解能力的最终答案。


研究附录:证据账本与核验提示

叙事主线

  • 问题:单向或浅层拼接的表示不能在每一层联合使用左右文。
  • 改变:用 MLM 训练深层双向 Transformer,并用 NSP 学句对关系,再整体微调。
  • 最强证据:跨 11 项任务的提升,加上控制数据与训练设置后的预训练目标消融。
  • 最大风险:英语基准结果向真实、多语言和高风险场景外推时缺少证据。

关键事实账本

项目论文陈述位置
语料BooksCorpus 800M 词;英文 Wikipedia 2,500M 词§3.1, p. 5
模型BASE:12 层/768 隐藏维/12 头/110M 参数;LARGE:24/1024/16/340M§3, p. 3
预训练批量 256,1,000,000 步,约遍历 33 亿词 40 轮Appendix A.2, p. 13
算力BASE 16 块 TPU 芯片;LARGE 64 块;均训练 4 天Appendix A.2, p. 13
最大长度合并序列不超过 512;90% 步长 128,10% 步长 512Appendix A.2, p. 13
报告范围11 项 NLP 任务Abstract, §4

不确定性与核验问题

  • 论文 Table 5 同时把“左到右”与“去掉 NSP”放在一个消融条件中;比较 No NSPLTR & No NSP 能支持双向 MLM 的价值,但不能单独估计所有交互效应。
  • SQuAD v1.1 的 93.2 测试 F1 来自加入 TriviaQA 的系统;论文 Table 2 中不加该数据的 7 模型集成测试 F1 为 91.8。引用结果时应说明系统条件。
  • GLUE 与排行榜是论文写作时的快照。若要比较今天的模型,应重新固定数据版本、指标、单模型/集成条件和外部训练数据。
  • [CLS] 在未经微调时不是有意义的通用句向量;论文脚注明确限定了这一点。不要把分类接口误读成天然句子嵌入。来源:论文 §3.1 脚注 6

术语表

  • 预训练:先用大规模、通常无人工任务标签的数据学习通用参数。
  • 微调:从预训练参数出发,用目标任务的标注数据继续训练。
  • 双向:一个词在同一深层编码过程中可联合利用左右上下文;不是简单把两个独立方向的结果拼起来。
  • 词片(WordPiece):把词拆成可复用子词单元的分词方法。
  • F1:精确率与召回率的调和平均;在 SQuAD 中按答案词重合度计算。

编辑校验(2 分制):核心思想 2;来源扎根 2;压缩 2;机制 2;证据 2;限制 2;视觉目的 2;视觉准确性 2;阅读流 2;中文质量 2。总分 20/20;扎根与视觉准确性均无零分。

关于这篇论文的三个关键问题

BERT:让同一个语言模型同时看见词的左边与右边 解决了什么问题?

当时的预训练迁移主要有两条路:ELMo 把独立训练的左向和右向表示作为特征塞进任务专用网络;OpenAI GPT 则预训练一个从左向右读的 Transformer,再整体微调。论文认为,两者都没让同一深层网络在每一层同时融合左右信息。对问答这类逐词定位任务,这个限制尤其直接:判断某个词是不是答案,往往既要看问题,也要看它前后的段落内容。来源:论文 §§1–2、附录 A.4

BERT:让同一个语言模型同时看见词的左边与右边 的核心结论有哪些证据?

还要保留四个边界:第一,预训练语料是 BooksCorpus 的 8 亿词与英文 Wikipedia 的 25 亿词,论文没有据此证明跨语言能力;第二,结论来自指定基准和当时榜单,不等于开放环境中的可靠理解;第三,BERTLARGE 的预训练用了 64 块 TPU 芯片、耗时 4 天,复制“训练方法”不等于复制“训练门槛”;第四,自注意力成本随序列长度平方增长,论文为提速让 90% 的训练步只用 128 长度,最后 10% 才用 512。来源:论文 §3.1、附录 A.2

阅读 BERT:让同一个语言模型同时看见词的左边与右边 时最需要注意什么局限?

消融实验是更强的机制证据:在相同预训练数据、微调方案和超参数下,左到右模型在论文选取的五项任务上都弱于双向 MLM;去掉 NSP 也会降低 QNLI、MNLI 和 SQuAD 1.1。不过,这仍不是完美隔离:论文自己列出 BERT 与 GPT 在语料规模、批大小、特殊标记引入时机和微调学习率选择上的差异,因此不能把排行榜上的全部差距都简单归因于“双向”。来源:论文 §5.1、Table 5、附录 A.4

今天还可免费读 2 篇新报告订阅 Pro 后无限阅读,并获得每月 10 篇新论文生成额度。升级 Pro