当前位置: 首页 > news >正文

[笔记.AI]多头自注意力机制(Multi-Head Attention)

        多头自注意力是深度学习领域,特别是自然语言处理(NLP)和Transformer模型中的关键概念。其发展源于对序列数据中复杂依赖关系的建模需求,特别是在Transformer架构的背景下。

举例

比喻-读长篇文章

        用一个简单的比喻来理解“多头注意力机制”——想象你在读长篇文章,为了全面理解,你可能先浏览主旨,再仔细阅读细节,还可能找特定关键词或主题,通过用不同的方式来理解整篇文章。 

  • 第一次,你可能会快速浏览全文,抓住主要观点(这就像一个“头”关注全局)。
  • 第二次,你可能会仔细阅读某些段落,理解细节(这就像另一个“头”关注局部)。
  • 第三次,你可能会寻找特定的关键词或主题,分析它们之间的关系(这就像第三个“头”关注特定模式)。

        每个“头”都在关注文本的不同方面——语法、语义、上下文等。通过结合这些不同的视角,你最终能对文章有更全面的理解。

案例-机器翻译任务

        假设我们需要翻译英文句子 "I love artificial intelligence" 。传统模型可能只关注单一的上下文关系,而多头自注意力机制可以同时捕捉到 "I" 和 "love" 的主谓关系,以及 "artificial" 和 "intelligence" 的修饰关系。

步骤解析:

输入嵌入:将英文句子中的每个单词映射为向量。
多头自注意力:通过多个头分别捕捉不同的语义关系,例如:
        头 1 关注 "I" 和 "love" 的关系。
        头 2 关注 "artificial" 和 "intelligence" 的关系。
输出生成:通过注意力机制加权后,生成句子的翻译结果。

(下面借助 Grok 3 协助生成) 


背景与定义

        多头自注意力最初由Vaswani等人在2017年的论文“Attention Is All You Need”中提出,标志着Transformer模型的诞生。该机制扩展了自注意力,允许模型通过多个并行“头”同时关注输入序列的不同部分。每个头可以学习捕获不同类型的依赖关系,例如短距离的语法结构或长距离的语义关联。

        根据Multi-Head Attention Explained的内容,多头注意力模块运行注意力机制多次,输出被连接并线性变换。直观上,多个头允许模型以不同方式关注序列部分,例如长距离依赖与短距离依赖。

自注意力的基础

        为了理解多头自注意力,我们首先需要掌握自注意力机制。给定输入序列(X),每个标记生成查询(Q)、键(K)和值(V)向量:

  • Q=XW^Q

  • K = X W^K

  • V = X W^V

其中,W^QW^KW^V是可学习的权重矩阵。注意力得分通过以下公式计算:

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

        这里,{d_k} 是键的维度,缩放因子 \frac{1}{\sqrt{d_k}} 防止点积过大。softmax函数将得分归一化为概率分布,最终通过加权求和值向量生成输出。

        根据Difference between Self-Attention and Multi-head Self-Attention,自注意力分析序列中元素之间的关系,每个元素基于Q、K、V向量计算兼容性得分。

多头自注意力的工作原理

多头自注意力通过并行运行多个自注意力头来增强这一过程。对于( h )个头,计算如下:

head_i=Attention(QW_i^Q,KW_i^K,VW_i^V)

其中,W_i^QW_i^KW_i^V是第( i )个头的投影矩阵。所有头的输出随后被连接并线性变换:

MultiHead(Q,K,V)=Concat(head_1,...,head_h)W^Q

        根据11.5. Multi-Head Attention,查询、键和值通过( h )个独立学习的线性投影变换,然后并行输入注意力池化。最后,( h )个池化输出被连接并通过另一个线性投影生成最终输出。

优势与应用

