挑戰新物體描述問題,視覺詞表解決方案超越人類表現

微軟研究院AI頭條發表於2020-10-16

看圖說話“新”問題

影像描述或看圖說話(Image Captioning)是計算機根據圖片自動生成一句話來描述其中的內容,由於其潛在的應用價值(例如人機互動和影像語言理解)而受到了廣泛的關注。這項工作既需要視覺系統對圖片中的物體進行識別,也需要語言系統對識別的物體進行描述,因此存在很多複雜且極具挑戰的問題。其中,最具挑戰的一個問題就是新物體描述(Novel object captioning),即描述沒有出現在訓練資料中的新物體。

最近,研究者們釋出了 nocaps 挑戰(https://nocaps.org/),以測量在即使沒有對應的訓練資料的情況下,模型能否準確描述測試影像中新出現的各種類別的物體。在這個挑戰中,雖然沒有配對的影像和文字描述(caption)進行模型訓練,但是可以藉助計算機視覺的技術來識別各類物體。例如在一些之前的工作中,模型可以先生成一個句式模板,然後用識別的物體進行填空。然而,這類方法的表現並不盡如人意。由於只能利用單一模態的影像或文字資料,所以模型無法充分利用影像和文字之間的聯絡。另一類方法則使用基於 Transformer 的模型進行影像和文字互動的預訓練(Vision and Language Pre-training)。這類模型在多模態(cross-modal)的特徵學習中取得了有效的進展,從而使得後續在影像描述任務上的微調(fine-tuning)獲益於預訓練中學到的特徵向量。但是,這類方法依賴於海量的訓練資料,在這個比賽中無法發揮作用。

針對這些問題,微軟 Azure 認知服務團隊和微軟研究院的研究員們提出了全新的解決方案  Visual Vocabulary Pre-training(視覺詞表預訓練,簡稱VIVO),該方法在沒有文字標註的情況下也能進行影像和文字的多模態預訓練。這使得訓練不再依賴於配對的影像和文字標註,而是可以利用大量的計算機視覺資料集,如用於影像識別問題的類別標籤(tag)。藉助這個方法,模型可以透過大規模資料學習建立多種物體的視覺外表和語義名稱之間的聯絡,即視覺詞表(Visual Vocabulary)的建立。目前,VIVO 方法在 nocaps 挑戰中取得了新的 SOTA(即當前最優表現),並且首次超越了人類表現。

視覺詞表成為解決問題的關鍵

VIVO 方法取得成功的關鍵在於視覺詞表(visual vocabulary)的建立。如圖1所示,研究人員把視覺詞表定義為一個影像和文字的聯合特徵空間(joint embedding space),其中語義相近的詞彙,例如男人和人、手風琴和樂器,會被對映到距離更近的特徵向量上。在預訓練學習建立了視覺詞表以後,模型還會在有對應的文字描述的小資料集上進行微調。微調時,訓練資料只需要涵蓋少量的共同物體,例如人、狗、沙發,模型就能學習如何根據圖片和識別到的物體來生成一個通用的句式模板,並且把物體填入模板中相應的位置,例如,“人抱著狗”。在測試階段,即使圖片中出現了微調時沒有見過的物體,例如手風琴,模型依然可以使用微調時學到的句式,加上預訓練建立的視覺詞表進行造句,從而得到了“人抱著手風琴”這句描述。

挑戰新物體描述問題,視覺詞表解決方案超越人類表現

圖1:VIVO 預訓練使用大量的圖片標籤標註來建立視覺詞表,其中語義相近的詞彙與對應的影像區域特徵會被對映到距離相近的向量上。微調使用只涵蓋一部分物體(藍色背景)的少量文字描述標註進行訓練。在測試推理時,模型能夠推廣生成新物體(黃色背景)的語言描述,得益於預訓練時見過的豐富物體型別。

透過這樣的方法,研究員們結合了預訓練中識別圖片物體的能力,以及微調中用自然語言造句的能力,從而做到了在推理測試時舉一反三,使用更豐富的詞彙量來描述圖片中新出現的各種物體。

VIVO 訓練流程

挑戰新物體描述問題,視覺詞表解決方案超越人類表現

圖2:訓練和推理流程總覽(a)在VIVO 預訓練中,Transformer 模型在圖片標籤的訓練資料上做標籤預測,從而針對豐富的視覺概念進行多模態特徵學習。(b)在微調中,模型在有文字描述標註的訓練資料上學習如何基於圖片和識別出來的物體生成一句話。(c)在推理時,對於給定的圖片和識別的物體,模型以自迴歸的方式生成一系列字元,從而構成描述新物體的句子。

如圖2所示,VIVO 訓練流程採用了兩階段的訓練。第一階段為預訓練,使用多層的 Transformer 模型進行影像分類的預測。具體來說,先給定圖片和對應的一些標籤(tag),然後隨機地抹去其中一部分標籤,讓模型來預測這些被抹去的標籤原本是什麼。由於這些標籤之間的順序是可以互換的,因此需要使用匈牙利演算法(Hungarian matching)來找到預測結果和目標標籤之間的一一對應,然後計算交叉熵損失(cross entropy loss)函式。

預訓練之後,第二階段為微調。Transformer 模型會在有文字描述標註的小資料集上訓練,例如 COCO。微調時使用的物體標籤可以來自資料集本身的標註,也可以由其他已經訓練好的影像分類或物體識別模型自動生成。

在測試階段,對於給定圖片和識別出來的物體標籤,模型採用了自迴歸(auto-regressive)的方式生成字元序列,從而獲得描述圖片的一句話。

SOTA 首次超越人類

研究員們將 VIVO 與 nocaps 挑戰中一些領先的方法,如 UpDown 、 OSCAR 等做了對比(這些方法使用的訓練資料也是 COCO)。另外,遵循之前的方法,新增了使用 SCST 和 Constrained Beam Search (CBS)之後的結果。在 nocaps 的校驗集(validation)和測試集(test)上的結果顯示在表1中。可以看到,相比於之前的方法,VIVO 的結果表現有了顯著的提高。僅僅使用 VIVO 預訓練就取得了遠超過 UpDown+ELMo+CBS 和 OSCAR 的結果。最終,VIVO 方法的結果達到了新的 SOTA,並且首次在 nocaps 挑戰中超過了人類表現的 CIDEr 得分。

挑戰新物體描述問題,視覺詞表解決方案超越人類表現

表1:各種方法在 nocaps 的校驗和測試資料集上的結果

為了進一步理解 VIVO 預訓練中學習視覺詞表所產生的作用,即在影像和文字的共同特徵空間中對準影像與相應的語義標籤,研究員們展示瞭如何根據這些新物體的標籤找到它們在圖片中的位置(grounding to image regions)。對於每個圖片區域和每個物體標籤的兩兩配對,VIVO 都計算了它們對應特徵向量之間的相似度(cosine similarity)。圖3高亮了其中得分高的配對。可以看出,VIVO 的模型能夠準確地在眾多區域中確定這些物體所在的位置。

挑戰新物體描述問題,視覺詞表解決方案超越人類表現

圖3:模型對 nocaps 圖片的描述結果。B:沒有做 VIVO 預訓練的模型。V:有 VIVO 預訓練的模型。紅色文字顯示了描述中出現的新物體。圖中還顯示了各個圖片區域和描述中出現的新物體對應特徵向量之間的相似度,相似度越高的組合顏色亮度越高。

VIVO 展示了視覺詞表對描述圖片中新出現的物體的重要作用。作為第一個不依賴於圖片文字標註(paired image-sentence data)的影像與文字互動的預訓練(Vision-Language Pre-training)方法,VIVO 成功運用了計算機視覺研究中已經標註的大規模圖片標籤資料(image tagging data)來進行全新模式的影像與文字互動預訓練。值得注意的是,如果可以利用模型自動給圖片生成標籤,而不需要人工標註文字描述,那麼可以在訓練時加入可能無限多的無標註圖片,從而進一步提高模型的表現,微軟的研究人員也將在未來的後續工作中對此進行更多探索。


相關文章