遮罩語言模型預測(MLM) 是什麼?
Masked Language Modeling:遮罩語言模型預測(MLM) 的完整解釋
一種自監督預訓練任務,隨機遮蔽輸入序列中的部分 token,讓模型依據上下文預測被遮蔽的原始詞,是 BERT 系列模型的核心訓練目標。
MLM 的背景與動機
在 MLM 提出之前,語言模型通常採用自迴歸(Autoregressive)方式:從左到右依序預測下一個詞(如 GPT-1)。這種訓練目標使模型只能利用左側單向上下文,對需要同時理解左右文脈的任務(如閱讀理解、填空)有先天局限。2018 年,Google 提出的 BERT(Bidirectional Encoder Representations from Transformers)引入 MLM 任務,使模型能夠利用被遮蔽 token 兩側的雙向上下文進行預測,大幅提升對語言的深層理解能力。
MLM 的訓練細節(以 BERT 為例)
遮蔽策略
BERT 的 MLM 策略是隨機選取約 15% 的 token,然後分三種處理方式:
- 80% 機率:替換為 [MASK] 特殊符號
- 10% 機率:替換為詞彙表中的隨機詞
- 10% 機率:保持原始詞不變(讓模型不能完全依賴 [MASK] 位置的特殊形式)
這種混合策略的設計目的是避免模型過度依賴 [MASK] 標記的位置信號,因為在 fine-tuning 和實際推論時,輸入中不會出現 [MASK] 符號(這個 pre-training 和 fine-tuning 的不一致性稱為「Pretrain-Finetune Discrepancy」)。
訓練目標
MLM 的損失函數是對所有被遮蔽位置的交叉熵損失的平均值: L_MLM = - (1/M) × Σ log P(xi | x̃) 其中 M 為被遮蔽的 token 數,xi 為原始 token,x̃ 為輸入的遮蔽序列。
第二個預訓練任務:NSP(Next Sentence Prediction)
BERT 除了 MLM 外,還加入了下一句預測(Next Sentence Prediction)任務,但後續研究(如 RoBERTa)發現去掉 NSP 反而提升了下游任務性能,顯示 MLM 本身已能提供足夠的語言理解基礎。
MLM 的優勢:雙向上下文理解
與自迴歸語言模型(如 GPT 系列)相比,MLM 的最大優勢在於真正的雙向(Bidirectional)上下文建模:模型可以同時看到被遮蔽位置的左側和右側 token,做出更準確的預測。這使得 BERT 在需要雙向語境理解的任務上(如問答、自然語言推論、文本分類)通常優於自迴歸模型。
MLM 的應用場景與下游任務
- 文本分類(Text Classification):在 BERT 的 [CLS] token 上加分類頭,進行情感分析、主題分類等
- 命名實體識別(NER):在每個 token 的輸出上加序列標記頭
- 問答系統(QA):如 SQuAD 任務,在 BERT 輸出上預測答案的起始和結束位置
- 自然語言推論(NLI):如 MNLI,判斷前提和假設的邏輯關係
- 語義相似度計算:利用 BERT 輸出的向量表示,計算句子間的語義距離
重要的 MLM 衍生模型
- RoBERTa(Robustly Optimized BERT Pretraining Approach):去除 NSP 任務,增加訓練資料量和訓練步數,動態遮蔽(每次 epoch 重新選擇遮蔽位置),在多個 benchmark 上超越原始 BERT
- ALBERT(A Lite BERT):透過參數共享和因子化詞嵌入矩陣大幅減少參數量,並以句子順序預測(SOP)取代 NSP
- DistilBERT:BERT 的蒸餾版,保留 97% 的性能,但大小減少 40%、速度提升 60%
- SpanBERT:將遮蔽從單 token 擴展到連續文字片段(span),更好地學習跨詞語的邊界關係
- XLM-RoBERTa:多語言版本的 RoBERTa,支援 100 種語言的跨語言理解
MLM 與自迴歸語言模型(如 GPT)的比較
| 面向 | MLM(BERT 等) | 自迴歸(GPT 等) |
|---|---|---|
| 上下文方向 | 雙向 | 單向(左→右) |
| 適合任務 | 理解類(分類、NER、QA) | 生成類(文字生成、對話) |
| 預訓練任務 | 遮蔽位置預測 | 下一個 token 預測 |
| 推論方式 | 一次輸入完整序列 | 自迴歸逐步生成 |
局限性與開放挑戰
- 每次只遮蔽 15% 的 token,訓練效率相對低(相較於自迴歸模型每個 token 都有訓練信號)
- Pretrain-Finetune Discrepancy:訓練時有 [MASK],fine-tuning 和推論時沒有,存在分佈不一致
- 不適合自迴歸生成任務(如文本摘要、機器翻譯的解碼部分),因為這些任務需要逐步生成而非一次預測遮蔽位置