新闻  |   论坛  |   博客  |   在线研讨会
Transformer的细节到底是怎么样的?Transformer 18问!(2)
数据派THU | 2023-07-19 19:32:28    阅读:341   发布文章

6. Transformer Encoder和Transformer Decoder有哪些不同?

6.1 作用上,Transformer Encoder常用来提取特征,Transformer Decoder常用于生成式任务。Transformer Encoder和Transformer Decoder是两条不同的技术路线,Bert采用的前者,GPT系列模型采用的是后者。

6.2 结构上,Transformer Decoder block包括了3个子Decoder block,而Transformer Encoder block 包括2个子Encoder block,且Transformer Decoder中使用了Mask multi-head Attention。

6.3 从二者的输入输出角度,N个Transformer Encoder运算完成之后,它的输出才正式输入进Transformer Decoder,作为QKV中的K和V,给Transformer Decoder使用。那么TransformerEncoder最后层的输出是如何送给Decoder呢?如图11所示。

图片图11 Transformer Encoder和Transformer Decoder交互的方式

那么,为什么Encoder和Decoder必须要用这种交互的方式呢?其实也并不一定,后续有不同交互方式的提出,如图12。

图片

图12 Transformer Encoder和Decoder的交互方式

7. 什么是Embedding?

7.1 Embedding在Transformer架构中的位置如图13所示。

7.2 提出背景: 计算机无法直接处理一个单词或者一个汉字,需要把一个token转化成计算机可以识别的向量,这也就是embedding过程。

7.3 实现方式: 最简单的embedding操作就是one hot vector,但one hot vector有一个弊端就是没有考虑词语前后之间的关系,后来也就产生了WordEmbedding,如图13。

图片

图13 Embedding的一些说明,从左往右依次为:embedding在Transformer中的位置,one hot vector,Word embedding。

8. 什么是Positional Embedding?

8.1 Positional Embedding在Transformer架构中的位置如图14所示。

8.2 提出背景:RNN作为特征提取器,是自带词的前后顺序信息的;而Attention机制并没有考虑先后顺序信息,但前后顺序信息对语义影响很大,因此需要通过Positional Embedding这种方式把前后位置信息加在输入的Embedding上。

8.3 实现方式: 传统位置编码和神经网络自动训练得到。

图片

图14 Positional Embedding的一些说明,从左往右依次为:positional embedding在Transformer中的位置,传统位置编码的实现方式,传统位置编码ei得到的图像,每一列为一个token的位置编码。

9. 什么是Attention?

9.1 介绍Transformer,为什么要介绍Attention呢?因为在Transformer中最多的multi head attention和Mask multi head attention来自Scaled dot product attention,而scaled dot product attention来自self attention,而self attention是attention的一种,因此首先需要了解Attention,如图15所示。

图片

图15 Attention与Transformer的关系

9.2 Attention到底是什么意思呢?

对于图像而言,attention就是人们看到图像中的核心关注的区域,是图像中的重点,如图16所示。对于序列而言,Attention机制本质上是为了找到输入中不同token之间的相互关系,通过权重矩阵来自发地找到词与词之间的关系。

图片

图16 图像中的attention

9.3 Attention是如何实现的呢?

是通过QKV实现的。

那么什么是QKV呢?Q是query,K是keys,V是values。如图17所示,举例而言,Q是大脑发出的信号,我口渴了;K是环境信息,眼睛看到的世界;V是对环境中不同的物品赋予不同的比重,水的比重加大。

总之,Attention就是通过计算QK的相似度,与V相乘得到注意力数值。

图片

图17 Attention的实现方式

9.4 为什么必须要有QKV三者?

为什么不是只有Q?因为Q1与Q2之间的关系权重,不止需要a12,也需要a21。你可能会问?我们让a12=a21不行吗?也可以尝试,但从原理上讲效果应该没有a12和a21效果好。

为什么不是只有QK?求得的权重系数需要放到输入中,可以乘Q,也可以乘K,为什么要重新乘V呢?我觉得可能是多了一组可训练参数WV,使网络具有更强的学习能力。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客