喻 濤,羅 可
長沙理工大學 計算機與通信工程學院,長沙 410114
隨著互聯網相關技術的飛速發展,用戶通過微博等媒體自由地在社交網絡中表述自己的觀點,在電子商務平臺對購買的商品進行評價,在豆瓣等網站進行電影評論等行為已成為日常生活的一部分。如何利用機器學習、深度學習技術對海量信息進行分析,獲得文本的觀點傾向、情感極性成為自然語言處理領域的一個重要研究課題[1]。
情感分析(sentiment analysis,SA)又稱傾向性分析和意見挖掘,它是對帶有情感色彩的主觀性文本進行分析、處理、歸納和推理的過程。傳統的情感分析技術可分為兩類,第一類為基于情感詞典的方法,第二類為基于機器學習的方法。前者從語言學的角度出發,每個詞或短語由專家賦予情感極性或者情感強度,研究者結合情感詞典數據,構建人工規則,判斷目標文本的情感極性。在這類方法的研究上,謝松縣等人[2]采用混合特征的情感詞典方法進行情感分析,楊小平等人[3]采用基于word2vec的情感詞典構建方法完成情感分類。后者機器學習算法[4]借助于大量人工標注的特征來確定給定文本的情感極性。該算法實現了很好的性能,但需要大量的人工操作和領域知識。近年來,隨著深度學習的研究不斷深入,將詞語編碼為詞向量,利用深度神經網絡技術對文本進行分析成為研究的新領域。例如,Kim[5]提出使用卷積神經網絡(convolution neural network,CNN)進行句子建模;Socher等人[6-8]利用遞歸神經網絡(recurrent neural network,RNN)提取句子的語義特征,進行情感分析等。
在情感分析領域,詞作為最基本的研究單元,詞向量訓練的好壞對情感分析任務的精準度有重大影響。因此,研究者們提出了許多卓有成效的詞向量訓練方法,主要包括基于主題模型的方法和基于語言模型的方法。基于主題模型的方法是指每個詞被表示成不同主題下的概率分布,較為典型的是基于LDA(latent Dirichlet allocation)的主題模型方法。如Mikolov等人[9]使用LDA方法,在大量的語料數據中學習到預定義數量的主題,每個詞在不同主題下的概率分布即為該詞的語義向量。基于語言模型的方法中經典之作為Bengio等人[10]采用三層神經網絡構建語言模型的方法,把詞映射到低維實數向量,通過詞與詞之間的距離來判斷它們之間的語義相似度。Mnih等人[11]提出一種層級的思想,采用Hierarchical Log-Bilinear模型來訓練語言模型。Mikolov等人[12-13]提出了word2vec框架,構建了Continuous Bag-of-Words(CBOW)模型和Continuous Skip-Gram模型。
傳統基于詞向量的卷積神經網絡模型在情感分析任務上取得了很好的效果,但存在兩個缺點:第一,傳統的詞向量僅考慮了文本中的語義或語法信息,未考慮詞語本身的情感極性,往往導致一些具有相同用法,情感極性卻相反的詞語被映射到相近的向量中,這對情感分析任務是致命性錯誤。第二,傳統卷積神經網絡由卷積層(convolution layer)、最大池化層(max-pooling layer)和全連接層(full connection layer)組成,卷積層提取句子特征,最大池化層選擇局部最大特征,全連接層完成任務分類。但是傳統模型中最大池化層是從整個句子的局部特征中提取最大值,沒有針對句子的結構進行多段分析。例如在某一轉折句中,情感極性為轉折后的消極,若轉折詞前正面情感詞多,提取的最大特征將句子誤分類為積極,這對情感分析任務同樣也是致命性錯誤。根據中文傾向性分析評測COAE2014(Chinese opinion analysis evaluation)數據集統計發現,這種轉折類的句子占數據集的17.3%,這是一種不能忽略的現象。
針對以上兩點不足,本文提出一種基于情感詞向量的動態多池卷積神經網絡(dynamic multi-pooling convolution neural network based on sentiment word vector,SDMCNN)模型。與僅以語義和句法為焦點的傳統詞向量學習不同,情感詞向量能夠根據它們的情感以及它們的語義和句法信息來區分單詞。同時卷積神經網絡采用動態多池層[14]策略,以轉折詞分割,分段獲取句子每個部分的最大值,即保留多個局部最大特征值,更準確地完成情感分析任務。
本文組織結構如下:第2章介紹傳統的卷積神經網絡結構;第3章介紹基于情感詞向量的動態多池卷積神經網絡模型(即SDMCNN模型);第4章實驗證明SDMCNN模型的性能;最后總結本文。
卷積神經網絡是一種前饋神經網絡,由卷積層、池化層和全連接層3種類型的神經網絡層組成。每一層的輸出作為下一層的輸入。卷積層是特征提取層,通過濾波器提取局部特征,經過卷積核函數產生局部特征圖,輸入到池化層。池化層是特征映射層,對卷積層提取的特征圖進行采樣,輸出局部最優特征。全連接層對最優特征進行任務分類。
依據文獻[15],簡化的卷積神經網絡結構如圖1所示。

