











關(guān)鍵詞:視頻描述生成;模型壓縮;輕量化;知識(shí)蒸餾;預(yù)訓(xùn)練模型
中圖分類號(hào):TP391. 1 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
文章編號(hào):1003-3106(2024)11-2547-11
0引言
視頻描述生成是計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理中一項(xiàng)具有挑戰(zhàn)性的任務(wù),旨在生成給定視頻內(nèi)容的文本描述[1-3],能為視覺(jué)受損或聽力受損的人士提供無(wú)障礙服務(wù)、自動(dòng)化內(nèi)容審查系統(tǒng)識(shí)別不當(dāng)或違規(guī)內(nèi)容、為非母語(yǔ)觀眾自動(dòng)生成字幕描述等[4]。視頻描述生成的應(yīng)用十分廣泛,包括視頻內(nèi)容推薦、視頻搜索與分類、視頻標(biāo)簽生成、視頻剪輯與編輯。
視頻描述任務(wù)可以分為密集視頻描述和通用視頻描述,二者的區(qū)別主要在于任務(wù)目標(biāo)的廣度和深度。密集視頻描述是一個(gè)更具有挑戰(zhàn)性的任務(wù),它的視頻內(nèi)容包括多個(gè)事件,相對(duì)來(lái)說(shuō)更復(fù)雜。Krishna 等[5]提出了一個(gè)全新的密集視頻描述算法,使用處理模塊(Proposals Module)和描述模塊(Cap-tioning Module)對(duì)密集視頻問(wèn)題進(jìn)行描述。Yang等[6]提出了一個(gè)多模態(tài)的單階段密集事件描述模型Vid2Seq,允許它無(wú)縫地預(yù)測(cè)相同輸出序列中的事件邊界和文本描述。
多模態(tài)的視頻描述模型旨在利用不同的數(shù)據(jù)來(lái)源提供更精確、更全面、更豐富的視覺(jué)描述,提高視頻理解的準(zhǔn)確性和效率。Luo 等[7]提出了UniVL 模型(一種統(tǒng)一的基于多模態(tài)理解和生成的視頻、語(yǔ)言預(yù)訓(xùn)練模型),包括2 個(gè)單模態(tài)編碼器,一個(gè)交叉編碼器和一個(gè)帶有變換器(Transformer)主干的解碼器,使用視頻幀特征和由語(yǔ)音轉(zhuǎn)化的文本信息作為輸入。設(shè)計(jì)了5 個(gè)訓(xùn)練目標(biāo)和2 種訓(xùn)練策略以使UniVL 模型的訓(xùn)練過(guò)程更有效。
在解決視頻描述生成問(wèn)題時(shí),使用深度學(xué)習(xí)[8-9],具有一些優(yōu)勢(shì)和特點(diǎn)。傳統(tǒng)方法主要依賴于手工設(shè)計(jì)的特征提取器和規(guī)則,而深度學(xué)習(xí)可以通過(guò)端到端的學(xué)習(xí)從原始數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征表示和模式。然而,基于深度學(xué)習(xí)的視頻描述生成模型的實(shí)現(xiàn)需要巨大的算力資源予以支撐,難以部署和應(yīng)用于日益普及的資源受限制的嵌入式設(shè)備。因此,研究輕量化的視頻描述生成模型變得十分必要。
模型壓縮技術(shù)能夠有效減小深度學(xué)習(xí)模型的大小和復(fù)雜度,其中一種代表性的方法是知識(shí)蒸餾[10-13]。知識(shí)蒸餾通過(guò)將復(fù)雜模型的知識(shí)傳遞給簡(jiǎn)化模型,來(lái)提高模型的性能和泛化能力。視頻描述生成屬于自然語(yǔ)言和計(jì)算機(jī)視覺(jué)的交叉領(lǐng)域,與之相同的圖像描述生成已經(jīng)有很多模型壓縮算法的相關(guān)工作,而視頻描述任務(wù)壓縮的相關(guān)研究幾乎沒(méi)有。輕量化視頻描述模型面臨的主要挑戰(zhàn)有:① 難以在壓縮率和生成質(zhì)量上平衡,在大部分模型壓縮工作中,壓縮過(guò)后的模型在性能和精度上都有著很大幅度的下降;② 算法的泛化性較差,對(duì)于不同大小、種類的數(shù)據(jù)集可能需要完全不同的壓縮算法。
為了解決上述問(wèn)題,本文提出了一種視頻描述輕量化模型構(gòu)造方案,包括輕量化模型的構(gòu)建以及采用知識(shí)蒸餾的方法提高其性能。具體而言,本文通過(guò)減少模型子模塊的層數(shù)和參數(shù)剪枝的壓縮方法大幅減小了參數(shù)量;再采用知識(shí)蒸餾,通過(guò)提出合適的損失函數(shù)指導(dǎo)學(xué)生模型的訓(xùn)練,達(dá)到提高性能的效果。本文選用UniVL模型作為基準(zhǔn)模型,使用大規(guī)模與訓(xùn)練從而學(xué)習(xí)到豐富的視覺(jué)和語(yǔ)言知識(shí)。UniVL 模型在視頻描述生成任務(wù)上表現(xiàn)突出,足以擔(dān)當(dāng)知識(shí)蒸餾中的教師模型。本文針對(duì)通用視頻描述生成和密集視頻描述生成,構(gòu)建2 個(gè)輕量化模型,這2 個(gè)描述任務(wù)的輕量化模型都采用和UniVL 教師模型相同的架構(gòu),但內(nèi)部模塊的層數(shù)不同,并采用不同的壓縮策略。
實(shí)驗(yàn)結(jié)果表明,本文模型的參數(shù)量壓縮了3/4,同時(shí)性能指標(biāo)的取值下降不超過(guò)10% 。針對(duì)不同類型的數(shù)據(jù)集,本文的壓縮方案可以經(jīng)過(guò)微調(diào)進(jìn)行移植,具有一定的泛化性。以下是本文的2 個(gè)主要貢獻(xiàn):
① 本文針對(duì)不同的描述任務(wù)提出2個(gè)視頻描述輕量化模型,在結(jié)構(gòu)上與基準(zhǔn)模型保持相同,有利于使用知識(shí)蒸餾讓輕量化模型更容易學(xué)習(xí)和泛化,同時(shí)方便對(duì)其進(jìn)行提升性能的操作。輕量化模型的壓縮幅度可以達(dá)到基準(zhǔn)模型的3/4。
② 對(duì)于壓縮過(guò)后的輕量化模型,本文采用知識(shí)蒸餾方法進(jìn)行優(yōu)化,通過(guò)計(jì)算輸入、注意力圖矩陣和輸出層的蒸餾指導(dǎo)模型進(jìn)行訓(xùn)練,使輕量化模型充分地學(xué)習(xí)到教師模型的知識(shí),達(dá)到提升輕量化模型性能的效果。
1 基準(zhǔn)模型架構(gòu)
本文以UniVL 模型[7]作為基準(zhǔn)模型,它是一個(gè)在HowTo100M[14]數(shù)據(jù)集上通過(guò)多模態(tài)自監(jiān)督學(xué)習(xí)預(yù)訓(xùn)練的視頻描述生成模型,適用于視頻理解和文本生成。UniVL 模型由基于Transformer 的模塊組成,包括2個(gè)單模態(tài)編碼器、1個(gè)融合編碼器和1個(gè)解碼器。2個(gè)單模態(tài)編碼器分別負(fù)責(zé)處理編碼視覺(jué)信息和文本信息,融合編碼器負(fù)責(zé)將2個(gè)模態(tài)的信息對(duì)齊融合,由解碼器輸出描述結(jié)果。對(duì)于處理文本的編碼器,UniVL 使用詞嵌入方法處理的30 522 個(gè)標(biāo)記(token)詞匯表輸入到BERT 模型中。對(duì)于處理視頻的視頻編碼器,UniVL 使用的是經(jīng)過(guò)S3D 模型提取到3D 特征[15],再將其輸入到一個(gè)Transformer 的編碼器中提取3D 特征的序列信息。2 個(gè)模態(tài)的信息經(jīng)過(guò)特征融合再通過(guò)解碼器輸出描述內(nèi)容。本文將在基準(zhǔn)模型的基礎(chǔ)上構(gòu)建輕量化模型,同時(shí)提出隱藏層、注意力層和解碼器共同指導(dǎo)的知識(shí)蒸餾優(yōu)化策略,使用這些損失函數(shù)對(duì)輕量化模型進(jìn)行優(yōu)化,使其性能逼近基準(zhǔn)模型,表達(dá)能力得到提升。
2 輕量化模型的構(gòu)建
本文構(gòu)建輕量化模型的標(biāo)準(zhǔn)主要根據(jù):① 模型需要足夠輕量化;② 模型方便學(xué)習(xí)到教師模型的高級(jí)知識(shí),以配合知識(shí)蒸餾使其表達(dá)能力提升。降低Transformer 的復(fù)雜度,可以考慮減少層數(shù)、減少注意力頭數(shù)、減少隱藏層維度、降低詞嵌入維度和正則化剪枝等方法。由于模型的整體架構(gòu)是基于Transformer 的多模態(tài)模型,要使模型的整體架構(gòu)不變,其中每個(gè)模態(tài)的一些固定組成部分就需要保留,例如視頻編碼器中的注意力(Attention)層、前饋網(wǎng)絡(luò)層和歸一化層等,這些層是能夠滿足視頻描述任務(wù)的必要組件。所以本文的壓縮層面確定在各個(gè)模態(tài)的層級(jí)。下面本文將探討針對(duì)基準(zhǔn)模型的輕量化模型的最小模型架構(gòu)。從基準(zhǔn)模型出發(fā),不斷減少各個(gè)模塊的層數(shù),大致實(shí)驗(yàn)結(jié)果如表1所示。
V、T、C、D 分別表示視頻編碼器、文本編碼器、融合編碼器、融合解碼器,# P 表示模型參數(shù)量,BLEU3、BLEU4 表示描述任務(wù)的評(píng)價(jià)指標(biāo)分?jǐn)?shù),分?jǐn)?shù)越高說(shuō)明性能越好,BLEU4(KD)表示輕量化模型利用知識(shí)蒸餾算法進(jìn)行優(yōu)化過(guò)后的性能。由表1可以看出,由于預(yù)訓(xùn)練模型提供的強(qiáng)大先驗(yàn)知識(shí),在保持原有的教師模型結(jié)構(gòu)的同時(shí)減少各個(gè)模塊的層數(shù)對(duì)模型的表達(dá)能力影響很小,而參數(shù)量的下降則是顯而易見(jiàn)的,各個(gè)模塊都為1 層的輕量化模型的參數(shù)量能夠達(dá)到教師模型的1 / 4。當(dāng)教師模型和學(xué)生模型的規(guī)模差距不大時(shí),知識(shí)蒸餾的優(yōu)化策略就很難發(fā)揮作用,意味著學(xué)生模型很難從教師模型中學(xué)到知識(shí)。BLEU4(KD)列參數(shù)量減小到原來(lái)的一半才能體現(xiàn)出知識(shí)蒸餾的優(yōu)化效果。由此可以得出結(jié)論:模型規(guī)模(深度)差距越大的模型之間使用知識(shí)蒸餾策略可以達(dá)到越好的效果。
因此,本文確定能滿足視頻描述任務(wù)的輕量化模型的各個(gè)模塊層數(shù)為1,這樣可以保證輕量化模型經(jīng)過(guò)知識(shí)蒸餾優(yōu)化后達(dá)到最理想的性能。所以本文直接減少教師模型的層數(shù)。考慮到相同架構(gòu)的模型之間能夠利用知識(shí)蒸餾技術(shù)更好地學(xué)習(xí)到知識(shí),本文的視頻描述算法的輕量化模型采用和基準(zhǔn)模型UniVL 一樣的架構(gòu),同樣由文本編碼器、視頻編碼器、融合編碼器和融合解碼器組成。輕量化模型架構(gòu)及與教師模型的規(guī)模關(guān)系和指導(dǎo)關(guān)系如圖1 所示。這種方法相較于其他方法,在保證輕量化模型的基本架構(gòu)和教師模型一致的情況下,可以更為顯著地提高計(jì)算效率,同時(shí)可以體現(xiàn)和教師模型之間的差距,使得蒸餾效果達(dá)到最佳,從而提高模型性能。由于輕量化模型由教師模型壓縮獲得,本文的輕量化模型將沿用教師模型5 個(gè)任務(wù)的損失函數(shù)。教師模型利用蒸餾損失(Distill Loss)來(lái)指導(dǎo)輕量化模型進(jìn)行訓(xùn)練,所以輕量化模型需要加上額外的蒸餾損失共同作用,也就是本文采用的主要優(yōu)化手段。
2.1通用視頻描述數(shù)據(jù)集的輕量化模型
對(duì)于通用視頻描述數(shù)據(jù)集,因?yàn)橐曨l時(shí)長(zhǎng)短、包含的事件獨(dú)立且內(nèi)容簡(jiǎn)單,往往不需要太復(fù)雜的模型就可以很好地完成描述任務(wù)。而對(duì)于密集視頻描述數(shù)據(jù)集,模型的參數(shù)量和復(fù)雜度需要適當(dāng)增加,以保證描述效果。因此,本文針對(duì)上述2 類數(shù)據(jù)集分別構(gòu)建不同的輕量化模型,將通過(guò)減少模型子模塊的層數(shù)和參數(shù)剪枝2種壓縮方式來(lái)構(gòu)建這2種不同復(fù)雜度數(shù)據(jù)集的輕量化模型。
本文將基準(zhǔn)模型作為教師模型,由于采用預(yù)訓(xùn)練模型進(jìn)行初始化,模型已經(jīng)具有一些底層的先驗(yàn)知識(shí)。對(duì)于通用視頻描述數(shù)據(jù)集的輕量化模型(學(xué)生模型),不僅需要將子模塊的層數(shù)減少,還需要對(duì)文本編碼器的嵌入(embedding)層做剪枝。將子模塊的層數(shù)減少可以大幅度降低模型的復(fù)雜度,實(shí)現(xiàn)輕量化。對(duì)嵌入層做剪枝操作主要是考慮到在一個(gè)龐大的語(yǔ)料庫(kù)中,很少的詞就能覆蓋大部分句子,而通用描述模型的描述內(nèi)容往往不會(huì)很復(fù)雜,所以可以根據(jù)詞頻來(lái)適當(dāng)剪枝模型。
關(guān)于剪枝算法,本文采用類似Adaptivesoftmax[16]的思想,突出了自適應(yīng)嵌入剪枝,該方法根據(jù)詞頻將詞匯表劃分成幾個(gè)區(qū)間,然后根據(jù)不同詞頻的區(qū)間分配剪枝閾值t,權(quán)重w 取絕對(duì)值后小于閾值的部分用0 進(jìn)行填充,大于閾值的部分保留權(quán)重值。剪枝閾值t 直接決定了剪枝掉的權(quán)重個(gè)數(shù),再根據(jù)剩下的權(quán)重個(gè)數(shù)填充維度。將權(quán)重值為0 的參數(shù)去掉。按第一個(gè)維度進(jìn)行維度匹配,達(dá)到減少非重要參數(shù)的效果,如式(2)所示。這樣可以降低低頻詞所占用的學(xué)習(xí)資源,使訓(xùn)練更高效地進(jìn)行。
2.2密集視頻描述數(shù)據(jù)集的輕量化模型
密集視頻描述數(shù)據(jù)集的視頻片段往往時(shí)長(zhǎng)較長(zhǎng),包含多個(gè)獨(dú)立的事件,模型需要學(xué)習(xí)到的知識(shí)較多,所以模型相對(duì)來(lái)說(shuō)也較復(fù)雜。本文在通用視頻描述數(shù)據(jù)集的學(xué)生模型上保留了embedding 層的完整性,未對(duì)其做剪枝。高級(jí)語(yǔ)意的學(xué)習(xí)依舊采用知識(shí)蒸餾的方式,通過(guò)教師模型的軟標(biāo)簽指導(dǎo)學(xué)生模型進(jìn)行訓(xùn)練。這里的教師模型不同于通用視頻描述數(shù)據(jù)集的教師模型,因?yàn)樾枰獢M合更加復(fù)雜的密集視頻數(shù)據(jù)集,具有更深的結(jié)構(gòu)來(lái)保證其能夠更好地掌握語(yǔ)意特征。
無(wú)論是通用視頻描述數(shù)據(jù)集還是密集視頻描述數(shù)據(jù)集,由于每個(gè)模塊的層數(shù)降低,導(dǎo)致模型無(wú)法很好地學(xué)習(xí)到高級(jí)語(yǔ)意信息,學(xué)生模型必然會(huì)在精度上受到影響,本文通過(guò)知識(shí)蒸餾的方式用教師模型指導(dǎo)學(xué)生模型進(jìn)行訓(xùn)練,讓學(xué)生模型能夠?qū)W習(xí)到數(shù)據(jù)的復(fù)雜結(jié)構(gòu)和高級(jí)特征,具有更好的表達(dá)能力。
2.3訓(xùn)練與優(yōu)化策略
輕量化模型與教師模型的訓(xùn)練過(guò)程的區(qū)別在于多增加了一組蒸餾損失函數(shù)進(jìn)行訓(xùn)練。首先由不同模態(tài)的編碼器處理的視頻文本對(duì)作為輸入,輸入到融合編碼器中實(shí)現(xiàn)不同模態(tài)的數(shù)據(jù)交互、對(duì)齊和融合。對(duì)于通用視頻描述數(shù)據(jù)集,最大的文本標(biāo)記輸入為48,最大視頻特征輸入為48。對(duì)于密集視頻描述數(shù)據(jù)集,最大的文本標(biāo)記輸入為128,最大視頻特征輸入為96。編碼器、解碼器都是用Transformer 結(jié)構(gòu),每層都包括12 個(gè)注意力頭,向量維度為768。最后的文本描述階段使用大小為5 的beam search方法來(lái)處理長(zhǎng)短不同的生成結(jié)果。這樣模型就能從帶有掩膜的視頻和文本中學(xué)到完整的信息。
教師模型通過(guò)5 個(gè)任務(wù)進(jìn)行預(yù)訓(xùn)練,包括視頻- 文本聯(lián)合(joint )、條件掩碼語(yǔ)言模型(Conditioned Masked Language Model,CMLM)、條件掩碼幀模型(Conditioned Masked Frame Model,CM-FM)、視頻-文本對(duì)齊(Alignment,Align)和語(yǔ)言生成任務(wù)(Decoder)。教師模型通過(guò)優(yōu)化損失函數(shù)的總和,同時(shí)為5 個(gè)任務(wù)訓(xùn)練模型,本文的輕量化模型也采用了同樣的訓(xùn)練策略,損失函數(shù)為:
本文的優(yōu)化策略主要是設(shè)計(jì)基于知識(shí)蒸餾的損失函數(shù),優(yōu)化損失函數(shù)的設(shè)計(jì)原則應(yīng)該包括:① 考慮能夠度量輕量化模型與復(fù)雜模型之間的差異;② 考慮復(fù)雜模型的輸出作為額外的知識(shí),即軟標(biāo)簽提供的額外知識(shí);③ 考慮控制模型輸出平滑程度的參數(shù)溫度的設(shè)置。本文的蒸餾策略類似于TinyBert[17],使用文本編碼器和視頻編碼器的隱藏層輸出、注意力輸出和解碼器的輸出作為知識(shí),3 種類型的損失共同指導(dǎo)學(xué)生模型進(jìn)行訓(xùn)練。得益于本文輕量化模型的合理構(gòu)造方案,輕量化模型在性能上與復(fù)雜模型具有一定差距,可以使用復(fù)雜模型的軟標(biāo)簽作為輕量化模型的標(biāo)簽進(jìn)行知識(shí)蒸餾。溫度方面本文采用了默認(rèn)的溫度值,也就是不對(duì)軟標(biāo)簽再做平滑處理。其中,文本編碼器和視頻編碼器的隱藏層輸出因?yàn)榻?jīng)過(guò)了自注意力層和前饋網(wǎng)絡(luò)層的提取,包含豐富的視覺(jué)和文本知識(shí),解碼器的輸出則包含融合的2 個(gè)模態(tài)的互信息知識(shí)。同時(shí),本文也考慮了教師模型的不同層對(duì)輕量化模型的指導(dǎo)作用和不同剪枝率所帶來(lái)的性能表現(xiàn)作為蒸餾模型的優(yōu)化策略。蒸餾過(guò)程和具體指導(dǎo)方式如圖2所示。
計(jì)算出損失函數(shù)后,選擇AdamW[18]優(yōu)化器降低損失,它在原始的Adam 優(yōu)化器的基礎(chǔ)上引入了權(quán)重衰減(Weight decay)的概念,用于正則化模型參數(shù)。L 越低,說(shuō)明模型的預(yù)測(cè)結(jié)果與真實(shí)結(jié)果差距越小,模型的性能也就越好。
3實(shí)驗(yàn)結(jié)果分析
本文使用2個(gè)數(shù)據(jù)集MSRVTT[19] 和Youcookii[20],分別代表通用視頻描述數(shù)據(jù)集和密集視頻描述數(shù)據(jù)集,對(duì)本文的算法評(píng)估。MSRVTT 包括來(lái)自20 個(gè)類別的200 000 個(gè)視頻片段。本文使用130 260 個(gè)訓(xùn)練剪輯-文本對(duì)進(jìn)行訓(xùn)練,2 990 個(gè)訓(xùn)練剪輯-文本對(duì)進(jìn)行測(cè)試。Youcookii 數(shù)據(jù)集是視覺(jué)社區(qū)中最大的面向任務(wù)的教學(xué)視頻數(shù)據(jù)集之一,包含來(lái)自2 000 個(gè)烹飪食譜的89 個(gè)未修剪的長(zhǎng)視頻,視頻總時(shí)長(zhǎng)達(dá)到176 h。本文使用和UniVL 相同的設(shè)置,共有1 261 個(gè)訓(xùn)練視頻和439 個(gè)測(cè)試視頻,即9 776 個(gè)訓(xùn)練剪輯-文本對(duì)和3 369 個(gè)測(cè)試剪輯-文本對(duì)。本文分別采用BLEU3、BLEU4 [21]、METEOR[22]、ROUGE[23]和CIDEr[24]指標(biāo)評(píng)價(jià)視頻描述模型,這也是視頻描述任務(wù)中較為權(quán)威的幾種評(píng)價(jià)方法。本文將壓縮過(guò)的學(xué)生模型、蒸餾過(guò)后的模型、UniVL 模型及一些主流的視頻描述模型在模型大小和評(píng)價(jià)指標(biāo)上做對(duì)比,直觀地體現(xiàn)了本文蒸餾模型的優(yōu)勢(shì),具體見(jiàn)實(shí)驗(yàn)結(jié)果。
3.1實(shí)驗(yàn)設(shè)置
本文所有參數(shù)設(shè)置都參考了在視頻描述任務(wù)中有著領(lǐng)先表現(xiàn)的UniVL 模型[7],在一臺(tái)搭載了3080ti 顯卡的主機(jī)上微調(diào)了教師模型、學(xué)生模型和蒸餾模型。對(duì)于通用描述數(shù)據(jù)集,本文將訓(xùn)練和驗(yàn)證的batch_size 設(shè)置為32,初始學(xué)習(xí)率為3×10-5 ,微調(diào)10 個(gè)epoch。對(duì)于密集描述數(shù)據(jù)集,訓(xùn)練和驗(yàn)證的batch_size 設(shè)置為16,初始學(xué)習(xí)率和epoch 與通用描述數(shù)據(jù)集相同。
首先對(duì)于Youcookii數(shù)據(jù)集的密集視頻描述模型,需要對(duì)教師模型做微調(diào),使用HowTo100m 預(yù)訓(xùn)練模型初始化參數(shù),將mode 設(shè)置為teacher,經(jīng)過(guò)10 個(gè)epoch 后選擇性能最好的模型保存其參數(shù),得到教師模型。然后調(diào)整模型的大小,將所有層數(shù)降為1 層,將mode 設(shè)置為student,經(jīng)過(guò)10 個(gè)epoch 得到最好的學(xué)生模型,保存為學(xué)生模型。最后加入蒸餾算法,模型大小不變,保持和學(xué)生模型一致,將mode 設(shè)置為distill,經(jīng)過(guò)10 個(gè)epoch 得到最好的蒸餾模型。
對(duì)于MSRVTT 數(shù)據(jù)集的通用視頻描述模型,本文在微調(diào)教師模型時(shí)發(fā)現(xiàn),如果使用基準(zhǔn)教師模型,也就是12 層文本編碼器和視頻編碼器微調(diào)出來(lái)的教師模型并不是最好的。采用知識(shí)蒸餾時(shí),教師模型的性能要盡可能高,這樣才能更好地指導(dǎo)學(xué)生模型進(jìn)行訓(xùn)練。對(duì)此,本文對(duì)通用視頻描述的教師模型進(jìn)行了調(diào)整,將文本編碼器設(shè)置為6 層,視頻編碼器設(shè)置為8 層,這樣的教師模型實(shí)測(cè)性能最好。通用視頻描述模型的學(xué)生模型也區(qū)別于密集視頻描述模型,本文在將所有層數(shù)降為1 層后,采用剪枝的方法對(duì)通用描述模型的學(xué)生模型進(jìn)一步壓縮,使學(xué)生模型更好地?cái)M合MSRVTT 數(shù)據(jù)集。
在Youcookii數(shù)據(jù)集的實(shí)驗(yàn)過(guò)程中,發(fā)現(xiàn)教師模型不同層的輸出對(duì)學(xué)生模型的指導(dǎo)作用亦有差距,即使用不同層的輸出作為軟標(biāo)簽和學(xué)生模型做知識(shí)蒸餾。在MSRVTT 數(shù)據(jù)集中,采用不同的剪枝率也會(huì)對(duì)結(jié)果產(chǎn)生影響,所以本文設(shè)計(jì)了實(shí)驗(yàn)來(lái)研究不同層和不同剪枝率對(duì)知識(shí)蒸餾效果的影響。
3.2不同層的指導(dǎo)作用
Youcookii 數(shù)據(jù)集中的每個(gè)視頻內(nèi)容往往很復(fù)雜,包含多個(gè)非獨(dú)立的事件,本文認(rèn)為這類數(shù)據(jù)集為密集視頻描述數(shù)據(jù)集。對(duì)于密集視頻描述數(shù)據(jù)集,本文針對(duì)2 個(gè)編碼器和解碼器的不同層設(shè)計(jì)了實(shí)驗(yàn)。首先固定使用解碼器的第3 層(最后一層),分別使用1、3、6、11、12 層的編碼器輸出作為教師軟標(biāo)簽。不同層的指導(dǎo)作用如圖3 所示,就BLEU4 參數(shù)來(lái)看,使用1、3、6、11、12 層作為軟標(biāo)簽的性能分別為10. 42、10. 55、10. 30、10. 40、10. 28。總體呈現(xiàn)的趨勢(shì)是越淺層的蒸餾效果越差,但是在使用第11 層作為教師軟標(biāo)簽時(shí)效果達(dá)到最好的10. 55。原因在于,由于最后一層的特征太專一、空間小,容易過(guò)擬合,而倒數(shù)第二層特征更一般化、空間大,在數(shù)據(jù)集相似度不高的情況下使用倒數(shù)第二層的效果更好,它的特征更通用、更容易遷移。
使用編碼器的第11層作為教師軟標(biāo)簽,更換解碼器的不同層輸出作為知識(shí)來(lái)指導(dǎo)學(xué)生。因?yàn)榻獯a器的任務(wù)是根據(jù)編碼器生成特征表示來(lái)生成輸出,而解碼器的最后一層通常包含了解碼器學(xué)習(xí)到的最抽象的高級(jí)語(yǔ)義特征表示,所以在解碼器端還是采用第3 層(最后一層)作為知識(shí)指導(dǎo)學(xué)生模型效果最好。
3. 3自適應(yīng)嵌入
MSRVTT 數(shù)據(jù)集相較于Youcookii 數(shù)據(jù)集的時(shí)長(zhǎng)短,往往一個(gè)視頻片段只包含一個(gè)獨(dú)立的事件,這樣的數(shù)據(jù)集被認(rèn)為是通用視頻描述數(shù)據(jù)集,所以針對(duì)MSRVTT 數(shù)據(jù)集,本文需要確定一個(gè)模型復(fù)雜度更低的學(xué)生模型來(lái)避免過(guò)擬合問(wèn)題的出現(xiàn)。本文在You-cookii 輕量化模型的基礎(chǔ)上對(duì)模型的embedding層做剪枝,可以稱為自適應(yīng)嵌入(Adaptive Embedding,AE),AE 配合剪枝技術(shù)可以使模型進(jìn)一步得到壓縮。AE 的主要原理是,根據(jù)Zipf 法則[25],在一個(gè)龐大的語(yǔ)料中,很少的詞就能覆蓋大部分句子,可能一輪訓(xùn)練下來(lái),低頻詞被更新的次數(shù)屈指可數(shù)。根據(jù)這一法則,將30 522 個(gè)詞匯表劃分成2個(gè)區(qū)間,分別為高頻詞區(qū)間和低頻詞區(qū)間,對(duì)每個(gè)低頻詞,本文會(huì)分配不同的權(quán)重,根據(jù)低頻詞的權(quán)重從詞匯表中刪除(剪枝)或者合并到特殊的未知詞(Unknown Words,UNK)標(biāo)記中,這樣可以減少嵌入層的參數(shù)量和計(jì)算量。由于本文模型是預(yù)訓(xùn)練模型經(jīng)過(guò)微調(diào)獲得的,模型經(jīng)過(guò)大量無(wú)監(jiān)督學(xué)習(xí)學(xué)習(xí)到輸入數(shù)據(jù)模式、結(jié)構(gòu)和相似性等知識(shí),可以減少本文使用AE 剪枝掉一些專業(yè)術(shù)語(yǔ)或是特定領(lǐng)域的術(shù)語(yǔ)的影響,因?yàn)槟P鸵部梢杂酶哳l詞去描述這些不常出現(xiàn)的專業(yè)術(shù)語(yǔ)。
本文把需要剪枝的低頻詞的比例定義為剪枝率,采用不同的剪枝率進(jìn)行實(shí)驗(yàn),結(jié)果如圖4 所示,剪枝率到達(dá)0.9時(shí)BLEU-4 到達(dá)最高值,為43.25。由圖4 可知,模型性能隨著剪枝率的增加而變好,說(shuō)明模型對(duì)于數(shù)據(jù)集來(lái)說(shuō)存在大量冗余,僅僅使用很少的低頻詞就可以完成大部分的描述任務(wù),較高的剪枝率可能有助于網(wǎng)絡(luò)選擇最相關(guān)和最有用的特征,從而改善性能。由此可見(jiàn),對(duì)通用數(shù)據(jù)集進(jìn)行剪枝操作是十分有必要的。
3.4實(shí)驗(yàn)結(jié)果
本文的教師模型在Youcookii 和MSRVTT 數(shù)據(jù)集上微調(diào)的結(jié)果如表2 和表3 所示。對(duì)現(xiàn)有的幾種模型進(jìn)行比較,模型都沒(méi)有額外的訓(xùn)練數(shù)據(jù),也就是輸入只有視頻幀信息的模型。教師模型表示本文的基準(zhǔn)模型,學(xué)生模型表示經(jīng)過(guò)壓縮后的輕量化模型,蒸餾模型表示經(jīng)過(guò)教師模型的軟標(biāo)簽指導(dǎo)的蒸餾模型。分析表2 可得,在Youcookii 數(shù)據(jù)集上,本文的輕量化模型在所有指標(biāo)上的性能效果顯著,達(dá)到了15.52 和10.55,超過(guò)了除教師模型外的其他所有模型,體現(xiàn)了知識(shí)蒸餾的效果。表2 后2 列展示了本文的輕量化模型對(duì)比教師模型的參數(shù)量差距和壓縮比例,本文的蒸餾模型在壓縮了75% 的參數(shù)量的情況下還能保持卓越的性能。進(jìn)一步分析表2 學(xué)生模型和蒸餾模型的表現(xiàn),在BLEU-3和BLEU-4 上本文的蒸餾模型對(duì)比同樣大小的學(xué)生模型分別提高了5. 1% 和8. 2% ,達(dá)到了15. 52 和10. 55。對(duì)比UniVL教師模型的BLEU-4 性能11. 48只下降了8% ,而參數(shù)量只有教師模型的25% ,只剩下63 M。由表3 可以看出,對(duì)于通用視頻描述數(shù)據(jù)集,結(jié)合了AE方法的壓縮率甚至達(dá)到了78% ,性能也逼近教師模型。
本文從以下幾個(gè)方面分析蒸餾模型取得效果的原因:① 使用教師模型的軟標(biāo)簽作為蒸餾模型的真實(shí)標(biāo)簽,軟標(biāo)簽?zāi)軌虮硎静煌悇e之間的相關(guān)性和相對(duì)置信度,使得學(xué)生模型可以更好地理解類別之間的關(guān)系,而不僅僅是簡(jiǎn)單地進(jìn)行分類。② 教師模型在大規(guī)模數(shù)據(jù)上進(jìn)行訓(xùn)練,具有較強(qiáng)的泛化能力。將教師模型的知識(shí)傳遞給學(xué)生模型,學(xué)生模型可以借鑒教師模型的泛化能力,從而在面對(duì)新的、未知的數(shù)據(jù)時(shí)能夠更好地進(jìn)行預(yù)測(cè)和生成。③ 通過(guò)使用教師模型生成的軟目標(biāo)來(lái)指導(dǎo)學(xué)生模型的訓(xùn)練,可以減少學(xué)生模型對(duì)具體訓(xùn)練樣本的過(guò)度擬合,使其更加關(guān)注通用的模式和特征,從而提高泛化能力。教師模型的軟標(biāo)簽對(duì)學(xué)生模型的訓(xùn)練起到了指導(dǎo)作用,使得學(xué)生模型的性能得到了提升。
在Youcookii 數(shù)據(jù)集中,學(xué)生模型的參數(shù)只有教師模型的1/4,性能大概是教師模型的84% 。使用知識(shí)蒸餾將其性能提升至教師模型的92% ,而模型大小不變。在MSRVTT數(shù)據(jù)集中,本文找到了表現(xiàn)最好的教師模型,文本編碼器為6層,視頻編碼器為8 層,其余不變。而學(xué)生模型則在原來(lái)壓縮的基礎(chǔ)上又做了嵌入層的剪枝,使得模型更好地?cái)M合小規(guī)模數(shù)據(jù)集。通過(guò)知識(shí)蒸餾的蒸餾模型在除了ME-TEOR性能上都有所提升,但是效果不明顯,因?yàn)槭褂妙A(yù)訓(xùn)練模型學(xué)習(xí)到的底層知識(shí)已經(jīng)足以應(yīng)對(duì)小規(guī)模數(shù)據(jù)集的描述任務(wù)。
4結(jié)束語(yǔ)
本文分別介紹了通用視頻描述數(shù)據(jù)集和密集視頻描述數(shù)據(jù)集的教師模型、學(xué)生模型和蒸餾策略,對(duì)于視頻描述任務(wù)的子模型及如何提升其性能做出了探討。針對(duì)不同復(fù)雜度的數(shù)據(jù)集來(lái)確定合適學(xué)生模型。本文提出了5 個(gè)蒸餾損失共同指導(dǎo)學(xué)生模型進(jìn)行優(yōu)化訓(xùn)練,通過(guò)實(shí)驗(yàn)驗(yàn)證了不同層的指導(dǎo)效果不同。對(duì)大模型進(jìn)行壓縮,然后使用知識(shí)蒸餾算法提高其精度這一方法是可行的,關(guān)鍵在于如何確定合適的教師模型、學(xué)生模型和蒸餾策略。在合理的壓縮策略和蒸餾策略的優(yōu)化下,輕量化模型的參數(shù)量能夠降低75% ,同時(shí)性能指標(biāo)的取值下降不超過(guò)10% 。
作者簡(jiǎn)介
陳凱 男,(1998—),碩士研究生。主要研究方向:深度神經(jīng)網(wǎng)絡(luò)壓縮與加速。
唐振華 男,(1979—),博士,副教授。主要研究方向:深度神經(jīng)網(wǎng)絡(luò)壓縮與加速、基于內(nèi)容的圖像/ 視頻重定向及其質(zhì)量評(píng)價(jià)、分布式視頻編碼與通信。
崔振雷 男,(1997—),碩士研究生。主要研究方向:深度神經(jīng)網(wǎng)絡(luò)壓縮與加速。
李健澤 男,(1999—),碩士研究生。主要研究方向:深度神經(jīng)網(wǎng)絡(luò)壓縮與加速。