attention機制的替代(LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION)

attention機制的替代(LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION)

摘要

ICLR2021盲審的一篇論文
在自然語言處理領域(NLP)成爲重要力量的 Transformer 技術最近已經開始在計算機視覺領域展現自己的實力。不過到目前爲止,由於 Transformer 注意力機制對內存的需求是輸入圖像的二次方,所以這一方向還存在一些挑戰。這篇文章就是針對attention機制的一個替代,近日,LambdaNetworks 的出現提供了一種解決此問題的方法,人們可以無需建立昂貴的注意力圖即可捕捉長距離交互。這一方法在 ImageNet 上達到了新的業界最佳水平(state-of-the-art 84.8%)。

論文地址

https://openreview.net/pdf?id=xTJEN-ggl1b

長程交互

這一部分主要就是說明注意力機制的一些問題。
當前注意力交互。首先縮小查詢深度,創建查詢和上下文元素之間的相似性核(注意力圖),也就是所謂的注意力操作。該機制可以被看作激發查詢、鍵和數值術語的可微內存的尋址。由於上下文位置 |m| 的數量越來越大,並且輸入和輸出維數 |k| 和 |v| 保持不變,所以在層輸出是較小維數 |v| << |m| 的一個向量時,作者假設計算注意力圖是不划算的。

lambda層

一:lambda層:將上下文轉換成線性函數
這一部分主要分爲一下幾部分:

  1. 生成上下文lambda函數
    lambda層首先通過線性投影上下文來計算鍵和值,通過softmax運算對鍵進行歸一化,從而得到歸一化鍵。這種實現能可以看作是函數消息傳遞的一種形式,每個上下文元素都貢獻一個內容函數 和一個位置函數 。λ_n 是通過將上下文貢獻求和得到的,如公式一所示
  2. 將lambda應用於查詢
    將輸入x_n轉換爲查詢 ,然後獲得lambda層的輸出爲公式二
  3. lambda解釋
    此過程可以捕獲密集內容和基於位置的長程交互,同時不產生注意力圖。
  4. 歸一化
    可修改方程式1和2以涵蓋非線性或歸一化運算。該研究的實驗表明,在計算查詢和值之後應用批歸一化是很有用的。

二:帶有結構化上下文的lambda層
這一部分介紹瞭如何使 lambda 層適應結構化的上下文,如相關上下文和局部上下文。

  1. 平移等變性
  2. Lambda 卷積
    lambda 卷積可以得到與輸入長度相關的線性時間和內存複雜度。lambda 卷積很容易用於 dilation 和 striding 等其他功能,並且在專用硬件加速器上享有高度優化的實現。這與局部自注意力的實現形成鮮明對比,後者需要物化重疊查詢和內存塊的特徵塊,從而增加了內存消耗和延遲(見下表4)。

三:利用多查詢 lambda 降低複雜度
多查詢 lambdas 可以降低複雜度。所以,研究者提出將 lambda 層的時間和空間複雜度從輸出維數 d 中解耦。他們並沒有強制地令 |v|=d,而是創建了 |h| 查詢 {q^h _n},將相同的 lambda 函數 λ_n 應用到每個查詢 q^h_n,並將輸出串連接成 y_n=concat(λ_nq^1_n , · · · ,λ_nq^|h|_n )。
局部位置的 lambdas 可以通過 lambdas 卷積來獲得,具體如上文公式3所示。

實驗部分

研究者進行了控制實驗,以比較 LambdaNetworks 與 a)基線 ResNet50、b)通道注意力和 c)以往使用自注意力來補充或替換 ResNet50 中的 3x3 卷積的研究方法。結果顯示,在參數成本僅爲其他方法一小部分的情況下,lambda 層顯著優於這些方法,並且相較於 Squeeze-and-Excitation(通道注意力)實現了 +0.8% 的提升。還有幾個實驗就不一一列舉了。