寧 寧,莫秀良,王春東,佟寅鋮
(天津理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院 天津市智能計算及軟件新技術(shù)重點實驗室,天津 300384)
隨著信息技術(shù)的不斷發(fā)展,人們已經(jīng)從信息缺乏的時代過渡到信息極為豐富的數(shù)字化時代,網(wǎng)絡(luò)上的信息量正在飛速增長當(dāng)中,為了能夠在海量的文本中及時準(zhǔn)確地獲得有效的信息,文本分類技術(shù)已經(jīng)成為近年來文本挖掘領(lǐng)域的熱門話題[1].文本分類技術(shù)是指基于固定規(guī)則對指定文本進(jìn)行監(jiān)督學(xué)習(xí)的過程,它通常包括以下操作部分:預(yù)處理,文本表示,文本特征提取,分類算法,測試和評估[2],其中文本表示及特征提取十分影響分類器分類的效果.
文本表示分為離散表示和分布式表示.離散表示的代表就是詞袋模型[3],它把文檔集中的文檔拆成一個個的詞,去重后得到詞典,進(jìn)行文本表示.這種模型的特點是詞典中的詞沒有特定的順序,句子的總體結(jié)構(gòu)也被改變了.因此,文本的離散表示存在著數(shù)據(jù)稀疏、向量維度過高、字詞之間的關(guān)系無法度量的問題.
另一種是分布式表示也叫做詞嵌入,它將單詞分布在一個與實際語義高度相關(guān)的低維向量中.Word2vec是Google的Mikolov等人提出來的一種文本分布式表示的方法[4].這種方法彌補了詞袋模型的缺點.利用將單詞嵌入到另一個實數(shù)向量空間從而完成降維,并且單詞的向量表示具備具體意義,向量之間的距離通常也能刻畫在語料中兩個單詞之間的差異性.在此基礎(chǔ)上他們還提出了Doc2vec,通過嵌入詞向量的線性組合來訓(xùn)練文檔向量[5].這種模型不僅能訓(xùn)練得到詞向量,還能得到段落向量.更重要的是它也考慮了單詞的順序進(jìn)而繼承了單詞的語義.
LDA是一種基于概率模型的主題模型算法,它可以用來識別大規(guī)模文檔集或語料庫中的潛在主題信息[6].因此,許多研究者將LDA模型用于文本主題分類的任務(wù).Hsu CI提出的LDA-GA方法主要使用遺傳算法(GA)來找到主題集的最優(yōu)權(quán)重,即使用GA來改變LDA的θ矩陣[7].Zhao D等人通過向LDA添加主題類別分布參數(shù)來提出一種名為gLDA的主題文本分類算法,這種方法限制了主題與類別分布參數(shù)的生成范圍[8].為了提高文本分類的準(zhǔn)確性,Moody提出了LDA2vec[9].他在生成單詞向量的步驟中添加文檔向量來獲得上下文向量,通過上下文信息來學(xué)習(xí)更多可解釋的主題.Wang Z提出了一種基于Word2vec和LDA的新混合方法[10],使用的主題向量和文檔向量都是通過Word2vec訓(xùn)練出來的詞向量組合而成的.緊接著Sun F又提出了一種考慮語法類別—組合權(quán)重和主題高頻詞因素的LDA主題模型[11].運用LDA和Word2vec對語法類別——組合權(quán)重的概念進(jìn)行向量化以獲得組合向量.
在以上研究分析的基礎(chǔ)上,本文提出了一種綜合表示文檔的方法.將LDA與Doc2vec相結(jié)合,運用LDA模型挖掘出主題與文檔之間的關(guān)系,利用Doc2vec將其向量化.再用余弦相似度來度量空間中文檔和主題之間的相似性.本文選擇了20Newsgroups數(shù)據(jù)集來進(jìn)行性能評估,使用SVM算法進(jìn)行分類.與LDA+SVM、Doc2vec+SVM、LDA+Word2vec+SVM等方法相比較,結(jié)果表明文新方法的分類性能更好.
LDA是一種主題空間模型,它可以將文檔集中每一篇文檔的主題以概率分布的形式表示出來.如圖1所示.
在LDA模型中,對于給定的文檔集D,包含M篇文檔,K個主題,每篇文檔i中又包含Ni個詞語.
LDA定義生成任意一篇文檔需要進(jìn)行如下過程:
圖1 LDA模型Fig.1 Latent dirichlet allocation model
1)從α中取樣生成文檔i的主題分布θi,其中α是每篇文檔的主題分布的先驗分布(Dirichlet分布)的超參數(shù).
2)從主題的多項式分布θi中取樣生成文檔i中第j個詞的主題zi,j.
3)從β中取樣生成主題zi,j對應(yīng)的詞語分布φz,其中β是每個主題的單詞分布的先驗分布(Dirichlet分布)的超參數(shù).
4)從詞語的多項式分布φz中取樣最終生成文檔i中第j個詞語wi,j.
以上總結(jié)成公式(1)與(2),不斷重復(fù)以上步驟,最終生成一篇文檔.其中通過Gibbs抽樣得到的θ和φ可以發(fā)現(xiàn)文檔中的潛在主題,并預(yù)測具有主題比例分布的任何新文檔.
Doc2vec模型是在Word2vec模型的基礎(chǔ)上所產(chǎn)生的.其中Word2vec中包含兩種詞向量模型:Continuous Bag of Words(CBOW)和Skip-Gram[12],如圖2所示.這兩個模型各自訓(xùn)練一個網(wǎng)絡(luò)來預(yù)測相鄰的單詞.首先隨機(jī)初始化單詞向量,在CBOW的模型中,通過輸入目標(biāo)詞的上下文單詞向量來預(yù)測目標(biāo)詞匯.相反,在Skip-Gram的模型中,則通過輸入目標(biāo)詞向量來預(yù)測上下文單詞.預(yù)測任務(wù)可分解為以下公式.Word2vec模型的目標(biāo)是最大化平均對數(shù)概率來預(yù)測目標(biāo)詞匯,如公式(3):
圖2 CBOW模型和Skip-Gram模型Fig.2 Continuousbag of wordsand Skip-Gram
通過利用softmax函數(shù)很預(yù)測單詞wm,如公式(4):
對于每一個輸出的單詞wi,每一項ywi都是其非標(biāo)準(zhǔn)化對數(shù)概率.計算表達(dá)式如公式(5):
其中a、b為softmax參數(shù),f由從詞匯表矩陣W中提取的詞匯向量的串聯(lián)或平均構(gòu)成.在Word2vec模型中,用初始化的詞向量去預(yù)測句子中下一個詞的過程中,通過不斷的調(diào)整參數(shù)來最小化真實值和預(yù)測值的差值,最終可以間接的得到這些詞的向量表示.
在此基礎(chǔ)上加入段落這個屬性的考量,緊接著又提出Doc2vec模型來預(yù)測段落向量.其中Doc2vec模型也分為兩種預(yù)測形式PV-DM和PV-DBOW,如圖3所示.PV-DM和CBOM相似,不同的是PV-DM模型還需要隨機(jī)初始化一個段落向量,將段落向量和詞向量通過取平均值或者相連接來對目標(biāo)單詞進(jìn)行預(yù)測.在公式(5)中函數(shù)f通過段落矩陣V和單詞矩陣W共同構(gòu)造.PV-DBOW則是通過輸入的段落向量來預(yù)測上下文單詞.
圖3 PV-DM模型和PV-CBOM模型Fig.3 PV-DM and PV-CBOW
通過舉例來描述Doc2vec模型和Word2vec模型在預(yù)測效果上的區(qū)別.例如,已知兩個段落其中段落1中描述的主題是“我出門郊游野餐”,段落2描述的主題是“我在家吃午飯”,給出上下文“我坐在__”讓模型預(yù)測空缺的單詞.對于Word2Vec來說,不會考量段落1或是段落2的語境和主題,該模型也許會認(rèn)為“椅子上”在訓(xùn)練集中出現(xiàn)的次數(shù)最多,所以預(yù)測出坐在“椅子上”最有可能.但對于Doc2Vec來說,同時跟隨上下文輸入的還有一個代表了本段落的向量.當(dāng)一起輸入的是代表著段落1的向量時,最有可能預(yù)測的是“草坪上”或“地上”這類單詞,較小概率預(yù)測到“椅子上”;當(dāng)一起輸入的是段落2的向量時,更有可能預(yù)測的是“椅子上”,而“草坪上”或是“地上”就顯得不太合理,所以被預(yù)測到的概率降低.正如上述例子所描述的,Doc2vec考慮段落語境對詞語的預(yù)測更加準(zhǔn)確、更加靈活.
正如前幾節(jié)所介紹的,LDA模型可以從全局中挖掘文檔中的潛在主題,但是卻忽略了單詞之間的順序丟失了局部語義信息.而Doc2vec模型彌補了這樣的缺點,訓(xùn)練出來的詞向量運用了整個語料庫的信息,而得到的段落向量含有局部語義信息.將兩種方法相融合來訓(xùn)練向量,最終把詞向量、主題向量、段落向量都投射到同一語義空間中去.該模型不僅能挖掘出更細(xì)粒度的特征詞,還對后續(xù)的分類任務(wù)提高了辨識能力.
圖4展示了新模型,該模型將單詞、文檔和主題投射到同一語義空間中.Doc2Vec模型可以直接將段落或句子轉(zhuǎn)換成具有固定維度向量的分布式文檔表示.所以說文檔向量是由段落向量構(gòu)成的,而其中每個文檔又都有自己的長度,因此它的向量要除以文檔中的段落總數(shù),這樣才能保證測量的尺度相同.主題向量則由詞向量構(gòu)成,通過選取每個主題中前a個最高概率的詞來表示主題,然后重新計算這些詞的權(quán)重.最后通過計算主題向量和文檔向量的余弦相似度,找到相似的文檔.
給定文檔集D={d1,d2,…,dn},在Doc2vec的模型下訓(xùn)練D可以得到單詞向量{v(w1),…,v(wN)}與段落向量{v(p1,1),…,v(p1,r1);v(p2,1),…,v(p2,r2);…;v(pn,1),…,v(pn,rn)},其中{w1,…,wN}代表詞匯表中的單詞,{p1,1…p1,r1,…,pn,1,…,pn,rn}代表文檔段落.接下來,通過公式(6)計算文檔向量v(di),其中S是文檔中的段落數(shù).
與此同時通過LDA模型訓(xùn)練D挖掘潛在主題{t1,…,tm},其中在主題ti下任意一個單詞wi,j的概率分布為θi,j.選出每個主題下概率最高的前a個單詞,根據(jù)公式(7)重新計算單詞的概率分布λi,j.在此基礎(chǔ)上,通過公式(8)可以得到主題向量{v(t1),…,
圖4 新模型Fig.4 New model
新模型得到主題特征,不僅降低了數(shù)據(jù)的維度也改善了數(shù)據(jù)的稀疏性,更重要的是考略了單詞的語義和順序.這使挖據(jù)出來的潛在主題信息更豐富并且更接近于特定的文本內(nèi)容.該模型通過度量新定義的主題向量和文檔向量之間的相似距離來將主體信息融入到文本表示之中,可以很容易找到對應(yīng)文檔的主題.
為了測試新模型的文本分類效果,利用國際標(biāo)準(zhǔn)數(shù)據(jù)集20Newsgroups進(jìn)行試驗檢測,數(shù)據(jù)集包含18 846篇新聞報道,這些新聞報道又被分到20組不同類別的文檔集中.本實驗首先對數(shù)據(jù)集進(jìn)行文本預(yù)處理.將文本拆分為句子,將句子拆分為單詞,把所有單詞變換為小寫單詞并刪除標(biāo)點符號.再刪除所有的停用詞,刪除在語料庫中出現(xiàn)少于3個字符的單詞.最后將過去時態(tài)和未來時態(tài)的動詞都改為現(xiàn)在時態(tài),詞語也被簡化為詞根的形式.
使用數(shù)據(jù)集中的所有文檔去訓(xùn)練LDA和Doc2vec來提取主題向量、單詞向量、段落向量.LDA和Doc2vec都是使用Gensim包來實現(xiàn).在LDA中,超參數(shù)a設(shè)置為0.1,pass設(shè)置為20,以保證收斂.Doc2vec使用的PV-DM模型在Gensim中具有默認(rèn)設(shè)置.最后使用scikit-learn包對gamma=0.001的分類執(zhí)行SVM[13],分類指標(biāo)采用Micro F1.第一部分實驗選取了一篇關(guān)于曲棍球比賽的新聞報道來驗證新模型的有效性,相關(guān)實驗數(shù)據(jù)如表1所示.
在表1的左欄中,語料經(jīng)過LDA模型學(xué)習(xí)后得到該文檔中60個主題的概率分布,實驗中選取了前5個與文章最相關(guān)的主題,其中包含主題8、13、26、32和54,其他未列出的主題概率為0.表格的右欄代表由新模型得到的距離分布,括號中的兩個值分別代表主題索引和標(biāo)準(zhǔn)化距離,其中標(biāo)準(zhǔn)化距離越小,主題信息與文本內(nèi)容越接近.通過計算得到右欄中的平均余弦距離為1.876,此外在右欄也找到了與左欄中相應(yīng)的主題并加粗來表示,可以發(fā)現(xiàn)這些主題的距離小于之前計算的平均值,證明這些主題可以代表該文檔.右欄中的的主題26和主題58分別是距離最短與距離最長的主題,通過分析主題26與主題58所包含的主題詞來解釋其中的意義.主題26中包含“勝利”、“第一次”、“比分”、“衛(wèi)冕”等與示例文曲棍球運動相關(guān)的詞.而主題58包含“倉庫”、“種族”、“豎直”、“自動”等諸多與文檔內(nèi)容無意義的詞匯.這就說明這些距離具有可解釋性.另一方面,例如像主題19,它的余弦距離小于主題8、13、32、54,并且主題19包含“半場”、“得分”、“曲棍球”等詞,這說明本文提出的模型可以挖出更多與文檔內(nèi)容相關(guān)的主題信息.
表1 樣本的主題分布與距離分布Tab.1 Topic distribution and distance distribution of samples
為了證明該模型的優(yōu)點,在第二部分實驗中對相同數(shù)據(jù)集下的LDA+SVM、Doc2vec+SVM、LDA+Word2vec+SVM的實驗結(jié)果進(jìn)行了分析.首先得到不同向量維度下的Doc2vec+SVM的分類結(jié)果,如表2所示.
根據(jù)上圖所示,發(fā)現(xiàn)當(dāng)向量維度設(shè)置為220時,Micro F1的結(jié)果最好.
接下來將LDA+Doc2vec與LDA+SVM、LDA+Word2vec+SVM進(jìn)行分類對比,通過上述實驗找到新模型中向量的最優(yōu)維度vector_doc=220,通過改變對比模型中的主題數(shù)繼續(xù)進(jìn)行分類比較.如圖5所示.
圖5 Micro F1值的對比圖Fig.5 Micro F1 valuescomparion chart
從圖5中可以看出,LDA模型的分類效果最差,得到的Micro F1值也最低.從整體上看LDA+Word2Vec模型與LDA+Doc2vec模型的分類效果明顯優(yōu)于LDA模型.隨著主題數(shù)量的增加LDA+Doc2vec模型和LDA+Word2Vec模型的Micro F1值在降低,這有可能是因為設(shè)置的主題數(shù)量的不合理,影響了文本分類的準(zhǔn)確性.盡管如此,LDA+Doc2vec模型的整體效果也是優(yōu)于LDA+Word2Vec模型,即使在較少的主題下,該方法的Micro F1值也是較高的.在新模型中由于Doc2vec在訓(xùn)練時加入了對于段落的考量,這樣不僅考慮了詞語的語序,還考慮到不同語境下詞語向量所表示的含義,從而得到的段落向量則越來越接近于段落的主旨.再根據(jù)表3所示.
表2 不同向量維度下的Doc2vec+SVM的分類結(jié)果Tab.2 Classification results of Doc2vec+SVM in different vector dimensions
表3 四組實驗的結(jié)果Tab.3 The resultsof four experiment
綜合以上實驗結(jié)果,LDA+Doc2vec模型的分類效果比傳統(tǒng)的LDA模型高出20%,與其他方法相比新模型的Micro F1值能達(dá)到0.851,分類效果最好.
文本分類問題的研究具有重要的現(xiàn)實意義和應(yīng)用要求.本文通過結(jié)合LDA模型與Doc2vec提出新的文本表示方法,該方法結(jié)合了描述文章主題的主題向量,考慮了描述文章上下文的段落向量,比傳統(tǒng)的文本表示方法更加全面.通過與上述三種方法的分類效果進(jìn)行比較,該方法不僅挖掘出更多可能的潛在主題,還包含更多的語義信息,達(dá)到的分類效果也是最好的.本文的研究重點是提高文本分類的效果.在實驗過程中,發(fā)現(xiàn)LDA初始主題的設(shè)置對于生成的文檔表示非常重要.因此,在后續(xù)工作中計劃先進(jìn)行文本聚類找到最優(yōu)話題數(shù),之后再進(jìn)行算法的混合.另一方面,通過計算算法效率發(fā)現(xiàn)了該模型存在建模速度緩慢的問題.所以,在未來的研究工作中,將考慮如何提高建模的速度,以適應(yīng)海量文本數(shù)據(jù)的應(yīng)用.最后,在文本分類問題上,本文只是研究了特征工程這一部分,在選取分類器上還可以進(jìn)一步進(jìn)行研究.