
NLP - Transformer:Self-Attention 機制
從 RNN 的傳話遊戲到 Transformer 的全體視訊會議,Self-Attention 機制徹底改變了 AI 理解語言的方式。本篇將深入剖析 Transformer 拋棄 RNN 擁抱平行運算的奧秘與 QKV 矩陣運算底層邏輯!
WRITTEN BY

- Name
- Harry Chang
NLP 的工業革命:Transformer
我們學習了 RNN 與 LSTM。雖然它們能處理序列資料,但有兩個致命缺點:
- 無法平行運算 (Slow):必須等前一個時間點算完才能算下一個,無法發揮 GPU 平行優勢。
- 長距離遺忘 (Long-term Dependency):當句子太長時,開頭的資訊仍會丟失。
💡 深度解密:為什麼 RNN 不能平行運算,而 Transformer 可以?
這正是 Transformer 擊敗傳統 RNN 成為 AI 霸主的最核心技術機密。我們用一個最簡單的日常生活比喻來理解這兩者的本質區別:
1. RNN 架構:排隊買票機制 🎟️
- 運作邏輯:當前時間點的狀態 必須完全依賴前一個時間點的隱藏狀態 。
- 比喻:就像一個排隊買票的長龍。第 2 個人必須等第 1 個人買完拿到收據才能買,第 100 個人則要苦苦等前面 99 個人通通交易完成。
- 盲點:即使你配備了擁有上萬個核心的強大 GPU(就像擁有 10,000 個售票窗口的超級體育館),但因為「必須依賴前一人」的序列規則,永遠只能有一個窗口開工,其他 9,999 個核心只能坐冷板凳。
2. Transformer 架構:全體廣播機制 📣
- 運作邏輯:徹底拋棄了「前一個字傳給後一個字」的排隊機制。當輸入一句話
"ai is powerful"時,我們不需要一個字一個字讀,而是將整句話作為一個「文字矩陣 」一次性丟入模型中。 - 矩陣平行乘法:透過 GPU 優化的矩陣乘法,我們可以在同一微秒內,同時計算出所有單字的 向量:
- 比喻:就像一個擁有 100 位學生的教室。老師不需要一個一個傳話,而是直接大喊一聲:「所有人,現在立刻在紙上寫下你正在關注誰!」這 100 個人立刻同時動筆,沒有排隊,全體同步!
- 結果:GPU 的上萬個核心同時全開,進行大規模平行矩陣運算,速度有了成百上千倍的爆發性成長!
2017 年 Google 發表論文 "Attention Is All You Need" 改變了一切。 Transformer 架構完全捨棄了迴圈,改用 Self-Attention (自注意力機制)。這就像是從「傳話遊戲」進化到了「視訊會議」,所有人可以直接跟所有人溝通。
核心概念:Self-Attention (自注意力機制)
這是 Transformer 架構的核心概念。你必須理解 Q, K, V 的物理意義。 想像你在讀這句話:「蘋果因為它很好吃所以被我吃了。」
- 當我們讀到「它」的時候,我們的大腦會自動把它連結到「蘋果」。
- 這就是 Attention!機器在處理每個字時,會去「關注」句子中其他相關的字,計算關聯強度。
Q, K, V 的比喻 (圖書館搜尋)
Transformer 把每個字都變成了三個向量:Query (Q), Key (K), Value (V)。
TIP
Q (查詢):你想找什麼資訊?(例如:我想找「它」是指誰?)
K (標籤):這個字有什麼特徵?(例如:「蘋果」的標籤是「水果」)
V (內容):這個字實際代表的意義。
運作流程:
- 匹配 (Matching):拿 Q 去跟所有 K 算內積,看誰最契合。
- 分配 (Softmax):決定要把多少「注意力」分配給哪個字。
- 收穫 (Weighted Sum):將注意力乘上 V,融合成新的向量。
1.3 QKV 架構圖
二、 實戰對齊:在 "ai is powerful" 中,Self-Attention 是怎麼運作的?
在前一天 (Day 37) 的 Seq2Seq 中,我們看到了 AI 在將英文翻譯成中文時,如何透過 Attention 跨語言進行對齊(例如:在翻譯「強大」時去關注英文的 powerful)。那種跨越兩個不同句子的對齊,叫做 Cross-Attention (交叉注意力)。
而在 Transformer 中,我們引入了 Self-Attention (自注意力)。它的任務是:讓同一個句子中的每一個單字,去關注這句話裡的其他所有單字,以此更新自己的語意向量!
我們用一模一樣的句子 "ai is powerful",來看看這場「自己關注自己」的矩陣大戲是怎麼演的:
1. 當單字 "powerful" 想更新自己時:
- 第一步:Query (Q) 提問
powerful派出它的 Query 向量,向全班發問:「是『誰』很強大?」 - 第二步:Key (K) 標籤對比 句子裡的所有單字紛紛呈現出自己的 Key 標籤,與這個 Query 進行相似度匹配:
ai的 Key 響應:「我是名詞,人工智慧。」 (極度匹配!相似度分數極高)is的 Key 響應:「我是繫動詞。」 (關聯度極低)powerful的 Key 響應:「我是形容詞,強大本身。」 (中等匹配,自我關注)
- 第三步:Softmax 算出注意力權重 計算出來的注意力權重可能為:
- 對
ai的注意力:65% - 對
is的注意力:10% - 對
powerful的注意力:25%
- 對
- 第四步:加權求和,揉合 Value (V) 最後,我們把這些百分比乘以各自的 Value 向量並相加:
IMPORTANT
神奇的語意升華發生了! 原本 powerful 只是個孤立的形容詞。但經過 Self-Attention 運算後,它此時的新向量中融入了高達 65% 關於 ai 的特徵。 現在,模型在數學上真正懂了——「是 AI 很強大」,而不是其他東西很強大!
2. 當單字 "ai" 想更新自己時:
- Query (Q) 提問:
ai派出它的 Query 向量發問:「我有什麼『屬性』?」 - 注意力權重分配:
- 對
ai(自我關注):30% - 對
is:10% - 對
powerful:「我是形容詞強大,可以用來修飾你!」 60%
- 對
- 結果:
ai的新向量中融入了 60%powerful的語意特徵。模型此時在數學上懂了——「這是一個強大的 AI」。
3. 多頭注意力 (Multi-Head Attention) 又是怎麼回事?
如果只有一個 Head(單頭注意力),AI 的眼睛一次只能問一個問題(例如上面問的:「是誰很強大?」)。
為了獲取更全面、不留死角的語意理解,Transformer 引入了 Multi-Head Attention——同時請了 8 位專家 (Heads) 一起讀這句 "ai is powerful",他們會同時問不同的問題:
- 專家 A (Head 1):專門尋找「文法主謂關係」(關注
ai與is的連接)。 - 專家 B (Head 2):專門尋找「修飾關係」(關注
powerful是用來修飾ai的)。 - 專家 C (Head 3):專門尋找「指代關係」(如果有代名詞,找出它指的是誰)。
最後,我們把這 8 位專家得出的特徵矩陣拼接 (Concat) 起來。這就是為什麼大語言模型能夠輕易看懂人類極其複雜、充滿倒裝與雙關語的句子的終極祕密!
4. 補充觀念:當模型疊得太深——什麼是 Attention Collapse (注意力崩塌)?
雖然 Multi-Head Attention 非常強大,但當科學家試圖把 Transformer 疊得非常深(例如 GPT-3 的 96 層、甚至上百層)時,會遇到一個有趣的物理缺陷:Attention Collapse (注意力崩塌)。
- 什麼是注意力崩塌?:隨著神經網路層數越來越深,AI 對句子中所有單字的注意力權重會變得極度均勻(例如對所有單字的注意力都是 1%)。AI 患上了「注意力渙散症」,徹底失去了區分重點的聚焦能力。
- 如何解決:稀疏化約束 (Sparsity Constraint):為了解決這個問題,科學家在數學公式中加入了「稀疏化懲罰項」,強迫 AI 在計算注意力時只能挑極少數的重點看(例如強迫 90% 的字注意力權重直接歸零,只保留最關鍵的 10%)。這能讓深層大模型即使到了第 100 層,依然保持銳利的聚焦能力!
三、 總結
今天我們解開了 NLP 工業革命的源頭——Transformer 與 Self-Attention 的平行運算奧秘。我們從 Word2Vec 的靜態坐標,到 Seq2Seq 的編碼解碼,最後跨越到了無遞迴、全平行的自注意力世界。
然而,當科學家發現 Transformer 擁有如此驚人的平行運算超能力與語意理解力後,他們決定進行一場大膽的「肢解實驗」——把 Transformer 的 Encoder(編碼器)與 Decoder(解碼器)單獨拆開,各自發展到了極致。
這項實驗的產物,就是改變了整個世界的兩大門派:理解派巔峰 BERT 與 生成派霸主 GPT。
下一關,我們將正式進入這場世紀大決戰——深入探討 BERT 與 GPT 的技術對決與架構秘密!