李東金,單 銳,*,陰良魁,王 芳,程寶娜
(1.燕山大學(xué) 理學(xué)院,河北 秦皇島 066004;2.中國(guó)科學(xué)院 科技創(chuàng)新發(fā)展中心,北京 100190)
隨著網(wǎng)民數(shù)量的增加,越來(lái)越多的評(píng)論信息不斷涌現(xiàn)。網(wǎng)民不僅可以在政府網(wǎng)站、微博等公眾平臺(tái)瀏覽每天發(fā)生的各類事件,還可以發(fā)表自己對(duì)這些事件的看法和態(tài)度。因此在這些平臺(tái)中的存儲(chǔ)了大量帶有一定的情感傾向的文本。對(duì)這些文本進(jìn)行深層次的提取,可以及時(shí)獲取網(wǎng)民在這些評(píng)論文本中所表達(dá)的對(duì)各種熱門事件和各種產(chǎn)品的看法和情感傾向,不僅可以使政府及時(shí)獲取網(wǎng)絡(luò)輿論情況,還可以使商家精準(zhǔn)獲得客戶的需求。因此,隨著自然語(yǔ)言處理技術(shù)的發(fā)展,可以從海量的評(píng)論文本中提取出評(píng)論者的情感傾向。
情感分析是通過(guò)一些特定的方法對(duì)評(píng)論的情感傾向進(jìn)行判斷,并根據(jù)判斷的結(jié)果對(duì)文本進(jìn)行分類,主要分為三個(gè)類別,基于情感詞典的方法、基于機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法[1]。
基于情感詞典的方法準(zhǔn)確率主要和情感詞典規(guī)模有關(guān),因此模型往往只能針對(duì)某一領(lǐng)域有較好的結(jié)果,而對(duì)其他領(lǐng)域的情感分析較差,從而導(dǎo)致模型實(shí)時(shí)性不強(qiáng)[2]。基于機(jī)器學(xué)習(xí)的方法是構(gòu)造分類器進(jìn)行情感分析,Pang等[3]在對(duì)影評(píng)進(jìn)行情感分析時(shí),首次使用機(jī)器學(xué)習(xí)算法對(duì)文本情感進(jìn)行分類,并在模型中結(jié)合了N-grams 模型和詞性。相比于情感詞典,機(jī)器學(xué)習(xí)方法相對(duì)情感詞典方法有了一定的進(jìn)步,但人為因素會(huì)對(duì)特征的選擇產(chǎn)生一定的影響,且對(duì)于不同領(lǐng)域無(wú)法使用同一特征; 數(shù)據(jù)集的質(zhì)量決定了分類器的效果,高質(zhì)量的標(biāo)注數(shù)據(jù)仍然需要人工大量構(gòu)造[4]。而深度學(xué)習(xí)網(wǎng)絡(luò)是通過(guò)模擬人的神經(jīng)系統(tǒng)搭建的,所以其特征表示能力和分類能力更強(qiáng)于情感詞典和機(jī)器學(xué)習(xí)[5]。基于深度學(xué)習(xí)的方法,都是將文本信息轉(zhuǎn)換成序列化向量,通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)特征向量進(jìn)行深層次的提取,并運(yùn)用各種機(jī)制優(yōu)化模型,從而得到了更高的準(zhǔn)確率。Mikolov等[6]提出的 Word2vec,將每個(gè)詞由k個(gè)維度的實(shí)值向量表示,使得Word2vec被廣泛應(yīng)用于情感分析領(lǐng)域。文獻(xiàn)[7]通過(guò)Word2vec得到詞向量,利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)對(duì)文本的局部特征進(jìn)行提取,雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory, BiLSTM)則對(duì)文本的上下文特征進(jìn)行提取,在一定程度上提高了文本情感分類的準(zhǔn)確性。但是通過(guò) Word2vec 得到的詞向量無(wú)法解決相同詞語(yǔ)在不同句子中可能具有不同的含意的問(wèn)題。文獻(xiàn)[8]提出了基于注意力機(jī)制的詞表示方法,該方法利用《同義詞詞林?jǐn)U展板》計(jì)算字詞間的語(yǔ)義貢獻(xiàn)度,并在數(shù)據(jù)集上驗(yàn)證了模型的有效率。文獻(xiàn)[9]通過(guò)Word2vec獲得初始詞向量,并通過(guò)TF-IDF對(duì)文本情感影響程度不同的詞匯賦予不同的權(quán)重值,以突出影響程度較大的詞對(duì)文本的影響,從而取得了較高的準(zhǔn)確率。
近年來(lái),隨著自然語(yǔ)言處理技術(shù)的發(fā)展,為了解決靜態(tài)詞向量模型的缺陷,研究者經(jīng)過(guò)大量的研究提出了動(dòng)態(tài)詞向量表達(dá)。以此產(chǎn)生的模型有ELMo[10]、OpenAI GPT[11]、BERT[12]、XLNet[13]。由于靜態(tài)詞向量模型不能解決多義問(wèn)題,文獻(xiàn)[14]利用ELMo生成融合詞語(yǔ)所在句子的上下文信息的詞向量,并將其輸入到改進(jìn)的Transformer中,使模型提取到了更加豐富、全面的語(yǔ)義信息,從而獲得了更高的準(zhǔn)確率。文獻(xiàn)[15]將ELMo和Glove獲得的詞向量進(jìn)行堆疊嵌入,采用了CNN和雙向門控循環(huán)單元 (Bi-directional Gated Recurrent Unit, BiGRU)的雙通道神經(jīng)網(wǎng)絡(luò)模型,并通過(guò)仿真實(shí)驗(yàn)驗(yàn)證了模型的準(zhǔn)確率。雖然ELMo由BiLSTM組成,這種方式在一定程度上同時(shí)利用了上下文信息,但只是對(duì)節(jié)點(diǎn)左右信息進(jìn)行了拼接,其兩邊的信息并沒有交集,因此ELMo并沒有獲得真正的上下文信息[16]。GPT預(yù)訓(xùn)練詞向量模型為了獲得長(zhǎng)距離文本信息首次利用了Transformer網(wǎng)絡(luò)。它雖然對(duì)ELMo進(jìn)行了改進(jìn),但是GPT仍然是一種單向的語(yǔ)言模型,因此,仍然不可能為序列編碼提供上下文信息。而BERT模型同樣采用 Transformer 編碼,BERT是在訓(xùn)練過(guò)程中對(duì)部分詞語(yǔ)進(jìn)行屏蔽來(lái)實(shí)現(xiàn)雙向預(yù)測(cè)的。文獻(xiàn)[17]以BERT模型為基礎(chǔ),引入了BiLSTM層和CRF層,使得模型可以通過(guò)上下文來(lái)判斷情感傾向不明確的文本。雖然BERT在文本情感分析領(lǐng)域取得了不錯(cuò)成果,但也仍存在一定的缺陷,如預(yù)訓(xùn)練過(guò)程中的數(shù)據(jù)與微調(diào)的數(shù)據(jù)不匹配。XLNet模型的提出在一定程度上解決了BERT 模型存在的問(wèn)題。XLNet模型和BERT模型的主要區(qū)別是:XLNet方法允許在雙向上下文中訓(xùn)練模型,而無(wú)需像BERT方法那樣屏蔽一部分預(yù)測(cè)詞。文獻(xiàn)[18]提出了基于XLNet和膠囊網(wǎng)絡(luò)的模型,該模型采用帶有動(dòng)態(tài)路由算法的膠囊網(wǎng)絡(luò)來(lái)提取文本的局部和空間層次關(guān)系,并產(chǎn)生局部特征表示,數(shù)據(jù)集測(cè)試表明,其性能優(yōu)于BERT。文獻(xiàn)[19]在XLNet的基礎(chǔ)上增加了LSTM層和注意力機(jī)制,通過(guò)XLNet獲取動(dòng)態(tài)詞向量,LSTM則用于提取上下文特征,最后再通過(guò)注意力機(jī)制,賦予特征不同的權(quán)重,該模型經(jīng)過(guò)測(cè)試獲得了較高的準(zhǔn)確率。可以看出,XLNet預(yù)訓(xùn)練模型比其他詞向量模型包含了更多的文本上下文語(yǔ)義信息,因此通過(guò)XLNet獲得的動(dòng)態(tài)詞向量可以進(jìn)一步提高模型的性能。
綜上所述,本文提出了基于XLNet的文本情感分析模型。首先通過(guò)XLNet獲得了包含文本上下文相關(guān)信息的詞向量,在一定程度上改善一詞多義問(wèn)題;其次利用CNN和BiGRU提取文本的局部和全局特征;再通過(guò)注意力機(jī)制,對(duì)影響大的特征賦予較大權(quán)重,對(duì)影響較小的特征賦予較小權(quán)重;最后,通過(guò)softmax分類器判斷情感極性。
本文的主要工作如下:
1) 首先,對(duì)于文本向量化,本文采用預(yù)訓(xùn)練語(yǔ)言模型XLNet,以獲得包含更多文本上下文語(yǔ)義信息的動(dòng)態(tài)詞向量,從而最大程度解決一詞多義問(wèn)題。
2) 其次,通過(guò)CNN和BiGRU對(duì)獲得的詞向量進(jìn)行特征提取,獲得了文本的局部和全局特征,使得模型能更好地理解文本的語(yǔ)義。
3) 最后利用注意力機(jī)制,對(duì)影響大的特征賦予較大權(quán)重,對(duì)影響較小的特征賦予較小權(quán)重,更加突出關(guān)鍵信息對(duì)文本的影響,降低噪聲特征的干擾,從而進(jìn)一步提高模型的準(zhǔn)確率。
基于XLNet的文本情感分析模型主要由四部分組成,包括XLNet、CNN、BiGRU和注意力機(jī)制。本文模型如圖1所示。

