駱 聰,王 帥
(江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083)
隨著互聯(lián)網(wǎng)的持續(xù)發(fā)展,網(wǎng)頁(yè)數(shù)量獲得了急劇增長(zhǎng),雜亂無(wú)章的網(wǎng)頁(yè)不利于人們方便高效地查找感興趣的內(nèi)容。為了提高信息檢索的精度和效率,準(zhǔn)確的網(wǎng)頁(yè)分類技術(shù)就顯得尤為重要。
傳統(tǒng)的網(wǎng)頁(yè)分類技術(shù)主要使用機(jī)器學(xué)習(xí)方法進(jìn)行特征選擇和分類。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中一個(gè)全新的領(lǐng)域,本質(zhì)是一種多層的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,通過(guò)逐層初始化的方法來(lái)達(dá)到極高的準(zhǔn)確率[1]。隨著深度學(xué)習(xí)的發(fā)展,有必要借助深度學(xué)習(xí)理論來(lái)解決傳統(tǒng)的特征選擇方法容易導(dǎo)致特征項(xiàng)不明確、分類精度下降的問(wèn)題[2]。
此外,傳統(tǒng)的網(wǎng)頁(yè)分類技術(shù)大都沒(méi)有區(qū)分詞性,而是將所有詞語(yǔ)用于分類,容易導(dǎo)致分類效率不高,并且分類準(zhǔn)確率也不夠理想。所以有必要利用詞性標(biāo)注技術(shù),在剔除部分對(duì)網(wǎng)頁(yè)分類貢獻(xiàn)較小的詞語(yǔ)的同時(shí),也為區(qū)分能力高的名詞賦予較高的權(quán)重,以此來(lái)提高分類的效率和準(zhǔn)確率。
文中提出使用深度學(xué)習(xí)和詞性標(biāo)注等技術(shù)進(jìn)行網(wǎng)頁(yè)分類。首先簡(jiǎn)要介紹了基于深度學(xué)習(xí)的文本分類和網(wǎng)頁(yè)分類的研究現(xiàn)狀,然后簡(jiǎn)要闡述了深度學(xué)習(xí)技術(shù),提出了結(jié)合深度學(xué)習(xí)和詞性標(biāo)注等技術(shù)的網(wǎng)頁(yè)分類算法,并通過(guò)實(shí)驗(yàn)進(jìn)行相關(guān)驗(yàn)證。
基于網(wǎng)頁(yè)內(nèi)容分析的網(wǎng)頁(yè)分類技術(shù)主要參考文本分類技術(shù),采用信息增益、互信息等進(jìn)行特征選取,并使用kNN、樸素貝葉斯和支持向量機(jī)[3]等進(jìn)行分類。隨著深度學(xué)習(xí)的發(fā)展,深層次地選取特征的方法正在逐漸被應(yīng)用到文本分類和網(wǎng)頁(yè)分類中。
陳芊希等[4]根據(jù)網(wǎng)頁(yè)的半結(jié)構(gòu)化特征提取網(wǎng)頁(yè)內(nèi)容,并提出使用深度學(xué)習(xí)中的棧式自動(dòng)編碼器(stacked auto encoder)實(shí)現(xiàn)網(wǎng)頁(yè)分類。實(shí)驗(yàn)表明,對(duì)比傳統(tǒng)的TFIDF算法,使用該深度學(xué)習(xí)算法具有更好的分類效果。江國(guó)薦等[5]針對(duì)網(wǎng)頁(yè)文本的稀疏性,采用稀疏自動(dòng)編碼器(sparse auto encoder)進(jìn)行特征提取,同時(shí)為了降低訓(xùn)練時(shí)間,提出一種基于學(xué)習(xí)率自動(dòng)調(diào)整的LBP神經(jīng)網(wǎng)絡(luò)。基于SAE-LBP的網(wǎng)頁(yè)分類器相比傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)在分類正確率和時(shí)間性能上都有所提升。J Song等[6]提出了一種新的基于深度學(xué)習(xí)結(jié)構(gòu)和半監(jiān)督深度信念網(wǎng)絡(luò)的文本分類算法,該算法首先利用TFIDF-ICF提取原始特征,然后構(gòu)造基于DBN的分類模型,通過(guò)選擇合適的隱層層數(shù)和隱層單元,其性能略優(yōu)于SVM。
從上述研究可以得知,深度學(xué)習(xí)中的各種深度神經(jīng)網(wǎng)絡(luò)模型已經(jīng)被逐漸應(yīng)用到文本分類和網(wǎng)頁(yè)分類中,并且在分類準(zhǔn)確率和效率上都有較好的表現(xiàn)。
深度學(xué)習(xí)(deep learning)的概念由Hinton等于2006年提出,是機(jī)器學(xué)習(xí)一個(gè)新的領(lǐng)域。作為一種基于無(wú)監(jiān)督特征學(xué)習(xí)和特征層次結(jié)構(gòu)的學(xué)習(xí)方法[7],深度學(xué)習(xí)通過(guò)模擬人腦進(jìn)行分析學(xué)習(xí),解決了很多復(fù)雜的模式識(shí)別難題,在語(yǔ)音識(shí)別和圖像識(shí)別等領(lǐng)域獲得了巨大的成功[8],使得人工智能的相關(guān)技術(shù)取得了很大進(jìn)步。
但目前深度學(xué)習(xí)在文本分類特別是網(wǎng)頁(yè)文本分類領(lǐng)域的研究較少[9]。采用傳統(tǒng)的文本分類算法,當(dāng)考慮足夠的特征時(shí),容易發(fā)生維數(shù)災(zāi)難,導(dǎo)致模型難以訓(xùn)練或者訓(xùn)練時(shí)間較大[10]。利用深度學(xué)習(xí)中的深度信念網(wǎng)絡(luò)模型從高維的原始特征中抽取低維的可區(qū)分的特征。
經(jīng)典的深度信念網(wǎng)絡(luò)是由多個(gè)受限玻爾茲曼機(jī)(RBM)和一層BP網(wǎng)絡(luò)組成的深層神經(jīng)網(wǎng)絡(luò)。其中RBM的基本構(gòu)成如圖1所示,它含有一個(gè)隱藏層和一個(gè)可視層,并且層內(nèi)無(wú)連接,即每個(gè)隱藏節(jié)點(diǎn)只與m個(gè)可視節(jié)點(diǎn)相關(guān),每個(gè)可視節(jié)點(diǎn)只與n個(gè)隱藏節(jié)點(diǎn)相關(guān)。RBM含有3個(gè)參數(shù),其中b=(b1,b2,…,bn)為可視層節(jié)點(diǎn)的偏移量,c=(c1,c2,…,cm)為隱藏層節(jié)點(diǎn)的偏移量,Wn*m表示可視層與隱藏層之間的權(quán)重矩陣。這些參數(shù)決定了如何將一個(gè)n維的樣本編碼成一個(gè)m維的樣本。
圖1 RBM的基本構(gòu)成
2006年Hinton提出了DBN的一種高效學(xué)習(xí)算法,在該算法中DBN被視為由若干個(gè)RBM堆疊而成,DBN的訓(xùn)練被簡(jiǎn)化為對(duì)多個(gè)RBM的訓(xùn)練,即通過(guò)由低到高逐層訓(xùn)練這些RBM來(lái)完成對(duì)DBN的訓(xùn)練。具體訓(xùn)練過(guò)程為:采用貪婪法逐層訓(xùn)練每一層的RBM,前一層的RBM訓(xùn)練完成后,將其結(jié)果作為下一層RBM的輸入特征向量來(lái)訓(xùn)練該層RBM,以此類推訓(xùn)練完各層的RBM,從而構(gòu)建完整的DBN。
如果訓(xùn)練集中的數(shù)據(jù)有標(biāo)簽,那么在頂層RBM的可視層中除了可視節(jié)點(diǎn)外還要含有代表分類標(biāo)簽的節(jié)點(diǎn)。在DBN的最后一層設(shè)置BP網(wǎng)絡(luò),將頂層RBM的輸出特征向量作為它的輸入特征向量,有監(jiān)督地微調(diào)分類器,提高DBN網(wǎng)絡(luò)的分類性能。
這里只對(duì)DBN網(wǎng)絡(luò)的基本構(gòu)成和訓(xùn)練過(guò)程做一個(gè)簡(jiǎn)要介紹,詳細(xì)介紹見(jiàn)文獻(xiàn)[11-12]。
如圖2所示,使用機(jī)器學(xué)習(xí)的網(wǎng)頁(yè)分類方法大致可以分為網(wǎng)頁(yè)預(yù)處理、分詞、特征選取及特征表示、特征分類等幾個(gè)步驟[13]。
圖2 網(wǎng)頁(yè)分類基本流程
由于網(wǎng)頁(yè)文本是一種半結(jié)構(gòu)化文本,即網(wǎng)頁(yè)文本除了純文本之外,還包含部分結(jié)構(gòu)信息。使用基于網(wǎng)頁(yè)內(nèi)容分析的算法進(jìn)行網(wǎng)頁(yè)分類時(shí),需要對(duì)網(wǎng)頁(yè)進(jìn)行如下預(yù)處理。
在網(wǎng)頁(yè)文本內(nèi)部,位于不同標(biāo)簽中的詞語(yǔ)具有不同的重要性,應(yīng)該賦予不同的權(quán)重。而在網(wǎng)頁(yè)文本之間的超級(jí)鏈接,也在一定程度上反映了網(wǎng)頁(yè)所屬的類別。文中通過(guò)提取
表1 標(biāo)簽的具體含義及權(quán)重設(shè)置
這種基于權(quán)重設(shè)置的網(wǎng)頁(yè)文本表示,可以體現(xiàn)出網(wǎng)頁(yè)HTML標(biāo)簽的作用,從而有效地提升網(wǎng)頁(yè)分類的準(zhǔn)確率。
對(duì)于中文網(wǎng)頁(yè),由于不像英文一樣存在天然的分隔符,所以有必要進(jìn)行分詞和去停用詞等處理。網(wǎng)頁(yè)文本屬于短文本,如果將分詞后的結(jié)果全部用于文本表示,那么特征向量將是一個(gè)稀疏向量。文本中句子一般是由各種詞性的詞匯構(gòu)成,而其中有實(shí)際區(qū)分能力的一般是名詞和動(dòng)詞,所以可以使用詞性標(biāo)注技術(shù)僅選取符合條件的詞語(yǔ),以此來(lái)對(duì)特征集進(jìn)行初步的降維。此外相對(duì)動(dòng)詞而言,名詞的區(qū)分能力更強(qiáng),所以有必要為其賦予更高的權(quán)重。通過(guò)這種方法提取特征詞還可以省去去停用詞這一步驟,并且在剔除部分對(duì)網(wǎng)頁(yè)分類貢獻(xiàn)較小的詞語(yǔ)的同時(shí),也為區(qū)分能力較高的名詞賦予更高的權(quán)重,這對(duì)于改善網(wǎng)頁(yè)分類的效率和準(zhǔn)確性都有一定的幫助。
盡管只保留了名詞和動(dòng)詞,但是特征向量的維度仍很大,所以還有必要進(jìn)行進(jìn)一步的降維。TF-IDF(term frequency-inverse document frequency)是一種統(tǒng)計(jì)方法,用以評(píng)估一字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中的其中一份文件的重要程度,其計(jì)算方式如下所示:
(1)
其中,ni,j表示特征詞ti在文檔fj中出現(xiàn)的次數(shù);|D|表示所有文檔的數(shù)量;|Dti|表示包含特征詞ti的文檔的數(shù)量。
通過(guò)計(jì)算各特征詞的TF-IDF值,并選擇TF-IDF值總和排名前4 000的特征詞用于網(wǎng)頁(yè)的特征向量的表示。
完成上述處理后,就可以使用深度信念網(wǎng)絡(luò)進(jìn)行深層次的特征提取和分類。首先進(jìn)行無(wú)監(jiān)督的預(yù)訓(xùn)練,即采用貪婪法逐層訓(xùn)練每一層的RBM,從而構(gòu)建完整的DBN。然后在DBN的最后一層設(shè)置BP網(wǎng)絡(luò),將頂層RBM的輸出特征向量作為它的輸入特征向量,有監(jiān)督地微調(diào)分類器。構(gòu)建好該深度網(wǎng)絡(luò)模型后,就可以對(duì)需要測(cè)試的網(wǎng)頁(yè)進(jìn)行分類。
由于目前網(wǎng)上公開的用于中文網(wǎng)頁(yè)分類的數(shù)據(jù)集較少,所以實(shí)驗(yàn)數(shù)據(jù)采用人工從新浪網(wǎng)上收集財(cái)經(jīng)、教育、體育和游戲這4個(gè)主題的網(wǎng)頁(yè)(各480個(gè)),其中訓(xùn)練集的數(shù)量為360,測(cè)試集的數(shù)量為120。新浪網(wǎng)是新浪公司主辦的新聞門戶網(wǎng)站,其中的網(wǎng)頁(yè)經(jīng)人工分類劃分到各個(gè)主題下,具有一定的權(quán)威性。
jsoup是一款Java的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。文中通過(guò)收集上述網(wǎng)頁(yè)的URL,然后利用jsoup進(jìn)行HTML解析,提取
NLPIR是目前世界上最好的漢語(yǔ)詞法分析器,該系統(tǒng)支持C、C++和Java等主流開發(fā)語(yǔ)言。文中利用NLPIR漢語(yǔ)分詞系統(tǒng)的中文分詞和詞性標(biāo)注等功能,篩選出待分類網(wǎng)頁(yè)文本中的名詞和動(dòng)詞,并且為名詞賦予更高的權(quán)重。
對(duì)于上述處理得到的名詞和動(dòng)詞,使用Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn中的TfidfTransformer()函數(shù)計(jì)算它們的TF-IDF值,并且選擇TF-IDF值總和排名在前4 000的特征詞用于網(wǎng)頁(yè)的特征向量表示。
MATLAB的深度學(xué)習(xí)工具箱DeepLearn Toolbox包含稀疏自動(dòng)編碼器(SAE)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network)和深度信念網(wǎng)絡(luò)(DBN)等常見(jiàn)深度網(wǎng)絡(luò)結(jié)構(gòu)。文中使用該工具箱中的DBN網(wǎng)絡(luò)實(shí)現(xiàn)特征選取和分類。
使用查準(zhǔn)率(precision)、查全率(recall)和F1值(F1score)對(duì)實(shí)驗(yàn)中網(wǎng)頁(yè)分類的結(jié)果進(jìn)行評(píng)價(jià),3個(gè)評(píng)價(jià)標(biāo)準(zhǔn)的計(jì)算方法分別如下:
(2)
(3)
(4)
實(shí)驗(yàn)中采用kNN[14]、Naive Bayes[15]和SVM這三種傳統(tǒng)的分類算法作為對(duì)比,其中kNN由Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn中的算法實(shí)現(xiàn),Naive Bayes由Java編程實(shí)現(xiàn),SVM采用LIBSVM工具箱實(shí)現(xiàn)。DBN網(wǎng)絡(luò)共7層,其中每一層的節(jié)點(diǎn)數(shù)分別為4 000-2 000-1 000-500-250-125-4,迭代1 000次。4種算法的網(wǎng)頁(yè)分類結(jié)果如表2所示。
表2 4種算法的網(wǎng)頁(yè)分類結(jié)果
將4種算法網(wǎng)頁(yè)分類結(jié)果的F1值的平均值繪成圖3所示的柱形圖,可以發(fā)現(xiàn)DBN和SVM網(wǎng)頁(yè)分類的準(zhǔn)確率相當(dāng),要明顯優(yōu)于kNN和Naive Bayes這兩種算法。并且可以預(yù)見(jiàn),當(dāng)數(shù)據(jù)集增大時(shí),DBN的準(zhǔn)確率將優(yōu)于SVM。
圖3 4種算法的網(wǎng)頁(yè)分類結(jié)果F1值對(duì)比
為對(duì)比使用詞性標(biāo)注前后的網(wǎng)頁(yè)分類結(jié)果,使用詞性標(biāo)注技術(shù)僅提取名詞和動(dòng)詞,并將名詞的權(quán)重設(shè)為1.5,然后使用DBN進(jìn)行特征提取和分類。為避免實(shí)驗(yàn)的偶然性,將實(shí)驗(yàn)數(shù)據(jù)集中的每一類都隨機(jī)分為4份,其中1份輪流充當(dāng)測(cè)試集,另外3份作為訓(xùn)練集,改進(jìn)前后網(wǎng)頁(yè)分類結(jié)果的F1值如表3所示。
表3 使用詞性標(biāo)注前后網(wǎng)頁(yè)分類結(jié)果F1值對(duì)比
通過(guò)對(duì)4次實(shí)驗(yàn)結(jié)果求平均值可知,使用詞性標(biāo)注后網(wǎng)頁(yè)分類結(jié)果的F1值的平均值為0.935 4,比改進(jìn)前的0.905 1增加了3.35%。
上述實(shí)驗(yàn)結(jié)果證明了使用DBN網(wǎng)絡(luò)進(jìn)行特征提取和分類具有較高的準(zhǔn)確性,并且使用詞性標(biāo)注技術(shù)后,網(wǎng)頁(yè)分類的準(zhǔn)確性又有一定的提升。
在考慮網(wǎng)頁(yè)標(biāo)簽權(quán)重的基礎(chǔ)上提取網(wǎng)頁(yè)內(nèi)容,然后結(jié)合詞性標(biāo)注技術(shù)為不同詞性的詞語(yǔ)賦予不同的權(quán)重,最后利用深度置信網(wǎng)絡(luò)進(jìn)行特征提取和特征分類。實(shí)驗(yàn)結(jié)果表明,提出的網(wǎng)頁(yè)分類算法具有較高的準(zhǔn)確性。
盡管如此,該算法仍存在一定不足和較大的改善空間。首先網(wǎng)頁(yè)標(biāo)簽權(quán)重的設(shè)定比較隨意,在未來(lái)的研究中,將采用遺傳算法優(yōu)化標(biāo)簽權(quán)重的設(shè)定。此外為提高網(wǎng)頁(yè)分類的準(zhǔn)確性,將嘗試使用混合深度網(wǎng)絡(luò)模型進(jìn)行網(wǎng)頁(yè)分類。