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