[21.02] VL-T5
輸出要整齊
Unifying Vision-and-Language Tasks via Text Generation
看論文也好幾篇了,對於一些下游任務的預測方式,你應該多少知道一點。
我們先來看兩個例子:
第一個例子是 VQA,一般說來,執行 VQA 任務的做法是上圖 (a):
-
物件偵測:首先,從物件偵測器獲得圖片中的物件結果。這一步可以用來辨識和定位圖片中的主要物件和特徵。
-
Token 輸入:將從物件偵測器得到的結果轉換成 token 格式,並放在輸入序列的前面。接著,將問題也轉換成 token 格式並放在輸入序列的後面。
-
Transformer 模型:將整合了圖片和問題的 token 序列輸入到 Transformer 模型中。Transformer 模型將進行深度自我注意力運算,獲取上下文資訊,並生成一個表示整個輸入序列的內容的編碼。
-
預測頭與 Sigmoid 函數:將 Transformer 模型的輸出(通常是[CLS] token 的編碼)送到一個專門的預測頭。該頭會為每一個可能的答案計算一個分數。然後,每個分數都會經過 sigmoid 函數,將其壓縮到 0 和 1 之間,這可以解讀為模型預測該答案是正確答案的概率。
-
選取 Top-k 答案:模型會根據每個答案的分數從高到低進行排序,然後選擇分數最高的 top-k 答案作為其最終輸出。
許多 VQA 資料集,特別是那些使用多選答案的,可能會受限於預定義的答案集。這意味著,即使有更適合的答案,模型也可能因為答案不在預設集合中而遺失某些細節或信息。另外,對某些問題,可能存在多個合理的答案。這可能導致模型在評估時的表現受到損害,即使它提供的答案在某種情境下是合理的。
第二個例子是分類,執行分類任務的做法如上圖 (b):
- 物件偵測:首先,從物件偵測器獲得圖片中的物件結果。這一步可以用來辨識和定位圖片中的主要物件和特徵。
- Token 輸入:將從物件偵測器得到的結果轉換成 token 格式,並放在輸入序列的前面。接著,將問題也轉換成 token 格式並放在輸入序列的後面。
- Transformer 模型:將整合了圖片和問題的 token 序列輸入到 Transformer 模型中。Transformer 模型將進行深度自我注意力運算,獲取上下文資訊,並生成一個表示整個輸入序列的內容的編碼。
- Softmax 預測頭:取得所有圖像 Token 的編碼,一起計算分數。
- 選取答案:選出一個其中一個影像作為分類的答案。
這種方式得另外去調整一個額外的影像分類頭,就作者的角度來看,這樣做實在是太麻煩。
定義問題
作者認為當前的方法在面對視覺和語言的多種任務時,需要設計特定於任務的架構和目標函數,這不僅增加了模型的複雜性,也限制了其泛用性和效能:
-
統一任務架構
- 傳統的視覺和語言 Transformer 模型在面對不同的預訓練或下游任務時,往往需要設計特定於任務的、單獨參數化的架構。這使得模型設計和微調變得相對複雜。
- 每當有新的任務出現,都需要重新設計或微調模型,這增加了工作量和複雜性。
- 許多視覺和語言任務所需的推理技能有很大的重疊。
-
開放式答案的生成
- 不同的任務需要不同的方式表示其標籤。例如:現有的視覺問答方法將答案視為在一固定集合中的多標籤分類問題,但答案其實已經是文字。
- 判別性方法在回答開放式問題時受到限制,因為它只能選擇一組預先定義的答案,而無法生成開放式的自然語言答案。
-
多任務學習與泛化能力
- 目前的預訓練方法需要特定於任務的架構和目標函數,這可能會限制其應用的泛用性和效能。
- 傳統方法在面對訓練過程中少見的答案時,泛化能力受到挑戰,特別是在視覺問答中的稀有答案。
解決問題
VL-T5 模型設計
T5 是什麼?
T5 (Text-to-Text Transfer Transformer) 是一種自然語言處理模型,其核心理念是將所有語言處理任務視為從一段文字轉換到另一段文字的挑戰。無論你的目的是文本分類、翻譯或摘要,T5 都把它看作是輸入一段文字,然後生成另一段相關的文字。這種獨特的設計讓它在多種任務上表現出色,同時簡化了模型的設計和適應性。對於感興趣深入了解其工作原理和細節的讀者,建議直接參考其原始論文以獲得更完整的資訊:
T5 論文連結:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (2019.10)
VL-T5 主要設計目的是將視覺和語言的問題統一為多模式條件文字生成,以下是主要設計要點:
-
基於預先訓練的 Transformer 模型
- VL-T5 基於兩種預先訓練的 Transformer 語言模型:T5Base。
- 為了使模型能夠處理視覺輸入,作者擴展了其文字編碼器,通過將圖像區域編碼作為附加輸入來創建多模式編碼器。
-
視覺編碼(Visual Embeddings)
- 來源於 Faster R-CNN 的圖像表示,並使用 36 個物件區域來表示輸入圖像。
- 每個影像區域的特徵是由四種資訊組合而成的:RoI 物件特徵、RoI 邊界框座標、圖像 id 和區域 id。
- 特徵編碼使用的方法包括線性層和學習編碼,並使用影像 ID 來區分多影像輸入的情境。
-
文字編碼(Text Embeddings)
- 為了適應多種任務,而不需設計特定於任務的架構,模型在原始輸入文字中添加了特定的前綴。
- 編碼的參數由編碼器、解碼器和語言模型頭共享。此外,還引入了視覺標記,這些標記對應於圖像的區域,協助在查詢、標籤和物件之間建立對應。
-
Encoder-Decoder 架構
- 使用了 Transformer 的編碼器-解碼器架構,來對視覺和文字輸入進行編碼,並生成標籤文字。
- 編碼器接受文字和視覺嵌入的串聯作為輸入,然後輸出他們的上下文聯合表示。
- 解碼器專注於先前生成的標記和編碼器的輸出,進行文字生成。
-
輸出格式要整齊
-
統一框架 vs. 任務特定方法
- 傳統方法往往針對特定的任務開發專門的架構和目標。
- VL-T5 則提供了一個統一的框架,該框架不需要為每個新任務設計模型。
-
視覺問答
- 傳統模型在處理視覺問答時,通常會在頂部引入一個多層感知器 (MLP) 多標籤分類器頭。這些模型透過二元交叉熵損失與 Transformer 主幹一起訓練,並以 VQA 分數進行加權。
- VL-T5 透過將問題和答案都視為文本,並使用相同的語言建模目標來解決視覺問答的挑戰。
-
引用表達理解
- 傳統方法(例如:UNITER)解決此問題的方法是在圖像區域的輸出表示上添加 MLP 區域評分頭,這通常涉及多類或二元分類的策略。
- VL-T5 再次選擇使用文本為中心的策略,將任務標籤視為相應的文本,然後使用語言建模目標預測這些標籤。
-
資料集使用
-
MS COCO
這是一個流行的資料集,主要用於目標檢測、語意像素分割和圖片字幕等任務。COCO 的全名是 “Common Objects in Context”,意指它包含的圖像不只是簡單地顯示物件,而是提供了物件在真實環境中的上下文。它被廣泛用於深度學習和計算機視覺領域的訓練和驗證。
-
Visual Genome (VG)
VG 是另一個流行的資料集,旨在深入理解圖像中的物件、屬性和關係,從而提供更詳細的視覺知識。這不僅僅是標記物件,還包括了物件之間的互動和關係。
-
資料集的規模和詳情
- 這兩個資料集總共包括 18 萬張不同的圖像。這意味著這些圖像涵蓋了大量的場景、物件和情境,從而可以提供豐富的視覺信息來訓練模型。
- 而這 18 萬張圖像中,有 918 萬個圖像文字對。這表示每張圖像不僅僅只有一個描述或標註,而是有多個文字描述或資訊與之相關聯。這提供了豐富的語境和細節,有助於模型在理解圖像和文字之間的關聯時更加精確。
預訓練任務
-
多模態語言建模 (MLM)
VL-T5 是基於 T5 (Text-to-Text Transfer Transformer) 架構的多模態模型版本。
在這個模型中,為了訓練它理解和生成文字,作者會隨機屏蔽(或移除)原始輸入中 15% 的文字標記並替換成「sentinel tokens」。預訓練的主要目的都是讓模型學習預測那些被屏蔽的文字標記。這種屏蔽和預測的方法有助於模型學習上下文理解和生成相關聯的文字。
這個名詞要怎麼翻譯?其實我也不是很確定,照字面上大概就是「哨兵標記」吧?
Sentinel tokens 是用來表示輸入序列中被遮罩的區段的特殊標記。它們在 T5 的非監督去噪訓練中起到了一個關鍵的作用。當某個部分的輸入序列被遮罩時,會使用這些 sentinel tokens 來代替,並且在輸出序列中,這些 sentinel tokens 會與真正被遮罩的部分一同出現。
提示舉個例子:
- 原句:”The cute dog walks in the park”。
- 假設 “cute dog” 和 “the” 被遮罩,那麼過程如下: - 輸入序列為:”The [extra_id_1] walks in [extra_id_2] park”。 - 輸出序列為:”[extra_id_1] cute dog [extra_id_2] the”。
這種設計的理念是為了在非監督學習的情境下,使用特定的 token 來表示和還原被遮罩的序列部分。這與傳統的 [MASK] 方法有所不同。
在 BERT 模型的 [MASK] 方法中,所有被遮罩的部分都會被同一個 [MASK] token 替代。而在 T5 的 sentinel tokens 方法中,每個遮罩部分都會有一個唯一的 token,比如 [extra_id_1]、[extra_id_2] 等。這使得模型能夠更確切地辨識和還原每一個被遮罩的部分。
[MASK] 方法主要用於訓練像 BERT 這樣的模型,使其能夠理解上下文並預測被遮罩的部分。而 sentinel tokens 是為了 T5 這種 text-to-text 的設計模式而設計的,這種模式下,所有 NLP 任務都可以被轉化為輸入文本到輸出文本的格式。
儘管 sentinel tokens 本身是固定的,但它們所代表的具體内容是動態的,取決於當前的上下文和模型的預測。這意味著,在不同的內容中,相同的 sentinel token 可以被共用,而不會產生歧義,因為其意義會在模型的訓練或預測過程中被明確地解釋和還原。
-
視覺問答 (Visual Question Answering)
傳統的 VQA 方法往往會有一套預定義的答案選項(例如:一個固定的答案詞彙表),模型的任務就是從中選擇最合適的答案。這種方法的限制在於它不能生成不存在於預定義答案集的答案。然而,作者提出的方法允許模型直接生成答案的原始文本,這提供了更大的靈活性,使模型可以回答更多的開放式問題,而不僅僅是選擇預定義的答案。
-
圖像文字匹配 (Image-text Matching)
這是一項涉及判斷圖像與文本之間是否相關或匹配的任務。例如:一個圖像可能是一隻狗在公園玩耍,與之相對應的文本可能是「狗在草地上追球」。如果這些元素(圖像和文本)在某種程度上描述了相同的內容或情境,那麼我們可以說它們是匹配的。
在進行圖像文字匹配訓練時,通常會有兩種對照:
- 正確的對照:這是原始的、真實的圖像和文本配對,表示它們在現實世界中是相匹配的。
- 錯誤的對照:這是故意創建的、不匹配的圖像和文本配對。這通常是通過將一個圖像與另一個隨機選擇的文本配對來實現的。
模型的任務是對每一對圖像和文本進行預測,判斷它們之間的關係是「真」(它們真的匹配)還是「假」(它們不匹配)。這基本上是一個二分類問題,其中模型需要學習從圖像和文本中辨識出那些真正相匹配的特徵。
-
Visual Grounding
「視覺結合」或稱「視覺定位」是指模型能夠在圖像中找到與特定文本或語言描述相對應的視覺區域。這涉及模型對圖像中的特定物件或特征進行定位,並將其與相對應的文本描述相關聯。在進行訓練時,模型會接收到一段描述某一區域或物件的文本。基於這段文本,模型的任務是預測出圖像中與該描述相對應的區域(通常表示為一個矩形框或一組坐標)的唯一辨識碼或 ID。
視覺基礎的訓練不需要對圖像中的每一個物件進行詳細的標註或註解。換句話說,訓練資料可能已經包含了足夠的信息(例如:物件的位置和相對應的描述),因此不需要進一步的標註。
-
Grounded Captioning
「字幕結合」是指根據圖像中的特定區域生成文本描述的過程。不同於傳統的圖像字幕,它不僅僅是為整個圖像生成描述,而是針對圖像中的某個特定區域或物件生成描述。「視覺結合」通常指的是根據文本描述找到圖像中相對應的區域。而「字幕結合」可以被視為其逆向操作:給定圖像中的一個區域,生成描述這個區域的文本。
-
預訓練執行細節
- 使用 4 個 RTX 2080 Ti GPU 進行 30 輪的預訓練,總共需要 4 天。
- 使用 AdamW 作為優化器,具有特定的超參數設定。
討論
VQA and GQA 分析
在七個不同的下游任務上,VL-T5 與 VL-BART 與多個現有的視覺和語言預訓練的 Transformer 進行了比較。結果顯示,VL-T5 和 VL-BART 的統一生成方法在效能上非常接近特定於任務的模型,其中多數模型都是有判別性的。
但由於 VL-BART 的表現並不算太好,因此作者這這篇論文中主要的篇幅都給予 VL-T5 了。
-
VQA and GQA 的表現
視覺問答任務要求模型基於給定的上下文圖像提供答案。在 VQA 和 GQA 的比較中,VL-T5 和 VL-BART 都達到了與現有方法相當的性能。
-
生成模型 vs. 判別模型
多數現代方法是判別模型,它們視 VQA 任務為多任務標籤分類。雖然這些策略在某些情境下表現出色,但它們無法有效應對開放式的真實世界場景。相比之下,VL-T5 等生成模型的效能在某些情境,尤其是未見過的問題,顯著優於判別模型。
-
資料集特定前綴的效果
研究指出,不同的文本提示或前綴可能影響模型的微調結果。在 VQA 和 GQA 上,VL-T5 在預訓練和微調時使用了單一前綴 “vqa”。相對於使用原始資料集特定前綴,這種方法的效能略有提升,這意味著單一模型可以成功處理多個 VQA 任務,而不需要特定於資料集的前綴。
NLVR2 分析
NLVR2 任務要求模型判定自然語言陳述是否適用於一對圖像。這項任務測試模型對於影像和文字信息的整合能力。其中分成三種編碼設定:
- Triplet:這種設定將圖像對和相應的文字進行聯合編碼。
- Pair:這個設定則是將每個圖像與其相對應的文字進行單獨的編碼後再進行串聯。
- Pair-biattn:基於 Pair 的設定,再添加雙向注意力。
VL-T5 在 NLVR2 的表現中,在簡單的 Triplet 編碼設定下展現了與 UNITER 相當的效能。儘管在更複雜的編碼設定(例如 Pair 和 Pair-biattn)中存在一定的性能差距,但考慮到 Triplet 的計算效率,VL-T5 在此設定下的性能是非常可觀的。這突顯了 VL-T5 在視覺語言任務上的潛力和多樣性。
VCR 分析
VCR(視覺常識推理)是一個選擇題回答任務,其要求的常識推理超過了單純的物體或動作辨識。每一個 VCR 問題有四個答案選項和四個理由選項,此任務可以分解為兩個子任務:問題回答 (Q→A) 和答案論證 (QA→R)。整體目標是選擇正確答案的同時還要提供該答案的正確理由。
VL-T5 的方法與諾蓋拉等人的方法相似,模型將上下文(圖像和問題)與每個候選選項連接,並根據選項是否正確生成 “true” 或 “false”。在推理時,使用概率比對選項進行排序,選擇得分最高的選項作為答案。
在 VCR 的驗證集上,與未經預訓練的基本模型相比,VL-T5 展現了更好的性能,這與 UNITER 的發現相符。在 VCR 的測試集上,VL-T5 的性能達到了與 UNITER 相近,甚至略好的水平。相較於 ViLBERT,VL-T5 顯著提高了性能。
結論
Transformer 的 Encoder 和 Decoder 設計架構經常被提及。VL-T5 的提出就是對此一架構的深度探索,目標是要在視覺和語言的整合任務上實現更好的性能。然而,初步的嘗試似乎並未取得飛躍性的成果。
雖然 Encoder 和 Decoder 的組合在許多任務中都已證明是有效的,但在特定的視覺和語言整合任務中,它可能還需要進一步的調整和優化。這可能涉及更細緻的架構調整、不同的注意力機制或更適合特定任務的預訓練策略。
因此,單憑改變或調整模型的架構可能不足以帶來顯著的性能提升。也許更為重要的是,如何充分利用大量的數據、更有效的訓練策略和更深入的任務理解,以針對特定的問題進行優化。
就我們自己的開發經驗來看,單純使用 Encoder 時候,會讓模型比較輕鬆的學到資料特徵。因為 Encoder 的主要目的是捕獲輸入數據的主要特徵並將它們編碼成一個固定大小的表示。這種表示通常比原始輸入更簡潔,並捕獲了其最重要的信息。由於架構的簡單性,訓練一個單純的 Encoder 往往比完整的 Encoder-Decoder 組合更快。這可以節省訓練時間和資源。
但當引入 Decoder 的機制時,模型的學習往往需要更大量的資料。這是因為 Decoder 要從 Encoder 的固定表示中重建輸入或生成新的輸出,這增加了模型的學習挑戰。大量的資料可以提供足夠的範例,幫助模型學習這些複雜的映射。Decoder 的引入使模型的整體架構更複雜。這不僅意味著更多的參數需要訓練,也可能增加過擬合的風險。
如果在基於這個架構上,用多幾個數量級的資料灌下去,或許會有完全不一樣的結論?
總之,VL-T5 提供了一個有價值的出發點,對於 Encoder 和 Decoder 架構在視覺和語言整合中的應用提供了新的洞察。未來,通過深入探討這一架構的潛在限制和優勢,以及進一步調整和優化,在實現更高的性能的同時,並為這一領域的研究者開闢出新的道路。