袁 勛,劉 蓉,劉 明
(1. 華中師范大學物理科學與技術(shù)學院,湖北 武漢 430079;2. 華中師范大學計算機學院,湖北 武漢 430079)
隨著科學技術(shù)的飛速發(fā)展,移動互聯(lián)網(wǎng)已成為人們?nèi)粘I钪忻懿豢煞值囊徊糠?文本數(shù)據(jù)因其容易編輯、表達簡單、存儲空間占比小等優(yōu)點在互聯(lián)網(wǎng)上的應(yīng)用最廣,如何對這些數(shù)據(jù)進行分析并為實際應(yīng)用場景提供支持是自然語言處理(Natural language processing,NLP)的主要研究方向。情感分析是當下NLP領(lǐng)域中最熱門的任務(wù)之一[1],它能夠利用計算機技術(shù)實現(xiàn)對情感文本的極性判斷,有著重要的研究價值。
情感分析最早由Nasukawa[2]在研究商品評論時提出,互聯(lián)網(wǎng)商品評論往往帶有強烈的個人情感傾向,用戶評論對于商家來說是非常重要反饋信息,通過對海量用戶的評價進行情感分析,可以量化用戶對產(chǎn)品及其競品的褒貶程度,從而針對性的對自己的產(chǎn)品進行迭代升級。早期的情感分析主要基于情感詞典對廣泛使用的情感詞進行歸納整理[3-5]所得,通過將文本語句與情感詞典進行對比來判斷文本的情感極性,但這種方法無法解決詞典的邊界問題。
近年來,隨著機器學習特別是深度學習的快速發(fā)展,深度學習方法逐漸應(yīng)用在情感分析領(lǐng)域,并取得了顯著的成果。在深度學習方法中,如何將自然語言轉(zhuǎn)換為計算機可理解的語義特征是文本情感分析的首要任務(wù)。Kim等[6]采用類似多元語法的方法提取多個卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)特征進行拼接,得到多個文本局部特征從而增強了模型的特征感知能力。Johnson等[7]用類似圖像卷積的思路設(shè)計了一種高維度文本卷積方法,使用深層次卷積方法將文本詞向量與遠距離單詞進行交互,在情感分析任務(wù)上取得了不錯的結(jié)果。陶永才等[8]針對單一文本詞向量無法全面表示文本中的情感特征信息等問題,將情感詞特征、情感符號特征與詞性特征進行融合,設(shè)計了一種多特征融合的情感分析方法。然而,卷積神經(jīng)網(wǎng)絡(luò)主要通過卷積核窗口式抽取特征,在長距離建模方面能力有限,且對文本的位序不敏感,缺乏對文本的整體感知能力。針對文本位序不敏感問題,Mikolov等[9]提出循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),RNN是一種帶有記憶性質(zhì)的特征提取網(wǎng)絡(luò),可以方便的提取上下文之間的位置關(guān)聯(lián)。Li等[10]認為傳統(tǒng)RNN網(wǎng)絡(luò)無法解決長文本梯度消失的問題,采用長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[11]提取長文本上下文間的語義關(guān)聯(lián),在情感多分類問題中取得了比RNN更好的成績。但是,循環(huán)神經(jīng)網(wǎng)絡(luò)由于其記憶模塊逐級傳遞的特性,難以實現(xiàn)并行操作。Devlin等[12]提出基于雙向Transformer[13]的BERT(Bidirectional Encoder Representations from Transformers)語言模型,該模型采用自注意力而非記憶傳遞的方式將每個詞映射為矩陣,因此能夠?qū)崿F(xiàn)并行操作,并且該模型是一種雙向的預(yù)訓(xùn)練模型,在預(yù)處理階段為每個元素添加位置信息,因此BERT輸出編碼包含整體文本的位序關(guān)系,為情感分析任務(wù)提供了語義表示基礎(chǔ)。針對卷積網(wǎng)絡(luò)整體感知不足問題,Severyn等[14]在處理推特情感分析任務(wù)中使用平均池化和最大池化交互的方式,將提取到的文本特征圖中的紋理特征和數(shù)據(jù)特征拼接起來,提升了模型對文本整體的感知能力。
受以上方法的啟發(fā),本文基于BERT提出一種融合多特征感知的情感分析模型(BERT MeanMaxpool CNN,BMMC)。首先,該模型將情感語料輸入BERT進行編碼,提取文本整體的位序關(guān)系,然后對編碼信息進行卷積操作提取局部特征,并采用池化操作提取文本的紋理特征和數(shù)據(jù)特征,再將紋理特征和數(shù)據(jù)特征級聯(lián)構(gòu)造全局特征,最后將局部特征與全局特征進行融合得多特征感知網(wǎng)絡(luò),既補全了卷積神經(jīng)網(wǎng)絡(luò)位序不敏感問題,又提升了編碼向量的整體特征感知,使模型達到了更好的分類性能。
模型將待分類文本從編碼層輸入,通過BERT將原始文本編碼轉(zhuǎn)換為詞向量矩陣,然后分別對句子編碼進行局部特征挖掘和全局特征提取,最后將兩種特征進行融合以進行情感預(yù)測。BMMC模型由編碼層、多特征感知層和輸出層三部分構(gòu)成。模型的整體結(jié)構(gòu)如圖1所示。
圖1 BMMC模型架構(gòu)
編碼層用于將輸入原始文本轉(zhuǎn)換為帶有文本位序關(guān)系的詞向量。本文使用BERT來完成文本編碼,為保證特征融合維度匹配,編碼層使用的詞嵌入維度為原始BERT的一半。編碼層的輸入為帶有情感色彩的文本語料,經(jīng)過BERT中的雙向Transformer轉(zhuǎn)換為句子編碼,編碼采用自注意力機制,計算公式如下
(1)
Pout=(α1,α2,…,αn)
(2)
其中,Q、K、V為輸入單詞的詞嵌入矩陣經(jīng)過線性變換所得,dk是Q、K和V矩陣的向量維度,α為句中單個單詞編碼,(α1,α1,…,αn)為輸入句子所有單詞的編碼組合,文本編碼Pout是后續(xù)局部特征層與全局特征層的基礎(chǔ)。
文本特征抽取是對文本進行科學的抽象,建立數(shù)學模型,用以描述和代替原始文本。在文本卷積網(wǎng)絡(luò)中,往往卷積核尺度遠小于輸入文本的維度,需要使用滑動窗口來提取對應(yīng)文本片段的特征,這使得文本卷積網(wǎng)絡(luò)可用來提取文本局部特征,使用多種不同大小的卷積核可以獲得多個局部特征信息,將局部的特征組合可得更豐富的文本抽象特征。然而卷積神經(jīng)網(wǎng)絡(luò)主要靠卷積核窗口式抽取特征,在長距離建模方面能力有限,且對文本的語序不敏感,缺乏對文本的整體感知能力,因此需要在BERT編碼層來獲取文本位序關(guān)系。同時,對預(yù)訓(xùn)練輸出編碼信息進行最大池化可以保留編碼文本的整體紋理特征,而平均池化則可以提取文本編碼的數(shù)據(jù)特征,將兩種池化方案結(jié)合可有效地獲取上下文依賴關(guān)系,提升模型對文本整體淺層特征的感知能力。
2.2.1 局部特征層
在局部特征層,本文模型分別使用3種大小不同的感知器來提取文本的局部特征。文本特征提取通常使用卷積操作完成,通過卷積核與對應(yīng)文本上進行乘法操作就可以得到當前卷積核的局部視野。卷積核長度遠小于文本長度,卷積核在整個文本上進行滾動,可得到當前卷積核對全文本的局部特征,使用多種不同尺寸卷積核可以得到多窗口的文本視野,從而能夠捕捉文本向量局部依賴關(guān)系。
圖1中編碼層BERT輸出為詞嵌入矩陣,記詞嵌入維度為d。使用3種長度不同但詞嵌入維度相同的卷積核與矩陣進行卷積就可以得到3種不同尺寸的特征圖(feature maps),局部特征層結(jié)構(gòu)如圖2所示。
圖2 局部特征層
如圖2所示,Xhidden[1]與Xhidden[2]分別表示句子編碼Pout的長度與詞嵌入維度,不同大小的卷積核可以得到不同視野的語料文本,從而提取出多個角度的局部特征。本文設(shè)計的卷積核的個數(shù)為詞嵌入維度大小的2/3,即2d/3,卷積核的尺寸有3種,分別是[2,d]、[3,d]和[4,d],分別卷積可得到3種大小不一的特征圖,特征圖維度計算公式如下。
(3)
padding為填充0,stride為滑動窗口長度,大小與詞嵌入維度一致,convkernel為卷積核橫向長度,convin為輸入文本長度,convkernel為輸出文本長度。由圖2可知每種尺寸對應(yīng)特征圖數(shù)量為2d/3。則featuremaps層維度為[2d/3,convout,1],經(jīng)過最大池化層轉(zhuǎn)換為[2d/3,1]大小的矩陣,將3類池化層拼接可得維度為[2d,1]的特征矩陣,該特征矩陣可與下文全局特征進行級聯(lián)。
2.2.2 全局特征層
為強化模型對遠距離文本的情感感知能力,從全局視角提取文本的紋理特征與數(shù)據(jù)特征并進行交互,以獲取完整語義特征。在BERT的訓(xùn)練中,情感文本數(shù)據(jù)是按批次輸入,本文采用動態(tài)填充的方式對每個小批次中的短文本數(shù)據(jù)進行補0,以保證所有句子編碼等長,這樣可以減少計算資源浪費以提高訓(xùn)練速度。由于待分類文本需按批次輸入,所以利用分批池化策略來提取全局特征。全局特征層的設(shè)計如圖3所示,其輸入為BERT的輸出編碼,為保留更多的有效信息防止模型過擬合,分別提取同一批次句子中所有單詞的詞嵌入數(shù)據(jù)的平均值作為文本的數(shù)據(jù)特征,再用同樣的方法提取詞嵌入數(shù)據(jù)的最大值作為文本的紋理特征,最后將兩種特征進行級聯(lián)得全局特征。
圖3 全局特征層
全局特征層按批次輸入文本,其中橫向表示詞嵌入維度,大小為d維不可再分,縱向表示句子長度,隨著當前批次句子最大長度的變化而變化,可歸一化成一維向量而不丟失語義,所以使用圖3所示的縱向池化方法進行mean pooling與max pooling,兩種池化結(jié)果都是d維,再將其級聯(lián)相加并轉(zhuǎn)置可得維度[2d,1]。這本質(zhì)是一種Doc2Vec[15]方法,可以獲得文本的固定長度向量表達。
可以發(fā)現(xiàn)局部特征與全局特征的大小都是2d維,將局部特征與全局特征拼接可得多特征感知結(jié)果Sout,公式表示如下
Sout=∑conv(Pout)T+
concat(meanpool(Pout),maxpool(Pout))
(4)
通過線性層映射并用sigmoid[16]激活,可得到模型的推斷結(jié)果。
在獲得兩種特征融合結(jié)果Sout之后,再送入一個全連接層,然后通過softmax分類器可得到數(shù)據(jù)樣本的分類概率p,計算過程如式(5)和式(6)所示
p=softmax(WcSout+bc)
(5)
(6)
(7)
其中,C為分類類別,y為真實標簽,從數(shù)據(jù)集中讀取,λ‖θ‖2為正則化表達。
為了驗證本文模型的情感分類效果,在譚松波酒店評論語料[17]公開數(shù)據(jù)集上進行對照實驗,該數(shù)據(jù)集共10000條語料評論,其中正負樣本各5000條,每條數(shù)據(jù)都由評論語句和情感極性組成,情感極性分為:樂觀、消極。將語料劃分,90%做訓(xùn)練集,10%做測試集,數(shù)據(jù)集長度分布如表1所示。
表1 數(shù)據(jù)集數(shù)據(jù)集長度分布
由上表可以看出,可見句子大部分長度維持在0-250之間,300個字以下占比93.5%,所以設(shè)300為允許最大長度,超出長度則截斷。
本文實驗的操作系統(tǒng)是centOS7,配備Tesla V100 32GB顯卡,開發(fā)環(huán)境是python3.6和pytorch1.7.0,部分參數(shù)配置如表2所示。實驗使用Adam優(yōu)化器[18]自適應(yīng)學習率來加快收斂速度,通過L2正則防止過擬合,epoch迭代次數(shù)定義為初值定義為1000,但并不是表示模型需要迭代這么多次,每個epoch之后模型都會記錄當前最好的評估指標,若10次迭代沒有更新指標,則終止訓(xùn)練。
表2 實驗參數(shù)
經(jīng)過線性分類層輸出的預(yù)測是一個小數(shù),模型分類的依據(jù)是將當前預(yù)測值與分類閾值對比以對情感極性進行分類。將閾值邊界設(shè)定為0.5可能會造成分類不均,因此從0到1以0.01為間隔定義99個備選閾值,計算0.01-0.99所有的閾值對應(yīng)的F1值,找出使F1值最大的閾值作為分類邊界。
本文模型使用上述方法得到的情感分析實驗結(jié)果如圖4所示。
圖4 模型實驗結(jié)果
上圖中橫軸代表epoch,縱軸代表AUC[19]值。可以看出實驗在前100個epoch增長較快,測試集的性能表現(xiàn)比訓(xùn)練集更好,這是因為訓(xùn)練集在訓(xùn)練時為防止過擬合而加入了dropout策略,往后增長較為平緩,在200個epoch趨于穩(wěn)定,整體表現(xiàn)AUC達到了0.95以上,相比以往模型有更好的分類效果。
為了進一步評估模型的性能,文章列舉了其它研究的方面情感分析模型與之進行對比。度量指標統(tǒng)一使用AUC和Macro-F1,在數(shù)據(jù)樣本不均衡時,F1指標具有更好的評估性能。
1) TEXT-CNN[6]:使用多個不同大小卷積核來提取句子關(guān)鍵信息的文本卷積方法,更好地捕捉句子局部相關(guān)性。
2) DPCNN[7]:使用多組卷積層和池化層堆疊而成都深層次循環(huán)卷積網(wǎng)絡(luò),通過不斷卷積擴大單詞向量的感受野,以獲取情感文本遠距離依賴關(guān)系。
3) BI-LSTM[11]:雙向LSTM網(wǎng)絡(luò),相比于LSTM網(wǎng)絡(luò)可以更好的捕捉句子上下文的雙向語義依賴。
4) BERT[12]:預(yù)訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu),通過大規(guī)模與具體任務(wù)無關(guān)的文本數(shù)據(jù)自監(jiān)督學習得到,再經(jīng)過下游情感分析文本針對性進行微調(diào)。
5) BERT-CNN[6,12]:以BERT為基礎(chǔ)的文本卷積神經(jīng)網(wǎng)絡(luò),在BERT編碼的基礎(chǔ)之上,使用卷積神經(jīng)網(wǎng)絡(luò)捕捉詞向量局部相關(guān)性。
在譚松波酒店評論語料數(shù)據(jù)集上各模型對比結(jié)果如表3所示。
表3 不同模型實驗對比結(jié)果
從表3可以看出,基于BERT的情感分類模型相比于未基于BERT的模型無論在AUC還是F1指標上都有質(zhì)的提升,可以證明預(yù)訓(xùn)練模型在情感分類任務(wù)上的性能優(yōu)勢。BMMC模型在譚松波酒店評論語料數(shù)據(jù)集上的AUC與F1指標分別為95.86%和86.61%,對比基于BERT的網(wǎng)絡(luò)模型可知,其AUC指標比BERT基準模型高1.01%,比BERT-CNN也提升了0.47%,證明在局部特征上加入位序關(guān)系并與全局特征進行交互構(gòu)造多特征感知網(wǎng)絡(luò)是有意義的。
在文本情感分析任務(wù)中,為提升對文本淺層特征的感知能力,本文結(jié)合BERT模型設(shè)計了一種多特征感知模型BMMC。由于使用單一特征提取器可能會導(dǎo)致模型特征抽取不足,本文在預(yù)訓(xùn)練模型的基礎(chǔ)之上融合局部特征和全局特征,通過構(gòu)造多個卷積核提取文本的局部信息,然后將局部信息與全局信息進行交互構(gòu)造多特征感知網(wǎng)絡(luò),提升了模型對文本淺層特征的感知能力。本文在情感分析任務(wù)上與多個基準模型進行對比,實驗結(jié)果表明將局部特征與全局特征進行融合在情感分析任務(wù)上是有效的。