朱 燁,陳世平,2
1(上海理工大學 光電信息與計算機工程學院,上海 200093)
2(上海理工大學 信息化辦公室,上海 200093)
E-mail:zhuye0209@foxmail.com
隨著互聯網的不斷發展,人們通過微博、知乎、頭條等社交媒體發布評論表達情感或觀點,使得社交媒體的文本數據呈爆炸式增長.利用社交媒體和商業新聞中的數據進行情感分析,能了解事件的發展趨勢,更能幫助人們作出判斷和決策.如何在龐大的非結構化文本資源中進行情感分析已經成為當前研究的熱點問題.
文本情感分析是自然語言處理中的重要任務之一,主要對帶有情感色彩的主觀性文本進行分析、處理、歸納和推理[1].文本情感分析方法主要有兩種,分別是基于詞典的方法和基于機器學習的方法[2].
基于詞典的情感分析,首先構建情感詞典,情感詞典主要包括情感詞、否定詞、程度詞等,再對詞語分配相應權重,計算文本最終得分.近年來很多專家學者都對此進行了一系列研究.Kim[3]提出一種計算動詞、形容詞、副詞等詞語的情感得分方法來判斷文本的情感取向.Ding[4]提出一種改進的情感詞典方法,通過計算情感詞與關鍵詞的距離對情感詞進行加權,利用加權情感詞得分對文本情感分類.但是基于情感詞典的文本情感分類沒有考慮句子的語義以及單詞之間的關系,情感強弱的判斷過于簡單,并且構建情感詞典的過程需要耗費大量工作.
基于傳統機器學習的情感分析,首先對非結構化文本數據進行特征降維并提取重要特征,然后利用機器學習對文本情感進行分類.目前常用于文本情感分析的機器學習方法有樸素貝葉斯、支持向量機、最大熵方法等.Pang[5]提出基于有監督學習方法對電影評論進行文本情感傾向性分類,分別使用樸素貝葉斯、最大熵、支持向量機三種方法對電影評論進行分類.相對于情感詞典的方法,基于機器學習的方法能節省大量工作.但是傳統的機器學習方法中文本數據存在高維稀疏、特征表達能力較弱的缺點.
隨著深度學習的不斷發展,許多學者通過結合神經網絡解決文本情感分析問題.其中,卷積神經網絡是近年來占主導地位的神經網絡之一.使用卷積神經網絡處理文本情感分析問題,顯著特點在于:充分利用特征圖的并行性,堆疊多個卷積核產生文本的抽象表示,更容易捕捉句子中的復雜關系;卷積核獨特的網絡結構使得降維速度更快,對高維數據處理無壓力.Kim[6]提出將卷積神經網絡應用于文本分類中,首先將單詞轉化為詞向量,然后使用多個不同尺寸的卷積核對詞向量進行卷積,最后進行池化、分類.Ouyang[8]提出結合word2vec模型和卷積神經網絡處理情感分析,首先使用word2vec表示文本矩陣,并使用三個卷積層以及池化層構建網絡模型,表現了很好的性能.但是使用卷積神經網絡模型不足之處在于卷積運算只能獲取鄰近單詞的語義關系,未能提取長距離相互影響的特征.
近年來,注意力機制引起了學者的廣泛關注,基于注意力機制的神經網絡模型被運用于各種自然語言處理任務中.注意力機制嘗試模仿人類的感知,將注意力集中在目標區域的重要部分,以獲得目標的關鍵特征.Yin W[9]首次提出基于三個層面上的注意力機制結合卷積神經網絡的語句建模方法,分別在卷積層、池化層加入注意力機制以及卷積層和池化層同時加入注意力機制,通過注意力機制將詞語和語句間的相互關系加權到卷積神經網絡模型中,并取得了不錯的分類效果.Pappas[11]提出分層注意力機制對文本進行分類,使用雙向門控循環單元(BiGRU)獲得文本特征,以及構建兩個不同級別的注意力機制,獲取不同級別的信息,更好的進行分類.使用注意力機制的網絡模型,主要通過計算特征圖的權重系數得到模型的注意力,但是沒有考慮相似文本實例對分類結果的影響.
從整體上來看,現有深度學習模型大多都采用單一的輸入文本進行建模,而未考慮相似文本實例對整體分類效果的影響.由于文本特征之間存在依賴性,相同話題的文本之間存在更多相似的特征,而不同話題的文本相似特征較少.使用KNN算法對數據預處理,從已知標簽的數據集中尋找相似文本,選取有意義的文本信息,使得用于分類的文本特征更加準確,再根據文本相似性對文本特征進行加權,使得特征更加分明.例如,文本的整體情感傾向為正類,但其中也包含一些負類情感信息,加入相似文本后,有助于加強正類情感信息,弱化負類情感信息,從相似文本出發得到更有分類意義的特征.利用相似文本對象信息提取評論文本的多維特征來增強卷積神經網絡模型的分類能力.然而現有的大多數模型很少從這個角度出發去分析文本情感,未能很好地體現文本的互相關聯性對分類結果的影響,故本文試圖使用來自于輸入文本和相似文本的共同特征作為模型的輸入,引入注意力機制對文本及其相似文本的特征進行權重更新,從兩個方面篩選出分類效果最大的信息,故本文提出一種融合卷積神經網絡和注意力的評論文本情感分析模型.
本文模型的創新之處在于:一是使用距離公式計算輸入文本的相似度,利用文本相似度對最近鄰的K個文本加權,獲得加權文本矩陣,更好的提取文本多維特征.二是通過加權文本矩陣與原始文本矩陣構建注意力,并對注意力矩陣進行加權,將上述經過注意力機制加權后的矩陣作為模型的輸入層,傳入雙通道卷積神經網絡模型,從而更好地對文本進行情感分析.通過三個實驗對比,表明本文的模型比其他基準的深度學習模型分類效果都有明顯的提高.
最近鄰算法是數據挖掘以及分類問題中最流行的方法之一,分類模型簡單有效,是基于實例學習的算法.該算法不會丟失任何原始數據,相對于其他傳統的分類方法,具有更強的優勢,并且K的取值具有魯棒性,能很好的處理噪聲.KNN算法使用距離來衡量樣本之間的相似度,常用的距離包括歐氏距離、曼哈頓距離、馬氏距離等.
使用KNN算法找到輸入文本的K個相似文本,首先使用詞向量模型將每個文本表示為文本矩陣,然后采用距離公式計算輸入文本與訓練集中每個文本的相似度,選出相似度最高的K個文本[12].
給定輸入文本Xi,采用距離公式計算輸入文本Xi與訓練集中每個文本Xj的相似度sim(Xi,Xj):
(1)
式(1)中Xi是輸入文本矩陣,Xj是訓練集N={X1,X2,…,Xm}中的一個文本矩陣,t是文本矩陣的特征維數,Xiz為輸入文本矩陣Xi的第z個特征,Xjz為訓練集文本矩陣Xj的第z個特征.
從訓練集中找出K個最相似的文本:{X1,X2,…,Xk},其對應的類別標簽為:{y1,y2,…,yk}.
卷積神經網絡是從傳統神經網絡發展而來的多層網絡模型,可以快速訓練模型并提取特征,常用于分類和預測.卷積神經網絡主要由輸入層、卷積層、池化層、輸出層組成.
1)數據輸入層
本文先對每個文本進行分詞、去停用詞,并采用Google公司Mikolov[13]提出的word2vec工具,根據給定的文本語料庫,快速有效地將文本轉換為文本矩陣,便于計算機直接處理.本文給定訓練集文本為:N={X1,X2,…,Xm},其對應類別標簽為:Y={y1,y2,…,ym}.
每個文本最大的詞語數為s,表示為:
Xi={Xi1,Xi2,…,Xis}
(2)
式(2)中i表示訓練集中第i個文本.每個詞語的特征維數為d,組成s*d維的矩陣,傳入基于卷積神經網絡的文本情感分類模型中(如圖1所示).
2)卷積層
將經過預處理后的文本矩陣s*d作為卷積神經網絡輸入層的特征圖,利用卷積核對特征圖進行卷積操作,進一步提取局部特征.卷積神經網絡的卷積層由不同尺寸的卷積核組成,本文使用的卷積核尺寸為h*d,卷積核高度h分別為3、4、5,每個尺寸的卷積核有128個,每個文本都設有一個固定的滑動窗口為{X1:h,X2:h+1,…,Xs-h+1:s},對文本矩陣的每個窗口Xv:v+h-1進行卷積運算如公式(3)所示:
ci=f(∑Wh?Xv:v+h-1+bh)
(3)
ci表示卷積核的運算結果,Wh為卷積核的權重,Wh∈Rh*d,bh∈R為卷積核的偏置,v代表卷積核滑動窗口的參數,?為卷積計算,f(x)為激活函數,本文采用Relu函數激活,Relu函數能夠更好地學習優化.
卷積核卷積后的特征圖如公式(4)所示:
C=[c1,c2,…,cs-h+1]
(4)

