Bert在CV领域的应用
一只小狐貍帶你解鎖NLP/ML/DL秘籍
老板老板,聽(tīng)說(shuō)BERT是個(gè)瞎子
此話怎講?
它能理解語(yǔ)言,但是理解不了小夕的自拍!
video-BERT了解一下
喵喵喵?
AI的三大核心板塊(CV/Speech/NLP)近幾年都相繼取得了非常大的發(fā)展和進(jìn)步。但是正所謂成也蕭何,敗也蕭何,深度學(xué)習(xí)一直在能力泛化和魯棒性問(wèn)題上飽受詬病,通用AI之路遙遙無(wú)期。
不過(guò),近期得益于預(yù)訓(xùn)練模型的成功,似乎跨模態(tài)問(wèn)題(VQA、看圖說(shuō)話等)也變得更有所期了。基于預(yù)訓(xùn)練的跨模態(tài)解決方案主要可以分為兩個(gè)分支,一個(gè)是video-linguistic BERT(將視頻數(shù)據(jù)融入BERT),另一個(gè)是visual-linguistic BERT(將image圖片數(shù)據(jù)融入BERT)。最主要的難點(diǎn)都是如何將非文本信息融入到BERT的框架中。本文只涉及video-linguistic BERT。
視頻可以理解為一組快速播放的圖片,其中每一幅圖片定義為幀(frame)。一般處理視頻數(shù)據(jù)首先需要按每秒鐘x幀(fps)的頻率去對(duì)視頻做抽取,然后將n個(gè)連續(xù)的frame組成一個(gè)片段(clip),這樣視頻就被切割成了很多不重疊的片段。對(duì)于每一個(gè)片段clip(包含m個(gè)frame)使用CV領(lǐng)域中pretrained模型(如ResNet等)抽取特征向量(visual features),最終視頻被表示成特征向量的序列。
?
從視頻中抽取出來(lái)的特征向量自然是連續(xù)實(shí)值向量(屬于整個(gè)實(shí)數(shù)空間),和離散的文本有很大的不同。當(dāng)前,將視頻的特征向量注入BERT主要有下面兩種方式:
(1)Pipeline方式:將實(shí)值向量離散化,和文本token對(duì)齊加入到BERT模型中;
(2)端到端的方式:微調(diào)BERT模型結(jié)構(gòu),直接使用實(shí)值向量參與計(jì)算。
話不多說(shuō),小夕將通過(guò)下面兩篇論文分別介紹這兩種方法。后續(xù)閱讀需對(duì)BERT有比較深的了解和認(rèn)識(shí)。有需要可以移步這里,對(duì)BERT進(jìn)行簡(jiǎn)單的復(fù)習(xí)回顧。文末還有彩蛋,不要錯(cuò)過(guò)哦~~
《VideoBERT: A Joint Model for Video and Language Representation Learning》
這是一篇將BERT結(jié)合video來(lái)學(xué)習(xí)跨模態(tài)表示的經(jīng)典之作。該工作將video中提取出的特征向量通過(guò)聚類的方法離散化,繼而在文本token的基礎(chǔ)上增加視覺(jué)token,一起學(xué)習(xí)視覺(jué)和文本信息。
1 方法
1.1 視頻文本數(shù)據(jù)處理(video and language processing)
針對(duì)video的處理,首先從input video每秒中抽取20幀畫面(20 fps),每30幀組成一個(gè)片段。對(duì)每個(gè)clip用pretrained的ConvNet提取特征向量(1024維)。但是由于特征向量屬于整個(gè)R^1024空間,是不可數(shù)的。為了和文本token相對(duì)應(yīng),延續(xù)原始BERT中的MLM任務(wù),作者對(duì)所有提取出的特征向量使用hierarchical k-means做聚類,一共得到20736個(gè)類中心。把類中心作為visual token,每一個(gè)視覺(jué)特征向量都由它屬于的類中心來(lái)表征。
針對(duì)文本的處理,使用現(xiàn)成的語(yǔ)音識(shí)別工具(Automatic Speech Recognition)提取視頻中的文本,利用LSTM-based的語(yǔ)言模型對(duì)其斷句。后續(xù)處理延續(xù)原始的BERT,用WordPieces切詞,詞表大小為3萬(wàn)。
1.2 輸入格式(input format)
經(jīng)過(guò)前面的處理,video中的語(yǔ)言和視覺(jué)信息都變成了離散的token,VideoBERT的輸入格式延續(xù)了原始BERT的設(shè)計(jì),只是增加了[>]這個(gè)特殊的token用來(lái)區(qū)分text token和visual token。
? ? ? ?? ? ? ?
1.3 自監(jiān)督任務(wù)(pretrain)
原始BERT有兩個(gè)自監(jiān)督任務(wù):
(1)cloze(完形填空)/MLM(mask language model):預(yù)測(cè)被mask的text token;
(2)NSP(next sentence prediction):預(yù)測(cè)兩個(gè)句對(duì)是否是連續(xù)的上下句。
第一個(gè)任務(wù)可以很自然的擴(kuò)展到visual token中。像text token一樣,提前mask visual token,利用沒(méi)被mask的text token和visual token預(yù)測(cè)被mask的visual token,是一個(gè)多分類問(wèn)題,使用softmax作為損失函數(shù)。
第二個(gè)任務(wù)NSP在VideoBERT中變成預(yù)測(cè)text sequence和visual sequence是否一致,即兩者是否提取自同一個(gè)視頻。類似的原始BERT,我們從其他視頻數(shù)據(jù)中抽取visual sequence作為負(fù)例,來(lái)自該視頻數(shù)據(jù)的visual sequence作為正例。是一個(gè)二分類問(wèn)題。?
1.4 下游任務(wù)
VideoBERT通過(guò)上述兩個(gè)自監(jiān)督任務(wù)實(shí)際上學(xué)習(xí)了visual-liinguistic的聯(lián)合表示(分布)p(x,y),其中x表示visual sequence,y表示text sequence。這個(gè)聯(lián)合分布可以用在下列三種任務(wù)上:
(1)text-to-video:?根據(jù)文本預(yù)測(cè)視頻,根據(jù)文本自動(dòng)插圖。?
? ? ? ?
(2)video-to-text:?根據(jù)視頻預(yù)測(cè)文本,對(duì)視頻自動(dòng)生成摘要。
(3)unimodal fashion(單一模態(tài)下使用):利用文本或者視頻的邊緣分布,根據(jù)上文預(yù)測(cè)下文。對(duì)文本來(lái)說(shuō)就是我們非常熟悉的語(yǔ)言模型,對(duì)于視頻來(lái)說(shuō)我們可以根據(jù)前面的視頻內(nèi)容預(yù)測(cè)后面可能發(fā)生的事情。
? ? ? ?? ? ? ?
2 實(shí)驗(yàn)
文章實(shí)際設(shè)計(jì)了兩個(gè)下游任務(wù)來(lái)驗(yàn)證學(xué)習(xí)到的跨模態(tài)聯(lián)合表示的有效性。
2.1 看圖說(shuō)話 ? ???
根據(jù)視頻和一個(gè)固定的模版“now let me show you how to [MASK] the [MASK],”?預(yù)測(cè)被mask掉的關(guān)鍵詞(一個(gè)動(dòng)詞和一個(gè)名字)。下圖定性的展示了三個(gè)例子,每個(gè)例子展示了視頻中兩個(gè)片段的類中心,和被預(yù)測(cè)的top verbs和nouns。
? ? ? ?? ? ????? ? ?
表格中的數(shù)據(jù)定量對(duì)比了該任務(wù)在不同方法上的效果。S3D是一個(gè)經(jīng)典的監(jiān)督模型,除了S3D以外的模型都沒(méi)有使用監(jiān)督信號(hào)進(jìn)行訓(xùn)練(zero-shot classification,直接使用pre-trained模型)。BERT(language prior)代表直接使用原始BERT,VideoBERT(language prior)是指在原始BERT基礎(chǔ)上增加視頻數(shù)據(jù)提取出得文本數(shù)據(jù)進(jìn)行學(xué)習(xí),VideoBERT(cross modal)是完整模型并結(jié)合了視頻和文本數(shù)據(jù)進(jìn)行學(xué)習(xí)。對(duì)比實(shí)驗(yàn)結(jié)果可以看到,top-5的準(zhǔn)確率,三種BERT設(shè)定效果不斷提升,驗(yàn)證了數(shù)據(jù)的有效性和多模態(tài)的有效性,最終zero-shot的VideoBERT(cross modal)能夠達(dá)到和有監(jiān)督學(xué)習(xí)的S3D差不多的效果。而top-1的結(jié)果各類BERT稍顯遜色的原因是BERT基于word piece切詞,更有利于open-vocablary的分類問(wèn)題,主要關(guān)注語(yǔ)義上的準(zhǔn)確性而不是精確的match。? ?
2.2 video caption
作者利用該任務(wù)驗(yàn)證VideoBERT作為特征抽取的有效性。使用同樣的transformer encoder-decoder模型生成視頻摘要,不同的是輸入該模型的feature。
(1)使用S3D提取的feature(baseline)
(2)使用VideoBERT提取feature
(3)VideoBERT feature拼接S3D feature(最強(qiáng)廠牌)
? ? ? ?
? ? ? ??? ? ?
從定性的例子中可以看到,使用VideoBERT feature生成的video caption內(nèi)容更加的細(xì)節(jié),更為生動(dòng)具體。從定量的指標(biāo)上來(lái)看,VideoBERT+S3D取得了最好的效果,VideoBERT學(xué)出來(lái)的feature對(duì)下游任務(wù)video caption有很大的提升。? ?
《Learning?Video?Representations?Using?Contrastive?Bidirectional?Transformer》
看了上一篇的工作,小伙伴們可能會(huì)有一個(gè)疑問(wèn),將實(shí)值連續(xù)型的特征向量(visual features)通過(guò)聚類規(guī)整為有限個(gè)類中心,是否會(huì)丟失video中包含的很多細(xì)節(jié)的信息呢(⊙?⊙)?那么,這篇文章就不再使用聚類將實(shí)值連續(xù)型的visual features離散化,而是直接使用實(shí)值向量visual features,通過(guò)模型算法上的微調(diào),實(shí)現(xiàn)BERT的多模態(tài)化。
1 方法
? ? ? ?? ? ? ?
首先上模型全景圖,虛線上面是pretrain階段,虛線下面是下游任務(wù)的fine-tuning。灰色方框表示使用純文本數(shù)據(jù)預(yù)訓(xùn)練BERT模型然后fix。白色黑線方框表示使用純video數(shù)據(jù)預(yù)訓(xùn)練CBT模型,紅色線條部分是使用多模態(tài)數(shù)據(jù)預(yù)訓(xùn)練cross-modal transformer將前面兩者結(jié)合。小夕下面帶大家逐個(gè)揭開(kāi)每個(gè)部分的神秘面紗~~~
1.1 純文本的BERT模型
自監(jiān)督任務(wù)還是原始BERT的MLM,隨機(jī)mask text token利用周圍沒(méi)有被mask的文本進(jìn)行預(yù)測(cè)。
? ? ? ?? ? ??
其中yt為被mask的正確token,y-t表示除去被mask掉yt的text sequence。這個(gè)MLM的損失函數(shù)實(shí)際上是要最大化利用y-t正確預(yù)測(cè)出yt的概率。而在這里根據(jù)y-t預(yù)測(cè)yt的概率被定義為如下。
? ? ? ?? ? ??
其中為經(jīng)過(guò)transformer得到的feature。優(yōu)化目標(biāo)是被mask的word sequence y-t的表示和真實(shí)的yt的embedding相似(共線)。
上述BERT和原始的BERT本質(zhì)上是一樣的,只是用內(nèi)積的形式代替了softmax計(jì)算概率。這一小小的修改和后面visual部分的建模相呼應(yīng),模型結(jié)構(gòu)非常的優(yōu)雅。
1.2 visual CBT模型
基于video數(shù)據(jù)的自監(jiān)督任務(wù)同樣是無(wú)縫銜接的MLM模型,但是因?yàn)関isual feature是連續(xù)的實(shí)值向量,所以作者使用了NCE(noise contrastive estimation )loss:
? ? ? ??? ? ?
? ? ? ??? ? ?
對(duì)比上面的BERT中概率的定義,和NCE的定義是不是超級(jí)相似!????? ??
?是被mask的visual sequence經(jīng)過(guò)visual BERT的輸出。因?yàn)関isual feature不可數(shù),無(wú)法像text部分窮舉所有的負(fù)例,所以通過(guò)負(fù)采樣的方式sample負(fù)例。優(yōu)化目標(biāo)是被mask的visual sequence x-t的表示和真實(shí)的xt的visual feature et相似。
? ? ?
1.3 跨模態(tài)CBT模型
前面介紹了單一模態(tài)下的模塊,針對(duì)既有視頻(從video中提取的visual features記為y=y1:T)和文本(從video中利用ASR提取出的文本token,記為x=x1:T)的數(shù)據(jù),利用它們之間的對(duì)應(yīng)關(guān)系學(xué)習(xí)多模態(tài)交互的表示就交給cross-modal CBT模塊啦~~
雖然visual features y和文本x來(lái)自同一段視頻,但是即使是教學(xué)視頻,它們?cè)诿恳粠?#xff08;frame level)并不是嚴(yán)格對(duì)應(yīng)的,所以我們不能強(qiáng)行要求模型可以通過(guò)xt預(yù)測(cè)yt或者通過(guò)yt預(yù)測(cè)xt。只需要要求它們在sequence level上存在對(duì)應(yīng)關(guān)系即可(說(shuō)人話就是模型可以通過(guò)x預(yù)測(cè)y)。同樣使用NCE loss:
? ? ? ??? ? ?
? ? ? ?? ? ??
分別用visual CBT和BERT模型計(jì)算x和y的表示。
? ? ? ??? ? ?
? ? ? ?? ? ??
帶入cross-modal transformer計(jì)算交互的表示,用一個(gè)淺層的MLP計(jì)算x和y之間的互信息。優(yōu)化目標(biāo)和前面兩個(gè)類似,正例(x,y)之間的互信息大,負(fù)例(x,y‘)互信息小。?
1.4 overall model
整體模型就是上面三個(gè)部分的綜合。三個(gè)部分雖然輸入都稍有差異,但是在算法上是非常一致對(duì)稱的,結(jié)合起來(lái)非常的完美。
? ? ? ??? ? ?
2 實(shí)驗(yàn)
2.1 action recognition
用action recognition作為下游任務(wù)驗(yàn)證visual representaions的有效性。下表的左邊對(duì)比了兩種pretrain策略(Shuffle&Learn 和3DRotNet )和baseline隨機(jī)初始化,在fix feature和finetune的兩種使用方法上在兩個(gè)數(shù)據(jù)集(UCF101和HMDB51)上的效果。實(shí)驗(yàn)結(jié)果表明了本文提出的visual CBT模型的有效性。表的右邊是直接和各類state-of-art的監(jiān)督模型相比,CBT模型也比這些模型有非常明顯的提升。
? ? ? ?
2.2 action anticipation?
文章使用了三個(gè)不同的數(shù)據(jù)集the Breakfast dataset ,the 50Salads dataset和the ActivityNet 200 dataset。不了解action anticipation任務(wù)的可以簡(jiǎn)單認(rèn)為是基于video的多分類任務(wù)就好。在這個(gè)實(shí)驗(yàn)中作者不僅證明了CBT方法比其他已有的方法好,還證明了CBT對(duì)長(zhǎng)video有很好的表示能力。
? ? ? ?? ? ? ?
左邊表列出了CBT和其他幾個(gè)方法的對(duì)比,CBT在上述三個(gè)任務(wù)上都一致優(yōu)于其他方法(三個(gè)實(shí)驗(yàn)數(shù)據(jù)擺上來(lái),非常讓人信服呀),其中self-super=Y表示該方法使用pretrain-finetune的方式,self-super=N表示該方式是end-to-end訓(xùn)練的。
右邊表則對(duì)比了不同視頻的長(zhǎng)度下,不同模型的效果。在三個(gè)數(shù)據(jù)機(jī)上CBT都一致明顯優(yōu)于其他兩個(gè)baseline(AvgPool和LSTM),并且隨著video長(zhǎng)度的增加,CBT的效果是越來(lái)越好的。一般的模型都會(huì)對(duì)長(zhǎng)文本或者長(zhǎng)video失效,比如上表中兩個(gè)baseline 方法,但是CBT可以不受長(zhǎng)度的限制,反而能從更長(zhǎng)的video中學(xué)到更好的表示,使得模型效果變好。(斯國(guó)一!!????)
2.3 other video tasks
? ? ? ?
文章還對(duì)比了video captioning 和 action segmentation 這兩個(gè)任務(wù),CBT在video captioning上比前面提到的VideoBERT也有所提升,這個(gè)提升可能就是優(yōu)化了聚類步驟造成信息丟失的問(wèn)題吧。
?
【這是彩蛋????】
公眾號(hào)后臺(tái)回復(fù)【videoBERT】獲取論文原文(附小夕自己閱讀時(shí)的筆記哦)
參考筆記讀論文,更簡(jiǎn)單~~
可
能
喜
歡
Stanford CS224n追劇計(jì)劃(附追劇計(jì)劃詳細(xì)攻略)
如何擴(kuò)充知識(shí)圖譜中的同義詞
中文分詞的古今中外,你想知道的都在這里
深度神經(jīng)網(wǎng)絡(luò)為何會(huì)有災(zāi)難性遺忘?如何進(jìn)行有效的持續(xù)學(xué)習(xí)?
模型訓(xùn)練太慢?顯存不夠用?混合精度訓(xùn)練了解一下
萬(wàn)萬(wàn)沒(méi)想到,我的煉丹爐玩壞了
夕小瑤的賣萌屋
_
關(guān)注&星標(biāo)小夕,帶你解鎖AI秘籍
訂閱號(hào)主頁(yè)下方「撩一下」有驚喜
總結(jié)
以上是生活随笔為你收集整理的Bert在CV领域的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 万能的BERT连文本纠错也不放过
- 下一篇: NLP领域的首次Hard Label黑盒