注意力機制(Attention Mechanism)是深度學習,尤其是自然語言處理(NLP)與大型語言模型(LLM)中的一個革命性概念。它讓模型能像人類一樣,在處理資訊時「聚焦」於重要的部分。
為什麼需要 Attention?
在傳統的序列模型(如 RNN、LSTM、GRU)中,模型必須逐步處理序列資料。這會導致一個嚴重的問題:長距離依賴問題。當序列很長時,模型很難記住開頭的資訊,導致後面的計算會遺失重要上下文。注意力機制的提出,正是為了讓模型能跳脫序列處理的限制,直接「有選擇地專注」在輸入序列的某些關鍵部分,而不是平均地對待每一個字。這就像我們閱讀文章時,會把注意力放在與當前問題相關的關鍵字上。
Attention 的核心想法
注意力機制的核心思想很簡單:給不同的輸入元素分配不同的權重,代表它們對當前輸出的影響程度。這背後運作的原理可以用數學公式表示,但其概念可以拆解為三個關鍵元素:
Q (Query):查詢向量,代表我們想要關注的資訊。
K (Key):鍵向量,用來與查詢進行比對,以計算相似度。
V (Value):值向量,包含實際的資訊內容。
模型會計算Q與所有K的相似度,並將這些相似度轉換成權重。最終的結果就是所有V的加權平均,而權重的大小取決於Q和K的匹配程度。
Attention 舉例
假設我們要翻譯一句英文:「The cat sat on the mat」 → 「那隻貓坐在墊子上」。
當模型在生成「貓」這個字時,它會把注意力集中在 "cat",並給予最高的權重。
當生成「墊子」這個字時,它的注意力會集中在 "mat"。
透過這種方式,模型能夠根據上下文動態地調整注意力,大幅改善翻譯的準確性和流暢度。
Attention 的種類與演進
注意力機制有多種變體,而演進的方向是為了追求更高的效率與更廣的應用性。
Bahdanau Attention (Additive Attention)
最早在機器翻譯領域提出,它使用一個小型神經網路來計算 Q 和 K 的關聯性,是 Attention 機制的開山鼻祖。
Luong Attention (Multiplicative Attention)
簡化了計算方式,透過內積來計算相似度,比 Bahdanau Attention 更高效。
Scaled Dot-Product Attention
這是Transformer模型所使用的 Attention。它在內積計算後,額外除以√dx來避免因向量維度過大導致數值過大,從而確保模型訓練的穩定性。
Self-Attention (自注意力機制)
這是一個特殊的Attention類型,也是Transformer的核心。它的特別之處在於:Q、K、V 全部來自同一個序列。這讓句子中的每個詞都能與其他詞建立關聯,讓模型能夠同時考慮整個句子的所有資訊。
這讓模型能夠達成以下三點:
有效捕捉長距離依賴:不管兩個詞相隔多遠,模型都能直接透過 Attention 機制建立關聯。
支援並行運算:不再需要逐詞處理,可以一次性處理整個序列,大幅提升了訓練和推斷效率。
具備權重解釋性:透過觀察 Attention 權重圖,我們可以得知模型在做決策時「專注」於哪些資訊,有助於理解模型行為。
這也是為什麼Transformer架構能夠成為BERT、GPT等大型語言模型(LLM)的基礎,並引領了當前 AI 發展的浪潮。