圖1 基于卷積神經網絡的文本情感分類模型
3)池化層
池化層也稱為下采樣層,主要用于減少特征圖的維數,但不改變特征圖的數量,用來選取最優的特征值,加快模型的訓練速度,也能防止模型過擬合.本文使用最大池化(Max-pooling)對不同尺寸的卷積核運算并提取最優特征.
C=max(C)
(5)
每個尺寸的卷積核有128個,一個卷積核經過卷積池化后提取最優的一個特征,三個不同尺寸的卷積核共產生128*3=384個特征.
4)輸出層
經過卷積運算以及最大池化后,對樣本特征圖進行全連接,提取最有利于樣本分類的特征進行分類.本文將經過全連接獲取的384個特征作為輸出層的特征圖:F=[f1,f2,…,f384],采用全連接的softmax函數進行分類,預測第l個文本的情感類別,其中概率最大的類別即為預測文本的情感類別,具體如公式(6)、公式(7)所示:
Pl(y|F,ws,bs)=softmax(wsF+bs)
(6)
(7)
其中,ws,bs分別為權重和偏置,y為文本情感分類的類別.
大多數深度學習算法都使用單一的文本矩陣作為模型的輸入,并未考慮輸入文本的相似文本實例對分類效果的影響.為了提取更多促進文本情感分類的特征,本文提出基于最近鄰算法的加權文本矩陣模型(如圖2所示).
本文采用歐氏距離作為衡量相似度的標準,利用KNN算法從訓練集中獲取輸入文本Xi的K個訓練文本,則這K個訓練文本的文本矩陣為:{X1,X2,…,Xk},其對應標簽為:{y1,y2,…,yk}.待分類文本Xi和K個訓練文本的相似度如公式(8)、公式(9)所示:
Sj=sim(Xi,Xj)
(8)
S={S1,S2,…,Sk}
(9)

