梁 軍,柴玉梅,原慧斌,昝紅英,劉 銘
(1. 鄭州大學 信息工程學院,河南 鄭州 450001;2. 中國核科技信息與經(jīng)濟研究院 北京 100048)
隨著社交網(wǎng)絡的不斷發(fā)展,人們更愿意通過微博、博客社區(qū)來表達自己的觀點,發(fā)表對熱點事件的評論,從而使通過微博、博客、影評以及產(chǎn)品評價等來了解社交網(wǎng)絡用戶的情感傾向得到了學術界的廣泛關注。根據(jù)微博數(shù)據(jù)進行情感分析是一個具有挑戰(zhàn)性的任務,近年來引發(fā)了學者極大的興趣[1]。
目前,情感分析的主要研究方法還是一些基于機器學習的傳統(tǒng)算法,例如,SVM、信息熵、CRF等。這些方法歸納起來有3類: 有監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習。而當前大多數(shù)基于有監(jiān)督學習的研究都取得了不錯的成績[2],但是由于有監(jiān)督學習依賴于大量人工標注的數(shù)據(jù),使得基于有監(jiān)督學習的系統(tǒng)需要付出很高的標注代價。相反的,無監(jiān)督學習不需要人工標注數(shù)據(jù)訓練模型,是降低標注代價的解決方案,但由于其完全依賴算法學習結果,往往效果不佳,難以達到實際要求。而半監(jiān)督學習則是采取綜合利用少量已標注樣本和大量未標注樣本來提高學習性能的機器學習方法,它兼顧了人工標注成本和學習效果,被視為一種折中方案。本文圍繞半監(jiān)督學習方法基于自編碼算法提出一種新的分析中文微博情感傾向的深度學習算法。
已有研究所采用的方法大多數(shù)都基于詞袋模型,而這種模型無法捕獲到很多有關情感傾向性分析的語言現(xiàn)象特征。例如,“反法西斯聯(lián)盟擊潰了法西斯”和“法西斯擊潰了反法西斯聯(lián)盟”這兩個詞組擁有相同的詞袋模型表示方法,而前一個帶有積極的感情色彩,后一個帶有消極的感情色彩。除此之外,還有很多研究者使用人工標注的數(shù)據(jù)(情感詞典及句法分析等),雖然采用這些方法可以有效的提高情感分析的準確性,但由于需要較多的人工標注數(shù)據(jù),從而限制了這些方法在其他領域以及跨語言的推廣。
本文采用深度學習方法,不使用任何人工標注的情感詞典以及句法分析結果,僅使用少量標注訓練集和測試集,使用遞歸神經(jīng)網(wǎng)絡進行情感分類。本文首次將句子中每個詞語的標簽關聯(lián)考慮在內(nèi)提出情感極性轉移模型,通過實驗發(fā)現(xiàn)加入該模型可明顯提高算法準確率。
深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經(jīng)網(wǎng)絡,它模仿人腦的機制來解釋數(shù)據(jù),例如,圖像,聲音和文本。隨著深度學習方法在圖像處理和語音識別方向的成功應用,越來越多的深度學習的方法也被應用于自然語言處理方向。Bengio等[3]2003年提出用神經(jīng)網(wǎng)絡構建二元語言模型的方法。隨后,Ronan Collobert和Jason Weston[4]于2008年推出SENNA系統(tǒng),使用詞向量方法去完成自然語言處理中的各種任務,例如,詞性標注、命名實體識別、短語識別、語義角色標注等。Andriy Mnih和Geoffrey Hinton于2008年提出一種層次的思想訓練語言模型[5],Mikolov[6-8]最終使用Log-Bilinear模型成功將深度學習的模型降低到可接受范圍內(nèi),并隨后在谷歌推出word2vec將詞語轉換成詞向量的工具[9]。Socher[10]于2012年提出基于遞歸自編碼器(Recursive AutoEncoder , RAE)的樹回歸模型用來分析句子的情感傾向性,但該模型無法準確捕獲文本中的情感極性轉移現(xiàn)象,本文采用RAE這種深度學習模型,引入詞語間前后的關聯(lián)性對其進行改進使得更適合于中文微博情感分析任務。
情感分析自從2002年由Bo Pang提出之后,獲得了很大程度的關注,特別是在在線評論的情感傾向性分析上獲得了很大的發(fā)展。本文主要關注無監(jiān)督的情感分析方法,由于不需要大量標注語料,無監(jiān)督情感分析方法一直受到許多研究者的青睞,但同時效果也低于有監(jiān)督的情感分析方法。Turney[11]首次提出基于種子詞(excellent,poor)的非監(jiān)督學習方法,使用“excellent”和“poor”兩個種子詞與未知詞在搜索網(wǎng)頁中的互信息來計算未知詞的情感極性,并用以計算整個文本的情感極性。后續(xù)的非監(jiān)督情感分析方法大都是基于生成或已有的情感詞典或者相關資源進行情感分析。例如,Kennedy和Inkpen[12]考慮文本中詞的極性轉移關系并基于種子詞集合進行詞計數(shù)決定情感傾向。朱嫣嵐[13]等人將一組已知極性的詞語集合作為種子,基于HowNet對未知詞語與種子詞進行語義計算,從而判別未知詞的極性。Lin等[14]采用LSM模型、JST模型、Reverse-JST模型構建了三種無監(jiān)督的情感分析系統(tǒng)。但是由于深層情感分析必然涉及到語義的分析,以及文本中情感轉移現(xiàn)象的經(jīng)常出現(xiàn),所以基于深層語義的情感分析效果并不理想,本文針對中文文本中經(jīng)常出現(xiàn)的情感轉移現(xiàn)象提出情感極性轉移模型,提高了深層語義情感分析的分析效果。
為了實現(xiàn)用于微博情感分析的深度學習模型,本文提出一個基于RAE的情感極性轉移模型。該模型首先將文本數(shù)據(jù)轉為低維實數(shù)向量表示,建立表示文本特征的矩陣,然后將其作為基于RAE的情感極性轉移模型的輸入,最后使用LBFGS算法多次迭代生成最終的模型。該模型可對低維實數(shù)向量表示的文本進行情感分類輸出其情感極性。
不同于傳統(tǒng)的詞袋模型,在使用神經(jīng)網(wǎng)絡解決自然語言處理問題時,通常采用一個低維的實數(shù)向量來表示詞語以避免數(shù)據(jù)維數(shù)災難[3-4]。例如,使用向量[0.3 0.1 0.6]T表示“深度”,向量[0.2 0.5 0.7]T表示“學習”。然后將這些實數(shù)向量作為神經(jīng)網(wǎng)絡的輸入。通常情況下,將每一個詞語映射到n維實數(shù)向量空間上,即x∈n,將這些向量堆放在一起構成一個詞向量矩陣L∈n×|V|,其中|V|是詞表的大小。給定句子c[1:n],它包含n個詞ci,1≤i≤n。其中ci的特征向量為矩陣L的第ki列,可表示為式(1)。
其中eki∈|V|是|V|中的第ki個單位向量(除第ki個分量為1外其他分量均為0)。這樣該查詢操作可視為一個簡單的映射層。
自編碼的目的是學習輸入數(shù)據(jù)中隱含著的特定結構,本部分將具體介紹如何使用遞歸自編碼獲取非葉子結點的低維向量表示。例如,“深度”的向量表示為[0.3 0.1 0.6]T,“學習”的向量表示為[0.2 0.5 0.7]T,那么該如何表示“深度 學習”呢?假定“深度 學習”是“深度”、“學習”的父節(jié)點p,“深度”是第一個子節(jié)點c1,“學習”是第二個子節(jié)點c2,那么p可由函數(shù)f從c1、c2映射得到,如式(2)所示。
其中[c1;c2]∈2n,由向量c1、c2聯(lián)接得到;w(1)∈n×2n是一個參數(shù)矩陣;b(1)∈n為偏置項;編碼器函數(shù)f(·)在這里選取雙曲正切函數(shù)tanh(·)。
按照公式(2)可以得到父節(jié)點的n維向量表示[0.8 0.2 0.7]T。對整個句子遞歸使用這種神經(jīng)網(wǎng)絡結構,使用貪心算法每次選取兩個節(jié)點結合之后父節(jié)點得分最高的節(jié)點組合,最終可以得到整個句子的n維向量表示,如圖1所示。
圖1 遞歸自編碼結構圖,圓形節(jié)點表示原始節(jié)點,矩形節(jié)點表示重建節(jié)點
為了驗證父節(jié)點p對子節(jié)點c1、c2的表示度,在父節(jié)點p上建立一個重建層,重建兩個子節(jié)點為式(3)。
這種神經(jīng)網(wǎng)絡被稱為遞歸自編碼[10],圖1展示了應用于一個二叉樹的遞歸自編碼網(wǎng)絡,其中圓形節(jié)點表示原始節(jié)點,矩形節(jié)點表示重建節(jié)點。對二叉樹的每一個節(jié)點使用自編碼器,那么該二叉樹最終可由一個三元組(例如,(p1→c1c2),p是父節(jié)點,c1、c2是子節(jié)點)集合表示。圖1中的二叉樹可表示為: (y1→x1x2),(y2→y1x3)和(y3→y2x4)。
仔細分析發(fā)現(xiàn),按照上面的自編碼方式進行訓練可能出現(xiàn)兩個問題: (1) 節(jié)點的向量表示為零向量,這會導致該節(jié)點的重建誤差Erec為零,事實上這是沒有意義的; (2)節(jié)點c1和節(jié)點c2可能包含的葉子節(jié)點數(shù)有很大差異,計算重建誤差時會導致不平衡。
為了解決問題(1),可以使用單位向量來表示節(jié)點p(p表示任一節(jié)點)即式(5)。
通過對父節(jié)點的向量進行正則化,可以有效避免優(yōu)化算法因最小化重建誤差而導致父節(jié)點向量為零向量。
為了解決問題(2),可以在計算重建誤差Erec時,為每個子節(jié)點添加權重,權重的設定根據(jù)每個子節(jié)點所包含葉子節(jié)點數(shù)計算,假定節(jié)點c1的葉子節(jié)點數(shù)為n1,節(jié)點x2的葉子節(jié)點數(shù)為c2,重新定義重建誤差Erec,如式(6)所示。
通過節(jié)點權重的添加,可以使得計算重建誤差時更多地偏向子節(jié)點數(shù)目更多的節(jié)點,從而達到平衡誤差的效果。
使用遞歸自編碼可以得到二叉樹中每個節(jié)點的n維向量表示,根節(jié)點則是整個句子的n維向量表示。為了得到句子的情感傾向性,可以再加一層輸出層如式(7)所示。
其中w(3)∈k×n(k是情感標簽的數(shù)量,本文僅關注負向和正向兩類,即k=2);b(3)∈k為偏置項;激活函數(shù)μ(·)選擇softmax(·)函數(shù)。如圖2所示,其中三角形節(jié)點表示輸出層,輸出句子的情感傾向性。
圖2 加入輸出層的遞歸自編碼模型,其中三角形節(jié)點表示輸出層
定義情感標注集Τ={正,負},這樣得到的s(p;θ)中的每一個分量si就對應該句的情感傾向為Ti的得分。為了驗證該得分的準確性,采用交叉熵作為代價函數(shù)(假定ti表示句子情感傾向性為Ti的真實概率),如式(8)所示。
對于情感分析這樣的自然語言處理任務來說,一個句子中的各個詞語之間存在很強的依賴性。例如,“不 喜歡”這樣的子句,“不”的情感傾向為負,“喜歡”的情感傾向為正,而“不 喜歡”子句的情感傾向性顯然為負。當連續(xù)兩個詞語的情感標簽由Τ中的第i個ti變?yōu)榈趈個tj時,引入相應的轉換分數(shù)Aij(Aij∈{A01,A00,A10,A11}),如圖3所示。
圖3 加入情感轉換因子的遞歸自編碼模型,Aij為x1到x2的極性轉換因子
根據(jù)3.2節(jié)得到的重建誤差函數(shù)和3.3節(jié)得到的標簽誤差函數(shù),可以得到情感極性轉移模型的代價函數(shù)為(數(shù)據(jù)集假定為S,每個數(shù)據(jù)對象包含一個句子c和對應的情感標簽t)式(9)。
(9)
其中,E(c,t;θ)=αErec+(1-α)Ece(α為可調參數(shù)),λ也為可調參數(shù)。具體模型的算法描述:
訓練情感分析模型輸入:訓練語料S及其對應標簽t輸出:θ={w(1),w(2),w(3),A,b(2),b(3)}1)使用高斯分布初始化訓練語料的詞向量表示;2)while不收斂do?J=0forall∈Sdo使用貪心算法生成句子二叉樹結構計算?Ji=?J(s,t)/?Θ更新?J=?J+?Jiendfor 更新Θ=1N?J+λθendwhile
為了保證結果的可靠性,本文選用兩個數(shù)據(jù)集來驗證模型的有效性。(1)COAE2014微博數(shù)據(jù)集,采用人工標注的方式,標注了10 000條數(shù)據(jù),帶有情感色彩的有2 740句,其中帶有消極情感的有1 608句,帶有積極情感的有1 132句。(2)COAE2014微博數(shù)據(jù)集完整版,共計40 000條數(shù)據(jù),其中包含已標注過的10 000條數(shù)據(jù)。
表1 COAE2014數(shù)據(jù)集樣例
本文共設計3個實驗來驗證情感極性轉移模型的有效性。實驗一: 可調參數(shù)選擇,用來確定可調參數(shù)對算法的影響并選擇一組最優(yōu)的參數(shù);實驗二: COAE2014數(shù)據(jù)集封閉測試,用來對比在相同實驗集上未使用其他人工標注數(shù)據(jù)的情感極性轉移模型與其他傳統(tǒng)方法的效果;實驗三: 對比實驗,比較本文提出的改進模型與RAE模型的優(yōu)劣。
本實驗用來測試可調參數(shù)(具體包括算法迭代次數(shù)、正則懲罰項系數(shù)、重建誤差權重),對算法性能的影響。實驗數(shù)據(jù)采用人工標注2 740句帶有感情色彩的句子進行十折交叉驗證(即隨機抽取2 466個句子作為訓練集,274個句子作為開發(fā)集)。
圖4 迭代次數(shù)、懲罰項系數(shù)和重建誤差權重對算法的影響
通過實驗可以發(fā)現(xiàn),隨著迭代次數(shù)的增加模型對訓練數(shù)據(jù)的擬合越來越好,F(xiàn)值可以達到95%,帶隨之而來的就是過擬合問題,導致模型的泛化能力下降,對比發(fā)現(xiàn)當?shù)螖?shù)為10次數(shù)在訓練數(shù)據(jù)和測試數(shù)據(jù)上的F值都能達到80%左右。觀察懲罰項系數(shù)對算法性能的影響曲線可知: 當懲罰項系數(shù)為0.001時,對于訓練數(shù)據(jù)和測試數(shù)據(jù)均可以達到較好的結果,隨著懲罰系數(shù)的減小,過擬合問題越來越嚴重(測試數(shù)據(jù)準確率下降)。根據(jù)圖4結果,可以發(fā)現(xiàn),當重建誤差占誤差比20%時算法的性能達到最好。
本實驗數(shù)據(jù)采用COAE2014微博數(shù)據(jù)集完整版(與實驗一的訓練集、開發(fā)集不同,該數(shù)據(jù)集共計40 000條數(shù)據(jù),包含實驗一采用的2 740句數(shù)據(jù))作為測試集,進行完全封閉實驗,不采用任何評測外數(shù)據(jù)集,并與其他應用于該評測數(shù)據(jù)集的結果做比較。
圖5 比較不同系統(tǒng)在COAE數(shù)據(jù)集上的性能
SA為本文系統(tǒng),與COAE2014上其他系統(tǒng)相比,在準確率上均與最好水平接近,且通過分層訓練模型大大降低了深度學習的訓練時間復雜度,達到了可以應用的水平。
本實驗選用除標注數(shù)據(jù)外的30 000條數(shù)據(jù)作為測試數(shù)據(jù),在實驗數(shù)據(jù)上分別使用遞歸自編碼模型和情感極性轉移模型,對比情感極性轉移模型相對于傳統(tǒng)遞歸自編碼模型的優(yōu)劣。
表2 可調參數(shù)的設置
按照表2設定可調參數(shù),在相同條件下對比情感極性轉移模型相對于傳統(tǒng)遞歸自編碼模型,結果如表3所示。
表3 兩個模型對比結果
通過對比,發(fā)現(xiàn)在加入情感極性轉移因子后,該模型明顯有了較大程度的提升。因為句子中的情感發(fā)生轉移在中文句子中是很常見的,而傳統(tǒng)RAE模型沒有考慮該因素。
本文提出了一種基于RAE的情感極性轉移模型,在不增加神經(jīng)網(wǎng)絡復雜度的前提下,提高了模型對中文微博情感分析的準確性,算法的表現(xiàn)已經(jīng)很接近當前采用許多手工標注特征的傳統(tǒng)算法的性能。
深度學習方法在情感分析上的研究還存在很多問題需要進一步探討。例如,從上面的實驗結果可以看出,神經(jīng)網(wǎng)絡模型由于參數(shù)數(shù)量較多在訓練模型時很容易出現(xiàn)過擬合的情況。下一步工作將深入研究如何降低模型的結構風險,從而尋找到更適合情感分析的深度學習算法。
[1] B. Pang, L. Lee. Seeing stars: Exploiting class relationships for sentiment categorization with respect to rating scales[C]Proceedings of the ACL, 2005: 115-124.
[2] 唐慧豐,譚松波,程學旗.基于監(jiān)督學習的中文情感分類技術比較研究[J].中文信息學報 2007, 6(2):88-94
[3] Y. Bengio, R. Ducharme, P. Vincent, et al. A neural probabilistic language model[J]. Journal of Machine Learning Research, 2003,3:1137-1155.
[4] Collobert R, Weston J. A unified architecture for natural language processing: Deep neural networks with multitask learning[C]//Proceedings of the 25th international conference on Machine learning. ACM, 2008: 160-167.
[5] Mnih A, Hinton G E. A Scalable Hierarchical Distributed Language Model[C]//Proceedings of NIPS. 2008: 1081-1088.
[6] Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Proceedings of INTERSPEECH. 2010: 1045-1048.
[7] Mikolov T, Kombrink S, Burget L, et al. Extensions of recurrent neural network language model[C]//Proceedings of Acoustics, Speech and Signal Processing (ICASSP), 2011 IEEE International Conference on. IEEE, 2011: 5528-5531.
[8] Kombrink S, Mikolov T, Karafiát M, et al. Recurrent Neural Network Based Language Modeling in Meeting Recognition[C]//Proceedings of INTERSPEECH. 2011: 2877-2880.
[9] Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013.
[10] Richard Socher, Jeffrey Pennington, Eric Huang, et al. Manning Conference onEmpirical Methods in Natural Language Processing (EMNLP 2011, Oral ) Semi-Supervised Recursive Autoencoders for Predicting Sentiment Distributions.2011.
[11] Turney P D. Thumbs up or thumbs down?: semantic orientation applied to unsupervised classification of reviews[C]//Proceedings of the 40th annual meeting on association for computational linguistics. Association for Computational Linguistics, 2002: 417-424.
[12] Kennedy A, Inkpen D. Sentiment classification of movie reviews using contextual valence shifters[J]. Computational Intelligence, 2006, 22(2): 110-125.
[13] 朱嫣嵐, 閔錦, 周雅倩等. 基于 HowNet 的詞匯語義傾向計算 [J]. 中文信息學報, 2006, 20(1): 14-20.
[14] Lin C, He Y, Everson R. A comparative study of Bayesian models for unsupervised sentiment detection[C]//Proceedings of the Fourteenth Conference on Computational Natural Language Learning. Association for computational linguistics, 2010: 144-152.