圖1 XLNet-CNN-BiGRU-Att模型架構(gòu)圖Fig.1 Framework of XLNet-CNN-BiGRU-Att model
XLNet模型不僅具有 BERT模型的優(yōu)點(diǎn)還對(duì)BERT模型的缺陷進(jìn)行了改進(jìn),為了實(shí)現(xiàn)雙向預(yù)測(cè)XLNet使用了三種機(jī)制:排列語(yǔ)言模型、雙流自注意機(jī)制、循環(huán)機(jī)制[20]。
1.1.1 排列語(yǔ)言模型
現(xiàn)有的預(yù)訓(xùn)練模型可以分為自回歸模型(autoregressive,AR)和自編碼模型(autoencoding,AE)。AR模型可以根據(jù)上文情況預(yù)測(cè)下一個(gè)可能的單詞,也可以通過(guò)下文預(yù)測(cè)上一個(gè)可能出現(xiàn)的單詞,因此AR模型只考慮單向的文本信息,ELMo就是一個(gè)經(jīng)典的自回歸語(yǔ)言模型。而AE模型則通過(guò)對(duì)原句子進(jìn)行破壞,并通過(guò)該模型來(lái)對(duì)原句子進(jìn)行重構(gòu),將對(duì)受損部分重新預(yù)測(cè),但在調(diào)優(yōu)過(guò)程中實(shí)際數(shù)據(jù)中并不存在預(yù)訓(xùn)練時(shí)AE模型中使用的人工替換詞,這將導(dǎo)致預(yù)訓(xùn)練和調(diào)優(yōu)之間的差異。因此XLNet模型通過(guò)引入隨機(jī)排序的思想,充分發(fā)揮了AR模型和AE模型的優(yōu)點(diǎn),又避免了他們的缺點(diǎn)。該思想獲得序列的所有不同的排列,以獲得不同的語(yǔ)序結(jié)構(gòu),通過(guò)學(xué)習(xí)不同排序的序列特征信息實(shí)現(xiàn)其雙向預(yù)測(cè)的目標(biāo),同時(shí)不會(huì)改變?cè)荚~順序。
但是對(duì)于一個(gè)長(zhǎng)度為T的序列,其因式分解后的順序有T!個(gè),因此研究者對(duì)XLNet采取部分預(yù)測(cè)的方法進(jìn)行優(yōu)化。因此最終使得式(1)達(dá)到最優(yōu):

