最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

多模態(tài)自然語言處理最新進展

2022-08-18 13:19 作者:瀾舟孟子開源社區(qū)  | 我要投稿

作者介紹:段楠,微軟亞洲研究院自然語言計算組高級研究經理,中國科學技術大學兼職博導,天津大學兼職教授,主要從事自然語言處理、編程語言處理、多模態(tài)人工智能、機器推理等研究,多次擔任NLP/AI/ML相關國際會議評測主席、高級領域主席和領域主席,發(fā)表學術論文100余篇。

本文根據(jù)段楠老師在「瀾舟NLP分享會」上的演講整理。文內梳理了視覺語言預訓練近期工作,并分享了微軟亞洲研究院在視覺語言預訓練模型和視覺合成方面的研究。

背景

近三年來,基于 Transformer 和自監(jiān)督預訓練的語言模型取得了非常矚目的成績。這些模型通過自回歸、降噪自編碼器、對比學習等自監(jiān)督學習任務,能夠從海量的單語或者多語語料中學習到語言的通用表示,然后通過微調等方式適配到各種各樣的下游任務上去,例如問答、文本生成、機器翻譯等。

與此同時,隨著視覺領域 VQVAE、一些聚類算法等的發(fā)展,以及語音領域上一些離散化方法的發(fā)展,我們實際上可以將視覺數(shù)據(jù)和語音數(shù)據(jù)也轉換成類似語言序列的離散符號的序列表示。由于這種底層數(shù)據(jù)表示的一致性,多模態(tài)任務的建模方法也非??焖俚刳呁@也是多模態(tài)能夠成為人工智能領域一個非常前沿的研究的原因。

在這樣的背景下,本文將深入介紹微軟亞洲研究院最近在兩個多模態(tài)相關的工作,一個是視覺語言預訓練模型,另一個是視覺合成方面的研究。

視覺語言預訓練

相關工作梳理

圖 1


首先回顧下視覺語言預訓練的一些相關工作,如圖 1 所示

首先,對視覺內容的離散化是第一步,一般有三種常見的離散化方式:

  1. pixel input: 以像素為單位將圖像轉換為序列

  2. object input: 先從圖像中抽取若干對象(object)以及對應的特征,然后將其轉換為序列,這是 Faster RCNN 所采用的方式。

  3. patch input: 以圖像塊為單位將圖像轉換為序列

然后,對序列化后的視覺內容進行編碼,常用的方式有:

  1. 卷積神經網絡:屬于比較早期的方式,比如 MSRA 之前提出的 ResNet。

  2. 基于區(qū)域的卷積神經網絡:將圖像中的對象抽取出來作為整體的表示,例如 Faster RCNN 等。

  3. 視覺 Transformer: 使用 Transformer 對圖像進行編碼,例如 MSRA 的 BEiT, Swin, VideoSwin 等。

接著,進行兩個模態(tài)的信息融合與交互:

  1. 點積:例如 CLIP 等,將編碼后的視覺和語言表示通過點積計算相似度等,這是最簡單的一種 V-L 交互方式。

  2. 使用 Transformer 進行交互:將視覺、語言表示輸入到 Transformer 中,使用 Transformer 的自注意力等模塊進行跨模態(tài)交互。早期視覺-語言預訓練技術常采用這種方式。

  3. 混合專家(Mixture-of-Experts, MoE):MoE 最開始主要用于大模型的稀疏化,這里用于多模態(tài)場景,例如 MSRA 的 VLMo 主要的思想是:通過切換特定輸入下的不同的專家(experts),專門進行視覺或者語言的表示。這樣既保證了單模態(tài)下的一些性質,又保證了模型能夠用到多模態(tài)任務上面。

圖2

4.帶有橋塔結構的 Transformer?: 如圖 2 所示,實際上,無論語言的編碼器還是視覺的編碼器,都是分很多層次的,不同層次的表征蘊含著不同層次和不同角度的一些信息和內容。因此,我們的動機就是:除了在最后一層進行信息的融合,在很多中間層也需要一些模態(tài)之間的信息交互,這種融合的形式能夠更好的適配下游任務。

