深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)
分类目录:《深入理解深度学习》总目录
相关文章:
·注意力机制(Attention Mechanism):基础知识
·注意力机制(Attention Mechanism):注意力汇聚与Nadaraya-Watson核回归
·注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function)
·注意力机制(Attention Mechanism):Bahdanau注意力
·注意力机制(Attention Mechanism):自注意力(Self-attention)
·注意力机制(Attention Mechanism):多头注意力(Multi-head Attention)
· 注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)
·注意力机制(Attention Mechanism):位置编码(Positional Encoding)
· Transformer:编码器(Encoder)部分
· Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)
下图展示了Transformer模型中的编码器和解码器。我们可以看到,每个解码器中的多头注意力层都有两个输入:一个来自带掩码的多头注意力层,另一个是编码器输出的特征值。
我们用 R R R来表示编码器输出的特征值,用 M M M来表示由带掩码的多头注意力层输出的注意力矩阵。由于涉及编码器与解码器的交互,因此这一层也被称为编码器—解码器注意力层。让我们详细了解该层究竟是如何工作的。多头注意力机制的第1步是创建查询矩阵、键矩阵和值矩阵。我们已知可以通过将输入矩阵乘以权重矩阵来创建查询矩阵、键矩阵和值矩阵。但在这一层,我们有两个输入矩阵:一个是 R R R(编码器输出的特征值),另一个是 M M M(前一个子层的注意力矩阵)。我们使用从上一个子层获得的注意力矩阵 M M M创建查询矩阵 Q Q Q,使用编码器输出的特征值 R R R创建键矩阵和值矩阵。由于采用多头注意力机制,因此对于头 i i i,需做如下处理:
- 查询矩阵 Q i Q_i Qi通过将注意力矩阵 M M M乘以权重矩阵 W i q W^q_i Wiq来创建。
- 键矩阵 K i K_i Ki和值矩阵 V i V_i Vi通过将编码器输出的特征值 R R R分别与权重矩阵 W i k W^k_i Wik、 W i r W^r_i Wir相乘来创建,如下图所示。
之所以用 M M M计算查询矩阵,而用 R R R计算键矩阵和值矩阵,是因为查询矩阵是从 M M M求得的,所以本质上包含了目标句的特征。键矩阵和值矩阵则含有原句的特征,因为它们是用 R R R计算的。为了进一步理解,让我们来逐步计算。第1步是计算查询矩阵与键矩阵的点积。查询矩阵和键矩阵如下图所示。需要注意的是,这里使用的数值是随机的,只是为了方便理解。
通过观察上图中的矩阵 Q i K i T Q_iK^T_i QiKiT,我们可以得出以下几点。
- 从矩阵的第1行可以看出,其正在计算查询向量 q 1 q_1 q1(
<sos>/<bos>
)与所有键向量 k 1 k_1 k1(I
)、 k 2 k_2 k2(am
)和 k 3 k_3 k3(good
)的点积。因此,第1行表示目标词<sos>/<bos>
与原句中所有的词(I
、am
和good
)的相似度。 - 同理,从矩阵的第2行可以看出,其正在计算查询向量 q 2 q_2 q2(
Je
)与所有键向量 k 1 k_1 k1(I
)、 k 2 k_2 k2(am
)和 k 3 k_3 k3(good
)的点积。因此,第2行表示目标词Je
与原句中所有的词(I
、am
和good
)的相似度。 - 同样的道理也适用于其他所有行。通过计算 Q i K i T Q_iK^T_i QiKiT,可以得出查询矩阵(目标句特征)与键矩阵(原句特征)的相似度。
计算多头注意力矩阵的下一步是将 Q i K i T Q_iK^T_i QiKiT除以 d k \sqrt{d_k} dk
目标句的注意力矩阵 Z i = [ z 1 , z 2 , z 3 , z 4 ] T Z_i=[z_1, z_2, z_3, z_4]^T Zi=[z1,z2,z3,z4]T是通过分数加权的值向量之和计算的。为了进一步理解,让我们看看
Je
这个词的自注意力值 z 2 z_2 z2的计算方法:z 2 = 0.98 × v I + 0.02 × v am + 0.00 × v good z_2 = 0.98\times v_\text{I} + 0.02\times v_\text{am} + 0.00\times v_\text{good} z2=0.98×vI+0.02×vam+0.00×vgood
Je的自注意力值 z 2 z_2 z2是通过分数加权的值向量之和求得的。因此, z 2 z_2 z2的值将包含98%的值向量 v I v_\text{I} vI和2%的值向量 v am v_\text{am} vam。这个结果可以帮助模型理解目标词Je指代的是原词I。同样,我们可以计算出 h h h个注意力矩阵,将它们串联起来。然后,将结果乘以一个新的权重矩阵 W 0 W_0 W0,得出最终的注意力矩阵,如下所示:
Muti-head Attention = Concatenate ( Z 1 . Z 2 , ⋯ , Z h ) W 0 \text{Muti-head Attention} = \text{Concatenate}(Z_1. Z_2, \cdots, Z_h)W_0 Muti-head Attention=Concatenate(Z1.Z2,⋯,Zh)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.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.
深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)相关推荐
- 深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...
- 深入理解深度学习——Transformer:解码器(Decoder)部分
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...
- 深入理解深度学习——Transformer:编码器(Encoder)部分
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...
- 动手学深度学习(五十)——多头注意力机制
文章目录 1. 为什么用多头注意力机制 2. 什么是多头注意力机制 3. 多头注意力机制模型和理论计算 4. 动手实现多头注意力机制层 小结 练习 1. 为什么用多头注意力机制 所谓自注意力机制就是通 ...
- 深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识
分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...
- 深入理解深度学习——BERT派生模型:BART(Bidirectional and Auto-Regressive Transformers)
分类目录:<深入理解深度学习>总目录 UniLM和XLNet都尝试在一定程度上融合BERT的双向编码思想,以及GPT的单向编码思想,同时兼具自编码的语义理解能力和自回归的文本生成能力.由脸 ...
- 深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning
分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...
- 深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning
分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...
- 深度学习 Transformer架构解析
文章目录 一.Transformer背景介绍 1.1 Transformer的诞生 1.2 Transformer的优势 1.3 Transformer的市场 二.Transformer架构解析 2. ...
最新文章
- Prometheus 对比 Zabbix
- WinCE系统声音定制
- 第一章 Matlab的简单介绍
- Tensorflow运行程序报错 FailedPreconditionError
- php 26个字母大写,英语26个字母大小写怎么写
- MVC5 数据注解和验证
- shell脚本如何优雅的打印帮助信息
- 关于 cocos2d-x win32 版本的 cpu 占用改良
- C++ 两点之间最短距离
- Chromium安装flash插件
- 博客变味:从一方净土沦落为企业枪手
- aj1黑白反转价格_除了倒勾配色AJ1,更有反转配色WHITE MOCHA同步发售
- iOS银联支付(最新)
- LVT, RVT(SVT, NVT), HVT 的区别
- red hat linux分区,【Red Hat Linux基础】 磁盘分区详细教程
- springboot easypoi 报错The bean ‘beanNameViewResolver‘, defined in class path resource [cn/afterturn/e
- Smart200控制两台V90伺服,绝对定位和速度控制,有屏程序,PN通信
- 模拟量使用计算机电缆,解读高新技术特种电缆-计算机电缆
- 拜个早年---顺带加一些杂感
- SPSS方差分析【005期】
热门文章
- 商务邮箱需求飙升,TOM商务邮,用户视角带来全新改变
- (2022年12月)解决: 您目前无法访问 因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常
- 虎啸春来 丰树电子与中联重科签署战略合作协议
- mysql 类似于check_【小白福利—初级DBA入门必看】MySQL常用工具介绍(六)——客户端工具MySQL_check...
- Escript氨基酸对比图怎么看_太神奇!看完了这8张NBA对比图发现,真的可以有一模一样的动作...
- C#连接ORACLE问题解决记录(System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本等问题)
- 初中计算机课每学期几节,【精品】初中信息技术教学工作总结三篇
- 图片无损放大软件哪个好?快把这些软件收好
- 数组里面对象去重的4种方法
- vscode暂存的代码保存在哪里_vscode怎么设置自动保存