谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

作者 | 小馬

編輯 | CV君

報道 | 我愛計算機視覺(微信id:aicvml)

【寫在前面】

人類透過同時處理和融合多種模態(如視覺和音訊)的高維輸入來感知世界。然而,機器感知模型通常是特定於模態的,並基於單模態資料進行最佳化,因此

對每個模態預測的後期進行融合(“後期融合”)仍然是多模態影片分類的主要正規化

。在本文中,作者引入了一種基於Transformer的結構,該結構使用“融合瓶頸”結構進行多個模態的資訊融合。

1。 論文和程式碼地址

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

論文名稱:Attention Bottlenecks for Multimodal Fusion

論文地址:

https://arxiv.org/abs/2107.00135

程式碼地址:未開源

2。 Motivation

能夠同時進行多模態感知是人類學習的關鍵能力。然而,由於許多因素,設計用於模態融合的統一模型是具有挑戰性的,因為

模態之間的學習是動態變化的

某些模態比其他模態包含更多關於任務的資訊

不同模態有專門的輸入表示

。由於模態輸入的差異,多模態融合的主導正規化通常透過整合獨立的視覺和聽覺網路來融合資訊,即,後期融合。

在這項工作中,作者提出了一種基於Transformer的影片視聽融合模型。儘管最初被用於NLP任務,但最近Transformer逐漸成為了通用的感知模型,這是因為Transformer能夠對token之間的密集相關性進行建模,同時對其輸入進行很少的假設。透過將密集的連續訊號分成多個patch並將它們轉換為一維的序列,Transformer已被證明在影象 (ViT ) 和影片分類 (ViViT ) 以及音訊分類 (AST) 等領域具有不錯的效能。

由於這些模型能夠處理可變長度的序列,因此常規的擴充套件是不需要改變Transformer的結構,可以直接將多模態patch的序列送到Transformer中。這種“早期融合”模型允許注意力在影象中的不同時空域之間自由建模,以及在音訊頻譜圖中的頻率和時間之間自由建模。

雖然理論上很有吸引力,但作者認為

在模型的所有層完全成對的注意是不必要的,因為音訊和視覺輸入包含密集的、細粒度的資訊,其中大部分是多餘的

。由於注意力機制具有和token序列長度長度相關的二次複雜度,這種模型也無法很好地擴充套件到較長的影片。為了緩解這種情況,作者在模型中提出了兩種方法來限制注意力的流動。

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

第一種方法是多模態學習中的一種常見方法,即

將跨模態流動限制在網路的後一層

,前面的層採用單模態學習,這種方法被成為“中期融合”,如上圖中的Mid Fusion所示。

第二種方法,也是本文的主要貢獻點, 是

限制層內token之間的跨模態注意

。模型必須在與其他模態共享之前,對每個模態的資訊進行整理和“濃縮”。核心思想是引入一小部分 “

注意力瓶頸

” 的潛在融合單元(如上圖中的Bottleneck Fusion),層中的跨模態相互作用必須透過這些單元執行。作者證明了這種 “瓶頸” 結構優於其不受限制的版本,且計算成本較低。

3。 方法

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

在本文中,作者提出了一個Multimodal Bottleneck Transformer (MBT)結構來融合多模態資料。

3。1 The ViT and AST architectures

ViT和AST採用了Transformer結構,能夠處理序列特徵。首先從RGB影象 (或音訊頻譜圖) 中提取N個不重疊的patch

,然後將他們轉換成一維的token

,如下所示:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

這裡,

是一個線性投影,將每個token對映到

是一個特殊的token,作為分類任務的特徵;

是可學習的位置嵌入,用於表示輸入特徵的位置資訊。

然後將token透過由L個Transformer層組成的編碼器中。每個Transformer層由多頭自注意 (MSA),層歸一化 (LN) 和多層感知機 (MLP) 組成,表示如下:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

其中

操作為dot-product attention;queries, keys和values是同一個tensor的線性投影,表示為:

