黃澤民 吳迎崗
(廣東工業大學計算機學院 廣東 廣州 510006)
隨著通信網絡和移動應用的快速發展,各種社交媒體也漸漸興旺,網絡用戶越來越多,用戶通過各種通信媒體來評論熱點事件、表達自己的感受,從而產生了大量帶有感情色彩的文本信息,這些情感傾向對政府相關部門或商家都有很大用處,但是這些海量文本的評論形式復雜多樣,僅靠人工處理存在工作量重和實時性較差等問題,如Hu等[1]依托WordNet詞典計算待處理文本的情感得分,雖取得了較好的預測效果,但存在大量人工標注工作。自然語言處理領域的文本情感分析[2]可以從這些復雜多樣的信息中提取情感傾向,從而應用于各種需要情感傾向的場景。
目前,情感分析模型主要有基于機器學習和基于神經網絡等方法?;跈C器學習的方法,如Pang等[3]應用支持向量機、樸素貝葉斯和最大熵等情感分析方法,在分析影評文本情感上有較好的效果,但是在各媒體平臺中,存在評論文本長度不一致、表達不規整的問題,導致傳統的機器學習方法需要面臨樣本人工結構化、表達稀疏和計算繁雜等問題,不能獲得理想的結果?;谏窠浘W絡的方法,楊云龍等[4]提出通過GRU獲得語義特征和整體標量信息;然后在初始膠囊層用動態路由算法進行迭代后,獲取到融合文本整體屬性的向量化表示,最后在主膠囊層獲得更準確的文本特征,并根據每個特征的特征表示強弱來分析文本的情感極性,從而在測試集有著不錯的預測效果。諶志群等[5]提出采用BERT模型生成文本的動態向量表征,然后詞表征輸入到雙向LSTM網絡中進行情感分類,取得了不錯的預測結果。Salur等[6]將不同的詞向量化方法,如FastText、Word2Vec等,與不同的深度學習方法(GRU、LSTM、BiLSTM)適當整合在一起,提取了不同的特征,結合這些特征來訓練和預測分類。Ma等[7]利用特征復合內存網絡(FCMN)提取三種特征去更好地表示上下文單詞的詞向量,而且策略性地結合特征表示和詞嵌入以提高注意力機制的作用,從而在測試集的情感預測方面有較好效果。趙亞歐等[8]使用預訓練好的基于字符的向量初始化ELMo層,然后利用了多尺度卷積神經網絡二次抽取詞向量的特征,將特征融合后以生成句子的語義表征,此方法能明顯提高預測準確率。上述學者雖都取得較好的分類效果,但沒有綜合考慮中文詞匯的多義詞性質、上下文信息和詞語之間的聯系特征對情感分析的影響。
基于統計機器學習的方法雖然提高了準確率,但人工結構化數據需要先驗知識才能使得該方法應用于規模較大的樣本集,導致效率下降?;谏窠浘W絡的方法可以自動提取特征,但使用單一的神經網絡不能夠充分提取句子特征和詞語特征,且基于神經網絡的模型輸入是句子的詞向量,若僅用Word2vec、glove等學習來的詞向量作為向量表示,學習到的只是靜態向量,即不能夠學習到多義詞本身具有的靈活性運用,會減低文本情感傾向的準確預測。綜上,本文提出的結合BERT和卷積雙向簡單循環網絡模型能解決以上問題,且在卷積層注入LRN和在循環網絡中實現訓練的并行化,有效地提高預測準確率和減少訓練時間。
結合BERT和卷積雙向簡單循環網絡模型如圖1所示。數據預處理是對評論文本分詞和去噪;BERT層是對句子詞靜態向量的重構,以生成融合語境的詞向量表征;卷積層二次提取詞語特征,利用LRN優化特征圖;BiSRU提取文本的上下文信息;最后情感分類使用Softmax回歸。