圖2 基于最近鄰算法的加權文本矩陣模型
其中j∈{1,2,…,k},Sj表示待分類文本Xi與訓練集樣本Xj的相似度,K個訓練文本組成的權重為S.使用權重S對K個訓練文本矩陣加權構成加權文本矩陣X′如公式(10)所示:
(10)
其中o表示K個訓練文本中的第o個文本,Xo表示K個訓練文本中的第o個文本矩陣,So表示相似度權重S中的第o個相似度.由于不同特征項對文本類別的分類能力不同,使用相似度加權,可以更好地將區分能力高的特征賦予較高的權值[14].
注意力機制表示文本中單詞與輸出類別的相關性,通過計算矩陣之間的權重系數得到模型的注意力,權重越大,更能凸顯重要特征,權重越小,能排除冗余的噪聲.
考慮到相似文本詞語之間存在依賴性,本文首先使用3.1中介紹的基于最近鄰算法的加權文本矩陣模型得到加權文本矩陣,然后通過加權文本矩陣與原始文本矩陣構建注意力,再利用注意力得到兩個注意力加權矩陣.通過對兩個注意力加權矩陣建模,提取更多重要特征,捕獲關鍵信息.
將原始文本矩陣中的每一維特征都對加權文本矩陣的每一維特征求相似度,得到注意力矩陣.構建加權文本矩陣X′與原始文本矩陣X的注意力機制A∈Rs*s:
(11)

