©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络

最近笔者做了一些理解和改进Transformer的尝试,得到了一些似乎还有价值的经验和结论,遂开一个专题总结一下,命名为“Transformer升级之路”,既代表理解上的深入,也代表结果上的改进。

作为该专题的第一篇文章,笔者将会介绍自己对 Google 在《Attention is All You Need》[1] 中提出来的 Sinusoidal 位置编码的新理解,其中 
























 分别是位置 k 的编码向量的第 2i, 2i+1 个分量,d 是向量维度。

作为位置编码的一个显式解,Google 在原论文中对它的描述却寥寥无几,只是简单提及了它可以表达相对位置信息,后来知乎等平台上也出现了一些解读,它的一些特点也逐步为大家所知,但总体而言比较零散。特别是对于“它是怎么想出来的”、“非得要这个形式不可吗”等原理性问题,还没有比较好的答案。

因此,本文主要围绕这些问题展开思考,可能在思考过程中读者会有跟笔者一样的感觉,即越思考越觉得这个设计之精妙漂亮,让人叹服。

泰勒展开

假设我们的模型为





















,其中标记出来的












分别表示第 m,n 个输入,不失一般性,设 f 是标量函数。像 Transformer 这样的纯 Attention 模型,它是全对称的,即对于任意的 m,n,都有:

这就是我们说 Transformer 无法识别位置的原因——全对称性,简单来说就是函数天然满足恒等式 f(x,y)=f(y,x),以至于我们无法从结果上区分输入是 [x,y] 还是 [y,x]。

因此,我们要做的事情,就是要打破这种对称性,比如在每个位置上都加上一个不同的编码向量:

一般来说,只要每个位置的编码向量不同,那么这种全对称性就被打破了,即可以用









代替 f 来处理有序的输入。但现在我们希望能进一步分析位置编码的性质,甚至得到一个显式解,那么就不能止步于此。

为了简化问题,我们先只考虑 m,n 这两个位置上的位置编码,将它视为扰动项,泰勒展开到二阶:

可以看到,第 1 项跟位置无关,第 2 到 5 项都只依赖于单一位置,所以它们是纯粹的绝对位置信息,第 6 项是第一个同时包含












的交互项,我们将它记为

















,希望它能表达一定的相对位置信息。

(此处的泰勒展开参考了知乎问题《BERT 为何使用学习的 position embedding 而非正弦 position encoding?》[2] 上的纳米酱的回复。)

相对位置

我们先从简单的例子入手,假设








是单位矩阵,此时 是两个位置编码的内积,我们希望在这个简单的例子中该项表达的是相对位置信息,即存在某个函数 g 使得:

这里的












是 d 维向量,这里我们从最简单 d=2 入手。

对于 2 维向量,我们借助复数来推导,即将向量 [x,y] 视为复数







,根据复数乘法的运算法则,我们不难得到:

其中
















的共轭复数,






代表复数的实部。为了满足式(5),我们可以假设存在复数











使得:

这样两边取实部就得到了式(5)。为了求解这个方程,我们可以使用复数的指数形式,即设 得到:

对于第一个方程,代入 n=m 得













,即







是一个常数,简单起见这里设为 1 就好;对于第二个方程,代入 n=0 得

















,简单起见设









,那么












,即





















,代入 n=m-1 得





















,那么









只是一个等差数列,通解为





,因此我们就得到二维情形下位置编码的解为:

由于内积满足线性叠加性,所以更高维的偶数维位置编码,我们可以表示为多个二维位置编码的组合:

它同样满足式(5)。当然,这只能说是式(5)的一个解,但不是唯一解,对于我们来说,求出一个简单的解就行了。

远程衰减

基于前面的假设,我们推导出了位置编码的形式(10),它跟标准的 Sinusoidal 位置编码(1)形式基本一样了,只是






的位置有点不同。一般情况下,神经网络的神经元都是无序的,所以哪怕打乱各个维度,也是一种合理的位置编码,因此除了各个







没确定下来外,式(10)和式(1)并无本质区别。

式(1)的选择是




















,这个选择有什么意义呢?事实上,这个形式有一个良好的性质:它使得随着 |m-n| 的增大,














有着趋于零的趋势。按照我们的直观想象,相对距离越大的输入,其相关性应该越弱,因此这个性质是符合我们的直觉的。只是,明明是周期性的三角函数,怎么会呈现出衰减趋势呢?

这的确是个神奇的现象,源于高频振荡积分的渐近趋零性。具体来说,我们将内积写为:

这样问题就变成了积分

























的渐近估计问题了。其实这种振荡积分的估计在量子力学中很常见,可以利用其中的方法进行分析,但对于我们来说,最直接的方法就是通过 Mathematica 把积分结果的图像画出来:

