邢長征 李 珊
(遼寧工程技術大學電子與信息工程學院 遼寧 葫蘆島 125105)
如今是一個信息爆炸的時代,如何利用這些海量的、龐雜的數據已慢慢成為了當下研究的熱點內容[1]。隨著近些年研究的深入和計算機硬件設備的改善,基于神經網絡的模型越來越受到歡迎[1],深度學習在人工智能方面的處理能力也初步提升,越來越受到人們的重視。深度學習是機器學習的一個分支,深度學習的概念最早由多倫多大學的G.E.Hinton等在2006年提出,指基于樣本數據通過一定的訓練方法得到包括多個層級的深度網絡結構的機器學習過程[2]。
情感分析,也稱為觀點挖掘,指的是分析說話者在傳達信息時所隱含的情感狀態、態度、意見進行判斷或者評估[3]。關于文本,整句的情感傾向性一般比較明確,其中正向情感表示褒義類:贊揚、喜悅、歌頌等;負向情感表示貶義類:貶斥、悲哀、嫉妒等[4-5]。在文本情感分析的發展過程中,人們使用了樸素貝葉斯算法、最大熵、決策樹、支持向量機(SVM)等算法。這些方法都歸屬于淺層學習,函數模型和計算方法都不復雜,實現相對簡單,導致這些算法在有限的樣本和計算單元下無法表達復雜的函數,泛化能力較弱。淺層學習依靠人工經驗抽取樣本特征,網絡學習后獲得的是沒有層次結構的單層特征,而深度學習通過對原始信號進行逐層特征變換,將樣本在原空間的特征表示變換到新的特征空間,自動學習得到層次化的特征表示[4,6]。近些年人們對于文本情感分析的研究逐漸從淺層的學習過渡到用深度模型進行訓練,并且,深度學習在情感分析方面逐漸成為了主流的方法。
近幾年國內外關于情感分析問題的研究越來越多,人們從機器學習的方法不斷地向著深度學習方法進行探索。崔志剛[7]使用改進的SVM進行實驗,屬于淺層學習方法。劉艷梅[3]基于SVM/RNN構建分類器對微博數據進行情感分析。李陽輝等[8]采用降噪自編碼器對文本進行無標記特征學習并進行情感分類。Santos等[9]使用了卷積神經網絡(CNN)進行實驗,實驗驗證CNN在處理文本信息時有著不錯的效果。Li等[10]采用LSTM進行情感分析,實驗證明,LSTM相較于RNN在分析長語句情感分析方面表現得更好。梁軍等[11]使用一種基于極性轉移和LSTM遞歸網絡相結合對LSTM進行改善。王歡歡[12]運用情感詞典和LSTM結合的方法提高準確率。王雪嬌[13]使用CNN與GRU相結合的新模型來改善CNN。Hassan等[14]提出將CNN與LSTM相結合的新的深度學習模型,將LSTM作為池化層的替代。Li等[15]提出基于CNN和雙向LSTM RNN的電影情感分析方法進行情感分析。
卷積神經網絡(CNN)和循環神經網絡(RNN)都可以解決文本的情感分析問題[16-18]。CNN在處理圖像和計算機視覺方面表現出很好的效果[19-20],它善于提取特征。而RNN在處理手寫文字識別和文本處理等方面表現出了它的優越性[21],近些年,LSTM在情感分析的任務上得到了廣泛的應用,并且表現出了較好的效果。
在自然語言處理方面,循環神經網絡在捕捉任意長度序列的信息[22]有類似的記憶功能。傳統的循環神經網絡在輸入數據過長時,因為非線性變換,在尾部的梯度進行反向傳播時不能將梯度傳給句子的起始位置,經過訓練會出現一個不可忽視的問題:梯度彌散,梯度彌散是一個需要解決的問題。針對這個問題人們提出了一個基于循環神經網絡的新的網絡模型——LSTM,LSTM可以理解為升級版的循環神經網絡。長短時記憶網絡解決了循環神經網絡中存在的梯度彌散的問題[10,23],LSTM提出了一個叫作記憶單元的新結構。LSTM由四個部分組成:輸入門、輸出門、遺忘門和記憶單元。LSTM的網絡具體結構如圖1所示。

