NLP - Transformer:Self-Attention 機制

NLP - Transformer:Self-Attention 機制

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


NLP 的工業革命:Transformer

我們學習了 RNN 與 LSTM。雖然它們能處理序列資料,但有兩個致命缺點:

  1. 無法平行運算 (Slow):必須等前一個時間點算完才能算下一個,無法發揮 GPU 平行優勢。
  2. 長距離遺忘 (Long-term Dependency):當句子太長時,開頭的資訊仍會丟失。

💡 深度解密:為什麼 RNN 不能平行運算,而 Transformer 可以?

這正是 Transformer 擊敗傳統 RNN 成為 AI 霸主的最核心技術機密。我們用一個最簡單的日常生活比喻來理解這兩者的本質區別:

1. RNN 架構:排隊買票機制 🎟️

  • 運作邏輯:當前時間點的狀態 hth_t 必須完全依賴前一個時間點的隱藏狀態 ht1h_{t-1}
  • 比喻:就像一個排隊買票的長龍。第 2 個人必須等第 1 個人買完拿到收據才能買,第 100 個人則要苦苦等前面 99 個人通通交易完成。
  • 盲點:即使你配備了擁有上萬個核心的強大 GPU(就像擁有 10,000 個售票窗口的超級體育館),但因為「必須依賴前一人」的序列規則,永遠只能有一個窗口開工,其他 9,999 個核心只能坐冷板凳。

2. Transformer 架構:全體廣播機制 📣

  • 運作邏輯:徹底拋棄了「前一個字傳給後一個字」的排隊機制。當輸入一句話 "ai is powerful" 時,我們不需要一個字一個字讀,而是將整句話作為一個「文字矩陣 XX」一次性丟入模型中。
  • 矩陣平行乘法:透過 GPU 優化的矩陣乘法,我們可以在同一微秒內,同時計算出所有單字的 Q,K,VQ, K, V 向量: Q=XWQ,K=XWK,V=XWVQ = X W_Q, \quad K = X W_K, \quad V = X W_V
  • 比喻:就像一個擁有 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 (內容):這個字實際代表的意義。

運作流程

  1. 匹配 (Matching):拿 Q 去跟所有 K 算內積,看誰最契合。
  2. 分配 (Softmax):決定要把多少「注意力」分配給哪個字。
  3. 收穫 (Weighted Sum):將注意力乘上 V,融合成新的向量。

1.3 QKV 架構圖

Loading Diagram...

二、 實戰對齊:在 "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 響應:「我是名詞,人工智慧。」 \rightarrow (極度匹配!相似度分數極高)
    • is 的 Key 響應:「我是繫動詞。」 \rightarrow (關聯度極低)
    • powerful 的 Key 響應:「我是形容詞,強大本身。」 \rightarrow (中等匹配,自我關注)
  • 第三步:Softmax 算出注意力權重 計算出來的注意力權重可能為:
    • ai 的注意力:65%
    • is 的注意力:10%
    • powerful 的注意力:25%
  • 第四步:加權求和,揉合 Value (V) 最後,我們把這些百分比乘以各自的 Value 向量並相加: powerful 的新特徵向量=65%×Vai+10%×Vis+25%×Vpowerful\text{powerful 的新特徵向量} = 65\% \times V_{ai} + 10\% \times V_{is} + 25\% \times V_{powerful}

IMPORTANT

神奇的語意升華發生了! 原本 powerful 只是個孤立的形容詞。但經過 Self-Attention 運算後,它此時的新向量中融入了高達 65% 關於 ai 的特徵。 現在,模型在數學上真正懂了——「是 AI 很強大」,而不是其他東西很強大!


2. 當單字 "ai" 想更新自己時:

  • Query (Q) 提問ai 派出它的 Query 向量發問:「我有什麼『屬性』?
  • 注意力權重分配
    • ai (自我關注):30%
    • is10%
    • powerful:「我是形容詞強大,可以用來修飾你!」 \rightarrow 60%
  • 結果ai 的新向量中融入了 60% powerful 的語意特徵。模型此時在數學上懂了——「這是一個強大的 AI」。

3. 多頭注意力 (Multi-Head Attention) 又是怎麼回事?

如果只有一個 Head(單頭注意力),AI 的眼睛一次只能問一個問題(例如上面問的:「是誰很強大?」)。

為了獲取更全面、不留死角的語意理解,Transformer 引入了 Multi-Head Attention——同時請了 8 位專家 (Heads) 一起讀這句 "ai is powerful",他們會同時問不同的問題:

  • 專家 A (Head 1):專門尋找「文法主謂關係」(關注 aiis 的連接)。
  • 專家 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 工業革命的源頭——TransformerSelf-Attention 的平行運算奧秘。我們從 Word2Vec 的靜態坐標,到 Seq2Seq 的編碼解碼,最後跨越到了無遞迴、全平行的自注意力世界。

然而,當科學家發現 Transformer 擁有如此驚人的平行運算超能力與語意理解力後,他們決定進行一場大膽的「肢解實驗」——把 Transformer 的 Encoder(編碼器)與 Decoder(解碼器)單獨拆開,各自發展到了極致。

這項實驗的產物,就是改變了整個世界的兩大門派:理解派巔峰 BERT生成派霸主 GPT

下一關,我們將正式進入這場世紀大決戰——深入探討 BERT 與 GPT 的技術對決與架構秘密!