然后从图像中我们就可以看出确实具有衰减趋势:

▲ 通过直接积分估计Sinusoidal位置编码的内积衰减趋势

那么,问题来了,必须是















才能呈现出远程衰减趋势吗?当然不是。事实上,对于我们这里的场景,“几乎”每个 [0,1] 上的单调光滑函数







,都能使得积分

























具有渐近衰减趋势,比如幂函数














。那么,















有什么特别的吗?我们来比较一些结果。

▲ 几个不同的 θt 的积分结果(短距离趋势)

▲ 几个不同的 θt 的积分结果(长距离趋势)

就这样看上去,除了









比较异常之外(与横轴有交点),其他很难断定孰优孰劣,无非就是幂函数在短距离降得快一点,而指数函数则在长距离降得快一点,







整体越接近于 0,那么整体就降得慢一些,等等。

如此看来















也只是一个折中的选择,没有什么特殊性,要是笔者来选,多半会选















。还有一个方案是,直接让




















作为各个







的初始化值,然后将它设为可训练的,由模型自动完成微调,这样也不用纠结选哪个了。

一般情况

前面两节中,我们展示了通过绝对位置编码来表达相对位置信息的思想,加上远程衰减的约束,可以“反推”出 Sinusoidal 位置编码,并且给出了关于







的其他选择。但是别忘了,到目前为止,我们的推导都是基于








这个简单情况的,对于一般的






,使用上述 Sinusoidal 位置编码,还能具备以上的良好性质吗?

如果






是一个对角阵,那么上面的各个性质可以得到一定的保留,此时:

由积化和差公式得到:

可以看到它也是确实包含了相对位置 m-n,只不过可能会多出 m+n 这一项,如果不需要它,模型可以让
































来消除它。在这个特例下,我们指出的是 Sinusoidal 位置编码赋予了模型学习相对位置的可能,至于具体需要什么位置信息,则由模型的训练自行决定。

特别地,对于上式,远程衰减特性依然存在,比如第一项求和,类比前一节的近似,它相当于积分:

同样地,振荡积分的一些估计结果(参考《Oscillatory integrals》[3] 、《学习笔记 3- 一维振荡积分与应用》[4] 等)告诉我们,该振荡积分在比较容易达到的条件下,有










时积分值趋于零,因此远程衰减特性是可以得到保留的。

如果






不是对角阵,那么很遗憾,上述性质都很难重现的。我们只能寄望于






的对角线部分占了主项,这样一来上述的性质还能近似保留。对角线部分占主项,意味着 d 维向量之间任意两个维度的相关性比较小,满足一定的解耦性。

对于 Embedding 层来说,这个假设还是有一定的合理性的,笔者检验了 BERT 训练出来的词 Embedding 矩阵和位置 Embedding 矩阵的协方差矩阵,发现对角线元素明显比非对角线元素大,证明了对角线元素占主项这个假设具有一定的合理性。

问题讨论

有读者会反驳:就算你把 Sinusoidal 位置编码说得无与伦比,也改变不了直接训练的位置编码比 Sinusoidal 位置编码效果要好的事实。的确,有实验表明,在像 BERT 这样的经过充分预训练的 Transformer 模型中,直接训练的位置编码效果是要比 Sinusoidal 位置编码好些,这个并不否认。

本文要做的事情,只是从一些原理和假设出发,推导 Sinusoidal 位置编码为什么可以作为一个有效的位置,但并不是说它一定就是最好的位置编码。

推导是基于一些假设的,如果推导出来的结果不够好,那么就意味着假设与实际情况不够符合。那么,对于 Sinusoidal 位置编码来说,问题可能出现在哪呢?我们可以逐步来反思一下。

第一步,泰勒展开,这个依赖于




是小量,笔者也在 BERT 中做了检验,发现词 Embedding 的平均模长要比位置 Embedding 的平均模长大,这说明




是小量某种程度上是合理的,但是多合理也说不准,因为 Embedding 模长虽然更大但也没压倒性;

第二步,假设






是单位阵,因为上一节我们分析了它很可能是对角线占主项的,所以先假设单位阵可能也不是太大的问题;第三步,假设通过两个绝对位置向量的内积来表达相对位置,这个直觉上告诉我们应该是合理的,绝对位置的相互应当有能力表达一定程度的相对位置信息;

最后一步,通过自动远程衰减的特性来确定







,这个本身应该也是好的,但就是这一步变数太大,因为可选的







形式太多,甚至还有可训练的







,很难挑出最合理的,因此如果说 Sinusoidal 位置编码不够好,这一步也非常值得反思。

