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

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

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

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

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

圖4 SRU模型的網(wǎng)絡(luò)結(jié)構(gòu)
在圖4中,Qt表示在t時刻的輸入,ft表示忘記門,rt表示在t時刻復(fù)位門,At和Ht別表示當(dāng)前時刻t的細(xì)胞狀態(tài)和最終輸出,At-1表示上一時刻t-1的細(xì)胞狀態(tài),σ和g代表Sigmoid函數(shù)和激活函數(shù)(雙曲正切或ReLU),⊙表示矩陣對應(yīng)元素的乘法運(yùn)算。
SRU模型使用丟棄連接,即當(dāng)前時刻的輸入消除了對上一時刻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*是參數(shù)矩陣;bf、br是偏置,都是訓(xùn)練時要學(xué)習(xí)的參數(shù)向量。
從式(9)到式(11)可以看到Ht-1的依賴性被消除了,通過式(12)和式(13)可以快速地實(shí)現(xiàn),因?yàn)檩敵霾辉僖蕾囉谳斎際t-1,從而可以批次處理所有時間步的矩陣相乘,明顯提高計算速度。
利用雙向SRU允許模型在序列內(nèi)部向前和向后看任意遠(yuǎn)的距離。BiSRU模型是由兩個SRU網(wǎng)絡(luò)通過上下疊加形成的,每一個時刻會同時存在相反方向的SRU中,將卷積層的輸出向量分別輸入到正反序SRU,會得到SRU每個時間步的輸出,每一個時間步的計算公式為:
(14)

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

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

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

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