注意力機制 是什麼?
Attention Mechanism:注意力機制 的完整解釋
注意力機制讓神經網路在處理序列資料時,動態分配不同位置的關注權重,提升長距離依賴的捕捉能力
容易混淆
注意力機制 vs 自注意力? 注意力機制:依任務動態調整關注權重 自注意力:序列內部自己互相比對的重要形式 最關鍵的區別:自注意力是注意力機制的一種
注意力機制 vs 池化? 注意力機制:重點在分配焦點 池化:重點在壓縮資訊 最關鍵的區別:注意力是在挑重點,池化是在縮資料
注意力機制 vs 固定特徵提取? 注意力機制:可以和 RNN、Transformer 等架構搭配 固定特徵提取:每個位置被同等對待 最關鍵的區別:前者會學會看誰重要,後者常是平均處理
記住這句就好
哪裡重要,就多看哪裡
實際案例
機器翻譯 翻譯一句長句時,模型會對應到原句裡最相關的詞,避免只看最後幾個字
文件摘要 摘要模型會先抓出標題、關鍵名詞與重複主題,把不重要的句子權重調低
算法與應用
重點 你要看什麼 為什麼重要 Query 當前要找什麼 告訴模型現在在問哪個重點 Key/Value 可被比較的內容 讓模型比對哪個位置該被重視 權重 相對重要性 決定最後保留多少資訊
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 注意力機制 | 台灣與中國大陸通用譯名 |
| 注意力机制 | 簡體寫法 |
| Attention Mechanism | 英文原名 |
| 自注意力(self-attention,自注意力机制) | 最常見的一種形式,Transformer 用的就是它 |
| 交叉注意力(cross-attention) | 兩個不同序列之間的注意力 |
它在解什麼問題
注意力機制最早是為了解決機器翻譯的瓶頸。早期的編碼器解碼器把整個來源句壓成一個固定長度的向量,句子一長,前面的資訊就被擠掉了。
注意力的做法是:解碼每一個字的時候,都可以回頭看來源句的所有位置,並自己決定該看哪裡多一點。
具體是三個角色的運算。每個位置產生 Query(要找什麼)、Key(我是什麼)、Value(我帶的內容)。用 Query 跟所有 Key 算相似度,經過 softmax 變成一組加起來等於 1 的權重,再拿這組權重去加權平均所有 Value。
標準的縮放點積注意力寫成:
Attention(Q, K, V) = softmax(QKᵀ / √d) V
除以 √d 是為了避免維度變大時點積數值過大,讓 softmax 進入梯度接近 0 的飽和區。
為什麼同一個詞在不同句子裡意思會不同
這是注意力機制最常被問到的效果。以「銀行」為例,在「我去銀行存錢」裡它會對「存錢」給高權重,在「他坐在河的銀行邊」裡則會對「河」給高權重。同一個詞的輸出向量是由它與上下文的加權組合算出來的,上下文不同,輸出就不同。
這正是它跟早期詞向量(word2vec)最根本的差別:word2vec 給每個詞一個固定向量,一詞多義無法區分;注意力機制產生的是隨上下文變動的表示。
多頭與代價
多頭注意力(multi-head attention) 把上述運算平行做很多份,每一份在不同的子空間裡看不同的關係,有的看語法、有的看指代、有的看距離。最後把所有頭的結果接起來。這讓模型能同時關注多種關係,而不是被迫用一組權重表達全部。
代價是計算量隨序列長度平方成長。 序列變兩倍,注意力的計算與記憶體變四倍。這是長上下文成本高昂的根本原因,也是 FlashAttention、稀疏注意力、線性注意力這些技術想解決的問題。
注意力權重不等於解釋。 把權重畫出來看起來很像模型的推理過程,但研究顯示同樣的預測可以由差異很大的注意力分布產生。拿它當視覺化參考可以,當成因果解釋不行。
情境判斷
Q1:一段文字很長,模型只看最後一個 token,這比注意力機制更適合嗎? → 通常不適合,因為前文資訊可能被忽略,注意力能把相關位置拉回來
Q2:注意力權重高,就代表那個位置一定是造成答案的真正原因嗎? → 不一定,權重高只表示模型重視它,不等於已經證明因果關係
注意力機制 在 iPAS 考試中的重點
根據歷年統計,注意力機制 相關題目 平均佔 AI 技術類考題 3%, 屬於未分類考範圍。
常見出題方向:類神經網路架構(40%)、序列模型與自然語言處理(35%)、深度學習演算法原理(25%)。
相關術語
常見問題
注意力機制可以完全取代 RNN 嗎?
在很多語言任務上可以,但是否取代要看計算成本、資料型態與模型設計。
注意力一定比較準嗎?
不一定。它很強,但仍要看任務、資料量與訓練方式。
注意力只能用在文字嗎?
不是,影像、音訊與多模態資料也常會用到注意力。
資料來源
- iPAS AI 應用規劃師評鑑內容範圍參考(115.02) ,經濟部產業人才能力鑑定