楊 杰,楊文軍
(天津理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,天津 300384)
自然語言處理中的情感分析任務(wù),是采用計(jì)算機(jī)輔助手段,基于文本,分析人們對(duì)于產(chǎn)品、服務(wù)、組織、個(gè)人、事件、主題及其屬性等實(shí)體對(duì)象所持的意見、情感、評(píng)價(jià)、看法和態(tài)度主觀的感受[1].
文本情感分析(Sentiment Analysis)是指利用自然語言處理和文本挖掘技術(shù),對(duì)帶有情感色彩的主觀性文本進(jìn)行分析、處理和抽取的過程.文本分類在情感分析中應(yīng)用,從而引申出了文本分類技術(shù).文本分類利用自然語言處理、數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等技術(shù),可以有效地對(duì)不同類型的文本進(jìn)行分析[2].隨著深度學(xué)習(xí)概念的大火,研究者逐漸嘗試使用深度學(xué)習(xí)模型處理文本分類任務(wù).其中模型大致可以分為兩類,卷積神經(jīng)網(wǎng)絡(luò)(CNN)[3]和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN).
本文中的情感分析的研究是通過對(duì)文本評(píng)論進(jìn)行情感分類,即對(duì)文本內(nèi)容進(jìn)行特征提取后再進(jìn)行文本分類任務(wù)[4].
Word2Vector是Google在2013年開源的一款用于詞向量計(jì)算的工具.在原文中,作者提出了兩個(gè)新穎的模型架構(gòu)用來計(jì)算大規(guī)模數(shù)據(jù)集中的連續(xù)詞向量,分別是CBOW(Continuous Bag-of-Word Model)模型架構(gòu)與Skip-gram模型架構(gòu).其中CBOW模型的訓(xùn)練輸入是某一個(gè)特征詞的上下文相關(guān)的詞對(duì)應(yīng)的詞向量,而輸出就是這特定的一個(gè)詞的詞向量,Skip-Gram模型和CBOW的思路是反著來的,即輸入是特定的一個(gè)詞的詞向量,而輸出是特定詞對(duì)應(yīng)的上下文詞向量.Word2Vector是從大量文本語料中以有監(jiān)督的方式學(xué)習(xí)語義知識(shí)的一種模型.其原理是通過學(xué)習(xí)文本,用詞向量的方式表征詞的語義信息,即通過一個(gè)嵌入空間使得語義上相似的單詞在該空間內(nèi)距離很近.
BERT模型是谷歌公司AI團(tuán)隊(duì)在2018年發(fā)布的模型.該模型基于Transformers的雙向編碼器表示,與最新的語言表示模型不同,BERT被設(shè)計(jì)為通過在所有層的左和右上下文上共同進(jìn)行條件預(yù)處理來從未標(biāo)記的文本中預(yù)訓(xùn)練深層雙向表示[5].BERT在一些自然語言處理任務(wù)上獲得了很好的結(jié)果[6].
BERT模型的架構(gòu)是一個(gè)多層雙向的Transformer解碼器.模型的主要?jiǎng)?chuàng)新點(diǎn)是在預(yù)訓(xùn)練方法的改進(jìn),即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級(jí)別representation.其模型通過雙向訓(xùn)練語句,BERT旨在通過聯(lián)合調(diào)節(jié)所有層中的上下文來預(yù)先訓(xùn)練深度雙向表示.BERT模型主要的任務(wù)是進(jìn)行詞向量的獲取,通過對(duì)海量文本的學(xué)習(xí),分析不同單位token之間的關(guān)系,將關(guān)系反映到詞向量中.最早開始在NLP領(lǐng)域中是通過詞典的方式將文本分詞后進(jìn)行編碼,之后放入計(jì)算機(jī)進(jìn)行不同的下游任務(wù)處理,由于詞典編碼的方式具有明顯的缺點(diǎn):浪費(fèi)存儲(chǔ)空間和不能體現(xiàn)詞語之間的相關(guān)關(guān)系,Word2Vector出現(xiàn)了[7].Word2Vec的含義是將每個(gè)token通過訓(xùn)練得到詞向量,但是由于輸入的文本以句子為單位,同一個(gè)token在不同的句子中表達(dá)的含義不一定相同,簡(jiǎn)單說可能存在一詞多義的情況.BERT模型采用兩階段的模型訓(xùn)練.一階段使用雙向語言模型預(yù)訓(xùn)練,第二階段采用具體任務(wù)fine-tuning或者做特征集成;同時(shí)第二階段的特征提取采用了transformer結(jié)構(gòu)作為特征提取器而沒有采用傳統(tǒng)的RNN或CNN框架.所以BERT訓(xùn)練后的詞向量效果更好,普適性強(qiáng).
BERT模型是基于transformer,transformer模型的核心是注意力機(jī)制[8].最早將注意力模型引入自然語言處理領(lǐng)域的是Bahdanau等[9].
注意力機(jī)制[10]的核心目標(biāo)是從眾多信息中選擇出對(duì)當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息[11].為簡(jiǎn)單理解,可以將其看作對(duì)特征權(quán)重做動(dòng)態(tài)調(diào)優(yōu).之前傳統(tǒng)的做法是將詞向量訓(xùn)練的過程中,對(duì)每一個(gè)token并沒有特殊處理,注意力機(jī)制就是在這一過程中為每一個(gè)token分配特殊的權(quán)重,之后應(yīng)用到相應(yīng)的下游任務(wù).注意力機(jī)制通常應(yīng)用于Encoder-Decoder模型之中.其數(shù)學(xué)原理如圖1所示,假設(shè)當(dāng)前輸出結(jié)果為Yt,已知Decoder的上一時(shí)刻的隱藏層輸入為St-1,將當(dāng)前的全部token輸入Encoder中,獲得相應(yīng)的詞向量,通過F函數(shù),在經(jīng)過softmax函數(shù)獲得相應(yīng)的權(quán)重,使得解碼過程中對(duì)不同的詞向量對(duì)lable產(chǎn)生不同的影響權(quán)重.
圖1 注意力機(jī)制的數(shù)學(xué)原理圖Fig.1 Mathematical schematic diagram of attention mechanism
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short TermMemory Network,LSTM),是一種改進(jìn)之后的循環(huán)神經(jīng)網(wǎng)絡(luò).由于獨(dú)特的設(shè)計(jì)結(jié)構(gòu),LSTM適合于處理和預(yù)測(cè)時(shí)間序列中間隔延遲非常長(zhǎng)的重要事件,并且它可以解決RNN無法處理的長(zhǎng)距離依賴這一問題[12].LSTM[13]模型中有三種門,輸入門,輸出門,遺忘門.它的核心在于通過各種門來實(shí)現(xiàn)信息的添加與刪除.
模型框架分為上游任務(wù)和下游任務(wù)兩個(gè)部分.上游任務(wù)將原始語句經(jīng)過預(yù)訓(xùn)練生產(chǎn)詞向量,下游任務(wù)將預(yù)訓(xùn)練結(jié)果通過神經(jīng)網(wǎng)絡(luò)生成分類結(jié)果.
情感分析任務(wù)是文本分類中的一種,其本質(zhì)任務(wù)還是分類任務(wù).模型的設(shè)計(jì)將任務(wù)分為上游和下游兩個(gè)部分,其中上游任務(wù)主要的目的是在保留文本句意的情況下,將文本以向量的形式進(jìn)行表達(dá),用以處理下游任務(wù).下游任務(wù)的目的是實(shí)現(xiàn)分類判別,將向量放入神經(jīng)網(wǎng)絡(luò)進(jìn)行分類任務(wù),據(jù)對(duì)比LSTM模型和GRU模型,最后決定采用LSTM模型,因?yàn)镚RU模型最后輸出的值有一大部分的都在0.5左右之間,這就說明,模型分類的“信息”不是很足,同時(shí),雖然GRU模型的運(yùn)行速度比LSTM模型快了一些,但是準(zhǔn)確率仍然沒有LSTM模型高.目前主流的預(yù)訓(xùn)練任務(wù)模型為Word2Vector模型和BERT模型.
實(shí)驗(yàn)的數(shù)據(jù)集使用的譚松波老師的酒店評(píng)論預(yù)料.數(shù)據(jù)集總共包含了2 000條正向樣本,2 000條負(fù)面樣本一共4 000條樣本.
圖2 實(shí)驗(yàn)?zāi)P图軜?gòu)圖Fig.2 Experimental model architecture
實(shí)驗(yàn)過程分為2個(gè)部分.一個(gè)是基準(zhǔn)實(shí)驗(yàn),詞向量過程使用的是chinese-word-vectors模型,下游情感分類任務(wù)使用的是自己搭建的LSTM神經(jīng)網(wǎng)絡(luò)模型;第二個(gè)是改進(jìn)實(shí)驗(yàn),詞向量過程使用的是調(diào)優(yōu)后的BERT模型,下游情感分類任務(wù)使用的是自己搭建的LSTM神經(jīng)網(wǎng)絡(luò)模型.
實(shí)驗(yàn)任務(wù),通過訓(xùn)練集訓(xùn)練模型,完成情感分析任務(wù),得到一個(gè)準(zhǔn)確率較高的文本情感分類器,并將文本情感分類器用于測(cè)試真實(shí)現(xiàn)實(shí)語句,期望在較高準(zhǔn)確率的情況下獲得相應(yīng)的結(jié)果.
實(shí)驗(yàn)搭建神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如表1所示.
表1 基于Word2Vector和LSTM模型的神經(jīng)網(wǎng)絡(luò)Tab.1 Neural network based on Word2Vector and LSTM
經(jīng)過多組實(shí)驗(yàn),實(shí)驗(yàn)采用Adam作為優(yōu)化器,學(xué)習(xí)率參數(shù)設(shè)置為e-3,損失函數(shù)loss設(shè)為binary_crossentropy,metrics參數(shù)為accuracy,訓(xùn)練集和驗(yàn)證集劃分為9∶1,訓(xùn)練過程中epochs值設(shè)為20,batch_size值設(shè)為128,callbacks=callbacks.訓(xùn)練過程定義early stoping如果3個(gè)epoch內(nèi)validation loss沒有改善則暫停訓(xùn)練.同時(shí)調(diào)用ReduceLROnPlateau函數(shù)降低學(xué)習(xí)率,其中的參數(shù)設(shè)置factor=0.1,min_lr=1e-8,patience=0,verbose=1.
實(shí)驗(yàn)搭建神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如表2所示.
表2 基于BERT和LSTM模型的神經(jīng)網(wǎng)絡(luò)Tab.2 Neural network based on Bert and LSTM model
實(shí)驗(yàn)采用Adam作為優(yōu)化器,學(xué)習(xí)率參數(shù)設(shè)置為e-5,損失函數(shù)loss設(shè)為binary_crossentropy,metrics參數(shù)為accuracy,訓(xùn)練集和驗(yàn)證集劃分為9∶1,訓(xùn)練過程中epochs值設(shè)為20,batch_size值設(shè)為128,callbacks=callbacks.
本詞實(shí)驗(yàn)采用監(jiān)督學(xué)習(xí)的方法,將文本預(yù)料設(shè)置為輸入?yún)?shù)X,將情感結(jié)果設(shè)置為輸出結(jié)果Y,設(shè)定正向情感標(biāo)簽為1,負(fù)面情感標(biāo)簽為0.如圖3所示,下面是基于Word2Vector和LSTM模型的情感分析的流程圖.
圖3 基于Word2Vector和LSTM模型的情感分析的流程圖Fig.3 Flow chart of emotion analysis based on Word2Vector and LSTM
本次實(shí)驗(yàn)的環(huán)境:CPU為inter i7-7700HQ 8核CPU,內(nèi)存大小為16 G.實(shí)驗(yàn)過程中并沒有使用GPU加速訓(xùn)練.其中Word2Vector+LSTM,平均訓(xùn)練的時(shí)間約為45 min左右,BERT+LSTM模型的運(yùn)行時(shí)間約為2 h左右.經(jīng)過對(duì)比,BERT+LSTM的模型運(yùn)行時(shí)間更長(zhǎng).
訓(xùn)練過程中的每一個(gè)epoch的訓(xùn)練集和測(cè)試集的準(zhǔn)確度如圖4和圖5所示.
圖4 訓(xùn)練過程訓(xùn)練集準(zhǔn)確率對(duì)比圖Fig.4 Training process training set accuracy comparison chart
圖5 訓(xùn)練過程驗(yàn)證集準(zhǔn)確率對(duì)比圖Fig.5 Training processvalidation set accuracy comparison chart
從圖4和圖5可以清晰的看出對(duì)比效果,在訓(xùn)練過程中,BERT+LSTM模型完全優(yōu)勝于Word2Vector+LSTM模型.在驗(yàn)證過程中,BERT+LSTM模型基本優(yōu)于Word2Vector+LSTM模型.從圖中還可以看出,Word2Vector+LSTM模型收斂速度快,基本在5個(gè)epoch后就完全收斂.而BERT+LSTM模型在驗(yàn)證過程中存在一定的波動(dòng),說明收斂過程中出現(xiàn)了局部最優(yōu)的情況,但總體的準(zhǔn)確率是在不斷增長(zhǎng)的,說明模型并沒有困于局部最優(yōu).同時(shí)也顯示了BERT+LSTM模型的收斂速度慢.兩種實(shí)驗(yàn)結(jié)果最終結(jié)果如表3所示.
表3 實(shí)驗(yàn)對(duì)比分析表Tab.3 Experimental comparison and analysistablel
通過對(duì)比可得,BERT+LSTM模型分析的結(jié)果明顯優(yōu)于Word2Vector+LSTM模型框架分析的結(jié)果.使得訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率和損失率都有明顯的提高.同時(shí)通過參數(shù)對(duì)比可以清楚的看到,在Word2Vector+LSTM型中,參數(shù)總共為15 196 177個(gè),但是Non-trainable params卻高達(dá)15 000 000,而在BERT+LSTM模型總參數(shù)為918 785個(gè),但是其中的Non-trainableparams卻為0個(gè).說明BERT_LSTM模型充分利用了參數(shù),避免了不必要訓(xùn)練過程.
最后,作者找到了一些真實(shí)的評(píng)論預(yù)料進(jìn)行預(yù)測(cè).由于篇幅關(guān)系,這里僅展示一小部分測(cè)試結(jié)果,訓(xùn)練文本如表4所示.
表4 測(cè)試文本Tab.4 Test text
測(cè)試結(jié)果如表5所示.
表5 測(cè)試文本結(jié)果Tab.5 Test text results
通過主觀測(cè)試,任務(wù)中只有3,5屬于正面評(píng)價(jià),其他屬于負(fù)面評(píng)價(jià).經(jīng)過統(tǒng)計(jì),Word2Vector+LSTM模型經(jīng)過測(cè)試,有1條錯(cuò)誤,BERT+LSTM模型經(jīng)過測(cè)試具有0條錯(cuò)誤.
經(jīng)過分析對(duì)比實(shí)驗(yàn)結(jié)果和用真實(shí)的語料文本進(jìn)行測(cè)試.BERT+LSTM模型除了在訓(xùn)練時(shí)間方面比Word2Vector+LSTM模型需要花費(fèi)更久的時(shí)間,但在其他方面BERT+LSTM模型幾乎都完全優(yōu)于Word2Vector+LSTM模型.
通過查詢相關(guān)文獻(xiàn),得知因?yàn)橛行┱Z句的情感含義不是特別的容易區(qū)分,即使是成年人類也有一定的誤判率,通常來說,實(shí)際情況中準(zhǔn)確率能夠達(dá)到85的準(zhǔn)確率已經(jīng)算是比較不錯(cuò)的結(jié)果,本次實(shí)驗(yàn)中BERT+LSTM模型最終驗(yàn)證準(zhǔn)確率為87.5,算是得到了比較好的結(jié)果.
但是本次實(shí)驗(yàn)中仍有一些不足,通過實(shí)驗(yàn)結(jié)果可以很明顯的看到,訓(xùn)練過程的準(zhǔn)確率都是強(qiáng)于驗(yàn)證集的.說明存在了過擬合現(xiàn)象.尤其是BERT+LSTM模型中,訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率相差了大約6%.這在后期仍然可以優(yōu)化.本文為讀者提供了一個(gè)較好的情感分析解決方案.