1. 程式人生 > 其它 >沒有Attention的Transformer依然是頂流!!!

沒有Attention的Transformer依然是頂流!!!

https://mp.weixin.qq.com/s/k9g_KmWuNsbM-iKYco7gwA

本文主要介紹了Attention Free Transformer(AFT),同時作者還引入了AFT-local和AFT-Conv,這兩個模型在保持全域性連通性的同時,利用了局域性和空間權重共享的思想。通過實驗驗證了AFT在所有benchmarks上具有競爭效能的同時具有出色的效率。

1簡介

本文主要介紹了Attention Free Transformer(AFT),在AFT層中,首先將key和value與一組學習到的位置偏差結合起來,然後以元素方式將其結果與query相乘。這個新的操作在context size和特徵維度上都具有線性的記憶體複雜度,使得它能夠相容大的輸入和模型大小。

作者還引入了AFT-local和AFT-Conv,這兩個模型變種在保持全域性連通性的同時還利用了局域性和空間權重共享的思想。作者對2個自迴歸建模任務(CIFAR10和Enwik8)以及一個影象識別任務(ImageNet-1K分類)進行了廣泛的實驗。驗證了AFT在所有benchmarks上不僅具有不錯的效能,同時還具有出色的效率。

2本文方法

2.1 Attention Free Transformer

首先,定義了Attention Free Transformer(AFT),它是MHA的plugin replacement,不需要改變Transformer的其他架構。給定輸入X, AFT先將它們線性變換為,,,然後執行以下操作:

其中,是元素的乘積;是應用於query的非線性對映,預設為sigmoid;是學習到成對的位置偏差。

換句話說,對於每個目標位置, AFT把加權平均的結果與具有元素級乘法的query相結合。而加權操作則是由key和一組學習成對的位置偏差組成。這提供了一個直接的優勢,即不需要計算和儲存消耗大的注意力矩陣,同時能夠像MHA那樣維護query和value之間的全域性互動。

為了進一步瞭解AFT與MHA的關係可以將方程改寫為:

這裡使用上標來索引矩陣的特徵維數。在這種重新排列的形式中,能夠再次用注意力來表達AFT。具體來說,對於每個位置有一個關注向量,每個維度由、、組成。換句話說,AFT可以解釋為與特徵尺寸一樣多的Head中進行implicit attention,其中注意力矩陣採用因數分解的形式進行求解。

2.2 AFT variants: locality, weight sharing and parameterization

1 AFT-full

將下面方程中定義的AFT的基本版本表示為AFT-full:

2 AFT-local

作者發現了訓練的標準Transformers傾向於表現出廣泛的區域性注意力模式。具體地說,把ImagenetNet預訓練Vision Transformer(ViT),由12層組成,每層6個Head。為了實現視覺化忽略分類標記,將每一層的注意力張量reshape為6×196×196(因為ViT特徵圖的空間大小為14×14)。然後從ImageNet驗證集中取樣256張影象。對於每一層和每一個Head,計算平均的average relative 2d attentions、averaged across position和images。這就產生了一組尺寸為12×6×27×27的注意力map(如下圖)。

通過上圖可以看到,相對注意力Map顯示出強烈的區域性模式,特別是在lower layers。這激發了AFT的一種變體,稱為AFT-local,即只在區域性應用一組學習到的相對位置偏差:

這裡s≤T是一個區域性window size。AFT-local提供了進一步的計算量的節省,包括引數的數量和時間/空間複雜度。

3 AFT-simple

AFT-local的一個極端形式是當s=0時,即沒有學習到位置偏差。這就產生了一個極其簡單的AFT版本,AFT-simple,有:

在這個版本中,context reduction進一步簡化為元素操作和全域性池化。其實AFT-simple類似於線性化注意,公式為:

然而,AFT-simple完全擺脫了點積操作,這促使複雜度從降低為

4 AFT-conv

作者還可以進一步擴充套件區域性化locality的思想,加入空間權值共享,即卷積。這種變體與視覺任務特別相關,因為它通常希望將一個預訓練模型擴充套件到可變大小的輸入。具體來說,讓的值只依賴於, 而為在給定的空間網格(1d或2d)中的相對位置。與CNN類似也可以學習多組位置偏差(重用head的概念作為參考)。為了考慮到#parameters隨著 #heads的增加而增長,作者還採用了一個設計,將K的維度與#heads聯絡起來。這使得AFT-conv可修改為依賴於深度可分離卷積、全域性池化和元素操作來實現。

類似的尺寸的AFT-conv學習到的相對位置偏差。

舉一個例子,這裡將模型構型表示為AFT-conv-h-s,其中h為head的個數,s×s為2d local window size。,於是對於每一個head來說,有:

注意,上式可以很容易地解釋為一個特殊的卷積層,具有:

  1. 全域性連通性

  2. 非負卷積權值

  3. 複雜的除法/乘法門機制

實驗表明,這3個方面對AFT-conv的效能都有顯著的影響。

5 Parameterization

根據經驗,作者發現適當地引數化位置偏差是很重要的。

對於AFT-full和AFT-local,採用w的因數分解形式:

其中是一個小的嵌入維數(例如128)。這種簡單的因式分解不僅大大減少了引數量,而且在訓練和測試中都有效地提高了模型的效能。

對於AFT-conv,因式分解的技巧並不適用。相反,作者採用一個簡單的重新引數化,對於每個head i,讓:

其中是可學習增益和偏置引數,均初始化為0。

3實驗

3.1 Image Autoregressive Modeling

SOTA模型對比

Factorization的影響

3.2 Language Modeling

SOTA模型對比

local window size的影響

Longer sequence size

3.3 Image Classification

4參考

[1].An Attention Free Transformer