圖1 文本情感分析模型
評論文本存在各種無用信息和每個句子長短不一,需對評論文本進行預處理:對評論文本利用正則表達式進行去噪,如標點符號、表情等;然后對語料的每一條獨立文本進行分詞,并且會去除干擾詞和停用詞等,分詞后只包含具有語義信息的詞語集合,且保證分詞數目不超過設置的最大長度減2,因為剩下的兩個位置用來存放句首標志和分句標志;預處理后對文本的每個分詞進行靜態向量映射,用來初始化BERT模型,此時的向量表示不能解決多義詞問題。
自然語言處理的預訓練模型[9]有動態模型BERT[10],其采用了融合特征能力強的雙向Transformer模型,預訓練效果相比靜態模型Word2vec[11]能解決多義詞表征問題;相比動態模型ELMO模型[12]和GPT模型[13]有更強的語境融合能力。BERT預訓練模型如圖2所示。

圖2 BERT的網絡模型
BERT模型的輸入向量ei由三種不同的向量對應元素相加而成。第一種為詞靜態向量,可由Word2vec工具得到;第二種為位置向量,用來保存分詞在語料序列中的相對位置或絕對位置;第三種為句向量,由于本文的情感預測是句子級別的情感分析,即輸入是一個句子,故僅使用一個句向量,且對每個句子添加一個[CLS]標志向量(可用于下游的分類任務)和句尾[SEP]標志向量(用作兩個句子的分隔符)。
本文利用了谷歌的預訓練模型來微調BERT模型,由于BERT是隨機掩碼模型,掩碼詞可能在微調階段未出現過,故對被掩碼詞用[mask]標志替代、語料其他詞替代或不變處理,來保證模型的泛化性。
Transformer結構如圖3所示。其中多頭注意力子層是詞向量化的關鍵,由8個自注意力機制組成。

圖3 Transformer模型結構
BERT在操作中是基于矩陣計算的,全部輸入向量拼接成向量矩陣E,E={e1,e2,…,en},交付給自注意力機制,其輸出見式(1)和式(2)。
Q=EWQ,K=EWK,V=EWV
(1)
(2)

計算出自注意力的輸出后,通過式(3)和式(4)得出多頭注意力機制的輸出,記為X。
(3)
X=MultiHead(Q,K,V)=
concat(Attention1,Attention2,…,Attention8)·W
(4)
取BERT模型最后一層的輸出向量矩陣記為T={t1,t2,…,tn},矩陣T的維度與BERT輸入矩陣E相同,每個向量表示分詞的無歧義深度向量表示,作為下游任務的輸入。
卷積神經網絡是能在給定的結構中總結出具有特征性的局部預測器,將它們結合以生成特征矩陣來表示該結構,捕獲最具有任務特征的局部特征。BERT層的輸出向量矩陣T作為卷積神經網絡的輸入,卷積核在句子詞向量矩陣上滑動,卷積核與對應的句子詞向量矩陣窗口上進行對應元素相乘后作和,其值作為最后特征矩陣的一個特征值,所有特征值組成一幅特征圖,其計算式為式(5)、式(6)和式(7)。
xi=⊕Ti:i+t-1
(5)
ci=f(wc·xi+bc)
(6)
y={c1,c2,…,ci,…,cn-t+1}
(7)
式中:卷積核大小為t;xi為第i個窗口的拼接向量,即xi=⊕Ti:i+t-1=[Ti,Ti+1,…,Ti+t-1],xi∈Rt×M(M為詞向量維度);權重矩陣wc∈Rt×M和偏置bc都通過參數估計過程進行學習;f為激勵函數,去線性化處理;ci表示特征圖的第i個特征值,為標量,ci∈R;y為卷積完成得到的特征圖。
本文模型使用多個卷積核,(1) 充分提取特征;(2) 為LRN優化特征圖的歸一化做前提。將所有的特征圖經過ReLU去線性化和最大池化處理后,送入LRN局部優化層,來優化所有的特征圖。
局部響應歸一化LRN層[14]模仿了生物神經系統的“側抑制”機制,使局部神經元之間競爭響應機會,讓響應較大的值變得相對更大,并抑制其他響應較小的神經元。卷積神經網絡在池化后利用LRN優化使同一個特征圖的特征值都有相似的方差,能加快模型的收斂速度和提高特征提取能力。本文的LRN使用通道內歸一化模式,即在同一個特征圖上操作。LRN的計算公式見式(8)。
(8)
式中:a、b分別表示在同一個特征圖的原特征值和LRN優化后的特征值;n表示局部歸一化區域的大小,設為5;α為縮放因子,設為1;β為指數項,設為5;k為平滑操作,設為1;∑是以當前特征值為中心的區域內計算平方和,即1×n×n個特征值的平方和,不滿1×n×n個特征值的會補零后再求平方和。
每個原始特征圖的每一個特征值都是除以一個系數來達到歸一化的目的,該系數為式(8)等式右邊的分母部分。經過LRN優化后的各個特征圖與原始特征圖的維度相同,對所有經LRN優化后的所有特征圖連接成表示句子特征的特征向量,作為BiSRU層的輸入。
長短期記憶網絡LSTM的出現,通過對循環層的重新設計來避免了RNN網絡的長期依賴問題和梯度消失的問題,并有效解決了歷史鏈接問題,但LSTM神經網絡的訓練很難并行化。本文提出的SRU模型不僅具有LSTM的能力,也具有并行計算的能力,它平衡了輸入的順序依賴和獨立性,簡化了計算狀態的過程。SRU模型[15]的網絡結構如圖4所示。