使用注意力矩陣A得到兩個注意力加權矩陣.原始文本矩陣的注意力矩陣為:T=AT·W0,加權文本矩陣的注意力矩陣為:T′=A·W1,其中W0∈Rs*d,W1∈Rs*d均為模型訓練參數.將兩個注意力矩陣T、T′作為模型的輸入層傳入雙通道卷積神經網絡模型中進行訓練(如圖3所示).
模型使用隨機梯度下降法Adma算法[15]進行權重更新.定義交叉熵函數為訓練目標的損失函數:

(12)


圖3 融合卷積神經網絡和注意力的評論文本情感分析模型
實驗環境如表1所示.
表1 實驗環境
Table 1 Lab Environment

實驗環境環境配置操作系統Windows10GPU1050ti 4 GB內存8GB編程語言Python3.6分詞工具Jieba,nltk詞向量訓練工具Word2Vec深度學習框架Tensorflow
為了測試本文模型的性能,采用中科院譚松波老師整理的中文酒店評論數據集ChnSentiCorp、英文電影評論數據集MR和自然語言處理和中文計算會議評測的微博情感數據集NLPCC2014,其中NLPCC2014微博數據集包含多個話題.三個數據集均常用于文本情感分析實驗,由于數據集未明確劃分訓練集和測試集,本文采用 10 折交叉驗證的方式進行實驗.數據集的標簽有兩類,正類和負類.具體實驗信息如表2所示,各個數據集的樣例如表3-表5所示.
表2 數據集的統計信息
Table 2 Statistics of data set

名稱大小正類負類類別數句子平均長度ChnSentiCorp600030003000290MR1066253315331220NLP&CC20141250062506250240
本文分別采用準確率(Accuracy)、召回率(Recall)、精確率(Precision)、F1值作為模型的評價指標,具體如下.
(13)
(14)
(15)
(16)
表3 ChnSentiCorp數據集樣例
Table 3 ChnSentiCorp sample dataset

正類負類位置離我們單位很近,從價格來說,性價比很高.我要的大床房,168元,前臺服務員態度很好,房間硬件一般,但是想想價格也就這樣了.還算干凈,就是床墊子太硬.沒有騷擾電話,這個很好.這里能夠免費上網,剛好上網加班一晚,很不錯服務態度極其差,前臺接待好象沒有受過培訓,連基本的禮貌都不懂,竟然同時接待幾個客人;大堂副理更差,跟客人辯解個沒完,要總經理的電話投訴竟然都不敢給.要是沒有作什么虧心事情,跟本不用這么怕.我住的是新裝修的東樓,感覺房間挺寬敞,設施也不錯,相對于隔壁的香格里拉一店都不差.只是酒店其他方面例如大堂、西餐廳的環境和食物品種還需改進.否則價格差不太遠,我還不如住香格里拉了.過了好久才想起來評價,記得離火車站超級近,不過方便的同時必然會覺得比較吵.韓日旅游團住這里的很多,前臺服務冷淡.兩個人住標準間,只給一張房卡,還很挑釁的看我.氣的沒心情.
表4 MR數據集樣例
Table 4 MR sample dataset

正類負類a thoughtful,provocative,in-sistently humanizing film.an odd,haphazard,and inconse-quential romantic comedy.the film makes a strong case for the importance of the musicians in creating the motown sound.the story is also as unoriginal as they come,already having been recycled more times than i′d care to count.
表5 NLPCC2014數據集樣例
Table 5 NLPCC2014 sample dataset

