Roformer:Enhanced Transformer with rotary position embedding

  • Intorduction
  • Method
  • Experiment
  • 代码实现
  • Conclusion
  • Reference

Intorduction

最近位置编码在Transformer表现了高效性,它可以在训练中更好的监督不同位置的不同元素之间的依赖关系。作者提出了一种高效的利用位置信息的方法基于旋转位置编码(RoPE),该方法使用旋转矩阵对绝对位置进行编码,同时在自注意公式中加入显式相对位置依赖。

Method

首先给 q 、k引入绝对位置信息,假设q的位置为m,k的位置为n:

由于计算attention的方式是 q与k矩阵相乘,作者的想法是引入了绝对位置的信息的qm和kn 计算attention后(就是相乘后),他们的结果还可以显示的表示二者的相对位置,公式如下:

作者通过引入负数的方式来求解f(x),这里简单介绍一下复数的转换公式:

r 为复数值到原点的距离,theta为旋转角度。

然后带入到上面公式:

然后作者通过一些列的公式证明(证明过程省略),得到了二维情况下f(x)为:


也就是通过这个fx给 q、k引入绝对位置信息,通过attention操作后,还可以显示的表示他们的相对位置信息。
通过复数公式转换,把它写成矩阵形式:

由于矩阵乘法表示一个矩阵映射到另一个矩阵的空间变换,而上述矩阵则是对q进行了旋转操作,所以也叫做旋转位置编码。
写成高维度的形式为:

由于 0 比较多,会很浪费算力,所以把它写成下面的形式:

然后作者在θi的选择上,我们同样沿用了Sinusoidal位置编码的方案,即θi=10000−2i/d,它可以带来一定的远程衰减性。

Experiment

代码实现

私聊获取

Conclusion

从理论上来看,RoPE与Sinusoidal位置编码有些相通之处,但RoPE不依赖于泰勒展开,更具严谨性与可解释性;从预训练模型RoFormer的结果来看,RoPE具有良好的外推性,应用到Transformer中体现出较好的处理长文本的能力。此外,RoPE还是目前唯一一种可用于线性Attention的相对位置编码。

Reference

https://arxiv.org/pdf/2104.09864.pdf

Roformer:Enhanced Transformer with rotary position embedding相关推荐

  1. 文献阅读:RoFormer: Enhanced Transformer with Rotary Position Embedding

    文献阅读:RoFormer: Enhanced Transformer with Rotary Position Embedding 1. 工作简介 2. 常见位置编码方式 1. 绝对位置编码 1. ...

  2. Rotary Position Embedding (RoPE, 旋转式位置编码) | 原理讲解+torch代码实现

  3. position embedding

    [转载] 关于Transformer中的position embedding 一文教你彻底理解Transformer中的positional encoding Transformer中position ...

  4. Transformer的position embedding

    1. position embedding 位置编码 我们为什么要引入位置编呢?主要有以下几个原因: 文本是时序型数据,词与词之间的顺序关系往往影响整个句子的含义. transformer模型的sel ...

  5. 1.Transformer的word embedding、position embedding、编码器子注意力的掩码

    来源 B站up:deep_thoughts https://www.bilibili.com/video/BV1cP4y1V7GF/?spm_id_from=333.1007.top_right_ba ...

  6. OUC暑期培训(深度学习)——第六周学习记录:Vision Transformer amp; Swin Transformer

    第六周学习:Vision Transformer & Swin Transformer Part 1 视频学习及论文阅读 1.Vision Transformer 原文链接:https://a ...

  7. FlyAI资讯:关于Transformer,那些的你不知道的事

    摘要:基于Transformer的架构主要用于建模语言理解任务,它避免了在神经网络中使用递归,而是完全依赖于self-attention机制来绘制输入和输出之间的全局依赖关系. 人工智能学习离不开实践 ...

  8. 品论文:VISION TRANSFORMER (VIT)

    今天上午看了个论文,每当遇到全英文论文的时候,就会发现自己的英文水平属实是太一般,但是看完这篇论文确实是感触良多!!! 论文标题:<AN IMAGE IS WORTH 16X16 WORDS: ...

  9. 【论文阅读】GETNext: Trajectory Flow Map Enhanced Transformer for Next POI Recommendation

    [论文阅读]GETNext: Trajectory Flow Map Enhanced Transformer for Next POI Recommendation 前言 Next POI 推荐是根 ...

最新文章

  1. minus oracle 顺序_oracle minus的用法来一波
  2. 文件服务器结构,文件服务器结构
  3. 如何修改计算机网络时间,在Win7系统中,电脑时间改不了怎么办?
  4. 八款常用的 Python GUI 开发框架推荐
  5. [云炬创业管理笔记]第一章测试4
  6. Linux vim打开文件的四种方式
  7. 中山大学校队选拔赛第二试题试题3【Compressed suffix array】-------2015年2月8日
  8. BBC英语-drama
  9. JFinal实现原理
  10. fsck命令--Linux命令应用大词典729个命令解读
  11. 基于C语言图书馆管理系统编程设计
  12. 多项式拟合(polyfit和polyval)
  13. windows常用指令大全
  14. 雪球网热股榜--Ajax动态网页爬虫
  15. 玩转MongoDB4.0(MongoDB基础总结)
  16. python 矩阵求转置、行列式、迹、求逆
  17. element ui 日历空控件添加农历 节气和家假日
  18. 杂谈:倘若flash支持JPEG XR格式?
  19. SpringMVC中文件的上传和下载
  20. 决策树-ID3与C4.5

热门文章

  1. python:写坤打球
  2. 生命在于学习——文件解析
  3. text rank java 实现_使用TextRank实现的关键字提取
  4. 基于最新的MAUI混合VUE3开发Android应用(2022-11-01)
  5. 10.11 10.12 英语单词
  6. java判断字符串相等
  7. php 二维数组更改键名
  8. 解决政务微信ios移动端无法设置顶部title名称
  9. Vue.js学习详细课程系列--共32节(2 / 6)
  10. java计算机毕业设计防疫宣传系统源码+数据库+系统+lw文档+部署