唐煥玲,劉艷紅,鄭 涵,竇全勝,魯明羽
1.山東工商學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 煙臺(tái)264005
2.山東省高等學(xué)校協(xié)同創(chuàng)新中心:未來(lái)智能計(jì)算,山東 煙臺(tái)264005
3.山東省高校智能信息處理重點(diǎn)實(shí)驗(yàn)室(山東工商學(xué)院),山東 煙臺(tái)264005
4.大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連116026
在標(biāo)簽分布比較均衡且標(biāo)注樣本足夠多的數(shù)據(jù)集上,大多數(shù)監(jiān)督式分類算法可以取得比較好的分類效果。然而,實(shí)際應(yīng)用中,訓(xùn)練樣本的標(biāo)簽分布并非都是均衡的,比如非法網(wǎng)頁(yè)識(shí)別、垃圾郵件識(shí)別等異常檢測(cè)的分類任務(wù),往往缺少足夠的正類(非法的)訓(xùn)練樣本[1-3],而標(biāo)簽分布不均衡會(huì)導(dǎo)致分類算法的性能下降[4]。但是人工標(biāo)注數(shù)據(jù)的成本昂貴,且難以對(duì)數(shù)據(jù)集擴(kuò)展。因此,如何提高不均衡數(shù)據(jù)的分類精度,近年來(lái)引起了許多研究者的關(guān)注[5-7]。
目前,對(duì)不均衡數(shù)據(jù)分類性能的提升方法通常分為兩類:對(duì)分類算法的優(yōu)化和對(duì)采樣算法的優(yōu)化。前者從分類過(guò)程入手,通過(guò)對(duì)特征選擇算法或分類算法的改進(jìn),實(shí)現(xiàn)不均衡文本分類性能的提升。后者通過(guò)不同的樣本采樣方法,解決類別分布不均衡問(wèn)題,如欠采樣[8-11]、過(guò)采樣[12-18]和混合采樣[19-24]方法,使用最多的是過(guò)采樣方法。其中的隨機(jī)過(guò)采樣RandomOverSampler[13],其思想是隨機(jī)復(fù)制正樣本,單純地使正負(fù)樣本比例達(dá)到相對(duì)平衡,該方法對(duì)正樣本的分類正確率有一定的提高,但其最大的缺點(diǎn)在于生成的正樣本是初始正樣本的復(fù)制,沒(méi)有真正引入新的不同的正樣本,因而正樣本的分類精度提升有限。為了解決隨機(jī)過(guò)采樣的局限性,提升樣本的多樣性,Chawla等[14]提出了SMOTE方法。SMOTE是最具代表性的過(guò)采樣方法,其基本思想是在每一個(gè)正樣本和其K近鄰的樣本之間隨機(jī)地生成一個(gè)新的樣本,該方法通過(guò)在不同樣本之間隨機(jī)生成新樣本,在一定程度上解決樣本的多樣性。然而,上述過(guò)采樣方法的問(wèn)題是:新樣本只是對(duì)現(xiàn)有樣本的合成,本質(zhì)上并沒(méi)有引入新的不同的稀少類別樣本,并沒(méi)有根本解決稀少樣本的多樣性問(wèn)題,因此分類精度的提升有限[25]。
考慮到互聯(lián)網(wǎng)上存在大量的未標(biāo)注樣本,如果能對(duì)相關(guān)領(lǐng)域的未標(biāo)注樣本進(jìn)行自動(dòng)標(biāo)注,有望解決標(biāo)簽分布不均衡問(wèn)題。另外,文獻(xiàn)[26]提出的有監(jiān)督主題模型SLDA,引入了表示主題-類別分布的參數(shù),能夠識(shí)別主題-類別之間的語(yǔ)義關(guān)系,建立主題與類別的精確映射。受此啟發(fā),本文將SLDA模型用于識(shí)別主題與稀少類別精確映射,以便提升稀少類別的分類精度。
鑒于此,本文結(jié)合SLDA主題模型和半監(jiān)督學(xué)習(xí)方法提出一種不均衡文本分類新算法ITC-SLDA(Imbalanced Text Categorization based on Supervised LDA,ITC-SLDA)。(1)在不均衡數(shù)據(jù)上訓(xùn)練生成SLDA主題模型,建立主題與稀少類別之間的精確映射,提高少數(shù)類的分類精度;(2)利用SLDA主題模型對(duì)未標(biāo)注樣本進(jìn)行自動(dòng)標(biāo)注,提出一種新的置信度計(jì)算方法和類別約束的采樣策略,通過(guò)降低不均衡文本的傾斜程度實(shí)現(xiàn)不均衡文本分類性能的提升。
SLDA模型的概率圖模型如圖1所示。
圖1 SLDA的概率圖模型
相同類別的文檔主題分布是相似的,文獻(xiàn)[26]在Collapsed Gibbs Sampling方法的基礎(chǔ)上提出了SLDATCGibbs算法,對(duì)每個(gè)詞的隱含主題進(jìn)行采樣,且只從同類別的其他訓(xùn)練文檔中進(jìn)行隱含主題采樣。具體描述如下:
表1 SLDA模型中的符號(hào)及含義
在獲得每個(gè)單詞w的主題z標(biāo)號(hào)后,通過(guò)統(tǒng)計(jì)頻次計(jì)算θm、φk和δk,計(jì)算公式如下:
基于SLDA主題模型,本文提出了ITC-SLDA不均衡文本分類算法。令訓(xùn)練樣本集D=D l?D u,其中表示包含N l個(gè)標(biāo)注樣本的訓(xùn)練集,y m=,如果屬于第j個(gè)類別,那么表示包含N u個(gè)樣本的未標(biāo)注訓(xùn)練集。令N j為Dl中屬于第j類的文本數(shù),,且C類樣本不均衡分布。表示包含N t個(gè)樣本的測(cè)試集。
在Dl數(shù)據(jù)集上訓(xùn)練生成SLDA模型后,得到每個(gè)文檔-主題分布θ、主題-詞分布φ,以及主題-類別分布δ,利用SLDA模型對(duì)未標(biāo)注樣本進(jìn)行主題推斷和標(biāo)簽預(yù)測(cè)。
(1)對(duì)D u中的未標(biāo)注文本進(jìn)行主題推斷
第d篇未標(biāo)注樣本中每個(gè)詞的隱含主題的推斷計(jì)算如式(5):
由式(5)計(jì)算得到未標(biāo)注樣本中每個(gè)詞的主題標(biāo)號(hào)后,再根據(jù)公式(6)計(jì)算其各個(gè)主題分量的概率:
其中,θ?d,k表示第d篇未標(biāo)注樣本屬于第k個(gè)主題的概率,θ?d表示第d篇未標(biāo)注樣本在K維主題空間的主題分布。由此,得到D u中每篇未標(biāo)注文本的主題分布。
(2)對(duì)D u中的未標(biāo)注文本進(jìn)行標(biāo)簽預(yù)測(cè)
每次迭代的基分類器h t對(duì)標(biāo)注樣本和未
為使訓(xùn)練錯(cuò)誤(training error)最小化,對(duì)標(biāo)注訓(xùn)練集,每個(gè)訓(xùn)練樣本都有標(biāo)簽y i,所以其損失函數(shù)Fl可以定義為:
按照半監(jiān)督學(xué)習(xí)中的“聚類假設(shè)”,距離相近的樣本,應(yīng)共享同一個(gè)類別標(biāo)簽[27]。每次迭代,對(duì)未標(biāo)注樣本的分類損失函數(shù)計(jì)算如下:
由式(9)和(10),結(jié)合未標(biāo)注樣本進(jìn)行訓(xùn)練的ITCSLDA算法的目標(biāo)函數(shù)定義如下:
其中,F(xiàn)l表示標(biāo)注樣本的訓(xùn)練錯(cuò)誤損失,F(xiàn) u表示未標(biāo)注樣本的訓(xùn)練錯(cuò)誤損失,η是常數(shù),調(diào)節(jié)Fu在目標(biāo)函數(shù)中的作用。
ITC-SLDA算法的每次迭代,需要按照置信度選取一定數(shù)量的未標(biāo)注樣本加入標(biāo)注訓(xùn)練集D l,這就涉及置信度的度量問(wèn)題。假設(shè)表示未標(biāo)注樣本被分為類c r的后驗(yàn)概率,半監(jiān)督學(xué)習(xí)中通常的方法是:按照的大小排序,大的樣本,其置信度就越高。這種度量有一定的道理,但是未必是最合理、最好的度量方法。為此,本文提出了新的置信度計(jì)算方法和類別約束的未標(biāo)注樣本的采樣策略。
(1)未標(biāo)注樣本的置信度計(jì)算
如果未標(biāo)注樣本x u i被基分類器h t分為第j個(gè)類,則其置信度由x u i被分為第j個(gè)類的后驗(yàn)概率與其他非j類的平均后驗(yàn)概率的距離度量,用表示,計(jì)算如下:
(2)類別約束的未標(biāo)注樣本的采樣策略
為此,提出類別約束的采樣策略SSC(Sampling Strategy under Category,SSC),每次迭代,將預(yù)測(cè)為第j類的未標(biāo)注樣本按置信度降冪排序,選擇置信度大于某個(gè)閾值S T的未標(biāo)注樣本加入到候選樣本集合E j中。再根據(jù)預(yù)設(shè)的樣本上限M,取E j中前(M-N j)個(gè)未標(biāo)注樣本,連同他們的預(yù)測(cè)類別一起,添加到標(biāo)注訓(xùn)練集Dl中,同時(shí)從D u中刪除。置信度閾值S T和M的取值可以由實(shí)驗(yàn)選取。對(duì)于置信度閾值ST和M兩個(gè)超參數(shù),使用10折交叉驗(yàn)證,在以下范圍內(nèi)自動(dòng)識(shí)別這些超參數(shù)的最優(yōu)值:ST∈[0,0.1,…,1],M∈[100,150,…,300]。具體而言,將訓(xùn)練集分成訓(xùn)練子集和驗(yàn)證子集,進(jìn)行10折交叉驗(yàn)證,根據(jù)Macro-F1和G-mean指標(biāo)選取最合適的ST和M。
結(jié)合SLDA有監(jiān)督主題模型,采用2.3節(jié)提出的置信度計(jì)算方法和類別約束的采樣策略,不均衡文本分類算法ITC-SLDA的描述如算法1所示。
算法1 ITC-SLDA algorithm
如算法1所示,其中:
步驟3.1是在Dl上生成SLDA模型并計(jì)算各個(gè)主題的類別概率分布。
步驟3.2對(duì)Du中的所有未標(biāo)注樣本進(jìn)行主題推斷、類別預(yù)測(cè)并計(jì)算置信度。
步驟3.3按照SSC采樣策略選取置信度高的未標(biāo)注樣本及其預(yù)測(cè)標(biāo)簽,加入不均衡數(shù)據(jù)集Dl。
步驟4當(dāng)加入到D l中的樣本數(shù)小于閾值v(實(shí)驗(yàn)選?。┗騈 l=M×C時(shí),停止迭代。
步驟5根據(jù)式(6)、(7)對(duì)測(cè)試文本進(jìn)行分類。
步驟6計(jì)算并輸出評(píng)價(jià)指標(biāo)Macro-F1和G-mean。
選 取20newsgroup(http://qwone.com/~jason/20Newsgroups/)的rec、sci和talk 3個(gè)數(shù)據(jù)子集,包括IT、財(cái)經(jīng)、教育和軍事4類的搜狗中文語(yǔ)料數(shù)據(jù)子集(http://www.sogou.com/labs/dl/c.html),并利用這些語(yǔ)料構(gòu)建出8種不均衡數(shù)據(jù)子集,其不均衡程度由類別標(biāo)準(zhǔn)差σ度量,σ越大表示類別分布越不均衡,如表2~表5所示。
表2 Subset-rec上的不均衡數(shù)據(jù)子集描述
表3 Subset-sci上的不均衡數(shù)據(jù)子集描述
表4 Subset-talk上的不均衡數(shù)據(jù)子集描述
表5 sogou子集上的不均衡數(shù)據(jù)子集描述
未標(biāo)注訓(xùn)練集Du是去除標(biāo)注數(shù)據(jù)后,在余下的相應(yīng)數(shù)據(jù)子集中選取并去掉標(biāo)簽。對(duì)20newsgroup的Subsetrec、Subset-sci和Subset-talk分別選取960(240/每類)篇文本,去掉標(biāo)簽后構(gòu)成D u,剩余的文本構(gòu)成測(cè)試集D t。sogou數(shù)據(jù)子集選取了560(140/每類)篇文本去掉標(biāo)簽后構(gòu)成未標(biāo)注訓(xùn)練集D u,剩余的文本作為測(cè)試數(shù)據(jù)集D t。Dl?D u?Dt=?。
預(yù)處理采用nltk.stem進(jìn)行詞干提取,去除停用詞后,經(jīng)TF-IDF特征選擇保留60%的特征詞,用于生成SLDA主題模型。算法實(shí)現(xiàn)采用的是Python語(yǔ)言。
對(duì)不均衡數(shù)據(jù)分類結(jié)果的評(píng)估采用Macro-F1和G-mean兩個(gè)指標(biāo),計(jì)算分別如式(13)和(14):
Macro-F1不同于Micro-F1,考慮了各類的F1值,因而少數(shù)類的F1值的提升,能夠提升分類模型的Macro-F1,即提升不均衡數(shù)據(jù)分類模型的總體性能[28]。因此Macro-F1可用于評(píng)估不均衡數(shù)據(jù)的分類效果。
幾何平均值G-mean是不均衡數(shù)據(jù)集中對(duì)分類性能評(píng)價(jià)的主要指標(biāo),它是召回率(Recall)和特異度(Specificity)乘積的平方根,Recall和Specificity的計(jì)算如式(15)和(16):
其中,TP、TN、FP和FN分別表示訓(xùn)練樣本集中的真正例、真反例、偽正例和偽反例的數(shù)量。從式(14)~(16)可以看出,要想提高G-mean,只有同時(shí)提升召回率和特異度,即同時(shí)提高真正例和真反例的正確分類,而真正例通常是不均衡數(shù)據(jù)中的稀少類別。
為驗(yàn)證ITC-SLDA算法的有效性,與SMOTE和RandomOverSampler進(jìn)行了對(duì)比實(shí)驗(yàn)。
3.3.1 SLDA模型在不均衡數(shù)據(jù)集上的分類效果
圖2~圖4描述的是在Subset-rec、Subset-sci和Subsettalk數(shù)據(jù)集上,σ取不同值時(shí)SLDA、SVM和NB的分類結(jié)果比較,圖5描述的是在sogou數(shù)據(jù)子集上的實(shí)驗(yàn)結(jié)果。從圖2~圖5可以看出:
(1)在類別分布比較均衡的情況下,SLDA、NB和SVM可以取得相似的分類性能。
如圖2所示,Subset-rec數(shù)據(jù)集σ=23時(shí),對(duì)于Macro-F1、G-mean,SLDA分別為75%、81%,而NB為75%、82%,SVM為70%、78%。如圖3所示,Subset-sci數(shù)據(jù)集σ=17時(shí),對(duì)Macro-F1、G-mean指標(biāo),SLDA為73%、80%,NB為81%、87%,SVM為71%、78%。
(2)隨著不均衡程度的增加,NB和SVM的分類性能出現(xiàn)明顯下降,而SLDA基本保持平穩(wěn)。
如圖4所示,相較于σ=0,Subset-talk數(shù)據(jù)集σ=39時(shí),NB的Macro-F1、G-mean指標(biāo)分別下降了26%、13%,SVM的Macro-F1、G-mean指標(biāo)分別下降了24%、15%,而SLDA并未出現(xiàn)明顯波動(dòng)。如圖5所示,在sogou數(shù)據(jù)子集上,σ=52時(shí)NB的Macro-F1、G-mean指標(biāo)由σ=0時(shí)的83%、88%下降至45%、58%,SVM由σ=0時(shí)的78%、83%下降至18%、25%,而SLDA則保持不變。
圖2 σ取不同值時(shí)SLDA與其他方法的分類結(jié)果比較(Subset-rec)
圖3 σ取不同值時(shí)SLDA與其他方法的分類結(jié)果比較(Subset-sci)
圖4 σ取不同值時(shí)SLDA與其他方法的分類結(jié)果比較(Subset-talk)
圖5 σ取不同值時(shí)SLDA與其他方法的分類結(jié)果比較(sogou數(shù)據(jù)子集)
這是由于SLDA模型引入了表示主題-類別分布的參數(shù),對(duì)于類別分布不均衡的數(shù)據(jù),SLDA模型可以有效地識(shí)別出主題與稀少類別之間的精確映射,因此,SLDA模型的分類效果受文本不均衡程度的影響較小。但是,其分類精度還有待于進(jìn)一步提升。因此,本文提出了一種ITC-SLDA不均衡文本分類新算法,通過(guò)SLDA模型采樣未標(biāo)注樣本來(lái)增加稀少類別的樣本數(shù),旨在進(jìn)一步提高不均衡數(shù)據(jù)的分類性能。
3.3.2 ITC-SLDA與其他方法的分類性能比較
為驗(yàn)證ITC-SLDA算法對(duì)不均衡數(shù)據(jù)的分類效果,在Subset-rec、Subset-sci、Subset-talk和sogou數(shù)據(jù)子集上,σ取不同值時(shí),分別與文獻(xiàn)[13]中的RandomOver-Sampler、文獻(xiàn)[14]中的SMOTE方法進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖6~圖9所示。
由圖6~圖9可以看出,無(wú)論是Macro-F1還是Gmean評(píng)價(jià)指標(biāo),ITC-SLDA算法的分類結(jié)果都明顯優(yōu)于SMOTE、RandomOverSampler和SLDA。
如圖6所示,在Subset-rec數(shù)據(jù)集σ=59時(shí),ITC-SLDA算法的Macro-F1、G-mean指標(biāo)為93%、96%,而SMOTE方法分別為79%、86%,RandomOverSampler方法為80%、87%,SLDA方法為70%、77%。圖7所示的Subset-sci數(shù)據(jù)集σ=64時(shí),對(duì)于Macro-F1、G-mean指標(biāo),ITC-SLDA算法為89%、93%,而SMOTE為80%、87%,RandomOverSampler為82%、89%,SLDA為70%、77%。在圖8所示的Subset-talk數(shù)據(jù)集和圖9所示的sogou數(shù)據(jù)子集上,ITC-SLDA算法的分類效果也明顯優(yōu)于SMOTE、RandomOverSampler和SLDA。
圖6 σ取不同值時(shí)ITC-SLDA與其他方法的分類結(jié)果比較(Subset-rec)
圖7 σ取不同值時(shí)ITC-SLDA與其他方法的分類結(jié)果比較(Subset-sci)
圖8 σ取不同值時(shí)ITC-SLDA與其他方法的分類結(jié)果比較(Subset-talk)
圖9 σ取不同值時(shí)ITC-SLDA與其他方法的分類結(jié)果比較(sogou數(shù)據(jù)子集)
ITC-SLDA方法利用SLDA模型能夠在主題與稀少類別之間建立精確映射,同時(shí)采用2.3節(jié)提出的置信度計(jì)算和SSC采樣策略,對(duì)未標(biāo)注樣本的采樣,能夠?yàn)橄∩兕悇e引入新的分類信息,并降低分類訓(xùn)練過(guò)程中過(guò)擬合的風(fēng)險(xiǎn)。因此相較于SMOTE、RandomOverSampler和SLDA方法,ITC-SLDA算法能更顯著地提高不均衡文本的分類性能。
3.3.3 不同采樣策略下ITC-SLDA的分類性能比較
為驗(yàn)證提出采樣策略SSC方法的有效性,與傳統(tǒng)的采樣策略(記作tra-Sampling)進(jìn)行了實(shí)驗(yàn)比較。傳統(tǒng)采樣策略根據(jù)每個(gè)未標(biāo)注樣本的置信度,選擇置信度較高的前20%加入Dl。
兩種采樣策略下,ITC-SLDA方法對(duì)不均衡數(shù)據(jù)分類性能的提升比較如圖10~圖13所示。
圖10 不同采樣策略下ITC-SLDA的分類結(jié)果比較(Subset-sci)
圖11 不同采樣策略下ITC-SLDA的分類結(jié)果比較(Subset-rec)
圖12 不同采樣策略下ITC-SLDA的分類結(jié)果比較(Subset-talk)
圖13 不同采樣策略下ITC-SLDA的分類結(jié)果比較(sogou數(shù)據(jù)子集)
從圖10~圖13可以看出,對(duì)預(yù)測(cè)為同一類的未標(biāo)注樣本按置信度排序,根據(jù)預(yù)先設(shè)定的樣本上限M和Dl中該類已有的文本數(shù),選擇一定數(shù)量的樣本加入D l,這種類別約束的采樣策略在大部分?jǐn)?shù)據(jù)集上都取得了比傳統(tǒng)采樣策略更好的分類結(jié)果。如圖10所示,在Subsetsci數(shù)據(jù)集上,SSC和tra-Sampling比較,當(dāng)樣本傾斜程度不明顯時(shí),兩種采樣策略的分類性能相似。但隨著樣本分布不均衡程度的增加,tra-Sampling方法的分類性能出現(xiàn)明顯下降。σ=59時(shí),對(duì)于Macro-F1、G-mean指標(biāo),SSC方法為90%、94%,而tra-Sampling方法為80%、87%。在Subset-rec數(shù)據(jù)集σ=64時(shí),SSC方法的兩個(gè)分類指標(biāo)分別為93%、95%,tra-Sampling方法為81%、88%。在sogou數(shù)據(jù)子集σ=57時(shí),SSC方法的Macro-F1、G-mean指標(biāo)分別為84%、90%,而tra-Sampling方法分別為61%、70%。
分析類別約束的SSC采樣策略可知,根據(jù)預(yù)先設(shè)定的樣本上限M,選擇置信度高的未標(biāo)注樣本加入Dl,也就是說(shuō),每次迭代,除了考慮樣本置信度外,還涉及到各類已有的文本數(shù),這種采樣策略避免了加劇D l中的樣本類別呈現(xiàn)偏態(tài)分布這一問(wèn)題。因此,從圖11~13的實(shí)驗(yàn)結(jié)果可以看出,類別約束下的采樣策略SSC是有效的。
3.3.4 未標(biāo)注樣本對(duì)ITC-SLDA算法的影響
ITC-SLDA算法每次迭代按照式(12)計(jì)算置信度,選取一定數(shù)量的置信度高的未標(biāo)注樣本,按照SSC采樣策略加入到標(biāo)注訓(xùn)練集。表6~表9描述的是20newsgroup三個(gè)數(shù)據(jù)子集和sogou數(shù)據(jù)子集上,不同迭代次數(shù)下,隨著未標(biāo)注樣本的增加ITC-SLDA分類結(jié)果的變化。其中,↑、→、↓表示與上一次迭代相比,評(píng)測(cè)指標(biāo)上升、持平和下降。
從表6~表9可以看出,隨著迭代次數(shù)增加,ITC-SLDA的Macro-F1和G-mean指標(biāo)都明顯提升。表明ITC-SLDA方法按照式(12)計(jì)算置信度和類別約束的SSC采樣策略,采樣未標(biāo)注樣本加入標(biāo)注訓(xùn)練集,能夠削減訓(xùn)練集的文本傾斜程度,為稀少類別引入新的分類信息,從而提升不均衡文本的分類性能。
表6 不同迭代次數(shù)下ITC-SLDA的分類效果(Subset-rec)
表7 不同迭代次數(shù)下ITC-SLDA的分類效果(Subset-sci)
本文結(jié)合SLDA主題模型和半監(jiān)督學(xué)習(xí),提出了一種新的不均衡文本分類算法ITC-SLDA。利用SLDA主題模型建立隱含主題與稀少類別之間的精確映射,提出了新的置信度計(jì)算方法和類別約束的采樣策略。每次迭代,不僅考慮未標(biāo)注樣本的置信度,還考慮標(biāo)注數(shù)據(jù)中各類已有的文本數(shù),避免了加入到標(biāo)注訓(xùn)練集的文本類別呈現(xiàn)偏態(tài)分布這一問(wèn)題。實(shí)驗(yàn)表明,ITC-SLDA算法能夠明顯提高不均衡文本的分類性能。但是,ITCSLDA算法每次迭代需要重新訓(xùn)練SLDA模型,本文將研究如何進(jìn)一步提高ITC-SLDA算法的時(shí)間性能。
表8 不同迭代次數(shù)下ITC-SLDA的分類效果(Subset-talk)
表9 不同迭代次數(shù)下ITC-SLDA的分類效果(sogou子集)