Performer:用随机投影将Attention的复杂度线性化

Performer是Google提出的一项技术,旨在通过随机投影将Attention机制的复杂度从指数级降低到线性级,同时保持精度。这种方法基于标准的Attention,通过找到特定的映射方案,将原本高复杂度的Self Attention转换为线性Attention,理论上有望在不牺牲性能的前提下显著提升处理长序列的效率。然而,Performer在短序列任务上可能表现不佳,并且与某些Transformer增强技术不兼容。
摘要由CSDN通过智能技术生成

©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络

Attention 机制的 复杂度是一个老大难问题了,改变这一复杂度的思路主要有两种:一是走稀疏化的思路,比如我们以往介绍过的 Sparse Attention 以及 Google 前几个月搞出来的 Big Bird [1] ,等等;二是走线性化的思路,这部分工作我们之前总结在线性 Attention 的探索:Attention 必须有个 Softmax 吗?中,读者可以翻看一下。

本文则介绍一项新的改进工作 Performer,出自 Google 的文章 Rethinking Attention with Performers,它的目标相当霸气:通过随机投影,在不损失精度的情况下,将 Attention 的复杂度线性化。

论文标题:

Rethinking Attention with Performers

论文链接:

https://arxiv.org/abs/2009.14794

说直接点,就是理想情况下我们可以不用重新训练模型,输出结果也不会有明显变化,但是复杂度降到了 !看起来真的是“天上掉馅饼”般的改进了,真的有这么美好吗?

Attention

我们知道,Attention 的一般定义为:

对于标准的 Scaled-Dot Attention 来说, (有时候指数部分还会多个缩放因子,这里我们就不显式写出来了),将整个序列的运算写成矩阵形式就是:

我们主要关心 Self Attention 场景,所以一般有 。在上式中, 这一步相当于要对 个向量对做内积,得到 个实数,因此不管时间还是空间复杂度都是 的。

而对于线性 Attention 来说, ,其中 是值域非负的激活函数。这样一来,Attention 的核心计算量(式(1)中的分子部分)就变成了:

上式左端的复杂度依然是 的,由于矩阵乘法满足结合律,我们可以先算后面两个矩阵的乘法,这样复杂度就可以降为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值