注意力机制

大语言模型微调及其应用的探索 跟踪前沿的技术

注意力机制

一、该技术解决了什么问题

  1. 一方面解决了自然语言(文本,语音)的串型处理方式
  2. 另一方面它模仿人类, 可以动态的改变”注意力”
  3. 也就是处理数据时动态的调整自己该关注哪些数据

二、 什么是注意力机制

2017年以前,处理序列数据(自然语言文本、时间序列型号、音频等)主流模型是RNN

分为两大类LSTM(Long Short-Term Memory)和GRU(gated Recurrent Unit)

1、RNN/LSTM的两大挑战

  1. 难以抓长距离依赖关系

一篇很长的文档,要理解文末某个代词“它”指代的是文章开头的某个概念, 它需要一步一步专递,序列越长信息越容易“掉失”。像玩“传话游戏”, 信息到最后已经面目全非

  1. 并行计算性差

RNN的顺序处理机制决定了它必须完成上一步才能执行下一步,无法并行计算

Transformer正是解决上面两大痛点 注意力机制允许输出序列中的某个元素直接关注输入序列中如何其它位置的元素

解决了长距离依赖和解决了串行计算

2、什么是注意力机制?

注意力机制是一种动态地为输入信息分配注意力权重, 从而让输出聚焦于最相关输入部分的机制

3、注意力机制的输出

对于每个目标token,都会得到一个输出向量,该向量中保存了目标token与源序列中每个token的上下文,其目标是为预测目标序列的下一个token做好准备

三、注意力机制中的Q、K、V三个关键信息

Query: 告诉注意力机制,“我”对那项最感兴趣

Key: 指明了有那些可供查询的项(位置编码后)

Value: 指明了这些项实际包含的信息或者内容

什么是注意力机制?

根据query的变化, 动态调整对不同输入的关注度

突出重要信息,抑制不重要信息,从而让模型做出更好的决策的系统

下面是一张对比表,总结 CNN、FC(全连接)和注意力机制三者在信息处理方式、权重特点、关注点、优点与典型应用方面的区别:

特征 CNN FC 注意力机制
信息处理方式 局部区域,共享卷积核 全局连接,固定权重 动态计算权重,关注不同输入部分
权重特点 权重共享,与输入位置无关 权重固定,学习全局模式 权重依赖 Q 和 K 的交互,随输入变化
关注点 局部空间,学习层级特征 整体输入,不关心空间 输入元素之间的内容相关性
优点 处理图像效果好 更有利于特征整合与分类 灵活处理变长序列,可并行处理
典型应用 计算机视觉 分类 自然语言处理、机器翻译

四、注意力机制与注意力机制的区别

  1. 自注意力机制的Query是每个输入自己提供的
  2. 注意力机制的Query是由外部(目标序列)提供的
  3. 比如机器翻译, 在训练时有源序列和目标序列
  4. 找到目标序列中某个输入与源序列中那个输入更密切用注意力机制
  5. 在同一个句子中,找每个词之间的关系用自注意力机制

五、 详细注意力机制的数学公式