王雯慧,靳大尉
(陸軍工程大學(xué)指揮控制工程學(xué)院,江蘇 南京 210000)
分類任務(wù)是數(shù)據(jù)挖掘領(lǐng)域中一個重要的研究任務(wù),普通的分類模型通常是在數(shù)據(jù)集中各類別的樣本數(shù)量差距很小且對于每個類別的誤分代價相等的假設(shè)上訓(xùn)練的,當(dāng)使用不平衡數(shù)據(jù)集訓(xùn)練傳統(tǒng)的分類器時經(jīng)常會出現(xiàn)模型對于少數(shù)類的預(yù)測精度很低的問題,因此如何對不平衡數(shù)據(jù)進(jìn)行有效的分類一直是機(jī)器學(xué)習(xí)領(lǐng)域的研究熱點(diǎn)[1,2]。
文本分類任務(wù)是對文本依據(jù)文本的主題內(nèi)容等進(jìn)行的分類。在文本分類領(lǐng)域文本數(shù)據(jù)經(jīng)常處于不平衡狀態(tài),熱度較高的解決不平衡分類導(dǎo)致的誤分率較高問題的方法包括降采樣、過采樣、集成學(xué)習(xí)以及代價敏感函數(shù)。Cieslak等[3]提出的降采樣技術(shù),Chawla 等[4]提出的經(jīng)典過采樣技術(shù)SMOTE(Synthetic M-inority Oversampling Technique),雖然兩者在一定程度上緩解了數(shù)據(jù)集不平衡的問題,但是前者可能會打破樣本分布規(guī)律,甚至導(dǎo)致重要特征信息的缺失,后者由于生成的小類樣本是在原本的小類樣本數(shù)據(jù)連線上,可能會造成樣本因密度增加導(dǎo)致模型過擬合。Galarm等人[5]利用集成學(xué)習(xí)技術(shù)雖然的到了一個泛化能力更好的分類器,但該方法對于子分類器的質(zhì)量過度依賴,無法保證集成效果。代價函數(shù)通過給小樣本類賦予更高的誤分代價使得模型訓(xùn)練更關(guān)注小樣本,但其的參數(shù)確定大多依賴經(jīng)驗(yàn),使得損失代價的估計并不能客觀設(shè)置。
本文結(jié)合過采樣和代價敏感方法的思想,提出了一種基于EDA[6]文本增強(qiáng)技術(shù)以及改進(jìn)Focal Loss 損失函數(shù)的不平衡文本分類模型訓(xùn)練算法。該算法利用文本增強(qiáng)技術(shù)從數(shù)據(jù)層面緩解不平衡度,創(chuàng)新自動化的代價敏感函數(shù)參數(shù)設(shè)定方法進(jìn)行研究,同時避免了過采樣樣本密度增加導(dǎo)致的過擬合和代價敏感函數(shù)參數(shù)設(shè)定不客觀的問題。實(shí)驗(yàn)結(jié)果表明,本文提出的基于EDA文本增強(qiáng)技術(shù)以及改進(jìn)的Focal Loss 損失函數(shù)的不平衡文本分類模型對于不平衡文本的分類有較好的效果提升。
依據(jù)文本增強(qiáng)的原理不同,文本增強(qiáng)的技術(shù)可以分為面向原始文本的增強(qiáng)方法[6-10]和面向文本表示的增強(qiáng)方法[11-13]兩種。Jason Wei等人提出了一套簡單的用于自然語言處理的通用數(shù)據(jù)擴(kuò)充技術(shù)EDA[6],并針對其在英文文本上的應(yīng)用效果進(jìn)行了研究。
在小樣本中文文本數(shù)據(jù)上,假設(shè)一個小類樣本集為S={s1,s2,s3,……,sn},那么小類樣本集中某個樣本si可以表示為si={w1,w2,w3,……,wn}。增強(qiáng)句子數(shù)N代表進(jìn)行相應(yīng)操作的次數(shù),EDA技術(shù)對文本數(shù)據(jù)樣本進(jìn)行如下操作:
● 以概率p1對文本中的某個詞語wj進(jìn)行刪除操作,形成新的樣本,記為操作O1;
● 以概率p2對文本中的某個詞語wj進(jìn)行替換操作,替換詞為其同義詞,最終形成新的樣本,記為操作O2;
● 以概率p3在文本中的某個詞語wj后插入詞表中任意非停止詞的隨機(jī)單詞w,最終形成新的樣本,記為操作O3;
● 以概率p4對文本中的某個詞語wj與其后面的詞語wj+1進(jìn)行位置交換,最終形成新的樣本,記為操作O4;
EDA方法具有“多、快、好、省”的特點(diǎn),本文引入該技術(shù)進(jìn)行中文文本數(shù)據(jù)增強(qiáng)。
Nal Kalchbrenner等人提出了DCNN模型[14]實(shí)現(xiàn)了對任意長度的文本的語義建模。
DCNN模型主要包括Embedding層、動態(tài)卷積k-max池化層和Concat層:Embedding層是完成訓(xùn)練數(shù)據(jù)的基本語義表示,然后經(jīng)由三個動態(tài)卷積k-max采樣操作提取不同層次的語義表示。在動態(tài)卷積k-max采樣中,采用補(bǔ)0操作確保對輸入序列邊緣詞語語義信息的捕捉;動態(tài)k-max池化將矩陣向量最大的前k個特征進(jìn)行保留,使得輸出中保留更多的高級語義信息。Concat層則是將這三種不同層次的語義表示進(jìn)行拼接,最后利用softmax函數(shù)完成對樣本類別的預(yù)測。
該模型可以針對不同長度的文本進(jìn)行建模同時保留語序信息,適用于實(shí)驗(yàn)需求。此外,從模型的復(fù)雜度來說,DCNN模型較為簡單,對算法更敏感,有助于驗(yàn)證算法的優(yōu)越性。
2018年Facebook人工智能實(shí)驗(yàn)室提出Focal Loss函數(shù)[15],該函數(shù)通過降低不平衡樣本中模型簡單樣本的權(quán)重達(dá)到提高對困難分類的效果。
二分類問題中,常用的交叉熵?fù)p失函數(shù)設(shè)定如下
(1)
Focal Loss對交叉熵?fù)p失函數(shù)加入γ因子,將其改進(jìn)為
(2)
γ因子使模型更關(guān)注困難分類樣本,同時將易分類樣本的損失降低。在此基礎(chǔ)上,還加入平衡因子α,以針對樣本本身不平衡性進(jìn)行調(diào)節(jié)
(3)
通過調(diào)節(jié)α對大類樣本以及易分類樣本的損失函數(shù)值降低,使得模型在訓(xùn)練過程中更加關(guān)注小類樣本和困難分類樣本。
如上文所述,Focal Loss 損失函數(shù)是在通用交叉熵?fù)p失函數(shù)的基礎(chǔ)上,引入γ因子和平衡因子α,增強(qiáng)模型對于難分類小樣本的關(guān)注度。然而難分類樣本與易分類樣本其實(shí)是一個動態(tài)概念,也就是說α?xí)S著訓(xùn)練過程而變化。原先易分類樣本即α大的樣本,可能隨著訓(xùn)練過程變化為難訓(xùn)練樣本即α小的樣本。當(dāng)這種情況發(fā)生時,如果α參數(shù)保持不變可能會造成模型收斂速度慢的問題。
針對Focal loss無法其支持連續(xù)數(shù)值的監(jiān)督的問題,李翔等人提出了Generalized Focal loss[16],但是并未解決平衡因子α動態(tài)變化的問題。通常情況下平衡因子α需要通過繁瑣的調(diào)參過程確定為一個最優(yōu)的固定值,這不僅需要消耗大量的算力與時間,還忽略了難易訓(xùn)練樣本之間相互轉(zhuǎn)換的動態(tài)性。所以本文基于動態(tài)的分類模型訓(xùn)練過程,借鑒梯度下降的思想來遞歸性地逼近最佳的平衡因子α,提出平衡因子α的動態(tài)計算方法如下
(4)
同時必須滿足0<αt<1。
其中t代表訓(xùn)練輪次,n為訓(xùn)練中用以測試的小樣本數(shù)量,n′為模型預(yù)測結(jié)果中小樣本數(shù)量,β為隨機(jī)變化參數(shù),為(0,1)之內(nèi)的隨機(jī)值。
當(dāng)預(yù)測結(jié)果中小樣本分類數(shù)量多于真實(shí)小樣本數(shù)量,則說明模型對小樣本數(shù)據(jù)的傾向度相較于所需的對于小樣本的傾向度偏大,此時的變化步長為負(fù)值,則會一定程度減小下次訓(xùn)練中的平衡因子α,即減小對于小樣本數(shù)據(jù)的關(guān)注度。
根據(jù)何愷明等人實(shí)驗(yàn)結(jié)果[15],初始輪次中的平衡因子α設(shè)定為0.25,設(shè)定γ因子值為2。最終動態(tài)Focal Loss 函數(shù)可表示為
(5)
本文利用EDA文本增強(qiáng)技術(shù),在數(shù)據(jù)層面緩解數(shù)據(jù)不平衡的基礎(chǔ)上,利用上文所述動態(tài)Focal loss損失函數(shù),結(jié)合DCNN模型,提出一種不平衡文本分類算法用以訓(xùn)練不平衡文本分類器。算法結(jié)構(gòu)如圖1。
圖1 一種不平衡文本分類算法結(jié)構(gòu)
本文所提出的算法具體步驟如下:
算法1 基于改進(jìn)Focal Loss和EDA技術(shù)的不平衡文本分類算法
輸入:訓(xùn)練數(shù)據(jù)集:小樣本數(shù)據(jù)集S={s1,s2,s3,……,sn},大樣本數(shù)據(jù)集S′={s1,s2,s3,……,sm},T為迭代次數(shù);
輸 出:不平衡文本分類模型G,模型損失函數(shù)值。
1)統(tǒng)計少數(shù)類樣本數(shù)量n;
2)初始化EDA技術(shù)增強(qiáng)參數(shù):p1=0.1,p2=0.1,p3=0.1,p4=0.1,N=6;
3)For i=1 to n:
For k=1 to N:
對si依次進(jìn)行操作O1(p1),O2(p2),O3(p3),O4(p4);
5)初始化改進(jìn)的Focal Loss 函數(shù)參數(shù):γ=2,α=0.25;
6)初始化模型G
7)For t=1 to T:
A)利用分類模型Gt-1進(jìn)行預(yù)測;
B)統(tǒng)計分類器在數(shù)據(jù)集SS上分類的小樣本數(shù) 量n′;
C)計算現(xiàn)有模型準(zhǔn)確率,損失函數(shù)LFLt
D)ift a)隨機(jī)產(chǎn)生β變化參數(shù); c)if0<αt<1: 更新平衡因子αt; else 回到a)再次計算; E)更新模型Gt; 8)返回最終文本分類模型GT,最終損失LFLT。 Jason Wei等提出EDA技術(shù)的增強(qiáng)參數(shù)pi=0.1,(i=1,2,3,4)時增強(qiáng)效果最好[6],所以算法將這四項(xiàng)參數(shù)的值設(shè)定為0.1,但是增強(qiáng)句子數(shù)的推薦參數(shù)仍不確定,本文首先在修改該參數(shù)的情況下執(zhí)行算法訓(xùn)練模型,在確定輪次為800時比較準(zhǔn)確性探究最佳的參數(shù)值,實(shí)驗(yàn)結(jié)果證明時N=6模型效果最佳。 為了衡量本文提出的基于該進(jìn)的Focal loss和EDA技術(shù)的文本分類算法,利用搜狗實(shí)驗(yàn)室提供的全網(wǎng)新聞數(shù)據(jù)進(jìn)行不平衡文本數(shù)據(jù)分類器的訓(xùn)練,探究其準(zhǔn)確率提升效果。 提取全網(wǎng)新聞數(shù)據(jù)正文并利用新聞網(wǎng)頁鏈接進(jìn)行分類標(biāo)注得到軍事類文本820篇占比約為3.8%,非軍事類20583篇包括傳媒、互聯(lián)網(wǎng)、教育等類型。訓(xùn)練集與測試集按照7:3的比例劃分,詳見表1: 表1 基于搜狗新聞數(shù)據(jù)的不平衡文本分類實(shí)驗(yàn)數(shù)據(jù) 為了更好衡量模型效果,本實(shí)驗(yàn)關(guān)注于小類樣本的分類效果。模型預(yù)測結(jié)果共四種:真陽實(shí)例(TP):測試樣本數(shù)據(jù)屬于小類,且被模型預(yù)測正確;真陰實(shí)例(TN):測試樣本數(shù)據(jù)屬于大類,且被模型預(yù)測正確;假陽實(shí)例(FP):測試樣本數(shù)據(jù)屬于大類,但被模型預(yù)測錯誤;假陰實(shí)例(FN):測試樣本數(shù)據(jù)屬于小類,但被模型預(yù)測錯誤。 評價指標(biāo)精準(zhǔn)率(Presicion)、召回率(Recall)、調(diào)和平均值(F1-Score)定義如下 (6) (7) (8) 為解決不平衡數(shù)據(jù)分類模型的效果評價問題,除上述指標(biāo)之外本實(shí)驗(yàn)還選取經(jīng)典的AUC[17]值作為實(shí)驗(yàn)的評估指標(biāo)。AUC值是ROC 曲線下方所覆蓋的面積,ROC曲線是以假正率FP/(TN+FP)為橫軸,真正率TP/(TP+FN)為縱軸所繪制的曲線。當(dāng)AUC值越大,證明模型的分類效果越好。 為了驗(yàn)證本文提出的分類模型算法的有效性,進(jìn)行六組對比實(shí)驗(yàn),第六組即為本文提出的算法。 第一組:利用原始數(shù)據(jù)集(Or)直接結(jié)合交叉熵?fù)p失函數(shù)(CrossEntropy Loss,記為CL)進(jìn)行訓(xùn)練,記為Or+CL; 第二組:利用原始數(shù)據(jù)集直接結(jié)合Focal loss函數(shù)(記為FL)進(jìn)行訓(xùn)練,記為Or+FL; 第三組:利用原始數(shù)據(jù)集直接結(jié)合改進(jìn)后的Focal loss函數(shù)(記為FL*)進(jìn)行訓(xùn)練,記為Or+FL*; 第四組:利用EDA增強(qiáng)技術(shù)增強(qiáng)數(shù)據(jù)(記為EDA)后結(jié)合交叉熵?fù)p失函數(shù)進(jìn)行訓(xùn)練,記為EDA+CL; 第五組:利用EDA增強(qiáng)技術(shù)增強(qiáng)數(shù)據(jù)后結(jié)合Focal loss函數(shù)進(jìn)行訓(xùn)練,記為EDA+FL; 第六組:利用EDA增強(qiáng)技術(shù)增強(qiáng)數(shù)據(jù)后結(jié)合改進(jìn)后Focal loss函數(shù)進(jìn)行訓(xùn)練,記為EDA+FL*。 實(shí)驗(yàn)分析了六組訓(xùn)練方法的精準(zhǔn)率、召回率、調(diào)和平均值以及AUC值;設(shè)定迭代次數(shù)為500,進(jìn)行多次實(shí)驗(yàn)取平均后結(jié)果如表2。 表2 六組實(shí)驗(yàn)結(jié)果對比表 從實(shí)驗(yàn)對比結(jié)果可以看出,不同的訓(xùn)練方法下模型的準(zhǔn)確率和精準(zhǔn)率都保持在較高的水平,召回率、調(diào)和平均值、AUC值在采用了EDA技術(shù)、Focal loss損失函數(shù)以及改進(jìn)的Focal loss損失函數(shù)之后都有不同程度的提升,說明這些技術(shù)方法均能夠環(huán)節(jié)不平衡數(shù)據(jù)的問題。同時單獨(dú)各項(xiàng)技術(shù)而言,EDA技術(shù)對于模型的提升度最高,是解決不平衡問題較好的一個方法;改進(jìn)的Focal loss較原始的Focal loss有一定的改進(jìn)效果。在六組對比實(shí)驗(yàn)中,本文提出的不平衡文本分類模型的訓(xùn)練算法效果最好。 針對傳統(tǒng)文本分類算法不能很好的解決不平衡文本類別的問題,本文提出從數(shù)據(jù)以及敏感函數(shù)兩個層面解決文本二分類不平衡問題的一種新的算法。六組對比試驗(yàn)結(jié)果證明,本文的改進(jìn)方法是可行的,單獨(dú)使用各方法進(jìn)行訓(xùn)練,模型訓(xùn)練結(jié)果都有一定的提升效果,但本文所提出的結(jié)合算法效果最好。但是該方法僅針對二分類文本數(shù)據(jù),存在一定的局限。將該算法與其它不平衡文本分類算法進(jìn)行實(shí)驗(yàn)比較,針對文本多分類不平衡問題的進(jìn)一步研究,將是未來的重點(diǎn)研究方向。4 實(shí)驗(yàn)結(jié)果與分析
4.1 數(shù)據(jù)集描述
4.2 評價標(biāo)準(zhǔn)
4.3 實(shí)驗(yàn)設(shè)計與結(jié)果分析
5 結(jié)語