【论文极速看】 Linformer 线性复杂性的自注意力机制

34 篇文章 25 订阅
8 篇文章 1 订阅

∇ 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号
在这里插入图片描述


在Transformer [1]中作者提出了用自注意力取代CNN,RNN在序列建模中的作用,并且取得了显著的实验效果,对整个NLP,CV领域有着深远影响。然而自注意力机制的时间复杂度是 O ( n 2 ) \mathcal{O}(n^2) O(n2)的,如式子(1)所示
A t t e n t i o n ( Q W Q , K W K , V W V ) = s o f t m a x ( Q W Q ( K W K ) T d k ) V W V (1) \mathrm{Attention}(QW^Q,KW^K,VW^V) = \mathrm{softmax}(\dfrac{QW^Q(KW^K)^{\mathrm{T}}}{\sqrt{d_k}}) VW^V \tag{1} Attention(QWQ,KWK,VWV)=softmax(dk QWQ(KWK)T)VWV(1)
显然有 Q W Q ∈ R n × d m o d e l QW^Q \in \mathbb{R}^{n \times d_{model}} QWQRn×dmodel K W K ∈ R n × d m o d e l KW^K \in \mathbb{R}^{n \times d_{model}} KWKRn×dmodel V W V ∈ R n × d m o d e l VW^V \in \mathbb{R}^{n \times d_{model}} VWVRn×dmodel,其中 n n n是序列长度, d m o d e l d_{model} dmodel是隐层维度,那么显然这里的softmax()内的计算将会是 O ( n 2 ) \mathcal{O}(n^2) O(n2)时间复杂度的。 这个称之为 密集自注意力 (dense self-attention)。这个复杂度对于长文本来说很不友好。

在论文[2]中,作者证明了密集自注意力是所谓低秩(low-rank)的,意味着可以用更小的矩阵去表征这个 n × n n \times n n×n大小的自注意力矩阵,从而达到减少复杂度的目的。作者的方法很简单,如Fig 1所示,在Q和K的后续添加两个Projection单元,将序列长度n映射到低维的k,作者将这种单元称之为Linformer
在这里插入图片描述

Fig 1. Linformer模型的自注意力单元只是比传统的Transformer多了俩Projection单元。

公式也很简单,如式子(2)所示
A t t e n t i o n ( Q W Q , E K W K , F V W V ) = s o f t m a x ( Q W Q ( E K W K ) T d k ) F V W V (2) \mathrm{Attention}(QW^Q,EKW^K,FVW^V) = \\ \mathrm{softmax}(\dfrac{QW^Q(EKW^K)^{\mathrm{T}}}{\sqrt{d_k}}) FVW^V \tag{2} Attention(QWQ,EKWK,FVWV)=softmax(dk QWQ(EKWK)T)FVWV(2)
其中的 E ∈ R k × n , F ∈ R k × n E \in \mathbb{R}^{k \times n}, F \in \mathbb{R}^{k \times n} ERk×n,FRk×n,理论上,因为 k k k是常数,那么时间复杂度是 O ( n ) \mathcal{O}(n) O(n),降秩的映射也如下图所示。
在这里插入图片描述
这种做法在序列长度非常长的时候,会有很大的提速效果,如下图实验所示。因此适合于长文本序列。
在这里插入图片描述
从本质来说,我们可以从式子(2)得到式子(3),我们发现 Q W Q ( K W K ) T QW^Q(KW^K)^{\mathrm{T}} QWQ(KWK)T和传统的Transformer没有一点区别,而只是后面多了个 E T ∈ R n × k E^{\mathrm{T}} \in \mathbb{R}^{n \times k} ETRn×k,这个映射操作相当于对前面的 n × n n \times n n×n自注意力矩阵进行池化(pooling)到 n × k n \times k n×k。因此个人感觉,这个网络也许并不是很必要,如果我们能考虑对长文本进行分句,然后计算特征后用某种方式将所有分句的特征融合起来,理论上也不需要用Linformer

A t t e n t i o n ( Q W Q , E K W K , F V W V ) = s o f t m a x ( Q W Q ( K W K ) T E T d k ) F V W V (3) \mathrm{Attention}(QW^Q,EKW^K,FVW^V) = \\ \mathrm{softmax}(\dfrac{QW^Q(KW^K)^{\mathrm{T}} E^{\mathrm{T}}}{\sqrt{d_k}}) FVW^V \tag{3} Attention(QWQ,EKWK,FVWV)=softmax(dk QWQ(KWK)TET)FVWV(3)

Reference

[1]. Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NIPS, 2017

[2]. Wang, Sinong, Belinda Li, Madian Khabsa, Han Fang, and Hao Ma. “Linformer: Self-attention with linear complexity.” arXiv preprint arXiv:2006.04768 (2020).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FesianXu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值