?

基于BERT 的BiGRU-Attention-CNN 混合模型的中文情感分析?

2024-01-23 13:37張吳波
計算機與數字工程 2023年10期
關鍵詞:特征提取注意力準確率

鄒 旺 張吳波

(湖北汽車工業學院電氣與信息工程學院 十堰 442000)

1 引言

隨著互聯網的快速發展,抖音、微博、微信、美團外賣等各種網絡平臺正在逐漸地改變著人們的生活方式。越來越多的人在網絡平臺上發表自己的觀點和態度,使得互聯網用戶逐漸由信息接收者轉變為信息的生產者,并由此誕生出大量的蘊含用戶主觀情感色彩的文本數據。對這些文本信息的分析挖掘,能夠更好地對產品和服務進行提升和改進,進一步改善人們的生活水平。

利用文本情感分析技術[1]能自動挖掘出各類評論文本中的情感傾向信息。傳統的文本情感分析方法主要是基于詞典,該方法是根據情感詞典統計語料中出現情感詞的數目以及權重來判斷語料的情感類別[2]。但其準確率直接受到詞典質量影響,不同領域需要制定不同詞典,且構建和維護工作量較大[3]。近年來,隨著機器學習與深度學習的廣泛應用,各種學習策略與CNN、RNN 等神經網絡模型逐漸被應用到情感分析任務中。CNN 模型具有較強的特征提取能力,廣泛應用于圖像領域。由于文本數據屬于序列信息并存在上下文之間的聯系,RNN 模型以及其變體LSTM、GRU 等模型被研究者廣泛使用于文本信息中。對于情感分類任務,提取文本中的情感詞至關重要,而這些常用的模型缺少對關鍵詞的重點關注。在詞嵌入方面,傳統的詞嵌入方法不能很好地解決一詞多義的問題。因此,本文提出一種基于BERT 的BiGRU-Attention-CNN 混合模型的情感分析方法,在詞嵌入方面采用BERT 模型產生包含豐富信息的動態詞向量;在特征提取方面引入Attention 機制,為每個詞分配不同大小的權重值,提高特征提取的精度。

2 相關工作

目前,對文本情感分析技術的研究主要是基于傳統機器學習的算法[4]和深度學習方法?;趥鹘y機器學習的方法是通過一定的學習策略和損失函數逐步迭代來進行特征學習,利用樸素貝葉斯[5]、支持向量機[6]、隨機森林[7]等分類器進行有監督學習,然后采用訓練好的分類器進行文本情感極性的分類?;趥鹘y機器學習的算法在小規模數據集上效果較好,但隨著數據量的不斷增加各種復雜的特征出現,傳統的機器學習的準確率也在逐漸下降。

近年來研究者逐漸采用深度學習算法來解決情感分析任務,其中CNN、RNN 等神經網絡模型被廣泛使用。Kim 等[8]在2014 年基于CNN的結構上對其調整提出TextCNN 模型,在文本分類上相比與傳統的機器學習算法有明顯的提升。但CNN 只能對文本進行局部特征的提取,無法捕獲文本中上下文的依賴。Mikolov 等[9]首次將RNN 算法引入到文本的情感分類任務。但隨著輸入句子信息的增加,RNN 同時也會出現梯度爆炸或梯度消失的問題。隨著研究者不斷的優化和改進,長短期記憶網絡(LSTM)[10]和循環門控單元(GRU)[11]等RNN 的變體逐漸被提出。楊青等[12]提出一種注意力機制和門控單元GRU 融合的情感分析模型,并驗證其能有效提高情感分析的性能。

傳統的深度學習模型對文本數據進行特征學習,無法對文本中關鍵詞重點關注,且結構單一[13]。Attention 機制能對文本中的信息分配不同的權重值,很好地解決這一問題。徐菲菲等[14]結合卷積神經網絡和最小門控單元MGU,并融入注意力機制提出C_MGU 模型,實驗表明該模型能有效地提高情感分類的準確率。采用CNN 與RNN 以及融入Attention 機制相結合的混合模型雖然取得不錯的效果,但是大多采用one-hot編碼或Word2Vec 的詞嵌入方法進行文本詞向量表示。one-hot 編碼方式容易導致向量維度過高,Word2Vec 方法無法解決一詞多義的問題。BERT 模型是由Devlin 等[15]在2018 年提出的預訓練模型,其目標是采用大量無標注語料來訓練模型從而獲得語料的完整向量表示。該模型采用多層能捕捉語句中的雙向關系的Transformer 編碼器對大量的語料進行預訓練[16],能對不同語境中的詞義產生不同的向量表征,有效地解決一詞多義的問題。

