任 勉,甘 剛
(成都信息工程大學 網絡空間安全學院,四川 成都 610225)
通常對文本情感傾向性的傳統方法有基于詞典、基于語義分析等[1-6]。在之前的自然語言處理中,通常針對文本分類部分采用的是基于機器學習[7]的分類算法。發展至今,深度學習在自然語言處理中應用廣泛。其中Yong Zhang等提出基于卷積神經網絡的語句建模情感分析方法[8],Bolan su等提出基于循環神經網絡進行對文本的分詞處理[9]。但這些方法存在訓練過程中會丟失單詞在上下文中關系的問題,因此在后續的情感傾向性分析任務中引入了深度循環神經網絡。通過對比以上信息,循環神經網絡中的長短期記憶網絡(long short-term memory,LSTM)作為語言模型在解決文本分類問題上有很大的進步[10],但也存在梯度消失和爆炸等問題,在上下文的記憶關聯上也容易丟失信息。
針對以上問題,本文提出基于雙向長短時記憶的循環神經網絡模型(bi-directional long short-term memory,Bi-LSTM)。通過該模型中的雙向傳播機制能降低上下文丟失信息的情況,在文本情感分析任務中獲得更好的分類效果。
本文采用CBOW(continuous bag of words)來訓練詞向量[11]。CBOW是一種預測模型,是從原始語句來推測目標字詞,在CBOW模型中,已知詞w中上下文context(w),同時預測w,因此指定context(w),詞w就是一個正樣本,其它詞就是負樣本,可以通過采樣負樣本得到一個關于w的負樣本子集NEG(w),因此詞的標簽可以表示如下
(1)
CBOW模型目標函數表示如下

(2)
其中
(3)
長短時記憶網絡(LSTM)解決了長程依賴的問題,不需要特別復雜地調試超參數,默認地記住了長期信息。而且解決了傳統RNN模型存在梯度的消失和爆炸的問題[12]。
圖1為一個LSTM網絡單元[13],使用門控單元來控制信息的流向。

圖1 LSTM單元網絡結構
圖1中的it代表輸入門、ot代表輸出門、ft代表遺忘門、Ct代表細胞控制單元結構。
LSTM單元結構中Wij是指神經元i到j的連接權重,神經元輸入是用a表示,輸出用b表示。
從細胞初始狀態值到輸入門狀態值,遺忘門狀態值和輸出門狀態值的權重分別記做Wc ι,Wc φ以及Wc ω,Sc表示Cell的狀態。
控制門的激活函數用f表示,g,h分別表示cell的輸入輸出激活函數。

(4)
it=σ(Wixt+Uiht-1+bi)
(5)
其次計算當時存儲單元的遺忘門的激活值
ft=σ(Wfxt+Ufht-1+bf)
(6)

(7)
隨著存儲單元的新狀態,我們可以計算其輸出門激活值,然后計算其輸出值
οt=σ(Woxt+Uoht-1+VoCt+bo)
(8)
(1)lstm-peephole連接模型:
lstm-peephole連接模型(如圖2所示)在LSTM單元網絡結構上增加了peephole connection,控制門層接收輸入門的激活值,同時接收細胞狀態的輸入[14,15]。

圖2 lstm-peephole連接模型
改進的peephole設計門結構用來除去或增加信息細胞狀態值,包含一個sigmoid神經網絡層和一個逐點乘法操作。Sigmoid層輸出[0,1]間的數據,敘述每個連接之間有多少流量可以通過,0表示“禁止任何量通過”,1代表“允許任意量通過”。
通常在語言模型中,我們可以基于已經看到的詞來預測下一個詞,比如說“中國”-“北京”這對詞組。一般細胞狀態可能包含當前語句中主語的類別,選擇出正確的代詞,在此出現新的代詞時,該結構會忘記較為久的代詞。在式(9)中,Ct-1代表前一個時序的向量,首先讀取Ct-1和xt,輸出一個在0到1之間的數值給每個細胞狀態Ct-1的數字
ft=σ(Wf·[Ct-1,ht-1,xt]+bf)
(9)
式(10)是確定更新的信息
it=σ(Wi·[Ct-1,ht-1,xt]+bi)
(10)
更新細胞狀態在Ct-1狀態的值更新為Ct,把舊狀態Ct-1與ft相乘,丟棄將要確定丟棄的信息,加上it與Ct就是候選的新值,最終根據每個狀態的跟新程度進行變化
(11)
在語言模型的例子中,如果首先得到一個代詞,可能需要輸出與一個與動詞相關的信息
οt=σ(Wo·[Ct,ht-1,xt]+bo)
(12)
通過確定需要輸出的值來決定當前cell的狀態,也是一個過濾后的狀態。首先運行一個sigmoid層來確定細胞狀態的哪個部分將輸出出去。把細胞狀態通過tanh進行處理,得到一個在-1到1之間的值并將它和sigmoid門的輸出相乘,最終輸出確定輸出的那部分。
(2)coupled遺忘門和輸入門
雙門結構[16]通過使用coupled遺忘門和輸入門如圖3所示。

圖3 coupled遺忘門和輸入門
不同于其它結構中把遺忘門的更新信息與其它位置信息分開,此結構可以同時完成把遺忘門和輸入門值信息更新,在未來時間段輸入在當前位置時忘記。輸入新的值到已經忘記的舊信息的狀態位置處
(13)
通過改進兩種LSTM模型后,結合分類器實現基于雙向循環網絡的情感傾向性分類模型。
該模型主要分為以下3個部分:詞向量化、通過Bi-LSTM特征提取、深度神經網絡分類器,如圖4所示。

