王桂江,黃潤才
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
大數(shù)據(jù)時(shí)代的社交媒體為用戶提供了反饋和信息交流的平臺(tái),對于一件商品,不同的人有不同的看法,了解用戶的看法和態(tài)度,是改進(jìn)和優(yōu)化的重要途徑。情感分析是對用戶觀點(diǎn)的凝練,代表著用戶的實(shí)際感受。
情感分析的發(fā)展經(jīng)歷了3個(gè)主要階段,基于情感詞典、基于機(jī)器學(xué)習(xí)和基于深度學(xué)習(xí)。情感詞典作為最早的情感分析方式,通過將人們可能的觀點(diǎn)評價(jià)構(gòu)建一個(gè)字典,進(jìn)行內(nèi)容的匹配,以此來獲得用戶的情感傾向,這類的方法簡單直接,不需要太復(fù)雜的方法就能獲取到結(jié)果,但是情感詞典的構(gòu)建卻需要大量的人力、物力和精力。而且隨著社會(huì)的發(fā)展,基于情感詞典已經(jīng)無法跟上時(shí)代的變化。機(jī)器學(xué)習(xí)的出現(xiàn),一定程度上解決了情感詞典構(gòu)建的問題,基于機(jī)器學(xué)習(xí)的方法根據(jù)文本提取的特征進(jìn)行分類,即利用支持向量機(jī)(Support Vector Machines,SVM)等分類器,但是這類方法仍然需要人工標(biāo)注的數(shù)據(jù),分類器的結(jié)果也取決于數(shù)據(jù)的標(biāo)記效果,泛化能力并不強(qiáng)。
隨著深度學(xué)習(xí)的發(fā)展,自然語言處理進(jìn)入了新的發(fā)展階段?;谏疃葘W(xué)習(xí)的情感分析有3個(gè)典型代表:
(1)利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練詞向量。利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到詞向量,之后將詞向量的結(jié)果應(yīng)用到下游任務(wù)中。比較典型的方法是利用Word2Vec訓(xùn)練詞向量,將訓(xùn)練好的詞向量送入循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)進(jìn)行分析。
(2)利用循環(huán)神經(jīng)網(wǎng)絡(luò)RNN。RNN是處理時(shí)序問題的關(guān)鍵技術(shù),基于RNN改進(jìn)的長短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)、門控循環(huán)單元(Gated Recurrent Unit,GRU)。陳帆利用LSTM對微博情感進(jìn)行分析,并用于微博特定主題的謠言識(shí)別;李輝等利用GRU學(xué)習(xí)文本詞語,并引入注意力機(jī)制實(shí)現(xiàn)了比LSTM有競爭力的效果。但是對于情感分析,獲取上下文非常有必要,張俊飛等用BiLSTM來獲取上下文信息,將提取到的信息送入分類器,對評教評語進(jìn)行情感分析。這類方法的效果依賴于特征提取的效果,而且激活函數(shù)的選擇也關(guān)系到最終的分類效果。
(3)無監(jiān)督學(xué)習(xí),并充分考慮上下文信息?;谧⒁饬C(jī)制的Transformer模型,使用編碼和解碼的機(jī)制,通過對注意力機(jī)制進(jìn)行不同形式的構(gòu)造,取得了比RNN更強(qiáng)的效果;基于Transformer的BERT模型,在傳統(tǒng)的分類、問答和翻譯等十多項(xiàng)任務(wù)中取得了歷史最好的成績,郝彥輝等在BERT模型的基礎(chǔ)上引入BiLSTM,根據(jù)上下文判斷情感傾向不明顯的內(nèi)容的真實(shí)情感傾向;李文亮等在BERT的基礎(chǔ)上融合多層注意力機(jī)制,在方面級情感分析上取得了不錯(cuò)的效果。
基于BERT預(yù)訓(xùn)練模型,升級和改造出了如ALBERT、XLNET等表現(xiàn)不俗的模型,基于transformer-XL的XLNET使用相對小的數(shù)據(jù)規(guī)模實(shí)現(xiàn)了接近BERT的效果;ALBERT使用相對小的模型實(shí)現(xiàn)了與BERT接近的表現(xiàn),甚至在部分場景下效果更好。盡管這一類的預(yù)訓(xùn)練模型在特征提取和詞向量構(gòu)建上表現(xiàn)出了較好的效果,但卻存在無法理解語義背景的問題,比如:“基督山伯爵在巴黎的住處位于香榭麗舍大街,他很期待在這里遇見莫雷爾先生”是一句包含了地點(diǎn)、人物和社會(huì)關(guān)系的句子,而且?guī)в虚_心的語氣,如果不能理解其背景,只能感覺他在會(huì)見朋友。
綜上所述,基于前人的研究成果和優(yōu)化策略,為更好的獲取文本信息的語義特征,增強(qiáng)對于語義信息的理解,提升模型對文本的情感分析能力,本文提出了結(jié)合K-BERT和BILSTM的情感分析模型,使用帶有知識(shí)圖譜的K-BERT代替BERT,豐富句子的背景信息,有利于組合句子內(nèi)容,提高特征提取能力;在K-BERT基礎(chǔ)上引入BILSTM,進(jìn)一步增強(qiáng)對于上下文之間的語義提取;模型在NLP中文文本任務(wù)情感分類數(shù)據(jù)集上表現(xiàn)出了有競爭力的效果。
K-BERT是融合知識(shí)圖譜的語言訓(xùn)練模型,該模型在開放域的8個(gè)中文NLP任務(wù)上超過了Google BERT,模型由Knowledge layer、Embedding layer、Seeing layer、Mask-Transformer Encoder組成。
Knowledge layer的作用是將知識(shí)圖譜關(guān)聯(lián)到句子中,形成一個(gè)包含背景知識(shí)的句子樹(Sentence Tree)。知識(shí)嵌入句子的過程可以分為知識(shí)圖譜查詢(K-Query)和知識(shí)譜圖嵌入(K-Inject)。KQuery從知識(shí)圖譜中查詢句子所涉及到的命名實(shí)體,K-Inject將查詢到的命名實(shí)體相關(guān)的三元組嵌入到句子中合適的位置上,形成句子樹。假設(shè)給定句子{,,…,w}和知識(shí)圖譜(knowledge graph,KG),知識(shí)層輸出的句子樹結(jié)構(gòu)為{,,…,w{(r,w),…,(r,w)},…,w},句子樹形狀如圖1所示。
圖1 句子樹結(jié)構(gòu)Fig.1 Sentence tree structure
其中w是從知識(shí)譜圖中查詢到的命名實(shí)體;r是與w相關(guān)的第個(gè)分支;w是與w相關(guān)的第個(gè)分支對應(yīng)的值。
Embedding layer層包含token embedding、softposition embedding和segment embedding,其作用是將句子樹轉(zhuǎn)換成為序列,同時(shí)要保留句子樹的結(jié)構(gòu)信息。
Token-embedding主要用于實(shí)現(xiàn)句子樹的序列化,將句子中的每個(gè)token映射成為一個(gè)維度的向量表示,并在每個(gè)句子的開頭添加一個(gè)[CLS]標(biāo)記;
一是明確專項(xiàng)工作包聯(lián)主體。項(xiàng)目引進(jìn)之后,黨委政府明確牽頭領(lǐng)導(dǎo)和責(zé)任單位,將轄區(qū)管理和職能部門有效連接,給予回鄉(xiāng)創(chuàng)業(yè)項(xiàng)目全面、實(shí)時(shí)、無縫的服務(wù),盡最大努力協(xié)調(diào)解決項(xiàng)目遇到的困難。二是加強(qiáng)基礎(chǔ)設(shè)施建設(shè)力度。地方黨委政府加快推進(jìn)農(nóng)村路網(wǎng)、管網(wǎng)、電網(wǎng)、通信網(wǎng)等基礎(chǔ)設(shè)施建設(shè),為回鄉(xiāng)項(xiàng)目提供硬件條件支持。三是督促項(xiàng)目規(guī)范有序運(yùn)作。地方黨委政府除了服務(wù)項(xiàng)目運(yùn)作,還積極擔(dān)負(fù)起監(jiān)督項(xiàng)目規(guī)范運(yùn)作的職責(zé),督促企業(yè)規(guī)范運(yùn)用各類優(yōu)惠政策,遵紀(jì)守法、安全生產(chǎn),做好相關(guān)職工維權(quán)和矛盾調(diào)處工作,真正確保項(xiàng)目健康運(yùn)作、良性發(fā)展。
Soft-position embedding在BERT中,所有句子的輸入信息都對應(yīng)一個(gè)位置信息,在K-BERT中,將句子樹的內(nèi)容平鋪以后,當(dāng)分支中的token插入到對應(yīng)的主干節(jié)點(diǎn)之后,主干節(jié)點(diǎn)后續(xù)的token會(huì)發(fā)生移動(dòng),導(dǎo)致原有的位置信息發(fā)生變化,軟位置(Soft position)通過對句子樹的位置進(jìn)行二次編碼,將其原有的順序信息進(jìn)行恢復(fù),理順了句子的結(jié)構(gòu)。
Segment embedding該層用以區(qū)分一個(gè)句子對中的兩個(gè)句子,當(dāng)包含多個(gè)句子時(shí),第一個(gè)句子中的各個(gè)token被賦值為,第二個(gè)句子中的各個(gè)token被賦值為,當(dāng)只有一個(gè)句子時(shí),segment embedding為。
Seeing layer層的作用是通過一個(gè)可視化矩陣來限制詞與詞之間的關(guān)系,解決句子樹軟位置編碼后的一對多現(xiàn)象。對于一個(gè)可視化矩陣,相互可見的取值為0,互不可見的取值為-∞,定義如式(1):
Mask-Transformer的核心思想是讓一個(gè)詞的嵌入只來源于其同一個(gè)枝干的上下文,而不同枝干的詞之間相互不受影響,可視化矩陣解決了句子樹位置不同但編碼相同的問題,通過在softmax函數(shù)中添加可見矩陣,控制注意力的影響系數(shù)。Mask-Transformer由12層mask-self-attention堆疊,mask-self-attention的定義如式(2)~式(4):
其中:W,W,W是需要學(xué)習(xí)的模型參數(shù);h是隱狀態(tài)的第個(gè)mask-self-attention塊;d是縮放因子;為可見矩陣。
Embedding layer、seeing layer、句子樹和可見矩陣是K-BERT的處理的關(guān)鍵技術(shù),四者之間的關(guān)系如圖2所示。從knowledge layer得到句子樹后,對句子樹同時(shí)構(gòu)建可視化矩陣和送入embedding layer編碼,這兩個(gè)過程得到的信息歸并后輸入到maskselft-attention中進(jìn)行計(jì)算。
圖2 K-BERT處理的關(guān)鍵技術(shù)Fig.2 Key technology of K-BERT processing
本文在K-BERT的基礎(chǔ)上,通過引入雙向LSTM,增強(qiáng)模型對于上下文的語義關(guān)聯(lián)能力,使模型既有豐富的背景知識(shí),又能很好的關(guān)聯(lián)上下文,獲取更多的語義信息,從而實(shí)現(xiàn)情感分類效果的提升。本文的模型如圖3所示,稱其為KB-BERT。
圖3 KB-BERT情感分析模型Fig.3 KB-BERT sentiment analysis model
BILSTM層:雙向LSTM層的目的是學(xué)習(xí)文本所含特征,K-BERT層計(jì)算輸出的詞向量在LSTM層進(jìn)行再次學(xué)習(xí),獲取句子的上下文信息,對語義信息進(jìn)一步增強(qiáng);
Softmax層:經(jīng)過雙向LSTM提取到的特征信息被輸入到softmax層中進(jìn)行分類,將情感分為正面和負(fù)面。
LSTM是一種基于RNN的網(wǎng)絡(luò)結(jié)構(gòu),LSTM由輸入門、遺忘門、記憶單元和輸出門4部分組成,LSTM結(jié)構(gòu)如圖4所示。
圖4 LSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 LSTM network structure
遺忘門:
輸入門:
輸出門:
其中,和b分別為遺忘門的權(quán)重矩陣和偏置;和b分別為輸入門的權(quán)重矩陣和偏置;為候選向量;和b分別為輸出門的權(quán)重矩陣和偏置;和b分別是計(jì)算單元的權(quán)重矩陣和偏置。
經(jīng)過處理后的信息使用soft max層進(jìn)行情感分類。softmax為每個(gè)輸出分類的結(jié)果均賦值一個(gè)概率,表示每個(gè)類別的可能性,式(11):
其中,z為第個(gè)結(jié)點(diǎn)的輸出值;C為輸出結(jié)點(diǎn)的個(gè)數(shù);s是當(dāng)前元素與所有元素的比值,即當(dāng)前元素的概率。
本實(shí)驗(yàn)環(huán)境:處理器:E3-1281-V3 3.7 GHz八核;內(nèi)存:16 GB 1 600 MHz DDR3;GPU:華碩1070Ti 8G;系 統(tǒng) 環(huán)境:Ubuntu 18.04 LTS;編程語言:python3.7,pycharm開發(fā)環(huán)境,深度學(xué)習(xí)庫為Pytorch。
本文使用Book_review和Weibo兩個(gè)情感數(shù)據(jù)集,正面情緒標(biāo)簽為1,負(fù)面情緒標(biāo)簽為0。Book_review從豆瓣獲取,包含正負(fù)情緒各20 000條;Weibo從新浪微博獲取,包含正負(fù)情緒各60 000條。
為了驗(yàn)證模型的有效性,采用準(zhǔn)確率()對測試集和驗(yàn)證集進(jìn)行分別驗(yàn)證,準(zhǔn)確率的計(jì)算公式(12):
其中,T表示正面評價(jià)樣本中被預(yù)測為正面的樣本總數(shù);T表示負(fù)面評價(jià)樣本中被預(yù)測為負(fù)面的樣本總數(shù);F表示負(fù)面評價(jià)樣本中被預(yù)測為正面的樣本總數(shù);F表示正面評價(jià)樣本中被預(yù)測為負(fù)面的樣本總數(shù)。
為證明本文方法的有效性,取以下對比方法進(jìn)行驗(yàn)證:
(1)Google BERT。首先將輸入的文本進(jìn)行詞向量編碼,對于獲取到的詞向量進(jìn)行信息提取,之后運(yùn)用分類器進(jìn)行結(jié)果分類。
(2)K-BERT。首先對輸入的句子進(jìn)行命名實(shí)體識(shí)別,之后對識(shí)別到的命名實(shí)體從知識(shí)圖譜中查詢關(guān)聯(lián)詞,將查詢到的關(guān)聯(lián)詞插入到句子中形成包含背景知識(shí)的句子樹,對輸入的句子樹編碼,得到信息豐富的詞向量,將得到的詞向量直接送入分類器進(jìn)行結(jié)果分類。
(3)KB-BERT。首先使用K-BERT獲取信息豐富的詞向量,將得到的詞向量送入LSTM循環(huán)網(wǎng)絡(luò)二次特征提取,豐富上下文提取,最后將得到的詞向量送入分類器進(jìn)行結(jié)果分類。
實(shí)驗(yàn)一共訓(xùn)練5個(gè)epoch,每次的信息輸入量batch_size為8,使用dropout防止過擬合,dropout的值設(shè)置為0.5,使用12層mask-self-attention,學(xué)習(xí)率設(shè)置為0.000 02。
在本地實(shí)驗(yàn)條件下,KB-BERT、K-BERT和Google BERT在Book_review和Weibo數(shù)據(jù)集上的表現(xiàn)如圖5和圖6所示,其中圖5是驗(yàn)證集上的效果,圖6是測試集上的效果。
圖5 不同模型在驗(yàn)證集上的準(zhǔn)確率(%)Fig.5 Accuracy of different models on the validation set(%)
圖6 不同模型在測試集上的準(zhǔn)確率(%)Fig.6 Accuracy of different models on the test set(%)
在Book_review數(shù)據(jù)集上,KB-BERT的效果最好。在驗(yàn)證集上較K-BERT提升0.6%,較BERT提升0.9%;在測試集上,較K-BERT提升0.2%,較BERT提升0.1%。這說明,在數(shù)據(jù)內(nèi)容為長文本的情況下,引入LSTM有助于對上下文信息的獲取,本文優(yōu)化后的模型在Book_review數(shù)據(jù)集上的表現(xiàn)最佳,準(zhǔn)確率在驗(yàn)證集上達(dá)到87.97%。
在Weibo數(shù)據(jù)集上,BERT、K-BERT和KBBERT表現(xiàn)近乎一致。這說明,在文本內(nèi)容較為稀疏無規(guī)則的情況下,引入知識(shí)圖譜不能很好的得到命名實(shí)體,但是簡短的稀疏文本在使用LSTM后,對于上下文的語義獲取有一定的提升,說明在簡短稀疏的文本內(nèi)容中,LSTM網(wǎng)絡(luò)對于增強(qiáng)語義獲取仍舊發(fā)揮效果。盡管三者的區(qū)別不大,但本文所用方法在Weibo數(shù)據(jù)集上仍然取得最佳的效果,準(zhǔn)確率在驗(yàn)證集上達(dá)到98.28%。
引入雙向LSTM的KB-BERT模型,由Book_review和Weibo數(shù)據(jù)集上的表現(xiàn)說明,對于增強(qiáng)上下文語義理解,提升準(zhǔn)確率均有效果。在涉及專業(yè)知識(shí)或背景知識(shí)的情況下,對于長文本的分析結(jié)果表現(xiàn)更佳,對于短文本和稀疏文本,所提模型仍然有效。
本文給出了一種具有知識(shí)圖譜背景的情感分析模型KB-BERT。首先,通過K-BERT對輸入的內(nèi)容進(jìn)行處理,豐富其知識(shí)背景,增強(qiáng)語義的理解能力;其次,引入雙向LSTM網(wǎng)絡(luò),進(jìn)一步增強(qiáng)對于語義的上下文內(nèi)容理解。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的KB-BERT在涉及背景信息的長文本數(shù)據(jù)上表現(xiàn)更好,在Book_reivew和Weibo兩個(gè)中文數(shù)據(jù)集上,準(zhǔn)確率分別達(dá)到87.97%和98.33%,證明了本文方法的有效性。