張大任,艾山·吾買爾,宜 年,劉婉月,韓 越
(1.新疆大學信息科學與工程學院,新疆 烏魯木齊 830046;2.新疆大學新疆多語種信息技術實驗室,新疆 烏魯木齊 830046)
自然語言處理和計算機視覺兩個領域都是如今的研究熱點,圖像標題生成作為融合了自然語言處理和計算機視覺的交叉任務,同樣是人工智能領域的一個熱門方向.圖像標題生成是指利用機器學習、深度學習等方法和技術,生成能夠描述圖像視覺內容的文本語言,其在圖文轉換、信息檢索、智能人機交互等領域都能給人類生活帶來許多方便,具有廣泛的應用前景.
早期圖像標題生成任務解決方案可以分為基于檢索的方法[1]和基于模板的方法[2].這兩種方法依賴于數據集大小,且需要事先定義完整的物體、屬性與場景等概念,因此在生成標題的豐富性和流暢性上存在極大限制.近年來,人們把關注點放在基于深度神經網絡的圖像標題生成上,基于深度神經網絡的方法生成的標題在語法正確性、語義準確性和泛化能力方面有很好的效果.其中最經典的為Google公司提出的Neural Image Caption Generator模型[3],受機器翻譯領域編碼器-解碼器的框架[4]的啟發,使用基于卷積神經網絡(CNN)的GoogleNet替換機器翻譯模型中用于提取語言特征的循環神經網絡(RNN),使用該網絡提取圖像特征,再以循環神經網絡作為解碼器解碼卷積神經網絡提取出的圖像特征.這種在機器翻譯編碼器-解碼器框架下修正的模型對圖像標題生成任務產生很大的影響,相關工作主要是在此基礎上進行修改和改進.Aneja等[5]將卷積神經網絡作為解碼器并完成解碼操作,使訓練速度得到快速提高,同時對于卷積神經網絡存在的時序限制問題予以合理規避.
基于傳統CNN+RNN的編碼器解碼器的框架,Vinyals等[6]提出附加額外注意力機制的圖像標題生成模型,將從編碼器的卷積層取得的圖像特征,對圖像特征注意力進行加權,將加權后的特征向量發送至循環神經網絡對其完成解碼操作.Lu等[7]認為傳統采用的空間注意力機制在提取圖像中新特征時缺乏便捷性,于是提出“視覺哨兵”概念,將注意力的圖像特征權重與“哨兵向量”權重分別控制,構成Adaptive Attention模型.Anderson等[8]在2018年提出了結合自下而上和自上而下的注意力機制,采用Faster RCNN[9]等目標檢測模型,再利用傳統的自上而下的注意力機制來動態關注不同的物體.與之類似的還有文獻[10],通過在模型中添加目標檢測模塊,提高模型對圖像突出對象的描述能力.You等[11]試圖從圖像中發現更多的語義信息,并將語義屬性特征及視覺屬性特征融合到字幕模型中以提高描述質量.Chen等[12]提出了抽象場景圖(ASG)結構來表示用戶意圖,在細粒度的層次控制所生成的描述.Zhang等[13]通過與圖像描述模型相關任務之間的聯合訓練,從其他任務獲取知識,提高模型的準確性.
針對現有的圖像標題生成存在模型的訓練目標和評測標準無法匹配的問題,Rennie等[14]提出SCST框架,用強化學習方法對CIDEr[15]評價指標直接優化來訓練整體模型,使訓練階段更加穩定.Chen等[16]提出了一個新的基于條件生成對抗網的圖像字幕框架,作為傳統的基于強化學習的編解碼架構的擴展,顯著提高了圖像標題生成模型性能.
盡管圖像標題生成已取得如此優異的成果,但不可避免地存在許多問題,一是目前模型還是使用LSTM作為解碼器,而LSTM對較長序列不能很好地支持限制了模型性能;二是現有圖像標題生成模型基本都是針對英語且只能生成一種語言的文本描述.針對上述問題,本文提出了基于CNN與Transformer混合結構的多語言圖像標題生成模型.通過CNN對圖像提取后,使用Transformer中自注意力機制強化長序列單詞間的聯系,并通過多語言聯合訓練增強圖像標題生成質量,提高模型魯棒性.實驗表明,該模型比傳統基于LSTM的圖像標題生成模型質量更高,且可以同時生成多種語言的圖像標題.
在計算機視覺領域,基于深度學習方法的模型通常使用卷積神經網絡從圖像中提取特征,并輔以其他模塊來完成諸如分類和檢測之類的任務.而自然語言處理領域是對文本詞匯編碼,依據不同任務使用不同解碼器完成任務.與其他基于深度學習的研究工作一樣,當前基于序列學習的圖像標題生成模型也是端到端的訓練,同樣遵循了機器翻譯任務中編碼器解碼器模型的基本框架,如圖1所示.在機器翻譯任務中,編碼器解碼器框架主要是為了解決不同語言的同一句子之間的長度不匹配的問題,該框架將待翻譯語句轉化為固定長度的中間向量,之后再借助循環神經網絡作為解碼器解碼成為目標語言的表達形式.

