图解Transformer模型

图解Transformer模型 - 图1图解Transformer模型 - 图2

图解Transformer模型(Multi-Head Attention)

图解Transformer模型 - 图3
black_shuang 2019-07-10 23:10:07 图解Transformer模型 - 图4 4311 图解Transformer模型 - 图5
分类专栏: 自然语言处理
版权

本文内容主要源于Attention is all you need: https://arxiv.org/abs/1706.03762
由于本人最近在研究文本的判别式模型,如文本分类任务,所以学习了Transformer,并根据自己的理解制作了PPT介绍总结Transformer中几个比较重要的部分.
文章内容为本人制作的PPT,同时在需要解释的slide写上了补充说明;
主要内容包括
1.Transformer的提出背景;
2.Transformer的Encoder(Scaled Dot-Product Attention,Multi-head-Attention)较为详细的图解,部分图引自《Attention is all you need》一文;
3.虽然本人主要是应用于判别式模型,但是最后简单介绍了包含Decoder部分,梳理了Transformer的整个流程;
Slide 1
图解Transformer模型 - 图6
Slide 2
图解Transformer模型 - 图7
Slide 3
图解Transformer模型 - 图8

slide 4,其实很明显,Multi-Head Attention是Transformer最突出的贡献,所以直入主题:
图解Transformer模型 - 图9
slide5 Multi-Head Attention的核心组件-Scaled Dot-Product Attention,以实例”华南”一词的Scaled Dot-Product Attention过程为例逐一图解每个模块的对应工作
图解Transformer模型 - 图10
(1)此处仅以”华南”为例,图解Scaled Dot-Product Attention是如何避免通过Reccurent model来捕获上下文信息,具体做法就是如图通过当前Q与每个K(包括自己)的MatMul;
(2)同时此处为什么要进行放缩(Scale),对应图中有解释;
(3)Mask具体操作如图中文本框解释,作用于红框步骤中,将(1)(2)步骤的计算结果score针对性的屏蔽Mask)
具体屏蔽的是文本向量化过程中,由于文本长度小于Fix_length的Padding部分,在Padding部分对应index的score设为-inf
最后的效果就是使得经过softmax之后,Padding部分给予的attention权重为近似0.
这种类似的操作在Decoder部分也使用了,目的是为了Decoder只关注早于当前输出位置的部分!
slide 6-理解了Scaled-Dot Product Attention ,继续了解Multi-Head Attention,先看其中的Multi-Head是什么意思?
图解Transformer模型 - 图11
如图蓝框部分为Multi-Head部分的解释,实际上n个head 就是进行n次linear映射出不同的子区域表征空间,更加全面的挖掘不同位置在不同子空间下的信息,同时此设计出于并行计算的考虑。
slide 7 Multi-Head Attention中的Scaled Dot-Product Attention部分(前面详细图解)
图解Transformer模型 - 图12
slide 8 经过Multi-Head映射多个子空间→Scaled Dot-Product Attention
图解Transformer模型 - 图13
接下来:
1.将n_Head个子空间得到的编码信息融合(本文中concat拼接)
2.拼接后,Linear回与Transformer模型空间维度(d_model)一致,方便如下图与原始输入INPUTS进行Resnet以及LayerNormalization
图解Transformer模型 - 图14
slide 9
Multi-Head Attention部分已经图解解释完了,Encoder部分后续还经过一个Feed Forward,其实就是两层Linear以及在第一层加入了ReLu激活函数,就不继续讲了。
接下来简单讲下Transformer中是如何应用在生成式模型,如机器翻译任务:
图解Transformer模型 - 图15
在slide中,以中文:”我是中国人” 翻译为 英文为例
1.编码部分(Encoder):
1.1输入文本:”我是中国人” 直接INPUTS ,此处图中为了简洁,省略了word_embedding以及position_embedding过程
1.2绿色框”Encoder”部分对应单个transformer模型的Encoder部分,Encoder的最终输出结果为”K”,”V”
2.解码部分(Decoder):
2.1初始状态:输出结果仅包含输出起始标志”Start of result”
2.2绿色框”Decoder”部分对应单个transformer模型的Decoder部分,注意transformer结构框图中,在Decode-Encoder Attention部分,即Decoder部分的第二次Multi-Head Attention:其K V 输出是采用Encoder的输出,目的是利用Encoder编码好的K V,帮助Decoder在合适的位置处放置更多的”注意力”(Attention)
2.3Transformer中的Decoder部分的第一个Multi-Head Attention ,也进行了Masked操作,此操作实现及原因在前文提到解释过,上翻!
2.4Decoder部分整体是一个自回归过程,即在Decoder过程中:是一个词一个词预测出来的,当前预测的结果output1,会作为Decoder的输入,参与下一个词的预测,如当前slide预测结果为”I”,在下一个预测,见slide10
slide 10
图解Transformer模型 - 图16
依此循环,直至预测出结束标识符,完成整个模型的任务。