正類負類手感超好,而且黑色相比白色在轉得時候不容易眼花,找童年的記憶啦.今天是在中關村圖書大廈(新華書店)看到之后,專門上網來找,發現這里居然比那里太貴得多.看來也不能輕易在網上不常見的東西.今天突然看到卓越有賣這個的,可是韓國不是賣沒有了嗎.雖然是引進版的,可是之前也賣沒有了.卓越從哪里找出來的啊!我買了不能說的秘密的DVD 和原聲CD 沒想到全是盜版!!!更可笑的是制作粗劣的DVD包裝上還印著卓越亞馬遜的LO-GO卓越太讓我失望了!
其中TP表示預測為正樣本且分類正確的樣本數,TN表示預測為負樣本且分類正確的樣本數,FP表示實際為負且分類錯誤的樣本數,FN表示實際為正且分類錯誤的樣本數.
實驗參數設置如下:使用word2vec工具訓練詞向量,單個文本詞語最大個數300,詞向量維數200,得到文本的尺寸大小為300*200.卷積層中設置不同尺寸的卷積核,從不同維度提取不同特征.本文設置了三個尺寸的卷積核,每個尺寸的卷積核均有128個.尺寸大小分別為3*200、 4*200、5*200.學習率為0.001,學習率指數衰減率為0.9,迭代次數為40,批次數為64.使用最近鄰算法獲取K個相似文本,K設置范圍為[1,20].
本文采用融合卷積神經網絡和注意力的評論文本情感分析模型(ADCNN)進行實驗,選取部分實驗結果作為展示.通過三個不同實驗對本文模型的結果進行衡量,驗證本文模型的有效性.
實驗1.為了檢驗模型的預測效果,本文將其與基準深度學習方法進行對比.基準模型包括:卷積神經網絡(CNN)[6]、循環神經網絡(RNN)[16]、長短時記憶網絡(LSTM)[17]、雙向長短時記憶網絡(BiLSTM)[18]、基于注意力機制的雙向長短時記憶網絡(Attention-BiLSTM)[19].其中雙通道卷積神經網絡模型(DCNN),表示未加入注意力機制的雙通道卷積神經網絡模型,直接將原始文本矩陣與加權文本矩陣輸入到雙通道卷積神經網絡模型中.表6列出了7種算法在不同數據集的實驗結果.
從表6可知,相比CNN、RNN、LSTM、BiLSTM、Attention-BiLSTM、DCNN,本文模型ADCNN在ChnSentiCorp數據集的準確率達到88.97%,相比CNN方法提高了3.47%,在MR數據集的準確率達到82.12%,相比CNN方法提高了1.54%,在NLPCC2014數據集的準確率達到80.54%,相比CNN方法提高了3.3%,分類準確率均有所提高.這是因為本文考慮到相似文本對分類效果的影響,使用KNN算法找到相似文本,豐富了文本特征,從相似文本出發得到更有分類意義的特征,強化有利于分類的文本正向情感詞,通過獲取評論文本的多維特征來增強神經網絡模型的分類能力,更有助于文本情感分析.從表2可知,ChnSentiCorp、MR、NLPCC2014數據集的平均長度分別為90、20、40,相比原始的CNN方法,準確率分別提高3.47%、1.54%、3.3%,可知文本長度對分類準確率的影響不大.更進一步,從表6可以看出,ADCNN的實驗效果優于DCNN,這是因為本文在考慮相似文本的基礎上,引入注意力機制構建加權矩陣,使得文本特征與輸出類別的相關性更強,更好的提高算法的分類效果.
實驗2.為了測試最近鄰算法中K的取值對ADCNN模型和DCNN模型分類性能的影響,本文取K的變化范圍為[1,20],測試不同的K對其準確率的影響.
使用KNN算法提取相似文本,并對相似文本進行加權.如果選取的K值太大,導致文本特征冗余,噪聲較大;選取K值太小,導致用于分類的文本特征不充分.圖4分別為ADCNN、DCNN在三個數據集上的K的不同取值對效果的影響.從兩張圖中可以看出,當K=0時為多尺寸卷積神經網絡模型,酒店評論數據集ChnSentiCorp準確率達到85.50%,電影評論數據集MR達到80.58%,微博情感數據集NLPCC2014達到77.24%.使用最近鄰算法提取相似文本后,兩個模型的效果都有顯著提高.數據集為ChnSentiCorp,ADCNN模型當K取13時,模型準確率達到88.97%,DCNN模型當K取10時,模型準確率達到88.65%.數據集為MR時,ADCNN模型當K取6或9時,模型準確率達到82.12%,DCNN模型當K取7時,模型準確率達到81.92%.數據集為NLPCC2014時,ADCNN模型當K取8時,模型準確率達到80.54%,DCNN模型當K取7時,模型準確率達到80.16%.本文使用基于雙通道卷積神經網絡和注意力的評論文本情感分析模型,三個數據集的準確率都有顯著的提升.從圖4看出,隨著K的增加,模型的準確率在不斷上升,但是當K達到一定程度時,準確率開始不斷下降,因為過多的相似文本會導致冗余特征,進一步導致分類準確率的降低.從實驗2可以看出,合適的K可以增大模型的分類準確率.
表6 7種算法在不同數據集上的實驗結果
Table 6 Results of seven algorithms on different datasets

