邢長征 李 珊
(遼寧工程技術(shù)大學(xué)電子與信息工程學(xué)院 遼寧 葫蘆島 125105)
如今是一個(gè)信息爆炸的時(shí)代,如何利用這些海量的、龐雜的數(shù)據(jù)已慢慢成為了當(dāng)下研究的熱點(diǎn)內(nèi)容[1]。隨著近些年研究的深入和計(jì)算機(jī)硬件設(shè)備的改善,基于神經(jīng)網(wǎng)絡(luò)的模型越來越受到歡迎[1],深度學(xué)習(xí)在人工智能方面的處理能力也初步提升,越來越受到人們的重視。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,深度學(xué)習(xí)的概念最早由多倫多大學(xué)的G.E.Hinton等在2006年提出,指基于樣本數(shù)據(jù)通過一定的訓(xùn)練方法得到包括多個(gè)層級的深度網(wǎng)絡(luò)結(jié)構(gòu)的機(jī)器學(xué)習(xí)過程[2]。
情感分析,也稱為觀點(diǎn)挖掘,指的是分析說話者在傳達(dá)信息時(shí)所隱含的情感狀態(tài)、態(tài)度、意見進(jìn)行判斷或者評估[3]。關(guān)于文本,整句的情感傾向性一般比較明確,其中正向情感表示褒義類:贊揚(yáng)、喜悅、歌頌等;負(fù)向情感表示貶義類:貶斥、悲哀、嫉妒等[4-5]。在文本情感分析的發(fā)展過程中,人們使用了樸素貝葉斯算法、最大熵、決策樹、支持向量機(jī)(SVM)等算法。這些方法都?xì)w屬于淺層學(xué)習(xí),函數(shù)模型和計(jì)算方法都不復(fù)雜,實(shí)現(xiàn)相對簡單,導(dǎo)致這些算法在有限的樣本和計(jì)算單元下無法表達(dá)復(fù)雜的函數(shù),泛化能力較弱。淺層學(xué)習(xí)依靠人工經(jīng)驗(yàn)抽取樣本特征,網(wǎng)絡(luò)學(xué)習(xí)后獲得的是沒有層次結(jié)構(gòu)的單層特征,而深度學(xué)習(xí)通過對原始信號進(jìn)行逐層特征變換,將樣本在原空間的特征表示變換到新的特征空間,自動(dòng)學(xué)習(xí)得到層次化的特征表示[4,6]。近些年人們對于文本情感分析的研究逐漸從淺層的學(xué)習(xí)過渡到用深度模型進(jìn)行訓(xùn)練,并且,深度學(xué)習(xí)在情感分析方面逐漸成為了主流的方法。
近幾年國內(nèi)外關(guān)于情感分析問題的研究越來越多,人們從機(jī)器學(xué)習(xí)的方法不斷地向著深度學(xué)習(xí)方法進(jìn)行探索。崔志剛[7]使用改進(jìn)的SVM進(jìn)行實(shí)驗(yàn),屬于淺層學(xué)習(xí)方法。劉艷梅[3]基于SVM/RNN構(gòu)建分類器對微博數(shù)據(jù)進(jìn)行情感分析。李陽輝等[8]采用降噪自編碼器對文本進(jìn)行無標(biāo)記特征學(xué)習(xí)并進(jìn)行情感分類。Santos等[9]使用了卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)驗(yàn)證CNN在處理文本信息時(shí)有著不錯(cuò)的效果。Li等[10]采用LSTM進(jìn)行情感分析,實(shí)驗(yàn)證明,LSTM相較于RNN在分析長語句情感分析方面表現(xiàn)得更好。梁軍等[11]使用一種基于極性轉(zhuǎn)移和LSTM遞歸網(wǎng)絡(luò)相結(jié)合對LSTM進(jìn)行改善。王歡歡[12]運(yùn)用情感詞典和LSTM結(jié)合的方法提高準(zhǔn)確率。王雪嬌[13]使用CNN與GRU相結(jié)合的新模型來改善CNN。Hassan等[14]提出將CNN與LSTM相結(jié)合的新的深度學(xué)習(xí)模型,將LSTM作為池化層的替代。Li等[15]提出基于CNN和雙向LSTM RNN的電影情感分析方法進(jìn)行情感分析。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)都可以解決文本的情感分析問題[16-18]。CNN在處理圖像和計(jì)算機(jī)視覺方面表現(xiàn)出很好的效果[19-20],它善于提取特征。而RNN在處理手寫文字識別和文本處理等方面表現(xiàn)出了它的優(yōu)越性[21],近些年,LSTM在情感分析的任務(wù)上得到了廣泛的應(yīng)用,并且表現(xiàn)出了較好的效果。
在自然語言處理方面,循環(huán)神經(jīng)網(wǎng)絡(luò)在捕捉任意長度序列的信息[22]有類似的記憶功能。傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)在輸入數(shù)據(jù)過長時(shí),因?yàn)榉蔷€性變換,在尾部的梯度進(jìn)行反向傳播時(shí)不能將梯度傳給句子的起始位置,經(jīng)過訓(xùn)練會出現(xiàn)一個(gè)不可忽視的問題:梯度彌散,梯度彌散是一個(gè)需要解決的問題。針對這個(gè)問題人們提出了一個(gè)基于循環(huán)神經(jīng)網(wǎng)絡(luò)的新的網(wǎng)絡(luò)模型——LSTM,LSTM可以理解為升級版的循環(huán)神經(jīng)網(wǎng)絡(luò)。長短時(shí)記憶網(wǎng)絡(luò)解決了循環(huán)神經(jīng)網(wǎng)絡(luò)中存在的梯度彌散的問題[10,23],LSTM提出了一個(gè)叫作記憶單元的新結(jié)構(gòu)。LSTM由四個(gè)部分組成:輸入門、輸出門、遺忘門和記憶單元。LSTM的網(wǎng)絡(luò)具體結(jié)構(gòu)如圖1所示。
圖1 LSTM結(jié)構(gòu)
下面就幾個(gè)公式介紹一下LSTM具體的工作流程:
第一步:新輸入xt前狀態(tài)ht-1決定C哪些信息可以舍棄ft與Ct-1運(yùn)算,對部分信息進(jìn)行去除:
ft=δ(Wf·[ht-1,xt])+bf
(1)
it=δ(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
第四步:根據(jù)控制參數(shù)Ct產(chǎn)生此刻的新的LSTM輸出:
Ot=δ(WO[ht-1,xt]+bO)
(5)
ht=Ot×tanh(Ct)
(6)
GRU是長短時(shí)記憶網(wǎng)絡(luò)的一個(gè)重要變種[24],它從兩個(gè)方面做出了改變,首先是遺忘門和輸入門的結(jié)合(不是獨(dú)立,不是互補(bǔ)),將其合成了一個(gè)單一的更新門。其次,控制參數(shù)Ct與輸出ht結(jié)合,直接產(chǎn)生帶有長短記憶能力的輸出。而且GRU同樣還混合了細(xì)胞狀態(tài)和隱藏狀態(tài),和其他一些改動(dòng)。GRU與LSTM效果類似,GRU比標(biāo)準(zhǔn)LSTM簡單[23],GRU所使用的參數(shù)要少于LSTM中使用的個(gè)數(shù)。具體結(jié)構(gòu)如圖2所示。
圖2 GRU結(jié)構(gòu)
下面就幾個(gè)公式介紹一下GRU具體的工作流程:
第一步:新輸入xt前狀態(tài)ht-1和權(quán)重Wz對zt進(jìn)行更新:
zt=δ(Wz·[ht-1,xt])
(7)
第二步:新輸入xt前狀態(tài)ht-1和權(quán)重Wr計(jì)算rt,從新得到的內(nèi)容中抽取信息:
rt=δ(Wr·[ht-1,xt])
(8)
(9)
(10)
GRU計(jì)算的過程中不需要C,GRU將C合并到了ht中,在GRU中ht做不斷的更新,更新的方式是遺忘多少就添加多少。
本實(shí)驗(yàn)利用GRU進(jìn)行堆疊設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型,提出一種新的模型——MultiGRU。期望通過多層的GRU的堆疊,不斷提取語句的相關(guān)信息,防止文本信息的缺失和捕獲語句間的長期依賴關(guān)系。
3.1.1 實(shí)驗(yàn)平臺
實(shí)驗(yàn)的首要條件為對實(shí)驗(yàn)環(huán)境的設(shè)置和實(shí)驗(yàn)平臺的搭建。本實(shí)驗(yàn)依托的硬件和軟件的平臺為:
(1) 硬件:Win7系統(tǒng)、內(nèi)存4 GB。
(2) 軟件和依賴的庫:Python3.5、tensorflow、keras等。
3.1.2 數(shù)據(jù)集
IMDB數(shù)據(jù)集為電影評論數(shù)據(jù)集,見表1。本數(shù)據(jù)集含有來自IMDB的50 000條影評,被標(biāo)記為正面、負(fù)面兩種評價(jià)。該數(shù)據(jù)集中的評論數(shù)據(jù)被分為訓(xùn)練集和測試集。其中正負(fù)樣本數(shù)均衡。
表1 數(shù)據(jù)集
3.2.1 模型構(gòu)建
首先分析預(yù)先處理好的IMDB的數(shù)據(jù):訓(xùn)練集每條評論中的字長不相同,有的評論很長,有2 494個(gè)字符,這樣的異常值需要排除,文本計(jì)算得出平均每個(gè)評論的字長為238.714個(gè)字符。根據(jù)平均字長可以設(shè)定最多輸入的文本長度為400個(gè)字符,這樣也便于數(shù)據(jù)降維,一些字長比較短,不足400個(gè)字符的文本用空格填充,超過400個(gè)字符的文本截取400個(gè)字符,即maxword為400。使用keras提供的Embedding層作為模型的第一層,詞向量的維度為64,每個(gè)訓(xùn)練段落為maxword×64矩陣,作為數(shù)據(jù)的輸入,填入輸入層。本實(shí)驗(yàn)利用GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行深度模型的構(gòu)建,所提出的網(wǎng)絡(luò)結(jié)構(gòu)MultiGRU選取三層GRU的堆疊,三層 GRU的輸出維度分別設(shè)定為128、64、32,從而構(gòu)建起基本的網(wǎng)絡(luò)模型。實(shí)驗(yàn)在GRU的層級之間添加了Dropout層,為了減少訓(xùn)練過程中出現(xiàn)的過擬合,在Dropout層中設(shè)置隨機(jī)失活值為0.2。之后我們將引入一個(gè)全連接層作為輸出層,該層使用的非線性激活函數(shù)為sigmoid,預(yù)測0,1變量的概率。MultiGRU通過每層GRU來不斷捕捉語句間的信息,減少信息的丟失和依賴關(guān)系的消失。
模型基本搭建完成后,通過交叉熵來測試模型,把交叉熵作為目標(biāo)函數(shù),交叉熵越小說明匹配的越準(zhǔn)確,模型精度越高。本次實(shí)驗(yàn)使用RMSprop Optimizer來進(jìn)行優(yōu)化,該優(yōu)化函數(shù)適用于循環(huán)神經(jīng)網(wǎng)絡(luò),在模型訓(xùn)練中使用的梯度下降方法中,合理動(dòng)態(tài)地選擇學(xué)習(xí)率。將數(shù)據(jù)灌入模型,使用IMDB中的測試集作為驗(yàn)證數(shù)據(jù),批次大小設(shè)置為100,迭代輪次設(shè)為5輪。
3.2.2 MultiGRU參數(shù)選擇
超參數(shù)可以有很多不同的組合,需要花費(fèi)時(shí)間不斷學(xué)習(xí)調(diào)整驗(yàn)證。在進(jìn)行參數(shù)選擇的對比實(shí)驗(yàn)過程中發(fā)現(xiàn):首先,在模型層數(shù)選擇的實(shí)驗(yàn)中,模型的層數(shù)分別設(shè)定為一層、兩層、三層和四層,測定MultiGRU有幾層GRU時(shí)效果較好,經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)模型的層數(shù)大于三層時(shí)的準(zhǔn)確率并沒有隨著GRU層數(shù)的增加而有所提升,反而實(shí)驗(yàn)的時(shí)間耗費(fèi)的更長,故最終模型選擇的層數(shù)為三層時(shí)較好(如圖3所示)。其次,在Dropout的參數(shù)選擇實(shí)驗(yàn)中分別選取0.1、0.2和0.5三個(gè)參數(shù)進(jìn)行對比實(shí)驗(yàn),經(jīng)實(shí)驗(yàn)可知,在該模型中,當(dāng)Dropout參數(shù)為0.2時(shí)準(zhǔn)確率更好(如圖4所示)。
圖3 層數(shù)實(shí)驗(yàn) 圖4 Dropout參數(shù)實(shí)驗(yàn)
進(jìn)一步測試MultiGRU構(gòu)建時(shí)所選取的相關(guān)參數(shù)對模型的影響,實(shí)驗(yàn)分別測試層數(shù)為1到4層時(shí)不同的Dropout參數(shù)下的MultiGRU模型的性能,評價(jià)指標(biāo)分別為準(zhǔn)確率和MSE(最小錯(cuò)誤率)[13],準(zhǔn)確率越高、MSE越小代表模型越好。實(shí)驗(yàn)結(jié)果如表2所示,可以看出,在MultiGRU的相關(guān)參數(shù):層數(shù)為3層,Dropout 設(shè)定為0.2時(shí),準(zhǔn)確率較高且MSE值最小,模型的性能最好。
表2 MultiGRU參數(shù)選擇實(shí)驗(yàn)
3.2.3 對比實(shí)驗(yàn)
1) 與LSTM的實(shí)驗(yàn)對比 LSTM在處理文本情感的分析上有著較好的效果,是目前處理情感分析問題時(shí)使用的熱點(diǎn)方法[14]。本次實(shí)驗(yàn)通過GRU層的堆疊來不斷訓(xùn)練構(gòu)建的MultiGRU模型,對比實(shí)驗(yàn)中將模型中所有的GRU層全部替換成LSTM層,其他條件不變,迭代5輪后的對比結(jié)果:
(1) 在損失方面對比:設(shè)定的評價(jià)指標(biāo)分別為交叉熵和MSE,實(shí)驗(yàn)結(jié)果如表3所示,MultiGRU的交叉熵和MSE都較小一些,說明MultiGRU模型匹配的比較準(zhǔn)確,模型精度較高,魯棒性更好一些。
表3 兩種模型的損失對比
(2) 在準(zhǔn)確率等方面:設(shè)定的評價(jià)指標(biāo)分別為準(zhǔn)確率、召回率和F1值,實(shí)驗(yàn)結(jié)果如表4所示,綜合這些評價(jià)指標(biāo)可以看出MultiGRU模型的性能更好一些。
表4 兩種模型的評價(jià)指標(biāo)對比
(3) 在訓(xùn)練所花費(fèi)的時(shí)間上:MultiGRU所使用的時(shí)間短于MultiLSTM訓(xùn)練所花費(fèi)的時(shí)間,說明使用MultiGRU模型進(jìn)行實(shí)驗(yàn)的速度要快于采用MultiLSTM模型的速度。如圖5所示。
圖5 時(shí)間
綜上,從損失、準(zhǔn)確率、召回率、F1值和時(shí)間對MultiGRU模型進(jìn)行了評估,可以看出,MultiGRU模型在綜合以上評價(jià)指標(biāo)上表現(xiàn)得更好一些。
2) 與MLP(全連接神經(jīng)網(wǎng)絡(luò))、CNN的實(shí)驗(yàn)對比 本次實(shí)驗(yàn)除了與LSTM進(jìn)行實(shí)驗(yàn)對比之外,還選用了謝梁等[25]提出的兩種神經(jīng)網(wǎng)絡(luò)模型進(jìn)行實(shí)驗(yàn),分別為全連接神經(jīng)網(wǎng)絡(luò)(MLP)模型和CNN模型,MLP與CNN同樣可以應(yīng)用于情感分析的任務(wù)上。實(shí)驗(yàn)從損失和準(zhǔn)確率兩個(gè)方面進(jìn)行實(shí)驗(yàn)結(jié)果的對比和分析。
首先,在三種模型的損失對比實(shí)驗(yàn)中,設(shè)定的評價(jià)指標(biāo)分別為交叉熵和MSE,實(shí)驗(yàn)結(jié)果如表5所示。MLP模型和CNN模型的交叉熵和MSE還是較大的,MultiGRU在該方面的值相較于其他兩個(gè)模型更小,說明MultiGRU模型匹配的更準(zhǔn)確,模型精度更高,魯棒性更好一些。
表5 三種模型的損失對比
其次,在三種模型的準(zhǔn)確率等相關(guān)評價(jià)指標(biāo)上的對比實(shí)驗(yàn)中,實(shí)驗(yàn)結(jié)果如表6所示。綜合這些評價(jià)指標(biāo)可以看出,MultiGRU模型的性能更好一些。
表6 三種模型的評價(jià)指標(biāo)對比
綜上,實(shí)驗(yàn)采用了其他兩種神經(jīng)網(wǎng)絡(luò)模型對MultiGRU模型進(jìn)行了評估,可以看出,在相關(guān)評價(jià)指標(biāo)的測定下,MultiGRU模型性能較于其他兩個(gè)模型都表現(xiàn)得更好。
隨著世界的不斷發(fā)展和信息量的日益增加,情感分析問題得到了越來越多人的重視,在科研和實(shí)際的生活中有著廣泛的應(yīng)用。本文對涉及到的相關(guān)知識做了簡略的介紹,并提出了一個(gè)新的模型以減少信息丟失。實(shí)驗(yàn)證明,該技術(shù)方案對于處理文本數(shù)據(jù)的情感分析具有可行性。深度學(xué)習(xí)領(lǐng)域中也正有許多的新的結(jié)構(gòu)被提出,可能這些新興的結(jié)構(gòu)在未來處理情感分析的問題上能夠得到更好的結(jié)果,下一步的工作將研究更加適合情感分析的深度學(xué)習(xí)方法。