深入理解深度学习——注意力机制(Attention Mechanism):多头注意力(Multi-head Attention)

news2024/11/20 18:26:24

分类目录:《深入理解深度学习》总目录

相关文章:
·注意力机制(AttentionMechanism):基础知识
·注意力机制(AttentionMechanism):注意力汇聚与Nadaraya-Watson核回归
·注意力机制(AttentionMechanism):注意力评分函数(AttentionScoringFunction)
·注意力机制(AttentionMechanism):Bahdanau注意力
·注意力机制(AttentionMechanism):多头注意力(MultiheadAttention)
·注意力机制(AttentionMechanism):自注意力(Self-attention)
·注意力机制(AttentionMechanism):位置编码(PositionalEncoding)


在实践中,当给定相同的查询、键和值的集合时,我们希望模型可以基于相同的注意力机制学习到不同的行为, 然后将不同的行为作为知识组合起来, 捕获序列内各种范围的依赖关系 (例如,短距离依赖和长距离依赖关系)。因此,允许注意力机制组合使用查询、键和值的不同子空间表示(Representation Subspaces)可能是有益的。

为此,与其只使用单独一个注意力汇聚, 我们可以用独立学习得到的组不同的线性投影(Linear Projections)来变换查询、键和值。 然后,这组变换后的查询、键和值将并行地送到注意力汇聚中。 最后,将这个注意力汇聚的输出拼接在一起, 并且通过另一个可以学习的线性投影进行变换, 以产生最终输出。 这种设计被称为多头注意力(Multihead Attention)。对于个注意力汇聚输出,每一个注意力汇聚都被称作一个头(Head)。 下图展示了使用全连接层来实现可学习的线性变换的多头注意力:
多头注意力
给定查询 q ∈ R d q q\in R^{d_q} qRdq、 键 k ∈ R d k k\in R^{d_k} kRdk和值 v ∈ R d v v\in R^{d_v} vRdv, 每个注意力头 h i ( i = 1 , 2 , ⋯   , h ) h_i(i=1, 2, \cdots, h) hi(i=1,2,,h)的计算方法为:
h i = f ( W i q q , W i k k , W i v v ) ∈ R p v h_i=f(W_i^{q}q, W_i^{k}k, W_i^{v}v)\in R^{p_v} hi=f(Wiqq,Wikk,Wivv)Rpv

其中,可学习的参数包括 W i q ∈ R p q × d q W_i^{q}\in R^{p_q\times d_q} WiqRpq×dq W i k ∈ R p k × d k W_i^{k}\in R^{p_k\times d_k} WikRpk×dk W i v ∈ R p v × d v W_i^{v}\in R^{p_v\times d_v} WivRpv×dv以及代表注意力汇聚的函数 f f f f f f可以是《深入理解深度学习——注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function)》中的加性注意力和缩放点积注意力。 多头注意力的输出需要经过另一个线性转换, 它对应着 h h h个头连结后的结果,因此其可学习参数是 W i o ∈ R p p × h p v W_i^{o}\in R^{p_p\times h_{p_v}} WioRpp×hpv
W o [ h 1 h 2 ⋮ h h ] ∈ R p o W^o \begin{gather*} \begin{bmatrix} h_1 \\ h_2 \\ \vdots \\ h_h \end{bmatrix} \end{gather*} \in R^{p_o} Wo h1h2hh Rpo

基于这种设计,每个头都可能会关注输入的不同部分, 可以表示比简单加权平均值更复杂的函数。

自注意力的实例

多头注意力是指我们可以使用多个注意力头,而不是只用一个。我们可以应用在《深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)》中的计算注意力矩阵 Z Z Z的方法,来求得多个注意力矩阵。让我们通过一个例子来理解多头注意力层的作用。以“All is well.”这句话为例,假设我们需要计算“well”的自注意力值:
Z well = 0.6 × V all + 0.0 × V is + 0.4 × V well Z_{\text{well}}=0.6\times V_{\text{all}} + 0.0\times V_{\text{is}} + 0.4\times V_{\text{well}} Zwell=0.6×Vall+0.0×Vis+0.4×Vwell

