iPAS AI 應用規劃師 中級 科目一

Attention Collapse 怎麼解?

原題 18

當 Transformer 模型發生「注意力分布過於平均(Attention Collapse)」的情形時,導致模型無法有效聚焦於關鍵資訊,下列哪一項策略可有效改善此問題?

白話

Transformer 模型靠「注意力機制」(Attention)來判斷:這句話裡,哪個詞和哪個詞最有關係。

但有時候出問題,叫做「注意力崩塌」(Attention Collapse):模型對每個詞都給差不多的注意力,變成「誰都一樣重要」,就像一個人在開會時,對所有人說的話都半信半疑,結果什麼都沒聽進去。

問你:碰到這個問題,哪個做法能有效改善

點選你的答案。

01 總結

一句話總結

解決 Attention Collapse 的方法:對注意力權重施加稀疏化約束(Sparsity Constraint),強迫模型只把注意力集中在少數幾個最重要的位置,不能讓所有位置的注意力都差不多

02 情境

先感受問題:開會時「對所有人都點頭」的人

假設「智閱」是一個 AI 文件摘要平台,系統用 Transformer 模型讀一份 500 字的合約,要找出「違約條款」在哪裡。

Attention 機制本來應該這樣運作:

「違約」:注意力 0.45(非常重要)
「賠償」:注意力 0.30(重要)
「的」:注意力 0.01(幾乎不看)
「了」:注意力 0.01(幾乎不看)

但發生 Attention Collapse 之後,變成:

「違約」:注意力 0.003
「賠償」:注意力 0.003
「的」:注意力 0.002
「了」:注意力 0.002
(500 個詞,每個詞大約 1/500,幾乎一樣)

模型「誰都看,誰都沒認真看」,最後生成的摘要抓不到違約條款,講了一堆無關緊要的詞。

這就是 Attention Collapse:注意力分布太平均,重要的東西反而淹沒在雜訊裡。

03 對照

為什麼注意力會「攤平」,原始 Softmax 撐不住

標準 Attention 機制用 Softmax 把分數轉成加總為 1 的機率分布,但有五個情況會讓它攤平:

  1. 序列太長:500 個位置,每個都能分到注意力,自然被稀釋。即使有幾個位置分數較高,Softmax 的平滑效果讓差距縮小。
  2. Query-Key 點積數值過大:點積太大進入 Softmax 的梯度飽和區,梯度消失後更新停滯,注意力分布凍結在某個平均狀態。
  3. 訓練初期參數隨機:早期 Q、K 矩陣還沒學好,點積結果接近隨機,Softmax 把隨機分數變成近似均勻分布。
  4. 深層 Transformer 的資訊混合過度:層數越深,每個位置都整合過越多其他位置的資訊,個別位置特徵被平均掉。
  5. Softmax 沒有「強制稀疏」的機制:Softmax 的輸出必定對所有位置都 > 0,無法讓不重要的位置真正歸零。

這五個問題的共同結果:模型沒有辦法強烈地說「我只看這幾個詞,其他不管」。

04 解法

稀疏化約束:強迫模型做「選擇」

回到「智閱」的 500 字合約。稀疏化約束(Sparsity Constraint)的核心邏輯是:

加一個懲罰項,讓訓練過程中,注意力分布「太平均」就會被扣分,強迫模型把注意力集中在少數幾個位置。

具體做法有幾種:

  • Sparse Transformer(Sparsemax):用 Sparsemax 取代 Softmax,Sparsemax 允許輸出直接為 0,讓不重要的位置真的沒有注意力,而不是只有一點點。
  • Top-K Attention:每個查詢只保留點積分數最高的 K 個鍵,其他位置的注意力強制設為 0。
  • L1 正則化施加在注意力矩陣上:在損失函數中加入注意力矩陣的 L1 範數,讓模型學著讓大多數位置的注意力趨近 0。

用了稀疏化約束之後,「智閱」的模型在讀合約時,能明確地說:「我只看第 47、第 123、第 289 個詞」,其他位置幾乎不看。「違約條款」被聚焦,摘要品質提升。

