BERT: Pre-training of Deep Bidirectional Transformers
Devlin et al.
Masked Language Modeling + 双向 Transformer Encoder——预训练+微调范式的奠基之作。
arXiv:1810.04805核心贡献
- 01MLM 预训练任务:随机遮盖 15% token,用周围双向上下文预测
- 02NSP (Next Sentence Prediction):学习句间关系(后续工作证明作用有限)
- 03在 11 项 NLP 任务上 SOTA,GLUE 基准大幅刷新
- 04建立 "预训练通用模型 + 下游任务微调" 的范式
- 05[CLS] token 作为序列整体表征的标准做法
核心思想
BERT 用的是 Transformer 的 Encoder-only 架构,目的是拿到高质量的上下文化 token 表征。
MLM 预训练
输入:[CLS] the cat sat on the [MASK] → 预测 mat
- 15% 的 token 被选中预测
- 其中 80% 替换为 [MASK]、10% 替换为随机 token、10% 保持不变(缓解预训练-微调不一致)
- 用交叉熵损失训练
为什么叫 "双向"
对比 GPT 的 Causal LM(单向)——GPT 只能用前文预测下一个词。MLM 可以同时用前文和后文预测被遮盖位置,学到更丰富的上下文表示。
但代价是:MLM 不能直接用于自回归生成。这是 BERT 和 GPT 在用途上的根本分野。
微调范式
- 分类任务:在 [CLS] 输出上加一层分类头
- 序列标注:每个 token 输出上加分类头
- 只需少量标注数据即可达到强效果
面试考点
MLM vs CLM(Causal LM)的本质区别:双向上下文 vs 单向自回归;表征任务 vs 生成任务。
为什么 15% mask 比例? 太少信号不足、太多破坏语境连贯。Google 论文做过消融,15% 是经验最优。
为什么 80/10/10 的替换策略? 纯 [MASK] 会导致下游微调时遇不到 [MASK],存在分布偏移;加入随机和保持原样是一种正则化。
BERT 能做生成吗? 不能自然地生成(Encoder-only),但可以做 fill-in-the-blank。需要生成用 Seq2Seq(T5)或 Decoder-only(GPT)。
后续改进:RoBERTa(去掉 NSP、动态 mask、更大数据)、ALBERT(参数共享)、ELECTRA(更高效的判别式预训练)——都是面试可能深入问的变种。