举例理解transformer中的位置编码

文章目录

*
1. transformer结构图
2. 位置编码的作用
3. 位置编码的计算

1. transformer结构图

举例理解transformer中的位置编码

​ 在transformer的结构图中,由一个”Positional Encoding”,即位置编码,查看了以下资料后,稍微有点儿理解了,记录于此。

; 2. 位置编码的作用

​ 由于transformer是并行化运算,所以输入的信息中没有位置信,而在语音文本中,绝大部分都是有语序的。例如:我爱你,要是翻译成'”You love me”,那意思就完全不一样了。于是,就有了位置编码,其作用就是 让输入数据携带位置信息,是模型能够找出位置特点。

3. 位置编码的计算

​ 在transformer中的位置编码中,其编码公式如下:
P E ( p o s , 2 i ) = s i n ( p o s 1000 0 2 i / d m o d e l ) P E ( p o s , 2 i + 1 ) = c o s ( p o s 1000 0 2 i / d m o d e l ) PE(pos, 2i) = sin({pos \over 10000^{2i/d_{model}}}) \ PE(pos, 2i+1) = cos({pos \over 10000^{2i/d_{model}}})P E (p o s ,2 i )=s i n (1 0 0 0 0 2 i /d m o d e l ​p o s ​)P E (p o s ,2 i +1 )=c o s (1 0 0 0 0 2 i /d m o d e l ​p o s ​)
其中,P E 表 示 位 置 编 码 , p o s 表 示 当 前 字 符 在 输 入 字 母 中 的 位 置 , i = d i m i n d e x / / 2 即 改 字 符 的 维 度 下 表 对 2 求 模 , d m o d e l 表 示 该 字 符 的 维 度 。 PE表示位置编码,pos表示当前字符在输入字母中的位置,i=dim_index // 2即改字符的维度下表对2求模, d_{model}表示该字符的维度。P E 表示位置编码,p o s 表示当前字符在输入字母中的位置,i =d i m i ​n d e x //2 即改字符的维度下表对2 求模,d m o d e l ​表示该字符的维度。

。上面,表示偶数位置使用sin, 奇数位置使用cos。引入实例,如: 翻译”我爱你”。

Step1: embedding编码

​ 假设embedding编码将每个词向量编程成512维,如图所示:

举例理解transformer中的位置编码
如上,如果有规定每次输入的x1, x2,…,xn的长度,那么不足就直接使用padding用0填充.其中的”喜欢”换成”爱”即可。

Step2: 位置编码

​ 由上图知,其d m o d e l = 512 , p o s 爱 = 1 d_{model} = 512, pos_{爱} = 1 d m o d e l ​=5 1 2 ,p o s 爱​=1 ,其编码示意图如下:

举例理解transformer中的位置编码

一步步计算可得,其具体的位置编码:
P E 0 = s i n ( 1 1000 0 2 ∗ 0 / 512 ) = s i n ( 1 ) P E 1 = c o s ( 1 1000 0 2 ∗ 0 / 512 ) = c o s ( 1 ) . . . P E 5 11 = c o s ( 1 1000 0 2 ∗ 255 / 512 ) PE_0 = sin({1 \over 10000^{20/512}}) = sin(1) \ PE_1= cos({1 \over 10000^{20/512}}) = cos(1) \ … \ PE_511 = cos({1 \over 10000^{2255/512}})P E 0 ​=s i n (1 0 0 0 0 2 ∗0 /5 1 2 1 ​)=s i n (1 )P E 1 ​=c o s (1 0 0 0 0 2 ∗0 /5 1 2 1 ​)=c o s (1 )…P E 5 ​1 1 =c o s (1 0 0 0 0 2 ∗2 5 5 /5 1 2 1 ​)
Step3: 位置编码与embedding编码进行相加*

​ 如图,

举例理解transformer中的位置编码

然后即可将其作为transtormer的输入进去Attention以及其他运算。

注:

文章有参考:https://wangguisen.blog.csdn.net/article/details/125074022?spm=1001.2014.3001.5502
该文写得非常赞,值得一看。

Original: https://blog.csdn.net/qq_41915623/article/details/125166309
Author: 陈壮实的搬砖生活
Title: 举例理解transformer中的位置编码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/720242/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球