張玉環,錢 江
(1. 北京郵電大學理學院,北京 100876;2. 北京郵電大學理學院,北京 100876)
隨著互聯網技術的飛速發展,越來越多的用戶開始在網上發表自己的意見,這些意見包括了公民對公共事件的看法以及顧客對商品的評論等等。而制造商為了提高產品質量,改善營銷策略,就必須充分了解用戶對商品和相關服務的意見。同時在如今的電商時代,越來越多的人選擇在網上購物,但是消費者無法像在實體店一樣見到真實的商品,檢查商品的質量,所以對制造商和消費者來說,商品的評論數據都是很重要的[1]。這些評論往往表達了作者或正向(褒)、或負向(貶)、或中立的觀點[2]。但是,同一商品的評論往往有很多,這使得用戶和商家無法迅速掌握有用的信息,而傳統的問卷調查顯然不能滿足市場競爭的需要,因此針對文本的情感傾向性分析[3]就有著重要的研究意義。文本的情感傾向性分析,即針對每一條文本,實現正向、中性、負向的三分類,識別其情感傾向[2]。文本分類[4]常用的方法有:決策樹、樸素貝葉斯、支持向量機、神經網絡等等[5]。而關于文本的情感傾向性分類,本文采用了與神經網絡相關的算法。
傳統的人工神經網絡又被稱為前饋神經網絡(Feed Forward Neural Networks,FNN)[6,7],包含輸入層、隱藏層和輸出層,層與層之間是全連接的,隱藏層之間的節點是無連接的。這種模型在處理序列數據時只能利用當前時刻的信息,無法利用歷史信息[6]。
Elman[8]在 1990年提出了循環神經網絡(Recurrent Neural Network,RNN),其隱藏層之間的節點也是有連接的,所以隱藏層的輸入不僅包括當前時刻輸入層的輸入還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。但是在實踐中,當相關信息和當前預測位置之間的間隔不斷增大時,比如“雖然……但是……”,我們要預測后面的“但是”,最需要的信息是前面的“雖然”,可是由于間隔太遠,RNN就會喪失學習遠距離信息的能力。這是因為RNN使用BPTT[9]反向傳播算法對網絡進行優化時,會產生梯度消失和梯度爆炸問題[6,10,11]。
1997年,Hochreiter & Schimidhuber[9]提出了長短期記憶單元(Long Short-Term Memory,LSTM)用于改進傳統的 RNN 模型。LSTM通過帶細胞的記憶單元來替代RNN隱藏層中的模塊,同時使用輸入門和輸出門來讓信息選擇式通過[6]。1999年,Gers等[12]在前面的基礎上又引入了遺忘門。這三個門和細胞狀態的設計,使得LSTM[7,13]可以記憶、更新長距離的信息,從而可以實現對長距離信息的處理。
2014年,Cho等[14]提出了LSTM的一種簡化版本GRU(Gated Recurrent Unit)[13]。它只包含兩個門:更新門(update gate)和重置門(reset gate)[9],移除了輸出門及隱層細胞狀態。Chung 等[15]通過多組對比實驗表明,GRU雖然參數更少,但是在多個任務上都和LSTM有相近的表現[6]。
首先把一段中文文本進行分詞,然后將其轉化成詞向量表示,最后將轉化成的向量表示傳入LSTM/GRU神經網絡,最后輸出的是這段文本的困惑度也即其概率值。
具體的流程如下:
Ⅰ訓練過程:首先對訓練數據進行人工情感標注,分為正向情感樣本、中性情感樣本和負向情感樣本;然后分別對其進行分詞和詞向量化;最后將轉化成的向量表示分別傳入LSTM/GRU神經網絡。根據正、中、負三種情感樣本分別訓練出覆蓋正向情感樣本的LSTM/GRU模型、覆蓋中性情感樣本的LSTM/GRU模型、覆蓋負向情感樣本的LSTM/GRU模型,簡稱為正向情感模型、中性情感模型、負向情感模型。
Ⅱ測試過程:首先同樣對測試數據進行人工情感標注,分為正向情感樣本、中性情感樣本和負向情感樣本;然后分別對其進行分詞和詞向量化;不同的是最后將轉化成的向量表示分別傳入正向情感模型、中性情感模型、負向情感模型。通過每個模型,都會得到一個概率值,所以最后得到的是一個3*3的矩陣,對角線上的元素即是正向情感模型、中性情感模型、負向情感模型預測正確的概率。本文中,我們取三者的平均數作為LSTM/GRU模型對文本情感分析的正確率。
以往在模型的參數調整方面,主要采用的方法是網格取值和隨機取值,然而網格取值效率太低,隨機取值又有很大的不確定性,因此本文提出了一種偽梯度下降法,相較于網格取值,可以在較短的時間內達到較好的正確率。步驟如下:
下面來著重說一下我的這幅《樂園》的具體創作過程,主要包括構圖、色彩、線條、肌理效果、展出方式。這幅作品的尺寸為100cm*200cm,采用的是毛氈材料拼貼的方式。
(1)隨機選擇3個初始點 x0,x1,x2∈R3(點的每一維度表示一個參數),分別進行訓練過程和測試過程,得到LSTM/GRU模型對文本情感分析的正確率 y0, y1,y2∈R,比較三者的值,從最大值對應的點出發。為方便表述,假設 y0最大。
(2)確定方向d,由于從正確率最高的點 x0到其他兩點 x1,x2都是正確率下降的方向,所以取正確?率上升的方向為:
(3)確定步長α,步長與正確率上升的程度成正比,正確率上升的越多,步長越大。正確率上升程度的比值為 (y0- y1) :(y0- y2),對其取整,記為l1:l2,在進一步進行歸一化,則步長公式為:
(4)計算下一個點 x3∈ R3的坐標,依據公式在進行訓練過程和測試過程,得到此時LSTM/GRU模型對文本情感分析的正確率y3∈R。
(5)返回步1,此時選擇的3個點為上一次使用的 x0,新求出的 x3,以及剩下的 x1和 x2中正確率較高的點。然后依照上面的步驟繼續進行,直到某個新求出的點的正確率與網格取值的最優正確率相接近為止。
本文使用的數據集來源于京東的商品評論,共39000條,整理后,對評論數據進行人工情感標注,其中,正向情感樣本、中性情感樣本、負向情感樣本各有13000條,從正、中、負情感樣本中各隨機取出10000條作為訓練數據,剩下的3000條作為測試數據。
在LSTM/GRU模型中,參數num_steps表示模型展開的步數(batch_size的取值與之相同),hidden_size表示隱藏層的規模,keep_prob表示在dropout層中保持權重的概率。LSTM實驗結果見表1,GRU實驗結果見表2。

