Transformer升级之路:从Performer到线性Attention
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
看過筆者之前的文章線性Attention的探索:Attention 必須有個(gè) Softmax 嗎?和 Performer:用隨機(jī)投影將 Attention 的復(fù)雜度線性化的讀者,可能會覺得本文的標(biāo)題有點(diǎn)不自然,因?yàn)槭窍扔芯€性 Attention 然后才有 Performer 的,它們的關(guān)系為“Performer 是線性 Attention 的一種實(shí)現(xiàn),在保證線性復(fù)雜度的同時(shí)保持了對標(biāo)準(zhǔn) Attention 的近似”,所以正常來說是“從線性 Attention 到 Performer”才對。
然而,本文并不是打算梳理線性 Attention 的發(fā)展史,而是打算反過來思考 Performer 給線性 Attention 所帶來的啟示,所以是“從 Performer 到線性 Attention”。
激活函數(shù)
線性 Attention 的常見形式是:
其中 、 是值域非負(fù)的激活函數(shù)。那么如何選取這個(gè)激活函數(shù)呢?Performer 告訴我們,應(yīng)該選擇指數(shù)函數(shù):
首先,我們來看它跟已有的結(jié)果有什么不一樣。在《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》[1] 給出的選擇是:
我們知道 正是 在 x=0 處的一階泰勒展開,因此 這個(gè)選擇其實(shí)已經(jīng)相當(dāng)接近 了。
此外, 這個(gè)方案還跟《Efficient Attention: Attention with Linear Complexities》[2] 一文中引入的雙重 softmax 來構(gòu)建線性 Attention 的設(shè)計(jì)很相似,在那種設(shè)計(jì)中有 ,相比直接 只不過歸一化的位置有所不同。
簡單推導(dǎo)
為什么說 Performer 告訴我們激活函數(shù)的最佳選擇是 呢?我們來看 Performer 找到的將標(biāo)準(zhǔn) Attention 線性化的映射:
簡單來說,Performer 找到了一個(gè)映射,使得 d 維向量 被映射為了 m 維向量 ,并且滿足近似關(guān)系 ,此時(shí):
最后一個(gè)等式表明,往 里邊乘以一個(gè)常數(shù)(哪怕這個(gè)常數(shù)跟 有關(guān)),Performer 的結(jié)果完全不改變,這意味著將映射改為:
Performer 的結(jié)果不會有任何變化。當(dāng)然,這里 這一項(xiàng)還不能去掉,但是如果我們假設(shè) 不會波動太大,它并不是 Attention 的主要因素,那么這一項(xiàng)也相當(dāng)于一個(gè)常數(shù),于是最終的映射(近似地)等價(jià)為:
這個(gè)看上去已經(jīng)簡化很多的映射該怎么理解呢?其實(shí) m 個(gè)隨機(jī)向量 拼成了一個(gè) 的矩陣,它將 d 維的 映射為了 m 維的向量,然后加上激活函數(shù) 得到了 。我們知道 Attention 的 都有一個(gè)全連接層變換,如果我們將這個(gè) 的映射矩陣整合到全連接層中,那么剩下的就是一個(gè)激活函數(shù) 了!
所以這就是最優(yōu)激活函數(shù) 的來源了,只要我們將 的輸出維度從 d 維改為 m 維,然后配合 的激活函數(shù),那么理論上它就有 Performer 的擬合能力,甚至更強(qiáng),因?yàn)?Performer 的 矩陣是一個(gè)固定的隨機(jī)矩陣,而這里我們相當(dāng)于把該矩陣也設(shè)為可訓(xùn)練了,還去掉了低秩約束,空間是比 Performer 更大的。
低秩問題
不管是本文的主角 Performer,還是之前在 Nystr?mformer:基于矩陣分解的線性化 Attention 方案介紹的 Nystr?mformer,它們的思路都是“尋找一個(gè)能逼近標(biāo)準(zhǔn) Attention 的線性 Attention”。那么一個(gè)很自然的問題就是:標(biāo)準(zhǔn) Attention 有什么好的?哪里值得大家向它對齊?
從信息損失的角度來看,標(biāo)準(zhǔn) Attention 矩陣的“秩”可能更大,即更接近可逆矩陣,這意味著它能保留更多有效信息。具體來說,Attention 矩陣是一個(gè) 的矩陣,它由 通過 而來,要注意的是,這里的 d 是 Attention 的key_size,比如對于 BERT base 來說它只是 64,而 n 往往比較大,這說明 的秩不超過d,而且 ,即離滿秩還遠(yuǎn)得很。
不過,softmax 的關(guān)鍵運(yùn)算是 ,一個(gè)矩陣如果每個(gè)元素取指數(shù)的話,那么新矩陣的秩是可能增加的!所以標(biāo)準(zhǔn) Attention 矩陣有升秩的可能性,意味著它蘊(yùn)含了更有效處理信息的能力。
相比之下,線性 Attention 矩陣是 的形式,所以線性 Attention 矩陣的秩一定不超過 m,而為了彌補(bǔ)秩的損失,所以一般要設(shè)置 m > d,在 Performer 的實(shí)驗(yàn)中選擇的是 m = 4d,也就是 key_size 擴(kuò)大為 4 倍,秩的重要性可見一斑。當(dāng)然,擴(kuò)大了 key_size,一個(gè)直接的后果是處理短序列的時(shí)候,線性 Attention 還比標(biāo)準(zhǔn) Attention 要慢,這是線性 Attention 的固有瓶頸。
關(guān)于 Attention 矩陣的秩的理論分析,也有一些論文可以參考,比如《Low-Rank Bottleneck in Multi-head Attention Models》[3] 就指出哪怕在標(biāo)準(zhǔn) Attention 中,低秩性也是一個(gè)嚴(yán)重的瓶頸,增大 key_size 可以提升性能;
上個(gè)月的《Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth》[4] 則指出,如果沒有殘差和 FFN,那么標(biāo)準(zhǔn) Attention 有極大的風(fēng)險(xiǎn)退化為秩等于 1 的簡單變換。連標(biāo)準(zhǔn) Attention 這個(gè)有“升秩潛力”的模型都有低秩問題,更不用說線性 Attention 這種本身秩就有上限的模型了。
所以,一句話就是:用線性 Attention 需要用更大的 key_size 來維持矩陣的秩。
集中注意
我們還可以從稀疏性角度來理解標(biāo)準(zhǔn) Attention 的好處。直觀來想,既然是“注意力機(jī)制”,那么肯定需要“集中注意力”,如果太分散,那么可能就相當(dāng)于平均池化了,而“集中注意力”,意味著每個(gè) token 應(yīng)該只能顯著地關(guān)聯(lián)到若干個(gè) token,用數(shù)學(xué)的話說,那就是意味著 Attention 矩陣是稀疏的,或者說至少要具備變得稀疏的可能性。
對于標(biāo)準(zhǔn) Attention 來說,它通過 softmax 來歸一化:
其中指數(shù)函數(shù) 起到了一個(gè)放大的作用,只要各個(gè) 本身能拉開一定差距,那么 會進(jìn)一步放大這種差距,結(jié)果就是歸一化之后除了最大值的那幾個(gè)位置之外,剩下的概率都很接近于 0 了,這說明標(biāo)準(zhǔn) Attention 是有潛力“集中注意力”的。
而對于線性 Attention 來說,它是直接內(nèi)積的結(jié)果,沒有得到 的進(jìn)一步放大,所以它的注意力是比較稠密的,在序列長度較大的時(shí)候,它往往就很接近平均池化了。要緩解這一點(diǎn),還是需要增大 key_size,來放大差距,直觀來說,就是 n 向量放到一個(gè)低維空間太“擠”了,換到更高維的空間就“松”一些了。
怎么樣驗(yàn)證稀疏的重要性呢?筆者曾經(jīng)嘗試過,將線性 Attention 的 Attention 矩陣先算出來,然后強(qiáng)行截?cái)?Attention 矩陣(也就是每個(gè)token只跟前后幾個(gè) token 做 attention,變成局部形式的 Attention)讓它變得稀疏,結(jié)果發(fā)現(xiàn)這種截?cái)嗪蟮木€性 Attention 效果明顯好于全矩陣的線性 Attention。
這就肯定了稀疏的重要性了,當(dāng)然,這樣把 Attention 矩陣先算出來然后前行截?cái)嗟姆绞?#xff0c;使得線性 Attention 的復(fù)雜度不再是線性的了,因此不具備實(shí)用價(jià)值,僅用于理論驗(yàn)證。
還有一個(gè)實(shí)驗(yàn)現(xiàn)象可以輔助證明稀疏的重要性,那就是線性 Attention 做語言模型或者解碼器的時(shí)候,效果是跟標(biāo)準(zhǔn) Attention 差不了多少的,這時(shí)候線性 Attention 變成了單向的 RNN(參考《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》[1] ),等價(jià)于 Attention 矩陣變成了下三角陣,也是更稀疏了。相比之下,如果用不稀疏的雙向的線性 Attention 直接做 MLM 模型,則掉點(diǎn)會相當(dāng)明顯。
更重要的是,稀疏性和前一節(jié)提到的秩是有密切關(guān)聯(lián)的,甚至可以說它們是“一體兩面”:適當(dāng)?shù)南∈杌椒芴岣呔仃嚨闹?#xff01;比如做語言模型的下三角 Attention 矩陣,只要對角線元素非零(往往都能達(dá)到),那么這時(shí)候的矩陣直接就是滿秩可逆陣了!還有筆者實(shí)驗(yàn)的局部 Attention 截?cái)?#xff0c;也能增加矩陣的秩,比如極端情況下,每個(gè) token 只跟自身做 attention,那么 Attention 矩陣就是滿秩的單位陣了!
文章小結(jié)
本文從 Performer 出發(fā)思考了線性 Attention 的一些問題,包括關(guān)于線性 Attention 的激活函數(shù)選擇,以及線性 Attention 的瓶頸所在(低秩性、稀疏性),總的結(jié)論是,線性 Attention 的最佳激活函數(shù)應(yīng)當(dāng)是指數(shù)函數(shù),而有效的 Attention 機(jī)制應(yīng)當(dāng)具備更高的秩和更大的稀疏性。
參考文獻(xiàn)
[1] https://arxiv.org/abs/2006.16236
[2] https://arxiv.org/abs/1812.01243
[3] https://arxiv.org/abs/2002.07028
[4] https://arxiv.org/abs/2103.03404
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識真正流動起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨(dú)在附件中發(fā)送?
? 請留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們在編輯發(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的Transformer升级之路:从Performer到线性Attention的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解京东商城智能对话系统(生成+检索)
- 下一篇: 如何有效识别航空旅客未申报的危险品