黃澤民 吳迎崗
(廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 廣東 廣州 510006)
隨著通信網(wǎng)絡(luò)和移動(dòng)應(yīng)用的快速發(fā)展,各種社交媒體也漸漸興旺,網(wǎng)絡(luò)用戶越來(lái)越多,用戶通過(guò)各種通信媒體來(lái)評(píng)論熱點(diǎn)事件、表達(dá)自己的感受,從而產(chǎn)生了大量帶有感情色彩的文本信息,這些情感傾向?qū)φ嚓P(guān)部門或商家都有很大用處,但是這些海量文本的評(píng)論形式復(fù)雜多樣,僅靠人工處理存在工作量重和實(shí)時(shí)性較差等問(wèn)題,如Hu等[1]依托WordNet詞典計(jì)算待處理文本的情感得分,雖取得了較好的預(yù)測(cè)效果,但存在大量人工標(biāo)注工作。自然語(yǔ)言處理領(lǐng)域的文本情感分析[2]可以從這些復(fù)雜多樣的信息中提取情感傾向,從而應(yīng)用于各種需要情感傾向的場(chǎng)景。
目前,情感分析模型主要有基于機(jī)器學(xué)習(xí)和基于神經(jīng)網(wǎng)絡(luò)等方法?;跈C(jī)器學(xué)習(xí)的方法,如Pang等[3]應(yīng)用支持向量機(jī)、樸素貝葉斯和最大熵等情感分析方法,在分析影評(píng)文本情感上有較好的效果,但是在各媒體平臺(tái)中,存在評(píng)論文本長(zhǎng)度不一致、表達(dá)不規(guī)整的問(wèn)題,導(dǎo)致傳統(tǒng)的機(jī)器學(xué)習(xí)方法需要面臨樣本人工結(jié)構(gòu)化、表達(dá)稀疏和計(jì)算繁雜等問(wèn)題,不能獲得理想的結(jié)果。基于神經(jīng)網(wǎng)絡(luò)的方法,楊云龍等[4]提出通過(guò)GRU獲得語(yǔ)義特征和整體標(biāo)量信息;然后在初始膠囊層用動(dòng)態(tài)路由算法進(jìn)行迭代后,獲取到融合文本整體屬性的向量化表示,最后在主膠囊層獲得更準(zhǔn)確的文本特征,并根據(jù)每個(gè)特征的特征表示強(qiáng)弱來(lái)分析文本的情感極性,從而在測(cè)試集有著不錯(cuò)的預(yù)測(cè)效果。諶志群等[5]提出采用BERT模型生成文本的動(dòng)態(tài)向量表征,然后詞表征輸入到雙向LSTM網(wǎng)絡(luò)中進(jìn)行情感分類,取得了不錯(cuò)的預(yù)測(cè)結(jié)果。Salur等[6]將不同的詞向量化方法,如FastText、Word2Vec等,與不同的深度學(xué)習(xí)方法(GRU、LSTM、BiLSTM)適當(dāng)整合在一起,提取了不同的特征,結(jié)合這些特征來(lái)訓(xùn)練和預(yù)測(cè)分類。Ma等[7]利用特征復(fù)合內(nèi)存網(wǎng)絡(luò)(FCMN)提取三種特征去更好地表示上下文單詞的詞向量,而且策略性地結(jié)合特征表示和詞嵌入以提高注意力機(jī)制的作用,從而在測(cè)試集的情感預(yù)測(cè)方面有較好效果。趙亞歐等[8]使用預(yù)訓(xùn)練好的基于字符的向量初始化ELMo層,然后利用了多尺度卷積神經(jīng)網(wǎng)絡(luò)二次抽取詞向量的特征,將特征融合后以生成句子的語(yǔ)義表征,此方法能明顯提高預(yù)測(cè)準(zhǔn)確率。上述學(xué)者雖都取得較好的分類效果,但沒(méi)有綜合考慮中文詞匯的多義詞性質(zhì)、上下文信息和詞語(yǔ)之間的聯(lián)系特征對(duì)情感分析的影響。
基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法雖然提高了準(zhǔn)確率,但人工結(jié)構(gòu)化數(shù)據(jù)需要先驗(yàn)知識(shí)才能使得該方法應(yīng)用于規(guī)模較大的樣本集,導(dǎo)致效率下降?;谏窠?jīng)網(wǎng)絡(luò)的方法可以自動(dòng)提取特征,但使用單一的神經(jīng)網(wǎng)絡(luò)不能夠充分提取句子特征和詞語(yǔ)特征,且基于神經(jīng)網(wǎng)絡(luò)的模型輸入是句子的詞向量,若僅用Word2vec、glove等學(xué)習(xí)來(lái)的詞向量作為向量表示,學(xué)習(xí)到的只是靜態(tài)向量,即不能夠?qū)W習(xí)到多義詞本身具有的靈活性運(yùn)用,會(huì)減低文本情感傾向的準(zhǔn)確預(yù)測(cè)。綜上,本文提出的結(jié)合BERT和卷積雙向簡(jiǎn)單循環(huán)網(wǎng)絡(luò)模型能解決以上問(wèn)題,且在卷積層注入LRN和在循環(huán)網(wǎng)絡(luò)中實(shí)現(xiàn)訓(xùn)練的并行化,有效地提高預(yù)測(cè)準(zhǔn)確率和減少訓(xùn)練時(shí)間。
結(jié)合BERT和卷積雙向簡(jiǎn)單循環(huán)網(wǎng)絡(luò)模型如圖1所示。數(shù)據(jù)預(yù)處理是對(duì)評(píng)論文本分詞和去噪;BERT層是對(duì)句子詞靜態(tài)向量的重構(gòu),以生成融合語(yǔ)境的詞向量表征;卷積層二次提取詞語(yǔ)特征,利用LRN優(yōu)化特征圖;BiSRU提取文本的上下文信息;最后情感分類使用Softmax回歸。
圖1 文本情感分析模型
評(píng)論文本存在各種無(wú)用信息和每個(gè)句子長(zhǎng)短不一,需對(duì)評(píng)論文本進(jìn)行預(yù)處理:對(duì)評(píng)論文本利用正則表達(dá)式進(jìn)行去噪,如標(biāo)點(diǎn)符號(hào)、表情等;然后對(duì)語(yǔ)料的每一條獨(dú)立文本進(jìn)行分詞,并且會(huì)去除干擾詞和停用詞等,分詞后只包含具有語(yǔ)義信息的詞語(yǔ)集合,且保證分詞數(shù)目不超過(guò)設(shè)置的最大長(zhǎng)度減2,因?yàn)槭O碌膬蓚€(gè)位置用來(lái)存放句首標(biāo)志和分句標(biāo)志;預(yù)處理后對(duì)文本的每個(gè)分詞進(jìn)行靜態(tài)向量映射,用來(lái)初始化BERT模型,此時(shí)的向量表示不能解決多義詞問(wèn)題。
自然語(yǔ)言處理的預(yù)訓(xùn)練模型[9]有動(dòng)態(tài)模型BERT[10],其采用了融合特征能力強(qiáng)的雙向Transformer模型,預(yù)訓(xùn)練效果相比靜態(tài)模型Word2vec[11]能解決多義詞表征問(wèn)題;相比動(dòng)態(tài)模型ELMO模型[12]和GPT模型[13]有更強(qiáng)的語(yǔ)境融合能力。BERT預(yù)訓(xùn)練模型如圖2所示。
圖2 BERT的網(wǎng)絡(luò)模型
BERT模型的輸入向量ei由三種不同的向量對(duì)應(yīng)元素相加而成。第一種為詞靜態(tài)向量,可由Word2vec工具得到;第二種為位置向量,用來(lái)保存分詞在語(yǔ)料序列中的相對(duì)位置或絕對(duì)位置;第三種為句向量,由于本文的情感預(yù)測(cè)是句子級(jí)別的情感分析,即輸入是一個(gè)句子,故僅使用一個(gè)句向量,且對(duì)每個(gè)句子添加一個(gè)[CLS]標(biāo)志向量(可用于下游的分類任務(wù))和句尾[SEP]標(biāo)志向量(用作兩個(gè)句子的分隔符)。
本文利用了谷歌的預(yù)訓(xùn)練模型來(lái)微調(diào)BERT模型,由于BERT是隨機(jī)掩碼模型,掩碼詞可能在微調(diào)階段未出現(xiàn)過(guò),故對(duì)被掩碼詞用[mask]標(biāo)志替代、語(yǔ)料其他詞替代或不變處理,來(lái)保證模型的泛化性。
Transformer結(jié)構(gòu)如圖3所示。其中多頭注意力子層是詞向量化的關(guān)鍵,由8個(gè)自注意力機(jī)制組成。
圖3 Transformer模型結(jié)構(gòu)
BERT在操作中是基于矩陣計(jì)算的,全部輸入向量拼接成向量矩陣E,E={e1,e2,…,en},交付給自注意力機(jī)制,其輸出見(jiàn)式(1)和式(2)。
Q=EWQ,K=EWK,V=EWV
(1)
(2)
計(jì)算出自注意力的輸出后,通過(guò)式(3)和式(4)得出多頭注意力機(jī)制的輸出,記為X。
(3)
X=MultiHead(Q,K,V)=
concat(Attention1,Attention2,…,Attention8)·W
(4)
取BERT模型最后一層的輸出向量矩陣記為T={t1,t2,…,tn},矩陣T的維度與BERT輸入矩陣E相同,每個(gè)向量表示分詞的無(wú)歧義深度向量表示,作為下游任務(wù)的輸入。
卷積神經(jīng)網(wǎng)絡(luò)是能在給定的結(jié)構(gòu)中總結(jié)出具有特征性的局部預(yù)測(cè)器,將它們結(jié)合以生成特征矩陣來(lái)表示該結(jié)構(gòu),捕獲最具有任務(wù)特征的局部特征。BERT層的輸出向量矩陣T作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,卷積核在句子詞向量矩陣上滑動(dòng),卷積核與對(duì)應(yīng)的句子詞向量矩陣窗口上進(jìn)行對(duì)應(yīng)元素相乘后作和,其值作為最后特征矩陣的一個(gè)特征值,所有特征值組成一幅特征圖,其計(jì)算式為式(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個(gè)窗口的拼接向量,即xi=⊕Ti:i+t-1=[Ti,Ti+1,…,Ti+t-1],xi∈Rt×M(M為詞向量維度);權(quán)重矩陣wc∈Rt×M和偏置bc都通過(guò)參數(shù)估計(jì)過(guò)程進(jìn)行學(xué)習(xí);f為激勵(lì)函數(shù),去線性化處理;ci表示特征圖的第i個(gè)特征值,為標(biāo)量,ci∈R;y為卷積完成得到的特征圖。
本文模型使用多個(gè)卷積核,(1) 充分提取特征;(2) 為L(zhǎng)RN優(yōu)化特征圖的歸一化做前提。將所有的特征圖經(jīng)過(guò)ReLU去線性化和最大池化處理后,送入LRN局部?jī)?yōu)化層,來(lái)優(yōu)化所有的特征圖。
局部響應(yīng)歸一化LRN層[14]模仿了生物神經(jīng)系統(tǒng)的“側(cè)抑制”機(jī)制,使局部神經(jīng)元之間競(jìng)爭(zhēng)響應(yīng)機(jī)會(huì),讓響應(yīng)較大的值變得相對(duì)更大,并抑制其他響應(yīng)較小的神經(jīng)元。卷積神經(jīng)網(wǎng)絡(luò)在池化后利用LRN優(yōu)化使同一個(gè)特征圖的特征值都有相似的方差,能加快模型的收斂速度和提高特征提取能力。本文的LRN使用通道內(nèi)歸一化模式,即在同一個(gè)特征圖上操作。LRN的計(jì)算公式見(jiàn)式(8)。
(8)
式中:a、b分別表示在同一個(gè)特征圖的原特征值和LRN優(yōu)化后的特征值;n表示局部歸一化區(qū)域的大小,設(shè)為5;α為縮放因子,設(shè)為1;β為指數(shù)項(xiàng),設(shè)為5;k為平滑操作,設(shè)為1;∑是以當(dāng)前特征值為中心的區(qū)域內(nèi)計(jì)算平方和,即1×n×n個(gè)特征值的平方和,不滿1×n×n個(gè)特征值的會(huì)補(bǔ)零后再求平方和。
每個(gè)原始特征圖的每一個(gè)特征值都是除以一個(gè)系數(shù)來(lái)達(dá)到歸一化的目的,該系數(shù)為式(8)等式右邊的分母部分。經(jīng)過(guò)LRN優(yōu)化后的各個(gè)特征圖與原始特征圖的維度相同,對(duì)所有經(jīng)LRN優(yōu)化后的所有特征圖連接成表示句子特征的特征向量,作為BiSRU層的輸入。
長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM的出現(xiàn),通過(guò)對(duì)循環(huán)層的重新設(shè)計(jì)來(lái)避免了RNN網(wǎng)絡(luò)的長(zhǎng)期依賴問(wèn)題和梯度消失的問(wèn)題,并有效解決了歷史鏈接問(wèn)題,但LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練很難并行化。本文提出的SRU模型不僅具有LSTM的能力,也具有并行計(jì)算的能力,它平衡了輸入的順序依賴和獨(dú)立性,簡(jiǎn)化了計(jì)算狀態(tài)的過(guò)程。SRU模型[15]的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 SRU模型的網(wǎng)絡(luò)結(jié)構(gòu)
在圖4中,Qt表示在t時(shí)刻的輸入,ft表示忘記門,rt表示在t時(shí)刻復(fù)位門,At和Ht別表示當(dāng)前時(shí)刻t的細(xì)胞狀態(tài)和最終輸出,At-1表示上一時(shí)刻t-1的細(xì)胞狀態(tài),σ和g代表Sigmoid函數(shù)和激活函數(shù)(雙曲正切或ReLU),⊙表示矩陣對(duì)應(yīng)元素的乘法運(yùn)算。
SRU模型使用丟棄連接,即當(dāng)前時(shí)刻的輸入消除了對(duì)上一時(shí)刻Ht-1的依賴性,以下是SRU模型的計(jì)算公式:
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)練時(shí)要學(xué)習(xí)的參數(shù)向量。
從式(9)到式(11)可以看到Ht-1的依賴性被消除了,通過(guò)式(12)和式(13)可以快速地實(shí)現(xiàn),因?yàn)檩敵霾辉僖蕾囉谳斎際t-1,從而可以批次處理所有時(shí)間步的矩陣相乘,明顯提高計(jì)算速度。
利用雙向SRU允許模型在序列內(nèi)部向前和向后看任意遠(yuǎn)的距離。BiSRU模型是由兩個(gè)SRU網(wǎng)絡(luò)通過(guò)上下疊加形成的,每一個(gè)時(shí)刻會(huì)同時(shí)存在相反方向的SRU中,將卷積層的輸出向量分別輸入到正反序SRU,會(huì)得到SRU每個(gè)時(shí)間步的輸出,每一個(gè)時(shí)間步的計(jì)算公式為:
(14)
將每一個(gè)時(shí)間步的正反序疊加值進(jìn)行拼接,拼接的方式能在線性時(shí)間內(nèi)高效地運(yùn)算,最后得到全部時(shí)間步的輸出。BiSRU模型的輸出輸入到全連接dropout層,該層在訓(xùn)練時(shí)會(huì)概率性地隨機(jī)作用于隱藏層的節(jié)點(diǎn),使其暫時(shí)被選擇隱藏掉而不工作,但是其權(quán)重會(huì)被保留,從而提高了模型的泛化能力,在本文的dropout比率為0.5。最后,利用Softmax回歸得到預(yù)測(cè)概率分布,取概率值最大的為預(yù)測(cè)結(jié)果。
實(shí)驗(yàn)的數(shù)據(jù)集為中文版本的Twitter數(shù)據(jù)集,包含2萬(wàn)多條中文標(biāo)注語(yǔ)料,其中積極情感句子8 700多條,消極句子8 100多條,中性句子5 500條。由于數(shù)據(jù)不平衡會(huì)造成分類器在訓(xùn)練的過(guò)程中嚴(yán)重偏向樣本較多的類別,使模型的綜合性能大大下降,因此,本文為保證訓(xùn)練集各類別的數(shù)目相同,都設(shè)為5 000條,各類別剩余的數(shù)據(jù)集作為測(cè)試集或者驗(yàn)證集。為驗(yàn)證模型在文本情感分析的有效性,使用評(píng)價(jià)標(biāo)準(zhǔn)為準(zhǔn)確率(Precision)、召回率(Recall)和F1(F-measure)值。計(jì)算式如式(15)-式(17)所示。公式的參數(shù)含義見(jiàn)表1。
表1 公式參數(shù)含義
Precision表示預(yù)測(cè)為某個(gè)類別的樣本數(shù)目與真正類別的樣本數(shù)目的比值。
(15)
Recall表示預(yù)測(cè)為某個(gè)類別中的真實(shí)類別數(shù)目與所有真實(shí)類別數(shù)目的比值。
(16)
由于上述兩種經(jīng)常矛盾,故引入綜合評(píng)價(jià)指標(biāo)F1,計(jì)算如下:
(17)
本文的情感分類是三分類,因此在計(jì)算出各個(gè)類別對(duì)應(yīng)的準(zhǔn)確率和召回率后,采用平均值作為分類器性能的評(píng)價(jià)指標(biāo)。
本文模型的各層參數(shù)設(shè)置如下:詞向量維度為768維;由于漢語(yǔ)中詞語(yǔ)之間的距離過(guò)大會(huì)導(dǎo)致語(yǔ)義聯(lián)系較弱,故卷積核粒度分別為3、4和5,激活函數(shù)選擇ReLU,因ReLU是無(wú)上界函數(shù),適應(yīng)LRN的“側(cè)抑制”原理;SRU隱藏層節(jié)數(shù)為128;損失函數(shù)為交叉熵函數(shù)(學(xué)習(xí)率為0.000 01);模型優(yōu)化器為Adam;訓(xùn)練批次長(zhǎng)度為32;epoch為10;最后的Dense層使用3分類。
為驗(yàn)證本文方法的有效性,在相同的實(shí)驗(yàn)環(huán)境下,將本文情感分析模型與其他情感分析混合模型進(jìn)行對(duì)比,最后結(jié)果如表2所示。
表2 與其他模型的性能比較
基線模型1是直接將BERT的輸出連接到全連接層后輸入到Softmax分類器得出的結(jié)果,相對(duì)基線模型,本文模型的準(zhǔn)確率能提高近4百分點(diǎn);對(duì)比模型2和模型3是為了驗(yàn)證BERT預(yù)訓(xùn)練模型的有效性,因?yàn)锽ERT預(yù)訓(xùn)練解決了多義詞表征問(wèn)題和利用了融合文本能力強(qiáng)的Transformer作為預(yù)訓(xùn)練模型的子結(jié)構(gòu),從而使模型分析能力大大提升,且BERT模型使用的是預(yù)訓(xùn)練的方式,是從大語(yǔ)料集合中訓(xùn)練語(yǔ)義向量,而非在任務(wù)語(yǔ)料中訓(xùn)練,使得訓(xùn)練出來(lái)的詞向量表征擁有更高的泛化程度;與模型4和模型5作對(duì)比是為了驗(yàn)證BiSRU模型的語(yǔ)義學(xué)習(xí)的有效性,由于LSTM和SRU模型能對(duì)歷史信息進(jìn)行策略性的過(guò)濾和保留,使得語(yǔ)義學(xué)習(xí)的能力更強(qiáng);與模型6對(duì)比是為了驗(yàn)證卷積層注入LRN層的預(yù)測(cè)效果,由表2可知注入LRN層后預(yù)測(cè)準(zhǔn)確率明顯提高;對(duì)比模型7和模型8是為了驗(yàn)證本文模型與基于BERT的單一模型的有效性,由表2可知,相比基于BERT的單一特征提取模型,本文利用的混合模型能更好地提取文本特征,在各個(gè)評(píng)價(jià)指標(biāo)都有不同程度的提升。最終的實(shí)驗(yàn)結(jié)果表明,本文提出的結(jié)合BERT和卷積雙向簡(jiǎn)單循環(huán)網(wǎng)絡(luò)的文本情感分析在測(cè)試集上有很好的表現(xiàn),證明了本文模型的有效性。
本文的模型分別與BERT-CNN-BiLSTM、BERT-CNN-LSTM等模型的每一個(gè)epoch的訓(xùn)練時(shí)間進(jìn)行比較,結(jié)果如圖5所示,在相同的實(shí)驗(yàn)環(huán)境下,本文模型的訓(xùn)練時(shí)間明顯縮小。BERT預(yù)訓(xùn)練模型總參數(shù)大小為110 MB,如果利用計(jì)算復(fù)雜度高的LSTM網(wǎng)絡(luò)作為下游任務(wù)的模型,無(wú)疑會(huì)導(dǎo)致訓(xùn)練時(shí)間大大增加,故本文利用了SRU模型的并行化的計(jì)算能力,在保證準(zhǔn)確率的條件下,能有效地減少訓(xùn)練時(shí)間。
圖5 每個(gè)epoch的訓(xùn)練時(shí)間
本文提出的結(jié)合BERT和卷積雙向簡(jiǎn)單循環(huán)網(wǎng)絡(luò)的文本分析模型實(shí)現(xiàn)了文本情感傾向的三分類,在實(shí)驗(yàn)數(shù)據(jù)集上的預(yù)測(cè)結(jié)果表明,本文提出的模型能夠提取融合文本語(yǔ)境的詞表征,然后利用該詞表征作為下游策略模型的輸入,并在卷積層注入LRN層和循環(huán)網(wǎng)絡(luò)中并行化參數(shù)估計(jì)過(guò)程,從而有效提升模型的情感分析的總體性能。