“well”的自注意力值是分数加权的值向量之和,并且它实际上是由“All”主导的。也就是说,将“All”的值向量乘以0.6,而“well”的值向量只乘以了0.4。这意味着 Z well Z_{\text{well}} Zwell将包含60%的“All”的值向量,而“well”的值向量只有40%。这只有在词义含糊不清的情况下才有用。还是以《深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)》中的例句为例:

A dog ate the food because it was hungry.
一只狗吃了食物,因为它很饿。

现在我们假设 Z it = 0.00 × V A + 1.00 × V dog + 0.00 × V ate + 0.00 × V the + 0.00 × V food + ⋯ + 0.00 × V hungry Z_{\text{it}}=0.00\times V_{\text{A}} + 1.00\times V_{\text{dog}} + 0.00\times V_{\text{ate}} + 0.00\times V_{\text{the}} + 0.00\times V_{\text{food}} + \cdots + 0.00\times V_{\text{hungry}} Zit=0.00×VA+1.00×Vdog+0.00×Vate+0.00×Vthe+0.00×Vfood++0.00×Vhungry。“it”的自注意力值正是“dog”的值向量。在这里,单词“it”的自注意力值被“dog”所控制。这是正确的,因为“it”的含义模糊,它指的既可能是“dog”,也可能是“food”。如果某个词实际上由其他词的值向量控制,而这个词的含义又是模糊的,那么这种控制关系是有用的;否则,这种控制关系反而会造成误解。为了确保结果准确,我们不能依赖单一的注意力矩阵,而应该计算多个注意力矩阵,并将其结果串联起来。使用多头注意力的逻辑是这样的:使用多个注意力矩阵,而非单一的注意力矩阵,可以提高注意力矩阵的准确性。

假设要计算两个注意力矩阵 Z 1 Z_1 Z1 Z 2 Z_2 Z2。首先,计算注意力矩阵 Z 1 Z_1 Z1。我们已经知道,为了计算注意力矩阵,需要创建三个新的矩阵,分别为查询矩阵、键矩阵和值矩阵。为了创建查询矩阵 Q 1 Q_1 Q1、键矩阵 K 1 K_1 K1和值矩阵 V 1 V_1 V1,我们引入三个新的权重矩阵,称为 W 1 q W^q_1 W1q W 1 k W^k_1 W1k W 1 v W^v_1 W1v。用矩阵 X X X分别乘以矩阵 W 1 q W^q_1 W1q W 1 k W^k_1 W1k W 1 v W^v_1 W1v,就可以依次创建出查询矩阵、键矩阵和值矩阵。

基于以上内容,注意力矩阵 Z 1 Z_1 Z1可按以下公式计算得出:
Z 1 = Softmax ( Q 1 K 1 T d k ) V 1 Z_1=\text{Softmax}(\frac{Q_1K^T_1}{\sqrt{d_k}})V_1 Z1=Softmax(dk Q1K1T)V1

接下来计算第二个注意力矩阵 Z 2 Z_2 Z2。为了计算注意力矩阵 Z 2 Z_2 Z2,我们创建了另一组矩阵:查询矩阵 Q 2 Q_2 Q2、键矩阵 K 2 K_2 K2和值矩阵 V 2 V_2 V2,并引入了三个新的权重矩阵,即 W 2 q W^q_2 W2q W 2 k W^k_2 W2k W 2 v W^v_2 W2v。用矩阵 X X X分别乘以矩阵 W 2 q W^q_2 W2q W 2 k W^k_2 W2k W 2 v W^v_2 W2v,就可以依次得出对应的查询矩阵、键矩阵和值矩阵。注意力矩阵 Z 2 Z_2 Z2可按以下公式计算得出:
Z 2 = Softmax ( Q 2 K 2 T d k ) V 2 Z_2=\text{Softmax}(\frac{Q_2K^T_2}{\sqrt{d_k}})V_2 Z2=Softmax(dk Q2K2T)V2

