馮 多 林 政 付 鵬 王偉平
1(中國科學(xué)院大學(xué) 北京 100049)2(中國科學(xué)院信息工程研究所 北京 100093)
基于卷積神經(jīng)網(wǎng)絡(luò)的中文微博情感分類
馮 多1,2林 政2付 鵬1,2王偉平2
1(中國科學(xué)院大學(xué) 北京 100049)2(中國科學(xué)院信息工程研究所 北京 100093)
微博是互聯(lián)網(wǎng)輿論演化的重要平臺,對微博進(jìn)行情感分析,有助于及時(shí)掌握社會熱點(diǎn)和輿論動態(tài)。由于微博數(shù)據(jù)內(nèi)容簡短、特征稀疏、富含新詞等特征,微博情感分類依然是一個(gè)較難的任務(wù)。傳統(tǒng)的文本情感分類方法主要基于情感詞典或者機(jī)器學(xué)習(xí)等,但這些方法存在數(shù)據(jù)稀疏的問題,而且忽略了詞的語義、語序等信息。為了解決上述問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的中文微博情感分類模型CNNSC,實(shí)驗(yàn)表明相比目前的主流方法,CNNSC的準(zhǔn)確率提高了3.4%。
情感分類 卷積神經(jīng)網(wǎng)絡(luò) 微博分類
情感分類是一種重要的信息組織方式,研究的是自動挖掘和分析文本中的觀點(diǎn)、看法、情緒和喜惡等主觀信息的方法。在商業(yè)領(lǐng)域,情感分類可用于產(chǎn)品評論挖掘,幫助消費(fèi)者做出購買決定,幫助生產(chǎn)者獲得產(chǎn)品和服務(wù)的改進(jìn)意見;在文化領(lǐng)域,情感分類可以實(shí)現(xiàn)影評、書評等資源的自動分類,便于用戶快速瀏覽各方的評論意見,減少觀影或者閱讀時(shí)的盲目性;從社會管理者的角度出發(fā),情感分類能夠幫助管理者更加及時(shí)地了解公眾對各類管理措施或熱點(diǎn)話題的反饋意見,從而作出相應(yīng)處置,妥善、積極地應(yīng)對網(wǎng)絡(luò)輿情,對于準(zhǔn)確把握社會脈絡(luò),建設(shè)和諧社會有著重要意義。
情感分類研究具有廣泛的應(yīng)用前景,受到了學(xué)術(shù)界和工業(yè)界的普遍關(guān)注。目前,情感分類研究取得了很大的進(jìn)步。傳統(tǒng)的情感分類方法大多數(shù)是基于長文本,大致可以分為有監(jiān)督的機(jī)器學(xué)習(xí)方法和無監(jiān)督的情感詞典方法。然而,中文微博是一種誕生于社交場景的短文本,具有數(shù)據(jù)量大、內(nèi)容簡略、特征稀疏、富含新詞、信息混雜等特征,這使得以往的情感分類方法在處理短文本時(shí),難以保證其分析效果?;跈C(jī)器學(xué)習(xí)的方法受限于稀疏的特征表達(dá),每一個(gè)特征都用一個(gè)高維的稀疏向量進(jìn)行表達(dá),難以判別語義相似的特征;基于詞典的方法受限于人工構(gòu)建情感詞典的代價(jià)和成本,網(wǎng)絡(luò)新詞層出不窮需要不斷更新詞典,除此之外,基于詞典的方法沒有考慮情感詞的上下文信息。
為了解決上述困難問題,本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的中文微博情感分類模型CNNSC。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種特殊的人工神經(jīng)網(wǎng)絡(luò),在圖像識別領(lǐng)域表現(xiàn)出卓越的效果。CNN的卷積與池化操作可以自動抽取良好的特征表達(dá),參數(shù)共享機(jī)制極大降低了模型的訓(xùn)練時(shí)間。本文將其引入中文微博的情感分類,不僅可以解決傳統(tǒng)詞袋模型的數(shù)據(jù)稀疏問題,還進(jìn)一步考慮了詞匯的語義信息以及詞匯之間的語序信息。實(shí)驗(yàn)結(jié)果表明,相比主流方法,本文提出的CNNSC模型提高了中文微博情感分類的正確率。此外,本文還針對中文的特殊性,研究了字、詞等不同的語義單元對CNNSC分類效果的影響。
1.1 情感分類研究
以學(xué)習(xí)方法為標(biāo)準(zhǔn),可以將情感分類分為有監(jiān)督式、無監(jiān)督式及半監(jiān)督式的研究方法。
有監(jiān)督式主要采用機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)情感分類。Pang等[1]通過樸素貝葉斯、最大熵及支持向量機(jī)(SVM)方法分別對影評數(shù)據(jù)進(jìn)行情感分類,取得了不錯(cuò)的效果。Ye等[2]將有監(jiān)督的情感分類方法應(yīng)用到在線游記上,提高了搜索引擎返回游記的準(zhǔn)確率和召回率。無監(jiān)督式方法的數(shù)據(jù)集沒有任何標(biāo)注信息,主要通過先驗(yàn)知識進(jìn)行情感分類。Turney[3]提出了結(jié)合詞性和語法結(jié)構(gòu)的情感分類方法,主要應(yīng)用在評論數(shù)據(jù)集上。Zagibalov 等[4]通過自動選取種子詞實(shí)現(xiàn)了一種無監(jiān)督的情感分類方法,并將其應(yīng)用在中文產(chǎn)品評論數(shù)據(jù)集上。
半監(jiān)督式方法適用于僅有少量標(biāo)注的數(shù)據(jù)集。Dasgupta等[8]首先通過譜分析技術(shù)挖掘出態(tài)度明確無歧義的評論,然后在此基礎(chǔ)上結(jié)合主動學(xué)習(xí)、直推式學(xué)習(xí)等方法對有歧義的評論進(jìn)行分類。Li等[7]提出的半監(jiān)督情感分類模型充分考慮了數(shù)據(jù)集中各個(gè)主題標(biāo)注數(shù)不平衡的問題。
1.2 短文本情感分類研究
相對長文本而言,短文本通常僅包含一個(gè)或幾個(gè)句子,常見的短文本包括手機(jī)短信、聊天記錄、商品短評及微博等。研究短文本的情感分類方法時(shí),考慮到短文本的特征向量稀疏、信息混雜、富含新詞等特征帶來的問題,已有研究工作主要從下述的幾個(gè)方面著手。
降低短文本特征向量的維度。單條短文本篇幅很短,但短文本數(shù)量大,且包含了豐富的口語詞匯,因此短文本數(shù)據(jù)集的特征空間維度極大,而特征向量又十分稀疏,帶來了極大的不確定性。通過如信息增益[9]、互信息[10]、隱語義索引[11]等特征選擇方法可以降低特征向量的維度,缺點(diǎn)是這些降維方法需要計(jì)算維度巨大的矩陣的特征向量或者進(jìn)行頻繁的迭代分析,時(shí)間和空間復(fù)雜度都很高。
對由特征向量構(gòu)成的短文本特征矩陣進(jìn)行擴(kuò)充。這種思路是為了降低特征向量的稀疏性,從而減小對短文本處理的不確定性。Tan等[6]將用戶的社交信息融合到半監(jiān)督式方法中,提高了短文本情感分類的準(zhǔn)確率。Wang等[12]通過聚類方法獲取短文本的上下文對其進(jìn)行擴(kuò)充。
將主題信息融合到對短文本的情感分類中。一種方法是首先對短文本進(jìn)行主題劃分,為每個(gè)主題構(gòu)建特征空間。楊震等[13]首先對短文本進(jìn)行主題劃分,然后對短文本按其所屬主題進(jìn)行相關(guān)的內(nèi)容擴(kuò)充。另一種方法是將主題信息融合到特征向量中,Liu等[26]提出了三種將主題信息融合到特征向量的思路,實(shí)驗(yàn)結(jié)果表明將主題也作為特征參與進(jìn)行訓(xùn)練的方法最優(yōu)。
通過對短文本特征進(jìn)行再劃分,以減少新詞的影響。Socher等[5]將句子中的詞語兩兩合并,遞歸構(gòu)建短語樹,使用短語節(jié)點(diǎn)特征判斷句子情感類別。另一方面,已有一些網(wǎng)絡(luò)新詞挖掘的研究工作[14-15],結(jié)合新詞不斷更新詞典,可以提高短文本情感分類的準(zhǔn)確率。
1.3 基于深度學(xué)習(xí)的情感分類研究
近幾年來,以人工神經(jīng)網(wǎng)絡(luò)為主的深度學(xué)習(xí)方法迅猛發(fā)展,為情感分類提供了新的思路。Glorot等[16]使用深度學(xué)習(xí)方法學(xué)習(xí)提取更具解釋性的文本表達(dá),并將其應(yīng)用在大規(guī)模在線評論的情感分類中,準(zhǔn)確率相比主流方法得到了提高。Zhou等[17]將深度置信網(wǎng)絡(luò)應(yīng)用到半監(jiān)督式的情感分類方法中,首先利用深度置信網(wǎng)絡(luò)學(xué)習(xí)未標(biāo)注的數(shù)據(jù)的類別,再通過監(jiān)督式方法對文本進(jìn)行情感分類。Kim[19]將CNN應(yīng)用到文本分類中的思想,實(shí)現(xiàn)了基于CNN的文本分類模型,實(shí)驗(yàn)結(jié)果表明基于CNN的文本分類方法相比當(dāng)時(shí)最優(yōu)的方法準(zhǔn)確率更高。Johnson等[20]及Zhang等[21]對基于CNN的文本分類方法進(jìn)行了特殊場景下的改良。
目前尚未出現(xiàn)基于CNN的中文微博情感分類相關(guān)研究工作,本文參考Kim[19]提出的模型,提出了基于CNN的中文微博(以下簡稱微博)的情感分類模型CNNSC。其中,引入CNN以充分考慮文本的語序信息,并自動提取特征。為了進(jìn)一步提高CNNSC的分類準(zhǔn)確率,引入了word2vec詞表達(dá)訓(xùn)練模型,該模型充分考慮了語義信息。相比隨機(jī)初始化的詞表達(dá),引入word2vec的CNNSC分類準(zhǔn)確率更高。
另一方面,除了詞語,中文的漢字本身具有豐富的語義信息,漢字也可以作為微博的語義單元。因此,本文研究了不同的語義單元對CNNSC準(zhǔn)確率的影響。
2.1 CNN
CNN模型是一種特殊的人工神經(jīng)網(wǎng)絡(luò)(ANN)。ANN是一種模擬生物神經(jīng)網(wǎng)絡(luò)的計(jì)算模型,ANN由大量神經(jīng)元和神經(jīng)元之間的相互連接構(gòu)成[23]。每個(gè)神經(jīng)元代表一種特定的非線性輸出函數(shù),稱為“激勵(lì)函數(shù)”,信號通過神經(jīng)元時(shí)產(chǎn)生非線性變換。每兩個(gè)神經(jīng)元之間的連接代表一個(gè)通過該連接信號的權(quán)重值。ANN每一層的神經(jīng)元之間沒有連接,相鄰層之間的神經(jīng)元全連接,即當(dāng)前層的神經(jīng)元接收到的信息與上一層所有的神經(jīng)元均有關(guān)聯(lián)。ANN通過有監(jiān)督式或無監(jiān)督式方法自動學(xué)習(xí)特征,無需人工進(jìn)行特征劃分。
CNN受啟發(fā)于生物學(xué)中的視覺系統(tǒng)結(jié)構(gòu),視覺皮層的神經(jīng)元是局部接受信息的,即這些神經(jīng)元只響應(yīng)某些特定區(qū)域的刺激?;谶@種思路,在CNN中,相鄰層之間的神經(jīng)元并不像普遍ANN那樣全連接,而是部分連接,這一特征減小了反映網(wǎng)絡(luò)各層之間連接的權(quán)重轉(zhuǎn)移矩陣的規(guī)模。同時(shí),CNN具有權(quán)重共享特征[24],即當(dāng)前層的每個(gè)神經(jīng)元獲取到的信息,由同一個(gè)權(quán)重矩陣——卷積核與上一層同樣大小的子矩陣進(jìn)行計(jì)算而來。權(quán)重共享特征進(jìn)一步減小了權(quán)重轉(zhuǎn)移矩陣的大小,大大縮短了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間。
典型的CNN包含若干個(gè)卷積層和池化層,如圖1所示為用于圖片特征提取的CNN示意圖。其中,卷積層的神經(jīng)元共享卷積核Ca×b,卷積層的特征矩陣S(m-a+1)×(n-b+1)的神經(jīng)元s11是通過輸入Pm×n的子矩陣P1…a,1…b與C進(jìn)行卷積操作而來。像這樣,將C在P上向右向下滾動,分別與P的(m-a+1)×(n-b+1)個(gè)a×b維子矩陣進(jìn)行卷積操作,就得到了特征矩陣S。整個(gè)過程P的子矩陣均是與同一個(gè)卷積核進(jìn)行運(yùn)算,實(shí)際上是一個(gè)特征泛化的過程。接著,CNN的池化層進(jìn)一步將特征泛化。池化層對S的固定大小的子區(qū)域中的特征值進(jìn)行例如取最大值、平均值等相同的運(yùn)算。
圖1 典型CNN結(jié)構(gòu)圖
CNN中可以包含多個(gè)卷積層和池化層,根據(jù)需求對原始特征矩陣進(jìn)行充分的泛化,最后將泛化后的特征根據(jù)具體的應(yīng)用場景進(jìn)行處理。
2.2word2vec
以往的詞表達(dá)均采用one-hotrepresentation,就是用一個(gè)很長的向量來表示一個(gè)詞,向量的維度為詞典D的大小,向量只有某一個(gè)維度值為1,其余維的值均為0,1的位置對應(yīng)該詞在D中的索引。但是這種詞向量表達(dá)容易造成維數(shù)災(zāi)難,不能很好地刻畫詞與詞之間的相似性。
另一種詞表達(dá)是由Hinton[25]提出的distributedrepresentation,它可以克服one-hotrepresentation的缺點(diǎn)。其基本思想是:通過語言模型的訓(xùn)練,將某種語言中的每一個(gè)詞映射成一個(gè)固定長度的短向量(這里的“短”是相對于one-hotrepresentation的“長”而言),所有這些向量構(gòu)成一個(gè)詞向量空間,將每個(gè)向量視作空間中的一個(gè)點(diǎn),語法、語義上相似的詞距離也相近。word2vec采用的就是distributedrepresentation。
word2vec是由Mikolov等[18]提出的一種用來訓(xùn)練詞表達(dá)的淺層神經(jīng)網(wǎng)絡(luò)模型。word2vec中提出了cbow和skip-gram兩種方法,前者通過上下文的詞表達(dá)來訓(xùn)練當(dāng)前詞表達(dá),后者反之,給定詞表達(dá),預(yù)測該詞的上下文的概率。word2vec模型訓(xùn)練得到的詞表達(dá)充分考慮了詞的語義信息,表現(xiàn)為語義相近的詞其詞表達(dá)距離更小,以及反映了一詞多義的情況。本文將word2vec模型進(jìn)行了修改,使之適用于中文語料,以獲取微博的詞表達(dá)。
CNNSC模型是在CNN模型的基礎(chǔ)上構(gòu)造而來,圖2為CNNSC的結(jié)構(gòu)圖。CNNSC包括了輸入層、卷積層、池化層和輸出層。
圖2 CNNSC結(jié)構(gòu)圖
3.1 微博特征矩陣
CNNSC首先從微博訓(xùn)練集中提取出每條微博的的特征矩陣。具體來說,先將微博集中的每條微博T進(jìn)行分詞。在對整個(gè)微博集進(jìn)行分詞的同時(shí),CNNSC建立了微博集的詞典D,并將D中的所有詞的詞表達(dá)初始化,補(bǔ)充到D中。CNNSC提供了隨機(jī)初始化及通過word2vec模型初始化兩種方法,其中引入word2vec模型可以充分考慮詞的語義信息。接著,將T作為分詞工具的輸入,輸出的T被分為d個(gè)詞語w1,w2,…,wd,將T表示為:
T:{w1,w2,…,wd}
(1)
從D中獲取T的每個(gè)詞語wi的詞表達(dá),將wi表示為Rv×1空間中的向量wi:
wi=(mi1,mi2,…,miv)i∈[1,d]
(2)
T的矩陣表示即是將T中所有詞語的詞表達(dá)按照詞序列從上至下排列起來:
w1:d=w1⊕w2⊕…⊕wd
(3)
這樣,微博T被轉(zhuǎn)換為Rd×v特征空間的矩陣:
(4)
CNNSC將T的特征矩陣作為CNN的輸入,然后通過CNN的卷積層、池化層進(jìn)行特征提取,獲取微博的句子表達(dá)。
3.2 卷積層
CNN應(yīng)用在圖像識別中時(shí),一般情況下,在卷積層的操作中,卷積核在像素矩陣的行列兩個(gè)方向都發(fā)生移動,正如在第2部分中的CNN示例。將CNN應(yīng)用到微博分類中時(shí),以前述T的特征矩陣作為輸入,卷積核在行方向的移動不具有解釋性,因此CNNSC的卷積核與句子表達(dá)的行向量維數(shù)一致。在這里,輸入到CNN中的句子表達(dá)矩陣,在列方向上保留了文本的語序信息,卷積核在列方向上的移動可以獲取到原文本的固有特征,該特征的大小也是由原文本的語法特征決定的,無需人工干預(yù)。這樣,CNNSC實(shí)現(xiàn)了微博特征自動提取。
CNNSC在卷積層中設(shè)置了m個(gè)卷積核C1,C2,…,Cm。設(shè)置多個(gè)卷積核是為了能夠更加全面地獲取到微博句子表達(dá)中的特征,降低特征提取過程的偶然性。其中任意卷積核C∈Rk×v:
(5)
卷積層的操作是將微博的特征矩陣T的從上至下d-k+1個(gè)子矩陣Tp∈Rk×v,p∈[1,d-k+1],如下所示,分別與C進(jìn)行(*)運(yùn)算。
(6)
(*)運(yùn)算的定義為:
(7)
其中biasij是偏置矩陣BIAS的一個(gè)分量,即對權(quán)重矩陣進(jìn)行調(diào)整的偏差值。sigmod是激勵(lì)函數(shù),用來將特征值進(jìn)行歸一化。這樣,微博T的句子表達(dá)與任意一個(gè)卷積核C均行了d-k+1次(*)運(yùn)算,將每次(*)運(yùn)算的輸出依次排列,得到卷積矩陣S∈R(d-k+1)×1。同樣地,將T與剩余m-1個(gè)卷積核進(jìn)行卷積操作,得到了該條微博的所有卷積層輸出S1,S2,…,Sm,傳入到CNN的池化層中。
CNN的卷積層實(shí)際上是一個(gè)特征抽取的過程。一個(gè)卷積核抽取一種特征,得到一個(gè)特征矩陣。CNN在抽取某一種特征時(shí),通過相同的卷積核對原始輸入的不同區(qū)域進(jìn)行相同的信息轉(zhuǎn)換,將局部的特征泛化,而保留了整體的特征。這樣微博中原始的最能代表微博情感傾向性的語義和語序特征得以保留。
3.3 池化層
微博T的句子表達(dá)經(jīng)由m個(gè)卷積核進(jìn)行卷積操作后,從卷積層傳遞了m個(gè)R(d-k+1)×1空間的矩陣表達(dá)的特征。池化層將這些特征進(jìn)一步聚合,簡化特征的表達(dá)。在池化層定義了池化運(yùn)算:
pooling(S(d-k+1)×1)=α(s1,s2,…,sd-k+1)
(8)
其中α算子是可選的,常見的為最大化算子、最小化算子、平均值算子及高斯化算子。在最大化算子的基礎(chǔ)上,文獻(xiàn)[6]采用了k最大化算子,即取S各維中最大的k維。一般而言,α算子需要通過對比實(shí)驗(yàn),為當(dāng)前的應(yīng)用場景選擇最為合適的。CNNSC提供了可選的多種算子,第4部分的實(shí)驗(yàn)展示了不同的池化方法對CNNSC分類性能的影響。
池化操作將每個(gè)卷積矩陣轉(zhuǎn)換為一個(gè)一維特征值,這樣得到了一個(gè)Rm×1空間的特征向量P:
P=(p1,p2,…,pm)
(9)
CNN的卷積層和池化層分別通過卷積操作和池化操作對微博T的句子表達(dá)進(jìn)行了特征提取,得到泛化后的特征向量P。接著CNNSC將該特征向量傳遞到分類器中,計(jì)算微博T所屬的情感類別。
3.4 情感分類
CNNSC一開始將微博T轉(zhuǎn)換為特征矩陣,然后將該矩陣傳入到CNN中,提取到T的特征向量P。在CNN之后通過全連接方式連接了一層分類器,如圖3所示。
圖3 CNNSC的分類器示意圖
池化層傳遞過來的特征向量P即為微博T的句子表達(dá)。神經(jīng)元L即為CNN的分類器。文獻(xiàn)[21,24]的模型在池化層后連接了softmax分類器,分別計(jì)算微博T屬于各種情感極性的概率來確定其情感類別。根據(jù)具體需求及語料集的標(biāo)注條件,已有情感極性分類工作主要包括正向、負(fù)向二分類及正向、中性、負(fù)向三分類兩種做法。結(jié)合爬取到的中文微博語料集,本文采取了正向、負(fù)向二分類的做法。這樣,CNNSC面向的是微博的情感極性二分類問題,分類器的激勵(lì)函數(shù)采用了sigmod函數(shù),將池化后的向量P轉(zhuǎn)換為一維數(shù)值,通過設(shè)置閾值θ確定微博的情感類別,如式(10)所示:
(10)
這樣,CNNSC通過將每條微博轉(zhuǎn)換為特征空間的句子表達(dá),然后通過CNN的卷積和池化操作進(jìn)行特征提取及泛化,最后通過分類器獲得了微博的情感分類。
3.5 模型訓(xùn)練
CNNSC采用了后向傳播算法來訓(xùn)練參數(shù)值。后向傳播算法(BP算法)的核心思想,就是通過輸出結(jié)果和期望輸出之間的誤差來調(diào)整各層之間的轉(zhuǎn)移矩陣的權(quán)重值。BP算法是ANN中用來訓(xùn)練網(wǎng)絡(luò)最常用的算法,而將其應(yīng)用在CNN中時(shí),需要做一些修改。這里結(jié)合前面使用到的符號,說明CNNSC中BP算法的過程。首先,將CNNSC輸出值與期望值之間的誤差E定義如下:
(11)
這里的Y和O均為一維數(shù)值。進(jìn)一步將上式展開到池化層:
(12)
其中fs為分類器采用的激勵(lì)函數(shù),fp為池化層的激勵(lì)函數(shù),CNNSC支持取最大值或取平均值,池化層的輸入為m個(gè)R(d-k+1)×1空間的向量。進(jìn)一步,將上式展開到卷積層:
(13)
其中st的展開式為:
(14)
可以發(fā)現(xiàn),網(wǎng)絡(luò)的誤差E為卷積核C與偏置矩陣B的函數(shù),因此調(diào)整C與BIAS的分量值會使誤差發(fā)生改變。CNNSC的訓(xùn)練原則就是調(diào)整權(quán)值與偏差值使E不斷減小。具體的求解方法是,分別求E對cij、biasij的偏導(dǎo)數(shù),如下所示為E對cij的偏導(dǎo)數(shù)計(jì)算過程:
(15)
然后,可得cij的下降梯度為:
(16)
同樣地可以對biasij的偏導(dǎo)數(shù)和下降梯度求解。然后通過梯度下降法訓(xùn)練得到CNNSC的最優(yōu)卷積核及偏置矩陣,從而實(shí)現(xiàn)基于CNN的面向微博的情感分類模型。
為了驗(yàn)證本文所提CNNSC模型的有效性,一共進(jìn)行了四組實(shí)驗(yàn)。下面首先介紹實(shí)驗(yàn)設(shè)置,然后分別介紹四組實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)結(jié)果,并對實(shí)驗(yàn)結(jié)果進(jìn)行分析。
4.1 實(shí)驗(yàn)設(shè)置
本文爬取了來自新浪微博的約十萬條中文微博。在對其進(jìn)行去重,人工標(biāo)注后,最終保留了47 374條微博,其中包括35 164條正向微博及12 210條負(fù)向微博。下面的幾組實(shí)驗(yàn)均采用了交叉驗(yàn)證的方法,從數(shù)據(jù)集中隨機(jī)抽取語料集中的1/10作為測試集,剩下的作為訓(xùn)練集。
在第二組實(shí)驗(yàn)中涉及到的參數(shù)的默認(rèn)值分別為:梯度下降學(xué)習(xí)率(adaAlpha)為0.01,默認(rèn)的池化算子(pooling)為取平均值算子,卷積核列向量維度(filterSize)分別為3、4、5,每種卷積核的個(gè)數(shù)(filterNumber)300,CNNSC設(shè)置了多個(gè)卷積通道——即多種大小不同的卷積核,可以進(jìn)一步減少特征提取的偶然性。微博的詞表達(dá)由word2vec對微博訓(xùn)練集訓(xùn)練獲取,詞向量維數(shù)為100,每次迭代從訓(xùn)練集中隨機(jī)選取50條微博。對CNNSC進(jìn)行的每次實(shí)驗(yàn)進(jìn)行了多次迭代,達(dá)到收斂條件時(shí)迭代停止,并返回迭代過程中出現(xiàn)的最高準(zhǔn)確率。
在對比實(shí)驗(yàn)中,本文選取了基于情感詞典的無監(jiān)督方法及樸素貝葉斯、最大熵、支持向量機(jī)三種基于機(jī)器學(xué)習(xí)的有監(jiān)督方法作為baseline。實(shí)驗(yàn)的評價(jià)標(biāo)準(zhǔn)為微博情感分類的準(zhǔn)確率,計(jì)算公式為:
(17)其中TP、FP、TN、FN分別代表正確分類的正向微博、錯(cuò)誤分類的正向微博、正確分類的負(fù)向微博及錯(cuò)誤分類的負(fù)向微博,該公式中的分母即為測試集的所有微博數(shù)。
4.2 實(shí)驗(yàn)結(jié)果
(1) 第一組實(shí)驗(yàn)將CNNSC與其他方法進(jìn)行面向微博的情感分類準(zhǔn)確率的比較。對每種方法進(jìn)行了10次測試,每次隨機(jī)抽取微博語料集中的1/10作為測試集,剩下的則為訓(xùn)練集,然后取10次測試的分類準(zhǔn)確率的平均值作為該方法的準(zhǔn)確率,結(jié)果如表1所示。
表1 面向微博的情感分類準(zhǔn)確率
實(shí)驗(yàn)結(jié)果表明CNNSC相比基于情感詞典和基于機(jī)器學(xué)習(xí)方法,其準(zhǔn)確率更高?;谇楦性~典的方法準(zhǔn)確率僅為76.6%,這是由于每條微博的篇幅有限,其中包含的情感詞較少,加上微博的口語化及富含新詞的特征,基于情感詞典的方法在微博上的情感分類表現(xiàn)并不突出。三種機(jī)器學(xué)習(xí)方法的準(zhǔn)確率相差不大,均優(yōu)于情感詞典方法。其中SVM方法的準(zhǔn)確率達(dá)到了88.2%,SVM十分適用于二分類問題,它將微博情感分類問題視作普通的文本分類問題,但未能充分考慮微博的語義及語序信息。SVM方法將分詞結(jié)果作為微博特征,CNNSC在微博分詞后的特征矩陣基礎(chǔ)上更進(jìn)一步,自動學(xué)習(xí)微博的特征表達(dá)。CNNSC的準(zhǔn)確率比SVM方法高出3.4%,表明引入CNN提取微博特征可以提高情感分類準(zhǔn)確率。
(2) 第二組實(shí)驗(yàn)展示的是CNNSC在不同的參數(shù)設(shè)置下的分類準(zhǔn)確率。本組實(shí)驗(yàn)涉及到四個(gè)參數(shù)的調(diào)優(yōu)。
表2顯示了不同的學(xué)習(xí)率對CNNSC性能的影響,圖4更直觀地反映了實(shí)驗(yàn)結(jié)果。在梯度下降算法中,若學(xué)習(xí)率設(shè)置過小,則算法收斂很慢;若學(xué)習(xí)率設(shè)置過大,則會導(dǎo)致代價(jià)函數(shù)震蕩。從表2可以看出,學(xué)習(xí)率在0.01時(shí),CNNSC準(zhǔn)確率達(dá)到峰值;學(xué)習(xí)率再增大時(shí),正確率反而降低了。在接下來的實(shí)驗(yàn)中,我們經(jīng)驗(yàn)地將學(xué)習(xí)率設(shè)置為0.01。
表2 學(xué)習(xí)率對CNNSC準(zhǔn)確率的影響
圖4 學(xué)習(xí)率對CNNSC準(zhǔn)確率的影響
表3及圖5顯示了不同的卷積核數(shù)對CNNSC性能的影響。實(shí)驗(yàn)結(jié)果表明,CNNSC的準(zhǔn)確率隨著卷積核數(shù)的遞增呈現(xiàn)波動變化,當(dāng)卷積核數(shù)大于200時(shí),CNNSC準(zhǔn)確率在0.4%范圍內(nèi)波動。當(dāng)卷積核數(shù)取值為300時(shí),準(zhǔn)確率達(dá)到最大值,因此在接下來的實(shí)驗(yàn)中將卷積核數(shù)經(jīng)驗(yàn)地設(shè)置為300。
表3 卷積核數(shù)對CNNSC準(zhǔn)確率的影響
圖5 卷積核數(shù)對CNNSC準(zhǔn)確率的影響
表4顯示在不同大小的卷積核下CNNSC準(zhǔn)確率的變化。實(shí)驗(yàn)結(jié)果表明卷積核大小對CNNSC準(zhǔn)確率影響較小,在0.6%內(nèi)波動。本文根據(jù)實(shí)驗(yàn)結(jié)果,將卷積核大小經(jīng)驗(yàn)地設(shè)置為3、4、5。
表4 卷積核大小對CNNSC準(zhǔn)確率的影響
表5顯示采用不同的池化算子對CNNSC準(zhǔn)確率的影響。三組對比測試結(jié)果表明,取平均值池化算子相比取最大值算子更適用于中文微博的情感分類。
表5 池化算子對CNNSC準(zhǔn)確率的影響
第二組實(shí)驗(yàn)結(jié)果顯示對于每個(gè)參數(shù)的波動,CNNSC準(zhǔn)確率變化均在1%之內(nèi),且與參數(shù)值的變化之間呈非線性關(guān)系。整個(gè)調(diào)優(yōu)過程的準(zhǔn)確率最低值為90.6%,高于基于SVM的情感分類方法2.4%,這說明CNNSC將CNN引入到中文微博的情感分類問題中來是行之有效的。
(3) 第三組實(shí)驗(yàn)是為了研究詞表達(dá)對CNNSC分類準(zhǔn)確率的影響。本組實(shí)驗(yàn)測試了CNNSC在六種不同的詞表達(dá)下的情感分類準(zhǔn)確率,涉及到隨機(jī)初始化的詞表達(dá)與通過word2vec訓(xùn)練所得詞表達(dá),word2vec分別由中文維基百科及微博訓(xùn)練集訓(xùn)練得到的詞表達(dá),以及不同維度的詞詞表達(dá),如表6所示。實(shí)驗(yàn)的其他設(shè)置為:學(xué)習(xí)率0.01,卷積核列向量大小分別為3、4、5,卷積核數(shù)為300,池化算子為取平均值算子。
表6 不同詞表達(dá)下CNNSC分類準(zhǔn)確率
首先,將隨機(jī)初始化的詞表達(dá)作為CNNSC的輸入,準(zhǔn)確率相比基于SVM的情感分類方法高出2.4%,這充分證明了本文引入CNN對中文微博進(jìn)行分類的思路是正確的。其次,由word2vec模型訓(xùn)練得到的詞表達(dá),相對隨機(jī)初始化的詞表達(dá),提高了CNNSC的分類準(zhǔn)確率。再次,word2vec以微博訓(xùn)練集本身訓(xùn)練所得詞表達(dá),相比中文維基百科,將準(zhǔn)確率提升了0.3%。最后,詞表達(dá)的維度對準(zhǔn)確率的影響有限,在隨機(jī)初始化時(shí)100維詞表達(dá)的準(zhǔn)確率低于50維詞表達(dá),而由word2vec在微博訓(xùn)練集上訓(xùn)練所得的100維詞表達(dá)使準(zhǔn)確率提升了0.1%,與經(jīng)驗(yàn)值符合。這組實(shí)驗(yàn)結(jié)果表明,不同詞表達(dá)會造成CNNSC的分類準(zhǔn)確率有所變化,引入word2vec模型使準(zhǔn)確率提升了1.0%。
(4) 第四組實(shí)驗(yàn)研究不同語義單元對CNNSC分類準(zhǔn)確率的影響,即漢字和詞語分別作為語義單元,通過隨機(jī)初始化或wordvec訓(xùn)練獲取語義單元的詞表達(dá),最后傳給CNNSC進(jìn)行情感分類。本組實(shí)驗(yàn)的參數(shù)設(shè)置與第三組實(shí)驗(yàn)一致,除了word2vec的語料集僅采用了微博訓(xùn)練集,實(shí)驗(yàn)結(jié)果如表7所示。
表7 不同語義單元下CNNSC分類準(zhǔn)確率
本組實(shí)驗(yàn)一共進(jìn)行了四次對比實(shí)驗(yàn),目的是為了減少結(jié)果的偶然性。這四次對比結(jié)果顯示,以漢字作為語義單元,相比詞語作為語義單元,CNNSC的準(zhǔn)確率均有所下降,平均下降了2.3%。這表明將漢字作為微博的語義單元仍然損失了部分語義信息,并不適用于單獨(dú)作為中文微博的語義單元。
本文提出了一種基于CNN的中文微博情感分類模型CNNSC,該模型充分考慮了中文微博內(nèi)容簡短、特征稀疏及富含新詞等特征,實(shí)驗(yàn)表明相比目前情感分類的主流方法,CNNSC在中文微博上的情感分類準(zhǔn)確率提高了3.4%。為了進(jìn)一步提高CNNSC準(zhǔn)確率,本文引入了充分考慮微博語義信息的word2vec模型,對微博詞表達(dá)進(jìn)行初始化。另一方面,考慮到中文的特殊性,本文探究了不同語義單元對CNNSC準(zhǔn)確率的影響。實(shí)驗(yàn)結(jié)果表明僅以漢字作為中文微博的語義單元會出現(xiàn)語義損失,使CNNSC準(zhǔn)確率有所降低。未來的工作可以研究將漢字表達(dá)作為詞表達(dá)的輔助信息能否提高CNNSC準(zhǔn)確率。此外,CNNSC對卷積核進(jìn)行隨機(jī)初始化,通過改進(jìn)對卷積核的初始化方法來提高CNNSC的準(zhǔn)確率也是未來的研究點(diǎn)之一。
[1] Pang B,Lee L,Vaithyanathan S.Thumbs up?:sentiment classification using machine learning technique[C]//Proceedings of the ACL-02 Conference on Empirical Methods in Natural Language Processing,2002,10:79-86.
[2] Ye Q,Zhang Z,Law R.Sentiment classification of online reviews to travel destinations by supervised machine learning approaches[J].Expert Systems with Applications,2009,36(3):6527-6535.
[3] 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,2002:417-424.
[4] Zagibalov T,Carroll J.Automatic seed word selection for unsupervised sentiment classification of Chinese text[C]//Proceedings of the 22nd International Conference on Computational Linguistics,2008,1:1073-1080.
[5] Socher R,Pennington J,Huang E H,et al.Semi-supervised recursive autoencoders for predicting sentiment distributions[C]//Proceedings of the Conference on Empirical Methods in Natural Language Processing,2011:151-161.
[6] Tan C,Lee L,Tang J,et al.User-level sentiment analysis incorporating social networks[C]//Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2011:1397-1405.
[7] Li S,Wang Z,Zhou G,et al.Semi-supervised learning for imbalanced sentiment classification[C]//Proceedings of the 22ndInternational Joint Conference on Artificial Intelligence,2011:1826-1831.
[8] Dasgupta S,Ng V.Mine the easy,classify the hard:a semi-supervised approach to automatic sentiment classification[C]//Proceedings of the Joint Conference of the 47thAnnual Meeting of the ACL and the 4thInternational Joint Conference on Natural Language Processing of the AFNLP,2009,2:701-709.
[9] Mitchell T M.Machine learning and data mining over the past[J].Communications of the ACM,1999,42(11):30-36.
[10] Wiener E,Pedersen J O,Weigend A S.A neural network approach to topic spotting[C]//Proceedings of the 4th Annual Symposium on Document Analysis and Information Retrieval,1995:317-332.
[11] Chen L,Tokuda N,Nagai A.A new differential LSI space-based probabilistic document classifier[J].Information Processing Letters,2003,88(5):203-212.
[12] Wang L,Jia Y,Han W.Instant message clustering based on extended vector space model[C]//Proceedings of the 2nd International Conference on Advances in Computation and Intelligence.Springer,2007:435-443.
[13] 楊震,賴英旭,段立娟,等.基于上下文重構(gòu)的短文本情感極性判別研究[J].自動化學(xué)報(bào),2012,38(1):55-67.
[14] Liu Z,Zheng Y,Xie L,et al.User Behaviors in Related Word Retrieval and New Word Detection: A Collaborative Perspective[J].ACM Transactions on Asian Language Information Processing,2011,10(4):1-26.
[15] Sun X,Wang H,Li W.Fast online training with frequency-adaptive learning rates for Chinese word segmentation and new word detection[C]//Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics:Long Papers,2012,1:253-262.
[16] Glorot X,Bordes A,Bengio Y.Domain adaptation for large-scale sentiment classification:A deep learning approach[C]//Proceedings of the 28th International Conference on Machine Learning,2011:513-520.
[17] Zhou S,Chen Q,Wang X.Active deep networks for semi-supervised sentiment classification[C]//Proceedings of the 23rd International Conference on Computational Linguistics:Posters,2010:1515-1523.
[18] Mikolov T,Chen K,Corrado G,et al.Efficient estimation of word representations in vector space[DB/OL].http://arxiv.org/abs/1301.3781.
[19] Kim Y.Convolutional neural networks for sentence classification[DB/OL].http://arxiv.org/abs/1408.5882.
[20] Johnson R,Zhang T.Effective use of word order for text categorization with convolutional neural networks[DB/OL].http://arxiv.org/abs/1412.1058.
[21] Zhang X,Zhao J,LeCun Y.Character-level convolutional networks for text classification[C]//Proceedings of the 28thInternational Conference on Neural Information Processing Systems,2015:649-657.
[22] Severyn A,Moschitti A.Twitter sentiment analysis with deep convolutional neural networks[C]//Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval,2015:959-962.
[23] Yegnanarayana B.Artificial neural networks[M].New Delhi,India:Prentice-Hall,2009.
[24] Krizhevsky A,Sutskever I,Hinton G E.Imagenet classification with deep convolutional neural networks[C]//Advances in Neural Information Processing Systems 25,2012:1106-1114.
[25] Hinton G E.Distributed representations[M].Cambridge,Mass,USA:MIT Press,1986.
[26] Liu Y,Liu Z,Chua T S,et al.Topical Word Embeddings[C]//Proceedings of the 29th AAAI Conference on Artificial Intelligence,2015:2418-2424.
CHINESE MICRO-BLOG EMOTION CLASSIFICATION BASED ON CNN
Feng Duo1,2Lin Zheng2Fu Peng1,2Wang Weiping2
1(UniversityofChineseAcademyofSciences,Beijing100049,China)2(InstituteofInformationEngineering,ChineseAcademyofSciences,Beijing100093,China)
Microblogging is an important platform for the evolution of Internet media, microblogging emotional analysis, help to grasp the social hot spots and public opinion. As the content of Micro-blog short, sparse features, rich in new words and other features, Micro-blog emotional classification is still a difficult task. Traditional text emotion classification methods are mainly based on emotional dictionary or machine learning, but these methods have sparse data, and ignore the semantic, word order and other information. In order to solve the above problem, this paper proposes a Chinese microblogging emotion classification model based on CNN. The experiment shows that the accuracy of the model is improved by 3.4% compared with the current mainstream method.
Emotion classification Convolutional neural network Micro-blog classification
2016-01-25。國家自然科學(xué)基金項(xiàng)目(61502478);國家核高基項(xiàng)目(2013ZX01039-002-001-001);國家高技術(shù)研究發(fā)展計(jì)劃項(xiàng)目(2013AA013204)。馮多,碩士生,主研領(lǐng)域:情感分析,大數(shù)據(jù)處理。林政,博士。付鵬,博士生。王偉平,研究員。
TP3
A
10.3969/j.issn.1000-386x.2017.04.027