Transformer模型解析记录

作者&投稿:仰邓 (若有异议请与网页底部的电邮联系)
~

整个Transformer模型由Encoder和Decoder两部分组成。Encoder负责对输入数据的编码,而Decoder负责对编码后的数据进行解码。

Encoder由N个结构相同,参数不共享的模块组成,每个模块又由多头自注意力层和全连接层组成,其中多头自注意力层和全连接层都加上了残差连接和layer normalization。

Decoder与Encoder结构类似,相比于Encoder,Decoder部分多了一个 Multi-Head Attention ,第一个 Multi-Head Attention 采用Masked操作,第二个 Multi-Head Attention 的 K 和 V 使用Encoder的输出,而Q使用上一个Decoder block的输出。
Decoder的输出通过一个线性层和softmax输出下一个翻译单词的概率。

Encoder由N个结构相同,参数不共享的的Layer组成(论文中N=6),也即图1左侧的单元,最左边有个“Nx”。
每个Layer由 Multi-Head Attention 和 Feed-Forward 两个sub_layer组成。其中每个sub_layer都加了残差连接(Residual Connect)和归一化(Normalization)操作。则每个sub_layer的输出可表示为:

Muti-Head Attention从结构上来看就是通过h个不同的线性变换将输入 投影到h个不同的 组合,最后将h个不同的Attention结果拼接起来,最后经过一个Liner层得到Muti-Head Attention的输出。

其中, 、

Muti-Head Attention输出的维度是

关于Attention的详细介绍,可以参考之前文档:

Feed Forward也称Position-wise feed-forward networks,该层主要提供非线性变换。之所以是position-wise是因为过线性层时每个位置i的变换参数是一样的。

该层比较简单,是一个两层的全连接层,第一层的激活函数为 Relu,第二层不使用激活函数,对应公式为:

:Attention输出之后的结果会和 相乘来进行维度变换,那这里为什么又要增加一个2层的FFN网络呢?
:FFN网络的加入给模型增加了非线性(Relu激活函数),增加了模型的表现能力。当然去掉FFN层也是可以的,只不过效果上会差些。

Decoder是图1的右半部分,与左半部分的Encoder类似,但又存在一些区别。

Decoder比Encoder多了一个Multi-Head Attention,第一个Multi-Head Attention采用Masked操作,因为在生成任务中,前面的词语是看不到后面词语的信息的,因此需要加入Masked来避免信息泄露。第二个Multi-Head Attention输入的 是根据Encoder的输出编码矩阵映射而来,而 是根据上一个Decoder的输出映射而来。

最后有一个 Softmax 层计算下一个翻译单词的概率。

模型在解码的过程中需要注意的是训练和预测不一样。
在训练时,解码是一次全部decode出来,用上一步的ground truth来预测(mask矩阵也会改动,让解码时看不到未来的token);
而预测时,因为没有ground truth了,需要一个个预测。

上面简单介绍了 Encoder Decoder 模块,下面简单介绍一下Transformer的Position Embedding。

引入Position Embedding主要是为了弥补Transformer模型对位置信息的不足,将Position Embedding与token Embedding相加后,即可保留各个token的位置信息。

论文作者提出了两种添加位置信息的的方法:
一种方法是直接用不同频率的正余弦函数直接计算各个token的位置id,公式如下:

另一种方法是直接学习出一个Position Embedding。

通过实验发现,两种方法结果差不多,最后作者选择了第一种方法。

Transformer 与 RNN 不同,可以比较好地并行训练。

Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。

Transformer 的重点是 Self-Attention 结构,其中用到的 Q, K, V矩阵通过输出进行线性变换得到。

Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

Transformer 模型详解 (推荐)
【NLP】Transformer模型原理详解
【经典精读】Transformer模型深度解读




transformer怎么翻译
transformer翻译是变压器。Transformer按在机器翻译中原意可以翻译为变形器或变换器。但随着Transformer的普及,它已经成为一类以自注意力为主要部件的特定模型,其原本在机器翻译中的内涵变得不再重要,翻译成变形器反而不能涵盖其意义和除机器翻译外的场景。

为何说Transformer是目前人工智能领域工程落地实践Bayesian理论的典型...
在训练的过程中会使用MAP最大后验概率集成众多的模型参数的概率分布来拟合各种不确定的情况,提供处理数据不确定性的信息表达框架。Transformer是一个符合Bayesian深度学习网络的AI架构,尤其是其经典的multi-head self-attention机制,该机制其实采用模型集成的思想来从工程角度落地贝叶斯深度学习网络;基于Prior...

Transformer常见问题汇总
答: 因为self-attention是位置无关的,无论句子的顺序是什么样的,通过self-attention计算的token的hidden embedding都是一样的,这显然不符合人类的思维。因此要有一个办法能够在模型中表达出一个token的位置信息,transformer使用了固定的positional encoding来表示token在句子中的绝对位置信息。答: 相对...

为什么说Transformer的注意力机制是相对廉价的?注意力机制相对更对于RN...
QA形式对自然语言处理中注意力机制(Attention)进行总结,并对Transformer进行深入解析。 二、Transformer(Attention Is All You Need)详解1、Transformer的整体架构是怎样的?由哪些部分组成?2、Transformer Encoder 与 Transformer Decoder 有哪些不同?3、Encoder-Decoder attention 与self-attention mechanism有哪些不同?4、...

transformer是什么
transformer是变压器 电力变压器是一种静止的电气设备,是用来将某一数值的交流电压(电流)变成频率相同的另一种或几种数值不同的电压(电流)的设备。具有两个或多个绕组的静止设备,为了传输电能,在同一频率下,通过电磁感应将一个系统的交流电压和电流转换为另一系统的电压和电流,通常这些电流和电压的...

