URL
https://arxiv.org/pdf/2006.04768.pdf
TL;DR
Algorithm
headi=Attention(QWiQ,KWiK,VWiV)=softmax[dkQWiQ(KWiK)T]VWiV
其中: K,Q,V∈Rn×dm WiQ,WiK∈Rdm×dk
所以: softmax[dkQWiQ(KWiK)T]∈Rn×n ,n
表示序列长度,所以原始 Transformer
使用的 Multi-HEAD Attention
的时空复杂度为 O(n2)
-
将 KWiK,VWiV∈Rn×dk 投影到 EiKWiK,FiVWiV∈Rk×dk ,其中 k
是一个常数,时空复杂度变成了 O(n) ,其中,E、F
都是可学习的投影矩阵, E,F∈Rk×n
-
headiˉ=Attention(QWiQ,EiKWiK,FiVWiV)=softmax[dkQWiQ(EiKWiK)T]FiVWiV
-
投影矩阵 E、F
可共享参数,分为:
- Headwise sharing: Ei=E, Fi=F, for each layer
- Key-value sharing: Ei=E=Fi, for each layer
- Layerwise sharing: E,F, layer sharing
理论依据与结果
Thoughts