论文链接:https://arxiv.org/pdf/2005.00743.pdf
参考文档:https://mp.weixin.qq.com/s/e2Cor8amz7GiFfBGdLXULg

导读

今天阅读的是一篇来自Google的最新论文《SYNTHESIZER: Rethinking Self-Attention in Transformer Models》,该论文重新探索了Transformer中注意力机制的必要性,并引入了新的attention计算方法Synthesizer。实验显示,即使不进行token之间的attention交互计算,synthesizer在翻译、语言模型、GLUE等任务上也可以达到很好的效果。

1、引言

1.1、什么是自注意力机制

自注意力机制算是解释性比较强的模型之一,它通过直接把序列两两比较(代价是计算量变为 O(n2)O(n^2)O(n2),当然由于是纯矩阵运算,这个计算量相当也不是很严重),能够一步到位捕捉到全局的联系。相比之下,RNN 需要一步步递推才能捕捉到,而 CNN 则需要通过层叠来扩大感受野,这是 Self Attention 层的明显优势。

自注意力机制到底是如何生效的?这种“token”对“token”的注意力是必须的吗?Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk​​QKT​)VSelf−Attention(X)=Attention(XWQ,XWK,XWV)=softmax(XWQWKTXTdk)XWVSelf-Attention(X)=Attention(XW_Q,XW_K,XW_V)=softmax\left(\frac{XW_QW_K^TX^T}{\sqrt{d_k}}\right)XW_VSelf−Attention(X)=Attention(XWQ​,XWK​,XWV​)=softmax(dk​​XWQ​WKT​XT​)XWV​本质上来看,自注意力就是通过一个n×nn×nn×n的矩阵AAA和d×d′d×d'd×d′的矩阵WvW_vWv​,将原本是n×dn×dn×d的矩阵XXX,变成了n×d′n×d'n×d′的矩阵AXWvAXW_vAXWv​。其中矩阵A是动态生成的,即A=softmax(B),B=XWQWKTXTdkA=softmax(B),B=\frac{XW_QW_K^TX^T}{\sqrt{d_k}}A=softmax(B),B=dk​​XWQ​WKT​XT​对于矩阵BBB,本质上来说它就是 XXX 里边两两向量的内积组合,所以称为“token对token”的Attention。

至于Multi-Head Attention,则不过是Attention运算在不同的参数下重复多次然后将多个输出拼接起来,属于比较朴素的增强。

那么,就到了前面提出的问题:“token对token”是必须的吗?能不能通过其他方式来生成这个矩阵BBB?Google的这篇论文正是“天马行空”了几种新的形式并做了实验,这些形式统称为Synthesizer。

1.2、Transformer存在的问题


点积自注意力提供了强大的建模能力,但同时作者对点积自注意力提出了质疑,它的计算可能是不必要的。

点积的基本作用是确定单个 token 相对于序列中所有其他 token 的相对重要性。key、query、value 暗示自注意力模拟一个基于内容的检索过程,过程的核心是 pairwise 的交互。该文章对整个过程进行了反思。

2、模型简介

2.1、Synthesizer的关键思想

Synthesizer 的核心思想是用低复杂度的attention计算代替dot product式的注意力机制。传统 Transformer 的注意力机制需要进行 token 之间的两两交互,虽然可以获得更多的交互信息,但attention score会很依赖实例,难以保证模型学到更多的泛化特征。

因此,synthesizer提出了新的attention matrix学习方法,只通过简单的前馈神经网络即可得到注意力分数,完全省去了token之间的点积交互。

2.2、实现细节

Synthesizer 大体上可以理解为一个 Transformer,其中自注意力模块被 Synthetic Attention 模块替换。

上图表示了 Transformer、Dense Synthesizer 和 Random Synthesizer 的关键思想。

Synthesizer 移除了 query-key-value 的概念,而直接合成一个对齐矩阵。具体而言,即去除了 KKK、QQQ、VVV,而使用一个行和列大小等同于序列长度lll 的矩阵 BBB来表示任意 token 之间的关系。作者提出了两类 synthesizer,分别是 Dense Synthesizer 和 Random Synthesizer。

2.2.1、Dense Synthesizer

