Transformer 的心臟:多頭注意力與 FFN
從單頭注意力的極限出發,理解多頭注意力、前饋神經網路與多層堆疊如何構築深層語言理解。
Transformer 的心臟:多頭注意力與 FFN
上一篇我們拆解了注意力機制的核心:QKV、Mask 與縮放點積。
但你有沒有想過:如果只有「一個」注意力頭,模型是不是只能從單一角度理解句子?
語言同時包含語法、語意、指代、修辭等多重關係,單一視角顯然不夠。
這一篇,我們要進入 Transformer 的心臟:多頭注意力(Multi-Head Attention) 與 前饋神經網路(Feed-Forward Network, FFN),並看看它們如何透過多層堆疊,構築出深層的語言理解能力。
一、單頭注意力的極限
在上一篇文章中,我們學會了縮放點積注意力:
[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V ]
這個機制讓每個詞能根據 Query,去跟所有詞的 Key 比對,再對 Value 加權求和。
但問題是:一組 QKV 只能捕捉一種關係。
例如,當模型處理「小明把書放在桌上,因為它太重了」時:
- 一個注意力頭可能關注「它」與「書」的指代關係。
- 但「小明」與「放」的主詞動詞關係呢?
- 「書」與「桌上」的地點關係呢?
- 「太重」與「書」的屬性關係呢?
這些不同的關係,很難用單一組注意力權重同時表達。
就像你只用一台攝影機拍一個場景,很難同時捕捉主角特寫、遠景構圖與光線氛圍。
所以,我們需要多個注意力頭。
二、多頭注意力:多個鏡頭同時觀察
多頭注意力的設計靈感,就像多個攝影鏡頭同時拍攝同一個場景:
- 有的鏡頭聚焦於主體,捕捉主詞與動詞的關係。
- 有的鏡頭關注地點,捕捉位置與事件的關聯。
- 有的鏡頭感知氛圍,捕捉形容詞與名詞的情感色彩。
- 有的鏡頭負責遠距離依賴,把相隔很遠的詞連起來。
具體作法是:把原本的 Q、K、V 分別投影到多個較低維度的子空間,每個子空間稱為一個「頭」。
每個頭獨立執行一次縮放點積注意力,最後把所有頭的輸出拼接起來,再經過一個輸出權重矩陣整合。
公式如下:
[ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O ]
其中每個頭為:
[ \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) ]
假設模型維度是 (d_{\text{model}}),注意力頭數是 (h),則每個頭的維度通常設為:
[ d_k = d_v = \frac{d_{\text{model}}}{h} ]
這樣做的好處是:總計算量與單頭注意力相近,但模型能同時從多個角度理解語境。
三、為什麼多頭有效?
多頭注意力並不是簡單地把同一個計算重複多次。
因為每個頭有自己獨立的 (W_i^Q)、(W_i^K)、(W_i^V),它們會學到不同的關注模式。
在訓練完成後,研究者常觀察到:
- 某些頭專注於語法關係,例如主詞與動詞的搭配。
- 某些頭專注於指代消解,例如「他」指的是誰。
- 某些頭專注於局部順序,例如相鄰詞的關係。
- 某些頭專注於長距離依賴,例如句首與句尾的呼應。
這讓模型能同時獲得多種角度的語意理解,而不是被迫用單一權重表達所有關係。
多頭注意力因此成為 Transformer 表達能力的重要來源。
四、前饋神經網路(FFN):位置獨立的特徵加工
如果說注意力機制負責「詞與詞之間的關係建模」,那麼 FFN 就負責「對每個位置的向量獨立進行非線性變換」。
在 Transformer 的每一層中,注意力子層之後都會接一個 FFN。
它的結構很簡單,包含兩個全連接層:
- 升維:將向量投射到一個高維空間,通常為原始維度的 4 倍。
- 非線性激活:例如 ReLU 或 GELU。
- 還原:透過第二個全連接層,將向量還原回原始維度。
公式可以寫成:
[ \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 ]
這裡的關鍵是:
- 它不改變向量維度,輸出尺寸與輸入一致。
- 它對每個位置獨立計算,不像注意力會混合不同位置的資訊。
- 它引入非線性,讓模型能學習更複雜的特徵組合。
你可以把 FFN 理解成一種「特徵萃取器」:
注意力層先篩選出哪些資訊重要,FFN 再對這些資訊進行深度加工,提煉出更高層次的特徵。
五、多層堆疊:從語法到抽象語義
Transformer 的深度,來自於將「多頭注意力 + FFN」這個組合反覆堆疊成多層網路。
每一層都包含:
- 一個多頭注意力子層
- 一個 FFN 子層
- 殘差連接與層正規化
這種逐層堆疊的架構,具有層級化的特徵提取能力:
- 底層:學習基礎詞義、詞性、基本語法結構。
- 中層:開始捕捉短語與片語的組合語意。
- 高層:提煉抽象語義,例如篇章主題、情感傾向、意圖推斷。
這就像人類閱讀時,先認字,再理解詞組,最後掌握整篇文章的含義。
每一層都在前一層的基礎上,建構更抽象、更全局的理解。
這種設計也帶來了強大的遷移能力。
我們可以先用大量文本預訓練一個多層 Transformer,再透過微調(Fine-Tuning),將它適配到各種下游任務,例如文本分類、問答系統、機器翻譯等。
六、殘差連接與層正規化:讓深層網路可以訓練
在每一層中,注意力子層和 FFN 子層外面都包著殘差連接(Residual Connection)與層正規化(Layer Normalization)。
可以簡化表示為:
[ \text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x)) ]
- 殘差連接:建立一條捷徑,讓梯度能有效回流到淺層,防止梯度消失,使訓練極深層網路成為可能。
- 層正規化:穩定每一層的數值分布,讓訓練更平順。
這些技術我們之後會再專文深入,但現在你先知道:
沒有它們,深層 Transformer 很難穩定訓練。
七、總結:三大組件各司其職
Transformer 的核心可以濃縮成這樣:
- 多頭注意力:負責建模全局依賴關係,讓模型從多個角度關注上下文。
- 前饋神經網路:負責深化特徵表達,對每個位置獨立進行非線性變換。
- 多層堆疊:負責構建層級化的理解能力,從語法到抽象語義。
三者相輔相成,構成了當代大型語言模型的技術基石。
理解了多頭注意力與 FFN,你就掌握了 Transformer 內部最核心的運算單元。
接下來,我們要從「模型內部」走向「模型行為」:
當模型訓練完成後,它是如何一個字一個字地生成回應?Temperature、Top-K、Top-P 又是如何影響輸出風格?
下一篇預告
《大模型如何運作:從自回歸生成到推理採樣》
我們會解釋自回歸機制、Next Token Prediction,以及 Temperature、Top-K、Top-P 等推理階段的核心策略。