圖4 基于Bi-LSTB語言模型情感傾向性分類模型結構
詞向量化部分:詞向量通常用于分類的文本數據量比較大,需要從大量未標注的普通文本數據中無監督地學習出詞向量。在在詞向量訓練之前,通常將字詞轉換成離散的單獨的符號,一個詞對應一個向量,接著在文本分類模型中,將文章對應的稀疏矩陣合并成一個向量,即把每一個詞對應的向量加到一起,此部分采用CBOW模型。
特征抽取部分:采用Bi-LSTM作為特征提取部分模型,同時在該部分的矩形框單元格代表一個LSTM單元,在后續的訓練模型中,采用兩種變型的LSTM模型。
Bi-LSTM訓練層:通過構造兩個循環神經網絡實現以兩個不同的方向獲取信息,同時這兩層都連接相同的輸入層。這個結構能夠提供給上一層中每個單元結構完整的上下文信息。
其中一層信息在同一時步向前傳遞,更新所有隱含層的信息
(14)
另一層信息的傳播是與上一層相反,通過先計算輸出層然后得到不同方向的隱含層值
(15)
情感分類層:此處采用棧式自編碼式神經網絡作為分類器[17]。棧式自編碼神經網絡參數是通過逐層貪婪訓練獲得。以包含2個隱藏層,輸出層為softmax的神經網絡。
實驗工具采用的是TensorFlow,TensorFlow使用數據流式圖來規劃計算流程,它可以將計算映射到不同的硬件和操作系統平臺。本文使用TensorFlow工具結合Word2vec生成詞向量并實現Bi-LSTM模型的訓練。
本次實驗設計兩組對比實驗,第一組是利用不同的LSTM單元結構進行對比,其中一個LSTM變型結構是LSTM-peephole連接模型,另一個LSTM變型結構是coupled遺忘門和輸入門構成。第二組對比實驗是基于Bi-LSTM和LSTM結構,測試雙向循環網絡結構對分類的影響。
實驗語料來自Github上開源兩萬條中文標注預料,涉及到書籍、酒店、計算機、牛奶、熱水器、手機6個方面的購物評論數。其中16 000條評論作為訓練數據、4000條作為測試數據。另一部分語料來自已經標注分類的兩萬條微博數據,主要是針對網絡上某些熱點事件的評論,其中10 000條為積極評價,另10 000條為消極評價。其中以15 000 條作為訓練數據,5000條作為測試數據。
首先是利用語料文本生成詞向量,首先使用CBOW模型訓練用少量噪聲詞匯來估計。當模型預測到真正的目標詞匯為最高概率,同時預測其它噪聲詞匯為低概率。用編造的噪聲詞匯訓練的方法被稱為Negative Sampling。這種方法計算loss function有非常高的效率,方法是選擇K個隨機詞匯而非詞匯表中的詞匯。
在訓練模型時通過調整詞向量的維度、詞頻閾值、窗口大小來調整參數。
首先詞向量的維度是從50到200之間進行測試,通過測試發現詞向量維度在120左右時,測試數據F值最優,如圖5所示。

圖5 基于詞向量維度增長的F值變化
由于詞頻閾值在小于5時不能生成詞向量同時也會造成不能產生索引,因此詞頻閾值選擇為5。
窗口大小在訓練過程中接近20時為準確率最高,如圖6所示。

圖6 基于窗口大小增長的準確率值變化
在訓練Bi-LSTM時,通過損失值來觀察迭代次數。在實驗過程中,發現使用LSTM模型時,迭代次數到5之后損失值維持不變,而Bi-LSTM在迭代次數到10時損失值維持不變,如圖7所示。

圖7 基于迭代次數增加損失值變化
最后分類器訓練結果是一個[0,1]區間的連續的實數,而程序的在默認的情況下將0.5設置為閾值,因此最后將大于0.5的值判斷為正,小于0.5的結果判斷為負。
本實驗通過兩組對比實驗,分析LSTM的兩種變型結構與Bi-LSTM模型之間的評價指標數據。
首先第一組是利用不同的LSTM單元結構進行對比,第一組LSTM變型結構是LSTM-peephole連接模型,另一個是coupled 遺忘門和輸入門在下表中分別稱為Bi-LSTM-1與Bi-LSTM-2,見表1。
第二組對比實驗是通過分析標準LSTM與Bi-LSTM之間的差異,見表2。

表1 兩種LSTM結構對比

表2 標準LSTM與Bi-LSTM對比
下面對實驗結果數據進行分析:
(1)根據第一組的對比實驗看,LSTM結構的兩種變型運用在情感分類的語言模型中,第二種模型使用coupled遺忘門和輸入門的結構有較高的準確率。
(2)從第二組對比實驗來看,使用雙向循環神經網絡對只使用單層LSTM結構準確率要高,說明使用上下文信息之間關聯同時考慮時序問題的這種方式能夠更好地解決文本情感傾向性分類問題。
本文在總結之間的文本情感分類基礎上,提出一種Bi-LSTM語言模型來完成對文本傾向性的分類,通過訓練序列向前和向后的兩個循環神經網絡,得到完整的過去和未來的上下文信息。通過實驗對比不同的LSTM變型結構,結合深度神經網絡分類器更好地完成分類任務,得到雙向循環網絡結構能更好地解決上下文聯系的問題。本次實驗中同時也有待完善的部分,如在語料的選擇上,需要對比不同語料的分類情況來完善模型,在后續的工作中將會改進這一部分并研究不同的分類器構造方法。