Fig.1 Simplified CNN structure圖1 簡化的CNN結構
給定長度為n的輸入句子s,每一列代表一個詞向量,句子s中的第i個詞xi∈Rd為d維詞向量,則s表示為:

其中,⊕是串接操作符,即xi:i+j是指詞xi,xi+1,…,xi+j的水平串接。卷積是權重矩陣w∈Rh×d與句子s中xi:i+h-1串接矩陣的點乘積運算。卷積的目的是獲得表示為句子s的最終特征圖C(C∈Rn-h+1),利用大小為h×d的濾波器對輸入特征矩陣進行卷積操作,計算如下:

其中,f(·)為卷積核函數,例如雙曲正切;w為卷積濾波器;h為滑動窗口大小;b為偏置項。卷積后得到的特征圖C為:

其中,ci表示特征圖中第i個特征值。為了捕獲每個特征映射ci的重要信息,呈現了幾種池化方法,如最大池化(即c=max{ci})和平均池化
由于每個濾波器在卷積過程之后僅獲得一個特征映射C,卷積神經網絡模型通常通過使用多個不同窗口大小的濾波器,或者隨機地初始化具有相同窗口大小的幾個濾波器來產生多個特征。如圖1所示,使用窗口大小為3的6個濾波器。池化后生成的特征(即)進入softmax層,來預測在預定義標簽中的概率分布,計算公式如下:

卷積神經網絡中的參數通過反向傳播微調[16]。
針對傳統卷積神經網絡模型未考慮詞語的情感信息和句子結構兩點不足,本文提出的基于情感詞向量的動態多池卷積神經網絡模型包括兩部分:第一部分是構建情感詞向量;第二部分是訓練動態多池神經網絡模型。
詞語語義信息部分使用skip-gram模型[12]來訓練語義詞向量xsem。其中skip-gram模型是根據給定中心詞預測它周圍的詞。假設句子中詞組序列為x1,x2,…,xn,其目標是最大化式(5)中的條件概率:

其中,c是以當前詞語為中心的上下文詞數,c值越大模型訓練效果越好,同時也會增加訓練時間。
在skip-gram模型訓練語義詞向量的基礎上,情感信息部分根據詞語本身的情感特征,利用情感詞典來構建情感屬性向量xsen。
同時針對轉折句結構,模型采用標注轉折連詞的方式訓練情感屬性向量。表1和表2分別列出模型考慮轉折句式中使用的轉折詞和模型考慮的情感屬性特征。

Table 1 Turning word list表1 轉折詞列表

Table 2 Attributes of sentiment information表2 詞語情感信息的屬性特征
給定長度為n的輸入句子s,把句中每個詞語xi,1≤i≤n,映射到一個k維的0,1向量空間,即xi∈Rk。其中k代表模型考慮詞語本身具有的屬性特征個數,每一維用數值0,1表示。0表示詞語不具有此屬性,1表示詞語具有此屬性。
假設x為情感詞向量,則表示為:

情感詞向量組成文本特征矩陣,作為動態多池卷積神經網絡的輸入。傳統的卷積神經網絡模型沒有分析句子結構,采用最大池化層提取整個句子的最優特征,針對情感轉折句式問題,往往會忽略轉折之后情感極性的變化,導致情感分析錯誤。因此,本文采用動態多池的卷積神經網絡模型,以轉折詞進行分割,分段提取句子局部最大特征,通過模型訓練完成情感分析任務。
本文提出的基于情感詞向量的動態多池卷積神經網絡模型的整體架構如圖2所示。模型包括4個層次,依次為情感詞向量輸入層、卷積操作層、動態多池層和情感分類輸出層。