圖1 LSTM結構
下面就幾個公式介紹一下LSTM具體的工作流程:
第一步:新輸入xt前狀態ht-1決定C哪些信息可以舍棄ft與Ct-1運算,對部分信息進行去除:
ft=δ(Wf·[ht-1,xt])+bf
(1)
it=δ(Wi·[ht-1,xt]+bi)
(2)
(3)

(4)
第四步:根據控制參數Ct產生此刻的新的LSTM輸出:
Ot=δ(WO[ht-1,xt]+bO)
(5)
ht=Ot×tanh(Ct)
(6)
GRU是長短時記憶網絡的一個重要變種[24],它從兩個方面做出了改變,首先是遺忘門和輸入門的結合(不是獨立,不是互補),將其合成了一個單一的更新門。其次,控制參數Ct與輸出ht結合,直接產生帶有長短記憶能力的輸出。而且GRU同樣還混合了細胞狀態和隱藏狀態,和其他一些改動。GRU與LSTM效果類似,GRU比標準LSTM簡單[23],GRU所使用的參數要少于LSTM中使用的個數。具體結構如圖2所示。

圖2 GRU結構
下面就幾個公式介紹一下GRU具體的工作流程:
第一步:新輸入xt前狀態ht-1和權重Wz對zt進行更新:
zt=δ(Wz·[ht-1,xt])
(7)
第二步:新輸入xt前狀態ht-1和權重Wr計算rt,從新得到的內容中抽取信息:
rt=δ(Wr·[ht-1,xt])
(8)

(9)

(10)
GRU計算的過程中不需要C,GRU將C合并到了ht中,在GRU中ht做不斷的更新,更新的方式是遺忘多少就添加多少。
本實驗利用GRU進行堆疊設計神經網絡模型,提出一種新的模型——MultiGRU。期望通過多層的GRU的堆疊,不斷提取語句的相關信息,防止文本信息的缺失和捕獲語句間的長期依賴關系。
3.1.1 實驗平臺
實驗的首要條件為對實驗環境的設置和實驗平臺的搭建。本實驗依托的硬件和軟件的平臺為:
(1) 硬件:Win7系統、內存4 GB。
(2) 軟件和依賴的庫:Python3.5、tensorflow、keras等。
3.1.2 數據集
IMDB數據集為電影評論數據集,見表1。本數據集含有來自IMDB的50 000條影評,被標記為正面、負面兩種評價。該數據集中的評論數據被分為訓練集和測試集。其中正負樣本數均衡。

表1 數據集
3.2.1 模型構建
首先分析預先處理好的IMDB的數據:訓練集每條評論中的字長不相同,有的評論很長,有2 494個字符,這樣的異常值需要排除,文本計算得出平均每個評論的字長為238.714個字符。根據平均字長可以設定最多輸入的文本長度為400個字符,這樣也便于數據降維,一些字長比較短,不足400個字符的文本用空格填充,超過400個字符的文本截取400個字符,即maxword為400。使用keras提供的Embedding層作為模型的第一層,詞向量的維度為64,每個訓練段落為maxword×64矩陣,作為數據的輸入,填入輸入層。本實驗利用GRU神經網絡進行深度模型的構建,所提出的網絡結構MultiGRU選取三層GRU的堆疊,三層 GRU的輸出維度分別設定為128、64、32,從而構建起基本的網絡模型。實驗在GRU的層級之間添加了Dropout層,為了減少訓練過程中出現的過擬合,在Dropout層中設置隨機失活值為0.2。之后我們將引入一個全連接層作為輸出層,該層使用的非線性激活函數為sigmoid,預測0,1變量的概率。MultiGRU通過每層GRU來不斷捕捉語句間的信息,減少信息的丟失和依賴關系的消失。
模型基本搭建完成后,通過交叉熵來測試模型,把交叉熵作為目標函數,交叉熵越小說明匹配的越準確,模型精度越高。本次實驗使用RMSprop Optimizer來進行優化,該優化函數適用于循環神經網絡,在模型訓練中使用的梯度下降方法中,合理動態地選擇學習率。將數據灌入模型,使用IMDB中的測試集作為驗證數據,批次大小設置為100,迭代輪次設為5輪。
3.2.2 MultiGRU參數選擇
超參數可以有很多不同的組合,需要花費時間不斷學習調整驗證。在進行參數選擇的對比實驗過程中發現:首先,在模型層數選擇的實驗中,模型的層數分別設定為一層、兩層、三層和四層,測定MultiGRU有幾層GRU時效果較好,經過實驗發現當模型的層數大于三層時的準確率并沒有隨著GRU層數的增加而有所提升,反而實驗的時間耗費的更長,故最終模型選擇的層數為三層時較好(如圖3所示)。其次,在Dropout的參數選擇實驗中分別選取0.1、0.2和0.5三個參數進行對比實驗,經實驗可知,在該模型中,當Dropout參數為0.2時準確率更好(如圖4所示)。

