自注意力機制

Self-Attention

讓序列中每個位置關注其餘位置的注意力機制

詳細解釋

自注意力(Self-Attention)是注意力機制的特殊形式,計算序列內部元素間的相互關係,讓每個位置都能關注序列中所有其他位置,是Transformer架構 (變換器 / 注意力模型) (Switch Transformer)的核心組件。

與交叉注意力的區別:

  • 自注意力:Query、Key、Value來自同一輸入
  • 交叉注意力:Q來自一個輸入,K/V來自另一個
  • 例子:
  • 編碼器:自注意力
  • 解碼器交叉注意力:關注編碼器輸出

計算:

  • 輸入:X ∈ R^(n×d)(n個token,d維)
  • Q = XW_q,K = XW_k,V = XW_v
  • Attention = softmax(QK^T/√d_k)V
  • 輸出:每個位置的上下文表示

特性:

  • 全局依賴:任何位置可以關注任何位置
  • 並行計算:不像RNN需要順序
  • 對稱性:理論上對稱(實際因投影不同)
  • 計算複雜度:O(n²d),序列長度的平方

優勢:

  • 長距離依賴:直接連接,無梯度消失
  • 可解釋:注意力權重顯示關係
  • 靈活:學習不同的依賴模式

局限:

  • 計算複雜度:n²限制序列長度
  • 無序:需額外加入位置信息
  • 記憶體:n²的注意力矩陣

位置編碼:

  • 自注意力本身無序,需位置信息
  • 正弦位置編碼:Transformer原始
  • 可學習位置嵌入:BERT等使用
  • 相對位置:考慮相對距離

變體:

  • 稀疏注意力:只關注部分位置
  • 線性注意力:降低複雜度到O(n)
  • 局部注意力:只關注鄰域

自注意力是Transformer和現代NLP的基礎。

探索更多AI詞彙

查看所有分類,繼續學習AI知識