注意力机制中的缩放问题及其解决方法

注意力机制中的缩放问题及其解决方法

在讨论加性注意力(Additive Attention)和点积注意力(Dot-product Attention)时,研究表明,对于较小的 d k d_k dk值,两种机制的性能相近。然而,当 d k d_k dk值较大时,加性注意力在没有缩放的情况下表现优于点积注意力。下面详细解释这一现象及其解决方法。

1. 问题描述

1.1 注意力机制的定义
  • 加性注意力:通过前馈神经网络计算相似度。
    e i j = v ⊤ tanh ⁡ ( W q Q i + W k K j ) e_{ij} = \text{v}^\top \tanh(\text{W}_q Q_i + \text{W}_k K_j) eij=vtanh(WqQi+WkKj)

  • 点积注意力:通过查询和键的点积计算相似度。
    e i j = Q i ⋅ K j ⊤ e_{ij} = Q_i \cdot K_j^\top eij=QiKj

1.2 现象描述

对于较大的 d k d_k dk值,点积注意力的点积结果会变得非常大,这会导致softmax函数进入梯度极小的区域,使得梯度消失问题变得严重,从而影响训练效果。

2. 缩放点积注意力的解决方法

为了解决上述问题,点积注意力引入了缩放因子 1 d k \frac{1}{\sqrt{d_k}} dk 1,使得点积结果在softmax之前缩小,从而避免梯度消失问题。

2.1 缩放后的点积注意力公式

缩放后的点积注意力计算相似度的方法如下:
e i j = Q i ⋅ K j ⊤ d k e_{ij} = \frac{Q_i \cdot K_j^\top}{\sqrt{d_k}} eij=dk QiKj

3. 数学推导与数据示例

3.1 数学推导

在不进行缩放时,点积结果 Q i ⋅ K j ⊤ Q_i \cdot K_j^\top QiKj的期望值和方差随着 d k d_k dk的增大而增大,导致softmax函数的输入值范围扩大。

假设 Q Q Q K K K中的元素服从标准正态分布 N ( 0 , 1 ) \mathcal{N}(0, 1) N(0,1),则:
E [ Q i ⋅ K j ⊤ ] = 0 \mathbb{E}[Q_i \cdot K_j^\top] = 0 E[QiKj]=0
Var ( Q i ⋅ K j ⊤ ) = d k \text{Var}(Q_i \cdot K_j^\top) = d_k Var(QiKj)=dk

d k d_k dk增大时, Q i ⋅ K j ⊤ Q_i \cdot K_j^\top QiKj的值变得很大,使得softmax函数的输入值变得极大或极小,导致梯度消失。

通过引入缩放因子 1 d k \frac{1}{\sqrt{d_k}} dk 1,我们将方差缩小为1,从而使得softmax函数的输入值在一个合理范围内,避免梯度消失。

3.2 数据示例

假设我们有以下数据:

  • 查询 Q Q Q [ 1 0 0 1 ] \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} [1001]
  • K K K [ 1 2 3 4 ] \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} [1324]
  • V V V [ 5 6 7 8 ] \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} [5768]

假设 d k = 2 d_k = 2 dk=2,计算未缩放和缩放的点积注意力。

未缩放的点积注意力
  1. 计算相似度

    对于 Q 1 Q_1 Q1 K 1 K_1 K1
    e 11 = 1 ⋅ 1 + 0 ⋅ 2 = 1 e_{11} = 1 \cdot 1 + 0 \cdot 2 = 1 e11=11+02=1

    对于 Q 1 Q_1 Q1 K 2 K_2 K2
    e 12 = 1 ⋅ 3 + 0 ⋅ 4 = 3 e_{12} = 1 \cdot 3 + 0 \cdot 4 = 3 e12=13+04=3

  2. 计算注意力权重

    α 11 = exp ⁡ ( 1 ) exp ⁡ ( 1 ) + exp ⁡ ( 3 ) ≈ 0.1192 \alpha_{11} = \frac{\exp(1)}{\exp(1) + \exp(3)} \approx 0.1192 α11=exp(1)+exp(3)exp(1)0.1192
    α 12 = exp ⁡ ( 3 ) exp ⁡ ( 1 ) + exp ⁡ ( 3 ) ≈ 0.8808 \alpha_{12} = \frac{\exp(3)}{\exp(1) + \exp(3)} \approx 0.8808 α12=exp(1)+exp(3)exp(3)0.8808

  3. 加权求和

    Attention ( Q 1 , K , V ) = 0.1192 [ 5 6 ] + 0.8808 [ 7 8 ] ≈ [ 6.7624 7.7624 ] \text{Attention}(Q_1, K, V) = 0.1192 \begin{bmatrix} 5 & 6 \end{bmatrix} + 0.8808 \begin{bmatrix} 7 & 8 \end{bmatrix} \approx \begin{bmatrix} 6.7624 & 7.7624 \end{bmatrix} Attention(Q1,K,V)=0.1192[56]+0.8808[78][6.76247.7624]

缩放的点积注意力
  1. 计算相似度

    对于 Q 1 Q_1 Q1 K 1 K_1 K1
    e 11 = 1 2 e_{11} = \frac{1}{\sqrt{2}} e11=2 1

    对于 Q 1 Q_1 Q1 K 2 K_2 K2
    e 12 = 3 2 e_{12} = \frac{3}{\sqrt{2}} e12=2 3

  2. 计算注意力权重

    α 11 = exp ⁡ ( 1 2 ) exp ⁡ ( 1 2 ) + exp ⁡ ( 3 2 ) ≈ 0.1192 \alpha_{11} = \frac{\exp(\frac{1}{\sqrt{2}})}{\exp(\frac{1}{\sqrt{2}}) + \exp(\frac{3}{\sqrt{2}})} \approx 0.1192 α11=exp(2 1)+exp(2 3)exp(2 1)0.1192
    α 12 = exp ⁡ ( 3 2 ) exp ⁡ ( 1 2 ) + exp ⁡ ( 3 2 ) ≈ 0.8808 \alpha_{12} = \frac{\exp(\frac{3}{\sqrt{2}})}{\exp(\frac{1}{\sqrt{2}}) + \exp(\frac{3}{\sqrt{2}})} \approx 0.8808 α12=exp(2 1)+exp(2 3)exp(2 3)0.8808

  3. 加权求和

    Attention ( Q 1 , K , V ) = 0.1192 [ 5 6 ] + 0.8808 [ 7 8 ] ≈ [ 6.7624 7.7624 ] \text{Attention}(Q_1, K, V) = 0.1192 \begin{bmatrix} 5 & 6 \end{bmatrix} + 0.8808 \begin{bmatrix} 7 & 8 \end{bmatrix} \approx \begin{bmatrix} 6.7624 & 7.7624 \end{bmatrix} Attention(Q1,K,V)=0.1192[56]+0.8808[78][6.76247.7624]

结论

通过引入缩放因子 1 d k \frac{1}{\sqrt{d_k}} dk 1,点积注意力避免了在 d k d_k dk较大时softmax函数进入梯度极小区域的问题,从而提高了模型的稳定性和训练效果。具体数据示例展示了缩放前后的差异,验证了缩放点积注意力的有效性。

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值