劉龍飛,楊 亮,張紹武,林鴻飛
(大連理工大學信息檢索實驗室,遼寧大連116024)
隨著社交網(wǎng)絡的不斷發(fā)展,人們更愿意通過微博、博客社區(qū)來表達自己的觀點,發(fā)表對熱點事件的評論,從而使通過微博、博客、影評以及產(chǎn)品評價等來了解社交網(wǎng)絡用戶的情感傾向得到了學術界的廣泛關注。根據(jù)微博內(nèi)容進行情感傾向性分析是一個具有挑戰(zhàn)性的任務,近年來引發(fā)了學者極大的興趣[1]。
目前已有研究所采用的方法大多數(shù)都基于詞袋模型,而這種模型無法捕獲到很多有關情感傾向性分析的語言現(xiàn)象特征。例如,“反法西斯聯(lián)盟擊潰了法西斯”和“法西斯擊潰了反法西斯聯(lián)盟”這兩個詞組擁有相同的詞袋模型表示方法,而前一個帶有積極的感情色彩,后一個帶有消極的感情色彩。除此之外,還有很多研究者使用人工標注的數(shù)據(jù)(情感詞典及句法分析等),雖然采用這些方法可以有效地提高情感分析的準確性但由于需要較多的人工標注數(shù)據(jù)從而限制了這些方法在其他領域以及跨語言的推廣[2]。卷積神經(jīng)網(wǎng)絡模型可以從大量未標注的文本中學習到先驗知識,避免依賴于具體任務的人工特征設計,可以在一定程度上解決短文本上下文信息有限的問題。
要提取微博文本特征,目前主要做法是對微博進行分詞,匹配情感詞典,選用其中的情感詞或者情感的相關得分作為特征,但是微博屬于短文本范疇,噪聲大、新詞多、縮寫頻繁、有自己的固定搭配、上下文信息有限,對微博做分詞歧義明顯,往往得到的是不好的切分。例如,“我發(fā)現(xiàn)了一個高大上網(wǎng)站”,在該句中,“高大上網(wǎng)站”如果使用傳統(tǒng)分詞技術,會被切分為“高大/上/網(wǎng)站”或者“高大/上網(wǎng)/站”,這樣的切分無法體現(xiàn)句子的正確語義,甚至后一種切分還將“網(wǎng)站”切分導致丟失評價對象[3]。為了解決上述問題,本文引入字級別特征,將單個字作為輸入特征,通過多個擁有不同大小卷積核的并行卷積層學習微博文本特征。
本文訓練了一個包含多個并行卷積層的卷積神經(jīng)網(wǎng)絡,不同卷積層擁有大小不同的卷積核。本文分別將字級別特征和詞級別特征作為原始特征進行了實驗,利用字級別特征的卷積神經(jīng)網(wǎng)絡取得了95.42%的準確率,利用詞級別特征的卷積神經(jīng)網(wǎng)絡取得了94.65%的準確率。實驗表明,對于中文微博語料而言,利用卷積神經(jīng)網(wǎng)絡進行微博情感傾向性分析是有效的,且將字級別詞向量作為原始特征會好于將詞級別詞向量作為原始特征。
本文的結構如下:第二章介紹了一些相關工作。第三章詳細介紹了本文使用的卷積神經(jīng)網(wǎng)絡結構。第四章詳細說明了本文的實驗設定,介紹了實驗結果,并對實驗結果進行了詳細的討論。第五章是文章的總結。
卷積神經(jīng)網(wǎng)絡利用卷積層可以學習局部特征[4]。在自然語言處理中,CNN模型在很多方面取得了很多非常好的成績,例如語法解析[5]、搜索詞檢索[6]、句子建模[7]及其他傳統(tǒng)的自然語言工作[8]。Cicero dos Santos等人[9]提出了CharSCNN模型,兩個卷積層分別學習詞語的構造特征和句子的語義特征。
本文與Cicero dos Santos工作的不同之處在于,本文分別利用字級別向量和詞級別向量進行實驗,而沒有學習詞語的構造特征。本文與Cicero dos Santos工作的另一個不同之處在于,Cicero dos Santos在利用卷積層學習句子特征時,使用了大小單一的卷積核,而不同大小的卷積核獲取的特征是不同的,本文參考了Kim等人的工作[10],利用多個不同大小的卷積核學習句子級別的特征向量,然后對特征向量進行串接,構造新的句子特征向量。
情感分析自從2002年由Bo Pang提出之后,獲得了很大程度的關注,特別是在線評論的情感傾向性分析上獲得了很大的發(fā)展。由于不需要大量標注語料,無監(jiān)督情感分析方法一直受到許多研究者的青睞,但同時效果也低于有監(jiān)督的情感分析方法。Turney[11]首次提出基于種子詞(excellent,poor)的非監(jiān)督學習方法,使用“excellent”和“poor”兩個種子詞與未知詞在搜索網(wǎng)頁中的互信息來計算未知詞的情感極性,并用以計算整個文本的情感極性。后續(xù)的非監(jiān)督情感分析方法大都是基于生成或已有的情感詞典或者相關資源進行情感分析。羅毅[3]等人通過構建二級情感詞典,對不同級別情感詞作不同增強,使用N-gram獲取文本特征,利用構建的情感詞典進行微博情感傾向性分析。情感詞典的構建過程需要大量的人工標注,在跨領域應用方面有很大的限制。使用N-gram模型,當N較大時,會導致特征維度太大而難以訓練。包含多個并行卷積層的卷積神經(jīng)網(wǎng)絡通過卷積和池化操作,既充分利用了N-gram的特征,又不會造成維度災難。
字級別特征:以單個字作為句子的基本組成單位,對單個字訓練詞向量。
詞級別特征:利用分詞器對句子進行分詞,以詞(包含長度為1的詞)作為句子的基本組成單位,對單個詞訓練詞向量。
以“中國足球加油!”為例,字級別的句子組成為“中+國+足+球+加+油+!”,詞級別的句子組成為“中國+足球+加油+!”。
給定包含N個基本單位{r1,r2,…rN}的句子x,本文接下來的工作是計算其句子級別的表示rsentx。字級別句子的基本單位是單個的字,詞級別句子的基本單位是分詞之后的詞。在計算句子級別的特征時,會遇到兩個主要的問題:不同句子的長度不同,重要的信息會出現(xiàn)在句子中的任意位置。利用卷積層對句子建立模型,計算句子級別的特征,可以解決上面提到的兩個問題。通過卷積操作可以得到句子中每個基本單位(字或者詞語)的局部特征,然后對得到的局部特征進行最大化操作,從而得到一個固定長度的句子特征向量。
在包含N個基本單位{r1,r2,…rN}的句子x中,卷積層對每個大小為k的連續(xù)窗口進行矩陣向量操作。本文假定向量zn∈?dk是以句子中第n個基本單位為中心的前后各(k-1)/2個基本單位的詞向量的串接,其中d為句子中基本單位向量化表示后向量的長度。
卷積層計算計算句子特征向量rsentx∈?clu的第j個元素的過程如式(2)所示。
其中,W ∈?clu×dk是該卷積層的權重矩陣。如圖1所示,用該權重矩陣計算給定句子中每個基本單位(字或詞)的窗口大小為k的局部信息,對句子中所有基本單位的窗口取最大值,就抽取了一個在窗口大小為k的條件下長度為clu的句子特征向量。圖1中窗口大小k為3。
圖1 基于卷積方法抽取句子級別特征
卷積窗口的大小k不同,獲取的局部信息也不同。因此,本文利用并行的多個卷積層,學習不同N-gram的信息。每個卷積層經(jīng)過最大池化操作后都會生成一個固定長度的句子特征向量,本文將所有卷積層生成的句子特征向量進行串接,得到一個新的句子特征向量[9]。包含多個不同窗口的并行卷積層的架構如圖2所示。
圖2 通過基于不同窗口大小的卷積方法利用多個不同大小的卷積核抽取句子級別特征
其中,W1i,b1i是模型需要學習的參數(shù),卷積單 元的數(shù)量是由用戶指定的超參數(shù)。上下文窗口的大小ki是由用戶指定的超參數(shù)。max(.)表示最大化操作。圖中W11用來學習窗口大小為3的給定句子的特征向量。
如圖2所示,本文在卷積層之后,加入了ReLU層,將ReLU作為激活函數(shù)。通過加入ReLU層可以加速隨機梯度下降的收斂速度[10]。將所有窗口生成的句子特征向量串接后得到的新特征向量如下:
其中,⊕表示串接操作,rsenti表示由上下文窗口大小為ki的卷積核通過卷積核最大化操作之后得到的句子特征向量。
最后,表示句子x的全局特征的向量rsentx被傳遞給包含兩個全連接層的神經(jīng)網(wǎng)絡進行處理,計算該句子屬于每個情感標簽τ∈T的得分,如式(4)所示。
其中,矩陣W2∈,矩陣W3∈,向量b2,向量是模型需要學習的參數(shù)。激活函數(shù)h(.)使用的正切函數(shù)。隱藏層單元數(shù)目hlu是有用戶指定的超參數(shù)。
微博情感傾向性分析本質(zhì)上是一個基于主題的文本分類問題,將微博短文本做兩類分類,最終歸納到正面和負面兩種情感類別中。
本文的模型是通過最小化訓練集D上的負對數(shù)似然函數(shù)(negative log-likelihood)進行訓練。給定一個句子x,參數(shù)集合為θ的模型對每個情感標簽τ∈T計算一個得分sθ(x)τ。為了將這些得分轉換為給定句子的情感標簽和模型參數(shù)集θ的條件概率分布,我們在所有簽情感標簽τ∈T的得分進行Softmax操作:
對上述公式取對數(shù):
本文使用隨機梯度下降(SGD)最小化負似然函數(shù):
其中,x表示訓練預料D的一條句子,y表示該句子的情感標簽。
本文采用COAE2014任務4微博數(shù)據(jù)集(表1),該數(shù)據(jù)集共40 000條數(shù)據(jù),其中官方公布了5 000條微博的極性。由于沒有標準的訓練集和測試集,本文利用該5 000條數(shù)據(jù),進行10倍交叉驗證。利用數(shù)據(jù)集提供的40 000條數(shù)據(jù)訓練詞向量。
表1 COAE2014數(shù)據(jù)樣例
詞向量在卷積神經(jīng)網(wǎng)絡模型中具有非常重要的作用。詞向量在訓練過程中,可以獲取句法和語義信息,這在情感分析中是至關重要的[13]。最近的一些工作表明通過使用無監(jiān)督學習得到的詞向量,可以極大地提高模型的準確率[14-16]。在本文的實驗中利用word2vec工具[17],進行無監(jiān)督的詞向量學習。word2vec實現(xiàn)了CBOW(continuous bag-ofwords)和SG(skip-gram)兩種結構,用于計算詞語的向量表示。
4.2.1 字級別的詞向量
本文以字作為句子的基本單位,為每個字訓練一個詞向量。在運行word2vec工具過程中,本文設定出現(xiàn)次數(shù)超過五次的字會被加入字典中。最終得到了一個包含5 200條目的字典。對于沒有出現(xiàn)在字典中的字符的詞向量會被隨機初始化。訓練過程中的參數(shù)設置如表2所示。
4.2.2 詞級別的詞向量
本文首先利用分詞工具對語料進行分詞。分詞之后,以詞作為句子的基本單位,為每個詞訓練一個詞向量。在運行word2vec工具過程中,本文設定出現(xiàn)次數(shù)超過五次的詞會被加入字典中。最終得到了一個包含19 020條目的字典。對于沒有出現(xiàn)在字典中的詞語的詞向量會被隨機初始化。訓練過程中的參數(shù)設置如表2所示。
表2 字級別和詞級別word2vec可調(diào)參數(shù)的設置
4.2.3 超參數(shù)
本文對多個卷積神經(jīng)網(wǎng)絡模型進行了實驗。訓練過程中采用Adadelta更新規(guī)則[18],對亂序的微批次樣本中進行隨機梯度下降(SGD)。模型的其他參數(shù)如表3所示。
表3 模型參數(shù)設置
本文與傳統(tǒng)的詞袋模型進行了對比,將N-gram詞袋向量作為輸入,利用線性核SVM進行了微博情感傾向性分類。本文對三種類型的N-gram詞袋模型進行了測試:bow1 N∈{1},bow2 N∈{1,2},bow3 N∈{1,2,3}。其中,bow1是傳統(tǒng)的詞袋向量,bow2向量中的每一個元素表示uni-gram或bi-gram特征,而bow3向量中的每一個元素表示uni-gram、bi-gram或者tri-gram特征,其中的特征值使用TF-IDF方法計算,并使用了libSVM進行SVM的實驗[19]。
本文對多個模型進行了實驗。
·SVM bow1:向量特征是uni-gram特征,利用SVM分類。
·SVM bow2:向量特征是uni-gram和bigram特征,利用SVM分類。
·SVM bow3:向量特征是uni-gram、bi-gram和tri-gram特征,利用SVM分類。
·CNN-word-rand-static:將詞級別的詞向量進行隨機初始化。在實驗過程中,詞向量保持不變,只學習模型的其他參數(shù)。
·CNN-word-rand-non-static:將詞級別的詞向量進行隨機初始化。在實驗過程中,詞向量會被微調(diào),同時學習模型的其他參數(shù)。
·CNN-word-static:利用word2vec訓練出的詞級別的詞向量進行試驗。在實驗過程中,詞向量保持不變,只學習模型的其他參數(shù)。
·CNN-word-non-static:利用word2vec訓練出的詞級別的詞向量進行試驗。在實驗過程中,詞向量會被微調(diào),同時學習模型的其他參數(shù)。
·CNN-character-static:利用word2vec訓練出的字級別的詞向量進行實驗。在實驗過程中,詞向量保持不變,只學習模型的其他參數(shù)。
·CNN-character-non-static:利用word2vec訓練出的字級別的詞向量進行試驗。在實驗過程中,詞向量會被微調(diào),同時學習模型的其他參數(shù)。
各個模型的實驗結果如表4所示。
表4 不同模型的準確率
4.4.1 Random vs.word2vec
通過比較CNN-word-rand-static(91.94%)和CNN-word-static(93.80%)的準確率,可以發(fā)現(xiàn),利用預訓練的詞向量作為原始輸入進行情感傾向性分析的準確率要高于利用隨機初始化的詞向量作為原始輸入進行的情感傾向性分析的準確率。原因在于利用word2vec工具訓練出的詞向量包含了上下文語義信息,因此在進行句子情感分析時可以得到更好的效果。實驗表明,利用卷積神經(jīng)網(wǎng)絡模型進行自然語言處理時,無監(jiān)督方式預訓練的詞向量是十分重要的。
4.4.2 Static vs.Non-static
通過比較CNN-character-static(94.29%)和CNN-character-non-static(95.42%),CNN-wordstatic(93.80%)和CNN-word-non-static(94.65%),CNN-word-rand-static(91.94%)和CNN-word-randnon-static(93.06%)的準確率,可以發(fā)現(xiàn),在卷積神經(jīng)網(wǎng)絡的訓練過程中對預訓練的詞向量進行微調(diào),可以進一步提升模型的準確率。實驗表明,在模型訓練過程中對詞向量進行微調(diào),可以讓預訓練的詞向量更加適應于專門的任務,從而進一步提高準確率。
4.4.3 Character-level vs.Word-level
通過比較CNN-word-static(93.80%)和CNN-character-static(94.29%),CNN-word-non-static(94.65%)和CNN-character-non-static(95.42%)的準確率,可以發(fā)現(xiàn),使用字級別詞向量作為原始特征要好于使用詞級別詞向量作為原始特征。實驗表明,對于中文語料而言,使用字級別詞向量作為原始特征會好于使用詞級別詞向量作為原始特征。
結合實驗結果及分析原因主要在于:字級別特征的粒度比詞級別的粒度小,字級別詞向量相比于詞級別詞向量可以學習到更加具體的特征。
表5展示了利用word2vec工具訓練的字級別詞向量相加得到的詞級別詞向量相似度與直接用word2vec工具訓練得到的詞級別詞向量相似度之間的比較。通過對比可以得出利用字級別詞向量相加得到的詞級別詞向量之間的相似度要高于直接用word2vec工具訓練得到的詞級別詞向量之間的相似度。
但是也存在一些詞語組合不存在這種情況。例如,“三元”與“牛奶”之間的相似度為0.783,因為“三元”是一個牛奶品牌,所以兩者之間的相似度較高,而“三”+“元”與“?!保澳獭敝g的相似度要小于0.783。出現(xiàn)這種情況的可能原因是由于語料中關于“三元”的內(nèi)容不多,以至于字級別的詞向量沒有較好地學到相關的信息。
表5 詞向量相似度比較
另一個原因在于:傳統(tǒng)的分詞技術往往對微博造成歧義的切分,例如,“我發(fā)現(xiàn)了一個高大上網(wǎng)站”,在該句中,“高大上網(wǎng)站”如果使用傳統(tǒng)分詞技術,會被切分為“高大/上/網(wǎng)站”或者“高大/上網(wǎng)/站”,這樣的切分無法體現(xiàn)句子的正確語義,甚至后一種切分還將“網(wǎng)站”切分導致丟失評價對象。而將字級別特征作為輸入,通過并行的卷積層可以學習到不同N-gram的信息,例如“高大上”(N=3)、“高大上網(wǎng)站”(N=5)。本文分別用Jieba分詞工具和ICTALAS分詞工具進行分詞,得到了相近的實驗結果。
4.4.4 Bag-of-N-gram vs.CNN
通過比較SVM bow3(92.13%)和CNN-character-non-static(95.42%)的準確率,可以發(fā)現(xiàn),在微博情感傾向性分析中,卷積神經(jīng)網(wǎng)絡模型要優(yōu)于傳統(tǒng)的詞袋模型。通過比較SVM bow1(89.36%)、SVM bow2(91.74%)和SVM bow3(92.31%)的準確率,可以發(fā)現(xiàn),bi-gram和tri-gram特征讓準確率有了明顯提升。而當N較大時,會造成維度災難,導致模型難以訓練。而包含多個并行卷積層的卷積神經(jīng)網(wǎng)絡,可以利用不同大小的卷積核學習不同N-gram的信息,通過池化操作降低維度,從而使得模型的準確率得以提高。
本文探討了利用卷積神經(jīng)網(wǎng)絡進行微博情感傾向性分析的可行性,并利用卷積神經(jīng)網(wǎng)絡模型取得了優(yōu)于傳統(tǒng)詞袋模型的準確率,以此證明了卷積神經(jīng)網(wǎng)絡在微博情感傾向性分析中的可行性。本文利用字級別詞向量及詞級別詞向量的卷積神經(jīng)網(wǎng)絡分別取得了95.42%的準確率和94.65%的準確率,實驗結果可見,對于中文微博語料而言,利用卷積神經(jīng)網(wǎng)絡進行微博情感傾向性分析是有效的,且使用字級別的詞向量作為原始特征會好于使用詞級別的詞向量作為原始特征。
[1] Pang B,Lee L.Seeing stars:Exploiting class relationships for sentiment categorization with respect to rating scales[C]//Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics.Association for Computational Linguistics,2005:115-124.
[2] 梁軍,柴玉梅,原慧斌,等.基于深度學習的微博情感分析[J].中文信息學報,2014,28(5):155-161.
[3] 羅毅,李利,譚松波,等.基于中文微博語料的情感傾向性分析[J].山東大學學報(理學版),2014,49(11):1-7.
[4] LeCun Y,Bottou L,Bengio Y,et al.Gradient-based learning applied to document recognition[C]//Proceedings of the IEEE,1998,86(11):2278-2324.
[5] Yih W,He X,Meek C.Semantic parsing for single-relation question answering[C]//Proceedings of ACL 2014.
[6] Shen Y,He X,Gao J,et al.Learning semantic representations using convolutional neural networks for web search[C]//Proceedings of the companion publication of the 23rd international conference on World wide web companion.International World Wide Web Conferences Steering Committee,2014:373-374.
[7] Blunsom P,Grefenstette E,Kalchbrenner N.A convolutional neural network for modelling sentences[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics.2014.
[8] Collobert R,Weston J,Bottou L,et al.Natural language processing(almost)from scratch[J].The Journal of Machine Learning Research,2011,12:2493-2537.
[9] dos Santos C N,Gatti M.Deep convolutional neural networks for sentiment analysis of short texts[C]//Proceedings of the 25th International Conference on Computational Linguistics(COLING).Dublin,Ire-land.2014.
[10] Kim Y.Convolutional neural networks for sentence classification[C]//Proceedings of the EMNLP,2014.
[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] Krizhevsky A,Sutskever I,Hinton G E.Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems.2012:1097-1105.
[13] Collobert R.Deep learning for efficient discriminative parsing[C]//Proceedings of the International Conference on Artificial Intelligence and Statistics.2011(EPFL-CONF-192374).
[14] Luong M T,Socher R,Manning C D.Better word representations with recursive neural networks for morphology[C]//Proceedings of the CoNLL-2013,2013,104.
[15] Zheng X,Chen H,Xu T.Deep Learning for Chinese Word Segmentation and POS Tagging[C]//Proceedings of the EMNLP.2013:647-657.
[16] Socher R,Bauer J,Manning C D,et al.Parsing with compositional vector grammars[C]//Proceedings of the ACL conference.2013.
[17] Mikolov T,Sutskever I,Chen K,et al.Distributed representations of words and phrases and their compositionality[C]//Proceedings of the Advances in Neural Information Processing Systems.2013:3111-3119.
[18] Zeiler M D.ADADELTA:an adaptive learning rate method[J].arXiv preprint arXiv:1212.5701,2012.
[19] Chang C C,Lin C J.LIBSVM:A library for support vector machines[J].ACM Transactions on Intelligent Systems and Technology(TIST),2011,2(3):27.