第一种形式在原论文中称为Dense:BBB需要是n×nn×nn×n大小的,而XXX是n×dn×dn×d的,所以只需要一个d×nd×nd×n的变换矩阵WaW_aWa​就可以将它变成n×nn×nn×n了,即B=XWaB=XW_aB=XWa​这其实就相当于把KKK固定为常数矩阵WaTW_a^TWaT​了。当然,原论文还做得更复杂一些,用到了两层Dense层:B=relu(XW1+b1)W2+b2B=relu(XW_1+b_1)W_2+b_2B=relu(XW1​+b1​)W2​+b2​这可以理解为两个 Dense 层,WWW和bbb 用于 Dense 层的计算。而最后模型的输出YYY 由表示 token 间关系的矩阵 BBB得到。Y=Softmax(B)G(X)Y=Softmax(B)G(X)Y=Softmax(B)G(X)
其中,G(X)G(X)G(X)可类比为标准 Transformer 的 VVV.

但思想上并没有什么变化。

2.2.2、Random Synthesizer

刚才说Dense形式相当于把KKK固定为常数矩阵,我们还能不能更“异想天开”一些:把QQQ固定为常数矩阵?这时候整个BBB相当于是一个常数矩阵,即B=RB=RB=R原论文中还真是实验了这种形式,称之为Random,顾名思义,就是B是随机初始化的,然后可以选择随训练更新或不更新。据原论文描述,固定形式的Attention首次出现在论文《Fixed Encoder Self-Attention Patterns in Transformer-Based Machine Translation》,不同点是那里的Attention矩阵是由一个函数算出来的,而Google这篇论文则是完全随机初始化的。从形式上看,Random实际上就相当于可分离卷积(Depthwise Separable Convolution)运算。

Random Synthesizer 的方法中,注意力权重的初始化是不受任何输入 token 的影响,而是完全随机初始化。这些随机初始化的值可以被训练,或者保持固定。

以RRR 表示一个随机初始化矩阵,则 Random Synthesizer 被定义为:Y=Softmax(R)G(X)Y=Softmax(R)G(X)Y=Softmax(R)G(X)即 BBB初始化的值是 RRR. 该方法不依赖 token 对之间的交互或者任何单个 token 的信息,而是学习一个能跨实例有效的任务特定的对齐。

换句话说,作者认为,学习一个跨实例有效的模型意味着在初始化时不直接依靠任何 token 信息。

2.3、低秩分解

上面两种新形式,往往会面对着参数过多的问题,所以很自然地就想到通过低秩分解来降低参数量。对于Dense和Random,原论文也提出并验证了对应的低秩分解形式,分别称为Factorized Dense和Factorized Random。

Factorized Dense通过Dense的方式,生成两个n×a,n×bn×a,n×bn×a,n×b的矩阵B1,B2B_1,B_2B1​,B2​,其中ab=nab=nab=n;然后将B1B_1B1​重复bbb次、然后将B2B_2B2​重复aaa次,得到对应的n×nn×nn×n矩阵B~1,B~2\tilde{B}_1,\tilde{B}_2B~1​,B~2​,最后将它们逐位相乘(个人感觉相乘之前B~2\tilde{B}_2B~2​应该要转置一下比较合理,但原论文并没有提及),合成一个n×nn×nn×n的矩阵:B=B~1⊗B~2B=\tilde{B}_1\otimes\tilde{B}_2B=B~1​⊗B~2​至于Factorized Random就很好理解了,本来是一整个n×nn×nn×n的矩阵RRR,现在变成两个n×kn×kn×k的矩阵R1,R2R_1,R_2R1​,R2​,然后B=R1R2TB=R_1R_2^TB=R1​R2T​

2.4、混合模式

到目前为止,连同标准的自注意力,我们有5种不同的生成矩阵BBB的方案,它们也可以混合起来,即B=∑i=1NαiBiB=\sum_{i=1}^N\alpha_iB_iB=i=1∑N​αi​Bi​其中BiB_iBi​是不同形式的自注意力矩阵,而∑i=1Nαi=1\sum_{i=1}^N\alpha_i=1∑i=1N​αi​=1是可学习参数。

3、实验

