李亞杰,關勝曉,倪長好
(中國科學技術大學 微電子學院,安徽 合肥230026)
視頻描述任務是將計算機視覺信息轉換為人類能夠理解的自然語言句子的描述。將計算機視覺內容理解和自然語言處理兩個領域相結合用于解決視頻描述是一項極具挑戰(zhàn)性的任務。視頻描述涉及對許多實體的理解,這些實體包括場景、人物、物體、人的動作、人與物體的交互、人與人的交互、其他事件以及事件發(fā)生的順序等。所有這些信息必須使用自然語言處理(Natural Language Processing,NLP)技術,以一種可壓縮的、語法正確的文本表達出來。視頻描述任務可以應用于很多領域,如智能安防、盲人導航、視頻檢索、人機交互等。
目前視頻描述算法主要是基于編碼-解碼器架構。 編碼器使用卷積神經網絡(CNN)或循環(huán)神經網絡(RNN)對視頻信息進行編碼,解碼器根據編碼特征使用RNN 生成視頻語言描述。 由于注意力機制在機器翻譯和目標檢測等領域的成功,Li Yao[1]等人提出使用軟注意機制的TA 模型,在每一步解碼時不是簡單地對視頻每幀的編碼信息進行求平均,而是根據當前解碼狀態(tài)以軟注意的方式獲取感興趣的時間特征,同時使用了3D 卷積特征和三個手工低級特征將時間和空間特征進行結合。 Pan Yingwei[2]等人提出X-LAN 圖像描述模型, 該模型使用了類似Transformer[3]的結構,并使用了雙線性池化技術來獲取圖像不同區(qū)域特征的高階交互,并同時考慮了空間和通道的注意力分布。 X-LAN 模型目前是針對圖像描述的,還沒有應用于視頻領域,要使用目標檢測技術獲取圖像不同區(qū)域的特征作為輸入,且以上模型都沒有使用視覺高級語義特征來輔助描述生成,不能獲取豐富的語言描述。 Gan Zhe[4]等人提出語義成分網絡(Semantic Compositional Network,SCN)進行視覺描述,SCN 獲取視頻的高級語義特征并送入解碼器的LSTM 中用于輔助描述生成。 為了解決算法的過擬合問題,Chen Haoran[5]提出使用層歸一化和變分Dropout 方法來解決。
為了獲取更加豐富的時序特征,本文以X-LAN圖像描述模型作為基礎模型,并對解碼器中的LSTM進行修改,使其可以使用語義檢測網絡,獲取視頻高級語義特征用于輔助解碼,并使用了層歸一化和變分Dropout 來緩解網絡過擬合問題。 為了解決視頻描述任務中的曝光偏差和訓練損失與評測指標不一致的問題,本文使用了強化學習對模型進行微調。
視頻描述的研究始于基于模板的經典方法,主語、動詞和賓語被分別檢測,然后使用句子模板連接,這些方法被稱為SVO-Triplets[6-7]。 然而深度學習的出現以及計算機視覺和自然語言處理的巨大進步同樣影響了視頻描述領域。 因此最新的方法都是基于深度學習的體系結構[8-9],它們用2D/3D-CNN編碼視覺特征,并使用LSTM/GRU 學習序列。 通過在標準的編碼器-解碼器框架上引入額外的轉換進行了改進。 這些轉換包括注意力機制[1](模型學習模型關注的視頻部分)、序列學習[9](模型學習視頻幀的序列和相應句子中的單詞序列)、語義屬性[10-11](利用了CNN 功能之外的視覺語義)以及利用生成文本對視覺內容進行了聯合建模[12]。
X-Linear 注意力模塊利用空間和逐通道的雙線性池化注意力機制來捕獲查詢特征和關鍵特征之間的高階相互作用,獲得注意力分布。 雙線性池化是一種計算兩個特征向量之間的外積運算,該運算可以實現特征向量中所有元素的二階交互,實現比線性池化更好的特征融合。 雙線性池化使得很多任務的性能都有所提高,如細粒度圖像識別、視覺問答和圖像識別等任務。 由于融合后的特征需要向量展開,維度會是特征向量通道數的平方。 為減少參數和計算量,Kong Shu[13]等人發(fā)現可以將映射矩陣W 進行低秩分解,使用兩個低秩矩陣U+和U-來表示,減少了參數量。 Jin Hwa[14]等人在視覺問答任務上提出多模雙線性池化MLB,實現了視覺特征和文本特征的融合,并提出雙線性池化注意力。
X-LAN 模型由X-Linear 注意力模塊構成,它使用了雙線性池化來獲得特征的高階交互。X-LAN原本是應用在圖像描述任務中,本文對其進行改進提出XLSNet 模型,使其可以應用于視頻描述任務中。原本X-LAN 模型的輸入視覺特征是Faster R-CNN[15]提取的不同目標特征,它代表了圖像不同區(qū)域。 本文直接將CNN 提取的幀序列特征作為輸入。 原本X-LAN 模型并沒有使用視覺高級語義屬性,即解碼時沒有語義的指導,因此本文加入視頻的高級語義特征進行輔助解碼,并將LSTM 修改為語義嵌入GRU。 本文還對GRU 單元引入了變分Dropout 和層歸一化層來防止模型過擬合問題。 基于交叉熵的模型優(yōu)化會帶來曝光偏差問題和優(yōu)化目標與評測指標不匹配問題, 最后使用強化學習對模型進行微調。
每個 x 表示為視頻的一幀,每個y 表示為單詞表中的一個單詞。
本文實驗使用GloVe[16]預訓練模型來獲取單詞的嵌入表示,假設單詞嵌入維度為Dw,對于每描述句子Yi∈RLi×Dw可表示為:
本文使用了在ImageNet[17]上預訓練的64 個路徑的ResNeXt101[18]對視頻的每幀進行特征提取,并使用ResNeXt101 的最后全局池化層的輸出作為視頻幀的特征表示,它是一個2 048 維的特征向量。第i 個視頻的特征表示為Vi∈RF×Dv:
CNN 網絡不僅可以提取圖像特征,而且還獲取了在ImageNet 上1 000 類的類別分布。 類別分布中包含了豐富的潛在語義信息,因此本文也將CNN網絡得到的類別分布作為語義信息加入到語義嵌入GRU 中。 第i 個視頻的分類語義信息表示為ci∈R1000:
其中ci,j表示一幀圖像的類別分布。 整個視頻的類別語義信息ci為所有幀的平均。
語義檢測網絡(Semantic Detection Network,SDN)是一個多標簽分類的多層感知器神經網絡。 從詞匯表中去掉停止詞,并選擇K(K=300)個常見的名詞、動詞、形容詞等作為語義標簽,網絡的輸入為CNN提取的視頻的每幀特征的平均池化。假設有N 個視頻,,yi為第i 個視頻的語義標簽。 計算如下:
其中SDN 表示語義檢測網絡,ti∈RK為第i 個視頻的語義特征,該語義特征與類別語義特征拼接一起作為視頻語義特征送入解碼器中。
循環(huán)網絡GRU 引入了門控機制,緩解了循環(huán)網絡的梯度消失問題, 它包含更新門zt和重置門rt。假設GRU 的輸入為xt∈RDx,上一個隱狀態(tài)為ht-1∈RDh,則計算如下:
其中Wz∈RDh×Dx,Uz∈RDh×Dh,Wr∈RDh×Dx,Ur∈RDh×Dh,W∈RDh×Dx,U∈RDh×Dh。
將語義信息嵌入到GRU 中就可以得到語義嵌入GRU(Semantic Embedding GRU,SEGRU),由于直接將語義嵌入到 GRU 中參數量大,網絡訓練困難,因此采用因式分解技術降低參數量,使網絡訓練成為可能。 將權值 W、U、V 轉換為語義相關的權值矩陣,SEGRU 計算如下:
其中s∈RDs為語義特征向量,v∈RDv為輸入視頻特征 向 量,P*1∈RDf×Ds,W*2∈RDf×Dx,U*2∈RDf×Dh,V*2∈RDf×Dv,P*3∈RDh×Df,P∈{W,U,V}, *∈{z,r,h},Df為因式分解的中間維度。
由于訓練數據少,且單詞出現頻率差異大,模型會出現過擬合現象。 傳統(tǒng)Dropout 技術通過隨機丟棄一些神經元來緩解過擬合,但是直接將其使用在循環(huán)網絡中會損害循環(huán)網絡在時間維度上的記憶能力,因此本文使用變分的Dropout 方法,它是在每個時刻使用相同的丟棄掩碼。 加入Dropout 會降低收斂速度,而歸一化技術可以平滑損失函數加快收斂,在循環(huán)網絡中常用層歸一化技術。SEGRU 變?yōu)椋?/p>
其中LN 表示層歸一化,m*為Dropout 掩碼。
本文的XLSNet 是對X-LAN 的改進。 XLSNet 網絡結構如圖1 所示,它也是一個編碼-解碼器架構的序列到序列模型。 左半部分為編碼器, 包含了CNN 特征提取,X-Linear 注意力編碼和語義檢測網絡SDN。 右半部分為解碼器,由語義嵌入SEGRU 和X-Linear 注意力模塊組成。 XLSNet 的主要改進有:(1)輸入的視頻特征是時序信號,而原本的X-LAN編碼器是自注意力機制的,會使其丟失位置信息,因此先對視頻特征加入位置編碼[3];(2)原始X-Linear注意力模塊中的二階特征交互使用的是后歸一化(在激活函數后),本文將歸一化層提前到激活函數前;(3)增加語義檢測網絡SDN 提取高級語義信息,并使用SEGRU 替換LSTM 進行解碼生成;(4)最終Softmax 之前的Linear 層的參數和WordEmbed 層的參數進行捆綁,減少了網絡參數量,并起到正則化效果;(5)普通Dropout 在處理時序信號時會造成時序信息的破壞,損壞網絡在時間維上的記憶能力,因此將該層都替換成變分Dropout 層。
在進行模型推斷時,首先對輸入視頻幀進行均勻采樣,送入ResNext101 卷積網絡中提取幀特征,得到視頻幀序列特征。由于X-Linear 編碼器沒有位置信息,因此對輸入的幀使用位置編碼器[3]添加相對位置信息。 經X-Linear 編碼器得到視頻的注意力特征Vatt和視頻嵌入特征Vembed。 同時對卷積特征在時間維上進行均勻池化操作,并送入SDN 語義檢測網絡提取語義特征,并將該特征和CNN 的類別分類信息進行連接得到語義特征s,再將s 送入解碼器進行語言描述生成。
XLSNet 模型主要在MSVD[19]數據集進行實驗驗證。 MSVD 數據集共有1 970 個短視頻,每個視頻的平均時長為10 s,每個視頻約有40 個人工描述的句子。 MSVD 數據集中每個描述的平均單詞數大約為7.1,共有80 839 個英語句子。 本文從訓練集中獲得了12 596 個英語單詞作為詞匯表。
本文使用ResNext101 作為卷積特征提取, 每個視頻均勻采樣得到35 幀圖像。 編碼器有兩層XLinear 注意力, 解碼器有一層X-Lieanr 注意力。 單詞嵌入使用GloVe 作為預訓練權重,單詞嵌入維度為300 維。 SEGRU 的隱藏層設置為1 024,批處理大小為128,生成的語言描述長度為20。 訓練時使用Adam 作為優(yōu)化器,初始學習率為1×10-4,學習率每1 000 次迭代就衰減0.96,模型共訓練20 次。
3.2.1 語義嵌入分析
圖1 XLSNet 網絡基本結構
由語義檢測模型提取的視頻語義特征可認為包含了視頻中事物、場景以及關系信息,視頻經過CNN 圖像分類器得到的最終1 000 類的類別分布可認為是某種模式的語義信息,也是有助于語言解碼的, 因此本文送入解碼器的語義特征si=[ti,ci],其中ti表示語義檢測網絡提取的語義特征,ci表示CNN 分類器得到語義特征。為了驗證語義屬性對模型解碼的影響,本文嘗試了幾種不同的語義特征的組合模型:XLSNetno表示沒有使用語義特征,XLSNett表示只是使用了語義檢測網絡提取的語義特征t,XLSNetc表示只使用了CNN 分類器得到的類別分布語義特征c,XLSNets表示使用了兩個語義特征。 為了公平比較,四個模型的實驗設置完全一樣。 表1顯示了四個模型和其他現有流行的視頻描述模型的結果比較。
從表1 可以看出:(1)XLSNets在所有對比模型中有5 個指標達到最好,其中CIDEr 指標達到了1.101 4,比SAM-SS 提高了7%,比XLSNetno提高了38%;(2)SAM-SS 也使用了高級語義嵌入,但是使用了2D 和3D 卷積提取視頻特征,而XLSNet 只使用了2D 卷 積 特 征,XLSNet 在CIDEr 和METEOR 指 標 上顯著高于SAM-SS,且ROUGE 指標相當,這表明本文使用X-Lienar 注意力模塊進行視頻特征交互的有效性;(3)在XLSNet 四個組合模型的比較中可以看出語義嵌入對模型性能帶來顯著的提升。 類別分布語義特征c 有助于提高除CIDEr 以外的其他指標;語義特征t 對所有指標都是有顯著的提升,且比類別分布語義特征c 影響更大;而將兩個語義特征組合后模型性能達到最好。
3.2.2 Dropout 和層歸一化的影響
為驗證SEGRU 對過擬合的影響,本文以XLSNets基礎, 嘗試了刪除SEGRU 中的Dropout 和層歸一化,將模型表示為XLSNetf。 圖2 顯示了這兩層對最終性能的影響。 可以看到模型的性能顯著下降,這表明層歸一化和Dropout 對模型的性能至關重要,Dropout 有助于減少模型過擬合,層歸一化有助于加速模型收斂并優(yōu)化模型損失函數。
圖2 Dropout 和層歸一化對模型性能的影響
3.2.3 強化學習結果
本文使用了文獻[24]中提出的REINFORCE 強化學習方法對網絡進行訓練。 其中嘗試了兩種不同的獎勵函數:(1)直接以CIDEr 指標作為獎勵,模型表示為XLSNetlr;(2)為綜合考慮所有指標,將文獻[5]中的overall 作為獎勵,模型表示為XLSNetrlo。 overall指標計算如下:
其中mb表示到當前第i 個批次上的指標m 的最大得分,mi表示第i 批次上指標m 的平均得分,m ∈{BLEU@4,CIDEr,METEOR,ROUGE}。 上式計算的是一個批次的得分,而不能作為獎勵用于訓練,本文需要得到每個樣本的得分,因此對該式進行了改進:
表1 不同語義結合和主流模型結果比較
從表2 可以看到:(1)引入強化學習后,模型全部指標都有顯著的提升,其中XLSNetrl的CIDEr 指標提升到1.193 9,提高了近8.4%;(2)雖然XLSNetrl只使用了CIDEr 作為獎勵,但在提高CIDEr 指標的同時也對其他指標也帶來了提升;(3)XLSNetrlo的獎勵綜合考慮了所有的指標,其中BLEU 指標達到最好,這可能在計算overall 獎勵時需要對四個指標權重進行調參,而不是使用均勻權重0.25。
本文提出XLSNet 視頻描述模型,對X-LAN 進行改進,嵌入視頻高級語義信息來輔助解碼,只需要視頻幀的2D 卷積特征即可在各項指標上獲得很不錯的性能。 XLSNet 模型的編碼器使用的是多層X-Linear 注意力模塊,該模塊是使用雙線性池化來獲取特征之間的高階交互,從而提取豐富的視頻時序特征。 實驗表明與其他使用雙流或多模態(tài)特性的算法相比,該模型更高效。 增加視頻的類別分布語義特征來豐富視頻的語義特征有助于模型解碼生成。 為解決循環(huán)網絡GRU 的過擬合問題提出的變分Dropout 和層歸一化有效地提高模型的解碼性能。 最后,由于視頻描述算法的曝光偏差和訓練損失與評測指標不一致問題,本文使用了兩種獎勵函數進行強化學習,進一步提升了模型性能。
表2 強化學習訓練結果