张芷铭的个人博客

注意力机制让模型动态关注输入的不同部分,Self-attention 处理序列内部关系,Cross-attention 处理跨序列交互。

Self-attention(自注意力)

同一序列内部元素间的信息交互,每个元素根据与其他元素的关系更新表示。

计算步骤

  1. 线性变换得到 Q、K、V
  2. 计算注意力权重:$\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)$
  3. 加权求和:输出 = 权重 × V

作用:捕捉全局依赖、支持并行计算

Cross-attention(交叉注意力)

两个不同序列间的信息交互,查询序列通过 Q 向键值序列寻求信息。

应用

  • 多模态任务(图像-文本)
  • Encoder-Decoder 架构(机器翻译)

注意力机制对比

类型描述应用场景
Self-attention同一序列内部交互Transformer、BERT
Cross-attention跨序列交互多模态、Encoder-Decoder
Multi-Head多头并行捕捉不同子空间所有 Transformer
Additive前馈网络计算权重Bahdanau Attention
Hard离散选择,不可微图像标注
Soft连续加权,可微NMT、图像描述
Global与所有键交互短序列任务
Local局部窗口内交互长序列任务
Sparse选择部分键值对超长序列

Scaled Dot-Product Attention

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V$$

$\sqrt{d_k}$ 防止点积过大导致梯度消失。

Comments