圖1 機器翻譯中編碼器解碼器結構
以往有關機器翻譯的工作的研究為圖像標題生成任務提供了一些啟發.在機器翻譯任務中,輸入和輸出都是單詞序列.而在圖像標題生成模型中,從卷積特征到自然語言生成的步驟非常相似.研究人員試圖對編解碼器進行簡單的更改,在圖像標題生成任務中取得了良好的效果.具體而言,基于卷積神經網絡在計算機視覺領域的成功經驗,將VGGNet、GoogleNet、ResNet等網絡結構用作編碼器以提取圖像的卷積特征.在解碼階段,由于生成的描述語句中的單詞具有明顯的上下文關系,因此使用基于循環神經網絡的解碼模塊.

圖2 注意力機制算法流程
注意力機制模型的算法流程如圖2所示,其計算過程可以分成3個階段,分別是相似度度量、權重值計算以及最后相對于基準向量的注意力向量計算.
在相似度度量階段,假設解碼器上一時刻的隱藏層輸出St-1,通常是用一個Fatt函數將St-1與編碼器各位置的圖像特征vi做相似度計算,得到像素區域和語言之間的相似度eti,計算公式為
eti=Fatt(St-1,vi).
(1)
在完成第一階段的相似性度量之后,需要對得到的相似性數值進行歸一化處理,避免數值取值范圍不同造成的不良影響.具體做法是把計算結果通過一個Softmax函數來轉化為概率,得到權重α,計算公式為
(2)
對得到的權重和相對應的輸入進行加權求和,即可得到最終的注意力向量Ct,并作為解碼器當前的部分輸入,從而生成Yt,計算公式為:
(3)
Yt=Decoder(Ct,St-1,Yt-1).
(4)
在RNN或者LSTM中,需要按照單詞的連續序列進行計算,從而獲得依賴信息,通過注意力機制,語言模型能夠生成單詞的不同時刻,找到需要關注的視覺區域,起到特征融合的作用.
機器翻譯領域提出的Transformer模型,是為了解決LSTM不能并行計算和不能較好支持較長距離序列依賴的問題,使用注意力機制去捕獲更深層的關聯特征.Transformer由多個模塊堆疊而成,其中每個模塊中的多頭注意力機制由多個自我注意力機制組成.Transformer對傳統的自我注意力機制進行了改進,這里稱為縮放點積注意力機制(scaled dot-product attention),縮放點積注意力機制是Transformer 的核心組件,由查詢(Query)、鍵(Key)和值(Value)三部分組成.
縮放點積注意力機制的計算過程:使用所有鍵和查詢進行點積計算并除以d,點積后的結果經過一個Softmax函數獲得注意力機制在值上的權重.在計算注意力時,一般將鍵和值分別打包成矩陣K={k1,k2,…,kn}和矩陣V={v1,v2,…,vn}.加權在查詢對應的矩陣Q={q1,q2,…,qn}上的注意力權重并行計算可以表示為
竹節蓼藥材的HPLC指紋圖譜建立及聚類分析…………………………………………………… 黎 理等(12):1640
(5)
Transformer中使用的不是單獨的自我注意力機制,而是一種多頭注意力機制,讓模型處理來自不同表示子空間的各種信息.多頭注意力機制包含n個平行的頭(head),其中每個頭都會經過一個獨立的縮放點積注意力機制.經過多頭注意力機制的加權特征MF可以表示為:
(6)
MultiHead(Q,K,V)=Concat(head1,…,headn)WO.
(7)

Transformer架構在大小和計算規模上都比傳統的CNN更具效率和可擴展性.在計算機視覺領域中采用Transformer的相關工作中主要有兩種模型架構:一種是純Transformer結構;另一種是將CNN主干網與Transformer相結合的混合結構.本文采用的是基于CNN與Transformer的混合結構(見圖3).

