●王萬起 田中雨 (遼寧工程技術(shù)大學(xué) 遼寧阜新 123000)
董蘭軍 (中國科學(xué)院大學(xué) 北京 100190)
信息技術(shù)的快速發(fā)展導(dǎo)致文本數(shù)據(jù)呈級數(shù)增長,網(wǎng)絡(luò)成為人們獲取數(shù)據(jù)的重要途徑。面對海量信息資源,為了將無序、離散的數(shù)據(jù)進行分類排序,快速、準確、全面地找到用戶所需信息,滿足其個性化需求,使得文本分類成為自然語言處理領(lǐng)域的研究熱點,產(chǎn)生了多種分類模型,如樸素貝葉斯(Naive Bayes,NB)、K最近鄰(K-Nearest Neighbor,KNN)、支持向量機(Support Vector Machine,SVM)、邏輯回歸(Logistic Regression,LR) 等。在文本分類過程中,文本特征化后通常具有高維性和不平衡性的特點,導(dǎo)致傳統(tǒng)的分類算法準確率不高。為了解決高維特征的問題,通過特征降維,進行特征抽取,利用潛在語義模型,將分散在眾多原始特征中的分類信息或鑒別信息集中于少量新的特征中,提高分類算法的準確率[1]。
在自動分類方法中,泛化能力一直是機器學(xué)習(xí)關(guān)心的一個根本問題,由于集成學(xué)習(xí)(Ensemble Learning)可以有效地提高泛化能力,國際機器學(xué)習(xí)界的權(quán)威Dietterich T G將集成學(xué)習(xí)列為機器學(xué)習(xí)四大研究方向之首,即通過集成學(xué)習(xí)方法提高學(xué)習(xí)精度、擴大學(xué)習(xí)規(guī)模、強化學(xué)習(xí)和學(xué)習(xí)復(fù)雜的隨機模型[2]。
LDA(Latent Dirichlet Allocation)模型是目前應(yīng)用較為廣泛的一種文檔生成模型,它認為每篇文章具有多個主題并且每個主題又分別對應(yīng)不同的詞語,類似于標簽的理解過程,屬于一種使用了詞袋模型構(gòu)建詞向量的非監(jiān)督的機器學(xué)習(xí)模型。LDA模型經(jīng)過長時間發(fā)展已經(jīng)衍生出了不同的主題聚類方法及分類算法。目前基于LDA模型的文本分類研究大概有如下幾種。一是基于聚類算法和LDA模型展開的文本分類研究,它的特點是通常將LDA模型與其他聚類算法結(jié)合起來生成新模型,以更好地實現(xiàn)主題發(fā)現(xiàn)研究。二是基于話題演化的思想,有學(xué)者假設(shè)LDA模型中的超參數(shù)按照時間變化,并且前面一段時間的變化決定后面一段時間的超參數(shù)變化,進而展現(xiàn)出生成的主題隨時間變化的特點。三是基于Applications-LDA進行的研究,許多學(xué)者根據(jù)現(xiàn)實需要和在網(wǎng)絡(luò)中出現(xiàn)短文本數(shù)據(jù)所對應(yīng)的平臺特點,逐漸開發(fā)出了具有針對性的Applications-LDA模型,通過對數(shù)據(jù)中產(chǎn)生的主題變化來建模,實現(xiàn)對特定平臺中文本流的主題挖掘,較著名的有“Twitter-LDA”等。四是基于s-LDA模型開展的研究,當每篇文檔關(guān)聯(lián)一個服從正態(tài)分布的實值響應(yīng)變量時,代表該文檔的類別標識,采用EM算法進行最大似然參數(shù)估計能夠處理該類文檔。五是基于半監(jiān)督分層的LDA模型研究,該模型的思路為在文本生成過程中融合有標簽的主題,獲取關(guān)于主題的層次結(jié)構(gòu),進而提出更優(yōu)化的學(xué)習(xí)策略。
因此,本文首先根據(jù)LDA模型特征提取方法考慮數(shù)據(jù)輸出,在原來文本的輸入文本中對關(guān)鍵詞分配相應(yīng)主體,但由于留下了非關(guān)鍵字,影響了分類的效能并增大了主體分布概率。其次,針對從LDA模型提取樣本以解決整篇文本線性能力偏差的問題,提出了使用關(guān)鍵詞提取方法提取有效能的詞語。再次,對比利用過濾方式對LDA模型進行改善后的效率,重點描述了使用關(guān)鍵詞進行主題擬合及如何將其實現(xiàn)的過程。最后發(fā)現(xiàn)MI算法、LSI算法和LDA主題模型中較有效率的是后者,并在一些標準數(shù)據(jù)集上分別進行了對比和討論,試圖找出LDA模型分類算法性能提升的思路。由于集成學(xué)習(xí)利用多個分類器決策結(jié)果的可信度高于單個分類器決策結(jié)果的思想形成一種新的文本分類模式,現(xiàn)在已有多種集成學(xué)習(xí)算法, 如Boosting、Bagging、Random Subspace算法等。本文嘗試通過LDA模型進行文本降維,提取“文檔—主題”矩陣表示文本特征,利用樸素貝葉斯、邏輯回歸、支持向量機、K近鄰算法4種傳統(tǒng)分類算法并根據(jù)特征矩陣進行文本分類,依據(jù)平均F值比較分類效果。同時將傳統(tǒng)分類算法作為基分類器,分別放于Addboost、Bagging、Random Subspace三個集成學(xué)習(xí)框架中,作為同質(zhì)集成,通過集成學(xué)習(xí)框架進行分類性能測試,并分析在利用LDA模型表示文本特征的情況下,傳統(tǒng)分類算法的性能以及集成學(xué)習(xí)算法是否能提高傳統(tǒng)分類算法的分類準確度,以此獲得最優(yōu)的分類算法,為之后進行與主題模型相關(guān)的文本分類工作提供一定的參考。
分類算法與集成學(xué)習(xí)的目的都非常明確且直接,屬于數(shù)據(jù)分析模式,能夠提取描述重要數(shù)據(jù)類的模型和未來數(shù)據(jù)大概呈現(xiàn)出來的趨勢。其中,分類算法主要適用于預(yù)測未來的分類標號或者離散值,而集成學(xué)習(xí)主要用于建立連續(xù)函數(shù)模型,對目前的資源進行整合學(xué)習(xí)。分類算法一般包含兩個基本過程,首先需要建立模型來描述預(yù)定的數(shù)據(jù)類集或者概念集,通過分析數(shù)據(jù)庫元組來對模型進行構(gòu)造。其次是利用模型進行分類,在評估模型的準確率后對類標號為止的數(shù)據(jù)源組進行分類。目前分類算法和集成學(xué)習(xí)主要有決策樹、統(tǒng)計方法、機器學(xué)習(xí)方法和神經(jīng)網(wǎng)絡(luò)等。
20 世紀50 年代末,Lunhn H P首次提出將詞頻統(tǒng)計思想用于文本自動分類的研究。20 世紀90 年代以后,研究者將機器學(xué)習(xí)算法用于文本自動分類,文本分類有監(jiān)督學(xué)習(xí)的過程,經(jīng)歷了“輸入文本—預(yù)處理—特征表示—選擇分類算法—輸出結(jié)果”5個階段,其過程如圖1所示。文本分類是一個識別文本模式特征的過程,實驗樣本包括訓(xùn)練集和測試集兩部分,通過訓(xùn)練過程為分類器提供測試,進而在分類過程中,使用學(xué)習(xí)過程中得到的分類器對測試集進行分類,并輸出測試文本所屬類別[3-4]。本文應(yīng)用的分類算法為樸素貝葉斯、邏輯回歸、支持向量機、K近鄰算法。
圖1 文本分類過程
(1)樸素貝葉斯算法(Naive Bayes)。樸素貝葉斯方法由Maron和Kuhns在1960年提出,因其具有簡單、快速和高準確率等特點被廣泛應(yīng)用于分類任務(wù)中[4-5]。
(2)邏輯回歸(Logistic Regression)。邏輯回歸主要用于估計某種事物的可能性,如用戶購買某商品的可能性,病人患有某種疾病的可能性等,因此是應(yīng)用較為廣泛的機器學(xué)習(xí)方法。
(3)支持向量機(SVM)。SVM是Vapnik于20世紀90年代提出的一種基于統(tǒng)計學(xué)習(xí)理論的分類算法。SVM算法是建立在統(tǒng)計學(xué)習(xí)理論VC維理論和結(jié)構(gòu)風(fēng)險最小化原理基礎(chǔ)上的一種新機器學(xué)習(xí)方法,在解決小樣本、非線性和高維模式識別問題中性能較優(yōu),且泛化能力較好,在很大程度上克服了“維數(shù)災(zāi)難”和“過學(xué)習(xí)”等問題,因此,SVM被廣泛應(yīng)用到文本分類、圖像分類與識別等眾多領(lǐng)域中[5-6]。
(4)K近鄰算法(KNN)。K近鄰算法核心思想即是給定一個訓(xùn)練數(shù)據(jù)集,對新的輸入實例,在訓(xùn)練數(shù)據(jù)集中找到與該實例最鄰近的K個實例,這K個實例中的多數(shù)屬于某個類,就把該輸入實例分類到這個類中[7]。
綜合現(xiàn)有研究文獻來看,對于文本分類普遍認同的是:在已經(jīng)進行了定義的某個分類集合下,將集合內(nèi)沒有被識別到屬于哪種類別的文本,根據(jù)一定的規(guī)則將這部分文本內(nèi)容自動識別到一個或幾個類別的過程中。隨著信息技術(shù)的發(fā)展,對于文本分類方法的研究也在不斷深入,不斷發(fā)展。目前文本分類也得到了廣泛應(yīng)用,在Web文檔自動分類、數(shù)字圖書館等諸多領(lǐng)域取得了很多應(yīng)用成果。
集成學(xué)習(xí)可以提高分類器的泛化性能,是機器學(xué)習(xí)領(lǐng)域的一個重要方向,集成學(xué)習(xí)能利用子學(xué)習(xí)器的差異性顯著提高學(xué)習(xí)系統(tǒng)的泛化能力,能實現(xiàn)弱學(xué)習(xí)器向強學(xué)習(xí)器的轉(zhuǎn)化,本文使用的集成學(xué)習(xí)算法為AdaBoost、Bagging、Random Subspace。
(1)AdaBoost算法。Boosting算法是用來提高學(xué)習(xí)算法的準確度,通過構(gòu)造一個預(yù)測函數(shù)序列,以一定方式將它們組合成一個預(yù)測函數(shù),最終將弱學(xué)習(xí)算法提升為強學(xué)習(xí)算法[6][8]。
(2)Bagging算法。Bagging算法是由Breiman提出的一種集成學(xué)習(xí)方法,通過可重復(fù)取樣得到不同的數(shù)據(jù)子集,使得在不同數(shù)據(jù)子集上訓(xùn)練得到的個體學(xué)習(xí)器具有較高的泛化性[7][9]。
(3)隨機子空間(Random Subspace)。隨機子空間由學(xué)者Ho在1998年提出,是一種有效的基于特征劃分的集成學(xué)習(xí)方法[8][10]。
綜上所述,集成學(xué)習(xí)是多個機器學(xué)習(xí)模型輸出組合在一起的過程,這種方式能夠使學(xué)習(xí)系統(tǒng)的泛化能力得到顯著提升,通常比使用單個模型更具優(yōu)勢。但是它也存在一定的弊端,隨著學(xué)習(xí)機數(shù)量的增加,會使集成學(xué)習(xí)機的預(yù)測速度明顯變慢,它運行所需的存儲空間也隨之加大。在數(shù)字圖書館領(lǐng)域,不僅對查全率有要求,對現(xiàn)在的個性化信息服務(wù)來說,數(shù)字圖書館服務(wù)與文本挖掘聯(lián)系緊密,更要求查準率,但是查詢速度又不能過慢,以免影響用戶體驗。因此,本文對文本挖掘目前的算法進行集成實驗,試圖探索一種在圖書館服務(wù)中比較適用的分類優(yōu)化算法。
圖2為本文的實驗過程圖,首先構(gòu)建涵蓋多個主題的實驗文本,利用LDA模型進行文本降維和特征提取,獲取文檔—主題概率矩陣,每一行表示一篇測試樣例,每一列表示提取的某個主題,數(shù)值表示主題對一篇測試樣例的支持度。抽取文本集中10%的數(shù)據(jù)作為訓(xùn)練集,并對訓(xùn)練集中的文本進行類別標注,進而選擇分類器,包括4種傳統(tǒng)的分類算法和3種集成學(xué)習(xí)算法。首先以已標注的訓(xùn)練集為基礎(chǔ),通過分類器找出文本類別與文本特征之間的關(guān)系;然后利用這個關(guān)系模型對測試集進行類別的判斷;接著在使用集成學(xué)習(xí)算法的過程中,先選擇一種集成學(xué)習(xí)算法,進而分別選擇4種傳統(tǒng)分類算法置于其中進行訓(xùn)練;最后根據(jù)平均F值比較各分類器的性能,在分析利用LDA模型進行文本降維、主題提取后,引入集成學(xué)習(xí)算法判斷是否能提高分類的準確率,從而得到最優(yōu)的分類算法。
圖2 文本分類實驗過程圖
本文的實驗數(shù)據(jù)來源于Web of Science的科學(xué)引文(SCI-EXPANDED)數(shù)據(jù)庫,選取了6個學(xué)科進行分析,分別為:圖書情報學(xué)、計算機科學(xué)、生命科學(xué)、市場營銷學(xué)、材料學(xué)、考古學(xué)。選擇該6個學(xué)科類別是因為這6個類別的實驗數(shù)據(jù)較容易獲取,且多屬于交叉學(xué)科,分析價值高于純粹的學(xué)科,如圖書情報學(xué)常囊括有圖書館學(xué)、情報學(xué)和檔案學(xué)三個方向。在6個學(xué)科類別中選擇一個研究主題進行檢索,每個主題中選擇被引頻次最高的100篇文獻作為實驗數(shù)據(jù)集,具體檢索的主題如表1所示,分別導(dǎo)出文獻的題錄數(shù)據(jù)[11]。
表1 實驗數(shù)據(jù)匯總表
抽取文獻的題目和摘要,將每篇文獻放于一個文本文檔中,對每篇文獻按主題進行標號,便于在后期測試集抽取時進行類別標記,以更好地實現(xiàn)數(shù)據(jù)預(yù)處理的數(shù)據(jù)清洗步驟,例如,去除數(shù)字、停用詞等,使語料庫更純凈,利用topicmodels包實現(xiàn)LDA的主題建模,獲取文檔—主題矩陣[10-11]。根據(jù)文獻主題分類,在每個主題下隨機抽取10篇文獻,6個主題共60篇文獻作為訓(xùn)練集,剩下的540篇作為測試集,利用Weka 3.8內(nèi)置的分類算法進行性能測試。Weka作為一個公開的數(shù)據(jù)挖掘工作平臺,集合了大量機器學(xué)習(xí)算法,能夠?qū)?shù)據(jù)進行預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則以及在新的交互式界面上可視化[12],并通過選取不同的分類算法和集成學(xué)習(xí)算法,輸出平均F值判斷分類器性能。
在利用LDA模型進行文本降維和特征提取過程中,主題抽取的質(zhì)量直接影響主題演化的效果,應(yīng)用LDA的最大問題是無法確定最優(yōu)主題數(shù)目,而主題數(shù)目的確定對于文獻主題抽取至關(guān)重要[13]。因此,在實驗過程中,應(yīng)當通過選取不同的主題數(shù)目進行主題建模,并根據(jù)主題間平均余弦相似度和主題內(nèi)容進行判斷,當主題數(shù)目為6時,文獻集中隱含的主題能全部顯現(xiàn)出來,此時主題模型結(jié)構(gòu)最優(yōu)[14]。根據(jù)每個主題下相關(guān)主題詞繪制的詞云圖,如圖3所示,其中每個主題包含了20個與該主題最相關(guān)的詞,每個詞的權(quán)重大小決定了其在圖中的顯示比例,詞的權(quán)重越大,在圖中越凸顯[15]。此外,我們可以利用Model Selection找到Perplexity又好,topic個數(shù)又少的topic數(shù)量,可以畫出Perplexity vs num of topics曲線,找到滿足要求的點來確定LDA的最優(yōu)主題數(shù)[16]。
圖3 LDA抽取主題詞云圖
將4種傳統(tǒng)分類算法作為基分類器,利用3種集成學(xué)習(xí)算法進行訓(xùn)練,通過測試訓(xùn)練集中60篇文獻的文本特征和文本類別之間的關(guān)系,對測試集中的540篇文獻進行分類,并輸出平均F值,確定分類器性能[17],統(tǒng)計結(jié)果如表2所示;對每種分類算法的平均F值利用Excel繪制折線圖,如圖4所示。
表2 分類算法平均F值統(tǒng)計表
分析表2發(fā)現(xiàn),從總體上看,針對單個分類算法,通過三種集成學(xué)習(xí)算法進行訓(xùn)練,其分類準確率高于單個分類器。其中樸素貝葉斯算法的提升較為明顯,利用AdaBoost、Bagging、Random Subspace進行集成,其準確率分別提高了 9%、 12%、6%,分類性能表現(xiàn)較好,分類效率穩(wěn)定;而對于邏輯回歸算法,集成學(xué)習(xí)算法對其性能提升不明顯,只有AdaBoost集成后,其準確率提高了6%。同時,在利用邏輯回歸,以及集成后進行訓(xùn)練后,其平均F值均低于0.7,這是由于邏輯回歸在處理兩分類問題時,性能較好,但面對多類特征的分類情況,其性能較差。針對支持向量機,利用AdaBoost、Bagging、Random Subspace進行集成,其準確率分別提高了10%、 5%、 11%,雖然經(jīng)典的支持向量機算法只給出了二類分類的算法,在處理多分類問題時存在困難,但是通過集成學(xué)習(xí),對多個二類支持向量機進行組合,其分類準確度明顯提高[18]。對于K近鄰算法,利用集成學(xué)習(xí)進行訓(xùn)練并不能有效提高分類器性能[19],對KNN而言,“同質(zhì)集成”對其分類性能提升不明顯,需要考慮通過“異質(zhì)集成”的方式,集成多個不同分類器,以提升分類算法準確度[20]。分類效果在不同學(xué)科中也存在差異,當學(xué)科的交叉性越強時,分類效果越不顯著。交叉學(xué)科其實沒必要對分類進行精確定義,只需要界定分類器大類即可。
分析圖4發(fā)現(xiàn),樸素貝葉斯與集成后的樸素貝葉斯分類性能最優(yōu),而邏輯回歸、支持向量機和K近鄰,雖然通過集成學(xué)習(xí)算法訓(xùn)練,提升了分類性能,但只能實現(xiàn)“局部最優(yōu)”,有進一步提升的空間。因此,利用LDA模型進行文本分類與特征提取,將樸素貝葉斯算法作為基分類器,并利用Bagging集成算法進行訓(xùn)練,能獲得最優(yōu)的分類效果,其平均F值高達0.91、0.90,實現(xiàn)了“全局最優(yōu)”,驗證了利用主題模型進行文本降維和特征提取的有效性和可行性[21]。
圖4 分類算法平均F值對比圖
本文基于樸素貝葉斯、邏輯回歸、支持向量機、K近鄰算法4種傳統(tǒng)分類算法以及AdaBoost、Bagging、Random Subspace 3種集成學(xué)習(xí)算法,從文本分類角度,首先利用LDA模型進行文本降維與特征提取,進而使用Weka,通過構(gòu)建多個分類器,對一個多學(xué)科文獻特征集進行分類,并以平均F值為判定標準,對比了不同分類器的分類性能,具體研究內(nèi)容總結(jié)如下。
(1)將樸素貝葉斯、邏輯回歸、支持向量機、K近鄰算法作為基分類器,并利用 AdaBoost、Bagging、Random Subspace 3種不同的集成學(xué)習(xí)算法進行訓(xùn)練,與使用單一分類器相比,集成后的分類器性能明顯提升。
(2)利用LDA模型進行文本降維與特征提取,通過構(gòu)建訓(xùn)練集與測試集,將樸素貝葉斯算法作為基分類器。
針對在表示文本分類時維度過大,要兼顧檢索準確性和檢索速度的需求, 本文利用LDA模型進行文本降維與特征提取,通過構(gòu)建訓(xùn)練集與測試集,測試不同集成情況的效果對比,能夠使我們了解不同場景下每類LDA模型的優(yōu)劣,本方法易于實現(xiàn)、通用性較強。例如,在數(shù)字圖書館領(lǐng)域, 面對海量的圖書資源,用戶如何快速找到自己感興趣的內(nèi)容,圖書資源如何得到充分的利用,這些問題都涉及到分類的精度和效度問題,可以參考本文的研究結(jié)果。在面對不同的科研問題時可以幫助我們選擇合適的文本分類算法,使分類器達到最佳性能,更好地執(zhí)行分類工作,提高分類精度和效度。
本文的研究也便于集成到現(xiàn)有的個性化圖書推薦系統(tǒng)的研究中,為構(gòu)建基于文本內(nèi)容分類的個性化推薦服務(wù)提供新的思路。在提高查全率、查準率的基礎(chǔ)上,兼顧到系統(tǒng)的性能,盡可能地給用戶提供更好的使用體驗。 后續(xù)的工作可以考慮結(jié)合利用社交網(wǎng)絡(luò)的社會化標簽, 引導(dǎo)專家或?qū)W生對新書進行推薦、評價,作為新書推薦的有益補充。