圖4 SRU模型的網絡結構
在圖4中,Qt表示在t時刻的輸入,ft表示忘記門,rt表示在t時刻復位門,At和Ht別表示當前時刻t的細胞狀態和最終輸出,At-1表示上一時刻t-1的細胞狀態,σ和g代表Sigmoid函數和激活函數(雙曲正切或ReLU),⊙表示矩陣對應元素的乘法運算。
SRU模型使用丟棄連接,即當前時刻的輸入消除了對上一時刻Ht-1的依賴性,以下是SRU模型的計算公式:
ft=σ(WfQt+bf)
(9)
rt=σ(WrQt+br)
(10)
yt=σ(W*Qt)
(11)
At=ft⊙At-1+(1-ft)⊙yt
(12)
Ht=rt⊙g(At)+(1-rt)⊙Qt
(13)
式中:Wf、Wr和W*是參數矩陣;bf、br是偏置,都是訓練時要學習的參數向量。
從式(9)到式(11)可以看到Ht-1的依賴性被消除了,通過式(12)和式(13)可以快速地實現,因為輸出不再依賴于輸入Ht-1,從而可以批次處理所有時間步的矩陣相乘,明顯提高計算速度。
利用雙向SRU允許模型在序列內部向前和向后看任意遠的距離。BiSRU模型是由兩個SRU網絡通過上下疊加形成的,每一個時刻會同時存在相反方向的SRU中,將卷積層的輸出向量分別輸入到正反序SRU,會得到SRU每個時間步的輸出,每一個時間步的計算公式為:
(14)

將每一個時間步的正反序疊加值進行拼接,拼接的方式能在線性時間內高效地運算,最后得到全部時間步的輸出。BiSRU模型的輸出輸入到全連接dropout層,該層在訓練時會概率性地隨機作用于隱藏層的節點,使其暫時被選擇隱藏掉而不工作,但是其權重會被保留,從而提高了模型的泛化能力,在本文的dropout比率為0.5。最后,利用Softmax回歸得到預測概率分布,取概率值最大的為預測結果。
實驗的數據集為中文版本的Twitter數據集,包含2萬多條中文標注語料,其中積極情感句子8 700多條,消極句子8 100多條,中性句子5 500條。由于數據不平衡會造成分類器在訓練的過程中嚴重偏向樣本較多的類別,使模型的綜合性能大大下降,因此,本文為保證訓練集各類別的數目相同,都設為5 000條,各類別剩余的數據集作為測試集或者驗證集。為驗證模型在文本情感分析的有效性,使用評價標準為準確率(Precision)、召回率(Recall)和F1(F-measure)值。計算式如式(15)-式(17)所示。公式的參數含義見表1。