圖3 層數實驗 圖4 Dropout參數實驗
進一步測試MultiGRU構建時所選取的相關參數對模型的影響,實驗分別測試層數為1到4層時不同的Dropout參數下的MultiGRU模型的性能,評價指標分別為準確率和MSE(最小錯誤率)[13],準確率越高、MSE越小代表模型越好。實驗結果如表2所示,可以看出,在MultiGRU的相關參數:層數為3層,Dropout 設定為0.2時,準確率較高且MSE值最小,模型的性能最好。

表2 MultiGRU參數選擇實驗
3.2.3 對比實驗
1) 與LSTM的實驗對比 LSTM在處理文本情感的分析上有著較好的效果,是目前處理情感分析問題時使用的熱點方法[14]。本次實驗通過GRU層的堆疊來不斷訓練構建的MultiGRU模型,對比實驗中將模型中所有的GRU層全部替換成LSTM層,其他條件不變,迭代5輪后的對比結果:
(1) 在損失方面對比:設定的評價指標分別為交叉熵和MSE,實驗結果如表3所示,MultiGRU的交叉熵和MSE都較小一些,說明MultiGRU模型匹配的比較準確,模型精度較高,魯棒性更好一些。

表3 兩種模型的損失對比
(2) 在準確率等方面:設定的評價指標分別為準確率、召回率和F1值,實驗結果如表4所示,綜合這些評價指標可以看出MultiGRU模型的性能更好一些。

表4 兩種模型的評價指標對比
(3) 在訓練所花費的時間上:MultiGRU所使用的時間短于MultiLSTM訓練所花費的時間,說明使用MultiGRU模型進行實驗的速度要快于采用MultiLSTM模型的速度。如圖5所示。

圖5 時間
綜上,從損失、準確率、召回率、F1值和時間對MultiGRU模型進行了評估,可以看出,MultiGRU模型在綜合以上評價指標上表現得更好一些。
2) 與MLP(全連接神經網絡)、CNN的實驗對比 本次實驗除了與LSTM進行實驗對比之外,還選用了謝梁等[25]提出的兩種神經網絡模型進行實驗,分別為全連接神經網絡(MLP)模型和CNN模型,MLP與CNN同樣可以應用于情感分析的任務上。實驗從損失和準確率兩個方面進行實驗結果的對比和分析。
首先,在三種模型的損失對比實驗中,設定的評價指標分別為交叉熵和MSE,實驗結果如表5所示。MLP模型和CNN模型的交叉熵和MSE還是較大的,MultiGRU在該方面的值相較于其他兩個模型更小,說明MultiGRU模型匹配的更準確,模型精度更高,魯棒性更好一些。

表5 三種模型的損失對比
其次,在三種模型的準確率等相關評價指標上的對比實驗中,實驗結果如表6所示。綜合這些評價指標可以看出,MultiGRU模型的性能更好一些。

表6 三種模型的評價指標對比
綜上,實驗采用了其他兩種神經網絡模型對MultiGRU模型進行了評估,可以看出,在相關評價指標的測定下,MultiGRU模型性能較于其他兩個模型都表現得更好。
隨著世界的不斷發展和信息量的日益增加,情感分析問題得到了越來越多人的重視,在科研和實際的生活中有著廣泛的應用。本文對涉及到的相關知識做了簡略的介紹,并提出了一個新的模型以減少信息丟失。實驗證明,該技術方案對于處理文本數據的情感分析具有可行性。深度學習領域中也正有許多的新的結構被提出,可能這些新興的結構在未來處理情感分析的問題上能夠得到更好的結果,下一步的工作將研究更加適合情感分析的深度學習方法。