位置编码

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:可学习位置编码

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容