为什么需要位置编码
在自注意力编码中,所有
a
a
a的计算都并行同时执行
得到对应的
b
b
b,可以并行
就代表着
a
a
a之间是不存在先后顺序关系的,这存在问题。
在不使用位置编码时,将
a
2
a_2
a2与
a
3
a_3
a3的顺序打乱,不会影响
a
1
a_1
a1输出的数据。
如何实现存在先后顺序
使用位置编码
p
e
i
pe_i
pei,来使得
a
i
a_i
ai包含有位置信息。
具体做法:将
p
e
i
pe_i
pei与
a
i
a_i
ai相加,得到新的
a
i
a_i
ai即可
怎么得到位置编码
1. 使用公式计算出位置编码
可以使用公式来计算出对应的位置编码,其中
p
o
s
pos
pos为当前
a
a
a所在的位置,
i
i
i为向量中的第
i
i
i个维度。
通过这个公式就可以计算出各个位置的
a
a
a所对应的位置编码
p
e
pe
pe
2. 使用可训练的位置编码
位置编码在训练过程中会不断改变