Fig.2 Dynamic multi-pooling convolution neural network model based on sentiment word vector圖2 基于情感詞向量的動態多池卷積神經網絡模型
(1)輸入層。由情感詞向量X構成文本特征矩陣,語義詞向量長度為dsem,情感向量長度為dsen,令xi∈Rd是對應于句子中第i個詞語的d維向量表示,其中d=dsem+dsen。長度為n的句子表示如下:

因此,組合語義詞向量和情感向量,將句子變換為特征矩陣X∈Rd×n。
(2)卷積操作層。卷積層旨在捕獲整個句子的組成信息,并將這些有價值的信息壓縮到特征映射中。xi:i+h-1是詞xi,xi+1,…,xi+h-1組成的局部特征矩陣。本文利用大小為h×d的濾波器對輸入特征進行卷積操作,即:

其中,ci代表特征圖中第i個特征值,1≤i≤n-h+1;f(·)為卷積核函數;w∈Rh×d為濾波器;h為滑動窗口大小;b為偏置項。為了捕獲不同的特征,通常在卷積中使用多個濾波器。假設使用m個濾波器W=w1,w2,…,wm,卷積運算可以表示為:

其中,1≤j≤m,卷積結果為矩陣C∈Rm×(n-h+1)。
(3)動態多池層。為了提取每個特征圖中最重要的特征,傳統卷積神經網絡采用一個特征圖作為池值。然而單個最大池不能很好地完成情感分析任務,因為一個句子可能包含兩個相反極性的情感。為了準確預測,需要捕獲情感改變中最有價值的信息。因此,在轉折句中,對轉折詞前后的情感詞進行分割并多段保留最大值,將其稱為動態多池。與傳統的最大池相比,動態多池可以保留更多有價值的信息,而不會錯過最大化池值。
如圖2所示,特征映射輸出cj被“但”劃分為兩部分cj1、cj2。動態多池可以表示為:

其中,1≤j≤m和1≤i≤n。
通過動態多池層,獲得每個特征圖的pji。然后連接所有的pji形成一個向量P∈R2m。其中m是特征映射的數量,P稱為句子級特征。
(4)輸出層。由動態多池層得出的特征向量P作為softmax層的輸入。softmax層的訓練過程中引入了Dropout策略,即隨機地將分段池化的結果向量按照一定比例ρ置0,沒有置0的向量進行運算和連接,它將神經網絡轉換成多個模型的組合,提高了模型分析的準確率。最后得到情感分類的預測概率,同時根據訓練數據的實際分類標簽,對卷積神經網絡的參數采用反向傳播算法進行梯度更新,即:

模型需要訓練的參數包括詞向量和卷積神經網絡的參數。設詞向量為X,卷積操作的參數為W,分類器的參數為F,令θ={X,W,F}。設訓練集樣本集合,其中Si表示第i個句子,yi表示句子的情感類別,k表示訓練集樣本的個數。p(yi|Si,θ)表示在已知參數θ時,將句子Si的情感分類為yi的概率,則優化的目標函數為:

為了防止過擬合并提高泛化能力,模型利用L2正則化對網絡參數進行約束,其中λ為正則化的參數。模型訓練中,采用mini-batch梯度下降法進行訓練,即每次更新權值只需要一部分樣本參與計算,保證盡可能尋找到最優解,并提高訓練速度。則參數θ的更新方式為:

其中,α為學習率。
本文實驗環境配置具體如表3所示。

