唐煥玲,劉艷紅,鄭 涵,竇全勝,魯明羽
1.山東工商學院 計算機科學與技術學院,山東 煙臺264005
2.山東省高等學校協同創新中心:未來智能計算,山東 煙臺264005
3.山東省高校智能信息處理重點實驗室(山東工商學院),山東 煙臺264005
4.大連海事大學 信息科學技術學院,遼寧 大連116026
在標簽分布比較均衡且標注樣本足夠多的數據集上,大多數監督式分類算法可以取得比較好的分類效果。然而,實際應用中,訓練樣本的標簽分布并非都是均衡的,比如非法網頁識別、垃圾郵件識別等異常檢測的分類任務,往往缺少足夠的正類(非法的)訓練樣本[1-3],而標簽分布不均衡會導致分類算法的性能下降[4]。但是人工標注數據的成本昂貴,且難以對數據集擴展。因此,如何提高不均衡數據的分類精度,近年來引起了許多研究者的關注[5-7]。
目前,對不均衡數據分類性能的提升方法通常分為兩類:對分類算法的優化和對采樣算法的優化。前者從分類過程入手,通過對特征選擇算法或分類算法的改進,實現不均衡文本分類性能的提升。后者通過不同的樣本采樣方法,解決類別分布不均衡問題,如欠采樣[8-11]、過采樣[12-18]和混合采樣[19-24]方法,使用最多的是過采樣方法。其中的隨機過采樣RandomOverSampler[13],其思想是隨機復制正樣本,單純地使正負樣本比例達到相對平衡,該方法對正樣本的分類正確率有一定的提高,但其最大的缺點在于生成的正樣本是初始正樣本的復制,沒有真正引入新的不同的正樣本,因而正樣本的分類精度提升有限。為了解決隨機過采樣的局限性,提升樣本的多樣性,Chawla等[14]提出了SMOTE方法。SMOTE是最具代表性的過采樣方法,其基本思想是在每一個正樣本和其K近鄰的樣本之間隨機地生成一個新的樣本,該方法通過在不同樣本之間隨機生成新樣本,在一定程度上解決樣本的多樣性。然而,上述過采樣方法的問題是:新樣本只是對現有樣本的合成,本質上并沒有引入新的不同的稀少類別樣本,并沒有根本解決稀少樣本的多樣性問題,因此分類精度的提升有限[25]。
考慮到互聯網上存在大量的未標注樣本,如果能對相關領域的未標注樣本進行自動標注,有望解決標簽分布不均衡問題。另外,文獻[26]提出的有監督主題模型SLDA,引入了表示主題-類別分布的參數,能夠識別主題-類別之間的語義關系,建立主題與類別的精確映射。受此啟發,本文將SLDA模型用于識別主題與稀少類別精確映射,以便提升稀少類別的分類精度。
鑒于此,本文結合SLDA主題模型和半監督學習方法提出一種不均衡文本分類新算法ITC-SLDA(Imbalanced Text Categorization based on Supervised LDA,ITC-SLDA)。(1)在不均衡數據上訓練生成SLDA主題模型,建立主題與稀少類別之間的精確映射,提高少數類的分類精度;(2)利用SLDA主題模型對未標注樣本進行自動標注,提出一種新的置信度計算方法和類別約束的采樣策略,通過降低不均衡文本的傾斜程度實現不均衡文本分類性能的提升。
SLDA模型的概率圖模型如圖1所示。

圖1 SLDA的概率圖模型
相同類別的文檔主題分布是相似的,文獻[26]在Collapsed Gibbs Sampling方法的基礎上提出了SLDATCGibbs算法,對每個詞的隱含主題進行采樣,且只從同類別的其他訓練文檔中進行隱含主題采樣。具體描述如下:

表1 SLDA模型中的符號及含義

在獲得每個單詞w的主題z標號后,通過統計頻次計算θm、φk和δk,計算公式如下:

基于SLDA主題模型,本文提出了ITC-SLDA不均衡文本分類算法。令訓練樣本集D=D l?D u,其中表示包含N l個標注樣本的訓練集,y m=,如果屬于第j個類別,那么表示包含N u個樣本的未標注訓練集。令N j為Dl中屬于第j類的文本數,,且C類樣本不均衡分布。表示包含N t個樣本的測試集。
在Dl數據集上訓練生成SLDA模型后,得到每個文檔-主題分布θ、主題-詞分布φ,以及主題-類別分布δ,利用SLDA模型對未標注樣本進行主題推斷和標簽預測。
(1)對D u中的未標注文本進行主題推斷
第d篇未標注樣本中每個詞的隱含主題的推斷計算如式(5):

