自然语言处理---Transformer机制详解之Multi head Attention详解

1 采用Multi-head Attention的原因

  • 原始论文中提到进行Multi-head Attention的原因是将模型分为多个头, 可以形成多个子空间, 让模型去关注不同方面的信息, 最后再将各个方面的信息综合起来得到更好的效果.
  • 多个头进行attention计算最后再综合起来, 类似于CNN中采用多个卷积核的作用, 不同的卷积核提取不同的特征, 关注不同的部分, 最后再进行融合.
  • 直观上讲, 多头注意力有助于神经网络捕捉到更丰富的特征信息.

2 Multi-head Attention的计算方式

  • Multi-head Attention和单一head的Attention唯一的区别就在于, 其对特征张量的最后一个维度进行了分割, 一般是对词嵌入的embedding_dim=512进行切割成head=8, 这样每一个head的嵌入维度就是512/8=64, 后续的Attention计算公式完全一致, 只不过是在64这个维度上进行一系列的矩阵运算而已.
  • 在head=8个头上分别进行注意力规则的运算后, 简单采用拼接concat的方式对结果张量进行融合就得到了Multi-head Attention的计算结果.
  • Multi-Head Attention是利用多个查询,来平行地计算从输入信息中选取多个信息。每个注意力关注输入信息的不同部分,然后再进行拼接。

3 Multi-Head Attention的作用

  • 多头注意力的机制进一步细化了注意力层,通过以下两种方式提高了注意力层的性能:
    • 扩展了模型专注于不同位置的能力。当多头注意力模型和自注意力机制集合的时候,比如翻译"动物没有过马路,因为它太累了"这样的句子的时候,想知道"它"指的是哪个词,如果能分析出来代表动物,就很有用。
    • 为注意力层提供了多个"表示子空间"。对于多头注意力,不仅有一个而且还有多组Query/Key/Value权重矩阵,这些权重矩阵集合中的每一个都是随机初始化的。然后,在训练之后,每组用于将输入Embedding投影到不同的表示子空间中。多个head学习到的Attention侧重点可能略有不同,这样给了模型更大的容量。

4 小结

  • Transformer架构采用Multi-head Attention的原因.
    • 将模型划分为多个头, 分别进行Attention计算, 可以形成多个子空间, 让模型去关注不同方面的信息特征, 更好的提升模型的效果.
    • 多头注意力有助于神经网络捕捉到更丰富的特征信息.
  • Multi-head Attention的计算方式.
    • 对特征张量的最后一个维度进行了分割, 一般是对词嵌入的维度embedding_dim进行切割, 切割后的计算规则和单一head完全一致.
    • 在不同的head上应用了注意力计算规则后, 得到的结果张量直接采用拼接concat的方式进行融合, 就得到了Multi-head Attention的结果张量.
  • Multi-Head Attention的作用
    • 扩展了模型专注于不同位置的能力
    • 为注意力层提供了多个"表示子空间"
相关推荐
Apache Flink1 分钟前
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
人工智能·flink·apache
索迪迈科技7 分钟前
登顶 NAVSIM!博世最新IRL-VLA:逆强化学习重构自动驾驶VLA闭环训练
人工智能·重构·自动驾驶
Dfreedom.15 分钟前
在Windows上搭建GPU版本PyTorch运行环境的详细步骤
c++·人工智能·pytorch·python·深度学习
confiself23 分钟前
AndroidWorld+mobileRL
人工智能·深度学习
aneasystone本尊32 分钟前
学习 Chat2Graph 的任务分解与执行
人工智能
嘀咕博客34 分钟前
10Web-AI网站生成器
人工智能·ai工具
西柚小萌新39 分钟前
【从零开始的大模型原理与实践教程】--第一章:NLP基础概念
人工智能·自然语言处理
嘀咕博客1 小时前
SafeEar:浙大和清华联合推出的AI音频伪造检测框架,错误率低至2.02%
人工智能·音视频·ai工具
Hello123网站1 小时前
FinChat-金融领域的ChatGPT
人工智能·chatgpt·金融·ai工具
嘀咕博客1 小时前
PixVerse -免费在线AI视频生成工具
人工智能·音视频·ai工具