劉發(fā)升,徐民霖,鄧小鴻
1.江西理工大學 信息工程學院,江西 贛州 341000
2.江西理工大學 應用科學學院,江西 贛州 341000
隨著計算機技術的發(fā)展,電商等平臺的出現愈演愈烈,而人們對該平臺的依賴性也越來越強,人們不斷地使用電商來購買物品,并對物品的質量等提出自己的意見。在這種情況下,文本數據呈現出爆發(fā)式的增長,人工操作難以提取出有效的情感信息。因此,在眾多的文本數據中,如何有效地提取出情感信息變得尤為重要。
情感分析是指使用自然語言處理和文本分析等技術自動的提取或分類出某些評論的情感極性。一般的情感分析方法有基于情感詞典的情感分析方法[1]和基于機器學習的情感分析方法[2],但在大量的數據處理需求下,兩種方法都顯得有所欠缺。在這種情況下,深度學習方法[3-4]逐漸浮出水面,其有著很強的泛化能力,并且能夠自動提取特征,輕松處理海量的數據。深度學習方法主要致力于如何改進模型和對模型的輸入進行優(yōu)化以提高情感分類效果。Yang 等人[5]利用網絡術語和維基中文數據集擴展原始詞匯,并根據句子的長度對CNN(卷積神經網絡)的池化層進行優(yōu)化實現了情感分析任務。Hyun 等人[6]提出一種依賴于目標的卷積神經網絡方法(TCNN),利用目標詞與鄰近詞之間的距離信息來學習每個單詞對目標的重要性,達到了較好的分類效果,但其未考慮文本的上下文依賴關系。AI-Smadi等人[7]將RNN(循環(huán)神經網絡)與支持向量機在相同的數據集上進行了比較,結果顯示RNN 在運行速度和二次任務上取得了優(yōu)勢。RNN雖然能夠獲得上下文依賴關系,但是會出現梯度消失或梯度爆炸的問題,而LSTM(長短期記憶網絡)利用記憶單元和門機制很好地解決了該問題。Tang 等人[8]提出了兩個依賴目標的LSTM 模型,該模型能夠自動的考慮目標信息,取得了較好的分類效果。Tai等人[9]提出一個2-layer LSTM模型,在相同的時間步中,將第一層LSTM 中的隱藏狀態(tài)作為第二層LSTM的輸入,讓第二層LSTM捕捉輸入序列的長期依賴性,進行情感分析任務,但其未考慮文本的局部特征和輸入的優(yōu)化。Wang等人[10]提出一個堆疊殘差的LSTM 模型,在每個LSTM 層引入殘差連接,構造了一個8 層的神經網絡進行情感分析任務。Xu 等人[11]提出了一個高速緩存的長短期記憶網絡(CLSTM)捕獲長文本中的全局語義信息,其引入一種緩存機制,將內存劃分為幾個具有不同遺忘率的組,從而使網絡能夠在循環(huán)單元內更好的保持情感信息,并在3個數據集上取得了明顯的效果,但其未考慮文本的后向語義信息和輸入優(yōu)化。Shuang 等人[12]提出一個基于神經網絡的情感信息收集-提取器(SICENN),包含一個情感信息收集器(SIC)和一個情感信息提取器(SIE),SIC 由BiLSTM(雙向長短期記憶網絡)構成,用來收集句子中的情感信息并生成信息矩陣。SIE 將信息矩陣作為輸入,并通過3 個不同的子提取器精確地提取情感信息,并且應用新的結合策略來組合不同子提取器的結果,且在多個數據集上取得了較好的分類結果,但其未考慮輸入的優(yōu)化。Zhang等人[13]提出兩種基于注意力的神經網絡,分別為內部注意力模型和外部注意力模型,通過自動評估詞之間的相關性來得到更好的話語表達,得到了明顯的效果。Song 等人[14]提出一種基于注意力機制的LSTM網絡情感詞典嵌入方法用于情感分析任務,但其未考慮文本的雙向語義信息和輸入優(yōu)化。隨著情感分析的深入研究,圖神經網絡也逐漸被應用在該領域。Yao等人[15]基于單詞共現和文檔單詞關系為語料庫構建單個文本圖,然后為語料庫學習文本圖卷積網絡(Text GCN)。該模型利用one-hot詞表示對文本進行初始化,并且共同學習單詞和文檔的嵌入。Peng 等人[16]研究基于圖長短期記憶網絡(graph LSTMs)的關系提取框架,其可以很容易地擴展到跨句子n元關系提取。圖形公式提供了一種探索不同LSTM 方法并結合各種句內和句間依賴關系的統(tǒng)一方法,能夠利用相關關系進行多任務學習。
針對上述文獻的不足,本文主要工作如下:
(1)利用情感詞典對文檔數據集進行優(yōu)化,使模型盡可能捕獲到更多的情感信息。
(2)將CNN、BiLSTM模型與注意力機制進行融合,充分考慮文本的局部特征和上下文特征,由于模型確定了文檔數據中句子的具體數量,所以不僅能夠處理長文本序列并且能夠處理較短的文本序列和捕獲更多的詞與詞之間、句子與句子之間的語義信息。
(3)融合CNN、BiLSTM模型和注意力機制,并結合優(yōu)化的輸入,提出一個結合注意力機制和句子排序的雙層CNN-BiLSTM模型(DASSCNN-BiLSTM),該模型可以對句子之間的語義信息進行編碼,提升情感分析精度。
CNN 的提出源于生物中感受野這一概念,是一個典型的前饋神經網絡,起初CNN 被運用在計算機視覺領域,隨后因CNN強大的特性,逐漸被運用在了各個方面,其中則包括了NLP(自然語言處理)領域。CNN 可以在無需人為干預的情況下自動的學習到文本的隱藏特征進行情感分析任務,也可將學習到的特征作為其他模型的輸入進行更加精準的分類。CNN相對于傳統(tǒng)的神經網絡具有明顯的優(yōu)勢,因其采用局部連接、權值共享的方式大大的減少了傳統(tǒng)神經網絡因采用全連接方式所帶來的網絡參數巨大,訓練時間長等問題,并且使用下采樣的方式更加精準的抓取了文本的主要特征和進一步地縮小了網絡維度。通常情況下,CNN 包含了卷積層和池化層,如圖1所示。
(1)卷積層
該層主要目的是通過固定大小的卷積核對輸入的特征矩陣進行卷積操作,得到新的特征矩陣。給定x1,x2,…,xn為句子d所對應的嵌入向量,將嵌入向量x1,x2,…,xn輸入該層,通過卷積操作得到序列y1,y2,…,yn-h+1,如式(1)所示:
圖1 卷積神經網絡
其中xi:i+h-1指的是向量xi,xi+1,…,xi+h-1的結合,h是卷積核的維度大小,f(?)是非線性激活函數tanh(x)=W是權重矩陣,b是偏置向量,由訓練獲得。
(2)最大池化層
卷積神經網絡中的池化層一般包括兩種,分別為平均池化層和最大池化層,本文使用的是最大池化層。將卷積層輸出的序列y1,y2,…,yn-h+1輸入該層,不僅獲取到文本的主要特征,且降低了向量維度,減少訓練復雜度,最終得到固定維度大小的向量,如式(2)所示:
LSTM是一個循環(huán)神經網絡,通過利用細胞狀態(tài)和門機制修改了RNN 的tanh 層,使其能夠記憶上一步的信息,并融合當前的信息向下一步傳輸,解決了RNN所存在的梯度消失和梯度爆炸問題,如圖2所示。
圖2 長短期記憶網絡
LSTM運行機制如式(3)~(8)所示:
其中i、o、f分別代表著門機制內的輸入門、輸出門、遺忘門,c是記憶細胞,在t時刻,網絡接收到當前輸入向量xt和t-1 時刻遺留的隱藏向量ht-1作為3 個門機制的輸入,it、ot、ft分別為輸入門、輸出門、遺忘門在t時刻所得到的激活向量。σ是指非線性激活函數tanh 是非線性激活函數Wf,Wi,Wo,Wc和Uf、Ui、Uo、Uc分別是遺忘門、輸入門、輸出門和細胞狀態(tài)所對應的權重矩陣,bf,bi,bo,bc是偏置向量,由訓練獲得。
本文結合了CNN、BiLSTM 和注意力機制,提出一個雙層的情感分析模型,能夠捕獲句子之間的語義信息,且利用情感詞典優(yōu)化模型輸入,使模型能夠處理不同長度的文檔數據,進一步提升模型的效率,具體如圖3所示。
眾所周知,文檔包含了一系列句子,句子包含了諸多詞語,句子的意義由詞語和詞語之間的語義規(guī)則形成,而文檔的意義則由諸多句子組成。通過Word2vec對文檔中所有的詞進行預訓練,將每個詞表征為低維度向量,并將其堆放在一起,形成每個句子所對應的詞嵌入矩陣Sw∈Ra×|V|,其中a指的是詞嵌入維度,| |V指的是詞匯的大小,之后利用情感詞典對其進行優(yōu)化,作為本文模型第一層的輸入。由于CNN能夠抓取文本的局部特征,LSTM每一步輸入都是上一步的輸出和當前步輸入的結合,能夠充分的捕獲文本的語義依賴性,所以能夠利用CNN和BiLSTM生成本文所述的連續(xù)句子表示,之后連接兩個句子表示生成全局句子表示,作為第二個BiLSTM 層的輸入,并且利用注意力機制,更加精確的捕獲句子特征,生成文檔表示,進行最終的情感分類任務。
使用NLP管道將句子分成詞和短語,并對詞性進行標記,該方法的優(yōu)勢在于簡單并且工作量小。判斷一個句子的情感極性通常是比較句子中情感詞的數量,如果積極的詞比消極的詞更多,那么句子就判定為積極的,反之亦然。另外一種方法就是利用句子中的詞和短語,計算它們的情感分數來判定句子的情感極性,本文使用的是第二種方法。該方法相對于傳統(tǒng)的機器學習和神經網絡方法,未考慮詞與詞之間、詞與句子之間的語義信息,所以并不適合用于文檔級的情感分類任務,但是用于句子級別的情感分類還是可以接受的。
圖3 結合注意力機制和句子排序的雙層CNN-BiLSTM模型
為了提升情感分類的效果,本文定義Max為每個文檔中句子的最大數量,若文檔中句子數量超過了Max,則去除一部分句子,使句子的數量達到輸入的要求。若文檔中句子的數量少于Max,則使用0 對其進行補充。值得注意的是,當句子數量大于Max,對文檔末尾的句子進行去除時,被去除的句子中可能包含了文檔的主要信息,這樣會錯過重要的語義信息?;谶@樣的情況下,本文在不改變句子順序的條件下,根據情感極性對其進行排序處理。
為了判斷句子的情感極性,本文首先使用上述的方法將句子分為詞和短語,并用情感詞典SentiWord-Net3.0得到每個詞的情感分數,短語的情感分數則是通過將所有相同單詞同義詞的情感值平均化獲得。如果有副詞存在,則將短語的情感分數乘以一個權重。然后將所有部分的得分求和,得到句子的情感分數。正數代表積極,負數代表消極,并且將分數的絕對值用來作為句子排序的依據。
最終,若文檔中的句子數量大于Max,則根據上述方法取得情感極性強的Max 個句子,作為DASSCNNBiLSTM 模型的輸入,若文檔中的句子數量少于Max,則將空余部分補0,作為模型的輸入。
將上述優(yōu)化的文檔句子d通過Word2vec 編碼成x1,x2,…,xn作為該部分的輸入,且使用多個不同大小的卷積核對其進行卷積處理生成卷積序列yi(i=1,2,…,n-h+1),其中h指的是卷積核的維度。然后,經過最大池化層得到句子表示y=max(yi)。
BiLSTM 是雙向LSTM 的合成,相對于傳統(tǒng)的LSTM,其不僅掌握了前向語義信息,也掌握了后向語義信息,更加充分地捕獲了文本的上下文信息,具體如圖4所示。
圖4 雙向長短期記憶網絡
將詞嵌入x1,x2,…,xn作為輸入,通過前向LSTM和后向LSTM分別獲得了hL和hR,如式(9)和(10)所示:
之后連接hL和hR獲得隱層向量hi(i=1,2,…,n) ,最后通過平均池化層獲得最終的句子表示h,如式(11)所示:
該部分由BiLSTM和注意力機制構成,充分的抓取了文檔句子之間的語義信息。注意力機制來自于人類的視覺注意力,人類在看事物時,總是會把注意力集中在某一點上,以便在眾多的事物中獲取更加關鍵的信息。對于一個文檔,每個句子的貢獻都是不同的,有的句子占有更多的語義信息,有的句子則占有較少的語義信息,基于此,本文引入了注意力機制,為每個句子表示都賦予一個注意力權重,使得模型能夠注重更加關鍵的語義信息,具體如圖5所示。
圖5 基于注意力機制的BiLSTM模型
連接上述由CNN 和BiLSTM 所生成的句子表示得到全局句子表示SG=[y,h] 作為該部分的輸入,得到BiLSTM隱層向量并結合注意力機制得到文檔表示D,如式(12)~(15)所示:
本文使用有監(jiān)督學習對模型進行訓練,訓練目標為最小化負對數似然函數,損失函數為交叉熵函數,且加入L2正則化,防止訓練過擬合,如式(16)所示:
其中,z為文檔的目標分類,z?為文檔的預測分類,i為文檔的索引,j為類別索引,λ是正則化參數,θ是參數集合。
且采用反向傳播算法和隨機梯度下降法[17]計算參數θ,如式(17)所示:
其中η為學習率,t為時間步。
本文采用 IMDB[18]、Yelp 2014[11]和 Yelp 2015[19]數據集對模型進行多分類實驗,IMDB是大型的電影評論數據集,共84 919,Yelp2014和Yelp 2015是餐館評論數據集,分別為231 163 和243 353,且將三個數據集按照80%、10%和10%的比例分成訓練集、驗證集和測試集,其中IMDB 數據集的訓練數、驗證數和測試數分別為67 426、8 381和9 112,平均每個文檔中句子數為16.08,單詞數為394.6,分為1到10級。Yelp 2014數據集的訓練數、驗證數和測試數為183 019、22 745和25 399,平均每個文檔中句子數為11.41,單詞數為196.9,分為1 到5級。Yelp 2015 數據集的訓練數、驗證數和測試數為194 360、23 652和25 341,平均每個文檔句子數為8.97,單詞數為151.9,分為1 到5 級。每個級別的數據量相同,即數據集 IMDB、Yelp2014 和 Yelp2015 中的數據平均分為10、5和5個級別,訓練集、驗證集和測試集同理。
本文使用精度(accuracy)和均方誤差(Mean Squared Error,MSE)作為評價標準。精度是衡量整體情感分類結果的標準指標,即文本正確分類的比例,值越大結果越好。均方誤差用來衡量真實分類和預測分類之間的差異,值越小說明分類結果越好,如式(18)所示:
其中,zj為真實分類為預測分類,j為類別索引,N為類別數。
(1)本文利用谷歌開源的Word2vec訓練詞向量,詞向量維度為300,CNN部分使用卷積核大小分別為3、4、5,卷積核數量為150,BiLSTM 部分隱藏層向量維度為120,學習率為0.01.對于IMDB、Yelp 2014和Yelp 2015數據集,批尺寸分別為128、64和64。
(2)對于本文中所提及的文檔中最大句子數量,根據平均每個文檔中的句子數分別設置為22(IMDB)、14(Yelp2014)和13(Yelp2015)。
(3)對于模型的初始化,本文使用均勻分布[?0.1,0.1]隨機初始化所有參數矩陣,并使用隨機梯度更新所有參數。
參數具體情況如表1所示。
表1 參數設置
將本文提出的DASSCNN-BiLSTM模型與RNN[20]、LSTM[21]、BiLSTM[20]、2-layer LSTM[9]和 CLSTM[11]模型在IMDB、Yelp 2014和Yelp 2015三個數據集上進行了對比,并且與本文模型的變體模型DASCNN-BiLSTM進行了對比。
模型對比方法參數設置如表2所示。
表2 對比模型參數設置
(1)RNN:典型的循環(huán)神經網絡,能夠捕捉文本的上下文依賴關系。
(2)LSTM:RNN模型的變體,通過門機制和細胞狀態(tài),對RNN 的tanh 層進行了改進,解決了RNN 模型存在的梯度消失或梯度爆炸問題。
(3)BiLSTM:雙向LSTM 的結合,單純的LSTM 只能夠捕捉文本的前向語義信息,而BiLSTM模型能夠同時捕捉文本的前向語義信息和后向語義信息。
(4)2-layer LSTM:在相同的時間步中,將第一層LSTM中的隱藏狀態(tài)作為第二層LSTM的輸入,讓第二層LSTM捕捉輸入序列的長期依賴性。
(5)CLSTM:引入了一種緩存機制,將內存劃分為幾個具有不同遺忘率的組,從而使網絡能夠在循環(huán)單元內更好地保持情感信息。
(6)DASCNN-BiLSTM:本文提出DASSCNN-BiLSTM 模型的變體,使用未經過情感詞典優(yōu)化的文檔數據作為輸入。
如表 3、表 4 和表 5 所示,在 IMDB 數據集下的分類精度明顯低于Yelp2014 和Yelp2015 的分類精度,原因在于IMDB 數據集分為10 類,而Yelp2014 和Yelp2015分為5類,分類的難度隨著類別數的增加而增加。且在三個數據集下,RNN 的分類結果相對于LSTM 明顯較差,原因在于RNN 在較長文本中產生了梯度消失或爆炸的問題,欠缺足夠的長文本特征捕獲能力,而LSTM彌補了該問題,提升了較長文本特征捕獲能力。BiLSTM的分類效果略好于LSTM,原因在于其同時捕獲了文本的前向語義和后向語義信息,相對于LSTM,提取了更多的語義信息。2-layer LSTM 在IMDB 數據集中精度為0.401,MSE為3.18,在Yelp2014中精度為0.613,MSE為 0.51,在 Yelp2015 中精度為 0.625,MSE 為 0.45,分類效果明顯優(yōu)于LSTM 在三個數據集中的0.398、3.21,0.610、0.57 和0.617、0.55,原因在于利用了雙層LSTM,提取了更多的文本特征,證明了多層LSTM 的有效性。CLSTM則因為利用了緩存機制,通過不同的遺忘率,得到了更好的分類效果。在Yelp2015 數據集中,BiLSTM的分類效果和2-layer LSTM、CLSTM 幾乎一致,而在IMDB和Yelp2014中,BiLSTM的分類精度和MSE分別為 0.432、2.21 和 0.625、0.49,2-layer LSTM 的分類精度和MSE分別為0.401、3.18和0.613、0.51,CLSTM的分類精度和 MSE 分別為 0.429、2.67 和 0.624、0.49,BiLSTM的分類效果明顯高于二者,原因在于對前后向語義信息的捕獲,進一步證明了捕獲文本前后向語義信息的有效性。
表3 在IMDB數據集下模型對比結果
表4 在Yelp 2014數據集下模型對比結果
表5 在Yelp 2015數據集下模型對比結果
在本文提出的模型中,變體模型DASCNN-BiLSTM在 IMDB 中,分類精度達到了 0.451,MSE 為 2.15,在Yelp2014 中,分類精度達到了 0.631,MSE 為 0.49,在Yelp2015 中,分類精度達到了0.645,MSE 為0.44,分類效果明顯優(yōu)于上述所有模型,原因在于其不僅利用BiLSTM 獲取了文本的上下文依賴關系,也通過CNN獲取了文本的局部特征,且利用2 層架構,獲取了句子之間的語義關系,并利用注意力機制進一步的捕獲了文本特征。
由于本文提出的最終模型(DASSCNN-BiLSTM)利用了情感詞典對模型輸入進行了優(yōu)化,在IMDB、Yelp2014 和Yelp2015 數據集中,分類精度與 MSE 分別為0.473、2.01,0.647、0.45 和0.658、0.39,分類效果優(yōu)于DASCNN-BiLSTM,證明了DASSCNN-BiLSTM 模型能夠更好的用于文檔級情感分析任務。
本文還對不同大小的Max 值所產生的結果進行了精度對比,如圖6、7和圖8所示。
圖6 不同Max結果比較(IMDB)
圖7 不同Max結果比較(Yelp2014)
圖8 不同Max結果比較(Yelp2015)
如圖6、7和8所示,在IMDB數據集下,分類精度隨著Max的增大逐步增高,8到16這一段尤為明顯,之后增加幅度降低,直到Max為22時,達到最高。在Yelp2014數據集下,分類精度在4 到10 這段提升尤為明顯,之后略有減少,且當Max為14時,達到最高。在Yelp2015數據集下,分類精度在5到9這段提升尤為明顯,且當Max為13 時,達到最高。原因在于,當Max 過小時,文檔中包含的句子數過少,所提取的特征信息過少,而當Max增大時,特征信息越來越多,分類精度也隨之增加。由此可見,本文所選擇的Max數值是合理的。
為解決傳統(tǒng)深度學習作文本情感分析未充分考慮文本特征和輸入優(yōu)化的問題,本文提出結合注意力機制和句子排序的雙層CNN-BiLSTM 模型(DASSCNNBiLSTM)做文本情感分析,利用情感詞典對輸入進行優(yōu)化,并利用CNN、BiLSTM 和注意力機制生成句子表示和文檔表示。實驗表明,本文提出的DASSCNNBiLSTM 模型對文本情感分析具有較好的可行性和有效性。未來的工作,將致力于如何進一步提升模型的分類效果以及如何將其運用在其他的NLP任務中。