袁麗莉,侯 磊,張正平
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025)
隨著大數(shù)據(jù)和“互聯(lián)網(wǎng)+”的高速智能化發(fā)展,互聯(lián)網(wǎng)已發(fā)展成為當(dāng)今世界上最大的信息資源庫,而大多數(shù)信息是以文本方式呈現(xiàn)出來的[1]。從這些海量且雜亂無章的數(shù)據(jù)文本中篩選出所需的有用信息是當(dāng)前數(shù)據(jù)挖掘領(lǐng)域的研究熱點。文本分類是自然語言處理(NLP)領(lǐng)域中的基礎(chǔ)任務(wù),能將復(fù)雜的文本信息有效的組織和管理,并已廣泛用于信息檢索、自動聊天系統(tǒng)、垃圾郵件過濾等領(lǐng)域。
目前,常用的文本分類方法可分為兩類,一類是基于傳統(tǒng)的機器學(xué)習(xí),例如支持向量機(SVM)、決策樹等;另一類是基于深度神經(jīng)網(wǎng)絡(luò)的文本分類方法,該種方法通常采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),其一般流程為文本預(yù)處理、結(jié)構(gòu)化表示、特征選擇和分類器構(gòu)建,通過學(xué)習(xí)訓(xùn)練得到分類模型,最后利用分類模型對測試樣本進(jìn)行預(yù)測,從而達(dá)到對文本分類的目的[2]。通過對當(dāng)前文本分類的研究不難發(fā)現(xiàn),文本表示是文本分類中的難點之一,尤其是在文本的語義表達(dá)方面最為困難。文本在機器學(xué)習(xí)中表示大多采用向量空間模型,該模型容易造成向量維數(shù)過大,數(shù)據(jù)稀疏的問題,從而影響最終分類的結(jié)果。因此,如何將文本表示為機器可以理解的形式,又保留文本原有的潛在語義至關(guān)重要[3-4]。文獻(xiàn)[5]提出一種基于LDA 主題模型和Word2Vec 詞向量模型,完成對文本詞向量的構(gòu)建,結(jié)合神經(jīng)網(wǎng)絡(luò)對構(gòu)建的詞向量獲取聯(lián)合特征的方法,實現(xiàn)文本分類;文獻(xiàn)[6]采用三層CNN模型,提取文本的局部特征,整合出全文的語義,利用長短時記憶網(wǎng)絡(luò)(LSTM)存儲歷史信息的特征,以獲取文本的上下文關(guān)聯(lián)語義;文獻(xiàn)[7]采用詞向量完成原始文本的數(shù)字化,利用雙向長短時記憶網(wǎng)絡(luò)(BiLSTM)進(jìn)行語義的提取,同時采用改進(jìn)的注意力層(Attention)融合正向和反向特征,獲得具有深層語義特征的短文本向量表示;文獻(xiàn)[8]提出一種BiLSTM 和CNN 混合神經(jīng)網(wǎng)絡(luò)文本分類方法,兩種神經(jīng)網(wǎng)絡(luò)的結(jié)合充分發(fā)揮了CNN 的特征提取能力和BiLSTM 的上下文依賴能力,同時采用注意力機制提取信息的注意力分值,增強模型的特征表達(dá)能力。
基于上述的研究,經(jīng)過word2vec 形成的詞向量矩陣,由于文檔集里的各個文本長度不一,造成詞向量矩陣的行數(shù)不一,在實驗過程不能批量處理數(shù)據(jù)。本文提出一種基于LDA 的最大概率填充模型,該模型對詞向量矩陣進(jìn)行填充,使構(gòu)建的詞向量矩陣行數(shù)等于最大文本長度,豐富了語義信息,采用BiLSTM_Attention模型對通過填充后具有上下文豐富語義信息的文本詞向量矩陣進(jìn)行訓(xùn)練,達(dá)到分類器可以根據(jù)給定的標(biāo)簽信息對輸入信息進(jìn)行分類的目的。
分詞過后的文本需要轉(zhuǎn)化為計算機能識別的形式,目前主要采用Word2Vec模型。Word2Vec 包含了CBOW 和Skip-gram 兩種模型,CBOW模型利用詞的前后各C個詞來預(yù)測當(dāng)前詞,如圖1(a)所示;Skip-gram模型則是利用當(dāng)前詞預(yù)測其前后各C個詞,如圖1(b)所示。在CBOW模型中,輸入層是詞W(t)的前后各C個詞向量,投影層將這些詞向量累加求和,輸出層是一棵以訓(xùn)練數(shù)據(jù)中所有詞作為葉子節(jié)點,以各詞在數(shù)據(jù)中出現(xiàn)的次數(shù)作為權(quán)重的樹[9]。最后應(yīng)用隨機梯度上升法預(yù)測投影層的結(jié)果作為輸出,Skip-gram模型與之類似。當(dāng)獲得所有詞的詞向量后,可發(fā)現(xiàn)這樣的規(guī)律:“king”+“woman”=“queen”,可見詞向量有效表達(dá)了詞語的語義信息[10]。
圖1 LDA模型Fig.1 LDA model
判斷兩個文本是否相似,傳統(tǒng)的方法是找出兩個文本中共有的詞個數(shù),這種方法的缺點在于忽略了文本的語義信息,使得兩個原本相似的文檔因為沒有共有的詞而造成判斷錯誤。所以在進(jìn)行文本分類時,語義也是需要考慮的一個重要的因素[11-12]。本文采用的LDA模型就能夠很好地解決文本的語義問題,通過文本混合主題上的概率分布選擇一種主題,從被抽取到的主題上所對應(yīng)的單詞概率分布中抽取一個詞,然后重復(fù)上述過程,直至遍歷文檔中的每一個單詞。圖2 為LDA 生成模型,K為主題個數(shù),M為文檔總數(shù),Nm是第m個文檔的詞數(shù),β是每個主題下詞的多項分布的Dirichlet 先驗參數(shù),α是每個文檔下主題的多項分布的Dirichlet 先驗參數(shù),zm,n是第m個文檔中第n個詞的主題,wm,n是第m個文檔中的第n個詞,隱含變量θm和φk分別表示第m個文檔下的主題分布和第k個主題下詞的分布,前者是k維向量,后者是v維向量。主題模型學(xué)習(xí)參數(shù)主要是基于Gibbs 采樣和基于推斷EM 算法求解,Gibbs 采樣算法是一種特殊的馬氏鏈的方法,是經(jīng)過對詞的主題采樣生成馬氏鏈。馬氏鏈的生成過程是根據(jù)所有詞的其它時刻的主題分布估計當(dāng)前詞分配于各個主題的分布概率,當(dāng)算法重新選擇了一個與原先不同的主題詞時,反過來會影響文本-主題矩陣和主題-詞矩陣,這樣不斷地進(jìn)行循環(huán)迭代,就會收斂到LDA 的誤差范圍內(nèi)。當(dāng)完成主題采樣后,就可以學(xué)習(xí)模型的最終訓(xùn)練結(jié)果,生成兩個矩陣分別為文本-主題分布矩陣θ及主題-詞分布矩陣Φ,公式(1)和公式(2)如下:
圖2 LDA 生成模型Fig.2 LDA generative model
運用詞向量模型對輸入文本進(jìn)行詞向量矩陣嵌入生成之后,因為文檔里的文本長度長短不一樣,導(dǎo)致文檔集里的各個文本生成的詞向量矩陣的大小各不相等,在目前的處理方法中,通常采用填零法、循環(huán)法和隨機法進(jìn)行填充,導(dǎo)致構(gòu)建的詞向量矩陣存在稀疏性以及語義混亂等問題[5]。為了在實驗中能夠進(jìn)行批處理數(shù)據(jù)和豐富文本特征信息,本文提出基于最大概率主題下的LDA 填充方式,以文檔集里的最大文本長度為基準(zhǔn),尋找文本對應(yīng)文本-主題矩陣最大的概率主題,找到此主題下的詞概率分布,依照概率大小將詞映射為詞向量,并依次對詞向量矩陣進(jìn)行填充,直至構(gòu)建的詞向量矩陣行數(shù)等于最大文本長度。填充流程如圖3 所示。
圖3 LDA 填充流程圖Fig.3 LDA filling flow chart
例如:“The driver of this car was charged by speeding and hitting pedestrian”,若不聯(lián)系后文則很難推斷在此處charge 是收費還是指控的意思,BiLSTM 雙向捕捉能獲得更細(xì)粒度的信息,提出了雙向神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)如圖4 所示。
圖4 BiLSTM_Attention 結(jié)構(gòu)圖Fig.4 BiLSTM_Attention structure diagram
首先,使用BiLSTM 學(xué)習(xí)當(dāng)前詞的上文詞向量C1(Wi)和下文詞向量C2(Wi),再與當(dāng)前的自身詞向量C(Wi)進(jìn)行計算,公式(3)~公式(5)如下:
將Xi作為Wi的語義特征,通過激活函數(shù)tanh得到的潛在語義信息Yi,公式(6)和公式(7)如下:
注意力機制是一種權(quán)重分配的機制,通過模仿生物、觀察行為,將內(nèi)部經(jīng)驗和外部感覺對齊,進(jìn)一步增強觀察行為的精度,在數(shù)學(xué)模型上表示為通過計算注意力的概率分布來獲得某個輸入對輸出的影響,該方法后來被引入到自然語言處理領(lǐng)域。圖4中的Vi作為不同時刻的輸出權(quán)重,公式(8)對BiLSTM 網(wǎng)絡(luò)的輸出進(jìn)行加權(quán)求和。
經(jīng)典的全連接網(wǎng)絡(luò)的輸出層表示為公式(9):
其中,W2為權(quán)重系數(shù),b1為偏置項。
通過softmax函數(shù)分類,得到每個文本所在類別的概率分布,找出最大值的類別就是預(yù)測類別,計算公式(10)如下:
本次實驗采用的數(shù)據(jù)集為IMDB 電影評論分析數(shù)據(jù)集,共有3 個部分:分別為帶標(biāo)簽的訓(xùn)練集(labeledTrainData),不帶標(biāo)簽的訓(xùn)練集(unlabeledTrainData)和測試集(testData),實驗參數(shù)見表1。
表1 BiLSTM 網(wǎng)絡(luò)參數(shù)Tab.1 BiLSTM network parameters
為客觀評價本文提出的模型,將IMDB 電影評論數(shù)據(jù)集按8:2 的比例分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。同時引入準(zhǔn)確度(accuracy)、精確度(precision)、召回率(recall)、綜合評價指標(biāo)(F1)對實驗結(jié)果定性分析,4 種指標(biāo)計算公式如公式(11)~(14),各參數(shù)意義見表2。
表2 評價指標(biāo)函數(shù)意義Tab.2 The meaning of evaluation index function
本文實驗涉及的開發(fā)工具與實驗環(huán)境:
硬件環(huán)境:CPU:Inter(R)core(TM)i5-4210 M,內(nèi)存:8 GB,硬盤:500 GB。
軟件環(huán)境:Windows10(基于X64 的處理器),python3.6.8。
為驗證本文模型的有效性,選取RNN、BiLSTM和BiLSTM_Attention 3 種常規(guī)模型與本文提出的LDA_BiLSTM_Attention模型進(jìn)行對比實驗,實驗結(jié)果見表3。
表3 評價指標(biāo)函數(shù)意義Tab.3 The meaning of evaluation index function
從表3 中的數(shù)據(jù)可以看出,本文模型文本分類準(zhǔn)確度達(dá)到98.43%,比BiLSTM_Attention模型提高了0.83%,在召回率方面也表現(xiàn)很好,綜合評價指標(biāo)最佳。RNN 網(wǎng)絡(luò)因不能雙向捕捉特征值導(dǎo)致分類效果最差,加入了注意力機制的BiLSTM模型相對于單獨的BiLSTM模型綜合評價指標(biāo)也有所提升。由此可知,在BiLSTM_Attention模型的基礎(chǔ)上加入LDA 算法填充詞向量矩陣,能豐富語義,進(jìn)一步捕獲文本分類的信息,提高文本分類的準(zhǔn)確率。
上述4 種模型的損失值和準(zhǔn)確率隨迭代次數(shù)的變化曲線,如圖5 和圖6 所示。由圖5 和圖6 可以看出,采用LDA 對詞向量矩陣進(jìn)行填充后訓(xùn)練的模型損失值最小,并且準(zhǔn)確度最高,達(dá)到了98.4%。采用LDA 算法對詞向量矩陣填充后進(jìn)行分類的準(zhǔn)確度相對于沒有填充后進(jìn)行分類的結(jié)果要高出0.83%,因為本文提出的LDA模型對詞向量矩陣進(jìn)行填充,豐富了上下文的語義關(guān)系,使得分類的準(zhǔn)確率更高,可解釋性也更好。
圖5 Loss 變化曲線Fig.5 Loss curve
圖6 Accuracy 變化曲線Fig.6 Accuracy curve
上述4 種模型的返回值和綜合評價指標(biāo)隨迭代次數(shù)的變化曲線如圖7 和圖8 所示??梢钥闯霰疚奶岢龅腖DA_BiLSTM_Attention 混合模型性能表現(xiàn)最佳,未加LDA 填充算法的BiLSTM_ Attention模型性能表現(xiàn)次之,這說明LDA 算法對詞向量矩陣填充后使用混合BiLSTM_Attention 結(jié)構(gòu)作為模型主體的效果顯著,充分發(fā)揮BiLSTM 算法在長文本序列中獲取歷史信息的能力與LDA 算法填充主題詞向量矩陣的優(yōu)勢,從而提高了文本分類的綜合指標(biāo)。
圖7 Recall 變化曲線Fig.7 Recall curve
圖8 F1 變化曲線Fig.8 F1 curve
文本表示是文本分類的重要過程,針對文本復(fù)雜語義表達(dá)的問題,本文提出一種LDA最大概率主題填充模型來豐富文本詞向量矩陣。首先,運用word2vec 詞嵌入方式生成文本向量;其次,根據(jù)LDA模型對文本向量進(jìn)行填充,豐富語義信息,采用BiLSTM_Attention模型訓(xùn)練填充后的詞向量矩陣;最后,采用softmax 進(jìn)行分類。通過與其他幾種文本分類模型的對比可知,本文提出的LDA最大概率填充算法能有效提高文本分類的準(zhǔn)確度。