导读:Transformer在自然语言处理、计算机视觉和音频处理方面取得了巨大成功。作为其核心组成部分之一,Softmax Attention模块能够捕捉长距离的依赖关系,但由于Softmax算子关于序列长度的二次空间和时间复杂性,使其很难扩展。针对这点,研究者提出利用核方法以及稀疏注意力机制的方法来近似Softmax算子,从而降低时间空间复杂度。但是,由于误差的存在,效果往往不尽如人意。
我们(商汤多模态研究组)认为,近似操作本身存在的误差使得其效果很难超越Softmax Attention。我们的观点是,与其近似Softmax,不如设计一种方式代替Softmax,并且同时降低时间空间复杂度。因此,本文提出了名为cosFormer的方法,在时间空间复杂度关于序列长度为线性复杂度的同时,其性能接近或者超越Softmax Attention,并在LRA benchmark上取得SOTA结果。我们的设计核心理念基于两点,首先是注意力矩阵的非负性,其次是对局部注意力的放大(非极大值抑制)。
本文主要介绍已收录于ICLR 2022的一篇文章 cosFormer : Rethinking Softmax in Attention。
论文地址:https://arxiv.org/abs/2202.08791
部分开源代码:https://github.com/OpenNLPLab/cosFormer
图片表示各种transformer在LRA benchmark上的表现,其中y轴表示性能,x轴表示速度,圆圈大小表示内存,我们提出的cosFormer取得了明显的优势。
我们经过分析以及实验,归纳出Softmax Attention中比较重要的性质,这两个性质可以指导我们的模型设计:
1. 注意力矩阵的非负性
2. 局部注意力的放大(非极大值抑制)
所以我们的方法需要在加了reweighting操作后也更加集中在对角线附近。注意并非所有的有类似权重的函数均适用,这个reweighting的函数需要跟前面的QK一样可以拆分成两个矩阵的乘法的形式。
至此,就可以引入我们的cosFormer了。
我们的方法基于线性Attention,首先给出符号定义:
我们在单向模型,双向模型以及LRA benchmark上测试了我们的方法,均取得了非常不错的效果。
单向语言模型,指标表示困惑度(越低越好):
论文地址:https://arxiv.org/abs/2202.08791
雷峰网(公众号:雷峰网)