前面介绍了统称为Synthesizer的几种新型自注意力形式,它们的共同特点是没有保持“token对token”形式,尤其是Random,则完全抛弃了原有注意力的动态特点,变成了静态的矩阵。

那么,这些新型自注意力的效果如何呢?它们又怎样冲击我们对自注意力机制的认识呢?

3.1、机器翻译与语言建模

第一个评测任务是机器翻译与语言建模,详细地比较了各种自注意力形式的效果:

关于机器翻译任务,可以看到相同参数量的 Synthesizer(Random + Vanilla) 与其他模型拉开了一定差距,也比相同参数量的 Transformer (Control) 表现更好。值得注意的是,两个分解方法取得的提升并不如混合模型取得的提升更多,但在一定程度上减少了参数量。

关于语言建模任务,使用的数据集是 LM1B,取得最好效果的是 Synthesizer (Dense + Vanilla),它仍然是一个混合模型,同样是 Synthesizer 的各种设置中唯一超过 Transformer 的模型。

不知道读者怎么想,反正Synthesizer的这些结果是冲击了笔者对自注意力的认知的。表格显示,除了固定的Random外,所有的自注意力形式表现基本上都差不多,而且就算是固定的Random也有看得过去的效果,这表明我们以往对自注意力的认知和解释都太过片面了,并没有揭示自注意力生效的真正原因。

3.2、摘要生成

接下来在摘要和对话生成任务上的结果:

在自动摘要这个任务上,标准注意力效果比较好,但是对话生成这个任务上,结果则反过来:标准的自注意力是最差的,Dense(D)和Random(R)是最好的,而当Dense和Random混合了标准的自注意力后(即 D+V 和 R+V),效果也变差了。这说明标准注意力并没有什么“独占鳌头”的优势,而几个Synthesizer看起来是标准注意力的“退化”,但事实上它们互不从属,各有优势。

3.3、预训练+微调