表1 公式參數含義
Precision表示預測為某個類別的樣本數目與真正類別的樣本數目的比值。
(15)
Recall表示預測為某個類別中的真實類別數目與所有真實類別數目的比值。
(16)
由于上述兩種經常矛盾,故引入綜合評價指標F1,計算如下:
(17)
本文的情感分類是三分類,因此在計算出各個類別對應的準確率和召回率后,采用平均值作為分類器性能的評價指標。
本文模型的各層參數設置如下:詞向量維度為768維;由于漢語中詞語之間的距離過大會導致語義聯系較弱,故卷積核粒度分別為3、4和5,激活函數選擇ReLU,因ReLU是無上界函數,適應LRN的“側抑制”原理;SRU隱藏層節數為128;損失函數為交叉熵函數(學習率為0.000 01);模型優化器為Adam;訓練批次長度為32;epoch為10;最后的Dense層使用3分類。
為驗證本文方法的有效性,在相同的實驗環境下,將本文情感分析模型與其他情感分析混合模型進行對比,最后結果如表2所示。

表2 與其他模型的性能比較
基線模型1是直接將BERT的輸出連接到全連接層后輸入到Softmax分類器得出的結果,相對基線模型,本文模型的準確率能提高近4百分點;對比模型2和模型3是為了驗證BERT預訓練模型的有效性,因為BERT預訓練解決了多義詞表征問題和利用了融合文本能力強的Transformer作為預訓練模型的子結構,從而使模型分析能力大大提升,且BERT模型使用的是預訓練的方式,是從大語料集合中訓練語義向量,而非在任務語料中訓練,使得訓練出來的詞向量表征擁有更高的泛化程度;與模型4和模型5作對比是為了驗證BiSRU模型的語義學習的有效性,由于LSTM和SRU模型能對歷史信息進行策略性的過濾和保留,使得語義學習的能力更強;與模型6對比是為了驗證卷積層注入LRN層的預測效果,由表2可知注入LRN層后預測準確率明顯提高;對比模型7和模型8是為了驗證本文模型與基于BERT的單一模型的有效性,由表2可知,相比基于BERT的單一特征提取模型,本文利用的混合模型能更好地提取文本特征,在各個評價指標都有不同程度的提升。最終的實驗結果表明,本文提出的結合BERT和卷積雙向簡單循環網絡的文本情感分析在測試集上有很好的表現,證明了本文模型的有效性。
本文的模型分別與BERT-CNN-BiLSTM、BERT-CNN-LSTM等模型的每一個epoch的訓練時間進行比較,結果如圖5所示,在相同的實驗環境下,本文模型的訓練時間明顯縮小。BERT預訓練模型總參數大小為110 MB,如果利用計算復雜度高的LSTM網絡作為下游任務的模型,無疑會導致訓練時間大大增加,故本文利用了SRU模型的并行化的計算能力,在保證準確率的條件下,能有效地減少訓練時間。

圖5 每個epoch的訓練時間
本文提出的結合BERT和卷積雙向簡單循環網絡的文本分析模型實現了文本情感傾向的三分類,在實驗數據集上的預測結果表明,本文提出的模型能夠提取融合文本語境的詞表征,然后利用該詞表征作為下游策略模型的輸入,并在卷積層注入LRN層和循環網絡中并行化參數估計過程,從而有效提升模型的情感分析的總體性能。