论文精读 | BERT:打破单向束缚的深度双向 Transformer
论文链接:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
一句话总结:BERT 抛弃了 Transformer 的 Decoder,仅保留 Encoder,通过“完形填空 (MLM)”和“下一句预测 (NSP)”两大任务,在海量无标注数据上炼就了拥有全局双向视野的语言理解大师,彻底统一了 NLP 的下游微调范式。
1. 痛点与破局:为什么需要 BERT?
在 BERT 诞生前(2018年),主流的预训练模型(如初代 GPT、ELMo)都存在严重的视野受限问题:
- GPT (自回归):严格从左到右单向生成,采用
subsequent_mask(下三角掩码),模型无法提前看到后面的词。 - ELMo:虽然号称双向,但只是把从左到右和从右到左的特征在最顶层做了浅层拼接(Shallow Concatenation)。
BERT 的破局点:直接拆下 Transformer 的 Encoder 层,去掉所有的因果掩码(Causal Mask),让序列中的每一个 Token 从第一层开始就能全图双向可见。
2. 极致统一的输入表示 (Input Representations)
为了让模型能无缝接管“单句话分类”和“双句话问答”等各种繁杂任务,BERT 设计了一套极其优雅的“集装箱打包标准”。
一段连续的文本进入 BERT 前,会进行三位一体的暴力相加:
- Token Embeddings:WordPiece 切词(词表大小 30,000)。句首强行插入
[CLS](班长,用于聚合全局句子信息),句间插入[SEP](分隔符)。 - Segment Embeddings:引入 EA 和 EB 两个学出来的阵营向量,让模型分清哪些词属于第一句话,哪些属于第二句话。
- Position Embeddings:给每个位置发一个号码牌,不同于原版 Transformer 的三角函数,BERT 的位置向量是自己学出来的。
3. 两大核心预训练神技 (Pre-training Tasks)
既然视野全开了,如果让它直接预测下一个词,模型就会“作弊”直接偷看答案。为此,BERT 发明了两个自监督任务:
Task 1: 掩码语言模型 (Masked LM, MLM)
也就是暴力的“完形填空”。随机盖住句子中 15% 的词,让模型根据上下文去猜。
为了缓解预训练满眼都是 [MASK],而微调时却没有 [MASK] 的“脱节”问题,作者设计了精妙的 80-10-10 妥协法则:
- 80% 的时间替换为
[MASK] - 10% 的时间替换为一个随机词(注入噪音,逼迫模型结合上下文纠错)
- 10% 的时间保持原词不变(告诉模型:有时你看到的词是对的)
Task 2: 下一句预测 (Next Sentence Prediction, NSP)
为了让模型理解句子间的逻辑关系,构建了一个廉价的二分类判断题:
- 50% 的情况,句子 B 确实紧跟在句子 A 后面。
- 50% 的情况,句子 B 是从语料库里随机抓取的。
模型通过提取[CLS]对应输出的最终向量 C,来判断这两句话是否连续。
4. 降维打击的微调范式 (Fine-Tuning)
BERT 真正引发行业海啸的,是它极其低廉和统一的微调成本。
- 早期深度融合:不再像以前那样把两句话分别编码再做交互,而是直接拼成
[CLS] A [SEP] B [SEP]送进模型,在底层 Attention 就完成了跨句子的深度交互。 - 按需取件:
- 句子级任务(如情感分析):直接取顶层
[CLS]向量外接一个线性层。 - Token 级任务(如 NER、SQuAD问答):取每个词对应的顶层输出向量 Ti 进行预测。
- 句子级任务(如情感分析):直接取顶层
5. 个人思考与启发
- 大道至简的工程美学:把复杂的结构对齐问题,全部化简为 Token 序列的拼接;把深奥的上下文理解,化简为廉价的完形填空。
- GPT 与 BERT 的宿命分野:BERT 去掉 Decoder 走向了极致的阅读理解,GPT 去掉 Encoder 走向了极致的自回归生成。在 2026 年回头看,虽然大模型时代被单向生成模型(LLM)统治,但 BERT 留下的全局注意力思想,依然在今天的 Embedding 向量检索(如 RAG)甚至扩散大模型(如 LLaDA 的 Masked Diffusion)中熠熠生辉。
论文精读 | BERT:打破单向束缚的深度双向 Transformer
https://cutesxy.github.io/2026/03/09/BERT-Note/