李 鑫 李曉戈
(西安郵電大學計算機學院 西安 710121)
隨著網絡社交平臺的發展,越來越多的人開始在網在上發表自己的觀點意見。例如,用戶在APP Store 中下載了應用軟件之后,使用后就可能對軟件性能做出使用評價。對這些評論進行文本信息挖掘,分析情感傾向,不僅可以幫助軟件開發者了解用戶反饋意見,而且還可以為用戶提供更好的決策。目前為止情感分析最主要方法是通過構建情感詞典(特征提?。?,情感詞典主要包括幾種特定的情感詞典和采用不同方法構建特定領域的情感詞典,再使用傳統機器學習方法如樸素貝葉斯,支持向量機等進行分類。Pang 和Lee 根據傳統的機器學習方法在電影數據評論上取得了很好的效果[1],常用的幾種中文情感詞典是知網整理的情感詞典How-net 和臺灣大學發布的NTUSD,構建特定領域的情感詞典主要方法有基于點互信息(PMI)[2~3]、基于依存關聯分析[4]和基于模式的Bootstrapping[5]、基于詞向量的方法構建情感詞典[6]等。隨著深度學習在圖像,語音領域的快速發展,近些年來在自然語言處理領域也有了一定的應用,Mikolov 等人提出了word2vec 模型,實現此模型有兩種形式分別是CBOW 和SKIP-GRAM,從而降低了詞向量維度,通過詞向量之間的距離來計算詞之間的相似度,張志華等所做的基于深度學習的情感詞向量及文本情感分析的研究使用了卷積神經網絡,將其應用在情感分析領域得到了較好的效果[7];杜昌順,黃磊等所做的分段卷積神經網絡在文本情感分析中的應用,給卷積神經網絡進行情感分析提供了一種分段卷積方法的新思路可以減少過擬合情況發生[8];AVaswani等的使深度學習與用注意力模型相結合在英語到德語的機器翻譯中取得了較好的結果[9]。
通常情感分析是針對于具體領域的,例如分析視頻軟件領域的評論情感傾向,在這種情況下直接使用既定好的情感詞典,會使得情感詞覆蓋率比較低,從而導致情感傾向分類的查全率比較低。而特定領域情感詞典構建需要人工挑選領域內專有詞匯,對于篩選者的專業素養要求較高,而且人工篩選只能根據已有經驗篩選特征,一些難以預見的特征被忽略,從而在特征提取的過程中添加了主觀因素,影響后續的分類工作。由于深度學習本身具有諸多優點,端對端的模式可以使神經網絡自動提取特征,實際在多領域已經取得較好的效果,所以將其應用于文本分類。本文采取基于深度學習理論的情感分析方法,循環神經網絡相較于全連接神經網絡,其每個時間序列共享參數,由于這種特殊的結構使得它不僅可以選擇性地記憶上下文,而且還能極大地減少訓練參數,從而有效地降低計算成本和減少過擬合情況的發生,研究使用循環神經網絡中的長短時記憶神經網絡[10~11],采用平均池化和最后時刻池化的方法,和使用注意力機制方法相對比,此外研究了使用字向量和詞向量不同輸入對于模型的影響,通過實驗測試結果證明使用此方法對文本進行情感分析有效可行。
本文神經網絡運用長短時記憶神經網絡(LSTM),以及雙向長短時記憶神經網絡(Bi LSTM)這兩種基礎網絡,進行情感分析總框圖如圖1 所示,主要步驟:運用中文自然語言處理方法對于語句進行分詞處理,使用word embedding 生成詞向量或字向量,利用訓練數據對搭建的神經網絡模型進行訓練,最后用測試數據進行模型文本情感分析測試。圖1 中的Model 采用三種不同的方法進行對比。

圖1 系統總架構圖
將生成的字向量或詞向量依次輸入LSTM 中,再將結果經過邏輯回歸層進行輸出。使用注意力機制模型圖如圖2 所示,首先將文本進行分詞生成向量形式,再將句子中每個詞的向量根據在語句中先后順序輸入雙向長短時記憶神經網絡中,將每一時刻神經元的輸出輸入到設定好的注意力層中,在注意力層中利用注意力機制通過反向傳播給每個輸入一個相關系數,再將相關系數通過soft max 得到最終歸一化的相關度系數,將此最終系數分別與神經網絡層輸出相乘后相加,再將結果進行線性變換得到最終輸出結果,具體見2.2 開始詳細講述每一層。

圖2 Model 1
在自然語言處理領域文本一般被用作詞向量表示,從最早期的one-hot 熱詞表示方法到word-embedding 詞嵌入,詞向量的表示已經從最原始的稀疏無關聯變成稠密有聯系。一般采用word-embedding 將預處理過后的詞語轉化為向量的形式,例如Google 的word2vec 工具[12~14]。具體方法是將語句S 用詞語表示為(x0……xt)的序列,此方法通過一個規定大小的滑動窗口將序列作為一個三層的全連接的神經網絡模型輸入,與自然語言處理中的n-gram 模型類似[15],目的是利用神經網絡捕捉到上下文語義,并生成一個共享矩陣(詞向量矩陣),此詞向量不僅稠密而且捕捉到上下文語義,使詞與詞之間不孤立有聯系,將這種形式的詞向量作為神經網絡的輸入。
2.3.1 循環神經網絡
循環神經網絡(Recurrent Neural Network,RNN)如圖3 所示是一種相較于常規神經網絡具有循環結構的網絡,通過等號右邊的展開圖可以看出對于每個輸入其共享神經網絡內部的參數,循環神經網絡理論上可以接受任意長度的序列(x0……xt)在處理文本信息時每個x 對應一句文本的一個詞語,給網絡中每輸入一個詞語序列x 其對應一個輸出h,此時的h 是通過這種循環的網絡結構的輸出,其記憶了之前的輸入與此刻輸入的最終結果,但是由于實際應用中循環過多會出現梯度消失的現象,使得最基本的循環神經網絡無法滿足實際需求。

圖3 循環神經網絡
2.3.2 長短時記憶神經網絡
循環神經網絡模型由于梯度消失導致其無法捕捉長時間依賴(Long-term Dependencies),而最單的的做法是更換循環神經網絡中的激活函數,例如更換為Relu(rectified linear units)等激活函數,但是更好的辦法是使用長短時記憶神經網絡(Long Short Term Memory,LSTM),最早是由Hochreiter 和Schmidhuber 提出的一種特殊形式的RNN[16],如圖4 所示,其可以通過三種門結構選擇細胞內部應該記住或者忘記的信息。

圖4 長短時記憶神經網絡內部結構圖
循環神經網絡相較于全連接神經網絡而言,其每個時刻的輸入共享同一組參數,不僅解決了全連接神經網絡的參數爆炸問題,而且由于其特殊的結構可以通過門控單元選擇性地記憶與忘記,這種結構適合文本這類具有上下文結構形式的數據。長短時記憶神經網絡基于循環神經網絡,三個門控單元分別被稱為遺忘門、輸入門、輸出門[17],如圖5 所示。正是因為這種門結構,使得基礎循環神經網絡梯度衰減的情況得以緩解。卷積神經網絡在構建的時候需要設置卷積核,卷積核的尺寸是固定的,其尺寸大小設置直接影響到最終結果,而長短時記憶神經網絡解決了上述問題,在下文中主要以這三個門控單元結構展開詳細論述。

圖5 長短時記憶神經網絡細胞內部結構圖
遺忘門:通過遺忘門決定要丟棄的信息,規定ht-1為上一個時刻輸出,xt為當前時刻輸入,wf為神經網絡權重系數,bf為偏置,讀取ht-1和xt加偏置通過激活函數sig mod 輸出一個0 到1 之間的數字記為ft。

輸入門:通過輸入門決定怎樣的新信息寄存在細胞狀態中,Wi表示神經網絡的權重系數,bi為偏置,第一個部分輸出是it,稱為輸入門層決定什么值將要更新;第二部分輸出為~Ct,此為經過tanh 激活函數后創建的一個新的候選值向量。這時將上面得到的狀態進行更新,把舊狀態Ct-1和ft相點乘,丟棄掉無用的信息,加上候選值向量與需要更新的it相點乘,這時需要更新的信息就加入到新的細胞狀態Ct中。

輸出門:決定輸出什么樣的信息,輸出結果是基于此刻的細胞狀態,此刻輸入和上一時刻輸出。此刻的輸入和上一時刻的輸出經過一個激活函數來確定細胞的哪個狀態被輸出稱為ot,將細胞的狀態Ct經過tanh 激活函數與ot相點乘作為此刻細胞的輸出結果ht。

雙向LSTM:由于基本的LSTM 是根據前面信息推出后面的信息,這樣具有一定的局限性,從而出現了雙向LSTM,雙向神經網絡中的隱藏層需要保存兩個值,一個參與正向計算一個參與反向計算,最終的輸出結果由這兩個輸出值決定,本文在實驗中也使用了此雙向LSTM,稱為BILSTM。
為了進行對比,在這里設計池化方式與注意力機制進行對比稱為池化層。由于長短時記憶神經網絡每一個時間點對應一個輸出ht,所以需要對于每個時刻的輸出進行處理,本文采用平均池化的方法和使用最后一時刻輸出作為結果兩種方法如圖6 所示,平均池化方法如下式(7)所示,采用最終時刻的方法如式(8)所示。

圖6 Model 2

對于經過池化層處理后的輸出進行處理,將結果經過soft max 函數進行輸出就得到了最終輸出結果,在這里的soft max 函數的作用就相當于邏輯回歸,Wy和by是神經網絡需要訓練的參數,y 是一個二維的向量,向量的第一維度表示條件概率在輸入語句為(x0……xt)時,結果為正面的概率,即P(positive|x0……,xt),第二維度表示結果為負面的概率即P(negative|x0……,xt)。

注意力機制(Attention)在文本情感分析中實際是輸入句子中每個詞語與最終文本語義結果之間的相關度,表示輸入句子中每個詞與整個句子相對應類別之間的緊密度。如下公式所示用s 表示Attention方法得到的句子語義特征,其中αi表示第i 個輸入詞語的重要度,其中β 為計算詞的重要度,在這里用雙正切函數來表示,VT是參數向量V 的轉置,最終輸出結果y 由加權關系程度之后的結果經過soft max 函數得到。

本文模型訓練通過最小化交叉熵作為訓練目標,yi代表經過soft max 處理過后的第i 個結果的概率大小,yi′表示實際第i 個值的情況,模型使用實現了Adam(adaptive moment estimation)優化算法的AdamOptimizer 優化器進行優化[18],目的是最小化交叉熵L 。

本文所使用的語料為360 手機助手中關于視頻類軟件評論共10000 條。其中9000 條作為訓練數據,1000 條作為測試數據。其中正面與負面評論各占一半。表1為數據集樣例。

表1 數據樣例
對于實驗結果我們分為宏平均準確率(MacroP)、宏平均召回率(MacroR)以及宏平均F1值(MacroF1)作為度量標準。N表示分類類別的總數,true(ck) 表示在ck類別下分類正確的文本個數,doc(ck) 表示在ck類別下所有的文本個數,response(ck)表示在ck類別下應有的文本數目,增加一組驗證數據集,此數據集占總樣本的10%用來觀察神經網絡參數調整的過程中驗證數據集在模型上的表現,能快速的對于模型進行調整。如下所示:

在實驗中將詞向量維度(word dimension)設置為200,LSTM 或者BiLSTM 規模維度設置為300,注意力規模維度設置為150,為了防止過擬合設置dropout probability為0.5[19]。
本文采用字向量和詞向量兩種不同形式的向量作為模型的輸入,研究了模型接受不同輸入形式對其影響。例如輸入語句:豐富多彩的東西,很好用的播放器。經過分詞產生兩種不同形式例如:
字向量形式:豐富多彩的東西很好用的播放器;
詞向量的形式:豐富多彩的東西很好用的播放器。

表2 字向量與詞向量結果
通對以上實驗結果分析發現針對同一模型使用不同的向量形式輸入會取得不同結果,利用詞向量結果明顯高于字向量約1%,分析原因在于因為詞由字組成,構成的形式多樣,從而能組成的空間較大,描述能力較強,而由于字向量構成相較少,組成空間小,描述能力沒有詞向量強,由此證明了中文自然語言處理的重要性。
本文使用了LSTM,BiLSTM,平均池化,和最后時刻池化兩種方式,以及加入Attention機制對比實驗。
1)LSTM+Mean:使用LSTM以及平均池化。
2)LSTM+Last:使用LSTM以及最后時刻池化。
3)LSTM+Attention:使用LSTM以及Attention。
4)Bi LSTM+Attention:使用雙向LSTM 以Attention。

