一文滤清位置编码:训练式,三角式,Rope,Alibi


一文滤清位置编码:训练式,三角式,Rope,Alibi

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

前言
自Transformer诞生之后,由于Transformer本身的原因,位置编码就变成不可缺少的一环。
当前业界中主要存在两种位置编码方式:
绝对位置编码
思想:通过某种方式将位置信息转化为位置向量,然后将该向量与输入向量相加。
1、训练式位置编码

2、三角式位置编码
三角式位置编码是Transformer原论文中提出的一种绝对位置编码,其思想是通过公式计算出一个恒等变化式,将位置信息转化为向量。相比于上面训练式位置编码具有一定的外推性。
典型模型:Transformer。
具体的公式表达如下:
其中,
,d表示向量的维度,t表示位置索引,2i和2i+1表示不同维度下的向量索引。
对于上述位置计算,存在三角恒等变换公式:
我们先考虑i=0时,那么可以推导得到位置t与位置t+k的关系:
其中,
,那么则有:
我们假定
那么就可以得到:
而特别的,对于R_k来说,有:
那么我们得出:
那么则有:
而根据性质:
,那么则有:
,进一步则有:
从上述性质中我们可以看出,三角式位置编码有一定的相对位置信息。
具体的代码实现如下:

相对位置编码
思想:相对位置编码在计算Self-Attention时引入两个位置之间的相对距离。由于自然语言一般更依赖于相对位置,所以相对位置编码通常有着优秀的表现。
1、旋转位置编码:ROPE
ROPE的思想非常优雅,其根本的思想是通过实现以下运算来给Self-Attention中的q,k添加位置信息,进而实现对于位置m的向量q与位置为n的向量k,满足:
那么问题就转化为如何得到f(q,m)这个计算公式。苏剑林在博客https ://zhuanlan. zhihu.com/p/359502624中进行了详细的推导,不愧是数学出身的,这里就不赘述了,直接说结论,通过一系列推导得到了:
将其转化为矩阵形式为:
此时,我们发现,这个矩阵与三角式位置编码中的矩阵一模一样,ROPE正是利用了该矩阵的特性。此时我们就可以得到:
扩展到多维向量情况下则有:
由于W_m的稀疏性,可以f(q,m)将其转化为:
现在ROPE已经成为大模型时代位置编码的主流模型。
2、AliBipositionembedding
Alibi的核心思想是直接在Attention计算计算时从将
转为
,如下图所示:
最后
本文对常见的四种位置编码进行了详细的讲解,并对绝对位置编码的代码进行了注释。由于相对位置编码的代码比较复杂,就放到下一篇来讲述了,敬请期待。
Reference
https ://zhuanlan. zhihu.com/p/415020704https ://mp. weixin.qq. com/s/-1xVXjoM0imXMC7DKqo-Gw
https ://zhuanlan. zhihu.com/p/693814482
https ://zhuanlan. zhihu.com/p/693895588
https ://zhuanlan. zhihu.com/p/359502624
https ://www. zhihu.com/tardis/zm/art/647109286?source_id=1003
https ://zhuanlan. zhihu.com/p/675243992
进技术交流群请添加AINLP小助手微信(id:ainlp2)
请备注具体方向+所用到的相关技术点
关于AINLP
AINLP是一个有趣有AI的自然语言处理社区,专注于AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录