毛 銀,趙 俊
(1.四川輕化工大學(xué)自動化與信息工程學(xué)院,宜賓 644000;2.人工智能四川省重點(diǎn)實(shí)驗(yàn)室,宜賓 644000)
人們在網(wǎng)絡(luò)上對各種公共事件表達(dá)自己觀點(diǎn)。新浪微博,作為中國用戶數(shù)量最多的網(wǎng)絡(luò)平臺之一,用戶在平臺上以短文本的形式發(fā)表他們對于事物的觀點(diǎn),這些觀點(diǎn)可以被其它用戶瀏覽、評論和轉(zhuǎn)發(fā)。文本情感分析指對文本中蘊(yùn)含的情感信息進(jìn)行提取、分析和分類,并將分類結(jié)果進(jìn)行保存,來進(jìn)行下游分析任務(wù)的過程。情感分析可以用于社會、科學(xué)、文化等多個領(lǐng)域,能深入探究社會問題、現(xiàn)象,提高社會運(yùn)行效率[1]。因此情感分析是至關(guān)重要的。
目前,常用的文本情感分析方法分為機(jī)器學(xué)習(xí)方法、深度學(xué)習(xí)方法和基于規(guī)則的方法。基于規(guī)則的方法需要人工構(gòu)建情感詞典[2],由于互聯(lián)網(wǎng)上新詞和熱點(diǎn)頻發(fā),構(gòu)建的情感詞典不能滿足當(dāng)下需求。Murtadha[3]認(rèn)為,在不同的應(yīng)用領(lǐng)域,詞語的極性與它所在的句子情感強(qiáng)度有關(guān),因此他們構(gòu)建了依賴領(lǐng)域的情感詞典。Rao等[4]提出了一種基于主題建模的方法來構(gòu)建詞典,其中每個主題都與社會情感有關(guān)。Jian等[5]通過條件隨機(jī)場建立了絕對情感詞典和相對情感詞典,實(shí)現(xiàn)了一種有效的情感極性判別算法。
基于深度學(xué)習(xí)的方法已經(jīng)引起了許多研究者的關(guān)注。Liriam等[6]提出了一個基于多語言短文本分類的通用框架GM-ShorT,提高了短文本的分類準(zhǔn)確性。周玄朗等[7]融合了文本圖卷積和Stacking集成學(xué)習(xí)方法,解決了卷積神經(jīng)網(wǎng)絡(luò)對特征利用不足的問題。王婉等[8]融合了Fast-Test模型和注意力機(jī)制,使模型的分類性能提高了2%。Wang[9]提出了一種被稱為“不連通遞歸神經(jīng)網(wǎng)絡(luò)”的模型,它融入了位置不變性的RNN,限制RNN信息流的距離,在多個文本分類數(shù)據(jù)集上取得了較好的分類效果。
基于以上描述,本文提出一種新的基于位置向量獲得上下文信息的模型。
本文提出一種基于BERT和BiLSTM的特征提取模型BERT_MIX_BiLSTM,結(jié)構(gòu)如圖1所示。核心步驟分為以下幾層:
(1)特征處理層:通過對數(shù)據(jù)集的訓(xùn)練來獲得詞向量,使用人工標(biāo)注好的情感詞典,對詞向量中每一個詞進(jìn)行情感標(biāo)注,利用BiLSTM得到文本的上下文信息,將得到的向量通過注意力機(jī)制,加權(quán)情感特征,作為下一層的輸入。
(2)特征提取層:通過卷積神經(jīng)網(wǎng)絡(luò)處理加權(quán)后的輸入向量,獲取文本的局部特征,降低數(shù)據(jù)的維度。最后通過輸出層,得到文本的情感概率表示。
特征處理層主要是對數(shù)據(jù)進(jìn)行處理,將單詞切分,并表示為詞向量矩陣,遍歷矩陣中所有在詞典中的詞,并對其與詞典中保存的情感強(qiáng)度進(jìn)行分類。通過BiLSTM來保存文本的語義,最后通過注意力機(jī)制來對特征屬性進(jìn)行加權(quán)。
1.1.1 BERT模型
BERT是基于神經(jīng)網(wǎng)絡(luò)模型的自然語言處理模塊,其結(jié)構(gòu)圖如圖2所示。
內(nèi)部利用MLM(masked language model)生成深度的雙層語言特征和下一句預(yù)測NSP(next sentence prediction)。MLM在每次迭代中隨機(jī)屏蔽15%的單詞[10],目的是在給定上下文的情況下,預(yù)測出被遮蔽的單詞,得到每個單詞的詞向量表示。NSP是為了讓模型能理解到兩個句子之間的聯(lián)系,隨機(jī)調(diào)換語料庫中兩個句子的順序,基于前一個句子,來預(yù)測下一個句子的概率[11]。
1.1.2 詞典標(biāo)注
假定輸入句子:
其中wi表示句子s中第i個單詞。通過微調(diào)參數(shù)的BERT模型,將輸入單詞wi轉(zhuǎn)換為詞向量vi。建立一個情感詞典SD(sentiment dictionary),包括了情感詞匯以及情感程度。對每個wi屬于SD中的詞匯賦予情感權(quán)重,不屬于SD的詞匯賦值為1。對于負(fù)面詞匯,需要乘以-1。表達(dá)如下:
式(2)中,swi表示加權(quán)后的wi值。在預(yù)處理層中,使用賦值好的情感來對詞向量vi加權(quán)。
1.1.3 BiLSTM模型
BiLSTM是由兩個反向的LSTM組成。LSTM加入了一個儲存單元Ct和三個邏輯門:輸入門,輸出門和遺忘門[12]。通過前一個時刻的輸出信息和當(dāng)前時刻的輸入信息來共同確定當(dāng)前時刻的輸出信息,儲存單元和邏輯門能決定當(dāng)前時刻需要保留和遺忘多少信息。BiLSTM有正反兩個方向,可以包含文本的上下文信息[13],LSTM結(jié)構(gòu)如圖3所示。
對于時間t的輸入,由前向和反向LSTM獲得的隱狀態(tài)表示和為
對于每個單詞,連接其上下文信息,得到每個單詞的注釋ht。
1.1.4 注意力機(jī)制
文本情感分析的任務(wù)中,某些詞具有強(qiáng)烈的感情色彩,有些詞沒有或少量具有感情色彩,不同詞匯對整個文本句子的情感極性具有不同的作用,因此,該模型引入了一種注意力機(jī)制[14],通過給不同的詞匯加入不同的權(quán)重,情感極性強(qiáng)的詞語獲得較高的權(quán)重。對于輸入ht,其權(quán)重賦予由以下公式?jīng)Q定。
上述公式中,ut是隱狀態(tài)表示,計算與ht的相關(guān)性,ww和bw是打分函數(shù)產(chǎn)生的系數(shù),通過迭代來學(xué)習(xí)。uw是上下文向量,會在訓(xùn)練開始時,通過位置矩陣隨機(jī)初始化,并不斷優(yōu)化。ut與uw的相似性來判斷詞的重要性,然后將計算的權(quán)重標(biāo)準(zhǔn)化,用ht加權(quán)聚合成Z,Z表示整個文本的輸入向量,包含著文本的所有單詞的情感信息。
1.2.1 CNN層
傳統(tǒng)深度學(xué)習(xí)中,CNN在自然語言處理領(lǐng)域使用非常廣泛。它由一維卷積層和一維池化層組成的前饋神經(jīng)網(wǎng)絡(luò),卷積核的寬度與詞向量一般等寬,只進(jìn)行一維的滑動[15]。假設(shè)xi為數(shù)據(jù)輸入,h為窗口大小,卷積過程可表示為
其中b為偏置項(xiàng),f為激活函數(shù),Ci為提取到的特征向量。假定文本長度為s。最大池化和平均池化可分別表示為
卷積操作結(jié)束后,執(zhí)行池化層操作,進(jìn)一步壓縮特征向量,降低特征維數(shù),提高計算速度。池化方法包括最大池化和平均池化。最大池化能保持?jǐn)?shù)據(jù)最重要的特征,平均池化能顯著提高其它不明顯的特征。本文采用并行池化,將最大池化和平均池化匯聚相加一起,形成特征向量lv,并發(fā)送到全連接層。
1.2.2 全連接層和輸出層
采用批量歸一的方式加快網(wǎng)絡(luò)訓(xùn)練速度,減少過擬合。全連接層將特征向量lv映射到目標(biāo)空間中,獲得情緒表達(dá)概率值,最后通過輸出層執(zhí)行分類任務(wù)。
使用sigmoid函數(shù)將輸入概率值轉(zhuǎn)換到[0,1]之間。當(dāng)情緒值接近0,表示情感類別接近負(fù)值;接近1表示情感類別接近正值,以此獲得情感標(biāo)簽。
本實(shí)驗(yàn)的環(huán)境為:操作系統(tǒng)為Windows10,處理器為英特爾Xeon 5218R(雙路),內(nèi)存為128 GB,顯卡為NVIDIA RTX 3080(10 G),Python版本為3.9.7,基于深度學(xué)習(xí)框架tensorflow2.9.0。
數(shù)據(jù)集采用是帶標(biāo)注的外賣評論數(shù)據(jù)集,共10萬條,正面評論與負(fù)面評論各5萬條,如表1所示。
表1 數(shù)據(jù)集標(biāo)簽展示
常用的文本分類指標(biāo)有召回率(Recall,R)、精確率(Precision,P)和F1值(F1),本文將繪制F1和Precision隨著訓(xùn)練輪次的變化曲線來直觀展示實(shí)驗(yàn)結(jié)果。
數(shù)據(jù)經(jīng)過jieba分詞,通過微調(diào)的BERT模型訓(xùn)練其詞向量[16]。為了避免過擬合,采用批量梯度下降對參數(shù)調(diào)優(yōu),并使用網(wǎng)格搜索調(diào)參,尋找最優(yōu)參數(shù),如表2所示。
表2 超參數(shù)設(shè)置
為了評估本文提出模型的有效性,將BERT_MIX_BiLSTM模型和幾種常見模型進(jìn)行對比,包括BERT+CNN模型[17]、BERT+LSTM模型[18]、BiLSTM模 型、BiLSTM+Att模 型[19]和CNN+Att模型[20]。
各個模型的精確度值對比如圖4所示,與傳統(tǒng)CNN模型相比,本文模型的精確率高于傳統(tǒng)模型,當(dāng)訓(xùn)練輪次達(dá)到8輪時,本文模型性能呈大幅上升趨勢。而BiLSTM和CNN在此數(shù)據(jù)集中差別不大,說明數(shù)據(jù)集在上下文信息不長,使得BiLSTM在長期記憶上的特點(diǎn)沒有得到有效發(fā)揮。BERT+LSTM精確率差,原因可能在于BERT切分詞后,在詞向量中已經(jīng)包含過上下文向量。在后續(xù)輸入進(jìn)LSTM時,包含上下文信息的位置向量卷積完后與LSTM的輸出拼接,使得原本序列預(yù)測失去有效性。對于上下文較長,強(qiáng)調(diào)下一句預(yù)測的數(shù)據(jù)集來說,BERT+LSTM性能會有所提升。
在圖5展示了各個模型的F1值,可以看出,本文模型F1也有所領(lǐng)先,但領(lǐng)先幅度不大,加入了微調(diào)BERT模型后,使得模型整體的F1值有所提高,說明BERT模型使模型的性能得到了有效提升。
為了充分獲取數(shù)據(jù)中的上下文信息,加入了位置矩陣參與運(yùn)算。使用了情感權(quán)重矩陣對數(shù)據(jù)進(jìn)行了修正。引入了微調(diào)BERT模型,提升了整個模型的性能。下一步工作可以在該模型中加入不同激活函數(shù),嘗試使用性能更優(yōu)的門控循環(huán)單元(GRU)來代替LSTM進(jìn)行實(shí)驗(yàn)或使用更好的特征提取方法。