表3 不同模型實驗結果
通過實驗1)、2)可以看出采用最后時刻池化效果要好于平均池化,原因是在情感分析中平均池化相當于給模型輸入每個詞語一樣的權重,例如情感詞對于最終結果影響肯定是高于非情感詞如“播放器”和“好用的”相比較而言“好用的”是情感詞對于最終結果的貢獻度就大一些,從而如果使用平均池化這種方法給了情感詞和非情感詞一樣的權重就會造成這樣的結果;而使用最后一時刻作為池化,從結果看來明顯高出平均池化1%,分析原因是LSTM 具有記憶功能,它會記憶句子中較為重要的情感詞語,忘記影響不大的詞語,而最后一時刻的隱藏層包含了整個句子的語義,所以最后一時刻的輸出就可以近似代表整個句子的語義。
通過實驗2)、3)可以看出帶Attention機制的模型效果明顯較好,這更加證明了Attention機制的有效性,分析原因在于加入Attention機制后模型會給句子中每個詞語加入一個與最終結果的相關程度,模型分配給情感類詞語的相關度明顯會高于非情感類詞語,這樣就能取的較高的實驗結果。
通過實驗3)、4)可以看出BiLSTM 結果優于LSTM 模型,雙向LSTM 從上文和下文兩個方向出發,模型考慮到了上下文,所以帶來的結果也是明顯優于LSTM,證明了使用Bi LSTM的有效性。
為測試不同方法對于情感分類結果的影響,本文研究了運用深度學習技術進行情感分析,詞向量方法構建的情感詞典、臺灣大學整理發布的NTUSD 情感詞典[20]和采用PMI 方法構建的情感詞典進行短文本情感分類的結果其中臺灣大學情感詞典,一共包括2810 個正面詞匯和8276 個負面詞匯,采用PMI 方法構建的情感詞典包括2888 個正面詞匯和319 個負面詞匯,采用詞向量方法構建的情感詞典包括正面情感詞匯268 個和負面情感詞匯307 個。采用深度學習方法不需要構建情感詞典,如圖7 所示。采用詞向量方法構建情感詞典是指利用詞嵌入方法生成詞向量,人工挑選出正負面種子詞若干個,用計算向量距離方法找出與正負面情感詞距離相近的20 個詞語加入種子詞中,不斷循環擴展種子詞集合直到種子詞數量不再增加為止,這時情感詞典建立完成,用種子詞集合中的每個詞語在正負面評論中出現的次數判斷擴充后種子詞集合中詞語的正負極性,最后使用訓練數據對貝葉斯分類器進行訓練,將得到的分類器應用于測試數據結果。
1)NTUSD+NBC:采用臺灣大學情感詞典和樸素貝葉斯分類器。
2)PMI+NBC:采用PMI方法構建情感詞典和樸素貝葉斯分類器。
3)Word embedding+NBC:采用詞向量方法構建情感詞典和樸素貝葉斯分類器。
4)Bi LSTM+Attention:本文所提出的模型。

圖7 不同模型比較圖
實驗結果如圖7所示,分析實驗1)由于使用臺灣大學詞典是靜態詞典而評論中許多情感詞在其中沒有出現過,所以導致召回率較低,分析實驗2),3)由于PMI方法構建詞典和詞向量方法構建領域內詞典,使用該領域的情感詞相比較而言具有較高的召回率,從結果看來這兩種構建特定領域內的情感詞典都需要人工挑選種子詞,有一定的局限性,從比較結果可以看出實驗4)使用深度學習方法在情感分類上可以得到較好的結果,比傳統的機器學習方法在三種評判標準上表現都要有效。
本文主要研究了基于深度學習的短文本情感分析,以神經網絡中長短時記憶神經網絡(LSTM)為理論依據,通過比較幾種不同的結構,結果顯示使用BiLSTM深度學習的方法進行情感分析是有效的,這樣不僅提高了準確率,而且更是讓整個過程自動化,不需要各個領域專業知識背景,就可以進行領域內的情感分析,達到了實用性。由于互聯網信息巨大,人工標注效率低,在以后工作中,我們更傾向于使用遷移學習[21]進行處理,其優點在于利用已有標記的信息生成模型,從而去處理未標記的信息。