BERT:双向语言理解
Google 提出 BERT,通过双向 Transformer 实现突破性的语言理解能力。
事件概述
2018年10月,Google AI Language 团队的 Jacob Devlin 等人发布了 BERT(Bidirectional Encoder Representations from Transformers)。BERT 采用双向 Transformer 编码器,通过"掩码语言模型"和"下一句预测"两个预训练任务,学习深层的双向语言表示。BERT 在11项 NLP 任务上刷新了最佳成绩,开创了预训练语言模型的范式。其"预训练+微调"的方法成为 NLP 领域的标准流程,深刻影响了后来的语言模型发展。
深度学习笔记
背景、原理、影响与要点,一次读懂这个事件
背景与脉络
2018 年,预训练语言模型成 NLP 主流:ELMo 用双向 LSTM 给上下文词向量,ULMFiT 证语言模型可微调。但 GPT-1 只能从左到右,无法同时利用词语两侧上下文。Devlin 等四人在 2018 年 10 月提交《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》,用双向 Transformer 编码器预训练,让每个词同时看到左右文,把"预训练+微调"推向巅峰,成为 NLP 通用基线。
核心要点
- 1采用仅编码器(encoder-only)的 Transformer,实现真正的深度双向上下文表示。
- 2用 MLM 随机遮盖词元、靠上下文预测,突破单向语言模型的信息上限。
- 3引入 NSP 任务学习句对关系,适配问答、推理等下游任务。
- 4预训练后只需加一个输出层微调,无需为每任务重设架构。
- 5在 GLUE、SQuAD 等 11 项 NLP 任务上刷新当时最优。
- 6发布即成为通用基线,衍生出 RoBERTa、ALBERT、DeBERTa 等大家族。
原理与技术细节
BERT 只取 Transformer 的编码器堆叠,预训练两个自监督任务。其一是掩码语言模型(MLM):随机遮盖约 15% 的 WordPiece 词元,让模型根据左右上下文预测被遮词——这让每个词都能双向吸收信息。其二是下一句预测(NSP):给定两句,判断它们是否在原文中相邻,以学习句间关系。输入用 [CLS] 开头、[SEP] 分隔句子,词元、段落与位置嵌入相加。预训练后只需在顶部接一个任务相关输出层、用下游数据微调即可,无需改动主体。BERT-Base 为 12 层、110M 参数;BERT-Large 为 24 层、340M 参数,均在 BooksCorpus 与英文维基上训练。
影响与后续
BERT 把"预训练+微调"确立为 NLP 标准流程,并很快进入生产:Google 搜索自 2019 年 10 月起用 BERT 理解英文查询,年底已覆盖 70 多种语言。其"双向"思路启发了大量改进模型(如去掉 NSP 的 RoBERTa)。争议在于 NSP 任务被后续研究证明收益有限,且大模型算力门槛高、微调对小数据未必稳定。但 BERT 无疑定义了"基础模型"时代的方向。
学习要点
- 双向比单向信息更充分,MLM 是获得双向表示的巧妙手段。
- 预训练把"通用语言能力"一次性学会,下游只需轻量适配。
- [CLS]/[SEP] 等接口设计决定了模型能适配多少任务。
- 被后人否定的设计(如 NSP)同样有科研价值。
术语表
随机遮盖部分输入词元、让模型依据上下文预测的预训练目标。
判断两句在原文中是否相邻的二分类预训练任务,用于学习句间关系。
在大规模无标注数据上预训练、可适配众多下游任务的大型模型。