梁淑蓉,謝曉蘭,2*,陳基漓,2,許 可
(1.桂林理工大學(xué)信息科學(xué)與工程學(xué)院, 桂林 514004;2.廣西嵌入式技術(shù)與智能系統(tǒng)重點實驗室, 桂林 514004)
隨著互聯(lián)網(wǎng)時代發(fā)展起來的各種消費、娛樂和工作平臺,不僅給人們帶來便利生活,也給意見反饋和信息交流提供媒介,人們更愿意通過網(wǎng)絡(luò)平臺反饋自己對事物的喜好程度。情感分析是對主觀文本的情感傾向性分析,可獲取人們對事物的情感傾向,也給決策者規(guī)劃提供參考。
情感分析的發(fā)展主要經(jīng)過3個階段:基于情感詞典方法階段、基于機器學(xué)習(xí)方法階段和基于深度學(xué)習(xí)方法階段[1]。情感詞典是最早用于情感分析的手段,但人工構(gòu)建的情感詞典存在情感詞不完整、在不同的語境情況下無法識別情感傾向以及不能及時收錄新詞等問題。第二階段在機器學(xué)習(xí)的基礎(chǔ)上,根據(jù)文本特征的提取進行情感分類,相較于情感詞典的方法能減少人工標注的勞動力,但分類器的優(yōu)劣取決于特征提取的效果,導(dǎo)致其泛化程度不高。而深度學(xué)習(xí)的方法通過對人的神經(jīng)系統(tǒng)的模擬來構(gòu)建網(wǎng)絡(luò)模型,比上述兩者都更具優(yōu)勢。近年來,隨著計算機生產(chǎn)力的提高,云計算技術(shù)、大數(shù)據(jù)等技術(shù)以及先進技術(shù)的不斷發(fā)展,使得深度學(xué)習(xí)方法被廣泛應(yīng)用于自然語言處理(natural language processing,NLP)領(lǐng)域,主要體現(xiàn)在三種主流預(yù)訓(xùn)練模型手段:
第一種是神經(jīng)網(wǎng)絡(luò)語言模型Word Embedding(詞嵌入),先通過無監(jiān)督學(xué)習(xí)語料得到的詞向量,再應(yīng)用于下游任務(wù),Word2Vec模型和GloVe模型都是Word Embedding的代表,但該方法未考慮上下文語義。對此,文獻[2]在Word2Vec基礎(chǔ)上引入BILSTM以及文獻[3]在GloVe基礎(chǔ)上引入LSTM,用來獲取文本的上下文信息,將提取到的詞向量輸入分類器進行情感分析,但分類器效果會依賴于特征提取能力的優(yōu)劣,泛化能力不高。
第二種手段是采用RNN及其擴展方法,例如LSTM、GRU和Seq2Seq等,由于考慮了上下文語義,能很好地應(yīng)對NLP中機器翻譯[4]、閱讀理解[5]和情感分析[6]等相關(guān)問題,但缺點是需要大量標注數(shù)據(jù)和監(jiān)督學(xué)習(xí)。文獻[7]提出一種GRU和膠囊特征融合的情感分析模型,相對基于CNN方法的模型,準確率得到了提高。文獻[8]將BILSTM和CNN相結(jié)合,該解決方案使用遷移學(xué)習(xí)為情感分類的特定任務(wù)嵌入微調(diào)語言模型,從而能夠捕獲上下文語義。文獻[9]基于CNN和Bi-GRU網(wǎng)絡(luò)模型,引入情感積分來更好提取影響句子情感極性的特征,再加入注意力層使得模型相對比其他相關(guān)模型獲得更高的準確率。上述改進方式都是希望引入新機制的優(yōu)勢優(yōu)化模型性能,但未從本質(zhì)上解決模型缺陷。
第三種手段基于無監(jiān)督學(xué)習(xí),并充分考慮上下文語義,是目前公認最有效的模型訓(xùn)練手段。以此衍生的模型有ELMo[10]、OpenAI GPT[11]、Bert[12]和XLNet[13]。ELMo的本質(zhì)是多層雙向的LSTM,但ELMo通過無監(jiān)督學(xué)習(xí)語料得到上下文相關(guān)的特征不能適應(yīng)特定任務(wù)。OpenAI GPT則是對ELMo的改進,采用Transformer替代ELMo的LSTM部分,同時針對不同任務(wù)進行Fine-Tuning,但在編碼時不能看到后文的語義。2018年Google提出的Bert模型基于Encoder-Decoder架構(gòu)和雙向Transformer編碼,同時采用masked語言模型和上下文語句預(yù)測機制,BERT的出現(xiàn)開啟了NLP新時代,在情感分析領(lǐng)域也取得不錯成果,但也仍存在一定的缺陷,如模型上下游任務(wù)不一致而導(dǎo)致泛化能力低,每個預(yù)測詞之間相互獨立,以及生成任務(wù)能力不高。次年,谷歌大腦提出了XLNet模型,采用自回歸語言模型,引入置換語言模型解決AR模型不能雙向建模的缺陷,也增加了factorization order和Two-stream attention機制,一定程度上解決了BERT的缺陷,在許多公認的數(shù)據(jù)集任務(wù)中表現(xiàn)也十分優(yōu)異。
當前,基于BERT和XLNet兩種模型的優(yōu)化方法在情感分析上的應(yīng)用成為研究人員關(guān)注的焦點,針對BERT的改進,文獻[14]基于BERT模型結(jié)合BILSTM分析微博評論的情感傾向,提出的方法F1值有較高結(jié)果,但由于BERT參數(shù)過大,訓(xùn)練難度大的問題,使用的是發(fā)布訓(xùn)練好的模型。針對以往模型不能解決長文本存在的冗余和噪聲的問題,文獻[15]在文本篩選網(wǎng)絡(luò)中采用LSTM和注意力機制相結(jié)合方式,來篩選粗粒度相關(guān)內(nèi)容。再與細粒度內(nèi)容組合并輸入BERT模型中,該方法一定程度提升了方面級情感分析任務(wù)性能。文獻[16]基于BERT模型,引入BILSTM層和CRF層來擴展原模型,可以根據(jù)上下文來判斷那些情感傾向不明顯文本的情感傾向。文獻[17]針對BERT模型不能提供上下文信息的問題,結(jié)合GBCN方法構(gòu)建新模型,采用GBCN門控制機制,根據(jù)上下文感知嵌入的方法,優(yōu)化BERT提取出的詞向量特征。文獻[18]在BERT的基礎(chǔ)上增加BILSTM和注意力機制構(gòu)成的情感分析模型,相比以往模型,準確率和召回率都得到較好的結(jié)果??梢杂^察到,大多數(shù)情況對BERT的改進是在模型的基礎(chǔ)上,增加一些神經(jīng)網(wǎng)絡(luò)處理層,最后再進行微調(diào)的過程。目前針對XLNet的優(yōu)化研究處于初步探索階段,但從文獻[19]可發(fā)現(xiàn),基于Transformer-XL結(jié)構(gòu)的XLNet模型應(yīng)用于情感分析領(lǐng)域,其效果優(yōu)于以往技術(shù),并且訓(xùn)練模型所需數(shù)據(jù)減少了120倍。文獻[20]提出一種基于XLNet和膠囊網(wǎng)絡(luò)的模型,該方法通過提取文本序列的局部和空間層次關(guān)系,產(chǎn)生的局部特征表示經(jīng)過softmax再進入下游任務(wù),其性能優(yōu)于BERT模型。文獻[21]基于XLNet提出了一種CAW-XLnet-BiGRU-CRF網(wǎng)絡(luò)框架,該框架引入XLNet模型來挖掘句子內(nèi)部隱藏的信息,相比其他中文命名實體識別框架獲得了較好的F1值。文獻[22]針對抽取式數(shù)據(jù)集(如QuAD)類型的機器閱讀理解任務(wù),采用XLNet語言模型代替?zhèn)鹘y(tǒng)Glo Ve來生成詞向量,實驗表明在基于XLNet模型訓(xùn)練的詞向量的基礎(chǔ)上建立網(wǎng)層來進行SQuAD任務(wù),比以往大多數(shù)模型取得更好的F1值。文獻[23]針對股票評論提出了基于混合神經(jīng)網(wǎng)絡(luò)股票情感分析模型,利用XLNet語言模型做多義詞表示工作,提出的模型能兼?zhèn)涠涛谋菊Z義和語序信息提取、捕獲雙向語義特征以及關(guān)鍵特征加權(quán)的能力??梢杂^察出,采用XLNet預(yù)訓(xùn)練模型學(xué)習(xí)到的詞向量比以往模型獲得更多的上下文語義信息,將XLNet預(yù)訓(xùn)練模型的潛力充分挖掘成為研究人員目前的新工作。
因此,基于前人研究成果及優(yōu)化策略,現(xiàn)提出XLNet-LSTM-Att情感分析優(yōu)化模型,該模型通過XLNet預(yù)訓(xùn)練模型獲取包含上下文語義信息的特征向量,利用LSTM進一步提取上下文相關(guān)特征,引入注意力機制分配權(quán)重突出特征的重要程度,再判別情感傾向性。本文模型通過在XLNet的基礎(chǔ)上,添加新的網(wǎng)絡(luò)層來獲取更為豐富的語義信息,進而提高情感分析模型預(yù)測的準確性,優(yōu)化模型性能。
目前的自然語言處理領(lǐng)域大多遵循兩階段模型規(guī)則,第一階段是上游任務(wù)預(yù)訓(xùn)練語言模型階段,第二階段是下游任務(wù)的調(diào)優(yōu)階段。XLNet-LSTM-Att模型預(yù)訓(xùn)練屬于上游任務(wù),該模型由3層結(jié)構(gòu)組成,分別為XLNet層、LSTM層和Attention層,如圖1所示。
圖1 XLNet-LSTM-Att模型架構(gòu)圖
Attention層:Attention層是為了給特征向量賦予不同權(quán)值。對于從LSTM層進一步篩選出來的特征向量h(h1,h2,…,hT),通過Attention機制對保留的特征根據(jù)不同的影響程度a(at,1,at,2,…,at,T)而賦予不同權(quán)重,提高模型對重要特征的注意力。最后通過softmax激活函計算文本對應(yīng)類別的向量表示,最終將向量表示執(zhí)行下游情感分析任務(wù)。
XLNet是谷歌大腦提出的一種新的NLP預(yù)訓(xùn)練模型,該模型在20個任務(wù)上超越了BERT的性能,并且在18個任務(wù)上取得了最佳效果[12]??梢灶A(yù)估XLNet模型未來在NLP領(lǐng)域的發(fā)展將會有更好的表現(xiàn)。
1.1.1 自回歸語言模型
XLNet基于對下游任務(wù)更友好的自回歸語言模型。自回歸語言模型具有計算高效性、建模的概率密度明確的優(yōu)點。假設(shè)給長度為T的文本定序列x(x1,x2,…,xT),自回歸語言模型的目標函數(shù)由式(1)來表示。
(1)
通過式(1)可知,自回歸語言模型根據(jù)上文內(nèi)容來預(yù)測下一個詞,模型不能看到下文信息。假設(shè)需預(yù)測詞為xt,x 1.1.2 Permutation Language Modeling XLNet采用了一種新型的語言建模任務(wù)PLM,通過隨機排列語序來預(yù)測某個位置可能出現(xiàn)的詞。PLM需要兩個步驟來實現(xiàn)。 第一步:對全排列采樣。首先,PLM模型需對序列順序進行factorization order(全排列),以獲得不同的語序結(jié)構(gòu),假設(shè)給定序列x(x1,x2,…,xT),其語序的排列方式為1→2→3→4,對序列順序全排列得到3→2→4→1、2→4→3→1、1→4→2→3等順序。根據(jù)序列因式分解產(chǎn)生的不同順序來預(yù)測x3的舉例如圖2所示。 圖2 根據(jù)序列因式分解產(chǎn)生的不同順序預(yù)測x3 對于順序3→2→4→1的情況,因x3排在首位,則只能利用其隱藏狀態(tài)men進行預(yù)測;對于順序2→4→3→1的情況,可根據(jù)x2和x4的信息來預(yù)測x3的內(nèi)容,也就達到了預(yù)測過程中獲取上下文信息的目的。 對于上述全排序的方法,對給定長度T的序列x,有T!種排序結(jié)果,當序列長度過大時會導(dǎo)致算法的復(fù)雜度過高,并且也會出現(xiàn)預(yù)測詞位于首位的情況,顯然對模型的訓(xùn)練無益。因此,XLNet通過式(2)對序列全排序進行采樣優(yōu)化,去除不合適的序列。 (2) 式(2)中:ZT為長度為T的序列全排列的集合;z為從ZT里采樣的序列;zt為序列z中t位置上的值;Εz~ZT為對采樣結(jié)果求期望來減小其復(fù)雜度。 第二步:Attention掩碼機制。Attention掩碼機制的原理是在Transformer的內(nèi)部,把不需要的部分mask,不讓其在預(yù)測過程中發(fā)揮作用,但從模型外部來看,序列順序與輸入時保持一致。 順序序列3→2→4→1的掩碼矩陣由圖3所示,序列真實順序沒有改變,通過mask的操作達到類似隨機排序的效果。在掩碼矩陣中,其陰影部分為預(yù)測時能參考的信息,當預(yù)測x3時,由于其在首位無參考信息,因此掩碼矩陣第三行無陰影;當預(yù)測x2時,可根據(jù)x3內(nèi)容預(yù)測,因此掩碼矩陣第二行的位置3有陰影,以此類推。 圖3 順序3→2→4→1掩碼矩陣 PLM既解決了AR語言模型不能獲取上下文語義的問題,又解決了BERT模型中mask之間相互獨立的問題。 1.1.3 雙流自注意機制 雙流自注意(two-stream self attention)機制可解決PLM模型中,全排序序列語序隨機打亂使得模型退化為詞袋模型的問題。雙流(two-stream)分為Content Stream和Query Stream。傳統(tǒng)的AR語言模型對于長度為T的序列x目標函數(shù)為 (3) 式(3)中:z為從長度為T的序列x全排列隨機采樣序列;zt為采樣序列t位置上的序號;x為預(yù)測詞;e(x)為x的embedding;內(nèi)容隱狀態(tài)hθ(xz 由于PLM會將序列順序打亂,需要“顯式”的加入預(yù)測詞在原序列中的位置信息zt,式(3)更新為 (4) 式(4)中:g(xz (5) 式(5)中:m為網(wǎng)絡(luò)層的層數(shù),通常在第0層將查詢隱狀態(tài)g(0)初始化為一個變量w,內(nèi)容隱狀態(tài)h(0)初始化為詞的embedding,即e(x),根據(jù)上一層計算下一層數(shù)據(jù),Q、K和V分別為query、key和value,是通過對輸入數(shù)據(jù)不同權(quán)值線性變換所得矩陣。 雙流自注意機制希望在預(yù)測xt時,只獲取xt的位置信息,對于其他詞,既要提供位置信息,又要提供內(nèi)容信息。圖4是順序序列3→2→4→1預(yù)測x1時在Content Stream流和Query stream流的工作原理。 圖4 雙流模型 當預(yù)測x1時,模型能獲得x2、x3和x4的信息,其中,在圖4(a)所示的Content Stream流中,預(yù)測x1既編碼了上下文的信息(位置信息和內(nèi)容信息),還編碼了預(yù)測詞本身信息;在圖4(b)的Query stream流中,預(yù)測x1編碼了其上下文信息,且只編碼了預(yù)測詞本身的位置信息。 圖5 雙流自注意機制實現(xiàn)原理圖 XLNet預(yù)訓(xùn)練模型更夠充分學(xué)習(xí)到上下文語義信息,XLNet-LSTM-Att模型在該層將輸入文本序列轉(zhuǎn)化為可被機器識別的詞向量表達。 LSTM是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)模型以RNN為基礎(chǔ),加入了遺忘單元和記憶單元來解決梯度消失和梯度爆炸的問題。LSTM由遺忘門、輸入門和輸出門3個門結(jié)構(gòu)構(gòu)成。LSTM架構(gòu)如圖6所示。 ht-1為上一個單元輸出;ht為當前單元輸出;xt為當前輸入;σ為sigmod激活函數(shù);ft為遺忘門輸出;it與的乘積為輸入門輸出;ot為輸出門輸出 各個門控單元計算公式如下。 (1)遺忘門決定上一時刻單元狀態(tài)中保留什么信息到當前時刻Ct。 ft=σ(Wf[ht-1,xt]+bf) (6) (2)輸入門決定當前時刻網(wǎng)絡(luò)的輸入xt有多少信息輸入到單元狀態(tài)Ct。 it=σ(Wi[ht-1,xt]+bi) (7) (8) (9) (3)輸出門控制單元狀態(tài)Ct輸出多少信息ht。 ot=σ(Wo[ht-1,xt]+bo) (10) ht=ottanh(Ct) (11) LSTM的實現(xiàn)首先經(jīng)過遺忘門,確定模型丟棄上一個單元狀態(tài)中的某些信息,根據(jù)ht-1和xt輸出一個0~1之間的數(shù)值,決定是否舍棄該信息。然后通過輸入門來確定有多少信息被添加到單元狀態(tài),其中sigmoid層決定信息更新,tanh層創(chuàng)建一個備選的更新信息,從而更新單元狀態(tài)。最后輸出門確定單元狀態(tài)的輸出信息,sigmoid層決定輸出部分,再經(jīng)tanh處理得到值與sigmoid門的輸出相乘,得到最終輸出內(nèi)容。 LSTM通過特殊的門結(jié)構(gòu)可以解決學(xué)習(xí)能力喪失的問題,避免了當預(yù)測信息與相關(guān)信息距離較大導(dǎo)致的信息丟失。XLNet-LSTM-Att模型在該層對XLNet層輸出的序列進行深度學(xué)習(xí),從而對特征向量做進一步特征提取。 Attention機制通過對輸入序列x中每個詞的重要程度賦予不同權(quán)重,使得模型能夠獲得更好的語義信息,提升模型效率。采用的注意力機原理實現(xiàn)公式為 eij=a(si-1,hj) (12) (13) (14) 式中:i為時刻;j為序列中的第j個元素;si為i時刻的隱狀態(tài);eij為一個對齊模型,用來計算i時刻受第j個元素的影響程度;hj為第j個元素的隱向量;αij為i時刻受第j個元素受關(guān)注的程度;Tx為序列的長度;ci為經(jīng)權(quán)重化后輸出的向量。Attention機制架構(gòu)如圖7所示。 圖7 Attention機制架構(gòu) 對情感分析來說,句子中的每個詞對于其情感傾向的影響是不同的,為了擴大關(guān)鍵部分的影響力,需要找到并突出其關(guān)鍵部分,因此在LSTM層上引入Attention機制來提取文本中對于情感傾向重要的部分,采用傳統(tǒng)的Attention機制Soft Attention來接收LSTM層的輸出作為輸入,根據(jù)不同特征向量的重要程度不同,對其賦予權(quán)重,最后經(jīng)過softmax歸一化處理得到加權(quán)的向量表示,至此上游任務(wù)完成。 XLNet-LSTM-Att模型以keras架構(gòu)實現(xiàn),通過Anaconda平臺采用Python語言進行仿真驗證。采用譚松波采集的酒店評論語料ChnSentiCorp-6000進行仿真實驗,該語料是一個正負類各3 000篇的平衡語料,實驗將數(shù)據(jù)集劃分訓(xùn)練集和測試集規(guī)模如表1所示,取數(shù)據(jù)集前5 000條數(shù)據(jù)作為訓(xùn)練集,其余為測試集。語料示例如表2所示,其中標簽0為負面評價,標簽1為正面評價。 表1 數(shù)據(jù)集基本信息 表2 語料示例 仿真實驗將XLNet+LSTM+ATT模型與TextCnn、LSTM、BiLSTM、BERT、XLNet 5種常見的情感分析模型作對比試驗,其中各模型參數(shù)設(shè)置如表3所示。 表3 模型參數(shù)設(shè)置情況 仿真實驗效果由精準率P、召回率R、F1值和AUC 4個評價指標來評判,AUC即接受者操作特性曲線(receiver operating characteristic curve, ROC)下對應(yīng)的面積,通過預(yù)測概率計算,AUC值越大則分類器效果越好。精準率、召回率、F1值計算公式為 (15) (16) (17) 式中:TP為把正類評價判斷為正類評價的數(shù)量;FP為把負類評價錯判為正類評價的數(shù)量;FN為把正類評價錯判為負類評價的數(shù)量。 圖8為XLNet-LSTM-Att模型與5種其他模型進行比較的結(jié)果,分別從精準率P、召回率R和F1值評價模型優(yōu)劣。 圖8 6種模型測試結(jié)果 在對比實驗中,提出的XLNet-LSTM-Att優(yōu)化模型其精準率、召回率、F1值均優(yōu)于其他模型,其中,模型與BERT模型比較,精準率提高0.48%,與XLNet模型比較,精準率提高1.34%。 表4給出的是不同預(yù)訓(xùn)練模型的AUC值,目前常應(yīng)用于情感分析的模型在AUC值上均取得不錯水平,且由于BERT和XLNet能真正識別上下文語義,其AUC值比以往模型更高,其中,提出的XLNet-LSTM-Att模型AUC值略微提高,也表明了所提出模型具有良好的性能和泛化能力。 表4 6種模型AUC值 情感分析愈來愈成為政府和企業(yè)輿論把控的手段,通過對現(xiàn)有的預(yù)訓(xùn)練手段進行分析,基于XLNet預(yù)訓(xùn)練模型能提取上下文語義優(yōu)勢,提出在該模型上增加LSTM層和Attention機制的優(yōu)化模型XLNet-LSTM-Att,該模型首先利用XLNet獲取包含上下文語義的特征向量,再利用LSTM網(wǎng)絡(luò)層進一步提取上下文相關(guān)特征,最后引入Attention機制對提取出的特征分配權(quán)重,對文本進行情感傾向性分析,經(jīng)過對比實驗仿真,提出的模型在精確率等評價指標均有一定程度的提升。下一步工作中,對情感細粒度劃分是今后的研究重點。1.2 LSTM層
1.3 Attention層
2 仿真實驗分析
2.1 數(shù)據(jù)集信息
2.2 相關(guān)參數(shù)設(shè)置
2.3 評價指標
2.4 結(jié)果分析
3 結(jié)論