Transformer最全解析(attention is all you need)
Transformer出自google,被广泛应用于NLP的各项任务中,在transformer基础上改进优化的BERT模型在2019年11项NLP任务中表现SOTA。 论文原文: https:\/\/arxiv.org\/pdf\/1706.03762.pdf 《attention is all you need》在处理变长的序列问题时,一般的做法是利用卷积神经网络或循环神经网络。无论卷积还是循环...

Transformer原理及其应用
transformer 最早使用于NLP模型中,使用了 Self-Attention 机制。相较于RNN结构可以进行并行化训练,能够 拥有全局信息 。scale dot-product attention self-attention 过程图 query q 对 key k做attention:softmax归一化:权重乘value v 输出转化值:合并之前的三个图中操作:Transformer架构 Feed-Forward...

图解什么是 Transformer
Transformer 在机器翻译任务上的表现超过了 RNN,CNN,只用 encoder-decoder 和 attention 机制就能达到很好的效果,最大的优点是可以高效地并行化。Transformer 是一种基于 encoder-decoder 结构的模型,在Encoder 中,在Decoder 中,下面我们具体看一下其中这几个概念,这里主要参考 Jay Alammar,他在 The Illustrated Transfo...

Transformer解读(附pytorch代码)
Transformer早在2017年就出现了,直到BERT问世,Transformer开始在NLP大放光彩,目前比较好的推进就是Transformer-XL(后期附上)。这里主要针对论文和程序进行解读,如有不详实之处,欢迎指出交流,如需了解更多细节之处,推荐知乎上 川陀学者 写的。本文程序的git地址在 这里 。程序如果有不详实之处,欢迎...

"汽车人,变形,出发!"英语怎么说?
The Autobots, (transform), roll out !其实,真人版电影里是没有“变形”这个词的,就是“汽车人,出发!”老生可是找了很久,要确保单词拼写没有错误,还有看电影片段,最终确定的答案。

阿克苏市18723922906: 变压器等效模型 -
陟欢洛菲: 去百度文库,查看完整内容>内容来自用户:盛夏紫荆花1.理想变压器 理想变压器(ideal transformer)也是一种耦合元件,它是从实际变压器中抽象出来的理想化模型.理想变压器要同时满足如下三个理想化条件: (1)变压器本身无损耗;...

阿克苏市18723922906: 在MATLAB7.0中的电力系统工具箱中,里面的变压器模型怎样在二次侧加一个中性点 -
陟欢洛菲: 双击Three phase Transformer 模型,把winding 1 connection terminals 后的下拉菜单改为 Yn,然后点击ok,确认.这样在图标显示就会改变,在图的左下侧会出现一个新的接口N,这个N就是低压侧中性点,直接将该接口连接接地原件即可.

阿克苏市18723922906: 谁动了我的特征 -
陟欢洛菲: 谁动了我的特征 1 为什么要记录特征转换行为? 使用机器学习算法和模型进行数据挖掘,有时难免事与愿违:我们依仗对业务的理解,对数据的分析,以及工作经验提出了一些特征,但是在模型训练完成后,某些特征可能“身微言轻”——我...

阿克苏市18723922906: 关于cognos的Transformer中cube刷新,categories有限制吗 -
陟欢洛菲: 我知道cognos的transformer中的cube有权限设置,categories的话不是很清楚,我用finebi的时候也是可以设置权限的.

阿克苏市18723922906: 万网提供什么样的域名注册服务?
陟欢洛菲: 万网将为您提供全面的域名注册服务,主要内容有: (1)帮助您注册您需要的域名; (2)用我们的域名服务器为您的域名提供域名解析服务; (3)用我们的服务器为您的域名免费提供10条域名解析记录,可以添加泛域名解析; (4)在您需要时,将域名转移到别的网络或者您自己的网络.

阿克苏市18723922906: 参数估计和非参数估计的区别在哪 -
陟欢洛菲: 参数和非参可以简单的这样理解区别:参数模型是求一个解析解,非参是近似解.参数是数量化的得到一个确定的结果;非参(利用直接记录或分析输入和输出的方法估计)是一个不完全归纳的过程,得出一个拟合的关系.优势不好比较,两种方法建立的模型要看结果的命中概率了.

阿克苏市18723922906: 一个主机可以绑定几个域名? -
陟欢洛菲: 如果是虚拟主机,一般空间提供商允许用户绑定10多个域名,但是绑定的这些域名只能访问到一个空间,不能分别访问不同网站,这种情况下,您可以采取域名转发到根目录地址的方式处理这个问题,不过还是有弊端,您打开网站子目录的时候,地址栏会显示原来的的真实路径.另外也有空间服务商提供子站点,就是说可以在空间里面设立子目录,支持域名子目录绑定 这样您就可以和您朋友分别使用,互不干扰 如果是独立服务器那就更好办了,独立服务器不限制域名数量,如果您要在服务器里面放不同网站,在iis里面设置好就可以了

阿克苏市18723922906: 《围城》主要人物,人物性格分析? -
陟欢洛菲: 1、方鸿渐是个被动的、无能的、意志不坚定的、经不住诱惑的人,更是一个失败的人,他的失败是因为他面对现代社会残酷的生存竞争和严重的精神危机而缺乏与之对抗所应有的理性、信仰、热情和力量,也因为他还不算是个卑鄙的人,还有...

阿克苏市18723922906: 请教大神 cognos TRANSFORMER 增量生成mdl -
陟欢洛菲: 勾选 Preferences > Save object Unique Identifier values in mdl,您试试,不知道能不能帮到您,我一直用的是FineReport报表.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网