AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
52/100 第六週:📌 轉換器架構與注意力機制(Transformers & Attention)🔍
52.Attention 機制原理 ✨「注意力」讓模型專注關鍵位置!
🎯 單元導讀:
在神經網路的早期架構中,所有輸入資訊被平等處理,但在真實語境中,某些詞彙比其他詞更重要。
「Attention 機制」的誕生,正是為了解決這個問題。
它讓模型學會「專注於關鍵部分」,模擬人類理解語句時的聚焦行為,成為 Transformer、BERT、GPT 等大型模型的核心技術。
________________________________________
🔍 一、Attention 的核心想法是什麼?
🧠 問題背景:
當模型處理一段文字(或影像)時,每個輸入的位置(Token)都不應被平等對待。
注意力機制(Attention) 允許模型動態調整「每個輸入對輸出的貢獻程度」。
________________________________________
📦 基本公式:
Attention(Q,K,V)=softmax( QK^t / √dk ) V
Q Query(查詢向量)
K Key(關鍵詞向量)
V Value(資訊向量)
dk 向量維度,用於縮放穩定梯度
這個公式的重點是:
• 比較 Q 與所有 K 的相似度(內積)
• 用 softmax 正規化為權重
• 加權平均所有 V,作為輸出結果
elf-Attention 的本質在於讓每個詞動態決定該關注哪些其他詞。具體來說,每個詞會將自己的 Query 向量與所有詞的 Key 向量進行內積比對,透過 softmax 計算出對其他詞的「關注程度」(即注意力權重),再根據這些權重加權平均其他詞的 Value 向量,形成新的語意表示。這樣,每個詞都能根據整體上下文重新調整自己,實現對全句語意的深度理解,這正是 Transformer 能捕捉長距依賴的關鍵機制。
🔁 每個詞都這樣做,就能「理解整句話中,該注意誰」。
________________________________________
🌐 二、視覺化例子:翻譯任務
輸入(英文):"The cat sat on the mat."
輸出(法文):"Le chat s’est assis sur le tapis."
當模型要輸出 "assis" 時,它可能會「注意」英文中的 "sat",這就是 Attention 的作用:
告訴模型應該看哪裡!
________________________________________
🔀 三、注意力類型比較
- 🔹 Self-Attention —— 應用於 Transformer Encoder,用於輸入與輸入之間互相注意。
- 🔸 Cross-Attention —— 應用於 Transformer Decoder,讓 Decoder 對 Encoder 的輸出進行注意。
- 🔹 Global Attention —— 應用於 Seq2Seq 模型,考慮整體輸入的所有資訊。
- 🔸 Local Attention —— 應用於 Seq2Seq(變體),只關注相對位置附近的資訊。
________________________________________
🔁 四、Self-Attention 與序列關聯
在 Self-Attention 中:
• 每個詞同時擁有 Q、K、V
• 該詞會根據它與其他詞的關聯,重新計算自己的表示向量
• 適用於捕捉語境與語意結構
________________________________________
🧩 五、加入位置編碼(Positional Encoding)
因為 Transformer 不像 RNN 那樣依序處理資料,它是一次性並行讀入整個句子,因此無法自動感知詞語的先後順序。為了讓模型理解語序,需引入額外的位置資訊(Positional Encoding),將每個詞在句中的位置轉換為向量,並加到詞嵌入(Word Embedding)中。
這樣做可以幫助模型保留詞與詞之間的順序關係,使其在進行自注意力計算時,不僅考慮語意關聯,還能理解結構上的先後順序,從而更有效地建構語句意義。
這使模型保有「順序感」,即使 Attention 是全連接的。
________________________________________
💡 六、總結與應用啟示
✅ Attention = 讓模型更像人類一樣聚焦重點
✅ 可視為「神經網路的注意力濾鏡」,提升序列資訊處理效率
✅ 是 Transformer、BERT、GPT、ViT、DALL·E 等現代模型的標配能力
________________________________________
💬 問題挑戰:
1. 為什麼我們需要 Key、Query、Value 三者,而不是單純計算相似度?
ANS:
Key、Query、Value 三者的設計讓 Self-Attention 能更靈活地處理語意關聯。Query 是當前詞想「詢問」的角度,Key 是其他詞所攜帶的訊號,而 Value 是實際要傳遞的語意資訊。這樣的分離設計讓模型可以不只根據語意相似度進行加權,而是根據任務需要動態選擇關注對象與內容。如果只用相似度,模型只能捕捉表層相似,而無法有選擇地關注重要上下文,降低理解能力與表達力。
2. 若模型處理一段對話,哪些詞之間會產生強 Attention?
ANS:
在對話中,模型會對有語意關聯或需要回應的詞產生強 Attention,例如:對句型中的代名詞(如「他」、「這件事」)通常會強烈關注前文的主詞或事件來解釋其指涉對象;問句與回答中關鍵詞之間(如「去哪裡?」與「去學校」)也會建立強連結。Attention 會幫助模型理解語境中的照應關係,使其能更自然地進行語句生成或理解。
3. 如果移除位置編碼,Transformer 會出現什麼問題?
ANS:
若移除位置編碼,Transformer 雖然仍能透過 Attention 建立詞與詞之間的關聯,但將無法區分詞語的先後順序。例如「狗咬人」與「人咬狗」在沒有順序概念的情況下可能被當作相同語意,導致模型失去語序敏感度,進而產生語意錯誤或無法正確解釋結構。因此,位置編碼對於保持語言的語法與語意結構至關重要。