attention is all your need 点积注意力机制之归一化作用 Dot-Product Attention(小白+deepseek step by step)

一、点积注意力机制和加性注意力机制

1. 点积注意力机制(Dot-Product Attention)

原理
  • 通过计算**查询向量(Query)键向量(Key)**的点积(内积)得到注意力分数:

    Attention(Q,K,V)=softmax(QK⊤dk)VAttention(Q,K,V)=softmax(dk​​QK⊤​)V
    • dkdk​ 是键向量的维度。

    • 缩放因子 1dkdk​​1​:防止点积值过大导致梯度消失。

特点
  • 高效:点积计算复杂度为 O(n2d)O(n2d)(nn 是序列长度,dd 是维度),适合大规模并行计算。

  • 问题:当 dkdk​ 较大时,点积值的方差会随维度增大而增加,导致 softmax 的梯度极小(接近 one-hot 分布)。

  • 解决方案:引入缩放因子 dkdk​​,平衡点积值的量级。

应用场景
  • Transformer 的默认注意力机制(缩放点积注意力)。

  • 适用于高并行化任务(如机器翻译、文本生成)。


2. 加性注意力机制(Additive Attention)

原理
  • 通过一个可学习的神经网络计算查询和键的相似度:

    Attention(Q,K,V)=softmax(MLP(Q⊕K))VAttention(Q,K,V)=softmax(MLP(Q⊕K))V
    • ⊕⊕ 表示拼接(concatenation)。

    • MLP 通常为单层全连接网络 + 激活函数(如 tanh⁡tanh)。

特点
  • 灵活:通过神经网络学习复杂的相似度模式。

  • 稳定性:对高维 dkdk​ 不敏感,避免点积值过大问题。

  • 缺点:计算复杂度更高(需训练额外参数),并行效率较低。

应用场景
  • 早期序列到序列模型(如 RNN + 注意力)。

  • 需要复杂交互建模的任务(如某些对话系统)。


3. 关键对比

特性点积注意力加性注意力
计算效率高(纯矩阵运算)低(需训练神经网络)
参数复杂度无额外参数需训练 MLP 参数
对高维 dkdk​ 的鲁棒性需缩放因子,否则梯度消失天然稳定
表达能力线性相似度非线性相似度(更灵活)

4. 选择建议

  • 优先点积注意力

    • 需要高效计算(如 Transformer)。

    • 输入维度 dkdk​ 适中或已应用缩放因子。

  • 考虑加性注意力

    • 输入维度 dkdk​ 极高且无法有效缩放。

    • 任务需要复杂非线性交互建模。


5. 示例说明

  • 点积注意力的问题
    当 dk=1000dk​=1000 时,点积值的方差可能极大(如均值为 0,方差为 1000),softmax 后几乎只有一个位置有显著权重,导致梯度消失。

  • 加性注意力的优势
    通过 MLP 的 tanh⁡tanh 函数将相似度限制在 [−1,1][−1,1] 范围,避免量级爆炸。


参考文献

  1. 点积注意力:Vaswani et al. (2017), Attention Is All You Need(Transformer 原始论文)。

  2. 加性注意力:Bahdanau et al. (2015), Neural Machine Translation by Jointly Learning to Align and Translate(早期注意力机制)。

二、为什么dk值越大,会引起提取消失

1. 数学背景:点积的方差随维度增长

假设查询向量 Q 和键向量 K的每个元素是独立同分布的随机变量,均值为 0,方差为 1(例如从标准正态分布中采样)。


2. Softmax 函数对极端输入值的敏感度

Softmax 函数定义为:


3. 梯度消失的原因

Softmax 的梯度计算公式为:

结果:梯度几乎全部消失,模型无法通过反向传播更新参数。


4. 缩放因子 dk的作用


5. 实际影响

当未使用缩放因子且 dk​=1000 时:

  1. 注意力权重接近 one-hot:模型只能关注一个位置,丢失上下文信息。

  2. 梯度消失:参数更新停滞,模型无法学习有效的注意力模式。

  3. 训练失败:损失函数不再下降,模型性能严重受限。


总结

  • 问题根源:高维点积导致注意力分数方差过大,softmax 饱和。

  • 解决方案:通过 dk​​ 缩放点积,控制方差为 1。

  • 直观理解:将点积的“温度”(数值范围)降低,使 softmax 保持合理的概率分布。

这一机制是 Transformer 成功处理高维向量的关键设计之一。

进一步分析解释:点积取值范围与分数差异

交互注意力机制是一种在两个向量之间进行关注度计算的机制,常见的有Dot-Product Attention、Additive Attention和Multiplicative Attention等。它们的区别如下: 1. Dot-Product Attention:这种注意力机制是通过计算两个向量之间的来得到注意力权重的。具体地,设两个向量为 $a$ 和 $b$,则得分为 $score(a, b) = a^Tb$,然后通过对得分进行softmax归一化,得到注意力权重。Dot-Product Attention的优是计算简单,速度快,但其缺是可能存在数值稳定性问题。 2. Additive Attention:这种注意力机制是通过将两个向量拼接成一个新的向量,然后通过一个全连接神经网络来计算得分。具体地,将两个向量拼接成 $[a;b]$,然后通过线性变换和激活函数得到得分 $score(a, b) = v^Ttanh(W[a;b]+b)$,其中 $W$ 和 $b$ 是线性变换的参数,$v$ 是用来计算得分的向量。Additive Attention的优是能够处理不同维度的向量,但其缺是计算复杂度高。 3. Multiplicative Attention:这种注意力机制是通过对两个向量进行逐元素乘法,得到一个新的向量,然后通过一个全连接神经网络来计算得分。具体地,设两个向量为 $a$ 和 $b$,则逐元素乘法得到 $c = a \odot b$,然后通过线性变换和激活函数得到得分 $score(a, b) = v^Ttanh(Wc+b)$,其中 $W$ 和 $b$ 是线性变换的参数,$v$ 是用来计算得分的向量。Multiplicative Attention的优是计算复杂度低,但其缺是可能存在信息损失的问题。 需要注意的是,不同的注意力机制适用于不同的场景和任务,具体选择哪种机制取决于具体需求和数据特。同时,也可以结合不同机制的优,进行多机制融合,提高注意力机制的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值