Meta AI 發(fā)布 data2vec!統(tǒng)一模態(tài)的新里程碑!

文 | ZenMoore
編 | 小軼轉(zhuǎn) |?夕小瑤的賣萌屋
如果讓大家舉一個(gè)最成功的自監(jiān)督模型的例子,尤其對(duì)于各位 NLPer,肯定毫不猶豫地祭出我大 BERT. 想當(dāng)年 BERT 打了一個(gè)名叫 MLM (Masked Language Model) 的響指,直接成了 NLP 滅霸。
視覺界、語(yǔ)音界聞聲而來(lái),紛紛開啟了 BERT 的視覺化、語(yǔ)音化的改造。
視覺界,以 patch 或者像素類比 NLP 的 token;語(yǔ)音界,雖然不能直接找到 token 的替代,但是可以專門做 quantification 硬造 token.
但是,思考這樣一個(gè)問題:為什么這些圖像或者語(yǔ)音模態(tài)的自監(jiān)督,非要一股 NLP 味兒呢?
要知道,雖然確實(shí)有生物學(xué)的研究表明,人類在進(jìn)行視覺上的學(xué)習(xí)時(shí),會(huì)使用與語(yǔ)言學(xué)習(xí)相似的機(jī)制,但是,這種 learning biases 并不一定完全可以泛化到其他模態(tài)。
所以有沒有什么辦法,能夠把不同模態(tài)的自監(jiān)督表示學(xué)習(xí)統(tǒng)一起來(lái),不再是仿照 MLM 做 MIM (Masked Image Modelling)、MAM (Masked Audio Modelling)?
昨天,Meta AI (原 Facebook)發(fā)布最新自監(jiān)督學(xué)習(xí)框架 Data2Vec,立即在整個(gè) AI 圈瘋狂刷屏。這份工作或許預(yù)示著——多模態(tài)的新時(shí)代,即將到來(lái)。
本文就為大家簡(jiǎn)單解讀一下,這份 AI 圈的今日頭條,究竟做了些什么。
論文標(biāo)題:
Data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language
論文作者:
Alexei Baevski, Wei-Ning Hsu, Qiantong Xu, Arun Babu, Jiatao Gu, Michael Auli
Meta AI, SambaNova
論文鏈接:
https://ai.facebook.com/research/data2vec-a-general-framework-for-self-supervised-learning-in-speech-vision-and-language
模型算法

