transformer总结

Posted 无情的阅读机器

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了transformer总结相关的知识,希望对你有一定的参考价值。

1.注意力机制

意义:人类的注意力机制极大提高了信息处理的效率和准确性。

公式:

 1)自注意力机制

 b都是在考虑了所有a的情况下生成的。

以产生b1向量为例:

1.在a这个序列中,找到与a1相关的其他向量

 2.每个向量与a1关联的程度,我们用数值α表示

那么这个数值如何计算的呢?

计算的方式有很多种:

我的理解:关联程度就相当于question(问题)与key(答案)的匹配程度

 

自己跟自己的关联也很重要 

 然后将这些关联度放到softmax里面,得到最终的关联度

 最终乘v,得到最后的值

 上述是宏观的理解,现在从矩阵乘法再来看一遍

 

 整个过程只有三个w矩阵需要学习

 2)多头自注意力

头1只跟头1计算,头2只跟头2计算,头n只跟头n计算。

 

乘上一个矩阵,得到最终的bi,传入下一层 

 

Multi-head Attention 的本质是,在参数总量保持不变的情况下,将同样的 Query,Key,Value 映射到原来的高维空间的不同子空间中进行 Attention 的计算,在最后一步再合并不同子空间中的 Attention 信息。这样降低了计算每个 head 的 Attention 时每个向量的维度,在某种意义上防止了过拟合;由于 Attention 在不同子空间中有不同的分布,Multi-head Attention 实际上是寻找了序列之间不同角度的关联关系,并在最后拼接这一步骤中,将不同子空间中捕获到的关联关系再综合起来。

 3)位置信息

 有了位置信息的加持,a向量才算的上是有顺序的。

3)注意力机制

意义:可以从众多信息中,得到对解决问题最有用的信息。节省了算力资源,提高模型效率和能力。

比如看黑板学习知识,边边角角的部分是无效信息,老师敲黑板的地方是要关注的有效信息。

 

x1就是tom ,x2就是chase ,x3就是jerry ,先编码再解码得到y1汤姆,y2追逐 ,y3杰瑞

如果我们采用分心模型,计算过程是这样的。这样的重要程度是也一样的。

 

 encoder-decoder框架

 所以加深一下attention的概念:

 

 计算过程与自注意力相似

其中F(Q,K)是计算相似性的方法,并且方法不唯一

 

 2.transformer

1)结构

 

 Transformer 本质上是一个 Encoder-Decoder 架构。因此中间部分的 Transformer 可以分为两个部分:编码组件和解码组件

 论文中编码器和解码器使用了六层

 每个编码器由两个子层组成:Self-Attention 层(自注意力层)和 Position-wise Feed Forward Network(前馈网络,缩写为 FFN)。每个编码器的结构都是相同的,但是它们使用不同的权重参数。位置前馈网络就是一个全连接前馈网络,每个位置的词都单独经过这个完全相同的前馈神经网络。其由两个线性变换组成,即两个全连接层组成,第一个全连接层的激活函数为 ReLU 激活函数。

 每个编码器的每个子层(Self-Attention 层和 FFN 层)都有一个残差连接,再执行一个层标准化操作,整个计算过程可以表示为:

 2)位置编码

再提一嘴位置编码

 

 

 

以上是关于transformer总结的主要内容,如果未能解决你的问题,请参考以下文章

transformer预测过程_Transformer在推荐模型中的应用总结

Spark IMF传奇行动第17课Transformations实战总结

Transformer模型总结

RDD的 transformations 和 actions 总结

Spark (Python版) 零基础学习笔记—— Spark Transformations总结及举例

stn,spatial transformer network总结