李儉兵,王 俊,許萌萌,王 成
(1.重慶郵電大學通信與信息工程學院,重慶 400065;2.重慶信科設計有限公司,重慶 401121)
隨著信息技術的高速發(fā)展,推特(Twitter)、臉書(Facebook)等社交平臺每天會產(chǎn)生數(shù)以億計的文本數(shù)據(jù)。Twitter是巨大信息的來源,每天產(chǎn)生超過5億條推文[1]。龐大的推文(Tweet)提供了豐富的人際互動信息,從中挖掘情感極性[2]可以獲取更多有用的信息。本文主要分析Twitter數(shù)據(jù)集的情感極性。
情感分析(Sentiment analysis)又稱意見挖掘[3](Opinion mining),是對文本數(shù)據(jù)所表達的情感信息進行挖掘、分析的過程。從文本的粒度[4]來看,可以分為詞語級別、句子級別和篇章級別的情感分析。在基于詞典[5]的方法中,需要機械化的構造情感詞典,對數(shù)據(jù)進行字符串匹配,從而挖掘情感信息。隨著文本規(guī)模的不斷增大,完備的情感詞典很難構造,該方法目前已基本不再使用。在基于機器學習的方法中,將文本處理后得到特征后,將特征輸入到分類器中。常用的方法有支持向量機(Support Vector Machine,SVM)[6]、決策樹[7]、葉斯(Naive Bayesian,NB)[8]等。該方法對邏輯較強的文本學習和復雜函數(shù)的表達能力明顯不足,對復雜分類問題的泛化能力受到限制。
近年來深度學習方法的興起,可以有效地彌補以上方法的缺陷,深度學習的方法可以自動抽取特征值以及學習特征表示[9]。該方法在自然語言處理領域,例如文本分類、情感分析等任務上也獲得了很多研究成果。Kalchbrenner[10]提出了一種用于情感分類的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)模型,用于處理不同序列長度的輸入句子。Tai和Socher[11]提出了一個關于情感分類的長短期記憶(Long Short-Term Memory,LSTM)框架,該框架對特征的語義表示進行了改進。
本文先對LSTM輸入序列進行跳轉,再通過LSTM-CNN混合網(wǎng)絡模型進行情感分類。通過實驗驗證了該模型相比于LSTM-CNN混合模型在效率和準確度上均有所提升。
本文的工作是對Sosa P M.提出的LSTM-CNN模型架構[12]進行改進,以下介紹相關的神經(jīng)網(wǎng)絡模型。
卷積神經(jīng)網(wǎng)絡是一種由卷積層和池化層疊加組合而成的前饋神經(jīng)網(wǎng)絡,對高維特征具有良好的學習能力,目前已被廣泛應用于圖像處理、語音識別等領域。2014年,Kim等人[13]創(chuàng)新性的將CNN用于處理文本任務問題,在幾個數(shù)據(jù)集上均取得良好的結果。
圖1 CNN模型
一個包含n個詞的句子S={s1,s2,…,sn}可以被表示為二維矩陣的詞向量X=[x1,x2,…,xn],其中x∈Rn*d,d是詞向量的維度,將其輸入到神經(jīng)網(wǎng)絡卷積層的輸入,經(jīng)過池化層降維后,最終輸出到全連接層。
近年來,針對循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)具有“記憶性”的優(yōu)點,成功將其應用在自然語言處理領域。在文本序列中,單詞之間并不是獨立的,文本的語義與單詞之間的組合有關。CNN每層之間的神經(jīng)元是無連接的,這種神經(jīng)網(wǎng)絡無法捕獲輸入文本的上下文依賴信息,而RNN會對前面的信息進行記憶判斷并應用于當前的計算中。傳統(tǒng)的RNN容易出現(xiàn)梯度爆炸和梯度消失等問題,LSTM可以有效解決這些問題,并已成為目前最常使用的循環(huán)神經(jīng)網(wǎng)絡。LSTM有三個門來控制信息的保存,分別是:輸入門、遺忘門和輸出門。LSTM通過門控狀態(tài)來控制傳輸狀態(tài),記住需要長時間記憶的,忘記不重要的信息,從而更好地從整體上理解文本的情感。
圖2 LSTM模型
LSTM-CNN模型結合LSTM和CNN的優(yōu)點,其中LSTM模型可以有效地保留長文本序列中歷史信息的特征,CNN模型提取局部特征。通過CNN模型進一步提取輸入文本的特征,該混合模型使結果準確度更高。將推文表示為詞向量作為LSTM的輸入,再依次通過卷積層、池化層和全連接層,最終得到情感分類結果[12]。
圖3 LSTM-CNN模型
LSTM總是讀取文本的所有輸入內(nèi)容,且較長序列輸入過程緩慢,對于文本分類和情感分析等任務,大部分輸入對預測結果是不需要的。跳轉LSTM模型[14]在輸入文本時跳過無關的信息,在效率上有了更好的預測結果。
本文基于跳轉LSTM模型的預測效果的高效性和準確性,對Sosa P M.提出的LSTM-CNN模型進行改進。過程如下:
LSTM-CNN模型在情感分類取得較好的效果,其中LSTM層提取輸入文本的語序信息,CNN提取局部特征[12]。
圖4 跳轉機制
該混合模型分類結果的準確度優(yōu)于傳統(tǒng)的CNN、LSTM模型。這里,本文對LSTM層進行改進,文本序列在通入LSTM層輸出文本特征向量之前,首先計算跳轉概率。
圖5 跳轉LSTM-CNN模型
該網(wǎng)絡模型分為以下三個部分:
1)計算跳轉概率
假設輸入詞向量是長度為T、維度為d的序列:x1,x2,…,xT,記為:x1:T。本文標記xt∈Rd是詞向量的第t項。在第t項,將前向序列(x1:t-1)的特征編碼為fprecede(t)∈Rp,后向序列(xt+1:T)的特征編碼為ffollow(t)∈Rf。本文將后向序列分為兩部分:局部后向文本、全局后向文本。例如:x1:T中的第t項xt,xt+1:t+m為局部后向序列,xt+1:T為全局后向序列。為了提取后項序列,本文采用微型反向LSTM,反向LSTM從序列最后一項逆序讀取[14]。分別將反向LSTM和CNN的LSTM(t′)、CNN(t′)表示為步驟t的輸出。其中,LSTM(t’)編碼xt′:T的特征,CNN(t′)編碼xt′:t+m的特征。后向序列特征如下:
(1)
本文使用兩層感知機計算跳轉的概率分布
st=RELU(W1[xt;fprecede(t);ffollow(t)]+b1)
(2)
πt=softmax(W2st+b2)
(3)
其中,W1∈Rs*(d+p+f),W2∈R2*s,b1∈Rs,b2∈R2是多層感知機的權重和偏置值。“;”是連接符號,st∈Rs是隱藏層的狀態(tài),πt∈R2表示概率值。
2)跳轉后的文本序列通入LSTM網(wǎng)絡
對于概率值πt,本文選定閾值為0.5,當πt<0.5時,跳過該輸入單詞,隱藏層不進行更新,即ht=ht-1。
當πt>0.5時,模型處理輸入文本序列同標準LSTM模型。LSTM內(nèi)部含有3個控制門和一個記憶單元,用來記憶和存儲當前時刻的信息。將LSTM單元公式化,如下所示
x=[xt;ht-1]
(4)
(5)
ct=ft⊙ct-1+it⊙tanh(wc·x+bc)
(6)
ht=ot⊙tanh(ct)
(7)
其中,Wf、Wi、Wo∈Rd*2d分別為LSTM中的遺忘單元f、輸入單元i和輸出單元o的權重矩陣,bf、bi、bo∈Rd是LSTM的偏置向量,這些值會在訓練的過程中更新。[;]表示向量拼接,σ和tanh分別為sigmoid激活函數(shù)和雙曲函數(shù)。
從改進后的LSTM中輸出的各隱藏層向量h1,h2,…,hL,是輸入數(shù)據(jù)的一個高級抽象表示,里面含有輸入序列文本數(shù)據(jù)的語義信息,輸入到CNN的卷積層中。
3)將LSTM的輸出通過CNN進一步提取其特征
本文使用卷積層進行提取重要特征,卷積操作中的濾波器大小w∈Rh*d,這個濾波器和j個隱藏層輸出的向量進行卷積操作,進而產(chǎn)生的一個新的特征。例如,從一個窗口大小的單詞hi:i+j-1產(chǎn)生一個特征ci
ci=f(W·hi:i+j-1+b)
(8)
卷積層在NLP只進行一維的滑動,卷積核的寬度與隱藏層輸出向量的維度相同,濾波器被應用在每一個可能的單詞{h1:j,h2:j,hL-j+1:L},產(chǎn)生的特征圖為
c=[c1,c2,…,cL-j+1]
(9)
(10)
以上為單一大小的卷積核,文本使用多個大小的卷積核,數(shù)量為z,將池化層的輸出串聯(lián)作為全連接層的輸入,全連接層負責情感分類,得到結果,如下所示
V=v1⊕v2⊕…⊕vz
(11)
P(y|V,Wfc,bfc)=softmax(Wfc·V+bfc)
(12)
其中,⊕表示串聯(lián)操作,V表示模型在多個不同大小的卷積核生成結果的串聯(lián),z表示選取了幾種卷積核的數(shù)量,Wfc為全連接層的權重,bfc為偏置值,y∈{+1,-1},代表情感類別,這里是二分類。
在該混合網(wǎng)絡模型中,本文使用梯度下降法更新所有的參數(shù)θ
(13)
式中,λ為學習率。
本文采用交叉熵代價函數(shù),同時為了避免過擬合,加入L2正則化優(yōu)化模型,定義如下
(14)
本文使用的Twitter數(shù)據(jù)集是密歇根大學Kaggle競賽數(shù)據(jù)集[15]和Neik Sanders創(chuàng)建的“Twitter情感語料庫”的組合[16],其中包含標記為“positive”或“negative”的1578627條推文。
在跳轉部分,本文使用梯度下降法來優(yōu)化所有訓練的參數(shù),將其初始學習率設置為0.001,將參數(shù){h,d,p,f,s,h’}分別設置為{300,300,300,20,20},CNN的濾波器尺寸為{[3,300,1,60],[4,300,1,60],[5,300,1,60]}。
實驗中,LSTM隱藏層輸出詞向量的維度設為300,卷積神經(jīng)網(wǎng)絡部分的參數(shù)與Kim[13]的卷積神經(jīng)網(wǎng)絡參數(shù)相似,使用RELU激活函數(shù),卷積核大小分別為[3,4,5],每個卷積核數(shù)量為100,dropout設置為0.5,batch_size為64,池化層采用最大池化。所有權重矩陣的初始值服從均勻分布U(-0.1,0.1),偏置值初始化為0。
文本采用準確率來評估情感分析效果,定義如下
(15)
其中,T是預測正確的樣本數(shù),N是樣本的總數(shù)。準確率如下:
表1 神經(jīng)網(wǎng)絡模型的準確率對比
為了進行結果分析,將文本提出的模型與Sosa P M.提出的CNN,LSTM-CNN和CNN-LSTM模型進行了比較。在本文中,跳轉LSTM-CNN模型比混合LSTM-CNN模型高4.3%,其準確率明顯高于模型LSTM-CNN、CNN-LSTM和LSTM。該模型在情感分析任務上取得較好的效果,這表明跳轉機制在跳過無關序列后,擁有更強的特征提取能力,提高了分類的準確性。
本文在Sosa P M提出的LSTM-CNN模型的基礎上,提出一種基于跳轉的LSTM-CNN模型。即LSTM-CNN模型前加入跳轉機制,跳過大量對情感極性沒有幫助的文本,明顯提高序列讀取效率。再結合LSTM和CNN的各自優(yōu)勢,對推文進行特征提取。通過實驗結果可知本文提出的跳轉LSTM-CNN模型在保證較高的準確率前提下,明顯提高對文本數(shù)據(jù)的分類效率。但該實驗還有進一步完善和改進的空間。例如,可以在深度神經(jīng)網(wǎng)絡中加入Attention注意力機制,通過對文本序列詞語自動加權,來獲取情感關鍵詞進行重點關注,提取出更強的情感特征,使模型有更高的準確率。