💡一句話定義
多頭注意力(Multi-Head Attention)= 把注意力機制平行做多份(多個頭),每個頭在不同的表示子空間用各自的 Q/K/V 學不同的關係,最後把各頭結果拼接、再線性投影合併。它是 Transformer 的核心元件。
👥為什麼要多頭?
🎮互動:單頭 vs 多頭聽出「反諷」
切換兩種模式,看模型怎麼理解「你真聰明~」這句(拖長音的反諷)。單頭只聽懂字面、誤判成稱讚;多頭分別抓咬字、語速、語意,拼起來才聽出是嘲諷。
Transformer:多頭注意力機制
從「瞎子摸象」到「專家會診」,看懂表示子空間的威力!
🔧一個頭實際在做什麼
- 各自投影:每個頭用自己獨立的權重把輸入投影成 Q、K、V。
- 低維子空間:在較低維的子空間各自算 Scaled Dot-Product Attention。
- 串接 Concat:把所有頭的輸出拼接起來。
- 線性投影:再乘一個輸出權重投影回原本的維度。
重點:每個頭的 Q/K/V 是各自獨立的,不是重複同一份——這才讓不同頭能學到不同關係。
🔢頭數怎麼選?
🆚單頭 vs 多頭
| 面向 | 單頭注意力 | 多頭注意力 |
|---|---|---|
| 關注模式 | 只能學一種 | 同時學多種(語法/語意/指代…) |
| Q/K/V | 一組 | 每頭各一組獨立 |
| 表達力 | 有限、易顧此失彼 | 豐富、多面向 |
| 輸出 | 直接輸出 | 各頭串接後線性投影 |
✅自我檢測
Q1. 多頭注意力是什麼?為什麼比單頭好?
把注意力平行做多份,每頭在不同子空間用各自 Q/K/V 學不同關係,再合併。單頭只能學一種關注模式,多頭能同時關注多個面向、表達更豐富。
Q2. 一個頭實際流程?
各自把輸入投影成 Q/K/V → 在低維子空間算注意力 → 各頭輸出串接(Concat)→ 再線性投影回原維度。
Q3. 頭的數量怎麼選?
把總維度切給各頭(如 512 分 8 頭、各 64 維)。頭太多每頭維度太小、太少表達不足,常見 8~16 個。
Q4. 多頭和自注意力的關係?
多頭注意力是把自注意力(或跨注意力)做多份的版本。Transformer 編碼器用的就是多頭自注意力。
🎯重點整理
- 是什麼:平行多個頭,各在不同子空間學不同關係。
- 為什麼:單頭只學一種,多頭同時抓多面向。
- 流程:各自 Q/K/V → 低維注意力 → 串接 → 投影。
- 頭數:總維度切給各頭,常見 8~16。
- 地位:Transformer(BERT、GPT)的核心元件。