(1)
其中,T為該序列的所有不同順序的集合,Z為集合T中的一種排列順序,xzt表示順序Z中第t個(gè)位置上的值,XZ 1.1.2 雙流自注意機(jī)制 雙流自注意機(jī)制的作用就是希望在預(yù)測(cè)xi時(shí)不僅要看到xi的位置信息還要獲得其他詞的位置和內(nèi)容信息。雙流自注意機(jī)制包括Query流和Content流。圖2和圖3是Query流和Content流的計(jì)算流程。其中Query流用g表示,Content流用h表示。 圖2 Query流Fig.2 Query stream 圖3 Content 流Fig.3 Content stream 根據(jù)Query流的工作原理,當(dāng)預(yù)測(cè)某個(gè)詞時(shí),Q向量只包含該位置的位置信息,K和V則包含其他位置的內(nèi)容信息,而對(duì)于Content 流,其與傳統(tǒng)的transformer一樣,同時(shí)編碼了上下文和目標(biāo)自身。 XLNet則是將Query 流和Content 流相結(jié)合,如圖4所示。第一層將hi(0)和gi(0)分別初始化為e(xi)和W,然后使用Content掩碼和Query掩碼依次計(jì)算每一層的輸出。 圖4 雙流自注意機(jī)制下的模型計(jì)算原理Fig.4 Principles of model computation under a two-stream self-attentive mechanism 1.1.3Transformer-XL 因?yàn)門ransformer要求輸入序列長(zhǎng)度固定,這就使得長(zhǎng)度小于所要求的固定長(zhǎng)度時(shí),需要對(duì)其進(jìn)行填補(bǔ),但長(zhǎng)度大于固定長(zhǎng)度則需要對(duì)序列進(jìn)行分割處理,導(dǎo)致訓(xùn)練時(shí)失去部分信息。為了解決這樣的問(wèn)題,XLNet使用了 Transformer-XL 中循環(huán)機(jī)制和相對(duì)位置編碼機(jī)制[21]。循環(huán)機(jī)制會(huì)在當(dāng)前文本的計(jì)算中引入上一段文本輸出的信息,使模型能夠看到更多的上下文信息。由于引入了上一段文本的輸出信息,可能使得位置編碼相同但片段不同從而對(duì)當(dāng)前片段的影響程度不同,所以引入了相對(duì)位置編碼機(jī)制,該機(jī)制是將詞語(yǔ)之間的相對(duì)位置應(yīng)用于編碼中。 綜上所述,XLNet克服了自回歸語(yǔ)言模型只考慮單項(xiàng)傳遞,沒有充分利用上下文來(lái)提取更深層的信息,因此XLNet可以訓(xùn)練出更加完整的融合上下文信息的詞向量。 本文模型應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)是為了對(duì)文本的局部特征進(jìn)行提取,但由于本文設(shè)置BiGRU后連接全連接層和softmax分類器,故本文CNN主體由兩部分構(gòu)成:輸入層、卷積層。 1) 輸入層 本文采用XLNet對(duì)文本信息進(jìn)行向量化,將輸入的詞向量用H∈Rk×n進(jìn)行表示,其中k是句子的詞向量個(gè)數(shù),n代表詞向量的維度。 2) 卷積層 卷積層使用固定尺寸的卷積核對(duì)輸入的文本向量進(jìn)行卷積運(yùn)算,得到文本的局部特征信息[22]。卷積運(yùn)算通常使用h×n維的過(guò)濾器,其中h和n分別表示卷積核尺寸和選取的詞向量維度。 Cho等[23]在2014年提出了GRU網(wǎng)絡(luò)模型,在GRU模型中只存在兩個(gè)門:更新門和重置門。結(jié)構(gòu)如圖5所示。 圖5 GRU結(jié)構(gòu)Fig.5 GRU structure 圖5中zt和rt分別表示GRU模型中的更新門和重置門。其計(jì)算公式為 rt=σWrxt+Urht-1 (2) zt=σWzxt+Uzht-1 (3) (4) (5) 由于單向GRU網(wǎng)絡(luò)在時(shí)刻t只能捕捉t時(shí)刻之前的歷史信息,所以只通過(guò)單向GRU是無(wú)法獲得文本上下文信息的。為了實(shí)現(xiàn)這一目的本文采用雙向門控循環(huán)單元。BiGRU網(wǎng)絡(luò)模型的具體結(jié)構(gòu)如圖6所示。 圖6 BiGRU神經(jīng)網(wǎng)絡(luò)模型Fig.6 BiGRU neural network model 文本向量分別以正向和反向的順序通過(guò)前向GRU和后向GRU,因此通過(guò)BiGRU每一時(shí)刻得到的文本特征信息都包括上文與下文之間的相關(guān)性。計(jì)算公式為 (6) (7) (8) 注意力機(jī)制通過(guò)對(duì)文本向量分配不同的權(quán)重,更加突出文本中更重要的信息,并減少次要信息的干擾,提高分類的準(zhǔn)確率[24]。因?yàn)閷?duì)于每個(gè)句子,不同的詞對(duì)句子的影響程度不同,因此,本文引入了一種注意力機(jī)制。注意力機(jī)制本質(zhì)上就是Query到一系列鍵值對(duì)(Key-Value)上的映射函數(shù),其計(jì)算流程如圖7所示。 圖7 注意力機(jī)制計(jì)算流程Fig.7 Attention mechanism calculation process 本文模型的參數(shù)如表1所示。 表1 XLNet-CNN-BiGRU-Att模型參數(shù)設(shè)置Tab.1 Parameter settings of XLNet-CNN-BiGRU-Att model 本文采用譚松波酒店評(píng)論數(shù)據(jù)集,包含6 000條語(yǔ)料,按照積極和消極分為兩類,積極語(yǔ)料包括3 000條,消極語(yǔ)料包括3 000條。本實(shí)驗(yàn)將隨機(jī)抽取70%的數(shù)據(jù)集作為訓(xùn)練集,另外的30%作為測(cè)試集。其中積極評(píng)價(jià)用標(biāo)簽1表示,消極評(píng)價(jià)用標(biāo)簽0表示。 本文模型以keras架構(gòu)實(shí)現(xiàn),通過(guò)Anaconda平臺(tái)采用Python語(yǔ)言進(jìn)行驗(yàn)證,操作系統(tǒng)為Windows 10家庭版,CPU為Intel Core i5-11260H @ 2.60 GHz,硬盤為1 TB,內(nèi)存為32 GB。 本文模型性能將由精準(zhǔn)率P、召回率R和F1值3個(gè)指標(biāo)進(jìn)行評(píng)估,其計(jì)算公式為 (9) (10) (11) 式中:nTP為把標(biāo)簽為1的文本判斷成標(biāo)簽為1的文本的數(shù)量;nFP是把標(biāo)簽為0的文本錯(cuò)判成標(biāo)簽為1的文本的數(shù)量;nFN是把標(biāo)簽為1的文本錯(cuò)判成標(biāo)簽為0的文本的數(shù)量。 本文設(shè)置了多組實(shí)驗(yàn)進(jìn)行對(duì)比,其中包括單一模型和聯(lián)合模型的比較、靜態(tài)詞向量模型和動(dòng)態(tài)詞向量模型的比較。其中前五個(gè)模型均用XLNet預(yù)訓(xùn)練語(yǔ)言模型獲得詞向量,而最后的模型采用Word2vec模型獲得詞向量。 1) XLNet:?jiǎn)我坏腦LNet模型。 2) CNN:?jiǎn)我坏腃NN模型。 3) BiGRU:?jiǎn)我坏腂iGRU模型。 4) CNN-BiGRU:在XLNet的基礎(chǔ)上先添加CNN模型,在CNN后加入BiGRU模型,最后接softmax分類器。 5) W2V-CNN-BiGRU-Att:首先通過(guò)Word2vec獲得詞向量,依次連接CNN模型、BiGRU模型和注意力機(jī)制。 經(jīng)過(guò)測(cè)試集測(cè)試,本文模型與其他5種模型的結(jié)果對(duì)比如表2所示。 表2 模型對(duì)比結(jié)果Tab.2 Comparison results of models 從表2中6組模型的3個(gè)指標(biāo)對(duì)比結(jié)果可以看出,本文模型的分類效果更好。首先第2和5組模型對(duì)比可以得出CNN和BiGRU均對(duì)文本情感分析產(chǎn)生了正向影響。其次第3、4、5組模型對(duì)比體現(xiàn)出了 CNN-BiGRU聯(lián)合模型的優(yōu)點(diǎn),CNN-BiGRU聯(lián)合模型可以同時(shí)獲得文本的局部和全局信息,其中第3組單CNN模型只考慮了文本局部信息對(duì)情感分析的影響,忽略了全局信息的影響,而第4組模型只考慮了全局信息的影響,忽略了局部信息的影響,因此第3組和第4組模型準(zhǔn)確率、召回率和F1值均低于第5組模型。再次第5組模型和本文模型相比,體現(xiàn)出了在聯(lián)合模型之后連接注意力機(jī)制可以有效提升模型的準(zhǔn)確率,因?yàn)樽⒁饬C(jī)制會(huì)對(duì)貢獻(xiàn)度不同的特征賦予不同的權(quán)重,會(huì)更加突出重要特征的影響,使得模型具有更高的準(zhǔn)確率。最后由于XLNet預(yù)訓(xùn)練語(yǔ)言模型可以獲得真正的融合上下文語(yǔ)義的詞向量,即相同的詞語(yǔ)在不同語(yǔ)義下會(huì)得到不同的詞向量,而Word2vec對(duì)不同語(yǔ)義下的同一詞語(yǔ)賦予的詞向量是完全相同的,因此最后一組模型的精確率、召回率和F1值均低于本文模型。綜上所述,本文模型具有良好的性能和泛化能力。 本文在XLNet預(yù)訓(xùn)練語(yǔ)言模型的基礎(chǔ)上加入了卷積神經(jīng)網(wǎng)絡(luò)、雙向門控循環(huán)網(wǎng)絡(luò)和注意力機(jī)制,不僅解決了傳統(tǒng)詞向量模型的一詞多義問(wèn)題,而且同時(shí)提取了文本的全局與局部信息,此外注意力機(jī)制還加強(qiáng)了重要特征對(duì)文本分類的影響,有效地提高了模型的準(zhǔn)確率。通過(guò)對(duì)比實(shí)驗(yàn),本文模型各種評(píng)估指標(biāo)均有一定的提升。由于本文只將文本分為積極和消極兩類,因此文本情感細(xì)粒度是下一步研究的重點(diǎn)。


1.2 卷積神經(jīng)網(wǎng)絡(luò)
1.3 BiGRU層









1.4 注意力機(jī)制

2 實(shí)驗(yàn)及分析
2.1 實(shí)驗(yàn)條件

2.2 評(píng)估指標(biāo)



2.3 對(duì)比實(shí)驗(yàn)設(shè)置
2.4 實(shí)驗(yàn)結(jié)果分析

3 結(jié)論