### **一、整體定位:純編碼器架構**
#### **核心設計思想**
> **預訓練+微調**:
> 1. **預訓練**:在海量無標簽文本上學習通用語言規律
> 2. **微調**:用少量標注數據適配具體任務(如分類/問答)
> **類比**:
> - 預訓練 = 醫學生通讀百萬本醫學文獻
> - 微調 = 針對眼科進行3個月專項培訓
?
---
?
### **二、核心架構詳解**
#### **1. 輸入表示層:處理多樣化輸入**
- **三位一體的嵌入組合**:
```python
輸入 = 詞嵌入 + 位置嵌入 + 段落嵌入
```
| 嵌入類型 | 作用 | 示例 |
|---------------|-------------------------------|--------------------------|
| **詞嵌入** | 將詞轉為數字向量 | “貓”→ [0.2, -1.7, 0.5] |
| **位置嵌入** | 標記詞的位置(0~511) | 首詞位置0 → 特定波形編碼 |
| **段落嵌入** | 區分句子A/B(用于問答等任務) | 句子A標0,句子B標1 |
?
- **特殊標記**:
- `[CLS]`:放置句首,用于分類任務的聚合表示
- `[SEP]`:分隔句子對(如問題與答案)
- `[MASK]`:預訓練時的掩碼占位符
?
> **輸入示例**:
> `[CLS] 巴黎是法國的首都 [SEP] 埃菲爾鐵塔在這里 [SEP]`
> *段落編碼:0 0 0 0 0 0 1 1 1 1*
?
#### **2. 編碼器堆疊:Transformer編碼器層**
- **基礎配置**:
- **BERT-base**:12層,每層12個注意力頭,隱藏層768維
- **BERT-large**:24層,每層16頭,隱藏層1024維
- **單層結構**:
```mermaid
graph LR
A[輸入向量] --> B[多頭自注意力]
B --> C[殘差連接+層歸一化]
C --> D[前饋神經網絡]
D --> E[殘差連接+層歸一化]
```
?
#### **3. 核心機制:自注意力(以“貓追老鼠”為例)**
1. **生成Q/K/V向量**:
- 每個詞通過權重矩陣生成三組向量
- “追”的Query向量包含動作意圖
2. **計算相關性**:
- “追”的Query vs “貓”的Key → 高相似度
- “追”的Query vs “老鼠”的Key → 中等相似度
3. **加權融合**:
`“追”的新向量 = 0.7×"貓"的Value + 0.2×"老鼠"的Value + ...`
?
---
?
### **三、預訓練任務:BERT的“通識教育”**
#### **任務1:掩碼語言模型(Masked LM)**
- **操作**:
隨機遮蓋15%的詞,其中:
- 80%替換為`[MASK]`:`貓 [MASK] 老鼠` → 預測“追”
- 10%替換為隨機詞:`貓 跳 老鼠` → 糾正為“追”
- 10%保留原詞:`貓 追 老鼠` → 強化正確性
?
- **設計意圖**:
強制模型**基于雙向上下文推理**,破解傳統語言模型的單向偏見
?
#### **任務2:下一句預測(Next Sentence Prediction)**
- **正例**:
```
句子A:巴黎是時尚之都
句子B:許多設計師在此工作 → 標簽:IsNext
```
- **反例**:
```
句子A:巴黎是時尚之都
句子B:企鵝生活在南極 → 標簽:NotNext
```
- **價值**:
學習句子間邏輯關系,對問答/推理任務至關重要
?
---
?
### **四、微調機制:快速適配具體任務**
#### **1. 分類任務(如情感分析)**
- 取`[CLS]`位置的輸出向量
- 接全連接層分類:
`情感 = Softmax(W·h_[CLS] + b)`
?
?
#### **2. 問答任務(如SQuAD)**
- 輸入:`[CLS]問題 [SEP] 文章 [SEP]`
- 輸出:預測答案在文章中的起止位置
```
起始位置概率 = Softmax(W_s·文章每個詞向量)
終止位置概率 = Softmax(W_e·文章每個詞向量)
```
?
#### **3. 命名實體識別(NER)**
- 對每個詞輸出實體類型:
`“巴黎” → B-LOC(地點起始)`
`“鐵塔” → I-LOC(地點延續)`
?
---
?
### **五、關鍵創新:為何BERT遠超前輩?**
#### **1. 動態詞向量 vs 靜態詞向量**
| 對比項 | Word2Vec | BERT |
|----------------|-------------------|-------------------|
| 詞義表達 | 固定不變 | 隨上下文動態變化 |
| 多義詞處理 | “蘋果”只有1種含義 | “蘋果手機” vs “蘋果好吃”不同向量 |
| 上下文感知 | 無 | 全句雙向理解 |
?
#### **2. 預訓練-微調范式革命**
- **傳統方法**:每個任務需單獨設計模型并標注大量數據
- **BERT方法**:
1. 無監督預訓練(用維基百科等公開文本)
2. 少量標注數據微調(如1000條電影評論做情感分類)
?
> **效果對比**:
> 情感分析任務準確率:
> - 傳統模型:85%
> - BERT微調:92%
?
---
?
### **六、通俗總結:BERT像什么?**
1. **輸入處理**:給每個詞發“身份證”(詞ID+位置卡+段落卡)
2. **編碼過程**:12次“小組討論會”(每層Transformer):
- 每個詞自由與其他詞交流(自注意力)
- 會后整理會議紀要(前饋神經網絡)
3. **預訓練**:
- **填空考試**(Masked LM):蒙住部分詞猜內容
- **邏輯判斷**(NSP):識別句子間是否連貫
4. **微調**:
- 分類任務:看`[CLS]`的總結報告
- 問答任務:在文章中劃重點答案
?
> **核心突破**:
> 同一套模型既能理解法律條文,又能分析情書——
> **秘訣在于從海量閱讀中學會“語言的本質規律”**。
?
---
?
### **附:架構參數速查表**
| 模型類型 | 層數 | 注意力頭數 | 隱藏層維度 | 參數量 |
|--------------|------|------------|------------|---------|
| **BERT-base** | 12 | 12 | 768 | 110M |
| **BERT-large**| 24 | 16 | 1024 | 340M |
?
通過這種架構,BERT實現了語言理解的量子飛躍,成為NLP領域的里程碑式突破。