曾幾何時,多模態預訓練已經不是一個新的話題,各大頂會諸多論文仿佛搭上Visual和BERT,就能成功paper+=1,VisualBERT、ViLBERT層出不窮,傻傻分不清楚。..。..這些年NLPer在跨界上忙活的不亦樂乎,提取視覺特征后和文本詞向量一同輸入到萬能的Transformer中,加大力度預訓練,總有意想不到的SOTA。
如何在多模態的語境中更細致準確地利用Transformer強大的表達能力呢?Facebook最新的 Transformer is All You Need 也許可以給你答案。
這篇貌似標題黨的文章開宗明義,針對文本+視覺的多模態任務,用好Transformer就夠了,與許多前作不同,這次提出的模型一個模型可以解決多個任務:目標檢測、自然語言理解、視覺問答,各個模型板塊各司其職、條理清晰:視覺編碼器、文本編碼器、特征融合解碼器,都是建立在多層Transformer之上,最后添加為每個任務設計的處理器,通過多任務訓練,一舉刷新了多個任務的榜單。
文本編碼器用Transformer提取文本特征是個老生常談的問題,從BERT石破天驚開始,純文本領域近乎已被Transformer蠶食殆盡,所以該文也不能免俗,直接借用BERT的結構提取文本內容,區別在于,為了解決多個任務,在文本序列前添加了一個針對不同任務的參數向量,在最后輸出隱藏狀態到解碼器時再去掉。
視覺編碼器本文將Transformer強大的表達能力運用到視覺特征的提取中,由于圖片像素點數量巨大,首先通過基于卷積神經網絡的ResNet-50提取卷積特征,極大程度上地降低了特征數量,最終得到的feature map大小為,然后用全聯接層調整單個特征的維度到,再利用多層Transformer中的注意力機制提取各個feature之間的關系,由于Transformer的輸入是序列,文章將拉成一條長為的序列,另外和文本編碼器類似,同樣添加了與下游任務相關的。
其中是調整維度的全聯接層,是多層Transformer編碼器。
模態融合解碼器多模態的關鍵之一就在于怎么同時利用多個模態,在本文中是通過Transformer的解碼器實現的,這個解碼器首先將任務相關的query做self-attention,再將結果與文本編碼器和視覺編碼器的結果做cross-attention,針對單一模態的任務,選取對應編碼器的輸出即可,針對多模態的任務,取兩個編碼器輸出的拼接。
任務處理器(task-specific output head)之前多模態預訓練模型往往只針對某一項任務,而本文提出的一個模型可以解決多個文本+視覺任務,與BERT可以解決多個文本任務類似,本文的模型在模態融合解碼器的結果上添加為每個任務設計的處理器,這個處理器相對簡單,用于從隱藏狀態中提取出與特定任務相匹配的特征。
目標檢測:添加box_head和class_head兩個前饋神經網絡從最后一層隱藏狀態中提取特征用來確定目標位置和預測目標類型。
自然語言理解、視覺問答:通過基于全聯接層的分類模型實現,將模態融合解碼器結果的第一位隱藏狀態輸入到兩層全聯接層并以GeLU作為激活函數,最后計算交叉熵損失。
實驗與總結本文提出的多模態預訓練模型各個板塊劃分明確,通過多層Transformer分別提取特征,再利用解碼器機制融合特征并完成下游任務,同時借助最后一層任務相關的處理器,可以通過一個模型解決多個任務,同時也讓多任務預訓練成為可能,并在實驗中的各個數據集上得到了論文主要進行了兩部分實驗:
多任務學習:
這里的多任務涉及目標檢測和視覺問答兩個任務,在目標檢測上運用COCO和VG兩個數據集,在視覺問答上運用VQAv2數據集。對比了單一任務和多任務同時訓練的結果,同時對比了不同任務共用解碼器的結果。
從結果中我們可以看出,單純的使用多任務訓練并不一定可以提高結果,不同任務間雖然相關但是卻不完全相同,這可能是任務本身差異或者數據集的特性所導致,第二行和第五行可以很明顯地看出COCO上的目標檢測和VQAv2的視覺問答相結合后,結果有顯著的下降,然而VG上的目標檢測卻能夠和視覺問答很好地結合,通過三個數據集上的共同訓練,可以得到最高的結果。
多模態學習:
這一實驗中,為了體現所提出模型能夠有效解決多個多種模態的不同任務,論文作者在之前COCO、VG、VQAv2的基礎上,增加了單一文本任務GLUE的幾個數據集(QNLI、QQP、MNLI、SST-2)和視覺推斷數據集SNLI-VE,從數據集的數量上可以看出本文模型的全能性。與本文對比的有純文本的BERT、基于Transformer的視覺模型DETR、多模態預訓練模型VisualBERT。
仔細看各個數據集上的結果,不難看出本文提出的模型其實并不能在所有數據集多上刷出SOTA,比如COCO上遜色于DETR,SNLI-VE遜色于VisualBERT,SST-2遜色于BERT,其他數據集上都有一定的提高,但是模型卻勝在一個“全”字,模型的結構十分清晰明了,各個板塊的作用十分明確,同時針對不同任務的處理器也對后續多模態任務富有啟發性。
原文標題:【Transformer】沒有什么多模態任務是一層Transformer解決不了的!
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
編碼器
+關注
關注
45文章
3595瀏覽量
134160 -
Transforme
+關注
關注
0文章
12瀏覽量
8782 -
多模
+關注
關注
1文章
28瀏覽量
10842
原文標題:【Transformer】沒有什么多模態任務是一層Transformer解決不了的!
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論