李 蕓,潘雅麗,肖 冬
(1.杭州電子科技大學(xué) 電子信息學(xué)院,浙江 杭州 310018;2.浙江省裝備電子研究重點實驗室,浙江 杭州 310018)
文本情感分類[1]是自然語言處理(Natural Language Processing,NLP)的一個重要任務(wù)。隨著互聯(lián)網(wǎng)的飛速發(fā)展,人們不僅能夠從網(wǎng)上獲取信息,還能通過各種平臺隨心所欲地發(fā)表包含自己主觀情緒的觀點和看法,例如網(wǎng)絡(luò)購物、微博評論等。對含有豐富情感信息的文本數(shù)據(jù)進行分析具有非常重要的現(xiàn)實意義,它被廣泛應(yīng)用于產(chǎn)品推薦、搜索排名等領(lǐng)域。但由于一些平臺字符長度有限,而且用戶表達較隨意,存在用詞不規(guī)范和詞語拼寫錯誤等問題,傳統(tǒng)的情感分類方法在許多方面表現(xiàn)效果差強人意,實現(xiàn)高效準確的自動文本情感分類方法是本文的主要研究內(nèi)容。
基于深度學(xué)習(xí)的文本情感分類方法能夠聯(lián)系上下文信息并捕捉到文本的順序結(jié)構(gòu),在文本信息處理、分類任務(wù)中獲得了較好的效果。Kim 等人[2]最先提出了使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)進行文本分類,CNN 的卷積層和池化層可以提取文本中的高層次特征,減少訓(xùn)練參數(shù)。Johnson 等人[3]在CNN 的基礎(chǔ)上提出了深層金字塔卷積神經(jīng)網(wǎng)絡(luò)(Deep Pyramid Convolutional Neural Networks,DPCNN),DPCNN 引入殘差結(jié)構(gòu),增加多尺度信息,通過不斷加深網(wǎng)絡(luò)有效獲取文本的長期關(guān)聯(lián),卻沒有增加太多計算成本。
雖然卷積神經(jīng)網(wǎng)絡(luò)在情感分類任務(wù)的研究中取得了不錯的效果,但是它不能很好地處理序列信息,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)能解決這個問題。Socher 等人[4]將RNN 應(yīng)用于文本情感分類,RNN 充分考慮了句中的結(jié)構(gòu)信息,但在處理長序列數(shù)據(jù)時表現(xiàn)不佳。Schmidhuber[5]基于RNN 提出了長短時記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò),它能夠有效解決RNN 的梯度消失和梯度爆炸的問題。Graves 等人[6]首次將雙向LSTM 網(wǎng)絡(luò)用于文本分類,與單向LSTM 模型相比,雙向LSTM 可以更好地捕獲文本的雙向語義。Cho 等人[7]提出了門控循環(huán)單元(Gated Recurrent Unit,GRU),GRU 相較于LSTM 模型結(jié)構(gòu)更加簡單,參數(shù)更少,并且能長期保存隱藏層序列信息。Bahdanau等人[8]第一次將注意力機制應(yīng)用到文本分類任務(wù)中,它對輸入文本分配不同的關(guān)注,目的是協(xié)助分類模型捕捉重要信息。
在詞向量表示方面,傳統(tǒng)的文本情感分類方法大多數(shù)用詞袋(bag-of-words)模型[9]來表示,然后通過標注情感詞典的方法進行分類或者通過機器學(xué)習(xí)的方法分類,這些方法往往忽略了文本的順序結(jié)構(gòu)特征和上下文信息,很難學(xué)習(xí)到準確的語義特征。近年來詞嵌入[10]模型逐漸被大家廣泛應(yīng)用,谷歌公司提出了詞向量模型Word2Vec[11](Word to Vector),它將稀疏的詞向量映射為稠密的詞向量,按照表現(xiàn)形式的不同,將Word2Vec 模型分為了連續(xù)詞袋模型CBOW(Continuous Bag-Of-Words Model)和 Skip-Gram(Continuous Skip-gram Model)模型。Pennington 等人[12]提出了Glove(Global Vectors)模型來解決Word2Vec 不能捕捉文本全局信息的問題,但是Glove 模型沒有考慮單詞含義在不同語境下的含義不同。Devlin 等人提出了BERT[13](Bidirectional Encoder Representations from Transformer)模型,它使用多層雙向Transformer 編碼器,可以充分挖掘并提取上下文的情感信息,BERT 模型提出時刷新了NLP 任務(wù)之前的11 項最優(yōu)性能記錄。
因此,本文擬采用BERT 預(yù)訓(xùn)練模型,結(jié)合雙向GRU 神經(jīng)網(wǎng)絡(luò),對網(wǎng)絡(luò)文本數(shù)據(jù)進行情感分類。
BERT 是2018 年谷歌AI 研究院提出的一種NLP 預(yù)訓(xùn)練模型,它由多層雙向Transformer 編碼器構(gòu)成,其模型結(jié)構(gòu)如圖1 所示。BERT 模型進行訓(xùn)練有兩個步驟:預(yù)訓(xùn)練和微調(diào)。首先隨機初始化模型參數(shù),然后進行網(wǎng)絡(luò)訓(xùn)練,不斷調(diào)整模型的參數(shù)以達到最好的訓(xùn)練效果。將訓(xùn)練結(jié)果最好的模型參數(shù)記錄下來,用自己的數(shù)據(jù)對參數(shù)進行微調(diào)以適應(yīng)數(shù)據(jù)。首先對模型進行預(yù)訓(xùn)練產(chǎn)生模型參數(shù),之后用這些參數(shù)對下游任務(wù)進行處理。在每個輸入文本前插入一個[CLS]符號作最終的文本語義表示,文本中插入的[SEP]表示特殊分隔符。
圖1 BERT 模型圖
為了增強對文本語義的表達能力,BERT 模型提出了兩個預(yù)訓(xùn)練任務(wù),一個是遮蔽語言建模(Masked Language Model,MLM),對句中的部分詞匯(token)進行隨機遮蔽,然后預(yù)測被遮蔽的token;另一個是下一句預(yù)測(Next Sentence Prediction,NSP),讓模型理解句子與句子之間的關(guān)系,從而更好地完成文本情感分類任務(wù)。
GRU 是一種由LSTM 改進的深度網(wǎng)絡(luò)模型,它將LSTM 的遺忘門與輸出門合并,減少了參數(shù),提高了效率。GRU 模型結(jié)構(gòu)如圖2 所示,參數(shù)說明如表1 所示。GRU 模型只有兩個控制門:更新門(update gate)和重置門(reset gate),更新門用于判斷前一時刻的隱藏層的狀態(tài)信息是否對當(dāng)前層造成影響,重置門可以刪除前一時刻中的無效信息,兩個門能夠長期保存隱藏層的狀態(tài)信息,具有更好的捕捉長距離依賴關(guān)系能力。
表1 參數(shù)說明表
圖2 GRU 結(jié)構(gòu)圖
GRU 只能處理單向時間序列,而文本中上下文信息關(guān)聯(lián)較大,因此本文采用雙向GRU(BiGRU)網(wǎng)絡(luò),即疊加兩個GRU 網(wǎng)絡(luò)來保留一個詞的前后文聯(lián)系。
本文提出一種以BERT 作為詞向量模型,用雙向GRU 網(wǎng)絡(luò)進行高效的特征提取的BERT-BiGRU 文本情感分類模型,結(jié)構(gòu)如圖3 所示。
圖3 BBG 文本情感分類算法結(jié)構(gòu)圖
將經(jīng)過BERT 模型得到的文本詞向量數(shù)據(jù)XW輸入到GRU 網(wǎng)絡(luò)中,通過rt和zt共同控制從隱藏狀態(tài)ht-1到ht的計算。各門單元計算如下:
其中,W和U為權(quán)重矩陣,σ為sigmoid 激活函數(shù)。
根據(jù)式(3)、式(4),由重置門、更新門和隱含狀態(tài)可以計算當(dāng)前GRU 輸出。通過設(shè)置rt的值來對上一時刻隱藏狀態(tài)信息進行取舍,當(dāng)rt接近于0 時,舍棄上一時刻候選隱藏狀態(tài),當(dāng)rt接近于1 時保留,因此重置門有助于獲取文本序列中的短期關(guān)聯(lián)信息。當(dāng)zt=1 時,ht=ht-1,即更新門有助于獲取長期關(guān)聯(lián)信息。
在循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,狀態(tài)的傳遞是單向的,即從前往后傳輸,但文本語義特征不僅取決于之前的狀態(tài),還與之后的狀態(tài)有關(guān),因此需要采用雙向GRU 網(wǎng)絡(luò)來解決此問題,它由上下兩個GRU 疊加在一起組成,輸出由兩個GRU 的狀態(tài)共同決定,即:
其中,表示第i個文本的BiGRU 信息,分別表示第i個文本的前向GRU 信息和后向GRU 信息。Bi-GRU 網(wǎng)絡(luò)不僅可以增加網(wǎng)絡(luò)的深度,提高模型的訓(xùn)練效率和性能,更有助于擴展前向和后向文本情感信息,從整體上進行文本的綜合特征提取。
將通過BiGRU 網(wǎng)絡(luò)獲得的文本特征向量輸入到全連接層獲得更加精確的情感特征,同時引入dropout 機制來防止模型出現(xiàn)過擬合現(xiàn)象以進一步增加模型分類的有效性,最后將提取到的文本特征整合后輸入到輸出層的Softmax 函數(shù)中獲得情感分類結(jié)果。
文本情感分類中加入注意力機制(Attention model)是為了讓文本中重點詞語對分類結(jié)果產(chǎn)生更大的影響。通過計算概率分布,選擇對當(dāng)前目標任務(wù)更關(guān)鍵的信息,對深度學(xué)習(xí)模型進行優(yōu)化。下面將注意力機制與BERT-BiGRU 網(wǎng)絡(luò)相結(jié)合,用注意力機制代替上一小節(jié)BERT-BiGRU 模型中的全連接層,通過加權(quán)得到最終的文本信息。注意力機制的輸入為上一層BiGRU 網(wǎng)絡(luò)的輸出向量,權(quán)重系數(shù)計算如下:
其中,是模型訓(xùn)練得到參數(shù)向量的轉(zhuǎn)置,將各單詞按不同權(quán)重加權(quán),最后將提取到的文本特征整合后輸入到輸出層的Softmax 函數(shù)中獲得情感分類結(jié)果,如式(8)所示。
其中,θ代表參數(shù)向量,k表示類別數(shù)。
改進的BERT-BiGRU 模型引入注意力機制,通過在關(guān)鍵信息上分配足夠關(guān)注來突出局部重要信息,從而提高隱藏層特征提取質(zhì)量,增加情感分類的準確性。
改進算法流程如圖4 所示。
圖4 改進算法流程
(1)對輸入的待分類文本進行數(shù)據(jù)清洗,將換行符等特殊字符清洗掉、過濾掉非ASCII 字符等。
(2)將處理后的文本數(shù)據(jù)輸入到BERT 預(yù)訓(xùn)練語言模型中,生成文本的詞向量,將詞向量拼接成詞向量矩陣作為文本的向量表示。
(3)將詞向量表示輸入到BiGRU 網(wǎng)絡(luò)中進行特征提取后得到特征向量。
(4)通過注意力機制對文本特征向量分配不同的權(quán)值。
(5)將最終得到的文本特征向量輸入到Softmax 函數(shù)中得到文本的最終情感分類結(jié)果。
本文實驗環(huán)境配置如表2 所示。
表2 實驗環(huán)境配置
本文選用Acllmdb_v1 和酒店評論兩個公開數(shù)據(jù)集進行驗證。其中,Acllmdb_v1 是英文數(shù)據(jù)集,共有42 455 條數(shù)據(jù);酒店評論是中文數(shù)據(jù)集,共有10 000 條數(shù)據(jù)。將數(shù)據(jù)集輸入到模型進行訓(xùn)練之前,首先對文本數(shù)據(jù)進行清洗,將換行符等特殊字符清洗掉、過濾掉非ASCII 字符,之后按照8:2 的比例隨機將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,具體劃分情況如表3 所示。實驗?zāi)P蛥?shù)設(shè)計如表4 所示。
表3 數(shù)據(jù)集劃分情況
表4 模型參數(shù)設(shè)置
本文采用以下評價指標:準確率Acc(accuracy)、精確率P(precision)、召回率R(recall)和F1測 度 (F1-Socre)。定義如下:
其中,TP 表示模型預(yù)測正確的正樣本數(shù)量,TN 表示模型預(yù)測正確的負樣本數(shù)量,F(xiàn)P 表示模型預(yù)測錯誤的負樣本數(shù)量,F(xiàn)N 表示模型預(yù)測錯誤的正樣本數(shù)量,F(xiàn)1是精確率和召回率的加權(quán)平均。
首先驗證BERT 詞向量模型的效果,在Acllmdb_v1數(shù)據(jù)集上對BERT、Word2Vec 和Glove 3 種模型進行對比。將情感文本輸入到這幾個詞向量模型中得到含有文本特征的詞向量,然后通過最大池化層和輸出層得到最終的情感分類結(jié)果。實驗評價指標選取準確率和F1值,實驗結(jié)果如表5 所示。
表5 不同詞向量模型實驗結(jié)果對比 (%)
從準確率來看,BERT 明顯優(yōu)于Word2Vec 和Glove,達到了90.32%,比Glove 提高了2.3%,比Word2Vec 提高了5.08%;F1值方面,BERT 也遠優(yōu)于其他兩種詞向量模型,因此本文采用BERT 詞向量模型。
接下來驗證本文設(shè)計模型的有效性,將之與文獻[14]中幾種常用模型分別在Acllmdb_v1 和酒店評論數(shù)據(jù)集上進行對比,實驗結(jié)果如表6 所示。各模型依次為:
表6 實驗結(jié)果(%)
(1)BERT 模型,直接利用BERT 模型生成含有文本語義特征的句向量進行情感分類任務(wù);
(2)BERT-CNN 模型,通過BERT 模型獲得詞向量,采用CNN 網(wǎng)絡(luò)進行訓(xùn)練;
(3)BERT-RNN 模型,通過BERT 模型獲得詞向量,采用RNN 網(wǎng)絡(luò)進行訓(xùn)練;
(4)BERT-BiGRU 模型,在BERT 模型的基礎(chǔ)上采用BiGRU 網(wǎng)絡(luò)進行訓(xùn)練;
(5)BERT-BiGRU-attention 模 型,改進的 BERTBiGRU 模型,引入注意力機制。
準確率方面,在Acllmdb_v1 數(shù)據(jù)集上,BERTBiGRU 達到了93.52%,相較于BERT-CNN 和BERT-RNN皆有提升,BERT-BiGRU-attention 模型準確率進一步提高了1.35%;在酒店評論數(shù)據(jù)集上,BERT-BiGRU 準確率依然達到了92.42%,相較于單純使用BERT 模型提高了2.31%,BERT-BiGRU-attention 進一步提高到93.02%。
F1值能夠比較全面地反映精確率和召回率,在兩個數(shù)據(jù)集上,本文設(shè)計的BERT-BiGRU 和BERT-BiGRUattention 模型F1值性能較基本BERT 模型都有一定程度的提高。在較小的酒店評論數(shù)據(jù)集上,性能提升不如Acllmdb_v1 數(shù)據(jù)集,是因為小數(shù)據(jù)情況下,最大池化提取特征具有單一性問題,導(dǎo)致BERT-CNN 分類效果不盡人意。BERT-RNN 分類效果優(yōu)于BERT-CNN,因為RNN能夠解決文本序列問題。BERT-BiGRU 效果最好,它能保留文本中詞與詞之間的上下文關(guān)聯(lián)信息,提升訓(xùn)練效果。注意力池化層根據(jù)文本詞匯的重要程度分配不同的權(quán)值,對最終情感極性產(chǎn)生不同程度的影響,能夠緩解最大池化信息丟失和提取特征單一的缺陷,進一步提高模型的分類效果。
本文基于BERT 預(yù)訓(xùn)練語言模型,結(jié)合BiGRU 神經(jīng)網(wǎng)絡(luò)和注意力機制,設(shè)計了一種網(wǎng)絡(luò)文本情感分類模型BERT-BiGRU-attention。該模型使用BERT 生成詞向量輸入BiGRU 網(wǎng)絡(luò),通過注意力機制對BiGRU 網(wǎng)絡(luò)提取到的文本特征向量進行加權(quán),最終得到文本情感分類結(jié)果。BiGRU 網(wǎng)絡(luò)能夠更好地捕獲文本及其上下文的總體特征,達到高效訓(xùn)練的結(jié)果;注意力機制可以提高文本中更能表達情感的單詞的權(quán)值,進一步提高分類的準確率。實驗結(jié)果表明,和其他模型相比,BERT-BiGRUattention 在中英文數(shù)據(jù)集上都獲得了很好的分類效果,明顯提升了情感分類性能。