注意力机制与自注意力机制的区别

0 阅读2分钟

两者的关系是:

自注意力机制(Self-Attention)是注意力机制(Attention)的一种特殊情况。

1. 注意力机制是什么

注意力机制的核心思想是:

在处理当前信息时,不平均看所有输入,而是“有重点地看”。

比如做机器翻译时,生成当前这个中文词,模型会重点关注英文句子里和它最相关的那些词。

一般写法里有三类向量:

  • Q(Query) :当前我要找什么
  • K(Key) :每个位置都有什么特征可供匹配
  • V(Value) :真正要取出的内容

流程是:

  1. Q 和各个 K 算相关性
  2. 做归一化,得到权重
  3. 用权重对 V 加权求和

2. 自注意力机制是什么

自注意力的“自”,意思是:

Q、K、V 都来自同一个输入序列内部。

也就是一句话中的每个词,去关注同一句话里的其他词

例如句子:

“小明把书放在桌子上,然后他走了。”

这里“他”在理解时,会去关注句子里的“小明”,这就是自注意力在句子内部建关系。


3. 两者最本质的区别

对比项注意力机制自注意力机制
范围广义概念注意力的一种特殊形式
Q来源可来自一个序列来自当前序列本身
K/V来源可来自另一个序列也来自当前序列本身
典型场景编码器-解码器注意力Transformer 编码器内部、GPT内部

4. 举个更直观的例子

普通注意力

机器翻译里:

  • 英文句子编码结果作为 KV
  • 当前正在生成的中文词状态作为 Q

这时是“一个序列关注另一个序列”。

自注意力

输入一句话:

  • 每个词都从这句话自己生成 Q、K、V

这时是“自己关注自己这句话里的其他位置”。


5. 一句话记忆

可以这样记:

注意力:重点看相关信息
自注意力:在同一段输入内部自己看自己


6. 为什么 Transformer 特别依赖自注意力

因为自注意力特别适合处理:

  • 长距离依赖
  • 词与词之间的关系
  • 并行计算

比如一句话里,开头的词和结尾的词关系很远,RNN不太容易处理,但自注意力可以直接建立联系。


7. 结论

最准确的说法是:

注意力机制是大类,自注意力机制是其中一种。
区别在于 Q、K、V 是否来自同一个序列。

注意力机制与自注意力机制的区别.png