楊書新,張 楠
(江西理工大學信息工程學院,江西贛州 341000)
近年來,隨著網(wǎng)絡的高速發(fā)展,人們對社交媒體的使用程度逐漸提高,越來越多的人愿意在微博、Twitter、Facebook 等社交網(wǎng)絡平臺上表達自己對某件事或某樣東西的態(tài)度或看法,這就產(chǎn)生了大量帶有情感傾向的文本數(shù)據(jù)。通過對這些文本數(shù)據(jù)進行情感分析,可以更好地理解用戶對產(chǎn)品的情感傾向或者對某熱點事件的關注程度,由此情感分析技術應運而生。情感分析技術就是處理文本中帶有情感極性的短語或句子的技術[1]。
利用機器識別句子情感極性并不容易,目前主要的做法有根據(jù)情感詞典的規(guī)則判斷方法和基于傳統(tǒng)機器學習統(tǒng)計方法?;谠~典的方法[2]主要是利用人工標注的詞典對句子中的單詞進行極性篩選,然后將這些情感分數(shù)累加求均值進行極性判斷;但該方法只考慮單個詞的語義信息,沒有考慮上下文的語義信息。傳統(tǒng)的基于機器學習的方法采用統(tǒng)計學方法,從大量的標注數(shù)據(jù)中選取特征,然后利用樸素貝葉斯、支持向量機(Support Vector Machine,SVM)、決策樹等機器學習算法對文本進行情感分類[3-4]。該方法雖然在一定程度上提高了分類的準確率,分類速度也有提升,但是在面向大樣本時表現(xiàn)不佳,在多分類任務中效果變差,并且對人工標注的需求極大。隨著大數(shù)據(jù)時代的到來,深度學習方法在自然語言處理情感分析方面有了很多的應用。Wang 等[5]提出利用長短時記憶(Long Short-Term Memory,LSTM)遞歸網(wǎng)絡對Twitter數(shù)據(jù)進行情緒預測,在否定測試集上的優(yōu)異表現(xiàn)表明LSTM 模型具有非常好的捕獲長序列信息特征的能力。之后,LSTM又被拓展為雙向LSTM 以及門控循環(huán)單元(Gated Recurrent Unit,GRU)等變體模型。Kim[6]將圖像領域的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)首次引入到自然語言處理進行句子分類,發(fā)現(xiàn)CNN 可以捕捉文本的局部特征,極大地提高分類效果。
使用深度學習技術進行情感分析最大的難點就是怎么表示詞向量。現(xiàn)有的方法大都利用one-hot、Word2Vec[7]、GloVe(Global Vectors for word representation)[8]等詞嵌入工具生成詞向量,但是上述詞嵌入工具在針對例如“bug”等多義詞時則會出現(xiàn)無法表示多義詞向量的情況,根據(jù)訓練語料主題的不同,有可能表示程序錯誤的意思,也有可能表示小昆蟲的意思。如果使用詞嵌入技術,向量無法同時表示這兩種意思。為了解決這個問題,本文提出了一種基于上下文語言模型ELMo(Embedding from Language Model)的文本情感分析模型SLPELMo(Sentiment Lexicon Parallel-ELMo),該模型不僅能夠表示單詞自身的語義信息,還能表示單詞的上下文信息,能根據(jù)不同的上下文產(chǎn)生不同的詞向量,可以解決類似“bug”多義詞的語義表達問題。雖然現(xiàn)有的工作已經(jīng)可以針對上下文生成不同的詞向量,但是在對文本進行特征提取時依舊存在特征提取不充分的問題,導致語義單一,所以本文模型在已有的工作基礎上又融合了情感詞典等外在信息,使語義單一問題得到了進一步的解決。為了提高訓練速度,本文還使用字符卷積神經(jīng)網(wǎng)絡(char-CNN)初始化ELMo模型的輸入層。
情感詞典能夠體現(xiàn)文本的非結構化特征,它是文本情感分析所需的重要資源,研究者們對此給予了極大的關注。
Paltoglou 等[9]在更常見的非正式文本例如在線討論以及Twitter等社交網(wǎng)絡上,提出了一種無監(jiān)督的、基于詞匯的方法評估文本中包含的情感極性并預測,實驗準確率可達86.5%;Qiu 等[10]等提出了一種基于規(guī)則的方法,提取與負面情緒相關的觀點句的主題詞來作為廣告的關鍵詞,在automotiveforums.com 論壇語料庫的實驗中,準確率可達55%;Jiang 等[11]在文獻[10]的基礎上對情感詞典特征進行了擴充,在Twitter語料的實驗中,分類準確率可達85.6%。隨著網(wǎng)上一些新詞匯的大量出現(xiàn),基于情感詞典的方法在這些新的語料上表現(xiàn)不佳,甚至出現(xiàn)錯誤,并且靈活度不高。對此研究人員開展了基于機器學習的情感分析方法的研究。
傳統(tǒng)的機器學習一般是基于統(tǒng)計學的分類方法。Pang等[12]通過比較SVM、最大熵算法和樸素貝葉斯算法在一元特征、二元特征、位置等多種特征下的分類效果,在電影影評數(shù)據(jù)上,發(fā)現(xiàn)SVM和一元特征組合的效果最好,可達82.9%;之后,Tang等[13]提出了一種情感特定詞嵌入的方法,該方法將特定情感詞與手工選擇的表情符號和語義詞典結合,然后利用SVM進行情感分類,在Twitter語料上準確率可達87.6%。
自Hinton 等[14]提出了深度學習后,深度學習在計算機視覺領域取得了巨大的成就,大量自然語言處理領域的學者嘗試引入深度學習的方法,研究發(fā)現(xiàn)深度學習方法可以表征文本中更加深層的語義信息,而且基于此的分類方法準確率得到了大幅度的提高。在Bengio等[15]提出了神經(jīng)網(wǎng)絡語言模型后,自然語言處理中的預訓練技術開始逐漸發(fā)展起來。Peters等[16]在上述研究的基礎上,提出了一種基于LSTM 的雙層雙向預訓練語言模型ELMo,該模型通過兩層隱向量以及一層詞嵌入向量的線性組合可以動態(tài)地表示詞嵌入向量。趙亞歐等[17]提出了一種融合ELMo 與多尺度卷積神經(jīng)網(wǎng)絡的情感分析模型,在ELMo 的基礎上使用多尺度卷積網(wǎng)絡對詞向量特征進行二次提取,實驗結果表明該方法有效提升了分類效果。
為了實現(xiàn)文本中情感單詞的篩選、解決情感分析中語義單一的問題,本文提出了融合情感詞典與上下文語言模型的情感分析模型SLP-ELMo。該模型主要由4 部分組成,結構如圖1所示。
圖1 SLP-ELMo模型結構Fig.1 Architecture of SLP-ELMo model
本文模型的第1 部分是詞嵌入層,主要功能是采用情感詞典對語料中帶有情感分數(shù)的單詞和短語進行篩選處理,并將其進行向量化表示。本文使用的詞典是情感詞典SentiWordNet 3.0,包含有117 659 條記錄,每條詞條有6 列信息:第1 列POS(Part Of Speech)表示詞性,第2 列ID 表示詞條編碼,第3 列PosScore 表示正向情感值,第4 列NegScore 表示負向情感值,第5 列SynsetTerms 表示同義詞,第6 列Gloss 表示該詞注釋。SentiWordNet 3.0的部分內(nèi)容如圖2所示。
圖2 情感詞典Fig.2 SentiWordNet
詞嵌入層工作的具體步驟如下:首先對語料進行清洗,去除句子中的鏈接地址(Uniform Resource Locator,URL)、表情符號等;然后將文本字母小寫化。由于在SentiWordNet 中單詞或短語對應不同的詞性具有不同的情感值,因此在與詞典匹配前需要利用Python 的自然語言工具包(Natural Language ToolKit,NLTK)對單詞進行詞性標注;最后再利用情感詞典對語料進行篩選,篩選出句子中帶有情感分數(shù)的單詞和短語。篩選出單詞和詞組之后,利用Word2Vec 模型訓練,得到詞嵌入向量。具體做法是對于第k個詞wk,首先獲取其one-hot 編碼hotk,one-hot 編碼維度為整個詞典的大小Nchar,然后與維度為Nchar×Dchar的嵌入矩陣Mw2v相乘,得到該詞維度為Dchar的緊致編碼Ck,即詞嵌入向量,計算如式(1)所示:
SLP-ELMo 模型第2 部分是語義學習層。該層將情感詞典篩選出的單詞wk輸入到char-CNN 進行卷積操作,再利用ELMo訓練,得到詞嵌入向量,再將詞嵌入向量通過雙向LSTM模型訓練成帶有上下文語義信息的ELMo 詞向量ELMok。ELMo模型結構如圖3所示。
圖3 ELMo模型結構Fig.3 Architecture of ELMo model
ELMo 模型與神經(jīng)網(wǎng)絡語言模型(Neural Network Language Model,NNLM)思想類似,也是通過構造語言模型來預測下一個詞,從而獲取詞向量。一個含有n個詞的句子S={w1,w2,…,wi,…,wn},第k個詞wk出現(xiàn)的概率P(wk)與前面k-1 個詞(w1,w2,…,wk-1)有關,因此整個句子出現(xiàn)的概率P(w1,w2,…,wk-1)計算如式(2)所示:
若使用LSTM 來建模語言模型,則單詞wk對應LSTM 的隱層狀態(tài)hk。如果LSTM 有L層Cell,則單詞wk共有L個隱層狀態(tài)。將最后一層輸入softmax 得到輸出ok,ok為語言模型中單詞wk出現(xiàn)的概率P(wk|w1,w2,…,wk-1)。
上一步是對前向模型建模,但一個單詞wk不僅可以順序預測,也可以逆向預測,因此,對后向模型建模。將(wn,wn-1,…,wk+1)依次輸入后向模型,得到隱層狀態(tài)。同理,得到輸出ok',ok'為后向語言模型中單詞wk出現(xiàn)的概率
ELMo 采用L=2的BiLSTM(Bi-directional LSTM)結構,另外在兩層Cell 之間還有一層殘差連接,作用是把第1 層LSTM的輸入加到LSTM的輸出上,目的是保持網(wǎng)絡訓練的穩(wěn)定。
最后每個單詞可以生成3個Embedding,分別是單詞wk對應的詞嵌入層向量、第1層LSTM的隱層輸出、第2層LSTM 的隱層輸出,最后將3個Embedding 線性組合,獲得wk的ELMo向量表示,其計算如式(3)所示:
其中:γ是控制ELMo向量組合大小的參數(shù);s是softmax層間歸一化的參數(shù)。
因為BiLSTM 有兩層,深層的Embedding 會帶有更多的語義信息,因此本文只選取ELMok詞向量的最后一層作為情感分類的基向量,并通過在最后1層添加注意力機制的方法調整權重,以達到更好訓練詞向量的目的,以此作為新的ELMo 詞向量outputatt。具體做法是對于第i個詞wi,將BiLSTM 最后1 層該詞的輸出(i=1,2,…,n)通過tanh函數(shù)得到向量,再對調用softmax函數(shù)得到注意力權重,計算式如式(4)、(5)所示:
其中:αi表示第i個詞對于當前文本的重要程度;Watt和batt為注意力權重矩陣和偏置,可通過訓練語料自動學習。最后,通過加權平均方法得到新的ELMo詞向量outputatt,如式(6):
SLP-ELMo 模型第3 部分是特征融合層,通過將新的ELMo 詞向量outputatt與詞嵌入向量Ck并行融合,作為分類層的輸入,計算式如式(7):
SLP-ELMo 模型第4 部分是分類層,該層通過接收上述得到的融合特征inputclassify,經(jīng)過softmax 函數(shù)在分類層輸出正向或負向分類概率Pc,其計算式如式(8)、(9):
其中:Wclassify、bclassify分別為權重矩陣和偏置向量;C為分類類別數(shù)。
最后模型使用整個句子中所有單詞wk對應概率乘積的最大似然作為損失函數(shù),其計算式如式(10)所示:
本文的實驗在兩個數(shù)據(jù)集上進行:1)IMDB 影評數(shù)據(jù)集,平均詞數(shù)為268,屬于長文本數(shù)據(jù)集;2)斯坦福影評情感樹庫(Stanford Sentiment Treebank,SST-2)數(shù)據(jù)集,其中SST 數(shù)據(jù)集數(shù)據(jù)標簽為5 類,通過去除其中的中立評論數(shù)據(jù),將數(shù)據(jù)集劃分為2 分類數(shù)據(jù)集,平均詞數(shù)為19,屬于短文本數(shù)據(jù)集。IMDB和SST-2的訓練集和測試集規(guī)模信息如表1所示。
表1 實驗數(shù)據(jù)集Tab.1 Datasets for experiments
本實驗采用準確率(Accuracy,Acc)、召回率(Recall,R)、F1 值(F1-measure)、查準率(Precision,P)作為實驗的評價標準對模型進行評價,其中,召回率R 是針對原來的樣本而言的,它表示樣本中的正例有多少被預測正確;查準率是針對預測結果而言的,它表示預測為正的樣本有多少是真正的正樣本;F1 分數(shù)則是P和R指標的調和平均值,同時考慮兩者,使兩者都達到最高,取得平衡。使用這些指標可以全面評估模型的效果。準確率Acc、召回率R、查準率P和F1 值分別定義為式(11)、(12)、(13)、(14):
其中:TP(True Positive)、TN(True Negative)、FP(False Positive)、FN(False Negative)的含義如表2所示。
表2 分類結果混淆矩陣Tab.2 Confusion matrix of classification results
模型第一部分訓練詞嵌入向量時采用Word2Vec 工具,Word2Vec詞嵌入的維度、LSTM 隱層維度、ELMo 的輸出維度、char-CNN 模型dropout 率、學習率、IMDB 語料的批尺寸、SST-2語料的批尺寸、模型的正則化等參數(shù)設置如表3所示。
表3 所提模型參數(shù)設置Tab.3 Parameter setting of the proposed model
為了驗證本文提出的情感分析模型SLP-ELMo 的有效性,將其與CNN 模型、LSTM 模型、Bi-LSTM 模型以及融合了注意力機制與LSTM的CWPAT-Bi-LSTM模型、W2V-Att-LSTM模型分別在IMDB和SST-2兩個數(shù)據(jù)集上進行實驗對比。
1)CNN模型:原始卷積網(wǎng)絡模型,利用不同的卷積核對語料進行卷積,提取特征,最后輸入一個池化層進行分類。
2)LSTM 模型:單向的LSTM 網(wǎng)絡模型,只能順序從前往后對語料進行特征提取,使用最后一個隱層向量更新參數(shù)。
3)Bi-LSTM 模型:基于LSTM 網(wǎng)絡的雙向模型,能對單詞前面和后面的詞同時進行特征提取,融合了單詞過去和未來的信息。
4)趙富等[18]提出的融合詞性的雙注意力機制的雙向長短期記憶網(wǎng)絡模型(Character,Word and Part of-speech ATtention model based on Bidirectional Long Short-Term Memory,CWPAT-Bi-LSTM),該模型融合了字、詞和詞性的深層語義特征,并用注意力機制加權有情感信息的部分進行情感分析。
5)胡榮磊等[19]提出的基于循環(huán)神經(jīng)網(wǎng)絡和注意力機制的模型(Word2Vec-Attention Long Short-Term Memory,W2V-Att-LSTM),其方法是將長短時記憶網(wǎng)絡模型和前饋注意力模型相結合,利用Word2Vec 工具訓練詞向量作為LSTM 的輸入,之后再利用注意力機制對輸出特征進行進一步的特征提取,最后輸入分類器進行情感分析。
各個模型在IMDB 數(shù)據(jù)集上的實驗結果如表4 所示。從表4可以看出,在IMDB 數(shù)據(jù)集上,LSTM 模型及其拓展模型的效果均優(yōu)于CNN 模型,添加了注意力機制的模型整體效果優(yōu)于單一模型的分類效果。Bi-LSTM 模型由于增加了后向傳播單元,可以同時考慮上下文信息,所以分類效果較LSTM 模型更好。CWPAT-Bi-LSTM 模型和W2V-Att-LSTM 模型都基于Bi-LSTM 和注意力機制,但后者因為使用了Word2Vec 工具對語料進行了預訓練,相較單純?nèi)诤献衷~和詞性來說,Word2Vec 詞向量對特征的表征效果更好。本文提出的SLPELMo 融合模型在LSTM 和注意力機制的基礎上又在輸入層進行了字符卷積,增加了模型的通用性,在分類層融合了Word2Vec 詞向量,充分發(fā)揮了融合方法的優(yōu)勢。從整體來看,在長文本數(shù)據(jù)集上,SLP-ELMo 模型在準確率、召回率、F1值等性能指標方面都優(yōu)于其他對比模型。
表4 IMDB數(shù)據(jù)集上的實驗結果 單位:%Tab.4 Experimental results on IMDB dataset unit:%
各個模型在SST-2 數(shù)據(jù)集上的實驗結果如表5 所示。從表5 可以看出,在SST-2 數(shù)據(jù)集上,CNN 模型卻比LSTM 模型分類效果更好,這表明CNN 模型在短文本(SST-2)上對文本信息特征的提取要比LSTM 模型好。結合表4的結果,可以發(fā)現(xiàn)CNN 模型提取局部特征的能力更強,LSTM 模型提取單詞上下文的能力更突出。對比表4 可以看出,雖然數(shù)據(jù)集的語料長短不同,但本文提出的SLP-ELMo 模型融合了CNN 和LSTM 的優(yōu)點,在兩個數(shù)據(jù)集上各個性能指標方面都表現(xiàn)優(yōu)異,表明本文模型具有很好的泛化能力。
表5 SST-2數(shù)據(jù)集上的實驗結果 單位:%Tab.5 Experimental results on SST-2 dataset unit:%
自然語言處理中情感分析的實驗對比一般用準確率的值來衡量實驗效果,結合表4 和表5 中數(shù)據(jù)可以看出,本文提出的模型在不同的數(shù)據(jù)集上準確率都有明顯的優(yōu)勢。在長文本特征提取上,由于Bi-LSTM 記憶了前向與后向的語義信息,因此模型效果非常顯著。本文提出的基于Bi-LSTM 的SLPELMo 模型比目前分類效果較好W2V-Att-LSTM 準確率在IMDB 數(shù)據(jù)集上提升了3.2 個百分點,在SST-2 數(shù)據(jù)集上比W2V-Att-LSTM模型準確率提升了2.4個百分點。
實驗還從Loss 值與訓練輪次的角度進行對比,比較了原始ELMo 模型與本文模型的Loss 值與訓練輪數(shù)之間的關系。實驗分別在IMDB 數(shù)據(jù)集和SST-2數(shù)據(jù)集上進行。根據(jù)每150輪的損失值記分,然后輸出打印,實驗一共3 150 輪,記分21次。對比結果如圖4和圖5所示。
從圖4 可以看出,本文模型在前600 輪以內(nèi)收斂快于ELMo 模型,模型的準確率更高;600 輪以后兩個模型逐漸趨于平穩(wěn),本文模型Loss值較ELMo模型更低,誤差更小。
從圖5 可以看出,兩模型的誤差線要小于圖4 中,表明在短文本數(shù)據(jù)集上兩模型的損失值更接近,也說明兩模型更適合于較長文本。
圖4 IMDB數(shù)據(jù)集上的Loss值訓練曲線Fig.4 Training curve of Loss value on IMDB dataset
圖5 SST-2數(shù)據(jù)集上的Loss值訓練曲線Fig.5 Training curve of Loss value on SST-2 dataset
對比圖4 和圖5 可以看出,本文模型都比原始ELMo 模型Loss值更低,這表明本文模型不僅在準確率上有更好的表現(xiàn),在收斂速度上也有優(yōu)勢。
另外,本文研究的問題是二分類問題,所對應的損失函數(shù)為0-1 損失,所以Loss 值本身映射的是分類準確度。對比圖4~5,在SST-2 數(shù)據(jù)集上的Loss 值整體高于IMDB 數(shù)據(jù)集上的Loss值,這表明長文本中所帶的特征要多于短文本,因此在訓練時模型可以從長文本中學習到更多的特征,分類準確率更高。
本文提出了一種融合情感詞典與上下文語言模型的情感分析模型SLP-ELMo,可以根據(jù)上下文動態(tài)調整單詞的詞嵌入,解決了詞嵌入表示語義單一的問題。此外,該模型在詞嵌入層使用了字符卷積,使詞向量變?yōu)樽址壪蛄浚苡行П苊猱a(chǎn)生未登錄詞(Out Of Vocabulary,OOV)的問題。在長短文本數(shù)據(jù)集上分別進行實驗,實驗結果表明本文模型有很好的通用性以及收斂性。
本文模型在特征提取能力上有所欠缺,而且ELMo 模型是預訓練模型,需要大量的語料才能訓練出好的模型,否則在訓練集以及測試集上就會出現(xiàn)過擬合的問題。而Transformer模型基于CBOW 的思想提出了Masked 語言模型很好地解決了這個問題,基于自注意力機制的Transformer 模型在自然語言處理領域打破了多個任務的最新記錄。下一步將嘗試把Transformer 模型與Bi-LSTM 模型融合,發(fā)揮各自模型的優(yōu)勢,研究分類效果更好的模型。