深度學習 · 自然語言處理

注意力機制 Attention

處理每個字時,讓模型「動態環顧全句」、找出跟它最相關的字加權取用——這就是 Transformer、GPT、BERT 的心臟。

動態全局關注Q · K · VScaled Dot-Product自注意力多頭

💡一句話定義

注意力機制(Attention)= 讓模型在處理每一個位置時,能動態查看輸入的所有位置、依相關度加權取用資訊,而不必把整段話塞進單一固定向量。相關的字給高權重、無關的給低權重。

🤔為什麼需要 Attention?

RNN 把整段輸入壓成一個固定向量,長句子讀到後面就忘了前面;CNN 又只能看局部。Attention 讓模型在處理某個字時能「全局搜尋」整句,直接找出跟當前字最相關的資訊——長距離依賴一次搞定,也能平行運算。

🎮互動:每個字在關注誰

把滑鼠移到句子裡的字(試試 it):上方弧線連到它最關注的字、線越粗代表權重越高,下方顯示前 5 名注意力分數。你會看到 "it" 強烈關注 "animal"(因為後面說 tired 累了)。

Attention Mechanism (注意力機制) 互動演示
請將滑鼠移到上方的單字 (例如 "it"),觀察它關注哪些詞。

🔑Q、K、V:圖書館的比喻

自注意力給每個字算出三個向量,就像在圖書館找資料:

🔍Query(查詢)
我手上的字在問:「誰跟我有關?」
🏷️Key(標籤)
每個字的索引標籤,拿來被 Query 匹配(點積)。
📄Value(內容)
每個字的實際內容;Q、K 匹配度高就多取一點 V。

🧮核心公式(Scaled Dot-Product)

Attention(Q, K, V) = softmax( QKᵀ / √d_k ) · V

三步:① QKᵀ 算 Query 和每個 Key 的相似度分數;② softmax 把分數變成加起來為 1 的權重;③ 用權重對所有 Value 加權求和,得到這個位置的輸出。

📐為什麼要除以 √d_k(縮放)?

維度 d_k 大時,Q·K 的內積數值會變得很大,讓 softmax 進入梯度極小的飽和區(幾乎一面倒),訓練不穩。除以 √d_k 把數值縮回合理範圍、穩定梯度——這就是它叫 Scaled Dot-Product Attention 的原因。

🔀自注意力 vs 跨注意力 vs 多頭

種類Q、K、V 來源用途
自注意力 Self都來自同一序列讓序列內部彼此關聯、理解上下文
跨注意力 CrossQ 來自一邊、K/V 來自另一邊翻譯時輸出關注輸入(如「愛」關注 love)
多頭 Multi-Head拆成多組 Q/K/V各頭在不同子空間學不同關係,再合併
多頭好處:一個頭可能學語法、另一個學語意、另一個學指代……多頭並行再拼起來,比單一注意力抓到更豐富的關聯。

⚠️兩個易混點

① 注意力本身不含順序——它只算「誰跟誰相關」,不知道字的先後,所以 Transformer 要另外加位置編碼
高注意力 ≠ 因果重要性:注意力權重不能完全當成「模型為什麼這樣決定」的可靠解釋,別過度解讀。

自我檢測

Q1. 注意力機制解決了 RNN 的什麼問題?
RNN 把整段壓成固定向量、長句會忘記前面。注意力讓模型每步都能動態查看所有位置、依相關度加權取用,直接處理長距離依賴,且可平行。
Q2. Q、K、V 各是什麼角色?
Query=我要找什麼;Key=每個位置的特徵標籤;Value=每個位置的內容。用 Q 和各 K 算相似度、softmax 成權重,再對 V 加權求和。
Q3. 為什麼要除以 √d_k?
維度大時 Q·K 內積會變大,使 softmax 飽和、梯度極小、訓練不穩。除以 √d_k 縮放可穩定數值與梯度(Scaled Dot-Product Attention)。
Q4. 自注意力和跨注意力差在哪?
自注意力的 Q、K、V 都來自同一序列(理解自身上下文);跨注意力的 Q 來自一邊、K/V 來自另一邊(如翻譯時輸出關注輸入)。

🎯重點整理

📝 iPAS 考點提醒

注意力機制(Attention)是現代深度學習的關鍵,iPAS 中級科目一高頻考點。重點:讓模型在處理某位置時動態地加權關注序列中其他相關位置,捕捉長距離依賴;自注意力是 Transformer 核心。易混點:注意力本身不含順序、需位置編碼;高注意力不必然等於因果重要性(別把它當完全可靠的解釋)。情境:理解 Transformer、BERT、GPT 為何能抓上下文關係。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

注意力機制(Attention)解決什麼問題?

早期 RNN 把整段輸入壓成單一固定向量,長序列易遺失資訊。注意力讓模型每一步「動態查看」輸入的所有位置、依相關度加權取用,不必把資訊塞進單一向量。

Query、Key、Value 是什麼?

每個位置產生 Query(我要找什麼)、Key(我有什麼特徵)、Value(我的內容)。用 Query 和各 Key 算相似度分數,經 softmax 變權重,再對 Value 加權求和得到輸出。

自注意力(self-attention)和一般注意力差在哪?

自注意力的 Q、K、V 都來自同一序列,讓序列內部彼此關聯以理解上下文;跨序列注意力(如翻譯)則 Q 來自一邊、K/V 來自另一邊。

為什麼要除以根號 d_k(縮放)?

維度大時 Q·K 內積會變大,使 softmax 進入梯度極小的飽和區。除以 √d_k 縮放可穩定數值與梯度,這就是 Scaled Dot-Product Attention。

多頭注意力(Multi-Head)有什麼好處?

把注意力拆成多個頭,各自在不同子空間學不同關係(語法、語意…)再合併,比單一注意力能捕捉更多元的關聯。

🧭 相關主題

← 返回 AI 學習與考證地圖