孟彩霞 董婭婭
(西安郵電大學 西安 710000)
隨著社交媒體平臺的迅速發展和電商平臺運營模式的不斷提升,互聯網上產生了大量個人觀點及產品評論的數據。這些海量的非結構化的文本數據,潛藏著互聯網用戶對客體的評判態度和情感狀態,收集并分析這些評判態度和情感狀態信息,對個人、商業組織和國家政府都有重要作用。情感分析是自然語言處理和數據挖掘領域的一個熱門話題[1],通過分析文本中的語義信息,挖掘出其蘊含的情感傾向,有助于用戶有效地獲取所需要的情感信息。
傳統的情感分析方法采用了人工設計的表征方式和人工選擇的特征,存在人工成本較高、系統的泛化性和遷移性差等問題。隨著深度學習領域的高速發展,很多研究者試圖采用深度學習的方法自動完成數據表征和特征提取,能夠很好地彌補傳統方法的缺陷。深度學習的概念最早由Hinton等[2]提出,通過建立深層神經網絡,組合低層特征形成更加抽象的高層特征以發現數據的分布式特征表示。卷積神經網絡是目前應用最為廣泛的一種深度學習結構。Kim[3]提出使用卷積神經網絡進行句子建模,解決文本分類任務,在多個數據集上均取得了較為不錯的結果。陳釗等[4]提出將詞語情感特征結合卷積神經網絡(WFCNN,Word Feature Convolutional Neural Networks)的情感分類方法,取得了比目前主流的卷積神經網絡更高的準確率。劉龍飛等[5]分別使用字向量和詞向量作為原始特征,使用卷積神經網絡來進行微博情感傾向分析。杜昌順等[6]基于卷積神經網絡模型分析文本的情感傾向,考慮到句子的結構信息,采用分段池化的策略分段提取句子不同結構的主要特征。這些方法在不同程度上提高了卷積神經網絡的特征提取能力,但沒有考慮到卷積神經網絡模型的訓練速度。
為了進一步提高卷積神經網絡的特征提取能力并加快模型的訓練速度,本文提出一種分解卷積神經網絡模型并將其用于中文情感分類:首先訓練出數據集中每個詞的詞向量,將其組合成二維矩陣作為卷積神經網絡的輸入特征;然后在卷積層使用多個卷積通道并使用分解卷積操作提高卷積神經網絡的特征提取能力及訓練速度;隨后使用池化操作從每張特征圖中找出最具代表性的局部最優特征;最后通過全連接層來完成情感的分類。本文提出的方法不依賴于其他任何特定的領域知識和復雜的詞性標注等操作,實驗結果取得了比目前主流的卷積神經網絡更好的性能,顯示了本文方法的有效性。
卷積神經網絡是目前應用最為廣泛的一種深度學習結構,具有學習復雜、高維和非線性映射關系的能力。卷積神經網絡的基本框架由卷積層、采樣層和全連接層堆疊而成,每一層的輸出為下一層的輸入。卷積層通過卷積核運算產生特征圖;采樣層對卷積層產生的特征圖進行采樣,提取局部最優特征生成特征映射圖;采樣層輸出的結果經拼接作為全連接層的輸入,然后利用softmax輸出分類結果。
卷積神經網絡具備獨特的二維數據處理方式,現已在多個領域得到廣泛應用。Seimanet等[7]設計了一個5層的CNN,并且使用多層卷積層的輸出作為全連接的輸入,在門牌號識別的問題上取得較好的精度。Du等[8]提出基于卷積神經網絡進行特征的提取,對在線的手寫漢字進行識別。Yang等[9]提出一種深度卷積神經網絡的人臉檢測模型,使用卷積神經網絡結構得到局部人臉映射圖并計算候選框圖像的局部人臉得分,從而檢測人臉。Guo等[10]提出將卷積神經網絡和隱馬爾可夫模型(HMM)結合起來,自然場景的文字識別中得到了非常好的效果。
對于情感分析而言,基于卷積神經網絡的方法在建模、解釋、表達能力以及優化等方面優勢比較明顯[11],使用卷積神經網絡模型能夠挖掘出文本所蘊含的更深層次的自然語言信息。蔡慧蘋等[12]將word embedding與卷積神經網絡結合來解決中文的情感分類問題。Kalchbrenner等[13]提出了一種DCNN(Dynamic Convolutional Neural Network)的網絡模型,使用了一種動態池化的方法,能夠處理可變長度的輸入。馮多等[14]提出CNNSC模型對中文微博進行情感分析,考慮到中文的特殊性,研究了不同語義單元對CNNSC分類效果的影響。Johnson等[15]及Zhang等[16]使用CNN進行文本分類,并進行了特殊場景下的改良。這些工作表明了卷積神經網絡在領域中具有廣闊的應用前景。
傳統的卷積神經網絡是單通道的卷積層堆疊而成的,并且每層只用一個固定大小的卷積核。由于使用不同大小的卷積窗口能夠提取出含有不同信息的特征,為了充分地提取特征并降低特征提取過程中的偶然性,如圖1所示,本文設置多個卷積通道并使用不同的卷積窗口,從而提取出不同粒度大小的局部特征,再把這些特征結合起來。

圖1 多個不同尺寸的卷積核
通過這樣網絡提取到的特征優于使用單一卷積核,但其在網絡訓練的過程中,參數量遠大于使用單一卷積核,過高的參數計算量會使得模型效率低下。為此本文提出一種分解卷積的方法,如圖2所示。