同理,可以计算出 h h h个注意力矩阵。假设我们有8个注意力矩阵,即 Z 1 Z_1 Z1 Z 8 Z_8 Z8,那么可以直接将所有的注意力头(注意力矩阵)串联起来,并将结果乘以一个新的权重矩阵 W 0 W_0 W0,从而得出最终的注意力矩阵:
Multi-head Attention = Concatenate ( Z 1 , Z 2 , ⋯   , Z 8 ) W 0 \text{Multi-head Attention} = \text{Concatenate}(Z_1, Z_2, \cdots, Z_8)W_0 Multi-head Attention=Concatenate(Z1,Z2,,Z8)W0

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/640815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode热题100】打卡第20天:合并区间不同路径

文章目录 【LeetCode热题100】打卡第20天:合并区间&不同路径⛅前言 合并区间🔒题目🔑题解 不同路径🔒题目🔑题解 【LeetCode热题100】打卡第20天:合并区间&不同路径 ⛅前言 大家好,我是…

MySQL中的行级锁

行级锁的类型主要有三类: Record Lock,记录锁,也就是仅仅把一条记录锁上;Gap Lock,间隙锁,锁定一个范围,但是不包含记录本身,只存在于可重复读隔离级别,目的是为了解决可…

前端封装一个移动端(已支持PC)滚动的组件

安装 npm install better-scroll/core --save引入 import BScroll from better-scroll/core直接上代码 Scroll.vue <template><div ref"rootRef"><slot></slot></div> </template><script> import useScroll from ./u…

配置虚拟机(VMware )网络

1、查询 IP ip addr # 命令和ifconfig类似&#xff0c;但前者功能更强大&#xff0c;并旨在取代后者。可以看到两个网卡 lo和ens33&#xff08;lo是本地网卡&#xff09; 2、配置静态IP地址和修改主机名(网络配置使用随机分配免配置) 使用vi编辑器打开ens33网络的配置文件&am…

Windows系统配置Python环境(Anaconda篇)

Windows系统配置Python环境&#xff08;Anaconda篇&#xff09; 一、下载 根据自己电脑系统下载对应的安装包 官方下载地址&#xff1a;https://www.anaconda.com/products/distribution 清华镜像网站&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ …

SpringBoot——动态数据源(多数据源自动切换)

前言 日常的业务开发项目中只会配置一套数据源&#xff0c;如果需要获取其他系统的数据往往是通过调用接口&#xff0c; 或者是通过第三方工具比如kettle将数据同步到自己的数据库中进行访问。 但是也会有需要在项目中引用多数据源的场景。比如如下场景&#xff1a; 自研数据…

更有效的协同程序【插件:More Effective Coroutines】

插件地址&#xff1a;传送门 1、命名空间 using System.Collections.Generic; using MEC; 2、与传统的协程相比 传统&#xff1a;StartCoroutine(_CheckForWin()); 被RunCoroutine取代。必须选择执行循环进程&#xff0c;默认为“Segment.Update”。 using System.Coll…

华为OD机试真题 JavaScript 实现【最优资源分配】【2023Q1 200分】

一、题目描述 某块业务芯片最小容量单位为 1.25G&#xff0c;总容量为 M*1.25G&#xff0c;对该芯片资源编号为 1&#xff0c;2&#xff0c;… M。 该芯片支持 3 种不同的配置&#xff0c;分别为 A、B、C. 配置 A: 占用容量为 1.25 * 1 1.25G配置 B: 占用容量为 1.25* 2 2…

一文了解智能驾驶架构平台ROS2和自适应AUTOSAR之间的区别

公众号致力于点云处理&#xff0c;SLAM&#xff0c;三维视觉&#xff0c;高精地图等领域相关内容的干货分享&#xff0c;欢迎各位加入&#xff0c;有兴趣的可联系dianyunpcl163.com。未经作者允许请勿转载&#xff0c;欢迎各位同学积极分享和交流。 背景介绍 在汽车行业&#x…