模型數據集AccuracyPrecisionRecallF1CNNChnSentiCorpMRNLPCC201485.5080.5877.2485.5780.5277.2685.5080.5077.2685.5380.5177.26RNNChnSentiCorpMRNLPCC201485.8079.5376.9185.9179.6076.8785.8079.5376.9085.8579.5676.89LSTMChnSentiCorpMRNLPCC201486.5380.2377.6986.5280.3077.6986.5380.2377.6086.5380.2677.64BiLSTMChnSentiCorpMRNLPCC201487.9081.6778.6787.9681.6078.6387.9081.6778.6387.9381.6378.63Attention-BiL-STMChnSentiCorpMRNLPCC201488.1081.7179.2888.2781.7379.2088.1681.7079.2988.2181.7179.24DCNNChnSentiCorpMRNLPCC201488.6581.9280.1688.6581.9580.1588.6581.9180.1288.6581.9380.14ADCNNChnSentiCorpMRNLPCC201488.9782.1280.5488.9882.0580.5488.9582.1280.5688.9682.0880.55

圖4 ADCNN和DCNN在不同數據集上的實驗結果
實驗3.為了驗證ADCNN和DCNN兩個模型在不同卷積核尺寸作用下,對文本情感分類的準確率影響,設置不同卷積核尺寸,計算分類準確率.本文設置7組不同的卷積核進行實驗,卷積核尺寸分別為3、4、5、(3,4)、(3,5)、(3,4,5),并比較在不同數據集上的準確率.
表7為兩個模型ADCNN和DCNN在不同卷積核尺寸作用下的分類準確率.由表6可知,兩個模型在卷積核尺寸為(3,4,5)作用下的分類結果均優于其他的卷積核尺寸.這是因為多尺寸卷積核的相互作用對分類準確率的提高有正向促進作用,其分類準確率比單尺寸卷積核的分類準確率高,證明多尺寸卷積核可以從不同維度提取出重要特征,更好的對文本情感分析.
表7 不同卷積核尺寸作用的實驗結果
Table 7 Results of different convolution kernel sizes

卷積尺寸數據集DCNNADCNN3ChnSentiCorpMRNLPCC201485.5680.5078.7385.8780.6378.974ChnSentiCorpMRNLPCC201486.2880.7678.7086.480.9879.075ChnSentiCorpMRNLPCC201486.4581.0678.8586.9281.4379.013,4ChnSentiCorpMRNLPCC201487.4081.2378.6387.4581.8379.133,5ChnSentiCorpMRNLPCC201487.6581.7978.9287.8581.8679.114,5ChnSentiCorpMRNLPCC201488.2581.7478.8088.4681.7979.233,4,5ChnSentiCorpMRNLPCC201488.6581.9280.1688.9782.1280.54
由于大多數深度學習算法都使用單一的文本矩陣作為網絡模型的輸入,并未考慮相似文本實例對整體分類效果的影響,故提出了融合卷積神經網絡和注意力的評論文本情感分析模型(ADCNN).實驗結果表明,本文模型相比其他深度學習模型分類效果都有明顯的提高.
今后的研究將嘗試以下工作:1)生成對抗模型(Generative Adversarial Networks,GAN)是最具有前景的深度學習算法之一,嘗試將GAN與KNN結合進一步提升文本情感分類的效果.2)KNN算法由于其需要計算待分類文本和每個訓練文本的相似度,導致模型時間復雜度較高.嘗試使用快速且準確的KD-Tree與神經網絡結合或者尋找新的距離公式計算文本相似度,從而降低時間復雜度和空間復雜度.