Transform

下图是Transform 的整体架构,由decoder和encoder构成,下面分部分对Transform的结构进行分析 (下图来自于论文Attention is all you need)。

(论文链接https://arxiv.org/pdf/1706.03762.pdf)

1.Encoder

Encoder 主要是用来对句子的输入进行编码,下面用 ”我爱学习“ 这句话为例子解析编码过程。

首先是以词向量的形式进行输入,并且这里的词向量加入了positional encoding,也就是位置信息,来标定 ’我‘ ’爱‘ ’学‘ ’习‘ 这四个词向量的位置。

下一步就是将融合了位置信息的词向量输入到self-Attention 中进行编码

1.1 Self-Attention

  • Self-Attention 的过程如下图所示

  • 以第一个向量为例,对它进行变换生成Q,K,V。首先Q输入到第一个Attention中,然后分别和所有的K生成权重,然后根据权重对所有的V加权求和得到第一个Attention输出,其他的Attention类似,最终可以得到四个红色的向量。
  • 注:图中只画出了第一个Attention的输入关系,其他的类似。
  • 在输出红色的向量之后,红色的向量还要再加上原来的输入向量,然后再进行Norm操作,得到黄色的向量。

1.2 Multi-Head Attention

  • 所谓多头注意力机制,也就是多次进行自注意力机制编码,如下图所示。

1.3 Feed Forward

  • FF层比较简单,即为将Muti-head Attention 输出的向量通过全连接层,并与自己相加。

2 Decoder

2.1 Masked-Multi-head Attention

  • Masked 的意思即为在产生第n个编码的时候只能考虑第n个和第n个之前的信息,不能考虑之后的信息。

  • 注:只画出了V的输入关系。

2.2 Cross Attention

  • 右边绿色的向量为解码器的输入,在机器翻译任务中就是,要翻译成的语言比如说’I love learning’ ,0表示开始产生。Cross Attention 就是将decoder的编码作为Q和将Encoder的输出作为K,V进行Multi-Head Self-Attention。

3 Decoder 训练过程

  • Decoder在训练过程中是并行进行的,也就是说‘I love learning’ 是同步输入解码器的,输入的是标准答案‘I love learning’
  • 在inference过程中,不是并行需要一个一个的输出,先产生 I, 在根据I产生love ,当然可能产生的不是love而是like。

Transform结构详解相关推荐

  1. EMD算法之Hilbert-Huang Transform原理详解和案例分析

    目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...

  2. Windows GPT磁盘GUID结构详解

    前一篇 Windows磁盘MBR结构详解 中我们介绍了Basic Disk中的Master Boot Record结构.GPT Disk作为Windows 2003以后引入的分区结构.使用了GUID分 ...

  3. TEXTMETRIC 结构详解

    TEXTMETRIC 结构详解 函数GetTextMetrics可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示: typedef struct ta TE ...

  4. 微信小程序01【目录结构详解、视图与渲染、事件、input、scroll-view】

    学习地址:https://www.bilibili.com/video/BV1sx411z77P 笔记01:https://blog.csdn.net/weixin_44949135/article/ ...

  5. angular 标准目录结构_Angular-cli新建项目目录结构详解

    Angular-cli新建项目目录结构详解 在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文 ...

  6. [java] 虚拟机(JVM)底层结构详解[转]

    [java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领 ...

  7. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解

    前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...

  8. JMETER目录结构详解

                                                                 JMETER目录结构详解 JMETER安装完成之后会有很多目录文件,我们对JM ...

  9. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

最新文章

  1. 条件概率计算代替RNN
  2. 2022年度BCI奖 |THE ANNUAL BCI AWARD
  3. (64)句柄表,遍历所有进程的句柄表实现反调试
  4. 刺猬文│从启动方式来看播客链的运行机制—设置验证者
  5. mysql.ini环境配置_MySQL配置文件mysql.ini参数详解
  6. layui数据表格循环数据给特殊行变颜色遇到的bug
  7. VB封装excel chart
  8. node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
  9. 科技文献检索(七)——检索工具
  10. Java邮件发送(使用javaMail包)
  11. 介绍一下什么是静态独享代理ip。
  12. python 01列表异或_【快速跟水】图像隐写的python实现
  13. 404是什么意思,404错误页面有什么用?
  14. [今日阅读] [TSE 2019] - Mining Fix Patterns for FindBugs Violations
  15. 玻纤效应对skew的影响(一)
  16. python实验四_实验四 · Python程序设计/20193117whm - Gitee.com
  17. java_系列3_数组
  18. 公告:博客新皮肤上线啦
  19. python通过ip获取地理位置等ip信息
  20. 【F2C】git常见命令

热门文章

  1. 周星驰遭受众叛亲离的六大原因
  2. 2020.11.16-11.23 人工智能行业每周技术精华文章汇总
  3. 图像色彩通道分离与合并--opencv学习笔记
  4. 随笔:写软件,应该有点专业精神
  5. C#.NET实现Word或Excel文件转为HTML文件
  6. android x86 win8平板,如何设置win8及android x86平板板及注意事项
  7. 老闪创业那些事儿(57)——网络碰瓷儿事件
  8. 从excel表格中批量给图片重命名
  9. matlab进行系统校正,MATLAB校正系统程序
  10. 购物网站毕业设计 (高配版)