(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 無錫 214000)
當(dāng)今的社會,是一個信息大爆炸的社會。隨著互聯(lián)網(wǎng)的接入,智能手機的普及,流量價格越來越低,人們每天花費在網(wǎng)絡(luò)上的時間越來越多,而在不知不覺的上網(wǎng)過程中,我們一直產(chǎn)生著驚人的數(shù)據(jù)信息:在淘寶網(wǎng)上追加自己的購物評價、在美團上發(fā)表自己的美食體驗、在微博上對某件社會事件發(fā)表自己的看法、在空間曬自己的旅游感受等。這些普通平常的舉動,其實蘊含著豐富的商業(yè)價值。淘寶商家可以通過用戶的購物體驗獲得用戶喜好;美團通過用戶對美食評價,獲得用戶口味偏好;微博官方通過搜集網(wǎng)上的評價,可以獲知用戶政治傾向等。如果把這些信息都搜集起來,進(jìn)行情感分析,加以整理分類,那么就可以了解到整個社會的消費傾向、生活狀態(tài)等。
傳統(tǒng)的文本情感分主要采用人工方式進(jìn)行情感分析,是一種基于規(guī)則的方法[1],主要是依賴專家提供的情感詞典或者模板進(jìn)行文本的情感分析,整個過程需要大量的人工參與,費時費力,效率低下。自從深度學(xué)習(xí)研究熱潮的興起,不斷有人嘗試把深度學(xué)習(xí)應(yīng)用到各個領(lǐng)域中去解決現(xiàn)實中的問題,比如人臉識別、語音識別、場景識別等。同樣,深度學(xué)習(xí)也已經(jīng)逐漸應(yīng)用到文本的情感分析中。目前,已經(jīng)有諸多的學(xué)者進(jìn)行了大膽的嘗試,如,早期Pang[2]采用機器學(xué)習(xí)算法,支持向量機,樸素貝葉斯以及最大熵用于電影評論的情感分析,隨著深度學(xué)習(xí)的發(fā)展,Kim[3]等首次嘗試在單層卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上通過多種特征輸入進(jìn)行對比實驗;Kalchbrenner等[4]設(shè)計了一個動態(tài)卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行自然語言的處理;劉龍飛[5]等提出了加入字向量以及詞向量進(jìn)行微博情感分析,并在COAE2014任務(wù)上取得了較好的結(jié)果;杜昌順[6]等提出了分段卷積用于文本情感分析,其分段操作主要針對池化階段進(jìn)行操作,需要說明的是本文提出的分段卷積,主要針對卷積階段進(jìn)行操作。
本文針對端到端的卷積神經(jīng)網(wǎng)絡(luò)缺乏對罕見詞的處理以及對不同領(lǐng)域的泛化性,提出了一種加入詞典特征以及詞性特征進(jìn)行特征增強的卷積神經(jīng)網(wǎng)絡(luò)模型。主要包括以下三部分:1)采用字特征、詞典特征以及詞性特征表征句子向量,通過詞典特征以及詞性特征提高模型對罕見詞的處理,提高模型在不同領(lǐng)域的泛化性;2)在卷積神經(jīng)網(wǎng)絡(luò)的卷積層,根據(jù)句子的結(jié)構(gòu)采取分段卷積操作,可以最大化保存句子的情感特征;3)采用投票機制對多個模型進(jìn)行判斷,選擇票數(shù)最多的類別作為文本的情感傾向性類別。通過大量對比實驗,該模型相比其他模型而言,具有更高的準(zhǔn)確率。
字特征是中文處理的基本單位,本文采用字特征作為模型的基本輸入,字特征可以減弱未登錄詞帶來的分詞錯誤問題,如:蘋果電腦的觸控六六六,其中“六六六”為褒義詞,分詞的話反而會改變句子的語義信息,設(shè)句子X=c1,c2,…,cn,每個字符ci的字向量表示為αi=ec(ci),其中ec對應(yīng)每個字的查找表。一個長度為n的句子的字特征矩陣描述為式(1)所示:
其中⊕表示連接操作符。
詞典特征作為模型的另一輸入,通過對詞典構(gòu)建Tree樹,對句子中每個字搜索找到所有可能與詞典中匹配的詞進(jìn)行編碼,如果該詞在詞典中對應(yīng)的標(biāo)記為為POS,那么對應(yīng)詞典編碼為1,如果該詞在詞典中的標(biāo)記位為NEG,那么對應(yīng)詞典編碼為-1,如果在詞典中不存在,對應(yīng)編碼為0。如圖1所示,原始句子為攝像頭很不清楚,其中“清楚”在詞典中的標(biāo)記位為POS,“很不清楚“在詞典中的標(biāo)記位為NEG,那么選擇句子中字的最長匹配作為最終的詞典特征編碼,即句子中對應(yīng)字的詞典編碼為-1。設(shè)一個長度為n的句子,那么每個詞ti對應(yīng)的詞典特征向量表示為βi=et(ti),其中et對應(yīng)每個詞典特征的查找表。一個長度為n的句子的詞典特征矩陣描述為式(2)所示:
其中⊕表示連接操作符。
圖1 詞典特征示例圖
為了捕獲更多的情感信息,把每個詞的詞性特征轉(zhuǎn)化成向量,作為句子的特征。在情感分析中,影響句子的情感極性通常是形容詞、副詞、動詞和名詞等。如:我/r很/d喜歡/v這/r本/q書/n,電腦/n太/d差/a。詞性的不同搭配反映了句子的句法信息。詞性不僅包括分詞的詞性信息,而且包含了句子的分詞信息,本文采用BIOES表示每個字在分詞中的位置,B表示分詞的開始,I表示分詞的中間位置,O表示非實體詞,E表示分詞的結(jié)尾,S表示單個字,如:“電腦”的詞性特征可以表示為[B-n,E-n],設(shè)一個長度為n的句子中的每個字符ci的詞性為si,γ=es(si)為該字的詞性向量,即句子的詞性向量矩陣描述為式(3)所示:
其中⊕表示連接操作符。最終模型的輸入特征矩陣為X=α⊕β⊕γ。
MFICNN模型構(gòu)建主要包括以下四個部分,分別是多特征輸入層、卷積層、多池層和輸出層。整個模型的構(gòu)建如圖2,下面對每個部分做詳細(xì)說明。
1)多特征輸入層:輸入層部分,融合了三種特征詞向量矩陣,分別是字向量、詞典向量以及詞性詞向量。那么對于長度為n的句子X=c1,c2,…,cn,其特征向量表示如式(4)所示,其中α,β,γ定義如式(1)、式(2)、式(3)所示。
圖2 多特征改進(jìn)卷積網(wǎng)絡(luò)模型
2)分段卷積層:傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在卷積層部分是把輸入部分作為一個整體進(jìn)行卷積操作。這種卷積操作在人臉識別、語音識別等領(lǐng)域中都有較好的表現(xiàn),但是在文本的情感分析中,尤其是在轉(zhuǎn)折句式部分,對于轉(zhuǎn)折句式的評論語句,在原始的數(shù)據(jù)集中占有相當(dāng)大的比重,據(jù)統(tǒng)計至少有17.3%??梢哉f,轉(zhuǎn)折句式的識別效果的好壞可以影響到整個模型的情感識別準(zhǔn)確率。所以,在模型的卷積層部分加入了分段卷積機制,以實現(xiàn)對轉(zhuǎn)折句式的準(zhǔn)確判斷:
(1)首先定義轉(zhuǎn)折詞詞表,主要包括:“但是”、“可是”,“不過”,“然而”,“偏偏”等;
(2)判斷該評論語句是否存在轉(zhuǎn)折詞,如果存在,那么以轉(zhuǎn)折詞進(jìn)行句子切分,否則句子整體作為模型輸入;
(3)對輸入向量進(jìn)行卷積操作,為了充分獲取到句子中更多的上下文信息,采用不同大小的卷積核進(jìn)行卷積操作,本文默認(rèn)使用卷積核h=3,h=4,h=5三組不同的卷積核,卷積操作后得到特征圖Chi,計算方式如下:
其中ci表示的是特征圖中第i個特征值;f(·)表示的是非線性激活函數(shù);xi:i+h-1多特征詞向量矩陣;h代表的是卷積核權(quán)重的大小,b表示偏置項。
本文使用步幅s=1的卷積,當(dāng)卷積核在句子長度為n的文本上操作,共得到n-h+1個輸出,則卷積層提取的特征圖為
若識別的句子結(jié)構(gòu)是轉(zhuǎn)折句式,由于模型采用的是分段卷積,則會進(jìn)行分段卷積操作。卷積操作方式仍然如式(5)所示,只是p的值會根據(jù)模型的分段情況而定,一般都是分成兩段,若p取“1”,代表上分段;若p取“2”,代表下分段。相應(yīng)的,卷積提取的特征圖也就分為C1j和C2j。若采取的是其他分段,依次類推,句子的卷積層輸出為不同段位的輸出結(jié)果串聯(lián),如式(7)所示:
3)多池層:傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)對卷積層輸出的特征矩陣采用最大池化操作,即一個特征矩陣只提取一個最大特征。這種方法的優(yōu)點就是操作簡單,計算的參數(shù)少,訓(xùn)練時間短。但是這種方法往往忽略了句子中其他隱藏的特征。一個句子中,往往有多個重要特征,而采用單一的最大池化方法,會導(dǎo)致其他重要特征的丟失。所以,模型中采用的是多池化操M-max,即在卷積層輸出的特征矩陣上,根據(jù)特征圖的長度,采取動態(tài)多池操作:
其中,M是最大池化取樣窗口,Clen是特征圖的長度。假設(shè)C1ji的長度為6,則采取的最大池化數(shù)量就是M=3。通過多池操作,可以獲取每個特征圖中多個重要的特征,進(jìn)而綜合考慮多種因素。
4)輸出層:傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的最后一層(一般是輸出層)是全連接層。在最后的輸出層部分,將特征向量作為sigmod的輸入。在全連接層的訓(xùn)練過程中,模型為防止過擬合,加入Dropout,最后根據(jù)模型的情感分類標(biāo)簽與實際分類結(jié)果進(jìn)行反向傳播梯度更新,則有:
其中,y∈{0,1},Ws∈R|P|,bs為偏置項。
本文提出的模型主要用于文本的情感分類,歸根還是分類問題,本文把情感類別分為兩類,積極情感和消極情感,所以模型的目標(biāo)函數(shù)為
當(dāng)Loss=0時,模型輸出值與實際標(biāo)簽值較為接近,假設(shè)訓(xùn)練樣本標(biāo)簽為y=1,可得Loss=-ln(),當(dāng)模型預(yù)測值≈1時,此時Loss=0,當(dāng)訓(xùn)練樣本標(biāo)簽為y=0時,可得Loss=-ln(1-),當(dāng)模型預(yù)測值≈0時,此時Loss=0。
為了進(jìn)一步防止過擬合現(xiàn)象,使用L2正則[7]表達(dá)式,λ為正則化的參數(shù)。訓(xùn)練的過程中采用Ad?am[8]算法最小化目標(biāo)函數(shù),以提高模型的收斂速度,則目標(biāo)函數(shù)表示為
為了測試模型的準(zhǔn)確性,采用十折交叉驗證的方式訓(xùn)練模型,數(shù)據(jù)來自中國科學(xué)院譚松波教授搜集的酒店評論語料[9]以及從數(shù)據(jù)堂等方式下載的文本情感分析語料,數(shù)據(jù)共16000條,把數(shù)據(jù)分別劃分待訓(xùn)練集、測試集兩部分,取10%作為測試集,驗證集每次從待訓(xùn)練集中抽取。每種數(shù)據(jù)集中正面情感極性和負(fù)面情感極性都約占一半。這里需要指出的是,為了測試本文模型的優(yōu)越性,待訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)中都有至少20%的轉(zhuǎn)折句式語料。
本文采取兩個評測指標(biāo)度量文本情感分類效果:準(zhǔn)確率(Accuracy)和F1值。對于準(zhǔn)確率計算方法,設(shè)數(shù)據(jù)集大小為N,樣本xi的真實標(biāo)簽為yi,實際分類標(biāo)簽為,則計算公式為如式(12)所示:
F1計算方式,則是結(jié)合精準(zhǔn)率和召回率,F(xiàn)1是對精準(zhǔn)率和召回率的一個綜合衡量。假設(shè)精準(zhǔn)率表示為p,召回率表示為R,則計算方式如下:
其中TP表示實際為正例,模型預(yù)測為正例的數(shù)據(jù);TN表示實際為負(fù)例,模型預(yù)測為負(fù)例的數(shù)據(jù);FP表示實際為負(fù)例,模型預(yù)測為正例的數(shù)據(jù);FN表示實際為正例,模型預(yù)測為負(fù)例的數(shù)據(jù)。
實驗中主要參數(shù)設(shè)置如表1所示。
為了驗證本文模型在性能上的優(yōu)越性,根據(jù)本文提出的模型的特點具有針對性的設(shè)計了對比實驗。實驗一,主要針對模型中的多特征部分進(jìn)行對比,采用相同的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行測試。實驗二,主要針對比MFICNN模型與當(dāng)前主流情感分析模型對比,驗證本文算法有效性。
表1 實驗參數(shù)設(shè)置
實驗一,分別采用MFICNN模型與字特征(CHAR_CNN),詞特征(WORD_CNN)以及字詞特征結(jié)合[5](CWCNN)模型對比,分詞器采用jieba分詞[10]。圖3顯示了模型在驗證集上的十折正確率變化結(jié)果,表2顯示了十折模型在測試集上情感極性判斷的正確率和F1值。
表2 模型在測試集上正確率與F1值
由圖3可以看出,CHAR_CNN模型在驗證集上的十折結(jié)果高于基于分詞特征的WORD_CNN模型,CWCNN模型較于CHAR_CNN模型提高了1%個點,MFICNN模型較于CHAR_CNN模型提高了3%個點。表2顯示了不同模型在測試集上的結(jié)果,測試集上,WORD_CNN模型在測試集上的結(jié)果最低,導(dǎo)致出現(xiàn)這種情況主要原因是目前的分詞器對未登錄詞識別效果有限,錯誤的分詞導(dǎo)致句子語義信息改變;MFICNN模型取得了0.912的正確率以及0.907的F1值,通過詞典以及詞性進(jìn)行特征增強,輔助CNN學(xué)習(xí)相鄰窗口之間的語義關(guān)系,這也充分說明多特征方法是有效的。
實驗二,本實驗中MFICNN不僅包括多特征輸入而且卷積部分采用分段多池操作,分別與支持向量機(SVM)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[11]、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、字詞結(jié)合的卷積神經(jīng)網(wǎng)絡(luò)(CWCNN)[5]和分段卷積神經(jīng)網(wǎng)絡(luò)(PCNN)[6]對比,基于實驗一結(jié)果,RNN以及CNN模型分別采用字特征作為模型輸入,SVM采用向量空間模型(VSM)[12]表示特征,分別使用TF_IDF權(quán)重[13]表示以及BOOL權(quán)重[14]表示進(jìn)行對比,實驗結(jié)果如表3所示。
表3 實驗對比結(jié)果
從表3可以看出,相比其他模型,本文提出的MFICNN模型在測試集上明顯取得了更高的精確度,其中MFICNN取得了0.923的正確率和0.916的F1值,MFICNN+投票機制比MFICNN模型在兩個不同指標(biāo)下都提高了1%的精度。下面對實驗結(jié)果對比進(jìn)行詳細(xì)的分析。
對于傳統(tǒng)的機器學(xué)習(xí)方法,支持向量機在測試集上的結(jié)果低于其他深度學(xué)習(xí)算法,向量空間表示的方式,詞與詞之間相互獨立,使得句子語義信息缺失,在規(guī)模較大的數(shù)據(jù)集上表現(xiàn)效果較差。RNN在句子級情感分類上效果低于CNN,其主要原因是中文評論語句較短,局部語義信息明顯,CNN模型可以充分利用滑動窗口,提高局部特征識別能力。字詞結(jié)合的卷積神經(jīng)網(wǎng)絡(luò)CWCNN在本次實驗中達(dá)到了0.891的精確度,較于基本CNN模型提高1%左右。MFICNN模型比SVM高了12%左右,比RNN提高了8%左右,CNN提高了5%左右,比CW?CNN高出了4%,比PCNN模型高出了5%。這足以說明MFICNN模型相比MCCNN模型和PCNN模型更具有優(yōu)勢。對于CWCNN模型來說,雖然采用了多通道機制對詞向量進(jìn)行多特征提取,但是因過于注重輸入模型詞向量部分的特征提取,導(dǎo)致了其他一些次要特征被提取出來并放大,影響了最后情感的識別。同時CWCNN模型未對卷積層和池化層進(jìn)行改進(jìn),只是改進(jìn)了輸入層的詞向量部分,這些也影響了最終識別率。這些都說明了,MFICNN在文本情感分析上的有效性。
為了進(jìn)一步提高M(jìn)FICNN模型在測試集上結(jié)果,本文采用另外兩組卷積核為(2,3,4)和(1,3,5)訓(xùn)練MFICNN模型,然后采用三個不同模型進(jìn)行投票,投票類別數(shù)最多的作為最終情感分類類別,由表3可以看出,MFICNN模型+投票機制在測試集上提高了2%的效果。
通過上面的對比試驗可以看出,本文提出的MFICNN模型相比其他網(wǎng)絡(luò)模型,取得了最好的實驗效果,情感識別效果最高。說明了MFICNN能夠較好地捕捉多種句子隱含特征,更好地進(jìn)行情感判斷。
本文提出的多特征改進(jìn)卷積網(wǎng)絡(luò)MFICNN情感分析模型,通過加入詞典特征、詞性特征進(jìn)行特征增強以及分段多池操作提高模型領(lǐng)域泛化性。實驗中,在數(shù)據(jù)集相同的情況下與多種情感分析網(wǎng)絡(luò)模型的進(jìn)行對比,MFSCNN模型都取得了更好的效果,體現(xiàn)出模型對情感分類的可行性和魯棒性。
本文處理的句子級中文文本情感分析問題,缺乏對評價對象的情感傾向判別,這將是下一步工作內(nèi)容。