Table 3 Experimental environment configuration表3 實驗環境配置
情感屬性向量使用的情感詞典為HowNet情感詞典和大連理工大學細粒度情感詞典。本文實驗數據采用COAE2014微博數據集(http://download.csdn.net/detail/u013906860/9776509),數據集分為訓練數據集和測試數據集。訓練數據集選取手機、翡翠、保險3個話題,總共7 000條微博,其中正面情感3 776條,負面情感3 224條。測試數據選取1 838條同一主題微博,其中正面情感1 004條,負面情感834條。本文采用多次重復實驗來評估各個模型的性能,最終測評結果為實驗的平均值。
為了充分測試SDMCNN模型的性能,除了在COAE2014微博數據集上進行情感分類,本文還將選取數據集4 286條,分為轉折句式(1 069條)和非轉折句式(3 217條)兩部分,分別在SVM(support vector machine)、W2V+CNN模型和SDMCNN模型上進行情感分類實驗,來考察SDMCNN模型在轉折句上的分類性能。
數據集劃分之后,在訓練過程中采用mini-batch訓練模型,因此需要對句子進行固定操作,對于長度小于句子最大長度lmax的句子進行補零處理。對數據集進行預處理過程包括:過濾所有的標點符號和特殊字符;格式轉換;利用python中的jieba分詞工具進行分詞處理,將每條微博轉化成以空格分隔的詞語序列;訓練詞向量。一條微博為一行進行詞向量學習,本文詞向量采用word2vec工具(http://code.google.com/p/word2vec)中的skip-gram模型,它由2 000萬條的微博語料訓練產生,保證了詞向量的高質量。
本文實驗中卷積核函數采用Rectified linear函數,模型中的參數由多次重復實驗進行調節。參數主要有詞向量的維度d,卷積核滑動窗口大小h,卷積核數量m,Dropout算法的比率ρ,mini-batch算法的學習率α。其中d的取值范圍為{50,100,200},h的取值組合為(2,3,4)、(3,4,5)和(4,5,6),m在卷積操作的3個通道中保持不變,取值范圍是{100,200,300}。這3個參數構成了27種參數組合,實驗通過網格搜索方法調參,確定平均實驗結果最優的參數組合。本文實驗參數設置如表4所示。

Table 4 Model optimal parameter settings表4 模型最優參數設置
圖3為目標函數隨mini-batch迭代次數的變化曲線,當迭代次數達到50次以上時,目標函數最小且保持不變,因此實驗設置訓練迭代次數為50次。
為了驗證模型的有效性和準確性,設計實驗與以下模型進行性能對比:

Fig.3 Change of objective function圖3 目標函數變化曲線
(1)傳統機器學習。在相同的數據集上,為了保證實驗的可比性,構建輸入特征采用本文訓練情感詞向量的方式,分別用線性回歸(Linear Regression)、隨機森林(Random Forest)、支持向量機(SVM)方法進行情感分類來證明卷積神經模型在情感分析任務上的性能優勢。其中Linear Regression通過學習一個線性模型來預測實值輸出標記。Random Forest是一個包含多個決策樹對樣本進行訓練并預測的分類器。SVM通過構造一個超平面或無限維空間將訓練樣本正確分類,在情感分類任務中取得過較好的結果[17]。
(2)Rand+DMCNN模型。按高斯分布隨機初始化詞向量,采用動態多池層的卷積神經網絡(dynamic multi-pooling convolution neural network,DMCNN)模型,證明由skip-gram模型訓練的詞向量在描述原始數據特征分布上的性能優勢。
(3)skip-gram+DMCNN模型。采用skip-gram模型訓練的詞向量作為二維特征矩陣輸入動態多池層的卷積神經網絡模型,證明融合情感信息的情感詞向量在情感分析任務上的性能優勢。
(4)SWV+CNN模型。采用情感詞向量(sentiment word vector,SWV)作為二維特征矩陣輸入傳統卷積神經模型,證明動態多池層在處理情感轉折句式上的性能優勢。
(5)W2V+CNN模型。文獻[5]中Kim提出了基于word2vec訓練的詞向量的卷積神經網絡模型,證明采用情感詞向量和動態多池策略的SDMCNN模型比傳統卷積方法更勝任情感分析任務。
在機器學習(machine learning,ML)、自然語言處理(natural language processing,NLP)、信息檢索(information retrieval,IR)等領域中評估是一個必要的工作,而其評價指標往往有如下幾點:精確率(Precision)、召回率(Recall)和F1-Measure。Precision衡量的是查準率,Recall衡量的是查全率,這兩個指標共同衡量才能評價模型的輸出結果,F1值就是精確值和召回率的調和均值,即綜合評價指標。各個模型在COAE2014微博數據集上對3個指標的測評結果如表5所示。

Table 5 Experimental results on COAE2014 data set表5 COAE2014數據集情感分析測試結果
實驗結果表明,后4種采用CNN的模型在情感分類任務上總體優于機器學習方法,SDMCNN模型在Precision上取得最好的結果,較Linear Regression、Random Forest和SVM有很大提升,比取得第二好的SWV+CNN模型提高了2.81%。僅采用情感詞向量的SWV+CNN模型和僅采用動態多池層的skip-gram+DMCNN模型較經典模型W2V+CNN在Precision和Recall上都有提升。最終,在F1上SDMCNN模型分別高于SWV+CNN模型和skip-gram+DMCNN模型2.14%和2.10%,取得了最好的實驗結果。
分別將實驗模型進行對比,得出以下結論。
結論1將 Linear Regression、Random Forest和SVM方法與W2V+CNN模型對比,在情感分類任務上,針對詞向量這種分布式的特征表示,機器學習方法構建和匹配特征的優勢不如卷積神經網絡模型,且卷積神經網絡通過局部感知野和權值共享,減少了模型參數,同時降低了模型復雜度。W2V+CNN模型在F1上明顯高于其他3種模型,證明了卷積神經網絡在情感分類上的出色表現。
結論2將SDMCNN模型與Rand+DMCNN模型和skip-gram+DMCNN模型對比,在保持動態多池層卷積神經網絡結構不變的前提下,融合情感信息的情感詞向量能有效提升文本情感分析的準確率。相比按高斯分布隨機初始化詞向量,word2vec訓練詞向量能夠在更抽象的層面上描述原始輸入數據的特征分布情況,而串接情感屬性向量的情感詞向量在模型迭代訓練中不斷更新,按最優的方向收斂得到最優解,更適合情感分析任務。skip-gram+DMCNN模型比Rand+DMCNN模型在F1上提升了5.61%,在輸入特征為情感詞向量矩陣的基礎上,SDMCNN模型比skip-gram+DMCNN模型在F1上提升了2.10%。
結論3將本文提出的SDMCNN模型與SWV+CNN模型對比,在保持情感詞向量不變的前提下,動態多池卷積神經網絡模型在轉折句式上能有效提升文本情感分類的準確率。SDMCNN模型采用動態池化分段提取句中最大值,比最大池化方法能更準確地完成情感轉折句式的情感分類。
結論4將SDMCNN模型與W2V+CNN模型對比,SDMCNN模型很好地結合了情感詞向量和動態多池層兩種方法的優勢,在F1上比W2V+CNN模型高出5.67%,分類性能得到極大提升。
針對轉折句式和非轉折句式數據集來考察模型實驗性能,結果如圖4、圖5和圖6所示。
從整體來看,SVM和W2V+CNN模型的轉折句式的Precision、Recall和F1評價指標都明顯低于非轉折句式,表明在含有幾個情感詞的轉折句中,這兩種模型訓練特征并正確分類的性能較差。而SDMCNN模型在轉折句上的性能指標極大提升,與非轉折句式保持很小的差別。特別從圖6得出,在總微博數、轉折句式和非轉折句式數據上的F1變化不大,同時也是實驗的最好結果,表明SDMCNN模型在轉折句式上準確處理情感分類任務的充分優勢。

Fig.4 Precision of experiment test data圖4 實驗測試結果的精確率

Fig.5 Recall of experiment test data圖5 實驗測試結果的召回率

Fig.6 F1 of experiment test data圖6 實驗測試結果的F1
針對詞向量缺乏情感信息和傳統卷積神經網絡未考慮句子結構問題,本文提出了一種基于情感詞向量的動態多池卷積神經網絡模型。一方面,在skip-gram模型訓練包含語義和句法的詞向量的基礎上,利用情感詞典獲取詞語本身的情感屬性來訓練情感詞向量。另一方面,在傳統卷積神經網絡模型的基礎上,采用動態多池策略,以轉折詞分割多段提取最大特征值。在COAE2014數據集進行訓練和測試,證明基于情感詞向量的動態多池卷積神經網絡模型比傳統卷積神經網絡模型能更準確地完成情感轉折句式的情感分析任務。本模型在真實的數據上進行實驗,因而具有普遍的實用性。但微博中的網絡用語更新速度快,詞語的情感屬性依賴于情感詞典,因此研究情感詞典的擴展方法,進行情感詞向量訓練將成為以后的一個方向。