韓 萍 劉 爽 賈云飛 孫佳慧
1(中國民航大學(xué)電子信息與自動化學(xué)院 天津 300300)2(中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院 天津 300300)3(中國民航大學(xué)基礎(chǔ)實驗中心 天津 300300)
由于社交媒體的普及和發(fā)布信息的低門檻,來自社交媒體的情緒和觀點能提供最新最廣泛的信息。其中,微博改變了傳統(tǒng)的社交網(wǎng)絡(luò)交流方式,以其短小精煉與實時的特點,迅速成為極具人氣的社交網(wǎng)絡(luò)平臺與新媒體平臺。新浪微博2019年第三季度財報顯示,截至2019年9月底,微博日活躍用戶增至2.16億。對微博進(jìn)行情感分析不僅對傳統(tǒng)消費者和企業(yè)收集有關(guān)產(chǎn)品或服務(wù)的意見具有重要意義,而且對國家安全和輿情分析也具有重要作用[1]。目前主流的情感分析方法有以下三種:基于情感知識、基于特征分類和基于深度學(xué)習(xí)的方法[2-4]?;谇楦兄R的方法通過構(gòu)建情感詞典,結(jié)合情感詞典中的語義規(guī)則,進(jìn)行情感計算來實現(xiàn)情感極性判別。文獻(xiàn)[5]通過N-gram特征構(gòu)建兩級情感詞典取得92.50%的準(zhǔn)確率。但是隨著網(wǎng)絡(luò)新詞的不斷涌現(xiàn)以及表情符號等非文字的表達(dá)形式的出現(xiàn),顯然依賴情感詞典的構(gòu)建不能完全表達(dá)整體的語義關(guān)系。基于特征分類的方法是提取文本中攜帶情感信息的有用特征并通過機器學(xué)習(xí)方法將其視為分類問題來處理[6]。文獻(xiàn)[7]首次提出使用機器學(xué)習(xí)方法進(jìn)行情感分類,并使用樸素貝葉斯、支持向量機和最大熵等方法進(jìn)行嘗試。傳統(tǒng)的機器學(xué)習(xí)方法仍然依賴于人工設(shè)計,而人工設(shè)計的特征具有一定的局限性,在某一領(lǐng)域的特征集不一定適用于其他領(lǐng)域。
隨著深度神經(jīng)網(wǎng)絡(luò)模型在語音識別和圖像分類等領(lǐng)域取得了巨大的成功,深度學(xué)習(xí)方法在情感分類問題上也取得很大的進(jìn)展,其通過大量的參數(shù)學(xué)習(xí)有用的抽象特征從而提高模型的性能。文獻(xiàn)[8]構(gòu)建字級別詞向量和詞級別詞向量的卷積神經(jīng)網(wǎng)絡(luò)(CNN),準(zhǔn)確率達(dá)到95.42%和94.65%。但CNN在自然語言處理的并行化操作中忽略非連續(xù)詞之間的關(guān)系。文獻(xiàn)[9]將注意力機制應(yīng)用到CNN的輸入端,并在輸出端融入樹型的長短時記憶網(wǎng)絡(luò)(LSTM),取得87.12%的準(zhǔn)確率。文獻(xiàn)[10]中提出基于Word2Vec和雙向長短時記憶網(wǎng)絡(luò)的情感分類模型(WEEF-BiLSTM),利用雙向長短時神經(jīng)網(wǎng)絡(luò)取得比較完整的上下文信息后經(jīng)過SVM進(jìn)行情感分類。雙向LSTM既解決了RNN由于內(nèi)部的梯度消失或梯度爆炸而不能實現(xiàn)文本的長期依賴問題,又從正序和逆序兩個方向?qū)崿F(xiàn)語義較完整的學(xué)習(xí)。
然而,為了充分利用深度神經(jīng)網(wǎng)絡(luò)模型的能力,需大量正確的標(biāo)記數(shù)據(jù)來訓(xùn)練模型,屬于有監(jiān)督學(xué)習(xí)。但收集大量的有標(biāo)記數(shù)據(jù)所需成本很高。僅在學(xué)術(shù)研究中,有監(jiān)督的深度神經(jīng)網(wǎng)絡(luò)至少需要上萬條有標(biāo)記的數(shù)據(jù),例如,文獻(xiàn)[11]中提到“Yelp 2013數(shù)據(jù)集是最大點評網(wǎng)站數(shù)據(jù)集中2013年的餐廳評論數(shù)據(jù)集,包含了78 977條文本評論數(shù)據(jù)[11]”,在實際應(yīng)用中的數(shù)據(jù)量會更加龐大,學(xué)術(shù)研究和實際需要發(fā)展了無監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)方法的應(yīng)用。
半監(jiān)督學(xué)習(xí)在近幾年來取得理論突破,受到廣泛學(xué)者的青睞。文獻(xiàn)[12]通過訓(xùn)練度閾值設(shè)定的方法優(yōu)化保留自訓(xùn)練(reserved self-training),準(zhǔn)確率為87.05%。文獻(xiàn)[13-15]本質(zhì)上都是從提高預(yù)測標(biāo)簽置信度的方面出發(fā),不斷利用有標(biāo)簽的數(shù)據(jù)提高分類器的分類表現(xiàn),其內(nèi)部是有監(jiān)督的過程,卻忽略了利用大量無標(biāo)簽數(shù)據(jù)可以挖掘數(shù)據(jù)內(nèi)部特征表達(dá)來實現(xiàn)準(zhǔn)確分類的問題。
針對以上不足,本文將適用于文本序列的深度神經(jīng)網(wǎng)絡(luò)長短期記憶網(wǎng)絡(luò)(LSTM)作為半監(jiān)督變分自編碼模型中編碼器與解碼器,用來編碼原始文本序列與生成新的文本序列。將其衍生模型雙向長短期記憶網(wǎng)絡(luò)(Bi-LSTM)作為半監(jiān)督變分自編碼模型中的分類器,其作用是為編碼器提供標(biāo)簽信息共同生成隱變量,并為解碼器提供標(biāo)簽信息,與隱變量共同生成新樣本。整體模型通過優(yōu)化原始樣本與真實樣本之間的目標(biāo)函數(shù)實現(xiàn)分類器準(zhǔn)確率的提升。
變分自編碼器(Variational Autoencoder,VAE)是一種基于標(biāo)準(zhǔn)變分自編碼模型正則化版本的生成模型,通過生成的樣本不斷逼近原始樣本從而獲取其表征樣本特性的隱含層特征,結(jié)構(gòu)如圖1所示。
圖1 變分自編碼結(jié)構(gòu)
(1)
式中:pθ(x|z)表示由隱變量z重構(gòu)數(shù)據(jù)x的概率分布;pθ(z)表示隱變量z的先驗分布,常采用標(biāo)準(zhǔn)高斯分布N(0,1)[16]。為了使利用z生成的樣本能與原始樣本對應(yīng),采用pθ(z|x)表示由原始數(shù)據(jù)通過學(xué)習(xí)得到隱變量z的概率分布。由于真實的后驗分布pθ(z|x)計算困難,采用具有對角線協(xié)方差結(jié)構(gòu)的多元高斯分布qφ(z|x)(φ為編碼參數(shù))來逼近真實的后驗概率分布。pθ(z|x)與qφ(z|x)分布的KL散度見式(2),編碼器用來參數(shù)化均值μ和標(biāo)準(zhǔn)差σ,Dense為全連接層,新樣本可通過解碼高斯隱空間N(μ,diag(σ2))的采樣點得到,由于N(μ,diag(σ2))的采樣過程不可微,利用μ+N(0,1)×σ來代替z來進(jìn)行模型參數(shù)的更新。
KL(qφ(z|x)‖pθ(z|x))=
Eqφ(z|x)[logqφ(z|x)-logpθ(z|x)]
(2)
式中:KL散度為x~qφ(z|x)時兩個分布對數(shù)差的期望值,用于衡量兩個分布的相似程度,其值非負(fù),值越小,分布越相似。利用貝葉斯公式將式(2)中l(wèi)ogpθ(z|x)變換為:
logpθ(z|x)=logpθ(x|z)+logpθ(z)-logpθ(x)
(3)
將式(3)代入式(2)可得:
logpθ(x)=KL(qφ(z|x)||pθ(z|x))+
Eqφ(z|x)[logpθ(x|z)-logqφ(z|x)+logpθ(z)]
(4)
由式(4)可知,logpθ(x)是需要最大化的對數(shù)似然函數(shù),又為了使近似后驗分布接近真實后驗分布,即KL(qφ(z|x)||pθ(z|x))接近于0,則須最大化式(4)中等號右側(cè)的第二項,稱其為logpθ(x)的變分下界L(θ,φ;x),可由變分下界構(gòu)成VAE的目標(biāo)函數(shù)(對于第i個樣本):
L(θ,φ;x(i))=-KL(qφ(z|x(i))‖pθ(z))+
Eqφ(z|x(i))(logpθ(x(i)|z))
(5)
目標(biāo)函數(shù)由兩部分組成:KL(qφ(z|x(i))‖pθ(z))為正則化項;Eqφ(z|x(i))(logpθ(x(i)|z))為重構(gòu)誤差。與自編碼類似,qφ(z|x(i))表示變分參數(shù)為φ的編碼器;pθ(x(i)|z)表示變分參數(shù)為θ的解碼器。
一般基于變分自編碼模型,本文給出的模型結(jié)構(gòu)主要包含分類器(情感預(yù)測)、編碼器和解碼器三個部分,分別對應(yīng)qφ(y|x)、qφ(z|x,y)、pθ(x|y,z)。其結(jié)構(gòu)如圖2所示。
圖2 本文模型結(jié)構(gòu)
由1.1節(jié)可知,變分自編碼器是一種無監(jiān)督的學(xué)習(xí)方法,而在半監(jiān)督的變分自編碼結(jié)構(gòu)中,對于輸入x分為有標(biāo)簽的數(shù)據(jù)和無標(biāo)簽的數(shù)據(jù)兩種,目標(biāo)函數(shù)為最大化其變分下界,有標(biāo)簽的logpθ(x,y)和無標(biāo)簽的logpθ(x)分別滿足以下條件:
logpθ(x,y)≥
Eqφ(z|x,y)[logpθ(x|y,z)]+logpθ(y)-
KL(qφ(z|x,y)‖pθ(z))=
L(x,y)
(6)
logpθ(x)≥
Eqφ(y,z|x)[logpθ(x|y,z)]+logpθ(y)-
KL(qφ(y,z|x)‖pθ(z))=
U(x)
(7)
式中:H(·)為熵函數(shù)。
除此之外,還利用有標(biāo)簽的數(shù)據(jù)添加分類損失,總體的目標(biāo)函數(shù)變?yōu)樽钚』疛:
(8)
采用雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM)作為分類器,其作用是估計標(biāo)簽分布y~qφ(y|x)。
(9)
(10)
(11)
(12)
(13)
z~N(μ(x,y) diag(σ2(x,y)))
(14)
(15)
(16)
式中:Wμ∈Rdz×(dh+|y|),Wσ∈Rdz×(dh+|y|),y∈R|y|是y的one-hot向量,[∶]為向量的拼接操作。
解碼器的目標(biāo)是序列條件生成模型,將采樣的隱變量z和標(biāo)簽y作為輸入,估計生成序列模型的概率pθ(x|y,z),對于輸入一個序列x={x1,x2,…,xT},其概率為:
(17)
解碼過程如下:
(18)
(19)
(20)
式中:Wd∈R(|y|+dz)×dh,WP∈Rdh×|x|,|x|為輸入詞典的維度。
本文模型的算法流程如圖3所示。
圖3 算法總體結(jié)構(gòu)流程
算法步驟如下:
(1) 文本預(yù)處理:首先使用結(jié)巴(Jieba)分詞工具對每一條微博進(jìn)行分詞處理,然后采用哈工大停用詞表對文本中涉及的俚語、特定術(shù)語縮寫、用戶昵稱、URL、標(biāo)點符號等字符串進(jìn)行去噪處理。
(2) 文本詞向量表示:利用Word2Vec中的skip-gram模型對語料進(jìn)行訓(xùn)練得到文本的詞向量。詞向量是詞語到實數(shù)維向量空間的復(fù)雜映射,每個詞向量的維度是300維。
(3) 編碼器將詞向量矩陣編碼得到的向量與分類器得到的類概率向量拼接后,進(jìn)行VAE編碼,得到隱變量z的分布qφ(y|x)其維度為150維。
實驗數(shù)據(jù)集為COAE2014(公開微博情感傾向性測評),該數(shù)據(jù)集共4萬條微博,其中已知5 000條微博的極性。摘取其中幾條如表1所示,其中積極樣例中的第一句人工標(biāo)注易出錯,第二句相對較長,人工標(biāo)注費時費力。采用長短時記憶網(wǎng)絡(luò)設(shè)計的變分編碼模型可以較好地對以上微博文本進(jìn)行分類(表中*部分代指某些品牌)。
表1 COAE2014數(shù)據(jù)樣例
在5 000條有標(biāo)簽的數(shù)據(jù)中,測試集與訓(xùn)練集比例為1∶4;35 000條無標(biāo)簽數(shù)據(jù)同時用于本文模型中。證明算法在微博情感分類上的有效性,設(shè)計兩組實驗。
實驗1:分析本模型中參數(shù)對分類效果的影響。
實驗2:將本文模型與使用相同數(shù)據(jù)集的其他文獻(xiàn)進(jìn)行對比,證明算法有效性,并可視化模型優(yōu)化過程。
實驗環(huán)境是Intel CPU 1.70 GHz,8 GB內(nèi)存和Windows 7系統(tǒng),使用Python35和TensorFlow深度學(xué)習(xí)開源框架實現(xiàn)。主要參數(shù)如表2所示。
表2 模型參數(shù)設(shè)置
本文評估模型通過準(zhǔn)確率的高低來評估模型的性能是否優(yōu)于其他模型。
(21)
式中:Acc代表模型的實驗準(zhǔn)確率;T代表模型預(yù)測正確的文本;N為參與預(yù)測的文本總數(shù)。
3.5.1不同比例標(biāo)記數(shù)據(jù)的分類效果
為了驗證本文方法在標(biāo)記數(shù)據(jù)比例不同時的分類性能,借此來檢驗半監(jiān)督算法的有效性。分別對訓(xùn)練集中的5%、20%、40%和65%的有標(biāo)簽數(shù)據(jù)進(jìn)行測試,實驗結(jié)果如圖4所示。由圖4可以看出隨著有標(biāo)簽數(shù)據(jù)的增加,模型的分類準(zhǔn)確率不斷提高,當(dāng)有標(biāo)記數(shù)據(jù)占訓(xùn)練樣本的20%時,分類準(zhǔn)確率出現(xiàn)較大幅度的提升,提升6.2百分點。說明了本文的半監(jiān)督算法僅利用少量的有標(biāo)簽數(shù)據(jù)就可以對微博情感進(jìn)行較準(zhǔn)確的分類。
圖4 不同比例標(biāo)記數(shù)據(jù)的結(jié)果
3.5.2隱變量維度對分類效果的影響
隱變量是描述數(shù)據(jù)內(nèi)部高級的特征變量,其維度大小對分類效果的影響如圖5所示。在其他參數(shù)不變,隱變量維度為150時,準(zhǔn)確率最高。在維度較低時,隱變量無法完整表達(dá)數(shù)據(jù)特征;在維度較高時,模型容易陷入局部最優(yōu)值,出現(xiàn)過擬合。
圖5 隱變量不同維度的準(zhǔn)確率
3.5.3不同模型最佳參數(shù)的分類結(jié)果
對實驗2的分類準(zhǔn)確率進(jìn)行對比,并且可視化模型目標(biāo)函數(shù)優(yōu)化過程圖6所示,在迭代150次后模型就達(dá)到收斂狀態(tài)。由表3可知,本文模型在COAE2014數(shù)據(jù)集上取得了95.85%的準(zhǔn)確率,在所有對比方法中表現(xiàn)最優(yōu)。并且該算法的準(zhǔn)確率也較自訓(xùn)練的半監(jiān)督方法提高8.8百分點,說明生成模型的隱變量可以較好地表征數(shù)據(jù)內(nèi)部特征,實現(xiàn)更準(zhǔn)確的分類。
圖6 模型目標(biāo)函數(shù)優(yōu)化過程
表3 不同模型最佳參數(shù)的分類結(jié)果(%)
在微博情感分析任務(wù)中,本文借鑒半監(jiān)督與生成模型的思想,構(gòu)建基于變分自編碼的半監(jiān)督模型用于情感分類。該模型在變分自編碼的基礎(chǔ)上提供標(biāo)簽信息來更好的重構(gòu)數(shù)據(jù)。其優(yōu)點在于:① 采用長短期記憶網(wǎng)絡(luò)編碼和解碼文本序列,更全面地考慮文本的上下文關(guān)系,使重構(gòu)樣本更加貼近真實樣本,提高學(xué)習(xí)效率;② 采用變分自編碼的生成模型可以更準(zhǔn)確地刻畫文本的真實分布從而提高分類準(zhǔn)確率。該算法可以為提高算法推薦、用戶信譽評價和輿論分析等結(jié)果提供良好的模型基礎(chǔ)。由于目前的研究沒有實現(xiàn)實時分類的問題,后續(xù)將對此進(jìn)行改進(jìn)。