◆方俠旋
(安徽大學(xué)經(jīng)濟學(xué)院 安徽 230601)
隨著互聯(lián)網(wǎng)時代的發(fā)展,網(wǎng)絡(luò)上開始產(chǎn)生大量的信息,信息量呈爆發(fā)式增長,而對這些信息的收集與處理就顯得尤為重要。一方面可以掌握當(dāng)前形勢下各種信息的情況;另一方面,充分利用這些信息可以幫助人們解決更多繁雜的問題,比如根據(jù)各種信息的特點進行垃圾郵件的過濾,或者利用信息預(yù)測未來事件的走勢,以及對各種文本信息進行分類。
而文本分類任務(wù)一般分為兩大類,輸入文本對應(yīng)一個輸出類別的分類稱為單標(biāo)簽分類;若輸入一個文本,輸出類別大于或等于二,則稱為多標(biāo)簽分類。其中,單標(biāo)簽分類又分為二元文本分類和多類別文本分類:二元文本分類就是數(shù)據(jù)集僅有兩個類別,多類別文本分類的數(shù)據(jù)集有超過兩個的類別[1]。
當(dāng)前學(xué)者所做的文本分類成果較多。有基于短文本評論數(shù)據(jù)進行的情感極性分類:其中王獻偉[2]以京東智能冰箱的評論數(shù)據(jù)對文本情感進行正、負極性分類;Sanjiv R.Das[3]等人結(jié)合五種不同的分類器,通過投票機制將股票評論數(shù)據(jù)進行正、負、中情感極性分類;還有的學(xué)者基于文本主題進行分類:其中霍婷婷[4]基于FastText模型的三種改進算法對新聞文本進行分類,主要分為農(nóng)業(yè)和非農(nóng)業(yè)新聞;景永霞[5]等人基于矩陣SVD的方法對10個類別的文本數(shù)據(jù)進行了多分類,相較于以往基于信息增益的KNN算法分類性能有所提高;也有學(xué)者沒有按主題而是按文檔的整體情感對文檔進行了分類[6]。本文就含有 19個類別的新聞數(shù)據(jù)基于 XGBoost進行單標(biāo)簽下的文本多分類,分析分類模型的性能優(yōu)劣。
在介紹XGBoost之前,介紹兩種常用的分類模型,邏輯回歸和 Navie Bayes,這兩種模型在以往的很多分類任務(wù)中的分類效果都比較好,因此本文鑒于這兩種模型來與 XGBoost進行對比分析。
邏輯回歸(logistic regression)是一個應(yīng)用非常廣泛的機器學(xué)習(xí)算法,它基于極大似然估計的思想,利用模型所生成的概率去比較真實值與預(yù)測值之間的差異,可用于文本二分類或者多分類中;在文本分類任務(wù)中,如果把某個文本預(yù)測為某一類別當(dāng)作一次事件,那么從文本中提取的特征及其頻率等信息就可以作為此次事件發(fā)生的各個因素,使用回歸去訓(xùn)練文本特征之間的關(guān)系,從而再去預(yù)測文本類別[7]。
樸素貝葉斯(Na?ve Bayes,NB)是一種概率模型,算法簡單且有大量的數(shù)學(xué)理論支撐,易于解釋。雖然它基于一個假設(shè):各樣本屬性之間是獨立的,但是很多情況下,它的分類效果仍表現(xiàn)得很好,也因此在很多領(lǐng)域有大量應(yīng)用,比如垃圾郵件的過濾、情感判別以及文本分類等等[8]。在文本分類任務(wù)中,模型計算每個樣本屬于各個類別的概率,將樣本判給概率最大的類別。
XGBoost(eXtreme Gradient Boosting)是一種優(yōu)秀的集成學(xué)習(xí)模型,主要思想就是訓(xùn)練很多個準(zhǔn)確率較低的弱學(xué)習(xí)器(樹模型),然后將它們集成為一個準(zhǔn)確率較高的強學(xué)習(xí)器[9]。在擬合模型時,XGBoost運用二階泰勒展開式,并且自帶正則化項,可以有效防止過度擬合,提高模型泛化性能;在2014年由陳天奇將它實現(xiàn),可同時并行多個CPU,運行速度快,分類效果好,并大量運用于工業(yè)中。
多數(shù)學(xué)者在進行文本分類時,都是直接使用召回率、準(zhǔn)確率、Fβ值來評判分類效果,很少注意到模型的擬合情況。損失函數(shù)可以用來表示樣本真實值與預(yù)測值之間的偏差,它的值往往表現(xiàn)一個模型的擬合情況和模型的性能。模型的擬合效果對最終預(yù)測有很大作用,往往直接決定最終的預(yù)測情況[10],用在分類問題中,它也可以反映模型的分類效果。
本文引用多類別對數(shù)損失(Multi-Class Log-Loss)來對模型的擬合效果進行分析,同時它也是 Kaggle大賽上通用的多分類問題的評測指標(biāo)。
多類別對數(shù)損失與交叉熵損失函數(shù)有異曲同工之處。主要區(qū)別在于交叉熵損失函數(shù)多數(shù)情況下是作為二元分類模型的評判標(biāo)準(zhǔn),而 log似然損失函數(shù)一般用于多分類,它的簡化公式為:
其中:N為樣本量;m為總類別數(shù),本文為14;yi,k表示第i個樣本的標(biāo)簽,取值為0或1;pi,k為觀測樣本i屬于第k個類別的預(yù)測概率;從對數(shù)損失函數(shù)的含義可以看出:損失值越小,模型擬合效果也越好。
在得到模型擬合情況下,為了進一步判斷模型分類的效果,我們使用準(zhǔn)確率來進行分析。本文準(zhǔn)確率(Accuracy)即為預(yù)測正確的樣本數(shù)量與總測試樣本數(shù)量之比,即:
采用復(fù)旦大學(xué)中文分類語料庫,一共9249篇文本觀測數(shù)據(jù),包含藝術(shù)、文學(xué)、哲學(xué)和法律等19個類別,且各類別數(shù)據(jù)量不相同,如表1。將數(shù)據(jù)集按8:2分為訓(xùn)練集與測試集;用訓(xùn)練集擬合模型,在測試集中計算損失函數(shù)的值及分類準(zhǔn)確率。
表1 復(fù)旦大學(xué)中文分類語料
類別 計算機 環(huán)境 電子 農(nóng)業(yè) 體育 時政 醫(yī)療 經(jīng)濟 法律數(shù)量 1356 1218 28 1022 1254 520 53 1601 52
本文分詞工具使用Python中最常用的jieba分詞,一般來說jieba分詞結(jié)果較為精準(zhǔn);停用詞庫為根據(jù)哈工大、川大、百度停用詞庫以及代碼運行過程中的提示自行整理而成。
在分詞、剔除停用詞以后,需要對文本進行特征表示,從而使文本數(shù)據(jù)轉(zhuǎn)化為計算機可以識別的形式。其中最常用的是向量空間模型,它將每篇文本表示為一個向量形式;它也具有很多衍生版本,其中使用最多的是詞袋模型。
詞袋模型(bag of words)對每個訓(xùn)練文本中所出現(xiàn)的詞匯的出現(xiàn)頻率進行統(tǒng)計,將出現(xiàn)的所有詞匯進行排列,當(dāng)作一列特征,進而構(gòu)成一個詞匯矩陣。它是最基本的一種特征提取方法,易于理解和使用,但是它依賴于詞典的構(gòu)建,也容易造成稀疏矩陣的問題。詞袋法不考慮每個詞匯出現(xiàn)的順序,也不考慮單詞與句子或者段落之間的復(fù)雜聯(lián)系。
相比較于詞袋法——直接將所有詞匯在本篇文檔中的出現(xiàn)頻率作為這個詞的特征權(quán)重,TF-IDF方法不僅考慮出現(xiàn)的詞匯在本篇文檔中的頻率,而且考慮每個詞匯在所有文檔中的出現(xiàn)頻率。它認為,某個詞匯的重要性與這個詞匯在本篇文檔中的概率成正比,而與在所有文檔中出現(xiàn)的概率成反比;相關(guān)計算公式如下:
其中,ni,j表示特征項tj在文檔di中出現(xiàn)的次數(shù);分母表示文檔di中所有特征項出現(xiàn)的次數(shù);N為所有文檔的總數(shù);nj表示含特征項tj的文檔總數(shù);
則idfi,j表示出現(xiàn)特征項tj的文檔的倒數(shù);此處為了避免分母除零的現(xiàn)象,我們將分母中含有特征項tj的文檔總數(shù)加 1,用來平滑IDF權(quán)重,也即改進逆文檔頻率,公式如下:
最后我們得到TF-IDF的表達式為:tfidfi,j=idfi,j*tfi,j
也即一個詞在某篇文檔中出現(xiàn)次數(shù)越多越重要,同時這個詞在所有文檔集合中出現(xiàn)的次數(shù)越少也越重要;因為出現(xiàn)次數(shù)越少,表明對主題的代表性越好,區(qū)分文檔的能力越強。
本文在提取文本特征時,將所有數(shù)字更換為同一個占位符,以達到降維作用。同時將詞袋模型與采用TF-IDF加權(quán)方法的建模結(jié)果進行對比分析,尋找最優(yōu)模型。
本文采用前面所描述的兩種特征提取方法,結(jié)合三種模型,對數(shù)據(jù)集使用Python平臺進行代碼實現(xiàn)。最終輸出為6個對數(shù)損失值和對應(yīng)的準(zhǔn)確率,我們將其匯總為以下兩張表格進行展示。
表2 對數(shù)損失值
表3 準(zhǔn)確率
觀察對比兩個表格可以發(fā)現(xiàn):
表2中XGBoost的對數(shù)損失值要比邏輯回歸和Navie Bayes小很多,說明就模型的擬合情況來看,XGBoost算法具有一定的優(yōu)勢;其中,Navie Bayes擬合效果最差,可能是由于NB一般適用于小規(guī)模的數(shù)據(jù),且樣本間的獨立性也有待考究[8],所以對于本文數(shù)據(jù)而言,性能有所下降;而邏輯回歸由于多數(shù)情況下是在兩個類別中進行分類,而且不能很好地處理特征空間很大的情況,所以在本文類別較多且數(shù)據(jù)量不平衡的情況下分類性能也不算特別好,而且,邏輯回歸由于自帶正則化項(本文為L2正則化)有時還會出現(xiàn)欠擬合的情況。
與表2相對應(yīng)的觀察表3,可以看到,擬合效果越好的模型,分類準(zhǔn)確率也越高;其中,XGBoost的準(zhǔn)確率依然最高,主要還是因為 XGBoost類似于一種集成學(xué)習(xí),將大量弱學(xué)習(xí)器集成一個強學(xué)習(xí)器,改善了模型對不平衡數(shù)據(jù)的敏感性;同時我們對此次XGBoost中每個弱學(xué)習(xí)器,也即每個樹模型賦予7層樹結(jié)構(gòu),從而使模型具有優(yōu)良的性能;對比另外兩個模型,Navie Bayes依然效果最差,邏輯回歸居中,也說明自帶正則化項的XGBoost和邏輯回歸可以有效地防止過擬合現(xiàn)象的發(fā)生,對數(shù)據(jù)的預(yù)測能力較Navie Bayes要更好。
另外對比兩個表格發(fā)現(xiàn),三種算法里基于TF-IDF提取文本特征的效果大多都不如普通詞袋模型,究其原因可能有三個方面:第一,TF-IDF法沒有考慮到特征詞在類間和類內(nèi)的分布情況[12],比如部分詞在某一類文章中不常見,會賦予較高的TF值,但是不足以作為區(qū)分文檔的關(guān)鍵類別詞,這些低頻詞的偶然出現(xiàn)被當(dāng)作高權(quán)值的關(guān)鍵詞,這將過度放大生僻詞的重要性[4];同時,在計算TF值時,也放大了常用詞的重要性;第二,TF-IDF法也沒有考慮到新聞中各特征詞的位置;第三,由于本文數(shù)據(jù)各類別的數(shù)量差異較大,不平衡性較嚴(yán)重,而TF-IDF恰恰對不平衡數(shù)據(jù)比較敏感。所以就提取文本特征這一環(huán)節(jié)來看,可以進一步尋找其他優(yōu)化算法。
本文根據(jù)包含19個類別的復(fù)旦大學(xué)中文分類語料,基于兩種特征提取方法、三種分類模型對文本進行了分類,同時使用了多分類對數(shù)損失率來衡量模型的擬合效果,并根據(jù)準(zhǔn)確率進行了最終分類評測。一方面看到不同模型對數(shù)據(jù)的擬合情況,也反映了不同模型的分類效果,并且探討了XGBoost的機制,了解了其算法的優(yōu)劣之處,可見,XGBoost模型對于不平衡數(shù)據(jù)的文本分類任務(wù)表現(xiàn)很好。
進一步還可以進行以下工作:(1)由于分詞效果對結(jié)果影響較大,可嘗試其他分詞器,進行對比優(yōu)化;(2)此次運行時間長,可對 XGBoost模型中的參數(shù)進行調(diào)參以優(yōu)化結(jié)果、縮短運行時間。