綜上,本文首先使用BERT 預訓練模型將文本數據轉化為包含豐富的動態詞向量,然后采用BiGRU-Attention-CNN 混合模型進行數據的特征提取,其中BiGRU 模型能獲取每個詞更深層次的語義向量表達;Attention 機制能對關鍵信息加強;CNN 模型能對關鍵信息進行提取,最后采用Softmax函數計算情感極性的概率分布。

3 模型結構

為了實現中文文本的情感分析的目標,本文在基于BERT預訓練模型下,結合BiGRU和CNN各自的優勢并引入注意力機制構建混合的神經網絡模型。如圖1 所示,基于BERT 的BiGRU-Attention-CNN模型結構由六個部分組成:

圖1 基于BERT的BiGRU-Attention-CNN模型結構

1)輸入層:輸入中文評論語料。

2)BERT 層:將文本轉化為包含量豐富語義信息的動態詞向量。

3)BIGRU層:獲取每個動態詞向量的更深層次的語義表達。

4)Attention層:計算每個詞的注意力權重。

5)CNN層:對權重較大的詞進行特征提取。

6)輸出層:計算情感極性的概率分布。

3.1 BERT層

BERT 模型的基礎是建立在Transformer 編碼器的基礎之上,擁有強大的語言表征能力和特征提取能力。Transfromer 模型[17]是由谷歌公司設計的Seq2Seq 模型,其中采用編碼器-解碼器的模型結構。Transformer Encoder 模型結構如圖2 所示,Transformer 模型中重要的核心是采用多頭注意力機制計算,實質通過線性映射來初始化不同的權重矩陣,將每個權重矩陣進行self-Attention 操作,從不同的角度去學習文本信息,從而實現豐富語義的目的。該功能類似于一個人從不同的角度去觀測事物將會產生不同的觀測結果。同時還加入Feed-Forward(前饋神經網絡)與Add&Norm(殘差連接&層歸一化)對動態詞向量的優化,前饋神經網絡實質是兩層線性映射并使用Relu 激活函數運算,Add&Norm 中的殘差連接能減少傳遞信息中出現的偏差,層歸一化將隱藏層歸一為標準正態分布,可以起到加快訓練速度、加速收斂的作用。

圖2 Transformer Encoder模型結構

1)詞嵌入向量與位置編碼的計算如式(1)~(3)所示。

其中Xembedding是輸入的詞向量主要包括字向量和句向量,位置嵌入PE使用sin 和cos 函數的線性變換來提供給模型的位置信息,2i為偶數位置,2i+1為奇數位置。

2)多頭注意力機制的計算如式(4)~(9)所示。

對WQ、Wk、Wv三個權重矩陣分別進行線性映射運算,從而達到多頭的目的,然后對Q、K、V進行自注意力機制的運算得到,其中QKT是求注意力矩陣,然后用其給V加權,是為了讓注意力矩陣更好的服從標準正態分布,使得歸一化之后的結果更加穩定。為相應的初始權重矩陣;h為頭數;Concat為拼接函數。

3)殘差連接與層歸一化的計算如式(10)~(14)所示。

殘差連接將注意力得到的結果與X相加;層歸一化是對向量矩陣中每行的每個元素減均值再除以標準差來實現歸一化的目的;其中α、β是為了彌補歸一化過程中損失掉的信息;ω防止除零。

4)前饋神經網絡的計算如式(15)所示。

其中Linear為線性函數;Relu為激活函數。

BERT模型采用設計了兩種方法來進行模型的預訓練,第一種方法是采用MaskLM 的方式來訓練模型,即以一定的概率隨機選取字采用[MASK]替換,之后編碼器根據語料的上下文來學習和預測被MASK 的字來訓練模型。第二種方法是采用Next Sentence Prediction 的方法,即輸入兩個完整的句子,通過提取句中的信息來判斷兩個句子之間的邏輯關系,從而訓練模型。