圖3 CNN與Transformer混合模型
如圖3所示,本文的模型共分為3個模塊,分別是圖像特征提取部模塊、特征編碼模塊、語言模型解碼模塊.特征提取部分將輸入圖像通過卷積神經網絡轉換為特征圖,添加位置編碼后輸入特征編碼模塊;特征編碼模塊將特征圖進行轉換,學習特征圖像素之間的關系,傳入語言解碼模塊;語言模型解碼模塊根據編碼后的特征及傳入的文本標題,生成預測標題句子,將生成標題與實際標題計算損失得到損失值,反向傳播進行參數優化,最終生成符合人類語言習慣的圖像標題句子.
在多語言圖像標題生成方面,本文借鑒了多任務學習參數硬共享的模式,通過在不同任務中使用相同功能的網絡參數,而同時保持不同任務中不同功能參數之間的差異性來設計模型.這種方式在一定程度上可以提升模型的性能,減輕過擬合.因為越多任務同時學習,模型就越能捕捉到多個任務中相同的特征表示,相當于多個任務的數據集同時訓練相同的網絡層從而提高模型的性能.
通過對不同語言的預處理,無須添加額外解碼器,單編碼器單解碼器同樣可以實現多語言圖像標題生成,參考多語言機器翻譯,在語言輸入模型時提前在句子開頭添加語言標簽,通過這樣的方式標明輸入的句子屬于哪種語言,之后混合多種語言統一訓練,實現一個模型輸出多個語言.
由于數據集中6種語言所屬語系的差別,不同語言間聯合訓練可能會有不一樣的效果,因此我們根據語言相似度及語系,劃分出5種組合分別訓練,由遠至近分別為英語與漢語、英語與俄語、哈薩克語與維吾爾語、烏茲別克語與維吾爾語以及所有語言的混合訓練.多語言圖像描述對于文本預處理有更高的要求,由于語言之間的差別,訓練不可避免會出現許多干擾,為在這種情況下減少干擾,挖掘語言信息,提升多語言模型生成效果,由于多語言語料庫中的某些命名實體具有語音相似性,本文采取了將輸入模型的語言拉丁化,把多語言數據集中的不同語言轉換為普通拉丁文.
深度學習相關的圖像標題生成方法的發展離不開包含成對圖像標題的公開數據集.針對多語言數據集稀缺的情況,本文對圖像標題生成領域的小型通用數據集Flickr8K[17]進行多語言標注,數據集規模如表1所示,為了把英語的數據集擴展為多語言的數據集,采用機器翻譯的方法,其具有良好的擴展性,更容易擴大訓練數據規模.機器翻譯與人工校對相結合的方式作為構建數據集主要方法,盡可能獲得高質量多語言圖像標題生成數據集.

表1 數據集規模
本文對比谷歌翻譯、百度翻譯、有道翻譯和民族翻譯局等幾個公開翻譯網頁接口,選擇的構建方案是將原始英文數據通過谷歌翻譯將其翻譯為俄語、哈薩克語和烏茲別克語.將原始英語通過有道翻譯將其翻譯為中文.將校對后的中文通過民族翻譯局將其翻譯為維吾爾語.最終獲得包含英語、漢語、俄語、哈薩克語、烏茲別克語和維吾爾語共6種語言的多語言Flickr8K圖像標題生成數據集,將標題句子分詞,去除標點符后,對句子長度進行統計,結果如圖4所示,可以發現構建的多語言數據集句子長度分布較為相似,通過機器翻譯與人工校對相結合構建的多語言Flickr8K圖像標題生成數據集與原始分布相近且標注質量較好.

圖4 6種語言句子長度統計
實驗在Ubuntu18.04操作系統上進行,GPU為GeForce RTX 2080 Ti(11 GB),CPU為Intel(R) Core(TM) i5-9400F CPU @ 2.90 GHz處理器,內存32 GB.Pytorch版本1.4.0,Torchvision版本0.5.0,FairSeq版本0.9.0.使用預訓練的resnet101作為特征提取器,解碼器為完整的Transformer模型,Transformer層數為4,詞向量維度為256,隱藏層維度為512,Batch Size為32,Dropout為0.5,激活函數為Swish,多頭注意力頭的個數為8,全連接隱藏層狀態為4 096,優化器方法是Adam,Label smoothing=0.1,學習率衰減方法為noam,訓練epoch為100.解碼階段采用Beam Search策略來進行預測,Beam Size大小為5.預處理時使用Uroman工具將所有語言進行拉丁轉化.
評價模型表現的優劣會用不同的評價指標描述,并且不同的評價指標側重不同的角度進行評估.本文實驗使用的評測指標有BLEU[18](Bilingual Evaluation Understudy)、METEOR[19](Metric for Evaluation of Translation with Explicit Ordering)、ROUGE[20](Recall-Oriented Understudy for Gisting Evaluation)和CIDEr[15](Consensus-based Image Description Evaluation).
BLEU是一個基于N-gram共線統計的指標,用來衡量兩個句子之間的相似性.根據兩個句子的N-gram共線頻率,可以計算出所生成的句子對于參考句的查準率.METEOR在計算兩個句子的相似程度時,同時考慮同義詞等相關信息,利用同義詞庫作為輔助信息,計算生成的描述句對于參考描述性句的準確性與召回率之間的調和平均.ROUGE類似于BLEU,本文采用了基于最大公共序列的ROUGE-L來計算召回率.CIDEr通過對每個n元組進行TF-IDF權值計算測量圖像描述的一致性.這4個指標均是值越大,表明模型越好.其中BLEU-1、BLEU-2、BLEU-3、BLEU-4、METEOR、ROUGEL、CIDEr指標分數分別由B_1,B_2,B_3,B_4,M,R,C表示.
僅使用英文單語言訓練,與主流的神經網絡圖像標題生成模型對比,同時對比不使用混合結構的Transformer圖像標題生成模型,結果如表2所示.

