王志平,鄭寶友,劉儀偉
(大連海事大學(xué)理學(xué)院,遼寧 大連 116000)
自然語言處理[1](NLP)是一個經(jīng)久不衰的話題,進入21世紀之前,自然語言處理中最為經(jīng)典的任務(wù)是文本分類[2],該任務(wù)涉及文本預(yù)處理及特征提取等過程,隨著計算機技術(shù)的飛速發(fā)展,自然語言處理技術(shù)也變得越來越成熟,尤其是進入21世紀以來,人們在自然語言處理領(lǐng)域取得了一個又一個的重大突破,其中發(fā)展最為迅猛的當屬圖像標題生成和文本情感分析[3]這2個子領(lǐng)域,圖像標題生成又可以稱為“看圖說話”,與文本情感分析相比,該子領(lǐng)域在現(xiàn)實生活中的應(yīng)用更加廣泛,但其涉及的內(nèi)容也更加復(fù)雜,因為它不僅需要利用語言模型,而且需要依靠視覺模型的支持,這一領(lǐng)域的興起要歸功于互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展以及數(shù)碼相機的廣泛使用,由于現(xiàn)代人的生活節(jié)奏越來越快,而且人們每天都被大量的圖像所包圍,僅僅靠人工描述圖片內(nèi)容已經(jīng)遠遠不能滿足人們的需求,因此,人們開始考慮用計算機代替人來完成這項工作,這也激發(fā)了許多國內(nèi)外專家學(xué)者[4-5]對圖像標題生成這一領(lǐng)域的研究興趣,從而使得圖像標題生成任務(wù)成為計算機視覺和自然語言處理領(lǐng)域的研究熱點。
對于一幅圖片,人們可以快速地指出并描述圖片中的許多細節(jié)內(nèi)容,但同樣的工作對計算機來說并不容易,因為它既涉及理解圖像的內(nèi)容,又涉及如何將這種理解轉(zhuǎn)換成自然語言。因此,對于一幅圖片,如何快速準確地生成相應(yīng)的描述是一項極具挑戰(zhàn)性的任務(wù),近年來,已經(jīng)有許多成功的模型被提出來應(yīng)對圖像標題生成這一挑戰(zhàn)。例如,Mao等人[6]早在2015年就提出了一種用于圖像標題生成任務(wù)的多模態(tài)遞歸神經(jīng)網(wǎng)絡(luò)(m-RNN)模型,開創(chuàng)了這一研究領(lǐng)域的先河。在2017年,有學(xué)者提出了一種新的時變并行循環(huán)神經(jīng)網(wǎng)絡(luò)用于圖像標題生成任務(wù)[7],該模型可以在每個時間步長中獲得動態(tài)的視覺和文本表示,從而解決了現(xiàn)有方法中目前生成的單詞與所獲得的圖像特征不匹配的問題。后來,Dong等人[8]提出了一種名為Word2VisualVec的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)能夠從文本輸入中精準地預(yù)測視覺特征表示。此外,還有學(xué)者將注意力機制[9]應(yīng)用到圖像標題生成任務(wù)后,發(fā)現(xiàn)注意力模型可以有效地提高圖像標題生成任務(wù)的準確性。
盡管上述模型各有其優(yōu)點,并在圖像標題生成任務(wù)中取得了良好的性能。但是,它們大多只考慮了網(wǎng)絡(luò)模型外部結(jié)構(gòu)的影響,即只改變描述與圖片特征之間的對應(yīng)關(guān)系,而沒有考慮網(wǎng)絡(luò)模型內(nèi)部結(jié)構(gòu)的變化,此前已有眾多學(xué)者提出改進神經(jīng)網(wǎng)絡(luò)激活函數(shù)的策略來增強網(wǎng)絡(luò)的性能,例如,Godin等人[10]提出了一種雙整流線性單元(DReLUs)來替換傳統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)中的雙曲正切激活函數(shù),這在情緒分類和語言建模任務(wù)中取得了巨大的成功,受其啟發(fā),本文提出一種改進的長短時記憶(ITLSTM)神經(jīng)網(wǎng)絡(luò)模型來處理圖像標題生成任務(wù),該神經(jīng)網(wǎng)絡(luò)模型以反正切函數(shù)作為激活函數(shù)來更新細胞狀態(tài),有效地緩解傳統(tǒng)長短時記憶神經(jīng)網(wǎng)絡(luò)模型的過早飽和問題,從而更充分地捕捉句子信息。最后在公共的Flickr8K數(shù)據(jù)集上驗證本文方法的有效性。
在語言模型中,長短時記憶(LSTM)神經(jīng)網(wǎng)絡(luò)[11]的作用是先將句子的信息轉(zhuǎn)換為一種可以被添加狀態(tài)的細胞,然后通過包含sigmoid[12]激活層的輸入門將新信息定義為單元狀態(tài)。傳統(tǒng)的LSTM神經(jīng)網(wǎng)絡(luò)模型中單元的狀態(tài)更新過程如下:
(1)
(2)
(3)
在完成以上細胞狀態(tài)更新的基礎(chǔ)上,傳統(tǒng)LSTM的隱藏狀態(tài)的更新可以用式(4)表示:
ht=ot·tanh (Ct)
(4)
其中,ot表示輸出門向量,·為元素乘運算符。
在上述過程中,盡管以tanh (·)作為神經(jīng)網(wǎng)絡(luò)的激活函數(shù)解決了sigmoid激活函數(shù)的非0中心問題,但該函數(shù)仍然存在過早飽和的問題,因此,在建立ITLSTM神經(jīng)網(wǎng)絡(luò)模型時,為了克服該激活函數(shù)過早飽和的缺點,本文首先構(gòu)造如下反正切函數(shù):
F(x)=(2/π)·arctan (x·π/2),x∈R
(5)
與傳統(tǒng)的LSTM神經(jīng)網(wǎng)絡(luò)不同,在本文提出的神經(jīng)網(wǎng)絡(luò)模型中,其激活函數(shù)使用式(5)來代替式(1)和式(4)中的雙曲正切函數(shù),進而將細胞狀態(tài)從Ct-1更新到Ct,并將隱藏狀態(tài)從ht-1更新到ht,從而式(1)和式(4)分別變?yōu)橐韵滦问剑?/p>
(6)
ht=ot·(2/π)·arctan [Ct·(π/2)]
(7)
為了使ITLSTM神經(jīng)網(wǎng)絡(luò)模型更加直觀和更容易理解,圖1展示了該神經(jīng)網(wǎng)絡(luò)模型的內(nèi)部結(jié)構(gòu)。
圖1 ITLSTM神經(jīng)網(wǎng)絡(luò)模型內(nèi)部結(jié)構(gòu)
除了反正切函數(shù)之外,softsign激活函數(shù)也是tanh (·)激活函數(shù)的一個有效的替代選擇,與tanh (·)激活函數(shù)相比,softsign激活函數(shù)有著更平坦的曲線以及更慢的導(dǎo)數(shù)下降速度,這讓它可以更加高效地學(xué)習(xí),同時也能夠更好地解決梯度消失問題,并且同tanh (·)激活函數(shù)一樣,softsign激活函數(shù)也是反對稱、去中心以及可微分的,其函數(shù)值介于-1和1之間,因此,在實踐中,可以用softsign激活函數(shù)替代tanh (·)激活函數(shù),但softsign激活函數(shù)的一個固有缺陷是其導(dǎo)數(shù)的計算比較復(fù)雜,從而大大增加了神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度,softsign激活函數(shù)的表達式如下:
(8)
為了更形象地突出以上3類激活函數(shù)的優(yōu)劣,圖2給出了式(3)、式(5)和式(8)所表示的激活函數(shù)及其各自的導(dǎo)數(shù)圖像。
圖2 各激活函數(shù)及其導(dǎo)數(shù)的圖形化描述
由圖2不難發(fā)現(xiàn),構(gòu)造的反正切函數(shù)不僅有著更加光滑的曲線,而且有著適當?shù)膶?dǎo)數(shù)下降速度,其導(dǎo)數(shù)的計算也相對簡單,因此,在單詞的稀疏性表示中其具有更強的魯棒性并且能夠在一定程度上節(jié)省模型訓(xùn)練所需的時間。
圖像特征提取模型是一種能夠從給定圖像中提取特征的神經(jīng)網(wǎng)絡(luò)模型,該模型提取的特征是圖像內(nèi)容的內(nèi)部表示,是不能夠直接理解的東西,通常是固定長度向量的形式。一般來說,圖像特征提取最常用的模型是卷積神經(jīng)網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)被廣泛地應(yīng)用于圖像檢索[13]及手勢識別[14]等計算機視覺領(lǐng)域,本文使用2個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)模型(Oxford VGGNet-16[15]和ResNet-152[16])來提取圖像的特征。當使用VGGNet-16網(wǎng)絡(luò)提取圖像特征時,所得到的每幅圖像的特征都由一個包含4096個元素的一維向量表示,而利用ResNet-152網(wǎng)絡(luò)提取的圖像特征則是一個包含2048個元素的一維向量。
對于描述圖像的每個句子,都需要對其進行清理,以減少訓(xùn)練過程中需要使用的詞匯量。理想情況下,需要的詞匯量既具有表現(xiàn)力又盡可能少,因為詞匯量越少,模型訓(xùn)練的速度就越快。首先,需要將每個單詞轉(zhuǎn)換為小寫,然后刪除所有標點符號和所有帶數(shù)字的單詞,最后刪除所有不超過一個字符的單詞(例如“a”),在完成對每個句子的清理之后,就可以用以下向量表示每個句子:
X=(wstart,w1,…,wL,wend)
(9)
其中,wstart和wend都是人造的單詞,分別置于句首和句末,相當于每個句子的開始和結(jié)束標志,L表示句子的長度,即一個句子中單詞的數(shù)量,wi(i=1,2,…,L)是該句子中的第i個單詞。接下來,需要將X編碼為一個詞向量,這樣做的目的是便于將句子輸入到網(wǎng)絡(luò)模型中進行訓(xùn)練,與一些學(xué)者[17]所用到的方法相同,本文將句子中的每個單詞都表示為一個熱編碼向量,該向量中元素的個數(shù)等于所有句子的最大長度,最后,再將編碼后的詞向量輸入到網(wǎng)絡(luò)模型中進行訓(xùn)練。
圖3概括了本文提出的ITLSTM神經(jīng)網(wǎng)絡(luò)模型的完整訓(xùn)練流程。
圖3 ITLSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程
該網(wǎng)絡(luò)系統(tǒng)由3個部分組成,分別是:用于句子表示的ITLSTM神經(jīng)網(wǎng)絡(luò)模型,用于圖像特征提取的卷積神經(jīng)網(wǎng)絡(luò)模型,以及連接上述2個部分的合并層。
在訓(xùn)練過程中,本文根據(jù)經(jīng)驗將初始學(xué)習(xí)率設(shè)置為0.0005,并使用Adam[18]優(yōu)化函數(shù)對模型進行優(yōu)化,考慮到訓(xùn)練速度及計算機性能,batch_size被設(shè)置為512,且權(quán)重衰減率被設(shè)置為1×10-5,為了盡量降低訓(xùn)練數(shù)據(jù)集過擬合的風險,本文在模型中添加了批標準化層,并在每一層之后使用了Dropout正則化層[19],最后本文將最大迭代周期設(shè)置為20,利用標準交叉熵損失函數(shù)來記錄模型的訓(xùn)練損失,當驗證集精度在連續(xù)的3個迭代周期內(nèi)不再增加時,訓(xùn)練將提前停止。本文中整個的實驗過程都是在基于Keras神經(jīng)網(wǎng)絡(luò)框架的Python 3.6.0環(huán)境下進行的。
本文在公共可用的Flickr8k數(shù)據(jù)集上驗證ITLSTM神經(jīng)網(wǎng)絡(luò)模型的性能,該數(shù)據(jù)集由8000幅圖像組成,每幅圖像都有5個基本的事實描述。在實驗過程中,本文使用6000幅圖像作為訓(xùn)練集,1000幅圖像作為測試集,剩下的1000幅圖像用于驗證集,并使用2個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)模型VGGNet-16和ResNet-152來提取這些圖像的特征,使用4個評價標準進行評價,這4個評價標準統(tǒng)稱為BLEU評分(B_1、B_2、B_3和B_4)[20],這4個評價指標都是越高越好。
本文首先比較ITLSTM (LSTM+F(x))神經(jīng)網(wǎng)絡(luò)模型與傳統(tǒng)的LSTM(LSTM+T(x))神經(jīng)網(wǎng)絡(luò)模型以及以softsign作為激活函數(shù)的LSTM(LSTM+S(x))神經(jīng)網(wǎng)絡(luò)模型的性能,表1給出了3種模型的各個評價指標的得分情況。從表1可以看出,傳統(tǒng)的LSTM網(wǎng)絡(luò)模型和以softsign作為激活函數(shù)的LSTM網(wǎng)絡(luò)模型所得到的BLEU評分相差不大,后者稍占優(yōu)勢,而本文提出的ITLSTM網(wǎng)絡(luò)模型幾乎在所有情況下的BLEU得分都優(yōu)于其他2種LSTM神經(jīng)網(wǎng)絡(luò)模型,由此可見,本文提出的模型的確能夠有效地緩解過早飽和現(xiàn)象,從而能夠更加充分地利用句子的語義,因而對于給定的一幅圖片,其生成的相應(yīng)描述也會更加準確。
除此之外,通過對表1觀察分析后不難發(fā)現(xiàn):與VGGNet-16網(wǎng)絡(luò)模型相比,采用ResNet-152網(wǎng)絡(luò)模型來提取特征的圖像標題生成模型均具有更好的性能,這說明增強圖像表示的魯棒性可以提高模型的性能。
表1 3種LSTM模型獲得的BLEU得分比較
為了更全面地驗證ITLSTM網(wǎng)絡(luò)模型在圖像標題生成任務(wù)中的性能,本文接下來將這種改進的LSTM網(wǎng)絡(luò)模型與一些經(jīng)典的圖像標題生成模型[7,10]進行比較,表2列出了不同模型的BLEU得分情況。通過對表2觀察分析后仍然不難發(fā)現(xiàn),ITLSTM網(wǎng)絡(luò)模型在幾乎所有的評價指標得分上都與這些經(jīng)典方法持平或更好,這再次表明了本文構(gòu)造的反正切函數(shù)在緩解過早飽和問題中的有效性。
表2 與一些經(jīng)典模型相比BLEU得分比較
最后,圖4給出了ITLSTM網(wǎng)絡(luò)模型和Google NIC模型在Flickr8k數(shù)據(jù)集上生成的圖像描述的一些示例,盡管ITLSTM網(wǎng)絡(luò)模型在這些示例圖片上生成的標題中有一些錯誤,如主語的數(shù)量、動作和更具體的對象所執(zhí)行動作的疏忽等,但它所生成的關(guān)于某一圖像的描述仍然要比Google NIC模型所生成的描述更準確。
(a) ITLSTM: Two people are walking in the snow
(b) ITLSTM:White dog is running in the grass
(c) ITLSTM:Man in green shirt and backpack stands in front of skyscraper
本文提出了一種改進的用于圖像標題生成任務(wù)的ITLSTM神經(jīng)網(wǎng)絡(luò)模型,該模型以反正切函數(shù)作為激活函數(shù)來更新細胞狀態(tài)及隱藏狀態(tài),這有效地緩解了傳統(tǒng)LSTM網(wǎng)絡(luò)模型中雙曲正切激活函數(shù)的過早飽和現(xiàn)象,與Google NIC等一些經(jīng)典的圖像標題生成方法相比,ITLSTM神經(jīng)網(wǎng)絡(luò)模型能夠更全面地捕獲句子信息,在公共可用的Flickr8k數(shù)據(jù)集上的實驗結(jié)果表明,本文提出的ITLSTM神經(jīng)網(wǎng)絡(luò)模型在圖像標題生成任務(wù)中的表現(xiàn)十分出色。