← Back to Blog
Linformer: Self-Attention with Linear Complexity
research > papers
2026-02-112 min read
#paper-review #research #notes #linformer #rank
Paper Link
기존 self-attention
head=Attention(Q,K,V)=P∈Rn×nsoftmax(dQKT)V
- Q,K,V∈Rn×d
- QKT∈Rn×n
- 시간 복잡도: O(n2)
Transformer and Self-Attention
P=softmax(dQKT)
P≈UΣVT, rank≈k≪n
위 수식이 성립하면 n×n 과정이 필요 없다.
PV≈(UΣ)(VTV)
Key/Value 길이를 축소하자
Query는 그대로 두고, Key/Value를 시퀀스 차원에서 선형 투영한다.
- E∈Rk×n
- F∈Rk×n
K′V′=EK(k×d)=FV(k×d)
일반적인 linear projection
일반적으로 생각하는 linear projection은 feature 공간으로 투영한다.
x∈Rd→Wx∈Rd′
Linformer linear projection
원래 Key/Value 구조
K∈Rn×d
- n : 토큰 개수 (시퀀스 길이)
- d : embedding 차원
각 feature 차원마다 길이 n 짜리 신호가 있음.
시퀀스 압축
K′=EKwhereE∈Rk×n
결과
K′∈Rk×d
MultiHead(Q,K,V)=Concat(head1,head2,…,headh)WO(1)
headi=Attention(QWiQ,KWiK,VWiV)=softmax[dkQWiQ(KWiK)T]VWiV(2)
where WiQ,WiK∈Rdm×dk,WiV∈Rdm×dv,WO∈Rhdv×dm
여기서 우리는 행렬 E 를 알면 되는데 이를 신경망으로 학습시키면 된다.