表1 LSTM實驗結果Tab.1 LSTM experimental result

表2 GRU實驗結果Tab.2 GRU experimental result
從實驗結果可以看出:LSTM模型和 GRU模型在中文文本情感分析方面都有不錯的結果,二者均可用于中文文本的情感多分類,并且在參數取值相同的情況下,GRU模型的正確率相對 LSTM要好一些。
對參數 num_steps、batch_size、hidden_size、keep_prob進行離散取值,其中 num_steps與batch_size取值相同,各參數取值見表3。
每個參數有3種選擇,所以一共是3*3*3=27種可能,各種情況下LSTM、GRU模型的正確率見表4。
根據以上結果可以得出:當num_steps與batch_size取10,hidden_size取200,keep_prob取 0.7時,LSTM模型達到最高的正確率,為 0.839;GRU模型此時也達到了最高的正確率,為0.847。

表3 模型中的參數值Tab.3 Parameter values in the model
3.3.2 偽梯度下降法
為了保證參數的合理性,對每個參數都預設最小最大值:num_steps取 10-100,hidden_size取100-1000,keep_prob取 0.1-1。而且在利用偽梯度下降法求解新參數的過程中,如果前兩個參數出現不是整數的情況時,則直接取整,并且一定不能出現負數,keep_prob如果出現負數,則直接取成0.1。