最后,对于我们这些普通读者来说,可能比较关心是“预训练+微调”的效果怎样,也就是说,将BERT之类的模型的自注意力替换之后表现如何?原论文确实也做了这个实验,不过Baseline不是BERT而是T5(https://github.com/google-research/text-to-text-transfer-transformer),结果如下:

在这个结果中,相比标准自注意力,Dense和Random就显得逊色了,这表明Dense和Random也许会在单一任务上表现得比较好,而迁移能力则比较弱。但是不能否定的是,像Random这样的自注意力,由于直接省去了QKTQK^TQKT这个矩阵运算,因此计算效率会有明显提升,因此如果能想法子解决这个迁移性问题,说不准Transformer模型家族将会迎来大换血。

4、结论

该文提出了 Synthesizer,一个新的 Transformer 模型,它采用了合成注意力(Synthetic Attention)。作者试图更好地理解和评估全局对齐和局部、实例对齐(独立 token 和 token 到 token 的对齐)在自注意力中的效用。

在机器翻译、语言建模和对话生成等多个任务上,合成注意力与原有自注意力相比,表现出有竞争力的性能,点积自注意力的作用与效率值得怀疑与进一步研究。此外,在对话生成任务上,token 之间的交互信息实际会损害性能。

实际上,Synthesizer 的不同设置没有绝对的优劣,也和具体的任务相关。个人认为为何在各种任务中 Synthesizer 的表现存在明显差异、它与点积注意力分别适合于哪些任务,以及背后的成因是值得深究的。

论文中提出了几种新型的自注意力机制,并做了相当充分的实验,而实验结果很可能会冲击我们对自注意力机制的已有认知,值得大家读读~

Transformer新内核Synthesizer:低复杂度的attention代替点乘式的注意力机制相关推荐

  1. 告别自注意力,谷歌为Transformer打造新内核Synthesizer

    一只小狐狸带你解锁 炼丹术&NLP 秘籍 作者:舒意恒(南京大学硕士生,知识图谱方向) 今天给大家介绍一篇来自Google的最新论文<SYNTHESIZER: Rethinking Se ...

  2. 学习总结——注意力机制(transformer、DETR)

    学习总结--注意力机制 初探注意力 通道注意力 空间注意力 CV中基本注意力机制 NLP中的注意力机制 自注意力机制 DETR 参考文献 初探注意力 我们知道图片可以通过提取特征进行分类.目标检测等后 ...

  3. 影响因子14.65:16S全长测序+低丰度简化菌群,提供根腐病防控新视角

    背景介绍 当土壤中病原体入侵时,植物可以动态调节其根际微生物并适应这种生物胁迫.植物招募的保护性微生物群落中通常包含一些低丰度的类群,其作用尚不清楚.本研究首先分析了健康和患病黄芪之间根系微生物群落结 ...

  4. 抛弃注意力,比EfficientNet快3.5倍,类Transformer新模型跨界视觉任务实现新SOTA

    选自OpenReview 机器之心编译 机器之心编辑部 Transformer 用在图像识别上会存在计算效率过低的挑战,最近一篇向 ICLR 2021 大会提交的论文似乎很好地解决了这一问题,其研究的 ...

  5. 抛弃注意力,类Transformer新模型实现新SOTA

    2020-10-19 14:26:11 选自OpenReview 机器之心编译 机器之心编辑部 Transformer 用在图像识别上会存在计算效率过低的挑战,最近一篇向 ICLR 2021 大会提交 ...

  6. 谷歌Quoc V. Le团队新作FLASH:高效Transformer新设计!训练成本暴减!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转正自:机器之心 | 编辑:泽南.杜伟 谷歌的新研究,让 transformer 模型的效率有了巨大提升,该 ...

  7. 苹果公司华人研究员抛弃注意力机制,史上最快的Transformer!新模型达成最低时间复杂度...

    转自:新智元 [导读]attention is all you need是绝对的真理吗?自从Transformer面世以来,采用CNN等传统模型与注意力进行结合就成了新的创新方向.但苹果的华人研究员提 ...

  8. linux新内核的freeze框架以及意义

    linux的电源管理发展非常迅速,比如在挂起到内存的时候,系统会冻结住所有的进程,也就是所有的进程都不再运行,它们被冻结之前,最后的状态被保存, 等到解冻的时候,所有进程恢复运行,linux对此的实现 ...

  9. RealNetworks CTO:我们追求低复杂度的软解码

    上个世纪末,家庭宽带还处在"KB"量级,RealNetworks通过其高压缩比的Real格式在国内曾经获得了大量终端用户.光阴荏苒,RealNetworks在国内的研发团队带来了面 ...

最新文章

  1. Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法,卡巴斯基被锁定如何进行卸载演示
  2. 工作上,我到底想要什么呢?
  3. 海量存储系列上--转载,值得一读
  4. 2021-06-05
  5. 历史性胜利!纽约曼哈顿充电站数量超过加油站
  6. matlab lyap,Matlab的Lyapunov、Sylvester和Riccati方程的Matlab求解
  7. python导入模块介绍_详解Python模块导入方法
  8. SQL注入学习part07:(SQL注入语句总结)
  9. JavaScript在发送请求AJAX请求时,URL的域名地址是使用绝对地址还是相对地址?
  10. ImageView设置边框的两种方式
  11. 程序员应该阅读的一些书籍
  12. windows10安装adb/fastboot教程
  13. 无线系列-无线通信频段与电波传播
  14. 第三章在局域网中使用冗余链路
  15. MOSS的备份与还原
  16. Android Studio的复制一行快捷键与Windows7屏幕旋转快捷键冲突
  17. SQLiteSpy下载安装
  18. 2075最少拦截系统
  19. 【MAX7800与ESP8266mcu通讯关键字控制】
  20. Git强拉远程代码覆盖本地代码

热门文章

  1. shellcode xor编码/解码[2]
  2. Java this添加窗口,如何使一个窗口,看起来像这样在Java中? (How to make a window look like this in Java?)...
  3. WebRTC通信流程
  4. Rem布局的原理解析
  5. 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error
  6. zookeeper专题:zookeeper的节点类型,数据持久化机制
  7. 抽象同步器AQS应用之--阻塞队列BlockingQueue,如何保证任务一定被消费?
  8. centos上安装和配置tomcat
  9. mybatis使用经验
  10. 微服务架构之Spring Cloud Eureka入门程序