梁健力 商豪



[收稿日期]20210923
[第一作者]梁健力(1996-),男,廣東佛山人,湖北工業大學碩士研究生,研究方向為數據挖掘
[通信作者]商豪(1982-),女,湖北羅田人,湖北工業大學副教授,研究方向為隨機分析與算法
[文章編號]1003-4684(2023)02-0033-07
[摘要]在不平衡數據下,文本分類模型容易把樣本數量較少的類別錯分成數量較多的類別。在采樣層面上提出一種平滑采樣方法,在損失函數層面上根據不平衡分布改進交叉熵損失和標簽平滑。復旦文本數據集上的實驗表明,每種層面的改進都較基準模型有一定提高。當結合使用采樣和損失函數的改進時,TextCNN、BiLSTM+Attention、TextRCNN和HAN模型在宏平均F1值上分別提高4.17%、5.13%、5.06%和6.21%,在G-mean上分別提高6.56%、3.03%、3.92%和5.32%,較好解決了不平衡數據下文本分類任務。
[關鍵詞]文本分類; 不平衡比例; 平滑采樣; 損失函數
[中圖分類號]TP391? [文獻標識碼]A
文本分類是自然語言處理領域中一項基礎又重要的任務,可用于情感分析、新聞分類和意圖識別等應用場景,也可以為搜索、排序等大型的復雜系統提供技術支持。從傳統的手工特征結合分類器[1-2]的機器學習時代,再到使用循環神經網絡(Recurrent Neural Network)[3-5]、卷積神經網絡(Convolutional Neural Network)[6]和大規模預訓練語言模型(Pretrained Language Model)[7-8]對數據進行自動學習的深度學習時代,模型不斷被創新和優化,文本分類效果得到了飛躍性的突破。例如,TextCNN[6]汲取N元語法(n-gram)[9]的思想,使用不同大小的卷積核來捕捉句子中的局部信息,取得了當時文本分類最好的結果。TextRCNN[10]在雙向長短時記憶網絡(BiLSTM)的基礎上,使用1×1卷積核在通道維度上進行卷積運算,并通過時序全局最大池化獲取重要特征。帶注意力機制的雙向長短時記憶網絡(BiLSTM-Attention)[11]在充分利用RNNs的時序建模優良性的同時,使用長短時記憶網絡(LSTM)和注意力機制來緩解梯度消失的問題,進一步提升模型的效果。HAN[12]模型利用注意力機制,從單詞層面和句子層面對文檔進行分類,從而捕捉句子中的重要詞匯以及文檔中的重要句子,獲取較好的分類效果。
然而,文本分類性能的提升與訓練數據的質量、規模以及類別平衡性有著一定的關系。當出現數據標簽不平衡時,由于每個訓練樣本對目標函數的貢獻均等,模型在學習過程中會主動偏向樣本數量較多的類別標簽。一方面相當于模型對多數類別有著更大的權重,另一方面也意味著模型對多數類別過擬合。但測試階段所采用的評價指標對多數類別與少數類別都同等看待,最終導致在類別不平衡的場景下,訓練結果與實際的測試結果相差甚遠。
由于現實收集的數據基本都存在類別不平衡的現象,需要進一步研究在類別不平衡場景下的文本分類。過去機器學習和深度學習時代,主要通過3種方式來處理類別不平衡的問題,即對原始數據進行重抽樣[13-16]、修改損失函數[17-18]以及采用集成學習算法[19]。在采樣方法上,本文利用數據的不平衡比例,基于指數平滑的思想,提出了一種降低數據不平衡度的平滑重抽樣方法;在損失函數上,以不平衡分布來改進標簽平滑以及交叉熵損失,提出了一種結合不平衡分布和標簽平滑的交叉熵損失函數以提升文本分類的效果。同時結合采樣方法和在損失函數上的改進,深度學習模型對不平衡數據的分類能力得到進一步提升。
1??? 方法設計
1.1??? 采樣方法
在過去,無論是機器學習中的經典采樣方法,還是深度學習中的數據增強方法,對不平衡數據采樣后是否配平并沒有統一的定論。有的學者采用完全配平的方式來完成樣本的重抽樣,有的則認為這種配平方式可能會損害最終的分類效果。所以,在采樣后保持多大的不平衡比例仍然是一個需要深入研究的問題。但總體來看,增加數據量、降低數據的不平衡度對文本分類效果有一定增益。
指數平滑多用于時間序列,其是對歷史觀測值按時間進行加權平均作為當前時間的預測值。雖然訓練數據的不平衡比例序列和時間并沒有關聯,但由于指數平滑具有一定的平滑數據功能,能夠在降低不平衡比例的同時,保證平滑后的類別不平衡度與平滑前有相似的分布。本文提出的平滑采樣方法的定義如下:
假設原始數據有k個類別,記為c1,c2,…,ck。記#ci為第i個類別的樣本數量,其中i取1,2,…,k,可定義各類別的不平衡比例如下:
θi=#cimin(#c1,#c2,…,#ck)
對于k個類別可得到長度為k的不平衡序列{θt}kt=1,將該序列從小到大排序得到有序的不平衡序列{θ′t}kt=1,根據指數平滑思想計算不平衡序列的平滑值,其中t取1,2,…,k:
vt=0,t=0βvt-1+(1-β)θ′t,t≥1
修正平滑值,其中t取1,2,…,k:
v′t=vt1-βt
根據修正后的平滑值與原始的不平衡比例,可計算各類別中欠采樣(式(1))與過采樣(式(2))的比例,其中minv′tθ′tkt=1是指k個欠采樣比例的最小值,且t取1,2,…,k:
dt=v′tθ′t(1)
ot=v′tθ′t/minv′tθ′tkt=1(2)
由于式(2)并不能保證過采樣比例大于1,因此對過采樣比例ot進行修正,使得修正后的過采樣比例恒大于1。
o′t=ot+log1ot
1.2??? 損失函數
在深度學習模型訓練中,由于需要使用損失函數根據正向傳播的結果計算出誤差,再進行反向傳播實現梯度更新,因此模型的效果往往跟選用何種損失函數有一定關系,好的損失函數可能會帶來性能上的提升。在文本分類問題上,一般采用交叉熵損失,其具體定義如下:
loss=-1N∑Nn=1∑kc=1y(n)clog(n)c(3)
假定訓練數據中有k個類別,一個批的樣本數量為N,記類別c的獨熱編碼向量為yhot,其具體形式為[I(1=c),I(2=c),…,I(k=c)]T。使用y(n)c來代表批中第n個樣本是否屬于第c個類別,其中y(n)c∈{0,1}。而(n)c表示該樣本屬于第c個類別的預測概率。
由于交叉熵損失對多數類樣本和少數類樣本的錯誤同等看待,為了使模型在訓練過程中更加關注少數類別,本文根據訓練數據的不平衡分布對交叉熵損失進行改進,記原始數據或采樣數據的類別不平衡比例為{θc}kc=1,對于改進后的帶不平衡分布的交叉熵損失
weight_loss=-1N∑Nn=1∑kc=11θcy(n)clog(n)c
此外,為了防止模型在訓練過程中對標簽的預測過于自信,本文還對損失函數引入標簽平滑[20]的正則化方式。其結合均勻分布的思想來修改傳統的獨熱編碼向量,可以減少類內距離,增加類間距離,從而提升模型的泛化能力[21]。記α為平滑值,標簽平滑的具體形式為:
y(i)smooth=1-α,i=targetα/(k-1),i≠target(4)
但在不平衡數據中,各類別標簽的分布并不均勻,因此本文使用數據不平衡比例對標簽平滑進行改進。首先利用原始的不平衡比例序列{θi}ki=1求出用于標簽平滑的不平衡比例序列θ(i)smoothki=1,其具體形式如下:
θ(i)smooth=0,i=target1θi,i≠target
對不平衡序列θ(i)smoothki=1進行歸一化處理,可得到改進后的標簽平滑向量y′smooth,其元素值
y′(i)smooth=1-α,i=targetα·softmax(θsmooth)(i),i≠target(4)
結合式(3)和式(4),可得到用帶不平衡分布的標簽平滑來改進交叉熵損失的形式:
smooth_loss=1N∑Nn=1∑kc=1y(n)smooth,clogc(n)
最后將帶不平衡分布的交叉熵損失和帶改進標簽平滑的交叉熵損失加權平均,得到本文最終提出的損失函數,其具體形式如下:
our_loss=βweight_loss+(1-β)smooth_loss
其中β是需要調節的超參數。當β等于1時,該損失函數退化為帶不平衡分布的交叉熵損失;當β等于0時,該損失函數退化為帶改進標簽平滑的交叉熵損失。
2??? 實驗設置
2.1??? 實驗數據集
實驗數據集主要采用復旦大學的文本分類語料庫,其包含9804個訓練文檔與9833個測試文檔,并涵蓋了20個主題類別。其中,原始數據中各類別的樣本數量和文檔長度差異較大,數量不平衡比例高達64∶1。此外,數據集中有大量的重復數據,且部分文檔并沒有包含實質性的內容。因此,本文先對原始數據集進行數據清洗,并提取文檔中的正文部分進行分析。清洗后的訓練集和測試集包含8184和8197個文檔,訓練數據的不平衡比例降為54.84∶1。訓練集清洗前后的數量和文檔字符長度分布如圖1所示。
(a)原始訓練數據集的類別分布/比例
(b)清洗訓練數據集的類別分布/比例
(c)原始訓練數據集的字符長度分布
(d)清洗訓練數據集的字符長度分布圖 1??? 訓練集清洗前后數量和字符長度分布
此外,在模型訓練和測試前,還需要對文本進行分詞和去除停用詞。本文使用jieba分詞工具對清洗后的訓練集和測試集進行分詞,并引入停詞表對其進行去停詞處理。
2.2??? 評價指標
準確率(accuracy)是衡量模型好壞的標準之一。但當數據是類別不平衡或者不同類別的錯誤所造成的后果不同的時候,準確率這一指標實際并不適用。通常來說,模型的分類性能應綜合使用查全率和查準率進行度量。此外,也有學者建議使用G-mean來度量模型在不平衡數據中的表現。因此,本文將把宏F1和G-mean作為主要的性能評價指標,多分類情況下的性能指標定義如下:
假設數據集中有k個類別,Ck×k為分類的混淆矩陣,Cij為該矩陣中的第i行第j列的元素,其中i,j∈{1,2,…,k}。記Ci.=[Ci1,Ci2,…,Cik]T,C.j=[C1j,C2j,…,Ckj]T,可計算各類別中真正例(TPv)、假正例(FPv)、真反例(TNv)、假反例(FNv)向量:
TPv=diag(Ck×k)=[C11,C22,…,Ckk]T
FPv=∑ki=1Ci.-diag(Ck×k)
FNv=∑kj=1C.j-diag(Ck×k)
TNv=[∑i∑jCk×k,…,∑i∑jCk×k]k×1-(TPv+FPv+FNv)
根據TPv、FPv、TNv和FNv可計算宏查準率(macro-Pv)、宏查全率(macro-Rv)和宏特異度(macro-Sv)向量為:
macro-Pv=TPvTPv+FPv
macro-Rv=TPvTPv+FNv
macro-Sv=TNvTNv+FPv
根據向量macro-Pv、macro-Rv和macro-Sv可計算得到本文使用的宏F1和G-mean:
macro-F1=1k∑2×macro-Pv⊙macro-Rvmacro-Pv+macro-Rv
G-mean=1k∑macro-Rv⊙macro-Sv
2.3??? 文本分類模型
為了呈現改進方法的效果,本文將使用BiLSTM-Attention、TextCNN、TextRCNN和HAN等幾個較先進的深度學習模型來進行實驗。
1)設置BiLSTM-Attention模型的輸入序列長度、詞向量維度、隱藏層單元數和隱藏層數量分別為2000、200、200和2。
2)對于TextCNN模型,本文使用窗寬為3、4、5的卷積核來提取特征,每組不同卷積核的輸出維度都為200。此外,設置模型輸入的序列長度為3000,詞向量維度為200,模型的輸入維度為400。其中,模型的輸入由兩組序列詞向量合并而成,一組為固定的詞向量,一組隨著模型的訓練而更新。
3)本文設置TextRCNN模型的輸入序列長度為3000,詞向量維度為200,BiLSTM模塊的隱藏層單元數和隱藏層數量分別為100和1,卷積模塊的輸出維度為300。其中將BiLSTM模塊的輸出和原始序列的詞向量在通道維度上進行連接,作為卷積模塊的輸入。
4)本文設置HAN模型的單個文檔中的最大句子數和句子中的最大單詞數分別為20、80,雙向門控循環神經網絡(BiGRU)模塊的隱藏層單元數和隱藏層數量分別為200和1。
由于復旦文本數據集中的文檔字符長度不一,因此,本文對較短的文檔進行補0,對較長的文檔從中間進行截取。在將文本轉化成詞向量的過程中,采用預訓練的騰訊詞向量,其詞向量維度為200。在訓練過程中,采用學習率衰減的方法,每更新1000步時進行一次衰減。此外,各種模型的輸出節點數都為20,Dropout的概率采用0.5,激活函數皆采用ReLU。
3??? 實驗結果和分析
為了單獨呈現采樣方法的效果,本文還將利用BOW、TFIDF、LDA和Fasttext來進行特征提取,并在經過不同采樣處理的數據集上建模。在采樣方式上,本文分別進行隨機欠采樣、隨機過采樣和回譯過采樣三種實驗;在采樣比例上,本文采用0.44、0.74、0.86、0.9、0.96和0.98等6種采樣平滑值,并與原始比例以及完全配平的數據集實驗結果進行對照。為了避免其他數據增強方法對實驗結果的干擾,表1僅展示9種模型在不同隨機過采樣比例上的具體表現,其余采樣方式的實驗結果如圖2所示。其中,9種模型對比系統如下。
1)BOW:使用詞袋模型表示文本,特征維度為20 000,并用邏輯回歸(LR)和隨機森林(RF)對文本進行分類。
2)TFIDF:使用詞頻逆詞頻表示文本,特征維度為20 000,并用支持向量機(SVM)和極端梯度提升樹(Xgboost)對進行文本分類。
3)LDA:使用概率主題模型將文本映射到低維空間向量,再用RF和SVM進行分類,其中主題個數為130。
4)Fasttext:先采用有監督方式直接進行文本分類,再使用無監督的方法生成文本詞向量,并用LR和SVM進行分類。
由表1可以看出,9種模型系統的最佳結果皆在非原始比例數據集上取得。其中,完全配平的采樣方式更傾向于在BOW、TFIDF等稀疏的向量表示空間上取得更好的效果,但在LDA、Fasttext等稠密的低維空間上的表現甚至比原始比例數據集的效果差。這表明雖然不平衡比例的降低和樣本數量的增加會對模型效果有一定增益,但完全配平的方式會極大改變原始數據分布,可能會導致模型性能下降。此外,隨著采樣比例的調整,本文提出的采樣方法在9種模型系統上均取得比原始比例更好的效果。在BOW、LDA和Fasttext三種模型系統中,對比采樣平滑值0.74和0.98的結果,可發現后者都有一定的提升,但其不平衡比例從41.66下降到17.71,數據量卻基本保持不變,表明適當降低不平衡比例可能會給模型帶來提升,尤其是在低維稠密的向量空間中。
圖2a顯示不同采樣平滑值下各類別不平衡比例的變化情況。相比于完全配平,該采樣方式在降低不平衡比例的同時,仍保持與原始數據相似的分布。從圖2b可以看出,在絕大部分實驗模型中,欠采樣會極大地損害模型的性能,這是由于樣本數量的銳減使得文本中的重要信息缺失,從而導致分類效果的下降。而圖2c和d則表明,在過采樣時,采用回譯等其他增強方式可能會降低直接隨機復制樣本帶來的過擬合風險,從而進一步提升分類的效果。
圖 2??? 不同改進采樣方法在復旦數據集上的實驗結果
為了進一步說明平滑采樣方法和帶不平衡分布與標簽平滑的損失函數的有效性,本文以TextCNN為基準,開展一系列的對比工作。表2和表3分別呈現使用預訓練的騰訊詞向量前后,改進的采樣方法和損失函數較基準方法的提升。其中,CE和Smooth分別表示僅使用交叉熵損失和帶標簽平滑的交叉熵損失的情況;Weight_CE和Weight_Smooth分別代表利用不平衡分布改進的交叉熵損失和標簽平滑的情況;Weight_CE_Smooth是指結合使用帶不平衡分布的交叉熵損失和帶改進標簽平滑的交叉熵損失的結果,其中超參數選取0.9;+0.98是指TextCNN模型在利用0.98采樣平滑率得到的數據集下的建模效果,其中采樣方式默認為隨機過采樣,而trans表示使用回譯的方式來進行過采樣。表3呈現了本文實驗的最佳效果。
從表2和表3可以看出,無論是單獨使用本文提出的采樣方法,還是單獨使用損失函數上的改進,其在宏F1和G-mean上都較基準模型上有一定的提升。而當結合使用帶不平衡分布的交叉熵損失和帶改進標簽平滑的交叉熵損失時,文本分類效果能夠得到進一步改善。此外,當融合采樣方法以及損失函數的改進時,模型在宏F1上會有進一步的提升,但相比只使用損失函數改進時,G-mean會有輕微下降。
當未使用預訓練的騰訊詞向量時,本文提出的方法較基準模型分別在準確率、宏查全率、宏F1和G-mean上提升1.18%、10.12%、8.73%和7.49%,但在宏查準率上輕微損失了0.53%;當使用預訓練的騰訊詞向量時,本文提出的方法較基準模型在宏查全率上提升了10.21%,在宏F1上提升了4.17%,在G-mean上提升了6.56%,但在準確率和宏查準率上分別損失了0.23%和3.95%。
圖3a展示了在使用預訓練詞向量的情況下,本文使用的改進方法與基準模型在20個主題類別中的宏F1值對比。可以看出,改進方法在多數類別中保持與基準模型一致的分類效果,而其區分少數類別的性能有了較大的改善,從而提升了整體的分類效果。
(a)改進方法和基準模型在各個主題上的實驗結果
圖3b呈現了在不同采樣平滑率下聯合采樣方法和損失函數改進的模型效果。可以看出,使用回譯代替簡單隨機復制的過采樣方法,可以進一步提升模型的效果。
(b)不同采樣比例下的方法結果對比圖 3??? 聯合改進方法在復旦數據集上的實驗結果
為了表明改進方法的適用性,表4還顯示了BiLSTM+Attention、TextRCNN和HAN等3種模型在改進前后的效果對比。改進后的這3種深度學習模型都在宏F1和G-mean上有著較大的提升,且在準確率、宏查準率和宏查全率都沒有性能的損失。其中BiLSTM+Attention模型在宏F1上提升了5.31%、在G-mean上提升了3.03%;TextRCNN模型在宏F1和G-mean分別提升了5.06%和3.92%;HAN模型獲得了6.21%的宏F1和5.32%的G-mean性能提升。
通過上述實驗結果可以看出,適當降低不平衡比例,以及利用不平衡分布改進交叉熵損失和標簽平滑,可以提高少數類別的分類性能。此外,融合采樣方法和損失函數的改進能夠為整體的分類效果帶來進一步的提升。雖然本文的改進方法可能會犧牲部分宏查準率的性能,但其能大幅提升宏查全率,且保持準確率基本不變,從而獲得模型在宏F1和G-mean等綜合指標的改善。
4??? 結論
本文從采樣方法和損失函數上進行改進,并在復旦文本數據上進行驗證。實驗表明,單獨使用本文提出的平滑采樣方法、帶不平衡分布的改進交叉熵損失和改進標簽平滑時,都較基準模型有一定提升。而當聯合使用采樣方法和損失函數的改進時,以宏F1和G-mean作為性能評判標準,其在4種深度學習模型中都取得較大的性能提高。因此,本文提出的算法可以較好地解決不平衡數據的分類問題,在大量數據中能夠更好地檢測出少數類別的數據。
[參考文獻]
[1]CAVNAR W B, TRENKLE J M. N-gram-based text categorization[C].∥Proceedings of SDAIR-94, 3rd annual symposium on document analysis and information retrieval,1994,161175.
[2]SALTON G, BUCKLEY C. Term-weighting approaches in automatic text retrieval[J]. Information processing & management, 1988, 24(05):513-523.
[3]HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural computation, 1997, 9(08):1735-1780.
[4]Chung J,Gulcehre C,Cho K H,et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[C].∥NIPS 2014 Workshop on Deep Learning,2014.
[5]LAI S, XU L, LIU K, et al. Recurrent convolutional neural networks for text classification[C].∥Proceedings of the AAAI Conference on Artificial Intelligence,2015.
[6]KIM Y. Convolutional neural networks for sentence classification[J]. EMNLP, 2014.
[7]VASWANI A, Shazeer N, Parmar N, et al. Attention is all you need[C].∥Advances in neural information processing systems,2017:5998-6008.
[8]DEVLIN J, CHANG M W, LEE K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[C].∥Proceedings of NAACL-HLT,2018.
[9]CAVNAR W B, TRENKLE J M. N-gram-based text categorization[C].∥Proceedings of SDAIR-94, 3rd annual symposium on document analysis and information retrieval,1994:161 175.
[10] LAI S, XU L, LIU K, et al. Recurrent convolutional neural networks for text classification[C].∥Proceedings of the AAAI Conference on Artificial Intelligence,2015.
[11] ZHOU P, SHI W, TIAN J, et al. Attention-based bidirectional long short-term memory networks for relation classification[C].∥Proceedings of the 54th annual meeting of the association for computational linguistics (volume 2: Short papers),2016:207-212.
[12] YANG Z, YANG D, DYER C, et al. Hierarchical attention networks for document classification[C].∥Proceedings of the 2016 conference of the North American chapter of the association for computational linguistics: human language technologies,2016:1480-1489.
[13] KUBAT M, MATWIN S. Addressing the curse of imbalanced training sets: one-sided selection[J].Icml, 1997, 97:179-186.
[14] CHAWLA N V, BOWYER K W, HALL L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of artificial intelligence research, 2002, 16:321-357.
[15] WEI J, ZOU K. EDA: Easy data augmentation techniques for boosting performance on text classification tasks[C].∥Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), 2019:6382-6388.
[16] YU A W, DOHAN D, LUONG M T, et al. QANet: Combining local convolution with global self-attention for reading comprehension[C].∥International Conference on Learning Representations,2018.
[17] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C].∥Proceedings of the IEEE international conference on computer vision, 2017:2980-2988.
[18] LI X, SUN X, MENG Y, et al. Dice loss for data-imbalanced NLP tasks[C].∥Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 2020:465-476.
[19] SUN Y, KAMEL M S, Wong A K C, et al. Cost-sensitive boosting for classification of imbalanced data[J]. Pattern Recognition, 2007, 40(12):3358-3378.
[20] SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision[C].∥Proceedings of the IEEE conference on computer vision and pattern recognition, 2016:2818-2826.
[21] MLLER R, KORNBLITH S, HINTON G.When doeslabelsmoothinghelp? [C].∥NeurIPS,2019.
Unbalanced Text Classification Based on SmoothSampling and Improved Loss
LIANG Jianli, SHANG Hao
(School of Science, Hubei Univ. of Tech., Wuhan 430068, China)
Abstract:When data are imbalanced, text classification models are easy to misclassify minority class to majority class. This paper proposes a smooth sampling method at the sampling level, and improves the cross entropy loss and label smoothing based on the imbalanced distribution at the loss function level. Experiments on the Fudan text corpus show that the improved method in each level outperforms the benchmark method. With the combination of the improved method in sampling level and loss function level, the TextCNN, BiLSTM+Attention, TextRCNN and HAN models can obtain 4.17%, 5.31%, 5.06%, and 6.21% macro? F1 improvement and increase 6.56%, 3.03%, 3.92%, and 5.32% on G mean respectively. The methods proposed in this paper have been verified the effectiveness on imbalanced corpora.
Keywords: text classification; unbalanced percent; sampling; loss function
[責任編校: 張眾]