倪玉航,張杰
(1.江蘇理工學院機械工程學院,江蘇常州 213001;2.江蘇理工學院計算機工程學院,江蘇常州 213001)
隨著計算機視覺和自然語言處理領域的快速發(fā)展,圖像字幕生成作為一項重要的任務,受到了越來越多的關注。圖像字幕生成旨在讓計算機自動地使用文本對給定的圖像加以描述,其在圖像檢索、人機對話、盲人導航和自動安防等領域被廣泛使用[1]。受神經(jīng)機器翻譯發(fā)展的啟發(fā),注意力機制已經(jīng)廣泛應用于當前的編碼器-解碼器圖像字幕框架,并取得了令人矚目的成果。目前的圖像描述框架中,通常是先通過網(wǎng)絡將圖像編碼為一組特征向量,然后通過基于RNN的網(wǎng)絡解碼為單詞,其中,注意力機制通過在每個時間步上生成提取的特征向量的加權平均值來指導解碼過程[2]。然而,這些方法存在一定的局限性,如提取的特征不夠充分、注意力容易被誤導等。為了克服這些問題,近年來,預訓練模型和對注意力機制的改進被廣泛應用于圖像字幕生成領域。
本文將預訓練模型與注意力疊加相結合,提出了一種基于預訓練模型和注意力疊加(Attention on Attention)[3]的圖像字幕生成框架,該框架結合了最新的技術和模型,用于提高字幕生成的質(zhì)量和性能。具體而言,編碼器部分采用了預訓練的CLIP(Contrastive Language-Image Pre-Training)[4]模型及精煉模塊,用于提取更好的圖像特征。在解碼器部分,采用了預訓練的GPT-2[5]模型、LSTM[6]模型和注意力疊加模塊,以更準確地生成字幕。首先,將原始圖像輸入CLIP模型中,獲得圖像的特征信息;然后,將原始圖像特征輸入精煉模塊,以獲取更好的經(jīng)過改進的圖像特征,將與圖像配對的真實字幕文本輸入GPT-2 中,獲得文本輸入特征;最后,將改進后的圖像特征和文本特征輸入LSTM 模型中,生成相應的圖像描述。在公共圖像數(shù)據(jù)集上的實驗結果表明,基于預訓練模型和注意力疊加的圖像字幕生成框架相比傳統(tǒng)方法具有更好的性能。
圖像字幕生成作為一項跨模態(tài)的任務,近年來吸引了大量研究者的關注。通常,圖像字幕生成模型首先將輸入圖像編碼為特征向量,然后使用這些向量生成最終的單詞序列[7]。早期的圖像描述方法采用基于模板或基于檢索的方法?;谀0宓姆椒ㄊ侵冈陬A設的模板字幕文本上采用填詞的方法來生成字幕,這種方法通常通過檢測圖像中的對象、屬性和動作來填充模板中的空白部分,從而生成語法正確的字幕文本。然而,這種方法只能在預定義的模板上操作,缺乏靈活性?;跈z索的方法通過檢索現(xiàn)有的字幕文本數(shù)據(jù)庫來生成字幕文本,這種方法首先在文本數(shù)據(jù)庫中查找公共特征子空間中距離較近的語句文本,然后將其作為候選字幕輸出,這種方法不受預定義模板的限制,更加靈活。
近期主要采用基于深度神經(jīng)網(wǎng)絡的方法,具體來說,是利用受神經(jīng)機器翻譯發(fā)展啟發(fā)的深度編碼器-解碼器框架。Vinyals等人[8]提出了一個端到端的框架,其中CNN 將圖像編碼為特征向量,LSTM 將其解碼為描述語句。Xu 等人[9]將CNN 特征圖上的空間注意力機制用于融合視覺上下文。Lu等人[10]提出了一種基于空間注意力和通道注意力的模型。Yao等人[11]在編碼器-解碼器框架中引入了自適應注意力機制,以決定何時激活視覺注意。隨后,更復雜的信息,如對象、屬性和關系,被整合到圖像描述中,以生成更好的描述。
近年來,預訓練模型的出現(xiàn)將計算機視覺(CV)和自然語言處理(NLP)等單模態(tài)領域帶入了一個新時代。大量的工作表明,預訓練模型有益于下游單模態(tài)任務,并避免了從頭開始訓練一個新模型。近來,研究人員發(fā)現(xiàn)預訓練模型可以應用于跨模態(tài)任務,包括跨模態(tài)檢索與跨模態(tài)生成。以跨模態(tài)檢索[12-15]為例,預訓練模型通過在大規(guī)模的多模態(tài)數(shù)據(jù)上進行預訓練,學習到了豐富的跨模態(tài)表示[16]。這些表示不僅包含了圖像、文本、音頻等單模態(tài)特征,還能夠捕捉到不同模態(tài)之間的語義關聯(lián)和相似性。
CLIP 模型用于聯(lián)合表示圖像和文本描述。CLIP模型包括2個編碼器,一個用于視覺,另一個用于文本。CLIP模型在無監(jiān)督的對比損失引導下訓練了超過4億個圖像-文本對,生成了豐富的語義潛空間,同時,適用于視覺和文本數(shù)據(jù)。許多工作已經(jīng)成功地使用CLIP 模型進行需要理解某些輔助文本的計算機視覺任務,例如:基于自然語言條件生成或編輯圖像。本文利用CLIP 模型的圖像編碼器進行輸入圖像的特征提取任務。
GPT-2模型是一種強大的自然語言處理預訓練模型,其使用了改進的transformer 架構,并通過大規(guī)模的無監(jiān)督語言模型預訓練來建立語言的深層次理解。預訓練過程中,GPT-2 模型在大量的文本數(shù)據(jù)上進行自我監(jiān)督學習,以預測下一個詞的概率分布。預訓練完成后,GPT-2 模型可以用于各種下游NLP任務,例如文本生成、文本分類和命名實體識別等。為了對輸入的真實字幕描述進行嵌入表示,本文使用GPT-2 模型進行文本特征提取任務。這一過程可以更好地幫助解碼器理解輸入字幕描述的語義信息,并為后續(xù)的文本生成任務提供更加準確和有用的文本特征。
本節(jié)首先介紹了注意力疊加(Attention on Attention,簡稱AoA)模塊,然后展示了如何將預訓練模型和注意力疊加模塊結合起來,應用在圖像編碼器和字幕解碼器中,從而構建出基于預訓練的注意力疊加方法的圖像字幕生成模型。
注意力機制[17]源于人類的直覺,已廣泛應用于各種序列學習任務,并取得了重大的進展。在注意力機制中,首先,為每個候選向量計算重要性分數(shù);然后,使用softmax 函數(shù)將分數(shù)歸一化為權重;最后,將這些權重應用于候選向量以生成注意力結果,即加權平均向量。另外,還有許多已經(jīng)被應用在圖像字幕生成領域的其他注意力機制,例如:空間和通道注意力[18]、堆疊注意力[19]、多級注意力[20]、多頭注意力和自注意力[21]。
如圖1(a)所示,注意力模塊fatt(Q,K,V)接收查詢向量Q(queries)、鍵向量K(keys)和值向量V(values),并對它們進行操作以生成加權平均向量?。首先,測量Q 和K 之間的相似性;然后,使用相似性得分計算V 上的加權平均向量。可以表示為:
式中:qi是Q 中第i 個查詢,kj是K 中第j 個鍵;vj是V 中第j 個值;fsim是計算每個qi和kj相似性得分的函數(shù);而? 是查詢qi所關注的向量。
注意力模塊對每個查詢都會輸出加權平均向量,不論查詢和鍵值對之間是否存在關聯(lián)。即使沒有相關的向量存在,注意力模塊仍然會生成加權平均向量V?,這可能會產(chǎn)生不相關甚至誤導性的信息。
因此,可以利用AoA 模塊來衡量注意力結果與查詢之間的關聯(lián),如圖1(b)所示。AoA 模塊通過2個單獨的線性變換生成“信息向量”i 和“注意力門控”g,這兩個變換都是在注意力結果和當前上下文(即查詢)q 的條件下進行的,公式如下:
AoA 模塊通過將注意力門控應用于信息向量,使用逐元素乘法添加了另一個注意力,得到所關注的信息?:
其中,⊙表示逐元素乘法,整個AoA 的流程可以表示為:
本文提出了一種基于預訓練模型與注意力疊加的圖像字幕生成模型,采用編碼器-解碼器的框架,其中編碼器和解碼器均嵌入了AoA 模塊。編碼器部分由預訓練的CLIP 模型及帶有AoA 的精煉模塊構成,用于提取圖像特征;解碼器部分由預訓練的GPT-2 模型、LSTM 模型及AoA 構成,用于生成圖像字幕。整體框架圖如圖2 所示。
圖2 基于預訓練模型與注意力疊加的圖像字幕生成模型框架
2.2.1 圖像字幕編碼器
本文對輸入的一張圖片I ,使用CLIP 模型提取一組圖像特征向量A={a1,a2,a3,…,ak},其中,ai∈?D,k 是向量集合A 中向量的數(shù)量,D 是每個向量的維度。
為了提高編碼器中特征的表示能力,在編碼器部分引入精煉模塊對編碼器輸出的特征進行進一步的處理。精煉模塊中包含了一個AoA 模塊,用于對原始圖像特征進行精煉,如圖3 所示。編碼器中的AoA 模塊采用了多頭注意力機制,其中Q,K 和V 是特征向量A 的3 個獨立線性投影。AoA 模塊之后接殘差連接和層歸一化,具體如下:
圖3 圖像字幕生成模型編碼器的精煉模塊
其中:WQe、WKe和WVe是3 個大小為D×D 的線性變換矩陣;fmh-att是多頭注意力函數(shù)。將每個輸入的Q、K 、V 沿通道維度分為h 份,本文中h=8,并對每個分片Qi、Ki、Vi應用縮放的點積注意力函數(shù)fdot-att,最后,將每個分片的結果連接起來,形成最終的注意力向量。具體如下:在這個精煉模塊中,多頭注意力模塊旨在尋找圖像中對象之間的交互關系,并應用AoA 來度量它們之間的相關性。在精煉后,更新圖像特征向量A →A'。精煉模塊不改變A 的維度,因此可以堆疊N 次(本文中N=6)。
2.2.2 圖像字幕解碼器
解碼器利用精煉后的圖像特征A 生成字幕序列y ,如圖4 所示。為了計算詞匯表上的條件概率,建立一個上下文向量ct:
圖4 圖像字幕生成模型解碼器框架
其中: I是輸入的圖片;Wp是待學習的權重參數(shù),Wp∈?D×|∑|;|∑|是詞匯表的大小。
上下文向量ct包含了解碼器當前的狀態(tài)以及利用注意力模塊得到的最新信息,注意力模塊可以是單頭或多頭注意力,其關注特征向量并與LSTM的輸出ht結合生成上下文向量ct。
解碼器中的LSTM 模型用于實現(xiàn)字幕解碼過程,LSTM的輸入包括當前時間步的輸入單詞嵌入以及視覺向量(a+ct-1)。其中,輸入單詞嵌入由GPT-2模型的嵌入層輸出,a 表示圖像特征向量,ct-1表示上一時間步的上下文向量(在初始步驟時,ct-1初始化為全零向量)。解碼過程可表示為:
其中:We是詞嵌入矩陣,We∈?E×|∑|,|∑|表示詞匯表的大?。弧莟是時間步t 時輸入單詞wt的獨熱編碼。
如圖4所示,對于AoA解碼器,ct是從被標記為AoAD的AoA模塊中獲取:
其中:WQd、WKd、WVd均為D×D 的線性變換矩陣;ht和mt為LSTM 的隱藏狀態(tài),且ht用作注意力查詢。
在自然語言處理領域中,交叉熵損失是一種常用的損失函數(shù),用于衡量模型在分類任務中的預測結果與真實標簽之間的差異。圖像描述生成任務可以將其看作是一個序列到序列的問題,模型需要將圖像編碼用向量表示,然后使用該向量作為輸入,生成對應的自然語言描述。為了訓練一個良好的圖像描述生成模型,通常需要最小化交叉熵損失函數(shù),以使模型能夠盡可能準確地預測每個詞的概率分布,從而生成最佳的自然語言描述。
AdamW 算法是一種變種的Adam 優(yōu)化算法,在標準Adam算法的基礎上增加了權重衰減項,旨在緩解模型過擬合的問題。相比于其他優(yōu)化算法,AdamW 算法在實驗中表現(xiàn)出更快的收斂速度和更好的訓練效果,使得模型能夠更好地生成精準的字幕描述。與傳統(tǒng)的隨機梯度下降(SGD)法相比,AdamW 算法能夠更好地處理訓練數(shù)據(jù)中的噪聲和稀疏性,并更快地達到收斂狀態(tài)。在本文中,采用AdamW 算法來優(yōu)化模型參數(shù),以最小化交叉熵損失函數(shù):
本實驗在流行的MSCOCO 數(shù)據(jù)集和Flickr30k 數(shù)據(jù)集上評估了本文所提出的方法。MSCOCO 數(shù)據(jù)集和Flickr30k 數(shù)據(jù)集分別包含123 287 和31 014 張圖像,每張圖像都標有5 個字幕。實驗使用離線的“Karpathy”數(shù)據(jù)拆分進行離線性能比較,并將所有句子轉(zhuǎn)換為小寫,刪除出現(xiàn)次數(shù)少于5 次的單詞。經(jīng)過處理后的數(shù)據(jù)分布如表1 所示。本實驗中設置模型的Epoch為20,batch size 為10,迭代次數(shù)為6 000。
表1 不同數(shù)據(jù)集參數(shù)對比
學習率是深度學習模型中的重要超參數(shù),控制著模型在每一輪迭代中參數(shù)的更新步長,模型在最佳參數(shù)下會收斂到最優(yōu)。因此,本文針對模型的學習率進行了實驗,使用了CIDEr-D 和METEOR 指標來評估模型性能。本文將學習率分別設置為1e-2、1e-3、1e-4 和1e-5,對不同學習率條件下的本文模型進行了對比,并將Epoch統(tǒng)一設置為20。圖5展示了在不同學習率條件下模型性能的變化趨勢,從實驗結果中可以觀察到,學習率的大小對模型的性能有著顯著的影響。
圖5 學習率對CIDEr-D 和METEOR的影響
當學習率設置為1e-2 時,模型在初始迭代階段的學習步長較大,可能導致模型在訓練過程中發(fā)生震蕩,難以穩(wěn)定地收斂到最優(yōu)解。因此,模型性能最差,CIDEr-D 和METEOR 指標得分最低。當學習率設置為1e-3時,模型的學習步長適中,能夠較快地收斂到一定程度的最優(yōu)解。實驗結果顯示,此時模型在測試數(shù)據(jù)上取得了較好的性能,CIDEr-D 和METEOR 指標得分較高。當學習率設置為1e-4時,模型的學習步長較小,可能導致模型收斂速度過慢,需要更多的迭代次數(shù)才能達到較好的性能。因此,相比于1e-3,模型在測試數(shù)據(jù)上的表現(xiàn)稍遜,CIDEr-D 和METEOR 指標得分有所下降。當學習率設置為1e-5 時,模型的學習步長非常小,導致模型在訓練過程中很難更新參數(shù),這將導致模型陷入局部最優(yōu)或者無法收斂。因此,模型性能有所下降,CIDEr-D 和METEOR 指標得分較低。
綜上所述,在本文的模型中,學習率的選擇對于模型的性能至關重要。合理地選擇學習率可以幫助模型更快地收斂到最優(yōu)解并取得較好的性能。在本實驗中,學習率設置為1e-3時表現(xiàn)最佳。
本實驗使用不同的評價指標,包括BLEU、METEOR、ROUGE-L、CIDEr-D 和SPICE 來評估所提出的方法,并與主流方法進行比較。這些方法包括:(1)NIC,該模型使用CNN 對圖像進行編碼,并使用LSTM進行解碼;(2)SCST[22],該模型采用改進的視覺注意力并首次使用SCST 直接優(yōu)化評估指標;(3)FCLN[23],該模型使用完全卷積的定位網(wǎng)絡來同時檢測和描述圖像中的對象區(qū)域;(4)Clip-Prefix[24],該模型采用了全新的前綴結構,將圖像特征表示嵌入文本空間中作為前綴;(5)Up-Down[25],該模型采用兩層LSTM模型,并使用從FasterRCNN提取的自底向上特征;(6)AAT[26],該模型引入了自適應注意力時間,通過動態(tài)確定生成每個字幕單詞所需的注意力步驟數(shù)量,實現(xiàn)了更靈活和準確的圖像字幕生成。
以下是本文模型(Pretrained-AoA)在公共離線測試集上的表現(xiàn),以及與其他基準模型進行比較的結果,所有的值都是表示百分值(詳見表2)。由于BLEU- n(其中n 代表n-gram,如BLEU-1、BLEU-2、BLEU-3、BLEU-4)的分數(shù)在一個特定的文本生成任務中的升降趨勢是一致的,即隨著n的增加,BLEU 分數(shù)會逐漸降低。BLEU-1 關注的是單個詞語的匹配,而BLEU-4關注的是4個連續(xù)詞語的匹配。因此,本實驗選擇了BLEU-1 和BLEU-4 作為評價指標。這樣既考慮到了不同類型的匹配,以確保實驗結果客觀準確,又可以使表格結果更為簡潔明了。
表2 模型在Flickr30k和MSCOCO測試集上的性能表現(xiàn)
為了對比實驗的公平性,所有的模型都是在交叉熵(XE)損失下進行訓練的。與其他基準模型相比,本文模型在多個評估標準中均取得了最優(yōu)的性能。與Up-Down 模型相比,本文模型在MSCOCO 數(shù)據(jù)集和Flickr30k 數(shù)據(jù)集上的性能都有顯著的提升。與Up-Down 模型相比,在MSCOCO 數(shù)據(jù)集上,本文模型在BLEU-1、METEOR 和CIDEr-D 指標上分別提高了3.2%、1.7%和11.6%。由于CIDEr-D 評價指標更加注重文本的連貫性和相關性,而且其處理重復詞匯的方式與其他指標有所不同。本文模型在文本生成質(zhì)量方面表現(xiàn)卓越,生成的文本更接近人工標注的真實字幕。此外,本文模型還有效地處理了文本中的重復詞匯,這進一步提高了CIDEr-D 分數(shù)。因此,本文模型在CIDEr-D 指標上表現(xiàn)較為突出。在Flickr30k 數(shù)據(jù)集上,在相同的評估標準下,模型的性能分別提高了1.6%、1.5%、11.3%。相對主流方法中的基準模型,本文方法展現(xiàn)了更為優(yōu)越的性能,這主要得益于引入了預訓練模型和注意力疊加方法。預訓練模型在編碼器和解碼器部分的應用使模型可以提取到更高層次的特征信息,并且注意力疊加模塊的添加使模型得以專注于圖像中的關鍵區(qū)域。因此,基于預訓練模型的注意力疊加方法使得模型在生成字幕時能夠更好地捕捉圖像的語義信息,產(chǎn)生更具描述性和準確性的字幕。由表2 的結果可知,本文模型在Flickr30k 和MSCOCO 數(shù)據(jù)集上CIDEr-D 指標的值分別為61.4%和119.3%,比第二名的模型分別提高了0.9 個百分點和9.2 個百分點。此外,本文模型在其他4 種指標上的得分相較于第二名的模型都有了不同程度的提升。實驗結果表明,本文模型在Flickr30k 和MSCOCO 數(shù)據(jù)集上的表現(xiàn)均優(yōu)于其他所有對比方法。
表3 展示了由本文提出的基于預訓練模型的注意力疊加方法的圖像字幕生成模型和一個基準模型生成的圖像和字幕示例,以及人工標注的真實字幕。通過重新實現(xiàn)Up-Down 模型來得到基準模型,從這些示例中可以發(fā)現(xiàn)基準模型生成的字幕在語言邏輯上是符合的,但與圖像內(nèi)容不是特別符合,而本文的模型生成了高質(zhì)量且準確的字幕。具體來說,在以下2 個方面優(yōu)于基準模型:(1)對象描述更準確。在第1個例子中,本文提出的模型正確地描述了年輕男子在人行道上騎著滑板的情景,而基準模型僅僅將他們描述為站在滑板上。在第2個例子中,本文提出的模型準確地描述了一群人站在大象旁邊,而基準模型只提到了一群大象站在一起。這表明本文提出的模型能夠更準確地理解圖像中的對象和它們的位置關系。(2)對象互動理解更好。在第3 個例子中,本文的模型準確地描述了浴室的組成部分,而基準模型則簡單地提到了2 個洗手盆。在第4 個例子中,本文的模型準確地描述了一盞紅色的交通燈鄰近一座高樓,而基準模型只是簡單地描述了一盞紅色的交通燈在城市街道上。這表明本文提出的模型能夠更好地理解圖像中對象之間的互動和環(huán)境背景。
表3 本文提出的模型和基準模型生成的字幕示例,以及相應的真實字幕
總而言之,本文提出的模型在對象描述和對象互動理解上比基準模型更準確。通過使用預訓練模型和注意力疊加的方法,該模型能夠更好地理解圖像內(nèi)容并生成準確、細致的字幕描述。與基準模型相比,本文提出的模型通過使用多個預訓練模型,如CLIP 和GPT-2,結合LSTM 經(jīng)典模型,從輸入圖像中提取特征,并使用精煉模塊進行特征優(yōu)化,同時,注意力疊加機制使模型能夠聚焦于圖像中的重要區(qū)域,并生成更具描述性的字幕。
為了驗證本文模型的有效性和探究基于預訓練模型的注意力疊加方法的作用,本文進行了一系列消融實驗,結果如表4 所示。本文的模型由CLIP、GPT-2、LSTM 以及注意力疊加模塊組成,實驗以Up-Down模型為基準模型。本實驗分別對基準模型進行了不同的設置,并在MSCOCO 數(shù)據(jù)集上進行了性能評估,分別驗證CLIP、GPT-2和注意力疊加模塊對整個模型的作用,所有變體模型的設置均在表4中展現(xiàn)。
表4 消融實驗的設置和結果
本實驗將模型主要分成以下幾個部分:(1)基準+CLIP。為了驗證CLIP 模型的作用,該模型將基準模型編碼器中的ResNet 模型換成CLIP模型。(2)基準+GPT-2。該模型使用了GPT-2 進行文本特征提取,其余部分采用基準模型的設置。(3)基準+注意力疊加模塊。為了驗證注意力疊加方法的有效性,該模型在基準模型的基礎上添加了注意力疊加模塊。
從表4可以看出,基于預訓練模型和注意力疊加方法的圖像字幕生成模型在不同設置下性能都有所提升。其中,基準+CLIP 模型在BLEU-1、METEOR 和CIDEr-D 指標上分別提升了3.2%、6.0%和5.5%,證明了基于CLIP模型的編碼器提取特征的有效性?;鶞? GPT-2 模型在BLEU-1、METEOR 和CIDEr-D 指標上分別提升了2.8%、2.6%和4.3%,驗證了GPT-2 模型對文本嵌入的有效性?;鶞?注意力疊加模塊的模型在BLEU-1、METEOR 和CIDEr-D 指標上分別提升了3.1%、5.2%和8.5%,注意力疊加方法能夠使模型聚焦于圖像中的重要區(qū)域,消融實驗證明了其有效性。完整的圖像字幕生成模型在BLEU-1、METEOR和CIDEr-D 指標上分別提升了4.3%、6.3%以及10.8%。實驗結果表明,采用預訓練模型以及注意力疊加方法能夠有效地提高模型的性能,使模型能夠生成更加準確自然的圖像描述。
圖像字幕生成是一項復雜的跨模態(tài)任務,其質(zhì)量的提升需要依賴準確的模型設計和優(yōu)化。本文致力于改進圖像字幕生成任務,提出了一種基于預訓練模型的注意力疊加方法的圖像字幕生成框架。相較于傳統(tǒng)的CNN 和RNN 組合,該框架充分利用了更多的數(shù)據(jù)和特征,從而提高了模型的性能和效果。通過在公共數(shù)據(jù)集上的對比實驗,驗證了基于預訓練模型的注意力疊加方法的圖像字幕生成模型框架具有更出色的性能。