有人问高考能改变命运不,老大爷回答是不能

昨天看到一段小视频&#xff0c;问高考能改变命运不&#xff0c;老大爷回答是不能。 我遂想起写写这个话题。 &#xff08;1&#xff09; 成功者的要素到底是什么&#xff1f; 我们中国人经常用&#xff1a;成者为王败者为寇&#xff0c;这句话来形容成功者。 我们见过很多成功…

警惕超声波工艺对晶振造成损伤

超声波技术被广泛应用于工业生产中&#xff0c;常见的超声波工艺有&#xff1a;超声波清洗工艺、焊接工艺。 使用该两种工艺时&#xff0c;超声波仪器通常以20KHz至60KHz的频率运行。 清洗工艺是指清除工件表面上液体或固体的污染物&#xff1b;而焊接工艺中&#xff0c;高频机…

论不同阶段的教育”焦虑“

有了孩子&#xff0c;父母们大体对其教育都会有点焦虑感。焦虑是一种情绪&#xff0c;但这里不分析情绪&#xff0c;而是在文题中加了引号&#xff0c;拆开来讨论下不同阶段教育的焦点与考虑。 学前 教育的焦虑在上小学前就开始了&#xff0c;担心起跑线落后了。德国和美国都做…

直播回顾|走进元服务,携手小强停车探索鸿蒙新流量阵地

本期直播《“元”来如此&#xff0c;“服务”直达——揭秘鸿蒙新流量阵地》聚焦元服务的商业流量价值&#xff0c;介绍元服务提供的服务直达和卡片动态变化等轻量化服务。网约停车旗舰平台小强停车做客直播间&#xff0c;分享小强停车在HarmonyOS生态中&#xff0c;如何通过元服…

数据库信息速递 SQL Server新版本许可证价格上涨了10%

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

STM32单片机蓝牙APP GSM短信安全监控系统湿度烟雾入侵报警系统

实践制作DIY- GC0147---蓝牙APP GSM短信安全监控系统 基于STM32单片机设计---蓝牙APP GSM短信安全监控系统 二、功能介绍&#xff1a; 硬件组成&#xff1a;STM32F103C系列最小系统板 LCD1602显示器DHT11空气湿度传感器MQ2烟雾传感器红外热释电人体检测模块SIM800短信发送模块…

记录--详解 XSS(跨站脚本攻击)

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言&#xff1a;我们知道同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信&#xff0c;虽然严格的同源策略会带来更多的安全&#xff0c;但是也束缚了 Web。这就需要在安全和自由之间找…

基于短期替代变量的因果效应估计

本篇文章分为&#xff1a; 1.前言 2.模型方案 2.1 替代指数背景 2.2 替代指数的基本设定 2.3 模型结构 3.评估 4.总结与展望 1. 前言 在网约车双边交易市场中&#xff0c;量化策略对平衡市场供需的影响起着重要的作用。对市场供需的影响分为两种情况&#xff1a; 短期价值…

【Linux】Linux环境与历史

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 1.Linux发展史 a.是什么&#xff1f; b.计算机发展(硬件) 硅谷模式: c.操作系统的故事(软件) 计算机软硬件发展史: d.Linux操作系统 2.Linux提炼特征 a.开源 b.更多…

java设计模式之:组合模式

文章目录 1、什么是组合模式&#xff1f;2、组合模式定义3、组合模式通用代码实现4、组合模式优点5、组合模式应用场景 相信树形结构大家都知道&#xff0c;但是你是否知道用到了什么设计模式吗&#xff1f; 1、什么是组合模式&#xff1f; Compose objects into tree structu…

第二章 翻译

第二章 翻译 2010年真题&#xff08;主旨词&#xff1a;sustainability&#xff09; Section Ⅲ Translation Directions: In this section, there is a text in English. Translate it into Chinese. Write your translation on ANSWER SHEET 2. (15points) “Sustainabili…