這就是選項 D 講的:對注意力權重施加稀疏化約束(Sparsity Constraint)

技術版:Attention 公式與稀疏化的數學機制

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

標準 Scaled Dot-Product Attention 公式:

Attention(Q, K, V) = Softmax( Q·Kᵀ / √d_k ) · V
Step 1 純故事版
  1. Q(Query):「我現在想找什麼」
  2. K(Key):「每個位置有什麼標籤」
  3. Q·Kᵀ:計算「我想找的」跟「每個位置的標籤」有多像(點積)
  4. ÷√d_k:縮放,避免數值太大導致梯度消失
  5. Softmax:把相似分數轉成加總為 1 的機率,決定「看每個位置多少」
  6. ·V:用這個機率去加權取出「每個位置的內容」
  7. Attention Collapse:Softmax 輸出太平均,每個位置的機率都差不多
Step 2 中文 ↔ 公式對照
故事符號
我想找什麼(查詢向量)Q(Query)
每個位置的標籤(鍵向量)K(Key)
每個位置的內容(值向量)V(Value)
縮放因子,避免梯度消失√d_k(d_k 是向量維度)
注意力分布(機率)Softmax( Q·Kᵀ / √d_k )
最終加權輸出Attention(Q,K,V)
Step 3 符號角色表
Softmax
把一組數字轉成加總為 1 的機率分布。特性:所有輸出都 > 0,無法真正歸零。這是 Attention Collapse 的根源之一。
Sparsemax
Softmax 的稀疏版替代品。允許輸出直接為 0,讓不重要的位置完全沒有注意力。
Sparsity Constraint(稀疏化約束)
加在損失函數上的懲罰項,讓「注意力分布太平均」的情況在訓練時被扣分,迫使模型學著集中注意力。
Top-K Attention
每個查詢只保留相似度最高的 K 個位置,其他強制歸零。K 通常設為序列長度的 10%~20%。
Step 4 完整公式對應

為什麼提高縮放常數(選項 A)是反效果:

# 標準:除以 √d_k 來縮小點積,避免進入 Softmax 飽和區
Attention = Softmax( Q·Kᵀ / √d_k )

# 如果改成除以更大的常數(縮放更多),點積值更小
# 更小的值進入 Softmax → 差距更縮小 → 分布更平均
# 這樣反而讓 Attention Collapse 更嚴重!

# 稀疏化約束則是在損失函數上加 L1 懲罰:
# Loss_total = Loss_task + λ · ||Attention_matrix||_1
# ||Attention_matrix||_1 越大(越不稀疏)就被懲罰越多
Step 5 自我複述

蓋住公式,說出解決 Attention Collapse 的邏輯:

  1. Attention Collapse 是因為 Softmax 把分數平均分配到所有位置
  2. 稀疏化約束在損失函數上加懲罰,讓「分太平均」變得代價高
  3. 模型學著把注意力集中在少數位置(稀疏 = 大多數是 0 或極小值)
  4. Sparsemax 或 Top-K Attention 是技術上強制稀疏的方法
05 陷阱

為什麼其他選項是錯的

A提高 Query-Key 點積(Dot Product)的縮放常數

字面在說什麼

標準 Attention 會把 Q·K 的點積除以 √d_k 來縮放,這裡說把這個縮放的分母變更大。

為什麼不對

縮放常數越大,點積被壓縮得越小,進入 Softmax 的數值差距越小,輸出分布反而更平均,Attention Collapse 更嚴重。縮放常數原本設計是防止點積太大導致梯度消失,不是用來解決分布平均問題的。這個選項的方向完全反了。

誰會選錯

記得「Attention 需要縮放」這個知識點,但搞混縮放的方向和目的的考生。縮放是為了穩定訓練(避免梯度消失),不是為了讓分布更稀疏,兩件事不一樣。

B在 Softmax 前加入高斯雜訊(Gaussian Noise)

字面在說什麼

在計算出 Q·K 分數之後、進 Softmax 之前,加入隨機的高斯雜訊(常態分布的隨機數)。

為什麼不對