多头自注意力的主要优势在于其多样性和效率:

  • 多样性:每个头可以专注于不同的子空间。例如,根据Why multi-head self attention works,一个头可能关注短距离依赖,另一个关注长距离语义关系。

  • 效率:并行计算使得多头注意力在GPU上特别高效。根据Understanding and Coding Self-Attention, Multi-Head Attention,代码实现通常使用MultiHeadAttentionWrapper类,初始化多个SelfAttention实例。

        在Transformer中,多头自注意力用于编码器和解码器。编码器使用自注意力处理输入序列,允许每个位置关注所有位置。解码器使用因果掩码,确保预测位置( i )时仅关注前面的位置。

        根据Explained: Multi-head Attention (Part 1),自注意力允许网络学习如何在输入序列(称为标记)之间路由信息,例如句子“the cat jumped over the lazy dog”中,模型可能学习将“cat”与“jumped”关联。

技术细节与实现

        实现多头自注意力时,通常设置头的数量( h )为超参数,每个头的输出维度为d_{model}/h。根据Multi-Head Self Attention: Short Understanding,在大型语言模型(LLM)中,使用掩码多头自注意力,防止模型“向前看”,适用于下一词预测任务。

        计算复杂度方面,根据Tutorial 6: Transformers and Multi-Head Attention,与RNN相比,自注意力层可以并行化所有操作,但在序列长度超过隐藏维度时可能更昂贵。

意外的应用扩展

        除了NLP,多头自注意力还应用于视觉Transformer中。根据How does the multi-head attention mechanism work in deep learning?,它可以将图像分割为补丁序列,类似于文本处理,扩展了其应用范围。

小结

        多头自注意力通过并行运行多个自注意力头,增强了模型捕获复杂依赖关系的能力。其在Transformer中的应用推动了NLP的进步,同时在视觉任务中也显示出潜力。未来,随着更高效的Transformer变体发展(如Tay等人的研究),多头自注意力可能进一步优化长序列处理。


关键引文

  • Multi-Head Attention Explained

  • Difference between Self-Attention and Multi-head Self-Attention

  • Why multi-head self attention works

  • 11.5. Multi-Head Attention

  • Understanding and Coding Self-Attention, Multi-Head Attention

  • Explained: Multi-head Attention (Part 1)

  • Tutorial 6: Transformers and Multi-Head Attention

  • Multi-Head Self Attention: Short Understanding

  • How does the multi-head attention mechanism work in deep learning?

相关文章:

  • C# 元组
  • 【图像生成之十八】Seedream 2.0
  • 计算机网络总结
  • OpenHarmony 开源硬件学习全指南:从入门到实战
  • 2Dslam前端分类
  • Vue3+UniApp:在单个页面实现固定 TabBar 的多种方式
  • Vue学习笔记集--路由
  • nginx配置https域名后,代理后端服务器流式接口变慢
  • Kubernetes的Replica Set和ReplicaController有什么区别
  • 计划管理工具应该具备的能(甘特图)
  • Qt高分屏自适应
  • 框架的CVE漏洞利用 php类 java类 手工操作和自动化操作蓝队分析漏洞利用的流量特征
  • Python网络编程入门
  • 【测试篇】关于自动化测试前言,自动化测试的基本概念
  • 每日学习总结
  • 前端常见面试题(不断更新版)
  • Linux部署若依前后端分离版
  • 【yolo】yolo推理报错,以及解决方案
  • 数字化转型驱动卫生用品安全革新
  • 从零开始实现 C++ TinyWebServer 数据库连接池 SqlConnectPool详解
  • 央行:中国政府债务扩张仍有可持续性
  • 保利42.41亿元竞得上海杨浦东外滩一地块,成交楼面单价超8万元
  • 央行将增加3000亿元科技创新和技术改造再贷款额度
  • 秦洪看盘|涌现新逻辑,A股放量回升
  • 罗马尼亚临时总统博洛让任命普雷多尤为看守政府总理
  • 厦大历史系教授林汀水辞世,曾参编《中国历史地图集》