由式(5)計算得到未標注樣本中每個詞的主題標號后,再根據公式(6)計算其各個主題分量的概率:

其中,θ?d,k表示第d篇未標注樣本屬于第k個主題的概率,θ?d表示第d篇未標注樣本在K維主題空間的主題分布。由此,得到D u中每篇未標注文本的主題分布。
(2)對D u中的未標注文本進行標簽預測

每次迭代的基分類器h t對標注樣本和未

為使訓練錯誤(training error)最小化,對標注訓練集,每個訓練樣本都有標簽y i,所以其損失函數Fl可以定義為:


按照半監督學習中的“聚類假設”,距離相近的樣本,應共享同一個類別標簽[27]。每次迭代,對未標注樣本的分類損失函數計算如下:


由式(9)和(10),結合未標注樣本進行訓練的ITCSLDA算法的目標函數定義如下:

其中,Fl表示標注樣本的訓練錯誤損失,F u表示未標注樣本的訓練錯誤損失,η是常數,調節Fu在目標函數中的作用。
ITC-SLDA算法的每次迭代,需要按照置信度選取一定數量的未標注樣本加入標注訓練集D l,這就涉及置信度的度量問題。假設表示未標注樣本被分為類c r的后驗概率,半監督學習中通常的方法是:按照的大小排序,大的樣本,其置信度就越高。這種度量有一定的道理,但是未必是最合理、最好的度量方法。為此,本文提出了新的置信度計算方法和類別約束的未標注樣本的采樣策略。
(1)未標注樣本的置信度計算
如果未標注樣本x u i被基分類器h t分為第j個類,則其置信度由x u i被分為第j個類的后驗概率與其他非j類的平均后驗概率的距離度量,用表示,計算如下:

(2)類別約束的未標注樣本的采樣策略
為此,提出類別約束的采樣策略SSC(Sampling Strategy under Category,SSC),每次迭代,將預測為第j類的未標注樣本按置信度降冪排序,選擇置信度大于某個閾值S T的未標注樣本加入到候選樣本集合E j中。再根據預設的樣本上限M,取E j中前(M-N j)個未標注樣本,連同他們的預測類別一起,添加到標注訓練集Dl中,同時從D u中刪除。置信度閾值S T和M的取值可以由實驗選取。對于置信度閾值ST和M兩個超參數,使用10折交叉驗證,在以下范圍內自動識別這些超參數的最優值:ST∈[0,0.1,…,1],M∈[100,150,…,300]。具體而言,將訓練集分成訓練子集和驗證子集,進行10折交叉驗證,根據Macro-F1和G-mean指標選取最合適的ST和M。
結合SLDA有監督主題模型,采用2.3節提出的置信度計算方法和類別約束的采樣策略,不均衡文本分類算法ITC-SLDA的描述如算法1所示。
算法1 ITC-SLDA algorithm