至此,大概介绍了Transformer的结构,主要是Encoder部分的Multi-Head Attention部分,同时也简单梳理了整个结构。
希望有所收获的读者能点个“喜欢” 给个赞,谢谢支持!
另外如有误解之处还请原谅指出,谢谢!

  1. [ ](https://download.csdn.net/download/kimizhou_blog/3534567)

winfrom中嵌套html,跟html的交互

08-20 winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

  1. [ ChihkAnchor的博客 ](https://blog.csdn.net/weixin_40871455) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610390-a5689d21-b000-445b-bd82-b19b343b4098.png#height=14&width=14) 1万+ <br />

transformer 模型(self-attention自注意力)

  1. [ transformer模型在《Attention is all you need》论文中提出这篇论文主要亮点在于:1)不同于以往主流机器翻译使用基于RNNseq2seq模型框架,该论文用attention机制代替了RNN搭建了整个模型框架。2)提出了多头注意力(Multi-headed attention)机制方法,在编码器和解码器中大量的使用了多头自注意力机制(Multi-headed s...... ](https://blog.csdn.net/weixin_40871455/article/details/86084560) <br />
  2. <br /> [![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610435-d000e1d9-2db3-467a-bf62-a4f04c35200b.png#height=32&width=32)](#)
  3. <br />
  • 图解Transformer模型 - 图17 qq_38332526:这个多头机制所分割的子空间,内容是Q、K、V互相独立的子集吗7月前
    图解Transformer模型 - 图18
  1. [ 陈建驱的博客 ](https://blog.csdn.net/qq_37394634) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610550-201a532c-7f79-4351-9a90-0f6ef7be0ea3.png#height=14&width=14) 2752 <br />

Self Attention和Multi-Head Attention的原理和实现

  1. [ 个人博客:http://www.chenjianqu.com/原文链接:http://www.chenjianqu.com/show-47.html引言使用深度学习做NLP的方法,一般是将单词转换为词向量序列,然后通过神经网络编码或者说提取这些词向量中的特征信息,继而根据不同任务进行不同的操作。提取特征的第一个方法是使用卷积神经网络,RNN结构简单,非常适合序列建模...... ](https://blog.csdn.net/qq_37394634/article/details/102679096) <br />
  2. [ CSDN_of_ding的博客 ](https://blog.csdn.net/CSDN_of_ding) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610584-9a9e6a81-eb4d-4ef4-af9f-22081390a40b.png#height=14&width=14) 266 <br />

什么多头注意力机制(multi head attention)

  1. [ 什么多头注意力机制(multi head attention)为什么是多头呢?因为我们要用注意力机制来提取多重语意的含义,我们首先定义一个超参数是h也就是head的数量,注意embedding dimension(字向量的维度)必须整除于h!因为我们要把embedding dimension分割成h份。...... ](https://blog.csdn.net/CSDN_of_ding/article/details/107527838) <br /> <br />

什么多头注意力机制(multi head attention)_CSDN_of_di…_CSDN博客

7-23
什么多头注意力机制(multi head attention)为什么是多头呢?因为我们要用注意力机制来提取多重语意的含义,我们首先定义一个超参数是h也就是head的数量,注意embedding…

PyTorch快餐教程2019 (2) - Multi-Head Attention_lusi…_CSDN博客

8-4
PyTorch快餐教程2019 (2) - Multi-Head Attention上一节我们为了让一个完整的语言模型跑起来,可能给大家带来的学习负担过重了。没关系,我们这一节开始来还上节…

  1. [ weixin_42813521的博客 ](https://blog.csdn.net/weixin_42813521) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610622-8f501c19-4cb5-483c-ac40-f329ed333533.png#height=14&width=14) 144 <br />

transformer细节及代码实现2-Multi-head attention

  1. [ transformertransformer总体结构多头注意力(Multi-head attention)是按比缩放的点积注意力(Scaled dot product attention)组成的,所以首先需要了解按比缩放的点积注意力。下面是简化的encoder-decoder模型,对于整体的模型来说会有多个encoderdecoder。在每一个encoderdecoder中可以简化...... ](https://blog.csdn.net/weixin_42813521/article/details/105595075) <br />
  2. [ ](https://download.csdn.net/download/weixin_37847867/10684390)

各种attention的实现

09-24 深度学习的attention的实现,有keras和tensorflow两种

multi-head attention理解加代码_qq_43331398的博客-CS…_CSDN博客

8-4
(multi-head attention 用于CNN相关理解)饭前小菜在早期的Machine Translation(机器翻译)中,Attention机制与RNN的结合。机器翻译解决的是输入是一串在某种语言中的一句…

拆Transformer 系列二:Multi- Head Attention 机制详解…_CSDN博客

7-21
在「拆 Transformer 系列一:Encoder-Decoder 模型架构详解」中有简单介绍 Attention,Self-Attention 以及 Multi-Head Attention,都只是在直观上介绍 Attention 的作用,…

  1. [ ](https://download.csdn.net/download/mqlccl2008/4359987)

获取Linux下Ftp目录树并逐步绑定到treeview

06-08 在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

  1. [ Flying_sfeng的博客 ](https://blog.csdn.net/Flying_sfeng) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610659-fac11bd5-796a-4acb-abc4-a20f5c70311e.png#height=14&width=14) 1万+ <br />

transformer中的positional encoding(位置编码)

  1. [ transformer模型是当前大红大热的语言模型,今天要讲解的是transformer中的positional encoding(位置编码).我们知道,transformer模型的attention机制并没有包含位置信息,即一句话中词语在不同的位置时在transformer中是没有区别的,这当然是不符合实际的。因此,在transformer中引入位置信息相比CNN, RNN等模型有更加重要的作...... ](https://blog.csdn.net/Flying_sfeng/article/details/100996524) <br /> <br />

Self Attention和Multi-Head Attention的原理和实现_陈…_CSDN博客

8-4
简单的说,Self Attention就是Q、K、V均为同一个输入向量映射而来的Encoder-Decoder Attention,Multi-Head Attention同时计算多个Attention,并最终得到合并结果。 Self…

transformer模型中的self-attention和multi-head-atten…_CSDN博客

8-1
分别是一层self-attention层和一层全连接层。需要注意的是,这里的self-attention并不是只有一层。模型中使用的是multi-head-Attention。其实就是多个self-attention…

  1. [ ](https://download.csdn.net/download/zzahkj/6970699)

GIS程序设计教程 基于ArcGIS Engine的C#开发实例

02-27 张丰,杜震洪,刘仁义编著.GIS程序设计教程 基于ArcGIS Engine的C#开发实例.浙江大学出版社,2012.05

  1. [ zhyuxie的专栏 ](https://blog.csdn.net/dakenz) <br /> ![](https://cdn.nlark.com/yuque/0/2020/png/1455825/1598057610704-3178be2b-3cdb-4beb-b1ae-3d1858f401f4.png#height=14&width=14) 5459 <br />

在NLP中广泛应用的transformer(Self-Attention)剖析笔记

  1. [ NLP中如日中天的transformer笔记参考文献自从谷歌在2017NIPS上发表paperAttentionisAllYouNeed以来,最近很多NLP场景已经应用了transformer,包括最近很火的GPTBERT,本文将以这篇paper为主并结合github上高star的实现源代码transformer一起梳理一下self-attention机制在trans...... ](https://blog.csdn.net/dakenz/article/details/85150676) <br /> <br />

…decoder,self-attention,multi-head attention的区…_CSDN博客

7-28
变种3-多头注意力:多头注意力(multi-head attention)是利用多个查询Q = [q1, ··· , qM],来平行地计算从输入信息中选取多个信息。每个注意力关注输入信息的…

AutoInt:使用Multi-head Self-Attention进行自动特征学…_CSDN博客

8-3
本文首发于知乎专栏 https://zhuanlan.zhihu.com/p/53462648简介这篇论文提出使用multi-head self attention(类似Transformer里的那个) 机制来进行自动特征交叉学习以…
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
关于我们 招聘 广告服务 网站地图 图解Transformer模型 - 图19 kefu@csdn.net图解Transformer模型 - 图20 客服论坛图解Transformer模型 - 图21 400-660-0108 图解Transformer模型 - 图22QQ客服(8:30-22:00)
公安备案号 11010502030143 京ICP备19004658号 京网文〔2020〕1039-165号 版权与免责声明 版权申诉 网络110报警服务
中国互联网举报中心 家长监护 版权申诉 北京互联网违法和不良信息举报中心 ©1999-2020 北京创新乐知网络技术有限公司