最后,定義訓練目標:

  1. 保留單模態(tài)訓練目標:例如 masked language modeling、masked image modeling、masked region modeling 等。

  2. 匹配:文本-圖像匹配或者文本-視頻匹配。

  3. 對比學習

通過這種方式預訓練優(yōu)化整個模型的參數(shù),讓模型學習 VL 任務的一種底層的數(shù)據(jù)表征,可以通過微調很好地適配到下游任務里面去。

橋塔架構(Bridge-Tower Architecture)

這是 MSRA 最近提出的一個新的視覺-語言預訓練模型,論文已經公開:https://arxiv.org/abs/2206.08657

Bridge-Tower 模型主要的動機就是:不僅僅在最后一層才去做交互,在編碼的中間層,也需要進行跨模態(tài)的交互。

圖3?


模型的結構如圖 3 所示,輸入為文本以及圖像的序列。在模型的前 6 層,仍然采取單獨編碼的方式,即視覺編碼和語言編碼分別采取各自獨立的 Transformer 編碼器,得到各自前六層的中間表示。但是從第 7 層開始到第 12 層,除了語言或者視覺各自的自注意力模塊,還新增了一個用于跨模態(tài)交互的模塊。

以第 7 層為例,我們首先將第 7 層的隱狀態(tài)(hidden states)輸入到 Bridge Layer 里面,然后,一方面通過自注意力(self attention)編碼模態(tài)特定的表示,另一方面,再通過交叉注意力(cross attention)融合對面模態(tài)的表示。最后,將交叉融合后的信息經過前饋神經網絡后,傳到下一層 Bridge 當中去。這樣,就建立了兩個模態(tài)編碼器中間表示之間的交互。

可以看到,實際上這個模型的結構非常簡單,和之前“文本編碼器+視覺編碼器 → 跨模態(tài)融合編碼器”的方式相比,它的參數(shù)量是沒有任何變化的,唯一的變化就是:Bridge-Tower 模型將跨模態(tài)的交互從最頂層降低到了頂部的若干層。這也是該模型最大的一個貢獻點。

圖4


我們還發(fā)現(xiàn),如圖 4 所示,不同的 Bridge 當中,實際上直接相加就是最為有效的方式。另外,我們也對 Bridge 的位置及數(shù)量進行了一系列消融實驗,我們發(fā)現(xiàn),將 Bridge 加到頂部的 6 層就是最優(yōu)的一個配置。

在訓練目標上,因為我們旨在探索這種早期融合機制的有效性,因此沒有過多地進行預訓練任務上的設計,摒棄掉了其他一切可能帶來性能增益的機制。例如,在預訓練時,我們就采取了兩個最為簡單的任務:masked language modeling (MLM)?和 文本-圖像匹配(二分類)(ITM)。

另外,我們預訓練所使用的數(shù)據(jù)集也是非常小的,即標準的 COCO、VG、CC、SBU,總共大約 4 萬張圖片。

圖5

如圖 5,我們在 base (12 層) 和 large (24 層)兩種設置下進行了 VQA 2.0 (視覺問答)的實驗,然后與市面上能夠看到的絕大多數(shù)視覺語言預訓練模型做了一些比較,可以看到,我們的數(shù)據(jù)量是最少的,但是取得了非常好的一個效果。

更多的思考

由于時間關系,我們沒有進行更多的實驗,但值得一提的是,這種雙塔的模型實際上是適配非常多的多模態(tài)任務的。例如在搜索引擎里面,查詢(query)和文檔(document)的匹配,為了保證效率,也是通過雙塔的方式去做的。因此,對于單模態(tài)文本的這類匹配任務,也可以通過這種早期融合(early fusion)機制得到性能上的提升,這個是我們后續(xù)要去做一些驗證的。

另外,我們也做了很多代碼相關的工作。上述技術也可以用于文本到代碼的檢索或者代碼到文本的一些相關工作。這也是我們后續(xù)可以嘗試的點。

圖6