3.2 BiGRU層

GRU與LSTM一樣屬于RNN的變體形式,為了解決RNN 不具有長期依賴與梯度爆炸或消失的問題。GRU 的功能與LSTM 類似,其優點在于具有更少的參數和簡單的結構。GRU 最重要的結構包括重置門r,更新門z,其內部的計算更新過程如式(16)~(20)所示。

其中xt表示當前節點的輸入;ht-1表示上一節點的隱藏狀態;h'表示候選隱藏狀態;σ表示Sigmoid激活函數;ht表示傳遞給下一節點的隱藏狀態;yt表示當前節點的輸出。w1-7表示權重矩陣;b表示偏置項。重置門r用于控制上一節點的隱藏狀態被遺忘的程度,產生候選隱藏狀態h'。更新門z同時具有遺忘和記憶的功能,(1-z)*ht-1用于對上一節點狀態選擇性遺忘,z*h'用于對候選隱藏狀態進行選擇性記憶。

3.3 Attention層

Attention 機制的原理是對每個詞分配不同大小的權重值,然后通過對權重進行加權和。其能對神經網絡的隱層中的關鍵信息分配較大的權重,對無關的信息分配較小的權重,實現更好的特征提取。注意力機制是模擬人類大腦中的注意力功,專注重要的信息和忽略無關重要的信息。注意力機制的計算過程如式(21)~(23)所示。

其中hi表示BiGRU在i時刻輸出的隱層狀態;ei是預測與目標匹配的score 函數,表示對hi分配不同的初始權重值;V、W表示權重矩陣;ai表示對ei進行softmax 計算注意力的概率值;y為包含注意力值的語義向量。

3.4 CNN層

CNN 層采用的是文本卷積神經網TextCNN。相比于圖像卷積神經網絡,最大的區別在于TextCNN 采用不同大小的一維卷積核在文本序列上滑動,對文本進行特征提取。一般卷積核的大小kernel_size 設置為2、3、4 三種卷積核,其能對較長和較短的文本信息同時進行卷積。卷積網絡的內部計算過程如式(24)~(25)所示。

其中yi:i+h-1表示第yi個向量到第yi+h-1個向量;b為偏置項;W為卷積核;式(24)表示卷積核W與yi:i+h-1進行卷積運算,得到相應的特征輸出值Ci。式(25)是對卷積后的結果采用最大值法進行池化運算。

3.5 輸出層

全連接層將池化運算的結果Pi傳入輸出層,采用softmax 函數計算預測概率實現對情感的分類,輸出層的計算如式(26)所示。

其中w為權重矩陣;b為偏置項;p(y|Pi,w,b)為計算出的所屬情感類別的概率分布。

4 實驗

實驗在Windows10 上進行,CPU 為Intel(R)Core(TM)i9,3.10GHz,GPU 為RTX3060 12G,編程語言為Python3.7,深度學習框架為Tensorflow 2.4.1。

4.1 數據集

本次實驗數據集選用的是公開的中文數據集,分別為酒店評論數據集ChSentiCorp_htl_all、外賣評論數據集waimai_10k、網上購物評論數據集online_shopping_10_cats、微博評論數據集weibo_senti_100k。按照8∶2 將數據集分為訓練集和測試集,4種中文數據集詳情和樣例如表1、表2所示。

表1 中文數據集詳情

表2 中文數據集樣例

4.2 實驗設置

實驗的模型參數設置較多,其中BERT 層采用谷歌公司已經訓練好的中文BERT 模型,該模型采用12 層Transformer 編碼器,隱層的維度為768,多頭注意機制的的頭數為12,總參數大小約為110MB。BiGRU 層中隱藏單元數為64,CNN 層中每種卷積核的數量為60,共180個卷積核。模型訓練的參數設置,迭代次數為10 次,批次大小設置為32,學習率為1e-5,優化器Adam,為防止過擬合dropout設置為0.5,序列長度設置為100。

4.3 結果及分析

