Transformer 與大型語言模型內部機制
線性注意力(linear attention)
標準注意力把每個查詢與每個鍵比較,時間與記憶體都隨序列長度呈二次方。線性注意力以一個可因式分解的核取代 softmax 相似度,藉此移除二次方爆炸。訣竅在於:若查詢 q 與鍵 k 的相似度可寫成特徵映射 phi(q) 與 phi(k) 的內積,則由結合律可先對鍵求和——一次算出 phi(k) 乘 v 轉置的累積和——再讓每個查詢重複使用它,把二次方成本變成線性。
具體上,查詢 i 的輸出變成 phi(q_i) 轉置乘以「對 j 至多 i 的 phi(k_j) 乘 v_j 轉置之和」,再除以 phi(q_i) 轉置乘以「對 j 至多 i 的 phi(k_j) 之和」。括號內是你由左到右累積的一個矩陣與一個向量,因此因果線性注意力有遞迴形式:一個固定大小的狀態 S,每步以 S 變為 S 加 phi(k_t) 乘 v_t 轉置更新,再由 phi(q_t) 讀出。這給了每步常數記憶體與線性總時間,也揭示注意力與 RNN 其實是同一種計算的兩個面向。
代價在品質:固定大小的狀態無法以完整 softmax 注意力的保真度儲存無界的歷史,因此樸素線性注意力在需要精準回憶的任務上表現較差。具備閘控或衰減狀態、delta-rule 更新與選擇性狀態空間模型的現代變體大幅縮小了這個差距,使線性注意力重新成為長序列的認真替代方案。
\mathrm{Attn}(q_i) = \frac{\phi(q_i)^\top \sum_{j\le i}\phi(k_j)\,v_j^\top}{\phi(q_i)^\top \sum_{j\le i}\phi(k_j)}
依結合律先對鍵求和,即得到遞迴的線性時間形式。
又称
另见