绝对位置编码,相对位置编码

不同于CNN,RNN,对于Transformer模型,Attention模块是无法捕捉输入顺序的,即无法区分不同位置的Token
1.想办法将位置信息融入到输入中,这构成了绝对位置信息的一般做法
2.微调Attention结构,使它有能力分辨不同位置的token

绝对位置编码

绝对位置编码会将位置信息加到输入中: x k + p o s k x_k+pos_k xk+posk p o s k pos_k posk只依赖于位置编号

训练式

绝对位置编码的一个最朴素方案是不特意去设计什么,而是直接将位置编码当作可训练参数,比如最大长度为512,编码维度为768,那么就初始化一个512×768的矩阵作为位置向量,让它随着训练过程更新。现在的BERT、GPT等模型所用的就是这种位置编码
对于这种训练式的绝对位置编码,一般的认为它的缺点是没有外推性,即如果预训练最大长度为512的话,那么最多就只能处理长度为512的句子,再长就处理不了了。当然,也可以将超过512的位置向量随机初始化,然后继续微调。

三角式

奇数维度: s i n ( p o s 1000 0 2 i d i m ) sin(\frac{pos}{10000^{\frac{2i}{dim}}}) sin(10000dim2ipos) 偶数维度: c o s ( p o s 1000 0 2 i d i m ) cos(\frac{pos}{10000^{\frac{2i}{dim}}}) cos(10000dim2ipos)
很明显,三角函数式位置编码的特点是有显式的生成规律,因此可以期望于它有一定的外推性
s i n ( α + β ) = s i n α ∗ c o s β + s i n β ∗ c o s α sin(\alpha+\beta)=sin\alpha*cos\beta+sin\beta*cos\alpha sin(α+β)=sinαcosβ+sinβcosα

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石头猿rock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值