如算法1所示,其中:
步驟3.1是在Dl上生成SLDA模型并計算各個主題的類別概率分布。
步驟3.2對Du中的所有未標注樣本進行主題推斷、類別預測并計算置信度。
步驟3.3按照SSC采樣策略選取置信度高的未標注樣本及其預測標簽,加入不均衡數據集Dl。
步驟4當加入到D l中的樣本數小于閾值v(實驗選取)或N l=M×C時,停止迭代。
步驟5根據式(6)、(7)對測試文本進行分類。
步驟6計算并輸出評價指標Macro-F1和G-mean。
選 取20newsgroup(http://qwone.com/~jason/20Newsgroups/)的rec、sci和talk 3個數據子集,包括IT、財經、教育和軍事4類的搜狗中文語料數據子集(http://www.sogou.com/labs/dl/c.html),并利用這些語料構建出8種不均衡數據子集,其不均衡程度由類別標準差σ度量,σ越大表示類別分布越不均衡,如表2~表5所示。

表2 Subset-rec上的不均衡數據子集描述

表3 Subset-sci上的不均衡數據子集描述

表4 Subset-talk上的不均衡數據子集描述

表5 sogou子集上的不均衡數據子集描述
未標注訓練集Du是去除標注數據后,在余下的相應數據子集中選取并去掉標簽。對20newsgroup的Subsetrec、Subset-sci和Subset-talk分別選取960(240/每類)篇文本,去掉標簽后構成D u,剩余的文本構成測試集D t。sogou數據子集選取了560(140/每類)篇文本去掉標簽后構成未標注訓練集D u,剩余的文本作為測試數據集D t。Dl?D u?Dt=?。
預處理采用nltk.stem進行詞干提取,去除停用詞后,經TF-IDF特征選擇保留60%的特征詞,用于生成SLDA主題模型。算法實現采用的是Python語言。
對不均衡數據分類結果的評估采用Macro-F1和G-mean兩個指標,計算分別如式(13)和(14):

Macro-F1不同于Micro-F1,考慮了各類的F1值,因而少數類的F1值的提升,能夠提升分類模型的Macro-F1,即提升不均衡數據分類模型的總體性能[28]。因此Macro-F1可用于評估不均衡數據的分類效果。
幾何平均值G-mean是不均衡數據集中對分類性能評價的主要指標,它是召回率(Recall)和特異度(Specificity)乘積的平方根,Recall和Specificity的計算如式(15)和(16):

其中,TP、TN、FP和FN分別表示訓練樣本集中的真正例、真反例、偽正例和偽反例的數量。從式(14)~(16)可以看出,要想提高G-mean,只有同時提升召回率和特異度,即同時提高真正例和真反例的正確分類,而真正例通常是不均衡數據中的稀少類別。
為驗證ITC-SLDA算法的有效性,與SMOTE和RandomOverSampler進行了對比實驗。
3.3.1 SLDA模型在不均衡數據集上的分類效果
圖2~圖4描述的是在Subset-rec、Subset-sci和Subsettalk數據集上,σ取不同值時SLDA、SVM和NB的分類結果比較,圖5描述的是在sogou數據子集上的實驗結果。從圖2~圖5可以看出:
(1)在類別分布比較均衡的情況下,SLDA、NB和SVM可以取得相似的分類性能。
如圖2所示,Subset-rec數據集σ=23時,對于Macro-F1、G-mean,SLDA分別為75%、81%,而NB為75%、82%,SVM為70%、78%。如圖3所示,Subset-sci數據集σ=17時,對Macro-F1、G-mean指標,SLDA為73%、80%,NB為81%、87%,SVM為71%、78%。
(2)隨著不均衡程度的增加,NB和SVM的分類性能出現明顯下降,而SLDA基本保持平穩。
如圖4所示,相較于σ=0,Subset-talk數據集σ=39時,NB的Macro-F1、G-mean指標分別下降了26%、13%,SVM的Macro-F1、G-mean指標分別下降了24%、15%,而SLDA并未出現明顯波動。如圖5所示,在sogou數據子集上,σ=52時NB的Macro-F1、G-mean指標由σ=0時的83%、88%下降至45%、58%,SVM由σ=0時的78%、83%下降至18%、25%,而SLDA則保持不變。

圖2 σ取不同值時SLDA與其他方法的分類結果比較(Subset-rec)

圖3 σ取不同值時SLDA與其他方法的分類結果比較(Subset-sci)

圖4 σ取不同值時SLDA與其他方法的分類結果比較(Subset-talk)

圖5 σ取不同值時SLDA與其他方法的分類結果比較(sogou數據子集)
這是由于SLDA模型引入了表示主題-類別分布的參數,對于類別分布不均衡的數據,SLDA模型可以有效地識別出主題與稀少類別之間的精確映射,因此,SLDA模型的分類效果受文本不均衡程度的影響較小。但是,其分類精度還有待于進一步提升。因此,本文提出了一種ITC-SLDA不均衡文本分類新算法,通過SLDA模型采樣未標注樣本來增加稀少類別的樣本數,旨在進一步提高不均衡數據的分類性能。
3.3.2 ITC-SLDA與其他方法的分類性能比較
為驗證ITC-SLDA算法對不均衡數據的分類效果,在Subset-rec、Subset-sci、Subset-talk和sogou數據子集上,σ取不同值時,分別與文獻[13]中的RandomOver-Sampler、文獻[14]中的SMOTE方法進行對比實驗,實驗結果如圖6~圖9所示。
由圖6~圖9可以看出,無論是Macro-F1還是Gmean評價指標,ITC-SLDA算法的分類結果都明顯優于SMOTE、RandomOverSampler和SLDA。
如圖6所示,在Subset-rec數據集σ=59時,ITC-SLDA算法的Macro-F1、G-mean指標為93%、96%,而SMOTE方法分別為79%、86%,RandomOverSampler方法為80%、87%,SLDA方法為70%、77%。圖7所示的Subset-sci數據集σ=64時,對于Macro-F1、G-mean指標,ITC-SLDA算法為89%、93%,而SMOTE為80%、87%,RandomOverSampler為82%、89%,SLDA為70%、77%。在圖8所示的Subset-talk數據集和圖9所示的sogou數據子集上,ITC-SLDA算法的分類效果也明顯優于SMOTE、RandomOverSampler和SLDA。

圖6 σ取不同值時ITC-SLDA與其他方法的分類結果比較(Subset-rec)

圖7 σ取不同值時ITC-SLDA與其他方法的分類結果比較(Subset-sci)

圖8 σ取不同值時ITC-SLDA與其他方法的分類結果比較(Subset-talk)

圖9 σ取不同值時ITC-SLDA與其他方法的分類結果比較(sogou數據子集)
ITC-SLDA方法利用SLDA模型能夠在主題與稀少類別之間建立精確映射,同時采用2.3節提出的置信度計算和SSC采樣策略,對未標注樣本的采樣,能夠為稀少類別引入新的分類信息,并降低分類訓練過程中過擬合的風險。因此相較于SMOTE、RandomOverSampler和SLDA方法,ITC-SLDA算法能更顯著地提高不均衡文本的分類性能。
3.3.3 不同采樣策略下ITC-SLDA的分類性能比較
為驗證提出采樣策略SSC方法的有效性,與傳統的采樣策略(記作tra-Sampling)進行了實驗比較。傳統采樣策略根據每個未標注樣本的置信度,選擇置信度較高的前20%加入Dl。
兩種采樣策略下,ITC-SLDA方法對不均衡數據分類性能的提升比較如圖10~圖13所示。

圖10 不同采樣策略下ITC-SLDA的分類結果比較(Subset-sci)

圖11 不同采樣策略下ITC-SLDA的分類結果比較(Subset-rec)

圖12 不同采樣策略下ITC-SLDA的分類結果比較(Subset-talk)

圖13 不同采樣策略下ITC-SLDA的分類結果比較(sogou數據子集)
從圖10~圖13可以看出,對預測為同一類的未標注樣本按置信度排序,根據預先設定的樣本上限M和Dl中該類已有的文本數,選擇一定數量的樣本加入D l,這種類別約束的采樣策略在大部分數據集上都取得了比傳統采樣策略更好的分類結果。如圖10所示,在Subsetsci數據集上,SSC和tra-Sampling比較,當樣本傾斜程度不明顯時,兩種采樣策略的分類性能相似。但隨著樣本分布不均衡程度的增加,tra-Sampling方法的分類性能出現明顯下降。σ=59時,對于Macro-F1、G-mean指標,SSC方法為90%、94%,而tra-Sampling方法為80%、87%。在Subset-rec數據集σ=64時,SSC方法的兩個分類指標分別為93%、95%,tra-Sampling方法為81%、88%。在sogou數據子集σ=57時,SSC方法的Macro-F1、G-mean指標分別為84%、90%,而tra-Sampling方法分別為61%、70%。
分析類別約束的SSC采樣策略可知,根據預先設定的樣本上限M,選擇置信度高的未標注樣本加入Dl,也就是說,每次迭代,除了考慮樣本置信度外,還涉及到各類已有的文本數,這種采樣策略避免了加劇D l中的樣本類別呈現偏態分布這一問題。因此,從圖11~13的實驗結果可以看出,類別約束下的采樣策略SSC是有效的。
3.3.4 未標注樣本對ITC-SLDA算法的影響
ITC-SLDA算法每次迭代按照式(12)計算置信度,選取一定數量的置信度高的未標注樣本,按照SSC采樣策略加入到標注訓練集。表6~表9描述的是20newsgroup三個數據子集和sogou數據子集上,不同迭代次數下,隨著未標注樣本的增加ITC-SLDA分類結果的變化。其中,↑、→、↓表示與上一次迭代相比,評測指標上升、持平和下降。
從表6~表9可以看出,隨著迭代次數增加,ITC-SLDA的Macro-F1和G-mean指標都明顯提升。表明ITC-SLDA方法按照式(12)計算置信度和類別約束的SSC采樣策略,采樣未標注樣本加入標注訓練集,能夠削減訓練集的文本傾斜程度,為稀少類別引入新的分類信息,從而提升不均衡文本的分類性能。

表6 不同迭代次數下ITC-SLDA的分類效果(Subset-rec)

表7 不同迭代次數下ITC-SLDA的分類效果(Subset-sci)
本文結合SLDA主題模型和半監督學習,提出了一種新的不均衡文本分類算法ITC-SLDA。利用SLDA主題模型建立隱含主題與稀少類別之間的精確映射,提出了新的置信度計算方法和類別約束的采樣策略。每次迭代,不僅考慮未標注樣本的置信度,還考慮標注數據中各類已有的文本數,避免了加入到標注訓練集的文本類別呈現偏態分布這一問題。實驗表明,ITC-SLDA算法能夠明顯提高不均衡文本的分類性能。但是,ITCSLDA算法每次迭代需要重新訓練SLDA模型,本文將研究如何進一步提高ITC-SLDA算法的時間性能。

表8 不同迭代次數下ITC-SLDA的分類效果(Subset-talk)

表9 不同迭代次數下ITC-SLDA的分類效果(sogou子集)