實驗采用準確率、F1 值作為模型的評價標準,并設置了3 組對比實驗來驗證本文模型的有效性。準確率和F1值的計算如下:

其中m為預測正確樣本數目;M為參加預測的樣本總數目;precision為精度;recall為召回率。

4.3.1 詞嵌入方法對比實驗

為了驗證BERT 模型具有更好的向量表征能力,實驗將本文模型Word2Vec-BiGRU-Attention-CNN 模型在相同的實驗環境下對4 種中文數據集進行對比實驗。實驗迭代10 次的訓練過程如圖3所示。

圖3 詞嵌入方法對比實驗

從圖3 可以看出,在使用相同的BiGRU-Attention-CNN 模型進行特征提取的情況下,在四種數據集上迭代的結果BERT 明顯優于Word2Vec。BERT 在前6 次迭代準確率屬于上升趨勢,后四次迭代逐漸達到平滑,而Word2Vec 在迭代10 次下整體趨近于平滑。分析原因,Word2Vec 是將詞典中所有的詞映射到空間向量來表示,對模型訓練準確率達到穩定較快;而BERT 是采用雙向的Transformer 編碼器對輸入的文本進行預訓練,動態詞向量的表征是逐漸變豐富。

4.3.2 注意力機制影響實驗

為了說明引入注意力機制對本文模型的有效性和優化作用,將本文模型與不引入注意力機制的模型在相同的實驗環境下對四種中文數據集進行分析對比實驗,實驗結果如圖4所示。

圖4 注意力機制影響實驗

從圖4 中對比可以看出,相比沒采用Attention機制的模型,引入Attention機制后模型的準確率有不錯的提升。在ChSentiCorp_htl_all、waimai_10k、online_shopping_10_cats 和weibo_senti_100k 在 四種中文數據集上準確率分別提升0.95%、0.37%、0.49%、1%,驗證融入Attention機制的有效性。

4.3.3 有效性對比實驗

通過對四種中文數據集進行情感分析,將本文模型與基于BERT 下的幾種常見模型在相同的實驗環境下進行對比分析,采用Accuracy 和F1 值作為評價指標,來驗證本文模型的有效性,實驗結果如表3、表4所示。

表3 不同模型的準確率對比(單位%)

表4 不同模型的F1值對比(單位%)

由表3、表4可以看出,本文模型在四種數據集上準確率和F1 值的表現均優于其他模型。對比BERT-BiGRU-CNN 與BERT-BiGRU 可以看出,準確率平均提高0.85%,說明CNN 層有較好的特征提取能力,能在一定程度上提高模型的特征提取。對比BERT-BiGRU-CNN 與BERT-CNN 可以看出,準確率平均提高0.67%,說明BiGRU 層能提升模型對上下文的依賴,獲取向量更深層次的表達。對比本文模型與BERT-BiGRU-CNN 可以看出,準確率平均提高0.45%,說明Attention 層能強化重要的特征信息,促進模型特征提取能力。綜上,本文模型正是融合各層的優點所提出,對比各模型的性能,本文所提出的BERT-BiGRU-Attention-CNN 混合模型性能更優。

5 結語

針對現有中文情感分析普遍采用one-hot編碼或Word2Vec 方法生成詞向量,無法解決一詞多義的問題,且未能考慮文本中的關鍵信息權重的問題。本文提出一種基于BERT 的BiGRU-Attention-CNN 的中文情感分析方法。該模型首選使用BERT 生成豐富信息的動態詞向量,然后通過BiGRU層結合上下文信息獲取動態詞向量的更深層次的表示,融合Attention 機制強化重要的詞向量,再采用CNN 層進行特征提取,最后通過Softmax 進行情感極性分類。實驗結果表明,相比Word2Vec 方法,BERT 模型具有更好的表征能力,且引入Attention 機制的混合模型相比傳統深度學習模型準確率更優。

猜你喜歡
特征提取注意力準確率
讓注意力“飛”回來
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
基于Daubechies(dbN)的飛行器音頻特征提取
高速公路車牌識別標識站準確率驗證法
“揚眼”APP:讓注意力“變現”
Bagging RCSP腦電特征提取算法
A Beautiful Way Of Looking At Things
基于MED和循環域解調的多故障特征提取
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合