位置编码

2021-08-31  本文已影响0人  SimonLiu000

Transformer: 不可学习位置编码

可以看出不同的column(j)之间,周期不一样

不同的row(i)之间,值不一样

且相邻的column之间,相位不一样

\mathbf{P} \in \mathbb{R}^{n \times d}: p_{i, 2 j}=\sin \left(\frac{i}{10000^{2 j / d}}\right), \quad p_{i, 2 j+1}=\cos \left(\frac{i}{10000^{2 j / d}}\right)

特点:

相邻一定距离的位置,可以通过线性变换得到

\omega_{j}=1 / 10000^{2 j / d}

\left[\begin{array}{cc}\cos \left(\delta \omega_{j}\right) & \sin \left(\delta \omega_{j}\right) \\-\sin \left(\delta \omega_{j}\right) & \cos \left(\delta \omega_{j}\right)\end{array}\right]\left[\begin{array}{c}p_{i, 2 j} \\p_{i, 2 j+1}\end{array}\right]=\left[\begin{array}{c}p_{i+\delta, 2 j} \\p_{i+\delta, 2 j+1}\end{array}\right]

BERT:可学习位置编码

直接设定为可学习的与序列等长的向量即可,可以用随机初始化

上一篇 下一篇

猜你喜欢

热点阅读