而且,如上面的實驗結果(圖 6)所示,這種橋塔結構的一個很好的性質是:仍然保留了自身單模態(tài)編碼器的前向傳播過程而不受干擾,因為目前的這種架構并沒有一個回饋機制,即把 Bridge 的信息返回到單模態(tài)自身的表示里面。所以我們非常好地發(fā)現(xiàn),通過了多模態(tài)任務預訓練之后,不管是視覺單模態(tài)任務,還是語言單模態(tài)任務,性能的下降都是非常低的。而且在預訓練的過程中,我們沒有去刻意保留原有單模態(tài)性能,仍然做到了這一點。

所以基于這樣的現(xiàn)象,我們反復思考一個問題:這是不是一種非常好的能夠同時去訓練單模態(tài)和多模態(tài)的一個機制??也就是說,在未來如果我們把單模態(tài)的這種預訓練任務也再次加回到我們這種橋塔結構里面去,是不是會讓單模態(tài)的信息也能去借鑒多模態(tài)信息來達到真正意義上的“通過多模態(tài)數(shù)據(jù)和單模態(tài)數(shù)據(jù)增強單模態(tài)的預訓練模型”。

這其實是一個非常重要也本質的問題,因為大家都證明“大數(shù)據(jù)對于單模態(tài)的預訓練任務是非常有效的”。實際上這種不同模態(tài)的數(shù)據(jù)之間,在很多角度或者很多層,是可以有相互連接的。那么我們是不是可以通過這種機制利用其它模態(tài)的數(shù)據(jù)增強某個模態(tài)的性能呢??我覺得這是非常值得探索的問題,即關于多模態(tài)和單模態(tài)之間相關關系相互促進的方向。

視覺合成

相關工作梳理

圖 7


這里我們總結了一些比較典型的視覺合成的工作,如圖 7,比如 OpenAI 的 DALL·E 和 DALL·E 2,Google 最近的 Imagen 和 Parti 等。在我們過去一年多的時間里,我們做了一個名為女媧(NUWA)的模型,它的發(fā)布要早于 DALL·E 2、Imagen 和 Parti. 這個模型主要是對 DALL·E 進行了一個改進。另外,我們最近還做了一個新的模型,叫女媧-infinity。這個模型解決的問題是:之前的模型在生成視覺內容的大小上是有限的,因此女媧-infinity 突破了這一限制,可以支持變長的視覺內容的生成,包括把圖片生成為任意指定大小和分辨率的圖像,以及支持視頻的生成等。

這里先回顧下視覺合成的兩類典型的工作:

1. 基于自回歸 (autoregressive)

圖8


如圖 8?所示,這種方法實際上是基于視覺內容離散化的機制,比如 VQVAE 或者 VQGAN 等?。?這些模型本質上仍然是預訓練模型,不同的是,這些模型針對視覺內容比如圖片,首先通過一個 VQGAN 或者 VQVAE 的編碼器,將其轉換成一個離散符號的序列,序列中每一個視覺 token 對應著一個特定的 patch。?我們雖然不知道這些 token 是否像語言的 word 一樣有一個具體的形式,但是我們可以想象說,這些 token 就是對應 patch 的一種語義表示。

之后,對于解碼器,給定編碼后的離散視覺 token 序列,我們重構 (reconstruct) 原來的圖像。所以本質上,這類模型仍然是一種預訓練模型,經過這種預訓練之后,我們就能夠得到能將視覺內容離散化的一個編碼器和對應的解碼器,這個解碼器可以將離散的視覺 token 轉化為可視的圖像內容。

這種方法的典型工作包括:DALL·E 的第一代,女媧的第一代,以及 Google 最近提出的 Parti 等。?這些模型的方式非常簡單,就是給定一個文本輸入,首先用一個文本的編碼器將其編碼,然后就像 encoder-decoder 框架一樣,用解碼器生成這個輸入序列對應的一個視覺 token 序列,這種生成的過程是自左向右的,因此成為自回歸。之后,給定生成的視覺 token 序列后,再通過一個 VQGAN 的解碼器將其還原為一張圖片。

最后,無論是 DALL·E 2,還是 Parti、Imagen 等,在生成一個分辨率較小的圖像的基礎上,再通過一個超分辨率 (super-resolution) 模型將小圖像轉換為高分辨率的大圖像。但是,這個大圖的大小也是固定的,比如 1024*1024,這是最近若干模型的一個通用的大小。

2. 基于擴散模型 (diffusion model)

圖9