圖2 卷積操作
如圖2(a)所示,使用傳統卷積操作,當輸入維度為6×6,使用卷積窗口為3×3進行特征提取后,生成4×4的特征映射圖。如圖2(b)所示,使用分離卷積操作,輸入維度為6×6,先將3×3的卷積窗口分解成1×3和3×1的卷積窗口,使用卷積窗口為1×3進行特征提取后,生成4×6的特征映射圖,然后使用卷積窗口為3×1進行特征提取后,也生成4×4的特征映射圖。然而3×3的卷積窗口需要訓練9個參數,而1×3和3×1的卷積窗口需要訓練6個參數。當輸入維度以及需要輸出的維度較大時,分離卷積操作能夠明顯降低需要訓練的參數,使得模型的訓練時間明顯降低。
當使用卷積神經網絡進行圖像識別時,由于像素矩陣中的每一個像素點與其四周的像素點有關,所以卷積核在像素矩陣的行和列同時進行卷積操作。對于文本矩陣而言,行與行之間具有語序特征,不同維度之間具有不同的語義信息。因此,使用分解卷積操作進行文本特征提取,在加快模型訓練速度的同時能夠提高卷積神經網絡的提取文本特征的能力,能較好地保留文本最初的語義和語序特征。
本文所提出的分解卷積神經網絡模型的具體結構如圖3所示。

圖3 分解卷積神經網絡結構圖
1)輸入層
給定一段長度為L的文本s,wi為s中的第i個詞所對應的d維詞向量,那么文本s在輸入層可以表示為一個L×d的二維矩陣w1:L,

本文所使用的數據集中最長評論為119個詞語,詞向量維度為300維,即L=119,d=300。對于長度小于L的句子,進行補零處理。
2)卷積層
即特征提取層,對輸入層的二維矩陣進行特征提取。其原理是通過卷積核對不同區域進行相同的信息轉換,將局部的特征泛化,從而保留整體的特征。對輸入層的L×d矩陣w1:L進行特征提取時,首先使用1×d卷積運算濾波器對于句子中的每個詞xj進行卷積操作,然后加上相對的偏置,最后通過一個非線性激活函數生成相應的特征mij:

其中?是元素乘法,b為偏置,f為激活函數。常用的激活函數有sigmoid、Relu等。由于卷積神經網絡采用反向傳播算法來訓練參數值,而sigmoid函數在反向傳播求導時要進行除法運算,計算量相對來說比較大。因此本文采用Relu函數作為激活函數。Relu具有稀疏激活性的特點,使得部分神經元的輸出值為0,從而減少參數間的依存關系,能夠有效地避免模型訓練出現過擬合現象。
當卷積運算濾波器對整個輸入矩陣逐個進行卷積后,會得出特征映射圖mi∈?L:

然后使用ki×1的卷積運算濾波器對特征映射圖mi進行卷積操作,生成新的特征cij和特征映射圖ci:

3)池化層
將卷積層提取出的特征進一步聚合,起到二次提取特征的作用。最大池化是最常用的一種操作,即取局部接受域中最突出的特征,舍棄其他弱的此類特征,生成特征值為:

4)全連接層
池化層輸出的結果經拼接之后為文本的最終表達,將其作為全連接層的輸入,然后利用softmax輸出分類結果。根據訓練數據的實際分類標簽,采用反向傳播算法對卷積神經網絡的卷積核和偏置矩陣進行不斷更新。
本文所完成的實驗均在如表1所示的實驗環境中進行。

表1 實驗環境及配置
實驗所使用的數據來自京東的商品評論。該數據集經過去重、分詞和去停用詞等預處理工作后,共10000條評論樣本,其中商品的正面評論和負面評論各5000條。
為測試模型的性能,對基本的卷積神經網絡(CNN)與本文提出的分解卷積神經網絡(FCNN)進行實驗對比。對于CNN模型和FCNN模型都使用三個卷積通道并使用不同的卷積窗口進行特征提取。網絡的超參數具體值設置如表2所示。

表2 卷積神經網絡參數設置
本文針對每個模型進行10次實驗,每次實驗取9份為訓練集,1份為測試集,取10次實驗結果的均值為模型最終的分類準確率。CNN模型和FCNN模型實驗結果如圖4所示。

圖4 不同模型的準確率
從圖4的實驗結果可以明顯看出,FCNN較CNN具有更高分類準確率。取10次實驗結果的均值CNN的準確率為90.85%,而FCNN的準確率達93.27%。這是由于本文提出的FCNN模型,能夠將較好地保留文本原始的語義和語序特征,有效地提高了模型的表達能力和分類性能。
為了進一步分析FCNN模型的性能,這里分別選取CNN和FCNN其中一次的實驗結果,如圖5所示。

圖5 收斂性對比曲線
由圖5可以看出,CNN模型在第10次迭代開始收斂,而本文提出的FCNN模型在第6次開始收斂,本文提出的FCNN模型具有較好的收斂性。
本文提出一種分解卷積神經網絡模型,并將其應用于文本情感分析中。實驗結果表明,與目前主流的卷積神經網絡模型相比,本文提出的分解卷積神經網絡模型表現出較好的性能。由于卷積神經網絡訓練過程中,需要設置大量的參數,因此下一步計劃對參數進行優化進一步提高模型的性能。