表2 不同模型結構下實驗結果
從表2可以看出,與基礎的NIC模型相比,添加注意力后的圖像標題生成模型提升效果顯著,在各個指標上都有明顯提升,改進的軟注意力機制與自適應注意力機制有較為明顯的差距.與傳統的CNN+RNN圖像標題生成模型不同,兩種基于Transformer的圖像標題生成模型之間差距極大.僅靠Transformer模型進行圖像特征提取及圖像標題生成,最終結果極差,幾乎不能生成完整的句子;而CNN與Transformer的混合模型卻比傳統的圖像標題生成模型有更好的評測分數,將BLEU-4值從18.3提升到23.6,相對于原始NIC模型提升幅度達到28.9%.這兩組實驗說明在數據規模較小的情況下,僅靠Transformer模型實現圖像標題生成并不可行,而使用CNN進行特征提取,將原始LSTM替換為在自然語言處理領域效果更好的Transformer模型是提升小規模數據集效果的一種可行方法.
對于多語言聯合訓練,本文根據語系按相關性由遠至近的原則,對6種語言分成5組分別進行實驗,英語、漢語屬于不同語系,英語、俄語屬于同一語系不同語族,哈薩克語、維吾爾語屬于統一語族不同語支,維吾爾語、烏茲別克語則語系語族語支都相同.將6種語言進行混合訓練,所有實驗結果如表3所示.

表3 不同語言混合訓練結果
通過實驗結果可以看出,多語言聯合訓練對大多數語言是有所提升的,烏茲別克語與維吾爾語聯合訓練在質量相對平均的情況下,兩種相似語言的聯合訓練帶來了明顯的提升.英語和漢語聯合訓練也有較好的提升,這兩種語言盡管形態差異大,但數據質量較高,因此聯合訓練會有較好結果.英語和俄語、高質量與質量一般形態相近的兩種語言聯合訓練,效果反而有所下降.6種語言混合訓練在英漢上會有進一步提升,俄語和哈薩克語與混合前相當,而烏茲別克語與維吾爾語盡管有所提升但還是不如僅使用兩種語言聯合訓練.這些都說明在小規模數據上,數據集質量對模型的影響比語言學上的相關性要顯著得多.盡管如此,在數據集質量相同的情況下,盡可能使用語種相近的語言進行多語言聯合訓練,是未來多語言圖像標題生成的改進方向.為了直觀地看出聯合訓練后模型的性能,給出一些模型生成的例子,生成的例子如圖5所示.

圖5 圖像標題生成結果
實驗表明,本文提出的基于CNN與Transformer混合結構的多語言圖像標題生成模型比傳統基于LSTM的圖像標題生成模型質量更高,且可以同時生成多種語言的圖像標題,顯著提升了圖像標題生成模型的應用范圍.
本文首先介紹了現有圖像標題生成任務的常見方法,分析存在的問題:一是目前模型還是使用LSTM作為解碼器,而LSTM對較長序列不能很好地支持,限制了模型性能;二是現有圖像標題生成模型基本都是針對英語且只能生成一種語言的文本描述.針對上述問題,本文拓展基于公開數據集的多語言圖像標題生成數據集,提出了基于CNN與Transformer混合結構的多語言圖像標題生成模型.實驗表明,該模型比傳統基于LSTM的圖像標題生成模型質量更高,且可以同時生成多種語言的圖像標題,顯著提升了圖像標題生成模型的應用范圍.
雖然實驗效果較好,但仍然存在不足之處.實驗數據集規模相較于英文通用圖像標題生成數據集還是較小.未來將在增加語料的同時可以引入強化學習方法,對最終結果進行進一步優化,得到更好的評測分數,而如何在圖像標題生成數據量不足的情況下,通過各種方法提升生成標題的質量也是未來需要研究的問題.