如圖 9 所示,擴散模型的基本思想是:可以通過自身構造數(shù)據(jù)來訓練模型。這包含了正向和反向的兩個過程。正向過程就是:給定一張圖片,通過不斷地加高斯噪聲,如果噪聲足夠多的話,就能夠將其轉換為高斯分布下的隨機噪聲分布的圖像。反向過程就是:從生成的噪聲開始,不斷地降噪 (denoise),不斷地去除當前迭代輪次 (iteration) 里面的噪聲,比如從 到 ?再到 ?直到還原輸入的原始圖片。

DALL·E 2 和 Imagen 都是基于擴散模型的,給定一個輸入的文本,先用文本編碼器編碼文本,得到文本的編碼向量,然后直接輸入到擴散模型的反向過程里面,通過多次迭代來生成最終想要的輸出的圖片。?當然,在 DALL·E 2 里面,它還通過一個先驗模型 (prior model) 將其進一步轉換成一個圖像嵌入 (image embedding)。這一步轉換的主要目的是保證輸出圖像的多樣性。最后,同樣地,生成小圖之后,通過超分辨率模型將其轉換成 1024*1024 的大圖。

NUWA

圖 10


我們的女媧模型實際上是一年前的工作,最近才被 ECCV 2022 正式錄用。所以當初在做該模型的時候,市面上只有 DALL·E 一個工作,因此我們主要和其進行對比。

如圖 10?所示,我們的主要動機是為了解決視頻生成的問題,所以我們引入了一些稀疏的注意力機制。因為視頻是由多幀組成的,是一個變長的機制,如果想要輸出的視頻序列很長的時候,計算復雜度就會變得非常高,無論是在訓練還是在推斷(inference). 所以我們希望通過稀疏注意力機制解決這種計算復雜度高的問題。

圖 11


如圖 11 所示,我們的女媧第一代模型做了 8 種不同類型的任務。主要的創(chuàng)新點是,最近的一些其他模型在分辨率上主要針對 256256 轉換成 10241024 進行設計,不支持視頻,但是我們的女媧模型可以同時支持圖片和視頻的生成。

最近,我們還研發(fā)了女媧-infinity 模型,這個工作同樣是生成高清的圖片,并且可以額外生成對應的視頻。最主要的特色是,這個工作支持變長的生成。?該工作也是基于自回歸進行的,但是我們引入了一個記憶的機制,以及動態(tài)的機制,使得我們能夠在不影響計算復雜度的前提下,仍然支持超大規(guī)模的圖像和視頻的生成。之后 MSRA 會對其進行統(tǒng)一的宣傳,這里不再介紹更多的細節(jié)。

未來方向

圖12


未來我們會在以下3 個方向繼續(xù)探索:

1.?從計算效率出發(fā),建立高效的視覺-語言預訓練模型以及視覺合成模型;

2.?從語言模型增強出發(fā),使用視覺知識增強語言模型,或者使用語言知識增強視覺模型;

3.?從落地角度出發(fā),使用視覺合成預訓練模型開發(fā)下一代應用生態(tài),例如用于設計的 AI,視覺廣告,AR/VR, 卡通/電影生成,游戲等等。

其實我們在和微軟的產品組進行討論的時候也經常遇到一個輕量化的問題,雖然不一定是希望模型變得更小,但是我們希望能夠讓模型變得更快,其實這和輕量化也是密切相關的。因此,未來我們會在小模型,在稀疏機制、并行生成算法等方向上做出進一步的改進。


多模態(tài)自然語言處理最新進展的評論 (共 條)

分享到微博請遵守國家法律
航空| 信丰县| 洱源县| 清远市| 绥宁县| 武安市| 和硕县| 兴安县| 永年县| 邹平县| 景洪市| 沁阳市| 岳阳县| 西林县| 昌都县| 平陆县| 和静县| 绥化市| 繁昌县| 遂川县| 钟山县| 五指山市| 乐业县| 囊谦县| 长顺县| 嘉黎县| 布拖县| 石首市| 遂川县| 临邑县| 仙桃市| 建宁县| 安新县| 蒲城县| 太仓市| 修水县| 温泉县| 获嘉县| 竹山县| 奇台县| 定远县|