【深度好文】ICLR 2022 | cosFormer:重新思考注意力机制中的Softmax

关注公众号,发现CV技术之美

导读:Transformer在自然语言处理、计算机视觉和音频处理方面取得了巨大成功。作为其核心组成部分之一,Softmax Attention模块能够捕捉长距离的依赖关系,但由于Softmax算子关于序列长度的二次空间和时间复杂性,使其很难扩展。

针对这点,研究者提出利用核方法以及稀疏注意力机制的方法来近似Softmax算子,从而降低时间空间复杂度。但是,由于误差的存在,效果往往不尽如人意。

商汤多模态研究组认为,近似操作本身存在的误差使得其效果很难超越Softmax Attention。我们的观点是,与其近似Softmax,不如设计一种方式代替Softmax,并且同时降低时间空间复杂度。

因此,本文提出了名为cosFormer的方法,在时间空间复杂度关于序列长度为线性复杂度的同时,其性能接近或者超越Softmax Attention,并在LRA benchmark上取得SOTA结果。我们的设计核心理念基于两点,首先是注意力矩阵的非负性,其次是对局部注意力的放大(非极大值抑制)。

本文主要介绍已收录于ICLR 2022的一篇文章 cosFormer : Rethinking Softmax in Attention。

7f3b4891c7366cc595a7102cf271d962.png

1f0fafdaa4ae65156e20a717affad082.png

Part 1

背景

d825c4c3793f9d4519d972bc4d311bcc.gif

1. Softmax Attention

为了引出我们的方法,对Softmax Attention的计算方式进行一定的推广:

eb4fbd9ea5eb29415757546b3e65bafd.png

其中  表示相似度计算函数,如果  ,上式即变为Softmax Attention(不考虑除以  的缩放操作)。注意到计算  的时间复杂度为  ,  的时间复杂度为  ,所以总时间复杂度为  ,即关于序列长度是二次的。

2. 线性 Attention

通过分析我们发现,性能瓶颈的主要原因是  操作,如果相似度函数可以表示为:

3b3eef0e777cdb589dbe9319af71368a.png

那么:

fcb1fcc252e9488cf9e1cc6c1a3d607b.png

根据矩阵运算的结合律:

072db76c4ac518cfd6322f7fbe5ca7e4.png

上式可以变换为(编者修正:下方公式未变换,请参照论文):

7f26cc7d193c59485b16f11a9a40d42c.png

经过计算后可以得到该方法的时间复杂度为  ,即关于序列长度是一次的。

Softmax Attention和线性Attention的计算方式可以用下图概括:

6af37985f9193baa9e3dfbfbfb2f12e9.png

所以接下来将介绍  的选择,以及核心的reweighting操作。

3. Softmax 的两大性质

我们经过分析以及实验,归纳出Softmax Attention中比较重要的性质,这两个性质可以指导我们的模型设计:

1. 注意力矩阵的非负性

2. 局部注意力的放大(非极大值抑制)

对于第一点,我们有如下实验进行验证(模型结构为RoBERTa):

236e62450726549da2f754765fb9a3eb.png

这里Loss表示验证集损失(越低越好),其余指标均为准确率(越高越好)。可以看到,当保证了注意力矩阵的非负性之后,可以达到较好的效果。基于该实验,我们选择  为ReLU函数。

对于第二点,我们的方式是在注意力矩阵中引入先验locality信息,观察Softmax注意力矩阵,如下图所示,我们发现其注意力矩阵的权重在对角线附近很集中:

d35bbdcfc3c6faec9cc1336014b2bf4b.png

所以我们的方法需要在加了reweighting操作后也更加集中在对角线附近。注意并非所有的有类似权重的函数均适用,这个reweighting的函数需要跟前面的QK一样可以拆分成两个矩阵的乘法的形式。

至此,就可以引入我们的cosFormer了。

Part 2

cosFormer

d7617f3b8a6df9b0784cb611b7b9fa2d.gif

1. 方法

我们的方法基于线性Attention,首先给出符号定义:

b51b79056f40327f535b20d068a60d37.png

根据之前的分析,我们选择了:

f7f2798788a3c62603cfad722daca5db.png

可得:

bf882a2f89a5da41d083027afd8208cd.png

为了进行reweighting操作,并且同时保证线性Attention的计算方式依然成立,我们选择了cos函数:

029ab7db0a7ff05a4d28c7f5318aede4.png

展开可得:

120b461e8dd59bcc4af31142886b33ca.png

为了便于展示,我们把它记作:

4787ed1cdfeb5e8cf379dbe18f147cdc.png

最终得到:

086e36de5ff1d6e2d0c62778ba1d888b.png

上式和线性Attention的计算方式一致,经过分析不难得出时间复杂度依然是  。

2. 实验结果

我们在单向模型、双向模型以及LRA benchmark上测试了我们的方法,均取得了非常不错的效果。

单向语言模型,指标表示困惑度(越低越好):

9007846205eb8c3f6b3d83b731f1dd2f.png

双向语言模型,指标表示准确率(越高越好):

f7e229fdace8e22fda50206c759c9e92.png

LRA benchmark:

1)性能实验,指标表示准确率(越高越好):

61d989287e67f731872183989ff98fc5.png

2)内存速度实验,指标表示速度(越高越好,如果内存溢出,则标记为叉):

f3a08b66f5eff211fd862ce7f88183db.png

Part 3

招聘信息

d3e1e9b0730b50dcea8dfd4ac4f03605.gif

01e0a8642f82c5db9ada9e7488b5266e.gif

商汤多模态研究组研究通用人工智能的前沿方向,依托商汤深厚的人工智能技术基础与资源配置,致力于实现在自然语言处理的大规模预训练模型方向的突破。同时希望通过研究视觉-几何-音频-语言结合的多模态自监督学习,提出统一的深度学习框架,利用、融合跨模态的信息提取更好的多模态表征。相关技术将可应用于提升AI模型在自动驾驶、AR等业务领域的表现。如果你有在NLP超大预训练模型、多模态预训练模型 、底层结构(设计比transformer性能更好的结构,提出更高效的attention机制)、知识图谱、音频分割、 多模态仿真数据生成,任意研究领域的超能力,欢迎加入商汤研究院多模态研究组。

简历投递:songxiaonan@sensetime.com

相关资料

论文地址: 

https://arxiv.org/abs/2202.08791

部分开源代码:

https://github.com/OpenNLPLab/cosFormer

fe67846d7223446ae4a7d0c39cbc950b.png

END

欢迎加入「论文投稿交流群👇备注:Paper

42c5575ec86a0dbbd72100391f3cce0c.png

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值