相对位置编码与绝对位置编码

本文探讨了Transformer模型中位置编码的重要性,包括绝对位置编码和相对位置编码。绝对位置编码通过训练得到,但无法捕捉相对位置信息;相对位置编码则解决了这一问题,能够表达词与词之间的距离。正弦位置编码是一种数学上优雅的解决方案,通过线性组合表示相对位置。文章还提到了层次分解方法来扩展绝对位置编码的适用范围,以处理超长文本,并链接了几篇相关研究论文供深入阅读。
摘要由CSDN通过智能技术生成

位置编码

在输入的第k个向量xk中加入位置向量pk变为xk+pk,其中pk只依赖于位置编号k.位置向量和词向量相加而不是拼接。不选择拼接,
(1)拼接会导致参数数量的增加,其学习难度进一步上升

(2)另一个解释的原因是选择拼接后的效果有时积极有时消极

绝对位置编码

BERT使用的是训练出来的绝对位置编码,这种编码方式简单直接,效果也不错,且位置嵌入只与词的位置i有关,绝对方法将输入tokens的绝对位置从1编码到最大序列长度。也就是说,每个位置都有单独的编码向量。然后将编码向量与输入Tokens组合,以将位置信息输入给模型。但是该方法不能表达1与2之间的距离相比2与5的距离更小。因此引入了相对的位置编码
绝对位置编码的生成和生成词向量的方法相似,先初始化位置编码,再放到预训练过程中,训练出每个位置的位置向量。缺点是没有外推性,如果预训练的最大长度为512的话,那么只能处理长度为512的句子,最近研究表明可以通过层次分解的方式,可以使得绝对位置编码能外推的足够长的范围n^2
链接: 《层次分解位置编码,让BERT可以处理超长文本》
链接: ICCV2021 | Vision Transformer中相对位置编码的反思与改进

链接: 相对位置编码和绝对位置编码原理及源码

正弦位置编码

Position Encodeing 公式如下
在这里插入图片描述
pos即position,意为token在句中的位置,句子长度L,pos=0,1…L-1,i为向量的某一维度在这里插入图片描述
i=0,1…255.
根据数学公式
在这里插入图片描述
可以将公式拆分开为
在这里插入图片描述
可以看出,对于pos+k位置的位置向量某一维2i或2i+而言可以表示为pos位置与k位置的位置向量的2i与2i+1维的线性组合,这样的线性组合意味着位置中蕴含了相对的位置信息

参考链接: 如何理解Transformer论文中的positional encoding,和三角函数有什么关系?

相对位置编码

图片举例
在这里插入图片描述
图片中为了得到两个 i 的表示向量,如果不加入位置编码是会把两个i看作一样的,但是从语义语法的角度这是不合理,为了解决该问题就引入
相对位置变量:一个位置相对另一个位置的采用一组可训练的embedding向量来表示输入的句子中每个单词的位置编码。可以表示出单词之间的相互距离,该距离为一个设定值2k+1,左边K个右边k个,当前一个。超过范围就认为影响较小没必要精确计算两者之间的距离。具体计算请参考链接
中文版
链接: relative position representation
英文原版
强烈推荐 How Self-Attention with Relative Position Representations works

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值