編碼、掩碼
首先,對(duì)于三個(gè)不同的模態(tài):文本、圖像、語(yǔ)音,采用不同的編碼方式以及掩碼方式。
模態(tài)特定的編碼方式 :
文本模態(tài) : token embedding 圖像模態(tài):參考 ViT[1, 2],以 image patch 為單位,經(jīng)過一個(gè)線性變換(linear transformation) 語(yǔ)音模態(tài):使用多層一維卷積對(duì) waveform 進(jìn)行編碼[3]。
模態(tài)特定的掩碼方式:
文本模態(tài):對(duì) token 掩碼 圖像模態(tài):block-wise masking strategy [2] 語(yǔ)音模態(tài):對(duì)語(yǔ)音模態(tài)來(lái)說,相鄰的音頻片段相關(guān)性非常大,所以需要對(duì) span of latent speech representation 進(jìn)行掩碼 [3]
掩碼符為訓(xùn)練后得到的 MASK embedding token,而不是簡(jiǎn)單的 MASK token,原因且看下文。
Student : 模型訓(xùn)練
之后,在 student-mode 中,根據(jù) masked input 對(duì)掩碼位置的表示進(jìn)行預(yù)測(cè)。需要注意的是,這里模型預(yù)測(cè)的并不是掩碼位置(如 text token, pixel/patch, speech span),而是掩碼位置經(jīng)過模型編碼后的表示。因?yàn)檫@個(gè)表示經(jīng)過了 Attention/FFN 等一系列模塊的處理,自然是模態(tài)無(wú)關(guān)的,不僅如此,它還是連續(xù)的(continuous),編碼了豐富的上下文語(yǔ)義(contextualized)。
如果把輸入空間比作物理世界,表示空間比作精神空間。那么,作者相當(dāng)于直接在“精神空間”中想象被遮住的部分(mask),頗有一種“夢(mèng)里看花”的感覺。上次見到這“夢(mèng)一般”的算法,還是 Hinton 老爺子的 Sleep-Wake[4].
具體地,訓(xùn)練目標(biāo)為如下的 smooth L1 loss:
其中, 為使用 teacher model 構(gòu)建的 training target; 為 student model 在時(shí)刻 的輸出; 是超參,用來(lái)調(diào)整 L1 損失的平滑度。
Teacher : 數(shù)據(jù)構(gòu)建
最后,還有一個(gè)問題,既然變成了對(duì)表示的掩碼而非對(duì)原輸入的掩碼,那么訓(xùn)練數(shù)據(jù)怎么來(lái)呢?
這就是 teacher-mode 的妙用。與 student-mode 不同的是,teacher-mode 的輸入不再是 masked input,而是 original input, 這樣,掩碼位置對(duì)于 teacher 來(lái)說就是可見的,自然能夠得到掩碼位置對(duì)應(yīng)的表示,而這個(gè)表示,就是 student-mode 的 training target.
當(dāng)然,為了保證“師生”兩個(gè)模型的一致性,兩者的參數(shù)是共享的。另外,又為了在訓(xùn)練初期讓 Teacher 的參數(shù)更新更快一些,作者采用了一個(gè)指數(shù)滑動(dòng)平均(EMA):.
其中, 是 Teacher 的參數(shù), 是 Student 的參數(shù), 類似于學(xué)習(xí)率,也是一個(gè)帶有 scheduler 的參數(shù)。
具體地,training target 這么構(gòu)建(按步驟):
找到 student-mode 輸入中被 mask 掉的 time-step 計(jì)算 teacher network 最后 K 層 transformer block 的輸出: 歸一化 : 平均 : , 即 training target.
對(duì)于第三步的歸一化:語(yǔ)音模態(tài)采用 instance normalization 文本和圖像模態(tài)采用 parameter-less layer normalization
Representation Collapse
在實(shí)驗(yàn)中,作者還遇到了 Representation Collapse 的問題:模型對(duì)于所有掩碼片段輸出非常相似的 representation.
這個(gè)已經(jīng)有好多解決辦法啦~ 對(duì)于本文,有以下幾種情況:
學(xué)習(xí)率太大或者其 warmup 太短:通過調(diào)參解決 指數(shù)滑動(dòng)平均太慢了:還是調(diào)參 對(duì)于相鄰 target 相關(guān)性強(qiáng)的模態(tài)或者掩碼片段較長(zhǎng)的模態(tài) (比如語(yǔ)音模態(tài)):設(shè)置 variance 罰項(xiàng)[5],或者歸一化[6],歸一化的效果更好一些。 而對(duì)于 targets 相關(guān)性不那么強(qiáng)的模態(tài)例如 NLP/CV 等,momentum tracking 就足夠。
與同類工作的對(duì)比
與其他 NLP 自監(jiān)督算法的對(duì)比:
和 BERT 不同,本文預(yù)測(cè)的并不是離散 token, 而是 continuous/contextualized representation.
好處1: target 不是 predefined (比如有預(yù)定義的詞表等), target set 也是無(wú)限的 (因?yàn)槭沁B續(xù)的),因此可以讓模型更好的適配特定的輸入
好處2:考慮了更多上下文信息
與其他 CV 自監(jiān)督算法的對(duì)比:
與 BYOL[6]/DINO[7] 等:本文新增了掩碼預(yù)測(cè)任務(wù),而且是對(duì)多層進(jìn)行回歸(即參數(shù) K) 與 BEiT[2]/MAE[8] 等帶掩碼預(yù)測(cè)任務(wù)的算法:本文對(duì) latent representation 進(jìn)行預(yù)測(cè)
與其他 Speech 自監(jiān)督算法的對(duì)比:
與 Wav2vec2.0[3]/HuBERT[9] 等 : 其他工作一般需要另外預(yù)測(cè) speech 中的離散單元(或聯(lián)合學(xué)習(xí)或交互學(xué)習(xí)),而本文不需要 這種 quantification.
與多模態(tài)預(yù)訓(xùn)練的對(duì)比:
本文工作重點(diǎn)不在于多模態(tài)任務(wù)或者多模態(tài)訓(xùn)練,而在于如何把不同模態(tài)的自監(jiān)督學(xué)習(xí)目標(biāo)統(tǒng)一起來(lái)。
實(shí)驗(yàn)結(jié)果
計(jì)算機(jī)視覺

實(shí)驗(yàn)任務(wù):Image Classification
實(shí)驗(yàn)結(jié)論:可以看到本文工作有較明顯的改進(jìn)
語(yǔ)音

