楊文瑞,沈 韜,朱 艷,曾 凱,劉英莉
1.昆明理工大學(xué) 信息工程與自動化學(xué)院,昆明 650500
2.昆明理工大學(xué) 云南省計算機重點實驗室,昆明 650500
近年來,深度學(xué)習(xí)的發(fā)展使得計算機視覺和自然語言處理領(lǐng)域都取得了巨大的進步。這些成果使得視覺與語言的相互關(guān)聯(lián)成為可能,并且促進了多模態(tài)深度學(xué)習(xí)任務(wù)的發(fā)展,例如:圖片-文本對應(yīng)[1]、視覺問答[2-3]以及圖像描述[4-5]。
圖像描述是一個使用自然語言處理對一張圖像生成文本的任務(wù),所以它要求設(shè)計一個算法去理解并且建立視覺信息與文本信息之間關(guān)系,并且最終生成一個具有時序關(guān)系的語句。這個問題的難點在于識別圖像中的目標(biāo)并且理解他們的相對關(guān)系。由于機器翻譯中的序列到序列模型的出色表現(xiàn),大部分比較成功的圖像描述算法基本都采用編碼-解碼的基本框架。這種基本框架包括一個由卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的編碼器,用來提取輸入圖片的圖像特征以及一個由循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)成的解碼器,根據(jù)圖像特征信息迭代,生成相應(yīng)的自然語言描述。這種編碼-解碼模型通常采用端到端的模式,以交叉熵為損失函數(shù)進行訓(xùn)練?;谶@種基線模型,為了進一步提高圖像描述任務(wù)的性能,有很多的相關(guān)工作對其做了改進。例如,為了建立描述詞語與圖像相應(yīng)區(qū)域的細粒度聯(lián)系,一種注意力機制被完美地加入到這種基線模型中[6];為了提高對圖像中目標(biāo)的理解,一種基于圖像區(qū)域的bottom-up的注意力特征替代了原始的卷積神經(jīng)網(wǎng)絡(luò)[5],一種基于強化學(xué)習(xí)的算法被用來解決在訓(xùn)練過程中由于損失函數(shù)以及評價指標(biāo)不對等偏差的問題[7]。盡管上述方法在圖像描述領(lǐng)域取得了較大的成功,但是仍有以下兩種不足:
(1)注意力機制的引入,大大地提高了圖像描述任務(wù)的效果,但是現(xiàn)有研究中更多強調(diào)不同模態(tài)間的注意力,忽略了模態(tài)表征內(nèi)的注意力,這會導(dǎo)致視覺與自然語言描述存在語義差異,模型無法較好地表示圖像目標(biāo)之間的關(guān)系。
(2)現(xiàn)有的圖像描述算法在進行詞向量編碼的過程中,多采用Word2Vec[8]或者Glove[9]編碼,這樣的做法導(dǎo)致同一詞語在不同的上下文語境下的意義相同,最終使模型對圖像語義的描述偏差。
針對該領(lǐng)域存在的兩個問題,本文的主要貢獻如下:
(1)提出了針對圖像字幕描述任務(wù)中的多模態(tài)Transformer 模型。模型采用模態(tài)內(nèi)注意與模態(tài)間注意力的聯(lián)合建模方式。通過這些注意力在深度上的堆疊,提升了模型對圖像的語義描述能力。
(2)提出使用ELMo詞嵌入與標(biāo)準(zhǔn)詞嵌入聯(lián)合編碼的方式,對不同語境下的詞語進行包含上下文信息的詞嵌入編碼,使得模型對語義的理解有了很大提高。
(3)在Microsoft COCO2014 數(shù)據(jù)集上進行了大量的實驗,分別對不同層數(shù)的網(wǎng)絡(luò)模型以及效果進行了分析,并可視化地分析了模態(tài)間與模態(tài)內(nèi)注意力的效果。定量和定性地證明了所提出模型的有效性。實驗結(jié)果表明,融合ELMo詞嵌入的多模態(tài)Transformer模型的性能明顯優(yōu)于現(xiàn)有的方法。
圖像描述指的是給定一張圖像從而生成其對應(yīng)的語言描述的任務(wù),在過去的相當(dāng)一部分時間里,有很多方法被用來進行圖像描述。圖像描述模型可以分為三類:基于模板填充的模型[10-12]、基于檢索的模型[13-15]以及生成式模型[4,7,16]。
早期的模型都采用基于模板的模型,該類模型的主要步驟是:首先生成一個固定的語言模板,然后再根據(jù)目標(biāo)檢測器以及屬性檢測器對圖像進行特征提取得到圖像中的實體以及對應(yīng)的屬性,最后將提取到的實體屬性填入語言模板中[10]。這種進行圖像描述的方式通常可以非常清楚地描述圖像中的實體以及對應(yīng)的屬性,但是缺乏多樣性,生成的語句比較單一而且刻板。
基于檢索的模型首先要維護一個包含大量圖像描述語句的語料庫,通過比較圖像與語料庫中圖像描述語句的相似性來獲得候選語句的集合,最終選擇相似性最高的語句作為圖像的最終描述[13]。這種模型豐富了圖像的語言描述,但是不能生成語料庫之外的語句,沒有從根本上解決語句多樣性的問題。
隨著深度神經(jīng)網(wǎng)絡(luò)時代的到來,大部分圖像描述任務(wù)漸漸的都開始引入神經(jīng)網(wǎng)絡(luò)來進行圖像描述任務(wù),這便是生成式模型。Szegedy 等人通過引入GoogLeNet[17]以及長短期記憶網(wǎng)絡(luò)(LSTM)[18]提出了一種新的編碼-解碼框架來進行圖像描述。由于其出色的,基于卷積神經(jīng)網(wǎng)絡(luò)以及循環(huán)神經(jīng)網(wǎng)絡(luò)的編碼-解碼模型慢慢成為圖像描述任務(wù)的主流框架。
注意力機制(attention mechanism,AM)最早是在2014 年由google mind 團隊提出,他們在循環(huán)神經(jīng)網(wǎng)絡(luò)的模型上增加了注意力機制來進行圖像分類,現(xiàn)已廣泛應(yīng)用于圖像描述任務(wù)中,Xu 等人[19]提出了一種類似于人眼觀察圖像時聚焦的注意力機制,并將其引入圖像描述任務(wù)中,其中硬注意力機制(hard-attention)將關(guān)注的區(qū)域權(quán)重設(shè)置為1,其他部分設(shè)置為0,而軟注意力機制為每個區(qū)域進行權(quán)重學(xué)習(xí),使得其相加等于1。后續(xù)研究都在此基礎(chǔ)上進行改進,Chen等人[6]使用空間注意力與通道注意力機制去對圖像進行注意力加權(quán)。Anderson等人[5]提出了bottom-up 以及top-down 兩種用于圖像描述的注意力機制,使用Faster-RCNN[20]檢測圖像中的感興趣區(qū)域(region of interests,ROIs),并從ROIs 中提取圖像特征作為輸入至后續(xù)任務(wù)的特征矩陣,再使用兩個LSTM[18]分別做top-down注意力層和語言模型進行圖像描述的生成。
多模態(tài)Transformer 的圖像描述模型主要包括兩個部分:(1)圖像特征編碼器;(2)文本描述解碼器。圖像特征編碼器的輸入為一幅給定的圖像,并且使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)去提取圖像特征值。接著該特征值被送入編碼器中,通過自注意力學(xué)習(xí)得到圖像視覺的注意力表征,接著文本描述解碼器通過編碼器處理之后的圖像視覺注意力以及上一時刻的單詞去預(yù)測下一個可能出現(xiàn)的單詞。多模態(tài)圖像描述Transformer的網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖1所示。
圖像特征編碼器根據(jù)輸入的圖像進行編碼,它主要工作是獲取圖像的特征信息,通過注意力機制學(xué)習(xí)到圖像視覺模態(tài)內(nèi)部的注意力矩陣,從而得到圖像信息中的相互關(guān)系。它由圖像特征提取器與多模態(tài)Transformer編碼器兩個部分組成。
2.1.1 圖像特征提取器
在圖像特征提取器中,輸入的圖像被表示為一組圖像特征。本文遵循Anderson 等人[5]提出的bottom-up 注意力機制來提取圖像特征,使用一個在Visual Genome數(shù)據(jù)集上預(yù)訓(xùn)練過的Faster-RCNN[20]網(wǎng)絡(luò)進行實體相關(guān)區(qū)域的識別,再應(yīng)用平均池化來生成最終的特征,其中每一個實體的特征被表示為xi,輸入的整張圖像被表示為一個特征矩陣X,接著將得到的圖像特征矩陣X輸入至一個全連接神經(jīng)網(wǎng)絡(luò),目的是調(diào)整圖像特征的維度使得其與輸入至編碼器的維度相對應(yīng),最終得到的圖像特征矩陣被表示為X0。
2.1.2 多模態(tài)Transformer編碼器
接著經(jīng)過變換的圖像特征X0被喂入多模態(tài)Transformer編碼器中,它由N個注意力模塊{A1e,A2e,…,AN e}組成。第n個注意力模塊AN e接收第n-1 個注意力模塊的輸出Xn-1進行計算,得到經(jīng)過注意力加權(quán)之后的圖像模態(tài)內(nèi)部的注意力特征Xn。計算公式如下:
其中,每一個Ane(Xn-1) 包括兩個部分,多頭注意力(MHA)模塊以及Feed Forward 模塊(FFN)。多頭注意力模塊是由h個單頭注意力模塊組成的,如圖2所示。
將圖像特征信息Xn-1輸入到圖2所示的h個參數(shù)各不相同的單頭注意力模塊進行計算,得到h個經(jīng)過加權(quán)的特征矩陣Zn-1i,它表示的就是在第n-1 層每一個不同的頭對圖像模態(tài)內(nèi)部的注意力矩陣。
FFN模塊由一個兩層的全連接層組成,其中第一層采用Relu為激活函數(shù)。計算公式如下:
其中,W、b為全連接網(wǎng)絡(luò)待訓(xùn)練的參數(shù)。
經(jīng)過多模態(tài)編碼器中N層注意力的計算,最終的到圖像模態(tài)內(nèi)部的注意力加權(quán)矩陣XN。
文本解碼器基于通過編碼器后的圖像特征矩陣進行計算。它的主要工作首先是針對輸入的文本數(shù)據(jù)進行模態(tài)內(nèi)注意力,學(xué)習(xí)到輸入文本數(shù)據(jù)模態(tài)內(nèi)的注意力矩陣,即單詞之間的相互關(guān)系,接著對圖像信息與文本信息進行模態(tài)間注意力,學(xué)習(xí)圖像與文本之間的相互關(guān)系,得到由圖像信息導(dǎo)向的注意力加權(quán)矩陣,最后生成相對的描述語句。如圖1 所示它主要由多模態(tài)詞嵌入編碼器與多模態(tài)Transformer 解碼器兩個部分組成。
2.2.1 多模態(tài)詞嵌入編碼器
多模態(tài)詞嵌入編碼器的主要工作是給輸入的單詞進行編碼,形成輸入解碼器的特征矩陣。首先對于輸入的描述語句。它主要包括兩個部分,標(biāo)準(zhǔn)詞嵌入編碼器與ELMo[21]詞嵌入編碼器,如圖3所示。
多模態(tài)詞嵌入編碼器首先使用標(biāo)準(zhǔn)詞嵌入編碼器生成標(biāo)準(zhǔn)詞嵌入,即進行分詞操作,將一句話分割成單個的單詞,并對每一個單詞形成與其對應(yīng)的唯一的token,接著將輸入的這句話,轉(zhuǎn)化為token的形式,并進行補齊操作。接著使用詞向量編碼算法對每一個單詞進行編碼,記作yni∈Remb,最終使用YN來表示一個描述語句的標(biāo)準(zhǔn)特征矩陣,其中emb為采用詞嵌入操作的維度。
第二步,多模態(tài)詞嵌入編碼器根據(jù)ELMo 詞嵌入編碼器生成一個基于上下文信息的詞嵌入特征矩陣。ELMo詞嵌入編碼器如圖3所示。與標(biāo)準(zhǔn)詞嵌入不同的是,對于輸入的語句,ELMo 詞嵌入編碼器并不是對每一個單詞進行編碼,而是針對所輸入的一句話,結(jié)合語境進行編碼。對于輸入的語句為了防止OOV(out of vocabulary)情況的出現(xiàn),首先經(jīng)過一個字符編碼層,得到每一個描述語句的字符編碼ychar,接著將得到的字符編碼輸入雙向LSTM,得到特征矩陣,記為ybi∈R(l+1)×W×emb,其中l(wèi)為LSTM 的層數(shù),W為單詞的個數(shù),這樣就得到l+1 個包含上下文信息的特征矩陣,最后將得到l+1 個包含上下文信息的表達輸入至混合層,為每個不同的向量分配權(quán)重并且混合成一個特征矩陣,得到最終的ELMo 詞向量,記作YE。由于經(jīng)上述步驟得到的詞嵌入矩陣并不能很好地表示單詞在時序上的信息,多模態(tài)Transformer 編碼器的結(jié)構(gòu)也并不像循環(huán)神經(jīng)網(wǎng)絡(luò)一樣可以根據(jù)時序信息來預(yù)測詞的概率,因此加入位置編碼來使得詞嵌入矩陣獲得單詞出現(xiàn)的順序,從而體現(xiàn)單詞在語句中的相對位置以及絕對位置。具體計算過程如下:
其中,pos代表單詞在語句中的位置。
這種位置編碼操作,可以比LSTM獲得更長的序列長度,并且很容易讓模型獲得單詞的位置。所以最終的輸入信息Y=YP+YE+YN,最后將得到的特征矩陣輸入至多模態(tài)Transformer解碼器中。
2.2.2 多模態(tài)Transformer解碼器
它主要由三個部分組成:基于掩碼的多頭注意力模塊、多頭注意力模塊以及FFN模塊。
基于掩碼的多頭注意力模塊對輸入的詞嵌入矩陣Y進行注意力建模,在進行注意力建模之前,生成一個上三角為1,其余為0的矩陣進行掩碼,防止模型采用當(dāng)前時序之后的單詞進行訓(xùn)練。接著對輸入的詞嵌入矩陣進行注意力加權(quán)得到文字模態(tài)內(nèi)的注意力特征矩陣Rm。
多頭注意力模塊對于多模態(tài)編碼器的融合輸出XN以及文本輸入進行圖像與文字模態(tài)間的注意力加權(quán),得到由圖像信息導(dǎo)向的圖像描述注意力加權(quán)矩陣Rf。具體計算公式如下:
最后通過Softmax計算得到詞語的表示:
其中WRout∈Remb×O,O為詞表的大小。
公本文在公開的Microsoft COCO2014[22]數(shù)據(jù)集上進行了大量的實驗用來評估本文模型的性能。使用Karpathy 等人[23]提供的方法將數(shù)據(jù)分為5 000 張圖像的驗證集,5 000張圖像的測試集以及113 287張圖像的訓(xùn)練集三個部分進行模型的訓(xùn)練、驗證以及測試。使用BLEU(B1,B2,B3,B4)[24],ROUGE-L(R)[25]以及CIDEr-D(C)[26]作為評價指標(biāo),并以百分比值作為結(jié)果。
數(shù)據(jù)集中的每一幅圖像包含與之對應(yīng)的5 句英文描述,將所有描述語句中的單詞轉(zhuǎn)換為小寫字母進行拆分,最終得到大小為9 957 的標(biāo)準(zhǔn)詞嵌入詞表。對于模型中的超參數(shù),將Bottom-Up 的特征維度設(shè)置為2 048,多頭注意力層中的特征維度與個數(shù)h分別為1 024、8,每一個頭的特征維度為128,標(biāo)準(zhǔn)詞嵌入與ELMo 詞嵌入的特征維度為1 024。在訓(xùn)練過程中,使用crossentropy 損失函數(shù)訓(xùn)練30 個周期,本文設(shè)置批次大小為10,使用Adam 優(yōu)化器進行優(yōu)化,學(xué)習(xí)率為0.000 5,momentum動量為0.9。
3.3.1 定量分析
本文進行了一系列對比實驗,來定量地證明本文模型的有效性。首先將使用Bottom-UP 注意力機制的圖像特征以及LSTM 作為解碼器的模型作為基線模型與多模態(tài)圖像描述Transformer(MCT)進行對比;其次將使用ELMo 詞嵌入的ELMo-MCT 模型與以上兩個模型進行對比。表1 為實驗結(jié)果。從表1 可以看出MCT 模型以及ELMo-MCT模型相比較于基線模型在CIDEr得分上分別提高了2.8 以及4.9 個百分點,更進一步,ELMo-MCT 模型,在所有指標(biāo)上均優(yōu),相較于MCT 模型,在BLEU-1、BLEU-2、BLUE-3、BLEU-4、ROUGE-L以及CIDEr上有了0.6、0.7、0.7、0.5、0.4以及0.9個百分點的提高。
表1 消融實驗Table 1 Ablationexperiment單位:%
而在所有指標(biāo)之中CIDEr提高的分?jǐn)?shù)最為明顯,而BLUE以及ROUGE-L提高的得分相對平均。針對不同指標(biāo)的意義來說,BLEU 以及ROUGE-L 主要是根據(jù)N-gram或者最長公共子序列在候選語句中出現(xiàn)的次數(shù)來判斷生成結(jié)果的優(yōu)劣,本質(zhì)上差別不大,而CIDEr 雖然也是基于N-gram 的算法,但是它計算的是相似度,來實現(xiàn)最終的得分,而本章模型,引入ELMo 來進行詞向量編碼,模型生成的語義更加豐富,所以出現(xiàn)了在CIDEr分?jǐn)?shù)上升的比BLEU分?jǐn)?shù)更高的情況。
其次,本文還驗證了不同深度下網(wǎng)絡(luò)模型的效果。如表2 與表3 所示??梢钥吹诫S著深度的增加,模型的效果呈遞減的趨勢。這說明在深度增加的過程中,在模型的計算會遺漏一些信息,使得模型的效果變差。
表2 MCT不同深度實驗結(jié)果對比表Table 2 Comparison of MCT test results on different depths 單位:%
表3 ELMo-MCT不同深度實驗結(jié)果對比表Table 3 Comparison of ELMo-MCT test results on different depths單位:%
最后可以從表4得到模型的整體表現(xiàn),從中可以看出本文的模型與大多經(jīng)典模型相比在所有指標(biāo)上都有比較好的效果,與Bottom-LSTM這種基線模型相比本文的模型在CIDEr得分上分別提高了2.8與4.9個百分點。
表4 ELMo-MCT模型整體表現(xiàn)Table 4 Overall performance of ELMo-MCT model單位:%
3.3.2 定性分析
對本文模型的效果進行了定性分析(圖4)。首先對于6 層MCT 模型的注意力進行了可視化分析,具體如下。
圖5 給出的是多模態(tài)解碼器中不同層數(shù)中的文字模態(tài)內(nèi)的注意力可視化表示。其中顏色條坐標(biāo)值代表相互關(guān)系,數(shù)值越大代表相對關(guān)系越高。從圖5(a)中可以看出,在第一層中獲得注意力得分最高的位置都是在圖像的對角線,這說明在第一層中模型并沒有學(xué)習(xí)到兩兩的相互關(guān)系。而在圖5(b)中,“umbrella”與“holding”在圖像中以紅色出現(xiàn),獲得了較高的注意力分?jǐn)?shù),這說明在第六層中,模型學(xué)習(xí)到了文字模態(tài)內(nèi)部的相互關(guān)系。
圖6 給出的是多模態(tài)編碼器中不同層數(shù)中的圖像模態(tài)內(nèi)的注意力可視化表示,坐標(biāo)為0 到46 分別對應(yīng)圖4 中的各個Bottom-UP 區(qū)域中的圖像特征。可以看出,在多模態(tài)編碼器的第一層中(圖6(a)),獲得注意力得分最多的只有少部分區(qū)域,而且集中出現(xiàn)在第22列,這代表第22 列所表示的目標(biāo)與圖像中的大部分區(qū)域都有相互關(guān)系,結(jié)合圖4,序號22 代表的圖像區(qū)域為“雨傘”,且處在圖像的最中心,所以,模型將它與外界事物都聯(lián)系了起來,由此可以分析出,在多模態(tài)編碼器的第一層,模型只學(xué)習(xí)到很少一部分的相互關(guān)系。而在第六層(圖6(b)),可以明顯地發(fā)現(xiàn),色塊變多而且顏色變重,獲得注意力得分也變多,說明模型學(xué)習(xí)到了大部分目標(biāo)的相互關(guān)系,鑒于此,從反方向進行分析,針對得分最少的第20 列,可以看出第20 列與圖像中的關(guān)系甚微,而第20列目標(biāo)為天空,并且在Ground Truth中并沒有提及,說明在訓(xùn)練的過程中,模型已經(jīng)學(xué)習(xí)到了很多信息,從而出現(xiàn)了這種結(jié)果。
圖7 與圖8 分別表示的是多模態(tài)解碼器中第一層與第六層的圖像與文字模態(tài)間的注意力可視化,其中縱軸代表描述語句,而橫軸代表圖4 中各個Bottom-UP區(qū)域中的圖像特征??梢钥闯鲈诘谝粚?,模型學(xué)習(xí)到的效果較差,得分較高的很多詞語以及目標(biāo)之間的關(guān)系都是不正確的,而在第六層,模態(tài)之間的相互關(guān)系變得非常明確。
圖9 分別給出的是ELMo-MCT 與MCT 的Loss 曲線圖,將得到的原始圖像做平滑處理得到了波動較小的Loss對比曲線圖,如圖10所示。可以看出,ELMo-MCT模型相較于MCT 模型在訓(xùn)練的過程中,可以獲得更低的Loss值。這說明使用融合ELMo詞嵌入編碼的模型,在訓(xùn)練過程中具有一定的指導(dǎo)意義,可以使得模型獲得與候選語句更接近的圖像描述。
圖11 為ELMo-MCT 模型與MCT 模型針對所給圖像而得到的圖像描述對比圖。其中綠色、黃色以及藍色字體的描述語句分別代表2 層、4 層以及6 層MCT 所給出的描述語句,而紅色為ELMo-MCT 模型所給出的描述語句,從中可以很清楚、很直觀地看出ELMo-MCT模型的效果更為優(yōu)秀。所給出的描述更加準(zhǔn)確而且語義更加豐富。具體表現(xiàn)在圖中紅色字體的劃線部分。更進一步的,如圖12 所示,從其中的劃線部分可以看出,融合ELMo 詞嵌入的MCT 模型,在訓(xùn)練過程中根據(jù)Ground Truth中的相關(guān)單詞,模型聯(lián)系上下文信息與語境,學(xué)習(xí)到了候選語句之外的表達,使得語義更加豐富。這說明引入ELMo 進行詞嵌入編碼的ELMo-MCT模型具有更加優(yōu)秀的性能。
當(dāng)前的圖像描述算法主要采用編碼-解碼模型,并采用注意力來提高模型的效果,但是這種做法大多只是在模態(tài)間進行注意力,并使用Word2Vec或者Glove來進行文本的編碼,使得模型遺失了很多的有效信息。本文針對圖像描述提出了一種多模態(tài)Transformer模型來進行模態(tài)內(nèi)與模態(tài)間注意力的聯(lián)合建模,從而改善模型的效果。此外提出ELMo與標(biāo)準(zhǔn)詞嵌入的聯(lián)合編碼方式,使模型獲得更加豐富的語義信息,提高了模型的語義描述能力。本文在公開數(shù)據(jù)集MSCOCO上進行了大量實驗,定量與定性地分析本文模型的效果,實驗證明本文模型有較好的圖像描述能力。