韓碩 蒿紅可
摘 ? 要:CNN與LSTM在情感分析任務(wù)中已有廣泛應(yīng)用,但單獨(dú)應(yīng)用CNN與LSTM模型時(shí),模型自身的局限性限制了任務(wù)最重的分類準(zhǔn)確率。文章結(jié)合CNN與LSTM,設(shè)計(jì)了兩種情感極性分析模型,并對(duì)兩種模型進(jìn)行了論證。最后分別在兩種數(shù)據(jù)集上測(cè)試了模型,并將結(jié)果與常規(guī)模型進(jìn)行了比較。測(cè)試結(jié)果表明,這兩種模型相比常規(guī)模型均達(dá)到了更高的分類準(zhǔn)確率。
關(guān)鍵詞:情感分析;自然語(yǔ)言處理;深度學(xué)習(xí)
近些年,因分布式數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展,大量數(shù)據(jù)被存儲(chǔ)下來(lái),特別是各個(gè)論壇、博客、微博、Twitter和電商平臺(tái)用戶產(chǎn)生的在線評(píng)論等文本數(shù)據(jù)。自21世紀(jì)以來(lái),情感分析成為自然語(yǔ)言處理(Natural Language Processing,NLP)中最活躍的研究領(lǐng)域之一。由于情感分析的研究對(duì)象多為人類語(yǔ)言,又因其對(duì)商業(yè)和管理、社會(huì)的重要性,其研究已經(jīng)從計(jì)算機(jī)科學(xué)擴(kuò)展到管理科學(xué)與社會(huì)科學(xué),如政治學(xué)、市場(chǎng)營(yíng)銷(xiāo)學(xué)、金融、通信、健康科學(xué)甚至歷史。這種擴(kuò)散是自然發(fā)生且重要的,正確認(rèn)識(shí)這些人類活動(dòng),對(duì)本文對(duì)事物的看法和未來(lái)的決策有著重要影響。
本文將使用深度學(xué)習(xí)模型在Twitter數(shù)據(jù)集(英文)與電商評(píng)論數(shù)據(jù)集(中文)上實(shí)現(xiàn)情感極性分類。任務(wù)目的是將數(shù)據(jù)集中的每一條文本準(zhǔn)確分類為“積極情感”或“消極情感”。
本文將引入多個(gè)深度學(xué)習(xí)模型,并且在本文收集到的數(shù)據(jù)集基礎(chǔ)上實(shí)現(xiàn)情感分類任務(wù),觀察其不同表現(xiàn)。本文還探究了兩種比較流行的深度學(xué)習(xí)模型的組合在情感分類任務(wù)上的使用效果,設(shè)計(jì)了兩種組合模型,與其基礎(chǔ)模型和基于統(tǒng)計(jì)的方法作了比較。
1 ? ?CNN與LSTM簡(jiǎn)介
2006年Geoffrey Hinton[1-2]等提出了多隱層的人工神經(jīng)網(wǎng)絡(luò),它相比淺層的神經(jīng)網(wǎng)絡(luò)具有優(yōu)異的特征學(xué)習(xí)能力。多層次的網(wǎng)絡(luò)模型成為之后許多模型的主要架構(gòu)。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,之后又相繼出現(xiàn)了堆棧自編碼[3]、更深層的卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)等深度學(xué)習(xí)模型。CNN最初在圖像領(lǐng)域內(nèi)取得了卓越的成績(jī)。Kim等[4]使用CNN對(duì)文本進(jìn)行分類,也取得了很好的效果,證明CNN同樣可以抽取文本的特征信息。Lee等[5]使用RNN與CNN訓(xùn)練文本的向量,通過(guò)前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)文本分類,取得了相對(duì)較好的準(zhǔn)確率,證明了在文本任務(wù)中,文本序列特征同樣重要。普通RNN雖然可以有效利用較短的上下文特征[6-7],但缺點(diǎn)較為明顯,在訓(xùn)練時(shí)存在梯度消失的問(wèn)題,所以不能處理句子中的長(zhǎng)依賴特性。為解決這一問(wèn)題,RNN出現(xiàn)多個(gè)變種循環(huán)神經(jīng)網(wǎng)絡(luò)模型,如長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM),可在文本上提取比普通RNN更長(zhǎng)距離的語(yǔ)義特征。本文的研究著重基于CNN與LSTM兩種基礎(chǔ)模型。
1.1 ?卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)最初因解決圖像問(wèn)題而出現(xiàn),近幾年,在自然語(yǔ)言處理領(lǐng)域中也有廣泛應(yīng)用。CNN可以從原始數(shù)據(jù)中抽取局部信息。例如,CNN可以在不受圖片布局的影響下,以很高的準(zhǔn)確率判斷一張圖片里是否有一只貓[8]。
基礎(chǔ)的CNN模型由卷積層、池化層、全連接層構(gòu)成。原始數(shù)據(jù)被輸送到卷積層,這些數(shù)據(jù)可以是多重維度的,如彩色圖像的紅、綠、藍(lán)3個(gè)通道。卷積層中的多個(gè)卷積核可以橫向、縱向滑動(dòng),從而實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行局部采樣,采樣后的信息在池化層中池化。池化后的數(shù)據(jù)維度一般會(huì)大幅縮小,這些信息最終被送到全連接層,全連接層負(fù)責(zé)最后的數(shù)據(jù)處理。
在對(duì)文本進(jìn)行卷積操作前,原始文本被詞向量層表示為本文矩陣K,維度為l×d。其中,l為文本的最大長(zhǎng)度,d為詞向量的維度。CNN通過(guò)卷積核Wn×h×d對(duì)Kl×d編碼,此處n是卷積核的個(gè)數(shù),h是卷積核的高度,在文本處理任務(wù)中,卷積核寬度d通常等于詞向量維度。在卷積層中,卷積核Wi在K中滑動(dòng)取樣,i=1,2,…n。在文本的處理中,由于字、詞轉(zhuǎn)化成的詞向量維度一般是固定的,所以卷積核通常不會(huì)在詞向量維度上滑動(dòng)采樣,而只是在詞的維度上滑動(dòng)。卷積層的輸出為O={o1,o2,…,on},o的維度與每個(gè)卷積核的尺寸、步長(zhǎng)有關(guān)。在池化層中,建立像卷積核一樣可以滑動(dòng)的矩陣窗口,此窗口在oi上滑動(dòng),此處i屬于1,2,…,n,對(duì)在窗口內(nèi)oi的部分使用最大池化方法,保留窗口的最大值,池化層輸出為P=[p1,p2,…,pn]。將P中的向量平鋪,再使用全連接層及softmax運(yùn)算得到最后的分類。
1.2 ?長(zhǎng)短時(shí)記憶模型
長(zhǎng)短時(shí)記憶模型是一種循環(huán)神經(jīng)網(wǎng)絡(luò)模型,該模型擁有記憶前序狀態(tài)的能力,所以特別適合處理序列問(wèn)題。由于訓(xùn)練算法通常是基于梯度的,在序列較長(zhǎng)的數(shù)據(jù)上,原始的循環(huán)神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練時(shí)往往會(huì)產(chǎn)生梯度消失。為了解決這個(gè)問(wèn)題,LSTM在神經(jīng)元之間添加了“記憶細(xì)胞”,“記憶細(xì)胞”直接貫穿于整個(gè)神經(jīng)元之間,只參與少量的線性運(yùn)算,每個(gè)神經(jīng)元通常通過(guò)“輸入門(mén)”“輸出門(mén)”“遺忘門(mén)”獲取或控制“記憶細(xì)胞”中的內(nèi)容。
首先,句子中的詞被表示成維度為d的詞向量,文本被編碼成l×d的文本矩陣。這些向量被逐步輸送至神經(jīng)網(wǎng)絡(luò)中。第步數(shù)為t時(shí),遺忘門(mén)根據(jù)當(dāng)前步的輸入計(jì)算出記憶細(xì)胞中哪些信息可以被遺忘,σ為sigmoid函數(shù),最終輸出一個(gè)0~1之間的數(shù)值,公式如下:
輸入門(mén)由兩部分組成:第一部分,計(jì)算當(dāng)前輸入的哪部分需要更新,第二部分,創(chuàng)建一個(gè)初始的待更新向量。
經(jīng)上述操作后,更新細(xì)胞狀態(tài)為:
輸出層會(huì)基于細(xì)胞狀態(tài)計(jì)算輸出。首先,輸出層計(jì)算細(xì)胞中被輸出的部分:
其次,將細(xì)胞狀態(tài)通過(guò)tanh函數(shù)運(yùn)算得到﹣1~1之間的值,并與上部分的結(jié)果相乘,得到最終輸出的部分:
因這些門(mén)可以控制信息的流入與流出,記憶細(xì)胞可以儲(chǔ)存比一般的RNN更長(zhǎng)的序列信息,LSTM在處理文本任務(wù)中有著獨(dú)特的優(yōu)勢(shì),它可以綜合上下文重新對(duì)文本進(jìn)行編碼。在情感分析任務(wù)中,它可以準(zhǔn)確處理情感比較復(fù)雜的語(yǔ)句。
1.3 ?數(shù)據(jù)集
1.3.1 ?推特?cái)?shù)據(jù)集(英文)
推特?cái)?shù)據(jù)集是Neik Sanders創(chuàng)建的“Twitter情感語(yǔ)料庫(kù)”,共有229 484條已標(biāo)記數(shù)據(jù),使用樸素貝葉斯方法得到的最高正確率為65%。
1.3.2 ?商品評(píng)論數(shù)據(jù)集(中文)
商品評(píng)論數(shù)據(jù)包含約25 000條電商買(mǎi)家評(píng)價(jià),所有數(shù)據(jù)已標(biāo)記,其中,積極情感、消極情感文本分別占所有數(shù)據(jù)集的50%。
2 ? ?模型設(shè)計(jì)
由于CNN具有抽取局部信息的能力,可以無(wú)視位置而對(duì)情感詞和詞組進(jìn)行抽取,LSTM可以依據(jù)順序處理情感特征?;谝陨峡紤],本文結(jié)合了CNN與LSTM模型進(jìn)行探究。
2.1 ?CNN+LSTM
因?yàn)闆Q定文本情感類別的情感詞只在文本局部出現(xiàn),所以實(shí)際中有一部分文本對(duì)情感分類任務(wù)是無(wú)用的,首先,CNN可以從原始文本中提取局部的情感信息;其次,利用LSTM序列分析能力對(duì)整體文本作出情感判斷。最后,用CNN抽取局部信息可以縮短LSTM的輸入序列長(zhǎng)度,避開(kāi)LSTM無(wú)法處理長(zhǎng)依賴的缺陷。本文基于情感分類語(yǔ)料庫(kù)長(zhǎng)度的考慮與兩種基本模型的特點(diǎn),設(shè)計(jì)了CNN-LSTM模型(見(jiàn)圖1)。
此模型包含CNN與LSTM兩部分。文本為CNN設(shè)計(jì)了多個(gè)尺寸的卷積核,在尺寸相同的卷積核上使用不同步長(zhǎng)的采樣策略,可以讓CNN以不同的尺度感知文本中的情感因素。矩陣K被輸送到CNN中,經(jīng)過(guò)卷積操作后得到O={o1,o2,…,on},其中,n等于卷積核的個(gè)數(shù),即有n×d個(gè)參數(shù)。視卷積步長(zhǎng)而定,使用不同尺寸的卷積核可能會(huì)導(dǎo)致O中的向量維度不統(tǒng)一。文本根據(jù)o1,o2,…,on的維度,使用不同尺寸的池化窗口,使池化后的向量維度相等,得到P=[p1,p2,…,pn]。在Kim等的研究中,CNN模型在池化層在對(duì)卷積結(jié)果進(jìn)行池化時(shí),將每個(gè)卷積核的結(jié)果進(jìn)行整體池化,Kim等稱之為Max-over-time。為了保存文本的序列信息,本文在池化操作時(shí)沒(méi)有采用Max-over-time方案,而采用了小窗口的池化采樣,這種池化方式可以使每個(gè)卷積核保留若干值組成的序列,以供LSTM提取序列特征。由于P中的每個(gè)向量還保存著原始文本的序列信息,故在重排列層將P做一次轉(zhuǎn)置操作得到PT,緊接著PT被送到LSTM的輸入層,LSTM會(huì)試圖學(xué)習(xí)情感特征之間的序列關(guān)系。取LSTM的最后一步狀態(tài)F1×λ,其中λ為神經(jīng)元個(gè)數(shù)。在softmax層中,先讓F與Wλ×cF做點(diǎn)擊運(yùn)算到L1×c,其中,c是情感類別個(gè)數(shù),WF是待評(píng)估參數(shù),在本文的實(shí)驗(yàn)中取c=2。再對(duì)F做softmax計(jì)算,得S=[s1,s2,…,sc],其中,,i,j∈L;η=1,2,…,c。S中各個(gè)元素的數(shù)值即為原文本屬于各個(gè)情感類別的概率。
2.2 ?LSTM+CNN
LSTM可以依據(jù)其強(qiáng)大的序列處理能力對(duì)詞向量進(jìn)行重新編碼,編碼后的詞向量擁有更為豐富的上下文表達(dá)。CNN可以進(jìn)一步提取這些信息的局部信息,從而給出更準(zhǔn)確的情感分類結(jié)果。
首先,文本矩陣K被輸送到LSTM中,得到LSTM每一步的輸出Hλ×1=[h1, h2, …, hl],其中,λ為L(zhǎng)STM神經(jīng)元的個(gè)數(shù);其次,將H作為CNN的輸入。在卷積層的設(shè)計(jì)中,文本使用的卷積核寬度與LSTM單元的個(gè)數(shù)相同,卷積核在LSTM輸出的步維度上滑動(dòng)取樣得到O=[o1,o2,…,on],經(jīng)過(guò)池化層得到P=[p1,p2,…,pn],再將P中的每個(gè)向量平鋪得到F。在全連接層中,F(xiàn)與WF做點(diǎn)積運(yùn)算再經(jīng)過(guò)softmax運(yùn)算,最終得到文本的情感分類概率。
2.3 ?損失函數(shù)
在上述兩種模型的學(xué)習(xí)過(guò)程中,均采用交叉熵誤差作為模型的損失函數(shù)。具體公式如下:
其中,N為訓(xùn)練的樣本數(shù),y為模型輸出的每個(gè)類別的預(yù)測(cè)概率,t為第i個(gè)樣本的真實(shí)類別,訓(xùn)練目的是讓J最小化。
3 ? ?實(shí)驗(yàn)
3.1 ?實(shí)驗(yàn)準(zhǔn)備
為了驗(yàn)證模型的分類效果,本文使用tensorflow對(duì)前兩部分所述模型進(jìn)行了構(gòu)建,并在兩種語(yǔ)言的公共語(yǔ)料上進(jìn)行實(shí)驗(yàn),列舉了實(shí)驗(yàn)過(guò)程及結(jié)果,最后對(duì)這兩種實(shí)驗(yàn)結(jié)果進(jìn)行了分析。
英文的推特?cái)?shù)據(jù)集樣本容量較大,本文僅使用了1%的數(shù)據(jù)作為測(cè)試集,其余數(shù)據(jù)均參與訓(xùn)練。每個(gè)模型均測(cè)試3次,測(cè)試結(jié)果取其平均值。本文對(duì)中文電商數(shù)據(jù)進(jìn)行了分詞預(yù)處理,使用了2 000條積極情感文本、2 000條消極情感文本作為測(cè)試集,其余數(shù)據(jù)均參與訓(xùn)練。每個(gè)模型均測(cè)試3次,測(cè)試結(jié)果取平均值。
本文使用的詞向量維度為512,LSTM單元64個(gè),卷積核32個(gè)。實(shí)驗(yàn)所使用的設(shè)備配置如下:系統(tǒng)16.04-Ubuntu,CPU為Intel酷睿i7-7700,主頻2.8 GHz,16 G內(nèi)存,GPU為NVIDIAGeForce-1060,6 G顯存。
3.2 ?實(shí)驗(yàn)結(jié)果分析
在不同語(yǔ)言的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)后,本文發(fā)現(xiàn)LSTM-CNN與CNN-LSTM模型均優(yōu)于CNN及LSTM模型1.5%~3.5%,LSTM-CNN模型以0.3%~0.8%優(yōu)于CNN-LSTM模型。在不同數(shù)據(jù)集方面,CNN,LSTM,LSTM+CNN,CNN+LSTM模型的表現(xiàn)差異較大,這4種模型在中文數(shù)據(jù)集上表現(xiàn)更好,當(dāng)然,這可能和推特文本中存在大量簡(jiǎn)寫(xiě)及錯(cuò)誤拼寫(xiě)現(xiàn)象有關(guān)。
實(shí)驗(yàn)結(jié)果印證了本文的論證。CNN+LSTM模型可以使LSTM更高效地利用原始文本的序列信息,本文進(jìn)一步猜測(cè),這種優(yōu)勢(shì)在處理長(zhǎng)度更長(zhǎng)的句子時(shí)更加顯著。但是在句子長(zhǎng)度普遍小于70的情感分類語(yǔ)料中,LSTM+CNN模型的效果是這幾種組合中最好的。該模型中的LSTM單元充當(dāng)解碼器,將原始句子中的每個(gè)詞都解碼為一個(gè)中間信息,這個(gè)中間信息除了這個(gè)單詞本身的含義,還包含它之前單詞的信息。之后,CNN可以利用其強(qiáng)大的信息識(shí)別能力處理更為豐富的中間信息,從而獲得更好的分類效果。CNN,LSTM,CNN-LSTM,LSTM-CNN的分類結(jié)果如表1所示。
4 ? ?結(jié)語(yǔ)
在本文的研究中,結(jié)合了CNN與LSTM模型,并在兩種不同語(yǔ)言的數(shù)據(jù)集中測(cè)試,最終獲得了更高的情感分類準(zhǔn)確率。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),LSTM-CNN與CNN-LSTM模型以1.5%~3.5%的準(zhǔn)確率優(yōu)于CNN及LSTM。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文的設(shè)想,在語(yǔ)句級(jí)的情感分析任務(wù)中,聯(lián)合CNN與LSTM可以發(fā)揮兩個(gè)模型的優(yōu)勢(shì),達(dá)到更佳的準(zhǔn)確率。
此次實(shí)驗(yàn)中,CNN+LSTM的表現(xiàn)雖然優(yōu)于CNN與LSTM模型,但在這兩種語(yǔ)料中的效果都不是最好的,本文進(jìn)一步地猜測(cè)此模型更適用于較長(zhǎng)的句子。另外,LSTM+CNN模型雖然表現(xiàn)最佳,但是該模型組合并沒(méi)有克服LSTM不能處理長(zhǎng)序列的缺陷,其在更長(zhǎng)的句子中的效果可能欠佳。在未來(lái),筆者將進(jìn)一步測(cè)試此模型在長(zhǎng)句的情感分析任務(wù)中的表現(xiàn),進(jìn)一步對(duì)模型進(jìn)行研究以克服長(zhǎng)序列難題。
[參考文獻(xiàn)]
[1]HINTON G E,SALAKHUTDINOV R R.Reducing the dimensionality of data with neural networks[J].Science,2006(5786):504-507.
[2]HINTON G E,OSINDERO S,TEH Y W.A fast learning algorithm for deep belief nets[J].Neural Computation,2006(7):1527-1554.
[3]LAROCHELLE H,BENGIO Y,LOURADOUR J,et al.Exploring strategies for training deep neural networks[J].Journal of Machine Learning Research,2009(10):1-40.
[4]KIM Y.Convolutional neural networks for sentence classification[J].Eprint Arxiv,2014(14):1181.
[5]LEE J Y,DERNONCOURT F.Sequential short-text classification with recurrent and convolutional neural networks[J].arXiv Preprint:2016(4):515-520.
[6]CHO K,VAN M B,GULCEHRE C,et al.Learning phrase representations using RNN encoder-decoder for statistical machine translation[J].arXiv Preprin,2014(14):1078.
[7]EBRAHIMI J,DOU D.Chain based RNN for relation classification[C].Colorado:Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies,2015.
[8]SANDERS N.Twitter sentiment corpus[EB/OL].(2019-03-15)[2019-09-10].http://www.sananalytics.com/lab/twitter-sentiment/.