張 凱,李軍輝,周國棟
(蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)
自然語言處理(Natural Language Processing, NLP)和計算機視覺(Computer Vision, CV)是當前人工智能領域研究的兩大熱點。而跨領域研究則已經成為了未來研究的一種趨勢,引起了研究者極大的興趣。圖像的語言描述(Image caption)是結合計算機視覺和自然語言處理的一項跨領域研究,該技術最早由Farhadi[1]等人提出,給定二元組(I, S),其中I表示圖像,S表示對該圖像的描述,模型要完成I->S的映射。學習到圖片對應的描述,然后用訓練完成的模型實現(xiàn)隨機給的一張圖像,描述圖像的內容?!翱磮D說話”對正常人來說非常簡單,但這對于計算機來說是一項極大的挑戰(zhàn),計算機不僅僅要識別圖片的內容,還要用人類的邏輯思維描述出人類可讀的句子。
當前圖像描述生成的主流方法是基于神經網(wǎng)絡的方法,需要大量圖像到目標語言的訓練數(shù)據(jù)才能獲得較好的性能。由于圖像描述語料的目標端語言僅為英文,目前圖像描述生成的研究僅局限于英文圖像描述的生成。但是在很多情況下,圖像到目標語言為非英文的標注語料資源為零,因此研究圖像到目標語言為非英文的描述生成是一項嚴峻的挑戰(zhàn)。本文提出在只有圖像到英文描述語料,而沒有圖像到中文描述語料的情況下,如何利用機器翻譯技術進行圖片的跨語言描述生成,即生成圖像的中文描述。基于這種假設,本文提出兩種方法生成圖像的中文描述。一種是串行法,該方法先訓練圖像到英文描述模型,然后利用訓練好的模型,為隨機給定的一張圖像,生成其對應的英文描述,再利用翻譯模型將得到的英文描述翻譯成中文描述;另外一種構建偽語料法,該方法先利用翻譯模型將圖片-英文描述語料中的英文描述翻譯成中文描述,這樣得到同等規(guī)模的圖像-中文描述偽標注語料;這樣可以訓練圖像到中文描述模型,然后利用訓練好的模型,隨機給定一張圖像,生成其對應的中文描述。
對于第二種構建偽語料方法而言,在訓練的時候考慮到一個英文單詞可能對應于一個中文短語,因此,生成中文描述的時候,必須結合中文的詞組的形式,可以先將中文句子分詞,進行基于詞的圖像中文描述生成;又考慮到中文中每個字都可以和其他字組合成不同的詞,因此每個字都是一個獨立的個體,也可以不用對句子分詞而進行基于字的圖像中文描述生成。
本節(jié)先描述圖像描述生成技術的相關工作,再描述機器翻譯領域基于樞軸語言的翻譯技術。
與神經機器翻譯類似,圖像描述(image caption)采用的神經網(wǎng)絡模型通常由編碼器和解碼器兩部分組成。編碼器使用卷積神經網(wǎng)絡(CNN) 將每張圖片轉化為一個固定長度的向量,也稱圖像的隱層表示;解碼器使用循環(huán)神經網(wǎng)絡(RNN)將編碼器輸出的固定長度的向量解析為目標語言的句子。Mao[2]等人在基于傳統(tǒng)CNN編碼器-RNN解碼器的神經網(wǎng)絡模型的基礎上,提出并使用多模態(tài)空間為圖像和文本建立聯(lián)系。Vinyals[3]等人提出了神經圖像描述(Neural Image Caption,NIC)模型, 該模型將圖像和單詞投影到多模態(tài)空間,并使用長短時記憶網(wǎng)絡生成英文描述。Jia[4]等人提出了gLSTM模型,該模型使用語義信息指導長短時記憶網(wǎng)絡生成描述。Xu[5]等人將注意力機制引入解碼過程,使得描述生成網(wǎng)絡能夠捕捉圖像的局部信息。Li[6]等人構建了首個中文圖像摘要數(shù)據(jù)集 Flickr8kCN,并提出中文摘要生成模型 CS-NIC,該方法使用GoogleNet[7]對圖像進行編碼,并使用長短時記憶網(wǎng)絡(LSTM)對圖像描述生成過程建模。
在零資源或低資源的情況下,利用其它語言訓練神經機器翻譯模型近年來引起了廣泛關注。Orhan Firat[8]等人提出多途徑、多語言神經機器翻譯,所提出的方法使得單個神經翻譯模型能夠在多種語言之間進行翻譯,其中許多參數(shù)只與語言數(shù)量成線性增長。通過在所有語言對之間共享單個關注機制來實現(xiàn)。Cheng[9]等人提出基于軸的神經機器翻譯,為了提高源端到目標端翻譯質量,同時提高源端到軸和軸到目標端的翻譯質量。Nakayama[10]等人實現(xiàn)零資源機器翻譯,利用圖像作為軸心,并訓練多模態(tài)編碼器以共享通用的語義表示。
目前并未發(fā)現(xiàn)零資源情況下,圖像描述生成方面的研究。
在本文提出的兩種圖像中文描述生成方法中,都包含兩部分模塊,分別對應翻譯模型和圖像描述生成模型。翻譯模型將英文描述翻譯成中文描述,圖像生成描述模型將圖像生成相應語言的描述。目前具有代表性的翻譯模型包括基于RNN和注意力機制的序列到序列模型[11]、基于CNN的序列到序列模型[12]以及基于自注意力機制的序列到序列模型[13]。由于翻譯模型本身并不是本文的研究重點,本文調用谷歌翻譯API (https: //translate.google.cn) 獲取描述的中文翻譯。
圖像描述生成模型利用編碼-解碼的架構。首先編碼器對圖像進行編碼,提取圖像視覺特征;再使用解碼器對視覺特征進行解碼,生成句子。給定一張圖像和對應的描述,編碼器—解碼器模型直接用式(1)最大化目標。
(1)
其中θ是模型要訓練的參數(shù),I表示圖片,
S={S0,…SN}表示對應圖像的描述。因為S表示任意長度的句子,它的長度不固定。利用鏈式法則,可以將聯(lián)合概率分布的對數(shù)可能性分解為有序條件:
(2)
本文使用卷積神經網(wǎng)絡(CNN)和長短時記憶網(wǎng)絡(LSTM)對圖像中文描述生成過程建模。在t=-1時刻,X-1=CNN(I)表示LSTM在這一時刻接收圖像內容,t>-1時,網(wǎng)絡的計算過程為ht=LSTM(xt,ht-1),其中xt∈Rm為t時刻的輸入,即xt=WeSt,St∈Rn為圖像對應描述的每個詞編碼成one-hot[14]向量,其維度大小等于字典的大小n。在每個句子序列中我們用S0表示特殊的開始符,用SN表示特殊的結束符。We∈Rn×m表示詞向量字典,m表示詞向量大小,ht∈Rd為隱藏單元狀態(tài), LSTM(·) 函數(shù)表示為式(3)。
(3)
其中it∈Rd為輸入門,ft∈Rd為遺忘門,ot∈Rd為輸出門,ct∈Rd為單元狀態(tài)門,Wi、f、o、c∈Rc×m和Ui、f、o、c∈Rc×d矩陣為要訓練的參數(shù),c為詞向量長度,d為隱藏狀態(tài)長度,(c=d)。公式(3)得到的隱
藏單元狀態(tài)和全連接層網(wǎng)絡的權重矩陣Wnet∈Rd×n相乘,饋送給Softmax函數(shù),產生所有單詞的概率分布,如式(4)所示。
Pt+1=Softmax (Wnetht)
(4)
其中Wnet是要訓練的參數(shù)。
模型的損失值是每一個正確單詞的預測概率的對數(shù)負值總和,如式(5)所示。
(5)
串行法首先訓練圖像到英文描述生成的模型,再利用訓練好的模型,將隨機給定的圖片,預測圖片生成的英文描述。然后將預測的英文描述使用翻譯模型翻譯成中文描述。
圖1是串行法圖像中文描述生成框架,首先將給定的一張圖像經過CNN提取圖像特征,圖像對應的英文描述句子加上特殊的開始符,編碼成one-hot[14]向量,圖中用圓球表示。接著將圖像特征和編碼向量用LSTM解碼,圖像特征作為LSTM的初始值,只在零時刻使用,編碼向量作為LSTM的輸入。生成英文描述的概率用PN,N={0,1...}表示。最后得到英文描述,利用翻譯模型翻譯成中文描述。
圖1 串行法圖像中文描述生成的模型框架
構建偽語料的方法是先將圖像對應的英文描述用翻譯模型翻譯成中文描述,形成圖像和中文描述的偽標注語料,接著用該偽標注語料訓練圖像到中文描述生成模型。這種方法可以直接由圖像得到它對應的中文描述??紤]到生成中文描述的方式,本文提出了兩種訓練生成模型的方法,分別是基于詞的方法和基于字的方法。
2.3.1 基于詞的中文描述生成
基于詞的模型框架,是將中文描述以詞的形式進行編碼。比如給定一句中文描述[一本書在街道旁的木凳上],其分詞結果為[“一本” “書” “在” “街道” “旁”“的”“木凳”“上”]。
圖2表示基于詞的訓練模型框架,首先是將英文描述使用翻譯模型得到中文句子,然后將中文句子分詞并且加上特殊的開始符,將處理后的句子編碼成one-hot向量;圖像特征使用CNN提取。類似地,訓練過程中,圖像特征作為LSTM的初始值,只在零時刻使用,編碼向量作為LSTM的輸入。生成中文描述的概率用PN,N={0,1...}表示。最后得到中文描述。
圖2 基于詞的模型框架
2.3.2 基于字的中文描述生成
基于字的方法是將中文描述以字為單位進行編碼。比如給定一句中文描述[一本書在街道旁的木凳上],將整個句子切分成字的形式[“一” “本” “書” “在” “街” “道” “旁” “的”“木”“凳”“上”]?;谧值哪P统酥形木渥有纬蒾ne-hot向量時是以每個字為單位之外,其余和基于詞的模型是一致的。
本文使用的數(shù)據(jù)集為MSCOCO2014[15],其中訓練集包含82 783張圖片,對應的英文句子描述共有414 114句,平均每張圖片對應5句不同的英文描述;開發(fā)集包含40 504張圖片,共202 655句英文描述,類似地每張圖片對應5句不同的英文描述;測試集包含40 775張圖片。特別地,為了評估中文描述生成的性能,我們從測試集隨機選取500張圖片,參照英文描述標注的方法,從不同角度由人工標注,為每張圖片標注5句不同的中文描述。因此,本文使用的測試集中僅限于這人工標注中文描述的500張圖片。
3.2.1 視覺特征提取網(wǎng)絡設置
視覺特征提取網(wǎng)絡CNN(I)完成I-> V(I)的特征映射,其中I為輸入的圖像,輸出為視覺特征向量V(I)。視覺特征的提取使用Inception-Resnet-v2[16]和InceptionV3[17]兩種結構,兩種結構均在大規(guī)模單標簽分類任務ImageNet[18]上進行訓練。本文使用兩種已經訓練好的結構提取視覺特征,用兩種結構的網(wǎng)絡隱藏層的輸出來表示提取到的視覺特征。首先對圖像進行縮放、裁剪、調整對比度清晰度得到大小為299×299的三通道RGB圖像,然后使用這兩種結構進行圖像特征提取。
? CNN模型使用Inception-Resnet-v2[14]時,隱藏層的輸出(32×8×8×1536)作為提取到的視覺特征。將視覺特征使用卷積核大小為(8×8)的平均池化層、平鋪之后得到(32×1536)的視覺特征。其中32是批處理的個數(shù)。再使用輸出為512的全連接層將得到的視覺特征映射為(32×512)的特征矩陣作為最終的視覺特征。
? CNN模型使用InceptionV3[15]時,隱藏層的輸出(32×2048)作為提取到的視覺特征,再使用輸出為512的全連接層將得到的視覺特征映射為(32×512)的特征矩陣作為最終的視覺特征。
3.2.2 兩種圖像描述生成方法設置
在串行法圖像中文描述生成方法中,需要建立圖像到英文描述的生成模型。為此,本文對圖像英文描述句子進行斷詞處理,對每個句子加入開始符“”,詞匯大小n設置為12 000,未登陸詞用
3.2.3 評測指標
本文的評測指標使用BLEU_1,2,3,4[21]、METEOR[22]、ROUGE_L[23]和CIDEr[24]七種指標衡量圖像描述生成結果的質量。其中BLEU一般是用在機器翻譯評測翻譯質量的,反映了生成結果與參考答案之間的N元文法準確率。METEOR測量基于單精度加權調和平均數(shù)和單字召回率。ROUGE_L與BLEU類似,它是基于召回率的相似度衡量方法。CIDEr是基于共識的評價方法,優(yōu)于上述其他指標。此外,為了減少分詞錯誤對評測的影響,本文在評測圖像到中文描述的性能時,中文端都是以字為單位進行評測。
以下我們分別報告并比較本文提出的兩種方法生成的中文描述的質量。
3.3.1 串行法圖像中文描述生成實驗結果
表1給出了串行法圖像中文描述生成的實驗結果。從中可以看出,Inception-Resnet-v2視覺特征提取算法取得的性能要優(yōu)于InceptionV3,這與大規(guī)模單標簽分類任務的觀察結果一致[16]。
本文的串行法圖像中文描述生成共包含兩個環(huán)節(jié)分別是圖像的英文描述生成以及英文描述的中文翻譯。為了更清晰地理解這兩個環(huán)節(jié)的性能,表2分別給出了英文描述生成的實驗結果,以及假定英文描述沒有錯誤情況下,中文描述生成的結果,即翻譯模型在測試集上的性能。如表2所示,Inception-Resnet-v2視覺特征抽取方法在第一個環(huán)節(jié)得到的英文描述性能BLEU_4值為0.274,表明自動生成的英文描述與人工標注存在著一定的差距。另一方面,基于正確的英文描述標注,Gold EN-ZH的BLEU_4性能達到0.708,這說明機器翻譯在短句翻譯上能夠取得較好的性能,這也與機器翻譯領域的研究一致[25]。綜合表1和表2,可以發(fā)現(xiàn),當英文描述由正確描述變?yōu)樽詣用枋鰰r,中文描述的性能BLEU_4值由0.708急劇下降為0.315,這也說明圖像描述生成任務本身較中英機器翻譯任務更具挑戰(zhàn)性。
表1 串行法圖像中文描述生成實驗結果
表2 圖像英文描述生成實驗結果(Image-EN)以及正確英文描述情況下的中文描述生成實驗結果(Gold EN-ZH)
3.3.2 構建偽語料法圖像中文描述生成實驗結果
以下分析,視覺特征抽取方法均使用Inception-Resnet-v2。
表3給出了構建偽語料法圖像中文描述生成的實驗結果,分為基于詞和基于字的中文描述生成。從表中可以看出,一方面,基于字的性能要優(yōu)于基于詞的性能。例如,從基于詞到基于字BLEU_4從0.328提高到0.341,METEOR從0.268提高到0.271。另一方面,無論是基于詞還是基于字,Inception-Resnet-v2視覺特征提取算法的性能均優(yōu)于InceptionV3,這和串行法得到的結論一致。
表3 構建偽語料法圖像中文描述生成實驗結果
從表1和表3可以看出,構建偽語料的方法性能明顯優(yōu)于串行法。例如,從串行法到構建偽語料法,BLEU_4從0.315提高到0.341,METEOR的值從0.256提高到0.271。
3.3.3 實例分析
圖3給出了兩張圖片生成的圖像描述結果。其中0和1分別表示人工標注的英文描述和中文描述。2表示串行法中得到的自動英文描述,3表示串行法中自動英文描述經過翻譯模型得到的中文描述。4和5是在構建偽語料方法下基于詞和基于字的方法分別得到的結果。從圖中可以看出,兩種方法得到的結果和人工標注的結果相比,都存在一定的預測錯誤。例如,左邊的圖片,在串行法中,由于自動生成的英文描述存在著不常用的表達句式“on top of a body of water”,導致翻譯得到的中文描述存在生硬及不自然的表達“在水體頂部”。相對而言,構建偽語料法得到的中文描述在表達上更加自然,特別地,構建偽語料法中基于字的模型得到的中文描述最好。
圖3 inception-Resnet-v2模型下預測的結果
表4給出在構建偽語料的方法中,基于詞和基于字的中文描述概率最高的四種預測結果及其概率,第一行表示人工標注的中文描述,稱為金標(Gold),第二行是基于詞的結果及其概率,第三行是基于字的結果及其概率。其中CNN模型采用Inception-Resnet-v2特征提取方法。基于詞的預測結果為“一個嬰兒拿著牙刷和牙膏?!保e誤地識別了圖像中并沒有的物體牙膏”,同時遺漏“牙刷”的數(shù)量修飾詞“一把”;另一方面,基于字的預測結果為“一 個 年 輕 的 孩 子 拿 著 一 把 牙 刷 。”,正確地預測了“牙刷”的數(shù)量修飾詞“一把”,但將“嬰兒”不是很準確地預測為“一 個 年 輕 的 孩 子”。
表5給出基于詞和基于字的情況下,隨機給定的一張圖片,模型預測的圖像的中文描述及其概率,以及每個字或詞預測下一個字或詞的概率,即模型經過softmax得到一個詞或字的概率。第一行表示人工標注的中文描述,稱為金標(Gold),第一列表示要預測描述的圖片,第二列表示基于詞的情況下模型預測的結果和概率,第三列表示基于字的情況下,模型預測的結果和概率。在本例子中,基于詞和基于字的預測結果差異性很小,僅在介詞選擇上不同。基于詞預測的中文描述為“雪地 里”,而基于字預測的中文描述使用更加準確的介詞“雪 地 上”。另外,基于詞預測的中文描述概率(p=0.008 602)高于基于字預測的中文描述概率(p=0.007 592),這說明雖然基于字的預測結果長度一般要長于基于詞的預測結果,但預測結果概率相差不大。
表4 構建偽語料法中基于詞和基于字的模型預測結果及其概率
表5 基于詞和基于字的情況下模型預測結果
本文提出了以英文為樞軸語言的圖像中文描述生成的兩種方法: 串行法和構建偽語料法。實驗結果表明構建偽語料法得到的系統(tǒng)性能高于串行法。另外本文在構建偽語料法的前提下,比較了基于詞和基于字的中文描述生成方法,實驗結果表明使用基于字的方法優(yōu)于基于詞的方法。
不論本文的串行法還是構建偽語料法,圖像描述生成都僅為一種語言(英文或中文)。在未來工作中,我們將考慮同時輸出兩門語言的描述,通過共享圖像的表示向量,目標端的兩門語言之間存在語義相近的特點,能夠幫助同時取得兩門語言上更好的描述。