TransFormer--注意力机制:位置编码

TransFormer--注意力机制:位置编码

我们还是以I am good(我很好)为例。在RNN模型中,句子是逐字送入学习网络的。换言之,首先把I作为输入,接下来是am,以此类推。通过逐字地接受输入,学习网络就能完全理解整个句子。然而,Transformer网络并不遵循递归循环的模式。因此,我们不是逐字地输入句子,而是将句子中的所有词并行地输入到神经网络中。并行输入有助于缩短训练时间,同时有利于学习长期依赖。

不过,并行地将词送入Transformer,却不保留词序,它将如何理解句子的意思呢

Transformer也需要一些关于词序的信息,以便更好地理解句子。但这将如何做到呢?

对于给定的句子I am good,我们首先计算每个单词在句子中的嵌入值。嵌入维度可以表示为 d m o d e l d_{model} dmodel。比如将嵌入维度 d m o d e l d_{model} dmodel设为4,那么输入矩阵的维度将是[句子长度×嵌入维度],也就是[3 × 4]。

同样,用输入矩阵X(嵌入矩阵)表示输入句I am good。假设输入矩阵X如下图所示。

如果把输入矩阵X直接传给Transformer,那么模型是无法理解词序的。因此,需要添加一些表明词序(词的位置)的信息,以便神经网络能够理解句子的含义。所以,我们不能将输入矩阵直接传给Transformer。这里引入了一种叫作位置编码的技术,以达到上述目的。顾名思义,位置编码是指词在句子中的位置(词序)的编码。

位置编码矩阵P的维度与输入矩阵X的维度相同。在将输入矩阵直接传给Transformer之前,我们将使其包含位置编码。我们只需将位置编码矩阵P添加到输入矩阵X中,再将其作为输入送入神经网络,如下图所示。这样一来,输入矩阵不仅有词的嵌入值,还有词在句子中的位

置信息。

位置编码矩阵究竟是如何计算的呢?如下所示,Transformer论文"Attention Is All You Need"的作者使用了正弦函数来计算位置编码:

P ( p o s , 2 i ) = s i n ( p o s 1000 0 2 i / d m o d e l ) P(pos, 2i) = sin(\frac{pos}{10000^{ 2i / d_{model} }}) P(pos,2i)=sin(100002i/dmodelpos)

P ( p o s , 2 i + 1 ) = c o s ( p o s 1000 0 2 i / d m o d e l ) P(pos, 2i + 1) = cos(\frac{pos}{10000^{ 2i / d_{model} }}) P(pos,2i+1)=cos(100002i/dmodelpos)

在上面的等式中,pos表示该词在句子中的位置,i表示在输入矩阵中的 位置。下面通过一个例子来理解以上等式,如下图所示。

可以看到,在位置编码中,当i是偶数时,使用正弦函数;当i是奇数时,则使用余弦函数。通过简化矩阵中的公式,可以得出下图所示的结果。

我们知道I位于句子的第0位 ,am在第1位,good在第2位。代入pos值,我们得到下图所示的结果。

最终的位置编码矩阵P如下图所示。

只需将输入矩阵X与计算得到的位置编码矩阵P进行逐元素相加,并将得出的结果作为输入矩阵送入编码器中。

让我们回顾一下编码器架构。下图是一个编码器模块,从中我们可以看到,在将输入矩阵送入编码器之前,首先要将位置编码加入输入矩

阵中,再将其作为输入送入编码器。

以上就是位置编码的全部内容啦!

相关推荐
朝九晚五ฺ1 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
小喵要摸鱼1 小时前
Python 神经网络项目常用语法
python
一念之坤2 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
猫爪笔记2 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
wxl7812273 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
NoneCoder3 小时前
Python入门(12)--数据处理
开发语言·python
ZHOU_WUYI3 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1233 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
pq113_63 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio
澄澈i3 小时前
设计模式学习[8]---原型模式
学习·设计模式·原型模式