文章小结

总的来说,本文试图基于一些假设,反推出 Sinusoidal 位置编码来,这些假设具有其一定的合理性,也有一定的问题,所以相应的 Sinusoidal 位置编码可圈可点,但并非毫无瑕疵。

但不管怎样,在当前的深度学习中,能够针对具体的问题得到一个显式解,而不是直接暴力拟合,Sinusoidal 位置编码是一个不可多得的案例,值得我们思考回味。

参考文献

[1] https://arxiv.org/abs/1706.03762

[2] https://www.zhihu.com/question/307293465/answer/1028613658

[3] https://www.math.ucla.edu/~tao/247b.1.07w/notes8.pdf

[4] https://zhuanlan.zhihu.com/p/60610509

更多阅读

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

???? 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

???? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

• 所有文章配图,请单独在附件中发送

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

Transformer升级之路:Sinusoidal位置编码追根溯源相关推荐

  1. Transformer升级之路:二维位置的旋转式位置编码

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 在之前的文章 Transformer 升级之路:博采众长的旋转式位置编码中我们提出了旋转式位置 ...

  2. Transformer升级之路:博采众长的旋转式位置编码

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 上一篇文章中,我们对原始的 Sinusoidal 位置编码做了较为详细的推导和理解,总的感觉是 Sinus ...

  3. Transformer升级之路:长度外推性与位置鲁棒性

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 上一篇文章<Transformer升级之路:长度外推性与局部注意力>我们讨论了 T ...

  4. transformer引入位置信息--Sinusoidal位置编码《个人学习笔记》

    transformer引入位置信息--Sinusoidal位置编码 为什么transformer需要位置编码 Sinusoidal绝对位置编码 首先,所有技术都是个人理解,并感谢技术各位分享,由此根据 ...

  5. ​Transformer升级之路:从Performer到线性Attention

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 看过笔者之前的文章线性Attention的探索:Attention 必须有个 Softmax 吗?和 Pe ...

  6. FLOATER:更加灵活的Transformer位置编码!

    NewBeeNLP公众号原创出品 公众号专栏作者 @Maple小七 北京邮电大学·模式识别与智能系统 来自 ICML2020 对Transformer位置编码的探索  论文:Learning to E ...

  7. 美团提出基于隐式条件位置编码的Transformer,性能优于ViT和DeiT

    视学算法发布 机器之心编辑部 Transformer 跨界计算机视觉的热潮之下,有一个问题需要解决:如何像 CNN 一样直接处理不同尺寸的输入?对此,美团提出了一种新型隐式条件位置编码方法,基于该方法 ...

  8. 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT

    本文转载自机器之心. Transformer 跨界计算机视觉的热潮之下,有一个问题需要解决:如何像 CNN 一样直接处理不同尺寸的输入?对此,美团提出了一种新型隐式条件位置编码方法,基于该方法的 CP ...

  9. Transformer架构:位置编码

    2017年,Google的Vaswani 等人提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的 Transformer 架构横空出世.它的可并行化训练能力和优越的性能使其成为自然语言处理领 ...

最新文章

  1. 《自然》杂志:超导突触处理信息能力超人脑
  2. python找房源_python抓取贝壳房源信息
  3. c语言 函数多个参数,C语言函数可变参数
  4. (转)OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)
  5. Media所有参数汇总
  6. 北京创客空间_世界上最大的创客空间,可增强开放安全性等
  7. NLP简报(Issue #3)
  8. File类里的静态字段
  9. system.data oracleClient 需要Oracle客户端8.1.7或high
  10. 交换机VLAN工作模式介绍
  11. 关于docker容器启动后,浏览器无法正常访问相关问题——docker 宿主机与容器不通
  12. IDEA自定义注释模板
  13. matlab读取文本文件----textscan
  14. mySQL mainxml汉化包下载
  15. AndroidStudio Launching ‘app‘ Time out 错误
  16. TencentOS学习笔记(1)
  17. [mybatis异常:Could not find result map ......]
  18. tableau关于增长率、占比的表计算实践应用
  19. STM32三种BOOT模式介绍
  20. Ghost超级技巧一家亲

热门文章

  1. 32位linux运行64位jdk,linux64位操作系统装32位jdk解决方法
  2. java入门第六天课程_Java基础知识——第六天
  3. MessagePack 学习笔记
  4. MongoDB 基础教程CURD帮助类
  5. 更新项目经常使用的Linux命令
  6. 分析单点登录cas的解决方式
  7. MariaDB exists 学习
  8. HDU-2102 A计划 dfs
  9. hprose出现500: Internal Server Error
  10. 聊聊我对开发项目选技术的看法