表4 LSTM、GRU模型的正確率Tab.4 Accuracy of the LSTM、GRU model
LSTM模型結果如下:
Step1: 初始取 A(10,200,1),B(20,400,0.5),C(40,100,0.7)三點,其正確率分別為 0.825,0.8288,0.7609,從正確率最高的點B出發,求出下一個點D的坐標為(2,695,0.3),根據參數范圍,取成(10,695,0.3),得到此時模型的正確率為0.815。
Step2: 保留上一步中使用的B點,以及剩下的A,C兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,D。從正確率最高的點B出發,求出下一個點E的坐標為(30,204,0.56),此時模型的正確率為0.8107。
Step3: 保留上一步中使用的B點,以及剩下的A,D兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,E。從正確率最高的點B出發,求出下一個點 F的坐標為(13,597,0.4),此時模型的正確率為0.826。
Step4: 保留上一步中使用的B點,以及剩下的A,E兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,F。從正確率最高的點B出發,求出下一個點G的坐標為(29,402,0.3),此時模型的正確率為0.796。
Step5: 保留上一步中使用的B點,以及剩下的A,F兩點中正確率較高的F點,所以下一步選擇的三個點是G,B,F。從正確率最高的點B出發,求出下一個點H的坐標為(12,383,0.7),此時模型的正確率為0.848。
GRU模型結果如下:
Step1: 初始取 A(10,200,1),B(20,400,0.5),C(40,100,0.7)三點,其正確率分別為0.83,0.841,0.764,從正確率最高的點B出發,求出下一個點D的坐標為(10,688,0.3),得到此時模型的正確率為0.821。
Step2: 保留上一步中使用的B點,以及剩下的A,C兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,D。從正確率最高的點B出發,求出下一個點 E的坐標為(30,275,0.5),此時模型的正確率為0.818。
Step3: 保留上一步中使用的B點,以及剩下的A,D兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,E。從正確率最高的點B出發,求出下一個點 F的坐標為(17,550,0.3),此時模型的正確率為0.834。
Step4: 保留上一步中使用的B點,以及剩下的A,E兩點中正確率較高的A點,所以下一步選擇的三個點是A,B,F。從正確率最高的點B出發,求出下一個點G的坐標為(28,483,0.2),此時模型的正確率為0.723。
Step5:保留上一步中使用的 B點,以及剩下的A,F兩點中正確率較高的F點,所以下一步選擇的三個點是G,B,F。從正確率最高的點B出發,求出下一個點H的坐標為(13,313,0.8),此時模型的正確率為0.839。
Step6: 保留上一步中使用的B點,以及剩下的G,F兩點中正確率較高的F點,所以下一步選擇的三個點是H,B,F。從正確率最高的點B出發,求出下一個點I的坐標為(24,297,0.6),此時模型的正確率為0.791。
Step7: 保留上一步中使用的B點,以及剩下的H,F兩點中正確率較高的 H點,所以下一步選擇的三個點是I,B,H。從正確率最高的點B出發,求出下一個點 J的坐標為(16,502,0.4),此時模型的正確率為0.734。
Step8: 保留上一步中使用的B點,以及剩下的H,I兩點中正確率較高的H點,所以下一步選擇的三個點是J,B,H。從正確率最高的點B出發,求出下一個點K的坐標為(24,301,0.6),此時模型的正確率為0.847。
由上述結果可以看出:使用偽梯度下降的方法后,選擇3個初始點,LSTM模型只需5步就得到了 0.848的正確率,比網格取值的最優結果更好;而GRU模型也只用了8步就得到了和網格取值同樣的最優結果0.847。這說明偽梯度下降的方法確實在參數調整方面有很大的應用價值。
本文通過LSTM、GRU模型實現了中文文本情感的三分類,得出了各種參數情況下模型的正確率;同時在調整參數方面提出的偽梯度下降法也有很好的效果。
由于偽梯度下降法與初始點、方向、步長的選擇有關,所以可以在本文的基礎上進一步探討它們之間的關系,從而得到一種更好的調參方法。
[1] 魏晶晶, 吳曉吟. 電子商務產品評論多級情感分析的研究與實現[J]. 軟件, 2013, 34(9): 65-67.
[2] 王坤亮. 漢語情感傾向自動分類方法的研究[J]. 軟件,2013, 34(11): 73-76.
[3] 姚天昉, 程希文, 徐飛玉, 等. 文本意見挖掘綜述[J]. 中文信息學報, 2008, 22(3): 71-80.
[4] 鄭世卓, 崔曉燕. 基于半監督LDA的文本分類應用研究[J].軟件, 2014, 35(1): 46-48.
[5] 陳海紅. 多核SVM文本分類研究[J]. 軟件, 2015, 36(5):7-10.
[6] 胡新辰. 基于LSTM的語義關系分類研究[D], 哈爾濱: 哈爾濱工業大學, 2015.
[7] Graves A. Supervised Sequence Labelling with Recurrent Neural Networks[M]. Berlin Heidelberg: Springer, 2012.
[8] Elman J L. Finding structure in time[J]. Cognitive science,1990, 14(2): 179-211.
[9] Hochreiter S, Schmidhuber J.Long Short-Term Memory[J].Neural Computation, 1997, 9(8): 1735-1780.
[10] Hochreiter S. Untersuchungen zu dynamischen neuronalen Netzen[D]. Munchen: Technische Universitat, 1991.
[11] Bengio Y, Simard P, Frasconi P. Learning long-term dependencies with gradient descent is difficult[J]. IEEE Transactions on Neural Networks, 2002, 5(2): 157-166.
[12] Gers F A, Schmidhuber J, Cummins F. Learning to forget:Continual prediction with LSTM[J]. Neural computation,2000, 12(10): 2451-2471.
[13] Zhou G B, Wu J, Zhang C L, et al. Minimal Gated Unit for Recurrent Neural Networks[J]. International Journal of Automation and Computing, 2016, 13(3): 226-234.
[14] Cho K, Merrienboer B V, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. arXiv preprint arXiv: 1406.1078,2014.
[15] Chung J, Gulcehre C, Cho K H, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[J].arXiv preprint arXiv:1412.3555, 2014.