多模态机器学习基础、应用及预训练模型介绍
早在公元前四世紀,哲學家和藝術學家提出了多模態的概念,用以定義融合不同內容的表達形式與修辭方法。在當今大數據時代,我們總說數據是多源異構的:
- 多源:數據持有方多樣化。比如數據來源于問卷調查、GPS追蹤、手機定位、用戶使用習慣等
- 異構:數據類型特征差異化。比如統計局每年統計的各類表格數據,以人或地區為點,聚合不同信息的結構化數據,比如以文本、圖像、影像、語音為代表的需要分析處理的非結構化數據,比如地理信息、軌跡等時空數據。
在深度學習盛行的今天,單一形態的數據已經不足以支持我們完成一些困難的任務,而多模態機器學習方法更貼近人類認識世界的形式。為了讓人工智能在理解我們周圍的世界上取得進一步突破,我們利用多模態信息進行解釋和推理。多模態機器學習的目的是建立能夠從多種模式處理和關聯信息的模型。從早期視聽語音識別研究到最近對語言和視覺模型的興趣爆發,多模態機器學習是一個日益重要和具有非凡潛力的,充滿活力的多學科領域。
一般情況下,我們說的多模態指的是自然語言、視覺信息(圖像、視頻)、聲音信號。考慮到不同形態數據的差異,多模態機器學習的研究領域給計算機研究者帶來了一些獨特的挑戰。從多模態來源學習提供了捕捉各個模態之間的對應的可能性,并獲得對自然現象的深入理解。
首先,介紹一些多模態機器學習的五個挑戰,論文地址:https://arxiv.org/pdf/1705.09406.pdf
1. 五個核心技術挑戰
1.1 多模態表示(Representation)
多模態表示是以一種利用多種模式的互補性和冗余的方式表示多模態數據,各個模態數據的差異性使得構建這種表示具有挑戰性,介紹文中給出的兩種表示方法:
- 聯合表示(Joint Representation):將多個模態的信息映射到同一個多模態空間中。
- 協同表示(Coordinated Representation):將各個模態映射到各自的空間,但映射后的向量間或者說是模態間要滿足一定的關系約束。
1.2 模態轉換(Translation)
多模態轉換也可以稱作為映射(Mapping),主要是將一個模態的信息轉化或映射為另一個模態的信息。模態轉換的難度主要有兩點:首先數據是異構的,各個模態的數據結構和特征是不同的;其次,各個模態之間的關系往往是比較主觀的,比如翻譯學中有很種翻譯結果都是被認可的。模態轉換大致分為兩種類型:example-based和generative。example-based種類的模型在模式之間進行轉換一般使用字典, generative模型構建了一個能夠產生翻譯的模型, 這個區別可以從圖中直觀的感受到。這種區別其實有點類似于非參數和參數機器學習方法之間的區別。
這部分應用其實最直觀的就是機器翻譯(Machine Translation),語音翻譯(Speech Translation)、圖片/視頻描述任務(Image/Video Captioning),語音合成任務(Speech Synthesis)。
1.3 模態對齊(Alignment)
模態對齊是從兩個甚至多個模態中尋找子成分之間的關系和聯系。舉一個直觀的例子,比如字幕對齊任務、圖像語義分割。為了應對這一挑戰,我們需要衡量不同模態之間的相似性,并處理可能存在的長期依賴性和模糊性。
1.4 模態融合(Fusion)
模態融合將來自兩個或多個模態的信息連接起來,進行目標分類或回歸任務。來自不同模態的信息可能具有不同的預測能力和噪聲拓樸結構,能夠使我們獲得 1 + 1 > 2 的意想不到的收益。這也是目前最為廣泛的一個MMML方向,很多任務都可以通過多模態的方式去處理,比如視覺-音頻識別(Visual-Audio Recognition)、多模態情感分析(Multimodel sentiment analysis)、手機身份認證(Mobile Identity Authentication)等。這里我們主要來說說這個多模態融合,一般多模態融合分為兩種:與模型無關的方法,也就是不直接依賴于特定方法的機器學習;基于模型的方法,明確地在其構造中處理融合,比如基于內核的方法、圖形模型、神經網絡。
1.4.1 與模型無關的方法
在機器學習盛行之前,絕大多數多模融合都是使用模型不可知的方法進行的。這種方法可以分為early(即基于特征的)、late(即基于決策的)和 hybrid融合。不依賴與模型的方法的一個優點是,它們可以使用幾乎任何單模分類器或回歸器來實現。
early融合在特征提取后立即集成(通常通過簡單地連接它們的表示),可以被看作是多模態研究人員進行多模態表示學習的初步嘗試,因為它可以學習利用每個模態的低層特征之間的相關性和交互作用。此外,它只需要單個模型的訓練,相比late融合和hybrid融合,訓練過程更容易 。
而late融合是在每一種模式做出決定(例如,分類或回歸)后進行整合,使用了單模的決策值,使用加權、投票、平均等方式進行融合,它允許為每個模式使用不同的模型,因為不同的預測器可以更好地為每個單獨的模式建模,提供了靈活性。此外,當一個或多個模式缺失時,它可以更容易地進行預測,甚至可以在沒有并行數據時進行訓練。然而,late融合忽略了模態之間的低層的交互作用。
最后,hybrid融合結合了early融合的輸出和late的每中模態的決策, 嘗試在一個共同的框架中利用上述兩種方法的優點。它已成功地用于多模態speaker識別和多媒體事件檢測(MED)。
1.4.1 基于模型的方法
盡管使用單模態機器學習方法很容易實現模型未知方法,但它們最終使用的技術并不是用來處理多模態數據的。通常,執行多模態融合有三種方法:基于核的方法、圖形模型和神經網絡方法。
多核學習(MKL) 是對對核支持向量機(SVM)的擴展,支持向量機允許對數據的不同形式/視圖使用不同的核,由于內核可以被視為數據點之間的相似函數,MKL中特定于模態的內核允許更好地融合異構數據。MKL方法是一種特別流行的方法,用于融合視覺描述符的目標檢測,直到最近才被深度學習方法取代。它們還被用于多模態情感識別,多模態情感分析,以及多媒體事件檢測(MED)。除了靈活的內核選擇,一個優勢就是MKL的損失函數是凸的,這在優化界的意義是非同凡響的,這意味著有大量的優化器供我們選擇,訓練上更加容易。此外,MKL可以用于執行回歸和分類。MKL的一個主要缺點是在測試期間依賴訓練數據(支持向量),導致推理緩慢和內存占用較大。
圖形模型是多模態融合的另一種流行方法,可分為兩大類:生成建模聯合概率;判別建模條件概率。最早使用圖形模型進行多模態融合的一些方法包括生成模型,如耦合和階乘隱馬爾可夫模型以及動態貝葉斯網絡。最近提出的一種多流HMM方法為AVSR提出了模態的動態加權。可以預見的是,生成式模型不如判別式模型受歡迎,如條件隨機場(CRF),后者犧牲了聯合概率的建模來獲得預測能力。結合圖像描述的視覺信息和文本信息,采用CRF模型更好地分割圖像。CRF模型已被擴展到使用隱藏的條件隨機場來建模潛在狀態,并已應用于多模態會議分割。潛在變量判別圖形模型的其他多模態使用包括多視圖隱藏CRF和潛在變量模型。雖然大多數圖形模型的目的是分類,CRF模型已被擴展為連續版本的回歸,并應用于多模態場景:音頻視覺情感識別。圖形模型的好處是能夠輕松地利用數據的空間和時間結構,這使得它們在時間建模任務中特別受歡迎,如AVSR和多模態情感識別。它們還允許在模型中加入人類的專家知識。并經常導致可解釋的模型。
神經網絡,可以說是現在研究的主體了,已被廣泛用于多模態融合任務。最早使用神經網絡進行多模態融合的例子來自AVSR的研究。如今,被用來融合視覺和媒體問答的信息,手勢識別,情感分析,視頻描述生成等更多更為復雜的任務。雖然所使用的形式、結構和優化技術可能不同,但在神經網絡的聯合隱含層中融合信息的一般思想是相通的。深度神經網絡方法在數據融合方面的一大優勢是能夠從大量數據中學習更為復雜的信息。其次,最近的神經體系結構允許對多模表示組件和融合組件進行端到端訓練,這對于開發者來說更為方便。最后,與基于非神經網絡的系統相比,它們表現出良好的性能,并且能夠學習其他方法難以克服的復雜決策邊界。在下一節,我將介紹幾個有趣的應用和網絡結構。
1.5 協同學習(Co-Learning)
協同學習實際上是通過利用多中模態間資源更豐富的模態的知識來輔助其余資源稀缺的模態,建立模型的方法,其探索如何從一種模式的學習幫助模型訓練另一個不同的模態。當一種模式的資源有限,例如有標注的數據時,這一挑戰就尤其重要。根據訓練資源,協同學習方法一般分為三個類型:并行非并行和混合方法。
- 并行方法需要訓練集其中一種模態的觀測值與其它模態的觀測值有直接聯系。比如,當多模態觀測來自于同一實例時,視頻和語音樣本來自同一人的視聽語音數據集。
- 相比之下,非并行數據方法不需要不同模態的觀測值之間有一定聯系,這些方法通常通過使用類別重疊來實現協同學習。比如在zero-shot學習中使用維基百科的第二個純文本數據集拓展傳統視覺對象識別數據集,以提高視覺對象識別的通用性。
- 混合方法中,模態通過共享或數據集去連接。
2. 一些有趣的多模態網絡結構
2.1 圖文反諷識別
首先,介紹一個簡單的圖文方面的例子。
其實,多模態研究核心重點在于巧妙的如何將多模態數據匹配,即,如何將多模態信息映射到統一的表征空間。早期研究,其實主要分為兩條主線:Canonical Correlation Analysis(CCA)和 Visual Semantic Embedding(VSE)。
- CCA系列方法,主要是通過分析圖像和文本的correlation,然后將圖像和文本映射到同一空間中,這一系列的論文非常多,但是效果相對于深度學習方法有待提高。雖然后期也有基于深度學習方法的方案,比如說DCCA,但相比于VSE方法還是有一定差距的。
- VSE系列方法,是將圖像和文本分別表示成Latent Embedding,然后將多模態Latent Embedding擬合到同一空間中。VSE方法又延伸出來許多其他方法,比如說SCAN、PFAN,這些方法在通用的圖文匹配上都達到了不錯的效果。
說回到反諷識別,人們通常會用來傳達嘲笑、輕蔑、為難等情緒。在影視作品中,也是幽默性與藝術性的體現。諷刺可分為兩類:
- 直白的文本諷刺。這類的諷刺我們可以僅憑文字感知,比如:It’s a good thing we came here. It’s like a lesson in what not to do。表達中的第一句,表面上是在表達積極的評價,但是結合后半句則可發現,作者想表達的是貶義,某地不值一去。這一前一后的褒貶沖突,能夠讓我們單純地從文本上感知到諷刺的存在。
- 隱晦的諷刺,需要一些文本以外的線索來輔助感知的諷刺。單從文本來看,我們看不出諷刺所在,但引入多模態線索,如聲音的強調、變調,表情的翻白眼,以及一些肢體動作,就可以明顯地發現說話人在表達諷刺。
這里我們介紹兩個2019年的文章,兩篇文章的重點都在“多模態”的引入上,但是引入的重點不同。
2.1.1 Towards Multimodal Sarcasm Detection (An Obviously Perfect Paper)
論文地址:https://aclanthology.org/P19-1455/
項目地址:https://github.com/soujanyaporia/MUStARD
這篇的作者提出了一個讓人有趣的認知——諷刺的線索往往來自于模態間的不協調。比如,從文字角度看,Chandler表達的應該是害怕,然而看說話人,卻給人抖機靈、得意洋洋的感受。這里就產生了一種不協調。第二個Sheldon的例子也一樣,從文本來看,應該是贊美的,但Sheldon的語氣和表情卻都很平靜。當然,并非所有的諷刺都來源于這樣的不協調,作者也提到模態間的同向情感促成也是一種諷刺表達方式。
這篇文章作者采用了三個模態:Text、Audio、Video,特征提取和模型部分都采用了簡單的處理方式:
- Text:Bert,對每句話提取768維向量。
- Audio:利用librosa庫,提取音頻的基礎特征,如MFCC、過零率等,其中每段音頻被切分為不重疊的283個小窗口,提取的不同特征分別是每段小窗口的平均值,最終獲得一個283維向量。
- Video:抽幀后分別利用Resnet-152提取特征再平均,獲得2048維向量。
當三個模態的特征獲得后,作者使用一個簡單的串接,將三個模態的特征進行early fusion,并放入一個rbf核的SVM分類器中進行實驗。這里選擇的baseline除卻SVM還有Majority和Random進行參照。Majority意為將訓練數據中類別較多的一類作為預測,Random則為隨機預測。實驗效果可以閱讀一下原論文,這里不贅述了。這篇文章的實驗數據集比較小,且融合策略比較簡單,相比之下,另一篇的重點就在于探索融合方式。
2.2 Multi-Modal Sarcasm Detection in Twitter with Hierarchical Fusion Model
論文地址:https://aclanthology.org/P19-1239/
項目地址:https://github.com/wrk226/pytorch-multimodal_sarcasm_detection
這篇文章與上篇文章不同,采用的模態是文本、圖像特征和圖像屬性,其中圖像屬性由描述圖像組成部分的若干詞構成。簡單來說,模型通過提取圖像特征和圖像屬性特征,再利用屬性特征和雙向LSTM網絡來提取文本特征,三種模態特征進行重構,融合成一個特征向量來進行預測。模型結構比較明晰:
2.2 情感分類
情感分類算得上是一個老生常談的任務了,之所以把這篇單獨拎出來,主要是覺得這個模型結構非常清晰靈活,好上手。對于各個模態,我們都可以通過現有的一些比較成熟的預訓練網絡,比如Bert、Resnet、VGGish等,獲得該模態的embedding,然后進行融合后進入任務網絡層。這個融合策略比較靈活,最簡單的,我們可以選擇相應模態reshape后,然后直接進行concatenate。
論文題目:Contextual Inter-modal Attention for Multi-modal Sentiment Analysis
論文地址:https://aclanthology.org/D18-1382/
項目地址:https://github.com/declare-lab/multimodal-deep-learning
網絡結構:
3. 一些有趣的預訓練模型
3.1 ViLBert
論文地址:https://arxiv.org/pdf/1908.02265.pdf
項目地址:https://github.com/facebookresearch/vilbert-multi-task
ViLBERT是Vision-and-Language BERT的縮寫,該模型用來學習與任務無關的圖像和自然語言的聯合表征,ViLBert在Bert基礎上擴展為多模態的雙流模型,在各自的流中處理圖像和文本輸入,這兩個流通過Co-attention transformer層進行交互,該結構能夠適應每種模態的不同處理需求,并在不同表示深度上提供模態的交互。。實驗表明,ViLBert在四個下游任務中明顯優于面向特定任務的最先進的模型。
我們重點來關注三件事,特征提取、特征融合和預訓練任務。
3.1.1 特征提取
文本部分采用了Bert的Tokenizer。圖片部分,先用Faster R-CNN模型從圖像中提取多個目標區域的特征,由于圖片特征不像文字特征一樣含有位置信息,因此用5維數據給圖片位置編碼,它們分別是歸一化之后左上角坐標,右下角坐標,以及面積。然后將其投影到匹配視覺特征的維度,并對其求和。
3.1.2 特征融合
ViLBert采用了two-stream,交互主要依賴Co-TRM(Transformer blocks)。傳統的TRM,q、k、v來自同一個向量(self-attention),而這里為了實現文本和圖片的交互,進行了改進:在表征圖片時考慮到了上下文,q來自圖片,k、v來自文本;同樣地,表征文本時,q來自文本,k、v來自圖片。
3.1.3 預訓練任務
- masked multi-modal modelling task: ViLBert中的詞和圖像區域輸入的mask占比大概是15%,在給定剩余輸入的情況下對輸入進行重建,mask圖像區域部分90%是直接mask,另外10%保持不變,而文本部分的mask與bert一樣。需要注意的是, ViLBert并不直接預測被mask掉的特征時,而是預測對應圖像區域在語義類別上的分布,其訓練的目標是最小化這兩個分布的KL散度。這種選擇反映了這樣的一種概念:語言通常只識別視覺內容的高級語義,不太可能重建精確的圖像特征。
- multi-modal alignment task: 多模態對齊任務的目標是預測圖像和文本是否匹配對齊,也就是文本是否描述了圖像。以圖像特征序列的起始IMG token和文本序列的起始CLS token的輸出作為視覺和語言輸入的整體特征,借用vision-and-language模型中另外一種常見結構,將IMG token的輸出和CLS token的輸出進行element-wise product最作為最終的總體表征,再利用一個線性層預測圖像和文本是否匹配。
3.1.4 下游任務效果
文中對ViLBert與流行的其它模型進行了對比,以及消融實驗的效果。我們先看看這些下游任務:
- VQA: 視覺問答任務(Visual Question Answering)是給定一個圖片以及文本描述的問題,要求模型給出答案。選取參照模型:DFAF,使用VQA2.0數據集。
- VCR: 視覺常識推理任務(Visual Commonsense Reasoning),給定圖片、給定區域、給定問題,模型必須從選擇題中選取一項,并給出原因。選取參照模型:R2C,使用VCR數據集。
- RefCOCO+: 指示表達任務(Referring Expression Comprehension),給定一段自然語言描述,圖像中定位到的相關區域。該任務涉及到細粒度的跨模態語義對齊,因此更加考察聯合表示對語義刻畫的精細度。選取參照模型:MAttNet,使用RefCOCO+數據集。
- IR: 圖像檢索(Image Retrieval),這里選擇的是基于字幕檢索,選取參照模型:SCAN,使用Flickr30k數據集。
上述任務都是在特定下游任務數據集上微調,在零樣本任務中,直接將預訓練的ViLBert復用在Flickr30k數據集中的多模態對齊檢測。從實驗結果看,ViLBert整體效果很不錯,在這些下游任務上有很好的的表現,也證明了ViLBert確實能夠學習到視覺-語言之間的重要關系。
3.2 ERNIE-ViL
論文地址:https://arxiv.org/pdf/2006.16934.pdf
項目地址:https://github.com/PaddlePaddle/ERNIE/tree/repro/ernie-vil
基于知識增強的視覺-語言預訓練模型,它基于場景圖知識構建了場景圖預測任務,從而學習到刻畫細粒度語義對齊的聯合表示。在視覺問答、視覺常識推理等五個多模態任務中取得了SOTA效果,也曾在多模態領域權威榜單視覺常識推理任務(VCR:http://visualcommonsense.com/leaderboard/)登上榜首。
3.2.1 特征提取和特征融合
- 特征提取: 文本采用的是bert的tokenizer,圖片采用的是object-detection,Faster-RCNN。
- 特征融合: 這里采用的是two-stream,基本上結構類似于ViLBert。
3.2.2 預訓練任務
SGP場景圖預測,也是ERNIE-ViL的核心創新點。我們可以看到上圖右半部分其實就是包含了目標、屬性、關系的一個結構圖,這些詞被稱為細粒度詞,則“a”、“the”被看作為普通詞。基于場景圖,作者設計了三個具體任務:物體預測(Object prediction)、屬性預測(Attribute prediction)、關系預測(Relationship prediction)。
- 物體檢測:隨機選取圖中的一部分物體,比如圖中的“house”,對其在句子中的詞進行mask,根據文本上下文和圖片對mask部分進行預測。
- 屬性預測,對于場景圖中的屬性-物體對,如圖中的“dress - blue”,隨機選取一部分詞,對而其中的屬性進行mask,根據物體上下文和圖片進行預測。
- 關系預測,隨機選取一部分物體-關系-物體三元組,比如圖中的“cat - on top of - car”,然后對其中的關系進行mask,根據對應物體和上下文以及圖片對其進行預測。
除以上提出的場景預測任務外,ERNIE-ViL的預訓練任務還加入比較常規的掩碼語言模型(Masked Language Modelling)、掩碼圖像區域預測(Masked Region Prediction)以及圖文對齊任務(Image-Text Matching)。
3.2.3 下游任務效果
這篇文章里的下游任務都是比較常規的任務了,就不多介紹了。實驗效果如圖,我們可以看到ERNIE-ViL在鐸哥任務上都能取得非常好的效果。此次百度提出的知識增強多模態模型,首次將場景圖知識融入多模態模型預訓練過程中,在多個推理任務上都刷新了SOTA記錄,也為多模態語義理解領域研究提供了新的思路。
3.3 VL-BERT
論文地址:https://arxiv.org/pdf/1908.08530.pdf
項目地址:https://github.com/jackroos/VL-BERT
- 特征提取: 文本采用的是bert的tokenizer,圖片采用的是object-detection,Faster-RCNN。
- 特征融合: 這里和前面兩個模型不同,采用的single-stream結構,模型定義了三種類型的片段:A、B、C,將輸入元素從不同的來源進行區分,其中A和B文本句子,而C表示的是圖像,圖像也分為兩個部分,前面是Rol加上[IMG]標識,最后為了不丟失全局信息,將整張圖片加入進去,加入[END]。與Bert相同,向每個輸入元素中添加一個可以學習的序列位置特征來表示輸入序列的順序。由于輸入的視覺元素之間沒有自然的順序,在輸入序列中,對他們進行任何排列,都應該得到相同的結果,所以視覺元素的序列位置都是相同的。
- 預訓練任務: 主要的三個預訓練任務:掩碼語言模型(Masked Language Modelling)、掩碼Rol分類(Masked Rol Classification)以及圖題關聯預測(Sentence Relationship Prediction)。掩碼Rol分類,也就是隨機mask掉視覺輸入中的一些Rols,并預測此空間位置對應Rol所屬類別。需要注意的兩點是:首先在mask某一Rol后,全圖對應的部分也應該mask,不然會存在偷窺現象;第二,在圖像上進行mask,而不是在輸出的特征圖上進行mask。圖題關聯預測,也就是預測圖像和標題是否屬于同一對。另外,這里作者認為ITM任務沒有用。
- 下游任務: 也是很常規的三個任務:VCR、VQA、RefCOCO+。
3.4 CLIP
2021年初,擁有號稱地表最強語言模型GPT-3的OpenAI在NLP領域又一次大刀闊斧,推出了兩個多模態模型DALL-E和CLIP,前者是基于文本生成圖像,后者是基于文本對圖片進行分類。
論文地址:https://arxiv.org/pdf/2103.00020.pdf
項目地址:https://github.com/openai/CLIP
- 特征提取: 文本采用的是transformer,圖片采用的是ResNet-50或者 Vision transformer。
- 特征融合: 采用的two-stream,CLIP在編碼過程中沒有進行文本和圖片之間的交互,而是直接通過計算文本編碼和圖像編碼的余弦相似度來預測對應圖片和文本是否匹配。這與之前的一些多模態工作是不同的。
- 訓練: 預訓練的過程中采用的是對比學習,圖中I1和I2是第一張和第二張圖片表征,T1和T2是第一條和第二條文本表征,其中T1是I1的描述,所以對比學習的目標就是使得矩陣對角線的距離越來越近,非對角線的距離越來越遠。由于矩陣特別大,所以將對比學習轉化為分類任務。從圖片角度,對于I1來說,在T1到TN這N個類別中應該被分到T1類中,從文本角度就是按列I1-IN去做分類,所以最后的loss就是按行和按列的分類做一個分類任務,然后進行平均。
- 測試: 可以直接將訓練好的CLIP用于其他數據集,而不需要微調。和訓練階段相似,首先將需要分類的圖像經過編碼器得到圖像特征,然后對于目標任務數據集的每一個標簽,或者我們自己定義的標簽構造一段對應的文本,如上圖dog會被改造改造成a photo of a dog。以此類推,然后經過編碼器得到文本和圖像特征,接著將文本特征與圖像特征做內積,內積最大的對應的標簽就是圖像分類結果,也就完成了目標任務上的所謂的zero-shot分類。
CLIP巧妙地將圖文匹配任務和圖像分類任務進行了關聯,使得可以直接使用自然語言作為監督信號。不過,和OpenAI的GPT-3模型一樣想復現的話,目前的訓練效率和分布式訓練等問題仍然面臨挑戰。
總結
以上是生活随笔為你收集整理的多模态机器学习基础、应用及预训练模型介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab计算时间差多少秒,Matla
- 下一篇: 传输门为什么是P/N双MOS结构