嚴 鵬
(上海工程技術(shù)大學(xué)機械與汽車工程學(xué)院,上海 201620)
文本情感分析一般是對表達中的立場、情感、看法、偏向等人為傾向的剖析,作為新興熱點,其蘊含巨大的研究潛力,文本情感分類可認為是文本情感分析的重點研究方向[1-3]。依據(jù)表達的長短,文本情感分類為長文、段落和短句[4]。
研究文獻表明,文本情感分類通常使用機器學(xué)習(xí)與情感規(guī)則方法[5-7]?;跈C器學(xué)習(xí)方法需要人工進行特征提取,當文本數(shù)量過多時,需要消耗過多的人力和物力。針對這些問題,通過神經(jīng)網(wǎng)絡(luò)進行特征的自動提取成為新的趨勢。
電子商務(wù)網(wǎng)站商品評論數(shù)據(jù)豐富,往往包含充足信息。以商品評論文本為對象進行情感分類,既有現(xiàn)實基礎(chǔ),也有積極的應(yīng)用前景[8-13]。
當前使用的方法普遍需要消耗人力物力建立規(guī)則和提取特征,當該類方法應(yīng)用于數(shù)據(jù)豐富的商品評論情感分類任務(wù)時,通常需要花費大量時間進行規(guī)則建立與特征提取。針對上述問題,本文提出基于XL-GSAtMSC 的商品評論情感分類模型,運用神經(jīng)網(wǎng)絡(luò)進行特征自動提取,通過與各類機器學(xué)習(xí)模型進行研究對比驗證了該模型的有效性與實用性。
卷積神經(jīng)網(wǎng)絡(luò)[14](Convolutional Neural Networks,CNN)之前用來解析圖片,現(xiàn)用于NLP 領(lǐng)域。CNN 一般由卷積、池化與全連接三層所構(gòu),如圖1 所示。2014 年,Kim[14]使用提前生成的詞向量來表達文本,利用卷積層提取特征進行分類。CNN 主要用于提取局部特征,因而忽略了文本上下文語義關(guān)系,對文本情感傾向性判斷有一定影響。
Fig.1 The structure of CNN圖1 CNN 結(jié)構(gòu)
循環(huán)神經(jīng)網(wǎng)絡(luò)[15](Recurrent Neural Network,RNN)通常用于時序序列數(shù)據(jù),通過神經(jīng)元之間的連接形成有向循環(huán),使神經(jīng)元對前序的輸出信息進行記憶,并在當前輸出中應(yīng)用,因此它能對輸入序列可變的數(shù)據(jù)進行處理。該網(wǎng)絡(luò)的記憶功能能在文本處理時考慮上文語義信息,因此廣泛應(yīng)用于NLP 任務(wù),如情感分析、機器翻譯和智能問答等子領(lǐng)域[16]。在實際應(yīng)用中,RNN 采用線性序列結(jié)構(gòu)進行反向傳播,易導(dǎo)致梯度消失和梯度爆炸等問題,且難以并行運算。
Attention 機制[17]前期用來處理圖片,2014 年Bahdanau等[18]在文本翻譯時最先把Attention 機制結(jié)合NLP 使用,利用Attention 機制直接建立源語句與目標語句的聯(lián)系,解決Seq2Seq(Sequence to Sequence)[19]無法處理長語句的缺陷,由此引發(fā)Attention 機制研究熱潮。Attention 函數(shù)的本質(zhì)可以描述為一個查詢(query)到一系列鍵—值對(key-value)的映射。Attention 函數(shù)公式如式(1)所示,計算流程如圖2所示。
Fig.2 Attention calculation process圖2 Attention 計算流程
自回歸語言模型[20](Auto Regressive Language Model)是根據(jù)前文的文本內(nèi)容預(yù)測下一個可能出現(xiàn)的單詞語言模型,即自左向右或自右向左的語言模型。該模型在結(jié)構(gòu)設(shè)計上天然匹配自然語言生成任務(wù),如文本摘要、機器翻譯等。由于該模型結(jié)構(gòu)設(shè)計上的缺陷,只能單獨使用上文或下文信息,無法同時使用上下文信息。自回歸語言模型如式(2)所示。
本文模型架構(gòu)如圖3 所示,由輸入層、XLNet 層、Bi-GRU 層、Self-Attention 層、MSCNN 層、Softmax層和輸出層組成。其中,輸入層、XLNet 層將切分詞轉(zhuǎn)為數(shù)字表達,Bi-GRU層、Self-Attention 層、MSCNN層提取文本向量特征,Softmax 層對特征進行計算和分類,輸出層輸出結(jié)果。
Fig.3 The structure of model圖3 Model 結(jié)構(gòu)
為保證數(shù)據(jù)的真實性與可靠性,本文以網(wǎng)絡(luò)購物平臺京東商城的電子產(chǎn)品評論作為數(shù)據(jù)集進行情感分類研究。將網(wǎng)站獲取的用戶評論文本作為原始數(shù)據(jù)集,并使用人工標注的方法將文本進行初步情感分類,情感分為正面情感、負面情感和中性情感3 類[21]。文本預(yù)處理流程如圖4所示。
Fig.4 Text preprocessing flow圖4 文本預(yù)處理流程
由于原始數(shù)據(jù)集中存在語料重復(fù)、評論內(nèi)容包含無用符號等情況,若不進行數(shù)據(jù)清洗直接使用原始數(shù)據(jù)集,可能無法從評論文本中獲取正確的情感傾向性,從而導(dǎo)致模型準確率降低。
中文分詞是數(shù)據(jù)預(yù)處理的一個重要環(huán)節(jié),目的是將句子劃分為一個個單獨的詞語,通過獨立詞獲取整個句子的語義信息。數(shù)據(jù)集因包含較多網(wǎng)絡(luò)用語,以及在線評論文本的特殊性,易導(dǎo)致普通的情感詞典無法準確分詞。本研究將網(wǎng)絡(luò)用語詞與口語化情感詞添加進自定義情感詞典以提高中文分詞的準確性,并使用基于Python 語言的分詞工具jieba 分詞進行中文分詞。
停用詞通常指某類在文本分析中無用、無實義的詞。為了加快模型訓(xùn)練與運行,應(yīng)刪掉這類停用詞。本文使用“百度停用詞表”去停用詞,去除停用詞后有利于更好地判斷電商評論文本要表達的情感極性[22]。
文本預(yù)處理后得到20 000 條評論文本數(shù)據(jù)集,其中正面情感7 012 條,中性情感5 711 條,負面情感7 277 條,分別占比35%、28.6%和36.4%。在本模型中,將處理好的文本分為3 部分:訓(xùn)練樣本用于訓(xùn)練模型,驗證樣本用于驗證模型,測試樣本用于測試模型,配比為7∶1∶2。正面情感數(shù)據(jù)集樣例:“用一段時間感覺還不錯可以”;負面情感數(shù)據(jù)集樣例:“屏幕不錯但是音質(zhì)很差完全沒有高低音可言介意音效 慎重”;中性情感數(shù)據(jù)集樣例:“榮耀的性價比不高想說愛你不容易”。
XL-GSAtMSC 模型由XLNet層、Bi-GRU 層、Self-Attention 層和MSCNN層組成。
2.2.1 XLNet 層
當前NLP 任務(wù)大都使用Word2Vec 和Glove 預(yù)訓(xùn)練詞向量,本文選用XLNet 生成詞向量,因為它能更好體現(xiàn)句子層語義在空間上的關(guān)系。XLNet 屬于自回歸語言模型的變體,為解決自回歸語言模型只能單獨使用上文或者下文信息的缺點,引入排列語言模型(Permutation Language Model,PLM)和雙流自注意力。
PLM 在保證位置編碼不變的情況下,將輸入序列順序打亂,但是預(yù)測順序仍按原始位置順序編碼進行預(yù)測。如果遍歷所有分解方法PLM 就能學(xué)習(xí)到所有預(yù)測詞的上下文信息,XLNet 就只對隨機排列后的末尾數(shù)詞進行預(yù)測。
PLM 的結(jié)構(gòu)缺陷會導(dǎo)致無法知道下一個預(yù)測詞為何詞,因此需使用雙流自注意力解決這個問題。雙流自注意力有兩個分離的信息流,分別是查詢流和內(nèi)容流。使用查詢流的目的是找到所需預(yù)測詞,該流Query 輸入為預(yù)測詞的位置信息;內(nèi)容流為查詢流提供其它詞的內(nèi)容向量,該流Query 輸入為預(yù)測詞的內(nèi)容信息和位置信息。
XLNet 主體結(jié)構(gòu)為Transformer-XL,原始Transformer 結(jié)構(gòu)會導(dǎo)致無法捕獲更長遠文本的語義信息,因此Transformer-XL 采用片段級遞歸機制和相對位置編碼機制對原始Transformer 進行結(jié)構(gòu)優(yōu)化。片段級遞歸機制在當前時刻計算時,通過循環(huán)遞歸方式利用上一時刻的隱藏狀態(tài)信息,使每次計算可以利用更大范圍的上下文信息,但是由于片段級遞歸機制會導(dǎo)致位置編碼的重疊,因此采用相對位置編碼。
2.2.2 Bi-GRU 層
門控循環(huán)單元(Gate Recurrent Unit,GRU)是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 的一種變體,與長短期記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)一樣可以學(xué)習(xí)單詞之間的長距離依賴關(guān)系,并能有效解決RNN 梯度消失和優(yōu)化困難等問題。大多數(shù)情況下GRU 與LSTM 模型效果相差不大,但是GRU將LSTM 的“遺忘門”和“輸入門”合并為單獨的“更新門”,同時也合并了cell state 和hidden state,使GRU 結(jié)構(gòu)比LSTM簡化很多,大大加快了模型的收斂速度,提高了訓(xùn)練效率。
單向GRU 只能使用之前時刻的時序特征進行后續(xù)時刻輸出的預(yù)測,但忽略了未來的時序特征。在文本分析中,當前時刻詞語的預(yù)測不僅與之前的時序信息相關(guān),還可能與后續(xù)的文本信息相關(guān),若忽略下文信息可能導(dǎo)致預(yù)測結(jié)果不準確。因此,本模型采用雙向GRU(Bi-GRU)的網(wǎng)絡(luò)結(jié)構(gòu),不僅能獲取當前時刻詞前文本的有效信息,還能保留當前詞后文本的重要信息,最終基于這些重要信息對當前時刻詞進行預(yù)測。
2.2.3 Self-Attention 層
Self-Attention 是注意力機制的變體。實際上卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)都是對長文本序列的“局部編碼”,無法輕易建立輸入序列的長距離依賴特征,需要進行若干步驟計算累加才能捕獲長距離依賴特征,距離越遠越難捕獲。而Self-Attention 能生成任意兩個單詞的連接權(quán)重,借此建立遠距離依賴特征,從而能處理長文本序列。因為Self-Attention 中的Query 是對自身輸入的變換,而經(jīng)典Attention 的Query 是對外部輸入的變換。
在Bi-GRU 層后添加Self-Attention 層不僅能在一定程度上減輕GRU 的長期記憶負擔,還能學(xué)習(xí)到長文本內(nèi)部的遠距離依賴特征。除此之外,Self-Attention 還能增加并行運算,提高模型處理效率。
2.2.4 MSCNN 層
多核跳躍CNN(Multi-Skip CNN,MSCNN)能抽取豐富文本特征,運用融合數(shù)個尺寸卷積核的卷積層對Bi-GRU層的提取特征進行卷積操作。單尺寸核不能抽取數(shù)個類別特征,抽取數(shù)個特征需同時采取數(shù)個不同尺寸卷積核,一個卷積核可以抽取單類別特征,獲取縱向差異信息。研究表明,先用一組大小為2、3、4 的一維卷積核進行初步特征提取,再分別接入大小為2 的一維卷積核進行視野擴大,能充分提取文本特征。
卷積層獲取的特征為高維特征,著重詞語在語序中的信息,有時可能忽略了詞語本體語義信息。本模型在傳統(tǒng)CNN 的基礎(chǔ)上進行改進,添加Skip 層,直接引入Bi-GRU 輸出特征,保留較多的低維特征,對卷積層提取特征起到信息補充作用。跳躍層打破對稱性、線性依賴性,增強了網(wǎng)絡(luò)的泛化能力,避免為網(wǎng)絡(luò)引入多余參數(shù)與過多計算,在節(jié)省模型訓(xùn)練時間的同時增強模型準確率。
將Bi-GRU 提取的特征進行跳躍處理后直接進行pooling 處理,與池化層輸出特征進行拼接,最后進行矩陣拉伸輸出到分類層。MSCNN 結(jié)構(gòu)如圖5 所示。
Fig.5 The structure of MSCNN圖5 MSCNN 結(jié)構(gòu)
為保證各模型對比的公平性,本研究中所有模型都在相同環(huán)境下進行。本文使用當前構(gòu)建深度學(xué)習(xí)模型與處理數(shù)據(jù)的主流語言Python,使用的深度學(xué)習(xí)框架為工業(yè)界主流的Tensorflow 框架進行實驗,實驗環(huán)境參數(shù)如表1 所示。
Table 1 Experimental environmental parameters表1 實驗環(huán)境參數(shù)
為了對分類模型效果進行有效評測,本研究使用準確比(Accuracy)、精確比(Precision)、查全比(Recall)和F1 值(F1)這4 項測評標準,各測評標準公式分別如式(3)、(4)、(5)、(6)所示。
TP(True Positive)為把正樣本識別成正類的個數(shù),TN(True Negative)為把負樣本識別成負類的個數(shù),F(xiàn)P(False Positive)為把負樣本識別成正類的個數(shù),F(xiàn)N(False Negative)為把正樣本識別成負類的個數(shù)。
本研究設(shè)計多個模型進行對比,其中傳統(tǒng)機器學(xué)習(xí)模型為SVM、Bayes 和Logistic Regression(LR),深度學(xué)習(xí)模型為XL-GSAtMSC,對比結(jié)果如表2 所示。
Table 2 Model results表2 模型結(jié)果
從表2 可以看出,傳統(tǒng)機器學(xué)習(xí)模型SVM、Bayes 和LR在評論情感多分類任務(wù)中各類評價指標數(shù)據(jù)相近,而本文提出的改進深度學(xué)習(xí)模型XL-GSAtMSC 在相同任務(wù)中各類評價指標數(shù)據(jù)均高于機器學(xué)習(xí)模型10%左右。由此可見,XL-GSAtMSC 對商品評論的情感多分類具有較好的實用性和較高的準確性。
本文提出的XL-GSAtMSC 模型著重于CNN 與RNN 改進內(nèi)部結(jié)構(gòu)的優(yōu)化設(shè)計,并基于XLNet 改進文本矩陣化表示方式。從研究結(jié)果可以看出,該模型較傳統(tǒng)情感詞典和機器學(xué)習(xí)方法有很大優(yōu)勢,既克服了傳統(tǒng)情感詞典方法中領(lǐng)域詞典不足的缺陷,又不用人為提取特征,預(yù)測結(jié)果得到很大提升,證明該模型可行及具有實用性。但本研究尚未與基于CNN 與RNN 改進的其它模型進行實驗和比較,后續(xù)將從該方向拓展。