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

相关文章:
·注意力机制(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 WikW 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 k1I)、 k 2 k_2 k2am)和 k 3 k_3 k3good)的点积。因此,第1行表示目标词<sos>/<bos>与原句中所有的词(Iamgood)的相似度。
  • 同理,从矩阵的第2行可以看出,其正在计算查询向量 q 2 q_2 q2Je)与所有键向量 k 1 k_1 k1I)、 k 2 k_2 k2am)和 k 3 k_3 k3good)的点积。因此,第2行表示目标词Je与原句中所有的词(Iamgood)的相似度。
  • 同样的道理也适用于其他所有行。通过计算 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

,然后应用Softmax函数,得到分数矩阵。接下来,我们将分数矩阵乘以值矩阵 V i V_i Vi,得到注意力矩阵 Z i Z_i Zi,如下图所示。

目标句的注意力矩阵 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)相关推荐

  1. 深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...

  2. 深入理解深度学习——Transformer:解码器(Decoder)部分

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...

  3. 深入理解深度学习——Transformer:编码器(Encoder)部分

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...

  4. 动手学深度学习(五十)——多头注意力机制

    文章目录 1. 为什么用多头注意力机制 2. 什么是多头注意力机制 3. 多头注意力机制模型和理论计算 4. 动手实现多头注意力机制层 小结 练习 1. 为什么用多头注意力机制 所谓自注意力机制就是通 ...

  5. 深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识

    分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...

  6. 深入理解深度学习——BERT派生模型:BART(Bidirectional and Auto-Regressive Transformers)

    分类目录:<深入理解深度学习>总目录 UniLM和XLNet都尝试在一定程度上融合BERT的双向编码思想,以及GPT的单向编码思想,同时兼具自编码的语义理解能力和自回归的文本生成能力.由脸 ...

  7. 深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning

    分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...

  8. 深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning

    分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...

  9. 深度学习 Transformer架构解析

    文章目录 一.Transformer背景介绍 1.1 Transformer的诞生 1.2 Transformer的优势 1.3 Transformer的市场 二.Transformer架构解析 2. ...

最新文章

  1. Prometheus 对比 Zabbix
  2. WinCE系统声音定制
  3. 第一章 Matlab的简单介绍
  4. Tensorflow运行程序报错 FailedPreconditionError
  5. php 26个字母大写,英语26个字母大小写怎么写
  6. MVC5 数据注解和验证
  7. shell脚本如何优雅的打印帮助信息
  8. 关于 cocos2d-x win32 版本的 cpu 占用改良
  9. C++ 两点之间最短距离
  10. Chromium安装flash插件
  11. 博客变味:从一方净土沦落为企业枪手
  12. aj1黑白反转价格_除了倒勾配色AJ1,更有反转配色WHITE MOCHA同步发售
  13. iOS银联支付(最新)
  14. LVT, RVT(SVT, NVT), HVT 的区别
  15. red hat linux分区,【Red Hat Linux基础】 磁盘分区详细教程
  16. springboot easypoi 报错The bean ‘beanNameViewResolver‘, defined in class path resource [cn/afterturn/e
  17. Smart200控制两台V90伺服,绝对定位和速度控制,有屏程序,PN通信
  18. 模拟量使用计算机电缆,解读高新技术特种电缆-计算机电缆
  19. 拜个早年---顺带加一些杂感
  20. SPSS方差分析【005期】

热门文章

  1. 商务邮箱需求飙升,TOM商务邮,用户视角带来全新改变
  2. (2022年12月)解决: 您目前无法访问 因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常
  3. 虎啸春来 丰树电子与中联重科签署战略合作协议
  4. mysql 类似于check_【小白福利—初级DBA入门必看】MySQL常用工具介绍(六)——客户端工具MySQL_check...
  5. Escript氨基酸对比图怎么看_太神奇!看完了这8张NBA对比图发现,真的可以有一模一样的动作...
  6. C#连接ORACLE问题解决记录(System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本等问题)
  7. 初中计算机课每学期几节,【精品】初中信息技术教学工作总结三篇
  8. 图片无损放大软件哪个好?快把这些软件收好
  9. 数组里面对象去重的4种方法
  10. vscode暂存的代码保存在哪里_vscode怎么设置自动保存