。同理,兩個跨模態輸入attention操作表示為

3。2 Multimodal Transformer

3。2。1 Fusion via Vanilla Self-Attention

普通的融合模型僅由應用於多模態輸入的常規Transformer組成。對於給定長度為t秒的影片clip,首先統一取樣

個RGB幀,並將音訊波形轉換為單個譜圖。然後用類似ViT中的方法,將幀和譜圖轉換成token,並將所有的token拼接在一起,成為一個序列。

形式上,如果從F個取樣幀裡面提出了

個RGB patch

個譜圖patch

, 則輸入的token序列可以表示為

,其中

對於RGB patch和譜圖patch,作者採用了不同的投影函式

。此外,還為每個模態分配了一個分類token。然後在這些多模態token上採用Transformer層,以獲取跨模態的融合資訊

3。2。2 Fusion with Modality-specific Parameters

此外,還可以將上面的模型推廣到每個模態擁有各自獨立的引數

,並利用注意力機制互動不同模態的資訊:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

其中交叉Transformer採用交叉注意操作。這層的操作也可以表示為:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

注意,交叉Transformer層的引數

對於每個模態都是不同的。

3。2。3 Fusion via Attention Bottlenecks

為了克服attention的平方複雜度,作者在輸入序列中引入了

個瓶頸token

,輸入序列如下所示:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

然後,用這些瓶頸token來限制模型中的所有跨模態注意力。對於第

層的Transformer,token計算如下:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

其中,

透過Transformer層內的瓶頸token

交換資訊。由於

,因此融合過程的計算量可以大大降低。

3。3 Where to Fuse: Early, Mid and Late

在大多數Transformer(如ViT)中,每一層都由相同的操作組成的。然而,多模態學習中的一個常見正規化是讓網路的淺層進行模態內進行的增強,網路的深層進行多模態資訊的互動。基於這樣的思想,作者首先用

個標準的Self-Attention層來對模態內的token資訊進行建模,然後再將所有的token進行拼接得到

,用剩下的

層進行跨模態token資訊的融合。如果

,那麼就對應“早期融合”;如果

,那麼就對應“晚期融合”;如果

,那麼就對應“中期融合”。表示為:

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

其中,

代表上一節中提到的三種融合策略。

3。4 Classification

對於上述的所有模型,為了能夠執行分類任務,需要將最後一層的CLS token

輸入到線性層,然後將Softmax之後的結果進行平均得到分類結果。

4。實驗

4。1。 Fusion Strategies

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表展示了普通的交叉注意和本文提出的瓶頸注意,在不同

時候的效能和計算量變化,可以看出,本文的方法明顯優於普通的交叉注意。

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表展示了在Encoder中是否共享引數的結果,可以看出,不共享引數在

比較小時能夠達到更好的效果,當

大於6時,兩個方法的效能差不多。

4。2。 Input Sampling and Dataset Size

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表展示了不同取樣視窗大小的實驗結果。

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表展示了同步取樣策略和非同步取樣策略的實驗結果。

4。3。 Results

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表為音訊資料集上,本文方法和其他SOTA方法的效能對比。

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表為Epic-Kitchens上,本文方法和其他SOTA方法的效能對比。

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上表為VGGSound上,本文方法和其他SOTA方法的效能對比。

4。4。 Visualisation

谷歌提出基於注意力瓶頸的方法MBT,簡單高效還省計算量

上圖展示了Audioset videos資料集上,本文方法和普通融合的視覺化結果,可以看出,本文方法的融合結果更加準確,更具備可解釋性。

5。 總結

在本文中,作者提出了一種視聽融合的Transformer結構(MBT),並利用token間的交叉注意探索了多種不同的融合策略。為了提高計算小了,作者提出了一種新的融合策略,可以透過一小部分融合 “瓶頸” 來限制跨模態注意力,並證明這可以以較低的計算成本提高交叉注意力的效能,並在多個基準資料集上實現SOTA的結果。