1.模型對比
-
RNN(馬爾科夫鏈式編碼)
- 通過遞歸計算逐個處理 token,當前編碼結果 h t h_t ht?僅依賴前一步的隱藏狀態 h t ? 1 h_{t-1} ht?1?和當前輸入 x t x_t xt?
- 局限性:序列建模需嚴格串行,無法并行;長距離依賴易丟失(梯度消失/爆炸)
- 例:雙向 LSTM 需正向+反向兩次遍歷才能捕獲上下文,但仍是局部傳遞
-
CNN(局部窗口編碼)
- 使用固定尺寸的卷積核(如窗口為3)聚合局部上下文信息
- 局限性:單層僅能捕獲窗口內的局部特征,需多層堆疊擴大感受野
- 例:深度 CNN 需多層級聯才能建模長距離依賴,信息傳遞路徑長
-
Attention(全局交互編碼)
- 通過 Query-Key-Value 矩陣計算,直接建立任意兩個 token 間的關聯
- 核心優勢:單層即可全局交互,每個位置的編碼融合了序列中所有 token 的信息
- 例:Self-Attention 中,每個詞與整個序列計算相似度權重(如公式中的 Q K T / d QK^T/\sqrt{d} QKT/d?)
2.Attention的實現方式
1.Attention的常見實現方式
-
加性 Attention (Additive Attention / Bahdanau Attention)
- 公式:
Score ( Q , K i ) = v T tanh ? ( W q Q + W k K i ) \text{Score}(Q, K_i) = v^T \tanh(W_q Q + W_k K_i) Score(Q,Ki?)=vTtanh(Wq?Q+Wk?Ki?) - 特點:通過可學習的參數矩陣 W q , W k W_q, W_k Wq?,Wk?和向量 v v v計算注意力權重,適用于 Query 和 Key 維度不同的場景。
- 公式:
-
點積 Attention (Dot-Product Attention / Luong Attention)
- 公式:
Score ( Q , K i ) = Q ? K i \text{Score}(Q, K_i) = Q \cdot K_i Score(Q,Ki?)=Q?Ki? - 特點:計算高效(矩陣乘法),但需 Query 和 Key 維度相同;當維度較高時,點積結果可能過大,導致 Softmax 梯度消失。
- 公式:
-
縮放點積 Attention (Scaled Dot-Product Attention)
- 改進點:在點積基礎上引入縮放因子 d k \sqrt{d_k} dk??,緩解高維點積結果過大的問題。
- 公式:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk??QKT?)