加入隨機雜訊是一種「資料增強」或「正則化」手段,目的是防止過擬合,讓模型更健壯。但它不會讓注意力分布「更稀疏」,反而可能讓原本就不夠集中的注意力更加隨機散亂。高斯雜訊解決的是不同問題。

誰會選錯

知道「雜訊可以改善模型泛化」這個概念,看到 Attention 出問題就想加雜訊解決的考生。雜訊是讓模型「更亂」,稀疏化約束是讓模型「更精準」,兩個方向相反。

C使用 ReLU 函數取代 Softmax

字面在說什麼

把 Attention 裡的 Softmax 換成 ReLU(線性整流函數),ReLU 的特性是輸入小於 0 就輸出 0,大於 0 就線性輸出。

為什麼不對

用 ReLU 取代 Softmax 會破壞 Attention 的基本性質:Softmax 保證所有位置的注意力加總為 1(機率分布),ReLU 沒有這個保證。注意力權重不加總為 1 會讓 Value 加權計算失去意義,模型訓練會極度不穩定。這個改動會製造更大的問題,不是解法。

誰會選錯

知道 ReLU 可以讓很多值歸零(有稀疏效果),以為用 ReLU 可以解決注意力攤平問題的考生。ReLU 的稀疏效果在激活函數上有意義,但在 Attention 權重計算裡會破壞機率分布的約束,是不同情境。

06 變形

同個考點下次怎麼變形

變形 1 邊界

注意力稀疏化會不會讓模型漏掉重要資訊?

直覺

如果只看少數位置,萬一那幾個位置選錯了,重要的詞不就被忽略了?

答案

這是真實存在的風險,所以稀疏化約束通常設計成「軟稀疏」(讓大多數接近 0,但不完全為 0)而不是「硬截斷」。此外 Transformer 的多頭注意力(Multi-Head Attention)有多個獨立的注意力頭,每個頭可以聚焦不同位置,分散漏掉重要位置的風險。

變形 2 反例

有什麼任務反而需要「均勻」的注意力分布?

直覺

均勻分布不是都不好吧?

答案

整篇文章摘要(全域摘要)的任務中,模型需要均衡地「看過」全文,過度稀疏的注意力可能遺漏後半段。另外情感分析的某些模式也需要整篇文章的語氣,而不只是個別關鍵詞。稀疏化適合「需要聚焦特定詞彙」的任務,不是萬靈丹。

變形 3 升級版

Flash Attention 和解決 Attention Collapse 有關係嗎?

直覺

Flash Attention 是很常聽到的 Attention 優化方法,是不是也可以解決攤平問題?

答案

Flash Attention 是計算效率的優化,把 Attention 的計算拆成小塊在 GPU 快取裡執行,大幅降低記憶體需求和計算時間。它不改變 Attention 的數學結果,只是加速計算。所以它不解決 Attention Collapse,兩個問題是不同維度:一個是分布品質,一個是計算效率。

變形 4 跨領域

推薦系統的「注意力機制」也會出現類似的攤平問題嗎?

直覺

推薦系統也用了 Attention,應該也有同樣的困境?

答案

是的,在序列推薦模型(如 SASRec、BERT4Rec)中,如果用戶歷史行為序列很長,Attention 也容易攤平,導致模型對最近購買和很久以前購買的東西給同等關注。解法和 NLP 一樣:稀疏注意力或加入位置衰減(越近的互動給越高的注意力基礎分)。

變形 5 評估指標

怎麼知道模型發生了 Attention Collapse?有什麼診斷方法?

直覺

模型表現差就知道了,還需要特別診斷嗎?

答案

有更直接的方法。可視化注意力矩陣(Attention Map):把每個頭的注意力權重畫成熱力圖,如果所有位置顏色均勻(沒有深色熱點),就是 Attention Collapse 的特徵。另外可以計算注意力分布的熵(Entropy):熵越高代表分布越均勻。設定一個熵的警戒閾值,超過就觸發稀疏化干預。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二次 iPAS AI 應用規劃師 中級 科目一 第 18 題

查看官方原文 PDF