徐安德,趙亞康,張?jiān)氯?,?楊
(1 南京農(nóng)業(yè)大學(xué) 工學(xué)院, 南京 210095;2 東南大學(xué) 機(jī)械工程學(xué)院, 南京 211189)
互聯(lián)網(wǎng)時(shí)代的文本數(shù)量以指數(shù)級(jí)增長(zhǎng),面對(duì)海量文本信息,文本分類(或文檔分類)顯得至關(guān)重要,文本分類是將文本合并為一個(gè)或多個(gè)根據(jù)文本內(nèi)容預(yù)定義的類別,以提高自動(dòng)分類的效率[1]。其應(yīng)用領(lǐng)域廣泛,如主題檢測(cè)[2],垃圾郵件過(guò)濾[3]、情感分析[4]等。因此,文本分類的研究具有重大意義和價(jià)值。
在分類過(guò)程中,文檔的表示非常重要。詞袋法(BoW)是一種最常用的文檔表示法,但詞袋法存在高維性、高特征實(shí)例比和稀疏性等缺陷[5]。為了解決詞袋法的缺陷,一些研究者提出一些優(yōu)化方法,如文獻(xiàn)[6]利用了結(jié)構(gòu)相似性;文獻(xiàn)[7]提出了基于損失函數(shù)的方法,但這些方法降低維數(shù)和特征實(shí)例比有限。在眾多方法中,多分類器系統(tǒng)較受歡迎,其綜合性能較好,如文獻(xiàn)[8]提出一種基于語(yǔ)義理解的注意力神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短期記憶網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的多元特征融合中文文本分類模型。文獻(xiàn)[9]提出一個(gè)最大熵的情感模型,通過(guò)組合式方式來(lái)進(jìn)行維數(shù)約簡(jiǎn),以降低文本數(shù)據(jù)的高維性和稀疏性。但該方法的主要難題是如何確定聚類數(shù)量。文獻(xiàn)[10]在文本分類問(wèn)題中應(yīng)用多分類器融合方法,利用一個(gè)較小的分類器池(2~4個(gè)分類器),將多個(gè)分類器在管道中組合。文獻(xiàn)[11]使用隱性話題和相關(guān)詞語(yǔ)來(lái)豐富BoW表征,這種方式能夠增加稀疏文本的話題相關(guān)度,同時(shí)將樸素貝葉斯和最大熵分類器進(jìn)行融合。
鑒于多分類器融合的優(yōu)勢(shì),本文也提出了一個(gè)類似方法,使用不同的相異性表征,將特征向量轉(zhuǎn)換為新的低維表示[12]。在該表征方式中,每個(gè)文檔由一個(gè)相異性向量表示,相異性向量由該文檔到表征集中所有文檔的距離組成。由于表征集包含不同類別的文檔,相同類別文檔之間的相異度應(yīng)該較小,而不同類別文檔之間的距離很大。因此,增加類別間的辨識(shí)性,在文本分類中作用重大。
目前常用的有3種相異性表征法[13]:預(yù)拓?fù)洹⑾喈愋钥臻g和嵌入。預(yù)拓?fù)浞ㄓ衚-NN分類器,可視為基于相異性的分類器,嵌入法需要根據(jù)使用的度量對(duì)每個(gè)分類器進(jìn)行修改。本文使用了相異性空間框架,因?yàn)橄喈愋钥臻g框架具有較好的普適性,即,適用于任何度量和任何需要特征向量作為輸入的分類器。
相異性表征指的是通過(guò)計(jì)算一個(gè)文檔(或文檔集)與表征集R={p1,p2, …,pQ}的每個(gè)文檔相異度而定義的映射。表征集包括使用原型選擇方法從更大集合中選出的Q個(gè)原型。
(1)
(2)
相異性矩陣可被用作數(shù)據(jù)矩陣,其中,每行表示一個(gè)文檔,每列表示一個(gè)特征。
值得一提,相異性表征能夠緩解BoW的3個(gè)缺陷:
1) 高維性。在相異性表征后,特征數(shù)量等于表征集中的文檔數(shù)量(Q),而表征集為訓(xùn)練集的子集(Q≤N)。鑒于大部分文本分類語(yǔ)料庫(kù)有著較高的特征實(shí)例比,即原始特征數(shù)(V)大于等于訓(xùn)練集中的文檔數(shù)(V≥N)。而相異性表征將減少特征數(shù)量(Q≤V)。
2) 稀疏數(shù)據(jù)矩陣。在應(yīng)用相異性表征后,每個(gè)特征表示兩個(gè)不同集合文檔之間的距離(d(xi,pk))。當(dāng)兩個(gè)文檔的所有特征值均相同時(shí),該距離為零(但較為罕見(jiàn))。由此顯著降低了稀疏性。
3) 高特征實(shí)例比。在維數(shù)約簡(jiǎn)后,該比例也會(huì)隨之降低(Q≤N)。
本文提出的方法是一個(gè)多分類器方法。其主要理念是對(duì)多個(gè)分類器的響應(yīng)進(jìn)行合并以分類文檔,在不同的相異性空間上訓(xùn)練每個(gè)分類器。
所提方法使用了幾個(gè)不同的集合,每個(gè)集合的符號(hào)解釋如下:
2) 測(cè)試集Y由M個(gè)文檔yj∈Y={y1,y2,…,yM}組成,使用與訓(xùn)練集相同的BoW表征。
3)Xs(s={1,2,…,L}為訓(xùn)練集X的子集,每個(gè)訓(xùn)練子集Xs的大小等于原始訓(xùn)練集。
4) 表征集Rs由Q個(gè)文檔pk∈Rs={p1,p2,…,pQ}所組成。
本文方法的訓(xùn)練階段包括4個(gè)模塊:自舉、表征集生成、表征變換和分類器訓(xùn)練,如圖1所示。輸入?yún)?shù)為訓(xùn)練集(X),分類器數(shù)量(L),以及每個(gè)表征集Rs的原型數(shù)量 (Q={q1,q2,…,qL})。很多情況下每個(gè)Rs的原型數(shù)量相等,因此q1=q2=…=qL。
圖1 訓(xùn)練階段示意圖
每個(gè)表征變換模塊的輸入集為訓(xùn)練子集Xs和表征集Rs,其中s= 1,2,…,L。鑒于所提方法是一個(gè)多分類器系統(tǒng),多樣性非常重要[14],因此,這兩個(gè)輸入集應(yīng)包含不同文檔。在這個(gè)前提下,自舉模塊和表征集生成模塊能夠創(chuàng)建出具有多樣性的多分類器融合池。
自舉模塊利用采樣替換生成訓(xùn)練集的不同子集。該模塊將原始訓(xùn)練集X作為輸入,并生成L個(gè)訓(xùn)練子集(X1,X2,…,XL)作為輸出。所有子集的大小均與原始訓(xùn)練集相同(N),一些文檔多次出現(xiàn)。
表征集生成模塊使用任意原型選擇算法來(lái)生成不同的訓(xùn)練子集。該模塊將原始訓(xùn)練集X作為輸入,并生成L個(gè)表征集(R1,R2,…,RL) 作為輸出。每個(gè)表征集包含qs個(gè)文檔(qs≤N)。有必要指出,對(duì)于一個(gè)給定的訓(xùn)練集,確定性原型選擇算法總是生成同樣的子集;為了得到L個(gè)不同的表征集,可以使用L種不同的確定性原型選擇算法,或使用非確定性原型選擇算法(如隨機(jī)選擇)。
此處,提出的方法生成2×L個(gè)訓(xùn)練集的子集。其中前一半子集(X1,X2,…,XL)來(lái)自于自舉法,每個(gè)子集包含N個(gè)文檔;后一半子集 (R1,R2,…,RL)來(lái)自于原型選擇法。每個(gè)表征變換模塊接收Xs和Rs,以生成一個(gè)相異性矩陣D(Xs,Rs):
(3)
式中:每個(gè)函數(shù)d(xi,pk)生成文檔xi的第k個(gè)特征。通過(guò)這種方式,每個(gè)相異性矩陣D(Xs,Rs)可視為一個(gè)變換集,其中包含以qs個(gè)特征(矩陣的列)表征的N個(gè)文檔(矩陣的行)。
訓(xùn)練階段的輸出為L(zhǎng)個(gè)受訓(xùn)后的分類器(o1,o2,…,oL),其中使用相異性矩陣D(Xs,Rs)對(duì)每個(gè)分類器os進(jìn)行了訓(xùn)練。
所提方法的測(cè)試階段(圖2)包含3個(gè)模塊:表征變換、分類器和融合器。該階段的輸入?yún)?shù)包括1個(gè)查詢文檔(yj∈Y),L個(gè)表征集(R1,R2,…,RL)和L個(gè)訓(xùn)練后的分類器(o1,o2,…,oL)。
圖2 測(cè)試階段示意圖
表征變換模塊將單個(gè)文檔yj∈Y和一個(gè)表征集RL作為輸入,并生成一個(gè)變換后的文檔如下:
D(yj,Rs)=[d(yj,p1),d(yj,p2),…,d(yj,pqs)]T
(4)
由此,特征向量的每個(gè)元素代表著查詢文檔yj和表征集Rs中的一個(gè)文檔pk之間的距離。 然后,將每個(gè)變換文檔D(yj,Rs)提交至各自的分類器os,后者輸出classos(yj)。接著,通過(guò)融合器模塊對(duì)L個(gè)分類器的每個(gè)輸出classos(yj)進(jìn)行合并,給出最終應(yīng)答class(yj)。合并方法主要分為3種[15]:
1) 類標(biāo)簽融合。即每個(gè)分類器響應(yīng)一個(gè)分類,其應(yīng)答作為投票使用,例如一致表決、簡(jiǎn)單多數(shù)票,或多數(shù)票[15];
連續(xù)四年,青辰都是滑翔大賽的冠軍。也即是說(shuō),自從他十二歲生日那天第一次參加滑翔大賽,便再?zèng)]有人能從他手中奪走冠軍的勛章。他似乎對(duì)天空有著超過(guò)常人的敏銳感知,無(wú)論是對(duì)風(fēng)向和風(fēng)速的判斷利用,還是懸空時(shí)出色的平衡掌控能力,都讓他能夠遠(yuǎn)遠(yuǎn)領(lǐng)先對(duì)手。而這一次,他更是對(duì)滑翔翼進(jìn)行了改良,使它的結(jié)構(gòu)更加接近翅膀的流線型,以便在滑翔時(shí)獲得更大的升力。
2) 支持函數(shù)融合。首先,每個(gè)分類器給出每個(gè)分類的概率;然后,通過(guò)例如后驗(yàn)概率等方式對(duì)這些響應(yīng)進(jìn)行合并;
3) 可訓(xùn)練融合器。首先,使用所有分類器的應(yīng)答,對(duì)一個(gè)分類器進(jìn)行訓(xùn)練,然后基于驗(yàn)證集或統(tǒng)計(jì)方法給出合并后的答案。本文使用多數(shù)票[15]作為類標(biāo)簽融合方法。該方法優(yōu)點(diǎn)是簡(jiǎn)單高效,既不要求概率計(jì)算,也不需要基于驗(yàn)證集對(duì)輸出進(jìn)行訓(xùn)練,且性能優(yōu)于單個(gè)分類器。
本文在7個(gè)數(shù)據(jù)庫(kù)上使用10折分層交叉驗(yàn)證進(jìn)行實(shí)驗(yàn),所用數(shù)據(jù)庫(kù)的重要屬性如表1所示。分類器采用帶線性核的SVM分類器,分類器池大小(L)在10到100之間變化(步長(zhǎng)為10)。
表1 數(shù)據(jù)庫(kù)重要屬性
使用微觀平均F1得分(micro-F1)和宏觀平均F1得分(macro-F1)作為有效性評(píng)估指標(biāo)。F1得分計(jì)算方式如下:
(5)
式中:Recall表示召回率,Precision表示精度。但對(duì)于micro-F1和macro-F1,Recall和Precision的定義是不同的。對(duì)于micro-F1:
(6)
(7)
而macro-F1的Recall和Precision則定義為
(8)
(9)
其中:C表示類別數(shù)量,TPk表示正確將文檔分入類別ck的數(shù)量,F(xiàn)Nk表示將文檔錯(cuò)誤歸入ck之外的其他類別的數(shù)量,F(xiàn)Pk表示將文檔錯(cuò)誤歸入類別ck的數(shù)量。
本文通過(guò)實(shí)驗(yàn)1主要解決以下問(wèn)題:表征集生成模塊中應(yīng)該使用哪種原型選擇算法?所提方法中表征集的最優(yōu)大小是多少?為此,本節(jié)將評(píng)價(jià)所提方法對(duì)原型選擇和表征集大小這兩個(gè)參數(shù)的敏感性。選擇來(lái)自5個(gè)不同領(lǐng)域(科學(xué)、情感、醫(yī)學(xué)、TREC1和Web)的3個(gè)數(shù)據(jù)庫(kù)(CSTR、ACM和WAP)進(jìn)行敏感性分析。
對(duì)于第一個(gè)問(wèn)題,確定表征集生成模塊的原型選擇算法。本文應(yīng)用了3類不同的原型選擇算法:凝聚式、編輯式和混合式。為這3類算法分別選擇3個(gè)原型算法,其中凝聚式采用CNN;編輯式采用kNN;混合式采用ATISA2[16]。另外,還考慮了隨機(jī)原型選擇算法,因?yàn)橛嘘P(guān)相異性表征的研究表明[12],利用隨機(jī)原型選擇得出的表征集能夠?qū)崿F(xiàn)較好的結(jié)果。因此,本文評(píng)估了兩種配置:確定性原型選擇算法(PSA),以及非確定性原型選擇算法組合,也即隨機(jī)原型選擇(RPS)。
表2分別給出了使用兩種度量(余弦相似度和歐氏距離),分類器組合得出的結(jié)果。其中,最好結(jié)果用粗體字表示,括號(hào)中的數(shù)據(jù)為標(biāo)準(zhǔn)偏差?!癙SA”列給出了使用CNN、kNN、和ATISA2算法選出原型后,并對(duì)每個(gè)分類器進(jìn)行訓(xùn)練的結(jié)果?!癛PS”列給出了使用隨機(jī)原型選擇時(shí),3個(gè)分類器合并后的結(jié)果。為了公平比較,RPS選出的原型數(shù)量與每個(gè)PSA得出的相等。根據(jù)置信度95%的t檢驗(yàn)統(tǒng)計(jì),PSA和RPS的性能相似。由于原型選擇算法速度慢于隨機(jī)原型選擇,因此本文選用了后者。
表2 使用兩種度量得出的結(jié)果
對(duì)于第2個(gè)問(wèn)題,為了評(píng)價(jià)表征集的大小,本文考慮性能(micro-F1)和多樣性。與準(zhǔn)確率相關(guān)的多樣性度量中,多樣性要求的計(jì)算量較少。多樣性度量的計(jì)算方式如下:
(10)
式中:oa和ob為兩個(gè)分類器,Oab表示給定分類器(a對(duì)應(yīng)oa,b對(duì)應(yīng)ob)對(duì)測(cè)試集Y中的文檔yj的分類結(jié)果,正確為1,錯(cuò)誤為0??傊?,多樣性度量是計(jì)算兩個(gè)分類器對(duì)同一個(gè)文檔的誤分類概率。
圖3給出了使用配對(duì)t檢驗(yàn)的Q的3個(gè)數(shù)值。其中,符號(hào)由配對(duì)t檢驗(yàn)定義為:p-value≤0.01∴(>>)/(<<),p-value≤0.05∴(>)/(<)和p-value > 0.05∴(=)。最優(yōu)配置顯示為灰色。從多樣性角度考慮,對(duì)于3個(gè)數(shù)據(jù)庫(kù)中的2個(gè),10%是最優(yōu)值;從性能角度考慮,對(duì)于所有數(shù)據(jù)庫(kù),30%均是最優(yōu)值。然而,10%和30%分別在性能和多樣性方面存在缺陷。因此,為了在性能和多樣性之間找到最好的平衡,本文將該參數(shù)定義為訓(xùn)練集的20%。也就是說(shuō),使用訓(xùn)練集的20%組成表征集,Q=N×0.2,其中N為訓(xùn)練集大小。
圖3 多樣性和性能與Q值關(guān)系
本文所提方法與文獻(xiàn)[11]提出的改進(jìn)詞袋法、文獻(xiàn)[10]提出的多分類器融合和文獻(xiàn)[9]的最大熵模型進(jìn)行比較。對(duì)于詞袋法[11],在生成分類器池之前使用ALOFT算法進(jìn)行特征選擇。ALOFT是專門針對(duì)文本分類設(shè)計(jì)的特征選擇算法,能夠顯著減少變量數(shù),且不會(huì)造成性能下降。對(duì)于最大熵模型[9],則不需要使用特征選擇,因?yàn)槠鋾?huì)為每個(gè)分類器生成降維后的若干個(gè)特征子空間。在本文提出的方法中,使用小于訓(xùn)練集的表征集來(lái)實(shí)現(xiàn)約簡(jiǎn),因?yàn)樽罱K維數(shù)等于表征集中的文檔數(shù)量。
表3給出了4種方法(本文方法和文獻(xiàn)[9-11])的最終結(jié)果。詞袋法的性能均會(huì)受到特征選擇算法的影響,根據(jù)表3最后一行的結(jié)果,文獻(xiàn)[11]的改進(jìn)詞袋法是性能第二好的方法。macro-F1和micro-F1的臨界差值如圖4所示。
圖4 各方法的臨界差值
可以看出,所提方法在兩個(gè)度量中均得到最低均值,性能優(yōu)于其他方法。與本文方法不同,文獻(xiàn)[10]多分類器融合的性能取決于表征變換后得到的特征數(shù)量(Q)。由于特征數(shù)量由訓(xùn)練集文檔數(shù)量決定(Q=N×0.2),因此文獻(xiàn)[10]的結(jié)果與N存在直接關(guān)系。當(dāng)文檔數(shù)量較少(N<2 000)時(shí)文獻(xiàn)[10]方法得到最差結(jié)果,而在文檔數(shù)量較多(N>6 000)時(shí)則得到最優(yōu)結(jié)果。在原始特征數(shù)量大于文檔數(shù)量的數(shù)據(jù)庫(kù)中,文獻(xiàn)[10]方法的性能尤其出色。
性能與特征約簡(jiǎn)率之間的關(guān)系如圖5所示,圖5中評(píng)價(jià)了7個(gè)數(shù)據(jù)庫(kù)和4種方法。當(dāng)約簡(jiǎn)率低于80%時(shí),文獻(xiàn)[10]方法性能較好。ALOFT自動(dòng)定義特征數(shù)量,因此,在所有案例中約簡(jiǎn)率均等于或高于85%,不受所使用的特征評(píng)價(jià)函數(shù)的影響??梢钥闯觯疚姆椒ǔ霈F(xiàn)31次,其后依次為文獻(xiàn)[11]改進(jìn)詞袋25次,文獻(xiàn)[9]的最大熵模型23次,文獻(xiàn)[10]的多分類器融合方法12次。
圖5 約簡(jiǎn)百分比與micro-F1關(guān)系
表3 各方法的綜合評(píng)價(jià)結(jié)果
本文針對(duì)詞袋法(BoW)的一些缺陷,提出了一個(gè)適用性更廣的解決方法,所提方法利用相異性表征解決了詞袋法的稀疏性和高維性問(wèn)題。其中,每個(gè)特征表征為兩個(gè)文檔之間的距離,該距離僅在兩個(gè)文檔相等時(shí)為0,由此減少了稀疏性。由于特征數(shù)量等于表征集中的原型數(shù)量,高維性同樣得到縮減。另外,分類器池的策略有利于創(chuàng)建多樣化的多分類器融合池。驗(yàn)證了所提方法具有較好的整體準(zhǔn)確率和穩(wěn)定性。未來(lái)作者將對(duì)每個(gè)分類器的最優(yōu)表征集進(jìn)行優(yōu)化搜索,以獲得最優(yōu)特征。