實(shí)驗(yàn)任務(wù):Automatic Speech Recognition
實(shí)驗(yàn)結(jié)論:改進(jìn)很明顯
Natural Language Processing

wav2vec 2.0 masking : masking span of four tokens[3]
實(shí)驗(yàn)任務(wù):GLUE
實(shí)驗(yàn)結(jié)果:作者僅僅對(duì)比了 19 年的兩個(gè) baseline, 說明在文本模態(tài)上的改進(jìn)效果仍然受限,但是這個(gè)分?jǐn)?shù)也非常好了
Ablation 1 : layer-averaged targets

這也是和 BYOL[6]/DINO[7] 等模型的一大區(qū)分:對(duì)多層進(jìn)行回歸
從圖表可見,比起只使用 top layer, 平均多層輸出來(lái)構(gòu)建 target 是很有效的!
Ablation 2 : 使用 Transformer 的哪一層?

基于語(yǔ)音模態(tài)進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)使用 FFN 層輸出最有效,使用自注意力模塊的輸出基本沒用。原因:自注意力模塊在殘差連接之前,得到的 feature 具有很大的偏差(bias)。
寫在最后
也許,在表示空間中而非輸入空間中進(jìn)行掩碼預(yù)測(cè)的自監(jiān)督表示學(xué)習(xí),是自監(jiān)督未來(lái)的重要方向!
不過,作者也指出 Data2Vec 的一大局限:編碼方式以及掩碼方式仍然是 modality-specific 的。能否使用類似于 Perceiver[10] 的方式直接在 raw data 上進(jìn)行操作?或者是否真的有必要統(tǒng)一各個(gè)模態(tài)的 encoder 呢?
猶記得賣萌屋作者群里有過這么一個(gè)分享,是 Yoshua Bengio 等在 EMNLP'20 的文章[11],里面界定了 NLP 發(fā)展的五個(gè)階段:

毋庸置疑,多模態(tài)的火熱標(biāo)志著我們正在進(jìn)入第三個(gè)階段:多模態(tài)時(shí)代。
Data2Vec 巧妙地使用“夢(mèng)里看花”的方式,讓我們看到了自監(jiān)督的強(qiáng)大威力,也讓我們意識(shí)到模態(tài)統(tǒng)一大業(yè)就在眼前!也許,現(xiàn)在的 Data2Vec,只是一顆不能發(fā)揮全部威力的寶石,就像 Word2Vec 一樣,但相信在不久的將來(lái),從 Data2Vec 出發(fā),能夠看到一統(tǒng)多模態(tài)的滅霸,就像 BERT 那樣!山雨欲來(lái),風(fēng)滿樓!
萌屋作者:ZenMoore
來(lái)自北航中法的本科生,數(shù)學(xué)轉(zhuǎn)碼 (AI),想從 NLP 出發(fā)探索人工認(rèn)知人工情感的奧秘... 個(gè)人主頁(yè)是 zenmoore.github.io, 知乎 ID 是 ZenMoore, 微信號(hào)是 zen1057398161, 嚶其鳴矣,求其友聲!
作品推薦
[1] An image is worth 16x16 words: Transformers for image recognition at scale.
https://arxiv.org/abs/2010.11929[2] Beit: BERT pre-training of image transformers.
https://arxiv.org/abs/2106.08254[3] Baevski, A., Zhou, Y., Mohamed, A., and Auli, M. wav2vec 2.0: A framework for self-supervised learning of speech representations. In Proc. of NeurIPS, 2020b
[4] The wake-sleep algorithm for unsupervised neural networks
https://www.cs.toronto.edu/~hinton/csc2535/readings/ws.pdf[5] Vicreg: Varianceinvariance-covariance regularization for self-supervised learning.
https://arxiv.org/abs/2105.04906[6] Bootstrap your own latent: A new approach to self-supervised learning
https://arxiv.org/abs/2006.07733[7] Emerging Properties in Self-Supervised Vision Transformers
https://arxiv.org/abs/2104.14294[8] Masked Autoencoders Are Scalable Vision Learners
https://arxiv.org/abs/2111.06377[9] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
https://arxiv.org/abs/2106.07447[10] Perceiver: General Perception with Iterative Attention
https://arxiv.org/abs/2103.03206[11] Experience Grounds Language
https://arxiv.org/abs/2004.10151

萌屋作者:ZenMoore