透彻分析Transformer中的位置编码(positional enconding)

一、Transformer中为什么要使用位置编码positional encoding

在《Attention Is All You Need》这篇论文中首次提到了transformer模型,transformer模型在输入端用了一个位置编码(positional encoding),其主要目的是增加相对位置信息,使其可以更好的利用每个元素相互之间的位置关系
在这里插入图片描述

二、具体编码实现方式

论文作者使用的是正余弦函数进行编码,这时可能会有人产生了疑惑,为什么要使用这么复杂的编码方式呢,这里举个例子,一句话“你好吗”用“1,0,0”、“0,1,0”、“0,0,1”的独热编码不可以么,编码方式还会更加的简单,为什么要用下图这么复杂的编码方式呢?
在这里插入图片描述

因为正余弦编码的表示方法蕴含了相对位置信息,假设一句话“我是小狗”的“”的位置为 pos+k,那么即可用在位置为“pos”的“”和在“k”位置的“”这两个位置的编码向量进行线性组合来表示出这个字的位置编码向量,具体公式如下。
在这里插入图片描述
上式的具体推到用到了sin和cos的积化和差的性质,这也就是为什么要用sin和cos交替的形式来进行位置编码
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值