李 輝,鄭媛媛,任鵬舉
LI Hui,ZHENG Yuan-yuan,REN Peng-ju
(河南理工大學(xué) 物理與電子信息學(xué)院,焦作 454000)
近年來,隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的快速發(fā)展,出現(xiàn)了眾多新興媒體,這些新媒體不斷地沖擊和改變著人們的生活方式。各種電商平臺的崛起,使得足不出戶的網(wǎng)絡(luò)購物變得簡單也流行,這種情況產(chǎn)生了大量帶有人們情感色彩的評論文本,對這些帶有感情色彩的文本進(jìn)行情感分析,是對電商平臺或者消費者群體都有益的工作。
情感分析,也稱意見挖掘[1]。作為自然語言處理重要的一個分支,主要任務(wù)是完成帶有感情色彩的文本的分類工作。文本情感分析主要包括文本分類,信息提取和文本生成技術(shù)[2]。目前,有很多使用基于機(jī)器學(xué)習(xí)的情感分析技術(shù)進(jìn)行文本分析,取得了不錯的效果[3,4]。但是,機(jī)器學(xué)習(xí)算法需要大量人工選擇的數(shù)據(jù)特征,隨著社會發(fā)展,出現(xiàn)大量新興詞匯和文本,人工設(shè)計的特征不能夠全面囊括多樣性的文本特征。因此,在有限的文本數(shù)量和計算條件的情況下,機(jī)器學(xué)習(xí)對于復(fù)雜問題的處理以及復(fù)雜功能的實現(xiàn)上會受到一定程度的限制。
為了克服傳統(tǒng)機(jī)器學(xué)習(xí)算法的缺陷,很多工作開始利用深度學(xué)習(xí)算法來處理NLP任務(wù),深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一部分,是使用具有多個處理層的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)對數(shù)據(jù)所蘊(yùn)含的特征信息進(jìn)行抽象表達(dá)的算法。近年來,深度學(xué)習(xí)算法在計算機(jī)視覺[5]和語音識別方向[6]取得了較好的成績。卷積神經(jīng)網(wǎng)絡(luò)CNN和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是現(xiàn)在文本情感分析中較多使用的網(wǎng)絡(luò)模型。CNN網(wǎng)絡(luò)在設(shè)計上的特點是通過融合學(xué)習(xí)的局部特征,最終實現(xiàn)全局特征的提取,此方法使得模型對局部特征較為敏感[7]。另一個被廣泛使用的神經(jīng)網(wǎng)絡(luò)RNN,通常被用來學(xué)習(xí)序列特征信息。RNN能夠通過一種鏈?zhǔn)缴窠?jīng)網(wǎng)絡(luò)來對歷史信息進(jìn)行儲存和傳播,即在每個時間點,網(wǎng)絡(luò)隱藏層的輸入不僅取決于當(dāng)前時刻的輸入,還有上一時刻隱藏層的輸出。但是,隨著時間點的增加,標(biāo)準(zhǔn)RNN就無法學(xué)習(xí)到句子的長期依賴關(guān)系,還會出現(xiàn)梯度爆炸或梯度消失的問題。為了解決這一現(xiàn)象,LSTM網(wǎng)絡(luò)被引入,其通過刻意的“門”設(shè)計來避免長期依賴問題,取得了很好的效果[8]。Cho K等人[9]在2014年對LSTM作出重大改進(jìn),提出GRU網(wǎng)絡(luò)模型,其降低了LSTM的復(fù)雜度,減少了計算量,是非常流行的變體。
文本情感分析任務(wù)中,利用CNN和RNN的主要研究有文獻(xiàn)[10]首次將CNN應(yīng)用于短文本情感分析,證明了其在情感分類任務(wù)中的可行性,但是其只使用了英文的數(shù)據(jù)集。文獻(xiàn)[11]使用卷積神經(jīng)網(wǎng)絡(luò)對中文文本進(jìn)行分析,從字級別詞向量和詞級別詞向量兩個方面進(jìn)行特征提取。文獻(xiàn)[12]使用RNN對中文的微博語料進(jìn)行情感分析,訓(xùn)練帶有詞語信息和句子信息向量特征,最終證明計算句子向量的方式可以幫助學(xué)習(xí)句子的深層結(jié)構(gòu)。文獻(xiàn)[13]使用LSTM網(wǎng)絡(luò)來捕捉文本的序列特征及上下文的依賴關(guān)系,緩解梯度爆炸或梯度消失現(xiàn)象,性能優(yōu)于標(biāo)準(zhǔn)RNN,證明了其在自然語言處理領(lǐng)域的適用性。文獻(xiàn)[14]在CNN網(wǎng)絡(luò)后引入LSTM,在英文數(shù)據(jù)集上使用模型,得到了不錯的分類效果。文獻(xiàn)[15]取消傳統(tǒng)CNN池化層,將CNN學(xué)習(xí)到的文本特征直接作為LSTM網(wǎng)絡(luò)的輸入,從而更大限度的學(xué)習(xí)文本序列特征。
值得注意的是,在文本中,每個詞或者句子對整個文本的情感極性有著不同的決定作用,而傳統(tǒng)的CNN和RNN是基于整個文本進(jìn)行無差別的特征提取,無法對文本重要的信息進(jìn)行識別。因此引入注意力機(jī)制(Attention Mechanism)來解決自然語言處理問題。注意力機(jī)制的原理是對于重要的部分分配較多的注意力,該模型最初在計算機(jī)視覺領(lǐng)域有很好的應(yīng)用。文獻(xiàn)[16]首次將注意力機(jī)制引入NLP領(lǐng)域的機(jī)器翻譯任務(wù)中,其本質(zhì)上是一種自動加權(quán),將想要聯(lián)系的兩個不同的模塊通過加權(quán)的形式進(jìn)行聯(lián)系。文獻(xiàn)[17]將注意力模型與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,并提出了三種不同位置的結(jié)合的方式。Venugopalan將LSTM與注意力模型結(jié)合,在語音處理任務(wù)上取得了不錯的效果。文獻(xiàn)[18]提出一種分層注意網(wǎng)絡(luò)來對篇章級的文本進(jìn)行分類,其中注意力機(jī)制用于給不同的句子賦予不同的權(quán)重。注意力機(jī)制還可以在其他任務(wù)中發(fā)揮重要作用,如句子理解,選擇回答等。
為了克服傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)單一,提取特征不充分的缺點,本文提出一種基于注意力機(jī)制的混合神經(jīng)網(wǎng)絡(luò)模型,主要工作如下:
1)使用GRU代替?zhèn)鹘y(tǒng)CNN的池化層,將CNN的局部特征提取能力和GRU的序列信息學(xué)習(xí)能力結(jié)合在一起,并引入注意力機(jī)制,學(xué)習(xí)文本重要特征,抑制無關(guān)信息對分類結(jié)果的干擾。
2)在中文數(shù)據(jù)集上對所提模型進(jìn)行實驗驗證與評估,并與一般神經(jīng)網(wǎng)絡(luò)設(shè)置實驗對比,證明使用GRU和引入注意力機(jī)制確實能夠提升分類效果。
如圖1所示,本文所提的CNNGRU-Attention混合文本情感分析模型,在對文本進(jìn)行向量化表示后,使用CNN進(jìn)行卷積操作,提取文本局部特征,將其作為GRU的輸入,來學(xué)習(xí)更深層次的文本詞語之間的關(guān)系,然后利用Attention層來學(xué)習(xí)重要的文本信息,對文本特征進(jìn)行高度抽象化的表示之后,輸入分類層進(jìn)行分類。
與圖像不同,文本本身并不具有豐富的高維向量表示,其本身不能直接作為輸入數(shù)據(jù)來進(jìn)行分析,因此文本情感分析的一部分重要工作就是訓(xùn)練詞向量,將文本的信息轉(zhuǎn)換為計算機(jī)能夠識別的特征,才能夠?qū)ζ渲刑N(yùn)含的語義信息進(jìn)行學(xué)習(xí)。
使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練詞向量的方法由Bengio[19]提出,主要思想是將詞分布式地映射在一個較低維度的空間,該方法的訓(xùn)練目的就是由已知的ωt-n+1,…,ωt-1共n-1個詞,推測第n個詞ωt?,F(xiàn)在,很多詞向量訓(xùn)練工作都使用Word2vec詞向量訓(xùn)練工具,該模型由Mikolov[20]所提出,通過固定大小的窗口來預(yù)測目標(biāo)詞,窗口越大,所提取的上下文信息越完善,但是會耗費較多的時間。
在本文實驗中,使用Gensim庫中的Word2vec模型實現(xiàn)詞向量訓(xùn)練,將生成的詞向量按照句子順序拼接后得到的詞向量矩陣作為模型的輸入特征。
圖1 本文模型結(jié)構(gòu)示意圖
卷積的過程就是一個一維的濾波器劃過由詞向量組成的矩陣,在不同的位置檢測特征。若xiRd為一個句子中第i個單詞所對應(yīng)的的詞向量,xRl×d代表所輸入的一整個句子,其中,l代表句子的長度,則一個句子所代表的詞向量矩陣可以表示為:
式(1)中,⊕代表連接運算符,若濾波器的窗口大小為d,寬度為k,卷積過程可以表示為:
式(2)中b∈R為偏置項,f為非線性激活函數(shù),本實驗采用ReLu作為激活函數(shù),如式(3)所示:
卷積之后,生成如下所示的特征圖:
式(4)中,分號表示向量連接卷積操作產(chǎn)生的文本特征表示ci,為了提取更多的文本特征,我們選用多個卷積核,得到多個代表不同特征信息的特征圖,在深度上進(jìn)行排列。
對于傳統(tǒng)的基于卷積神經(jīng)網(wǎng)絡(luò)的文本情感分析,在生成特征圖后,都會進(jìn)行最大池化或者平均池化,來選擇一個或多個能夠表示文本的重要特征信息,但是池化操作會損失很多文本的重要信息,所以,在本文所提的混合模型中,將不再進(jìn)行池化操作,而是使用GRU單元對卷積操作后的特征進(jìn)行序列特征學(xué)習(xí),
圖2 GRU內(nèi)部結(jié)構(gòu)示意圖
GRU模型是LSTM的發(fā)展歷程中,比較成功的變種,其結(jié)構(gòu)示意圖如圖2所示。通過設(shè)計“門”的結(jié)構(gòu)來讓信息選擇性通過,使用遞歸操作單元來進(jìn)行輸入矩陣的處理,其結(jié)果取決于上一時刻的細(xì)胞狀態(tài)ht-1和當(dāng)前時刻的輸入xt,其中t代表當(dāng)前時刻,t-1代表前一時刻。GRU的具體工作原理可以表達(dá)為如下公式:
其中,σ是激活函數(shù),輸出在[0,1]之間,作用是控制信息通過的多少;tanh是雙曲正切函數(shù),輸出在[-1,1]之間;重置門r和更新門z用來控制記憶單元的儲存內(nèi)容。重置門用來控制多大程度上擦除記憶單元上一時刻的內(nèi)容,更新門決定多大程度的保存前一時刻儲存單元的內(nèi)容。
相對于LSTM,GRU模型更為簡單,參數(shù)更少,在訓(xùn)練速度上也會有所提升,因此,本文選用GRU作為序列信息學(xué)習(xí)的工具。
在文本中,每一個詞語句子對于文本類別的貢獻(xiàn)度是不一樣的,為了識別重要的特征,增加Attention層來提取更深層次的文本特征。該層首先將GRU網(wǎng)絡(luò)中的隱藏uw層狀態(tài)hi非線性變換為ui,然后初始化注意力矩陣,與ui進(jìn)行點乘運算,將初始化的注意力矩陣與之前網(wǎng)絡(luò)學(xué)習(xí)到的特征聯(lián)系起來,使用softmax函數(shù)對其進(jìn)行歸一化操作,得到一個概率分布,即GRU隱層的輸出權(quán)重系數(shù),最終得到注意力矩陣,可以描述為以下公式:
向量x是經(jīng)過注意力層后所提取到的文本特征向量,將其作為預(yù)測層的輸入,使用softmax函數(shù)來計算每個文本分屬不同類別的概率大小。
從上式中可以看出,當(dāng)損失值越接近于0,模型預(yù)測值與真實值y越接近,模型訓(xùn)練過程中使用Adam優(yōu)化算法來使模型損失最低。
本文采用從互聯(lián)網(wǎng)采集的真實評論對所提混合模型進(jìn)行性能測試,數(shù)據(jù)集詳細(xì)信息如表1所示:
表1 數(shù)據(jù)集詳細(xì)信息
由于網(wǎng)上數(shù)據(jù)集較亂,需要對文本進(jìn)行一些預(yù)處理工作,包括分詞和去除停用詞,使用結(jié)巴分詞完成中文的分詞處理,根據(jù)網(wǎng)上搜集到的停用此表去除停用詞。數(shù)據(jù)集文本類型分為積極(標(biāo)簽為1)和消極(標(biāo)簽為0)兩類,選用80%的數(shù)據(jù)集作為訓(xùn)練集,20%的數(shù)據(jù)集作為驗證集。本文實驗環(huán)境為python3.5,使用Keras深度學(xué)習(xí)開源框架。
不同參數(shù)的組合會對實驗結(jié)果產(chǎn)生不同的影響,在本文中實驗中,超參數(shù)設(shè)置如表2所示。
表2 模型參數(shù)設(shè)置
本文總共設(shè)置四組對比試驗,來對比使用GRU和注意力模型對分類結(jié)果的影響。
模型一:CNN,基于卷積神經(jīng)網(wǎng)絡(luò)的文本情感分析模型,使用Word2vec訓(xùn)練的詞向量作為網(wǎng)絡(luò)輸入。
模型二:GRU,基于GRU的文本情感分析模型,使用Word2vec訓(xùn)練的詞向量作為網(wǎng)絡(luò)輸入。
模型三:CNN-GRU,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和GRU單元的網(wǎng)絡(luò)模型,其中GRU模型替代了卷積神經(jīng)網(wǎng)絡(luò)的池化層,用來進(jìn)一步學(xué)習(xí)文本的序列特征信息,使用Word2vec訓(xùn)練的詞向量作為網(wǎng)絡(luò)輸入。
模型四:CNNGRU-Attention,本文所設(shè)計的基于注意力機(jī)制的混合神經(jīng)網(wǎng)絡(luò)模型,實質(zhì)上是在模型三的GRU層后使用注意力層,以捕捉文本的重要特征信息。
在本文實驗中,選取準(zhǔn)確率(Accuracy)和F-SCORE作為模型評價指標(biāo),其公式如下:
F-SCORE由精準(zhǔn)率和召回率得到,假設(shè)精準(zhǔn)率為P,召回率為R,則:
其中,TP表示分類為積極且分類正確的樣本數(shù)目,F(xiàn)P表示錯誤的分類為積極的消極數(shù)據(jù)樣本,F(xiàn)N表示被錯誤的分類為消極的積極數(shù)據(jù)樣本。
實驗結(jié)果如表3所示,從表3結(jié)果可見,本文所提的CNNGRU-Attention混合模型在準(zhǔn)確率和F-SCORE上較其他網(wǎng)絡(luò)模型都有顯著提升。證明該模型在文本情感分析任務(wù)上的可行性和優(yōu)越性。
對比混合模型CNNGRU相對于單一模型CNN或GRU在正確率上有顯著的提升,這是因為模型使用了能夠?qū)W習(xí)序列信息的GRU層來取代傳統(tǒng)的池化層,將CNN和GRU網(wǎng)絡(luò)的優(yōu)勢結(jié)合在一起,既學(xué)習(xí)了文本的局部特征,也學(xué)習(xí)了詞語句子之間的序列信息,更加充分的提取了文本特征,從而提升了分類性能。
對比CNNGRU和CNNGRU-Attention模型,可以看出引入注意力機(jī)制后,模型性能得到了顯著提升,這是因為Attention層對于重要的部分分配較多的注意力,通過計算概率分布值,分析文本信息的重要性分布,提升重要部分對文本情感分類的影響力,減小無關(guān)信息的干擾,從而提升文本情感分類的效果。
表3 不同模型分類結(jié)果
另外,取京東商品評論2 0輪迭代的準(zhǔn)確率和F-SCORE數(shù)值,繪制折線圖,如圖3和圖4所示,可以詳細(xì)的看到各個模型在20輪迭代中準(zhǔn)確率的變化,可以看出,CNNGRU-Attention模型性能優(yōu)于其他傳統(tǒng)神經(jīng)網(wǎng)絡(luò)且穩(wěn)定性較好,基本上在第11輪性能達(dá)到最好,表示模型已經(jīng)收斂,可以停止訓(xùn)練。
圖3 不同模型準(zhǔn)確率變化圖
圖4 不同模型F-SCORE變化圖
本文主要介紹了深度學(xué)習(xí)算法在中文文本情感分析中的應(yīng)用,使用CNN結(jié)合GRU網(wǎng)絡(luò),并引入注意力機(jī)制構(gòu)建混合神經(jīng)網(wǎng)絡(luò)模型來學(xué)習(xí)重要的文本信息,該模型實質(zhì)上就是使用GRU對序列信息的學(xué)習(xí)能力來取代傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的池化層,將CNN和GRU的模型優(yōu)勢結(jié)合在一起,保留重要的文本特征信息,然后使用注意力層識別重要的特征,抑制不重要信息對分類結(jié)果的干擾,從而提升模型的準(zhǔn)確率。實驗結(jié)果證明本文所提模型在中文文本情感分析任務(wù)上的可行性和優(yōu)越性。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性及其眾多的參數(shù),文本情感分析還有很多問題需要進(jìn)行進(jìn)一步的研究。下一步的工作將深入研究網(wǎng)絡(luò)結(jié)構(gòu),優(yōu)化模型,使其更好的適用于文本情感分析。