駱 聰,王 帥
(江南計算技術研究所,江蘇 無錫 214083)
隨著互聯(lián)網(wǎng)的持續(xù)發(fā)展,網(wǎng)頁數(shù)量獲得了急劇增長,雜亂無章的網(wǎng)頁不利于人們方便高效地查找感興趣的內容。為了提高信息檢索的精度和效率,準確的網(wǎng)頁分類技術就顯得尤為重要。
傳統(tǒng)的網(wǎng)頁分類技術主要使用機器學習方法進行特征選擇和分類。深度學習是機器學習中一個全新的領域,本質是一種多層的神經網(wǎng)絡學習算法,通過逐層初始化的方法來達到極高的準確率[1]。隨著深度學習的發(fā)展,有必要借助深度學習理論來解決傳統(tǒng)的特征選擇方法容易導致特征項不明確、分類精度下降的問題[2]。
此外,傳統(tǒng)的網(wǎng)頁分類技術大都沒有區(qū)分詞性,而是將所有詞語用于分類,容易導致分類效率不高,并且分類準確率也不夠理想。所以有必要利用詞性標注技術,在剔除部分對網(wǎng)頁分類貢獻較小的詞語的同時,也為區(qū)分能力高的名詞賦予較高的權重,以此來提高分類的效率和準確率。
文中提出使用深度學習和詞性標注等技術進行網(wǎng)頁分類。首先簡要介紹了基于深度學習的文本分類和網(wǎng)頁分類的研究現(xiàn)狀,然后簡要闡述了深度學習技術,提出了結合深度學習和詞性標注等技術的網(wǎng)頁分類算法,并通過實驗進行相關驗證。
基于網(wǎng)頁內容分析的網(wǎng)頁分類技術主要參考文本分類技術,采用信息增益、互信息等進行特征選取,并使用kNN、樸素貝葉斯和支持向量機[3]等進行分類。隨著深度學習的發(fā)展,深層次地選取特征的方法正在逐漸被應用到文本分類和網(wǎng)頁分類中。
陳芊希等[4]根據(jù)網(wǎng)頁的半結構化特征提取網(wǎng)頁內容,并提出使用深度學習中的棧式自動編碼器(stacked auto encoder)實現(xiàn)網(wǎng)頁分類。實驗表明,對比傳統(tǒng)的TFIDF算法,使用該深度學習算法具有更好的分類效果。江國薦等[5]針對網(wǎng)頁文本的稀疏性,采用稀疏自動編碼器(sparse auto encoder)進行特征提取,同時為了降低訓練時間,提出一種基于學習率自動調整的LBP神經網(wǎng)絡。基于SAE-LBP的網(wǎng)頁分類器相比傳統(tǒng)的BP神經網(wǎng)絡在分類正確率和時間性能上都有所提升。J Song等[6]提出了一種新的基于深度學習結構和半監(jiān)督深度信念網(wǎng)絡的文本分類算法,該算法首先利用TFIDF-ICF提取原始特征,然后構造基于DBN的分類模型,通過選擇合適的隱層層數(shù)和隱層單元,其性能略優(yōu)于SVM。
從上述研究可以得知,深度學習中的各種深度神經網(wǎng)絡模型已經被逐漸應用到文本分類和網(wǎng)頁分類中,并且在分類準確率和效率上都有較好的表現(xiàn)。
深度學習(deep learning)的概念由Hinton等于2006年提出,是機器學習一個新的領域。作為一種基于無監(jiān)督特征學習和特征層次結構的學習方法[7],深度學習通過模擬人腦進行分析學習,解決了很多復雜的模式識別難題,在語音識別和圖像識別等領域獲得了巨大的成功[8],使得人工智能的相關技術取得了很大進步。
但目前深度學習在文本分類特別是網(wǎng)頁文本分類領域的研究較少[9]。采用傳統(tǒng)的文本分類算法,當考慮足夠的特征時,容易發(fā)生維數(shù)災難,導致模型難以訓練或者訓練時間較大[10]。利用深度學習中的深度信念網(wǎng)絡模型從高維的原始特征中抽取低維的可區(qū)分的特征。
經典的深度信念網(wǎng)絡是由多個受限玻爾茲曼機(RBM)和一層BP網(wǎng)絡組成的深層神經網(wǎng)絡。其中RBM的基本構成如圖1所示,它含有一個隱藏層和一個可視層,并且層內無連接,即每個隱藏節(jié)點只與m個可視節(jié)點相關,每個可視節(jié)點只與n個隱藏節(jié)點相關。RBM含有3個參數(shù),其中b=(b1,b2,…,bn)為可視層節(jié)點的偏移量,c=(c1,c2,…,cm)為隱藏層節(jié)點的偏移量,Wn*m表示可視層與隱藏層之間的權重矩陣。這些參數(shù)決定了如何將一個n維的樣本編碼成一個m維的樣本。

圖1 RBM的基本構成
2006年Hinton提出了DBN的一種高效學習算法,在該算法中DBN被視為由若干個RBM堆疊而成,DBN的訓練被簡化為對多個RBM的訓練,即通過由低到高逐層訓練這些RBM來完成對DBN的訓練。具體訓練過程為:采用貪婪法逐層訓練每一層的RBM,前一層的RBM訓練完成后,將其結果作為下一層RBM的輸入特征向量來訓練該層RBM,以此類推訓練完各層的RBM,從而構建完整的DBN。
如果訓練集中的數(shù)據(jù)有標簽,那么在頂層RBM的可視層中除了可視節(jié)點外還要含有代表分類標簽的節(jié)點。在DBN的最后一層設置BP網(wǎng)絡,將頂層RBM的輸出特征向量作為它的輸入特征向量,有監(jiān)督地微調分類器,提高DBN網(wǎng)絡的分類性能。
這里只對DBN網(wǎng)絡的基本構成和訓練過程做一個簡要介紹,詳細介紹見文獻[11-12]。
如圖2所示,使用機器學習的網(wǎng)頁分類方法大致可以分為網(wǎng)頁預處理、分詞、特征選取及特征表示、特征分類等幾個步驟[13]。

圖2 網(wǎng)頁分類基本流程
由于網(wǎng)頁文本是一種半結構化文本,即網(wǎng)頁文本除了純文本之外,還包含部分結構信息。使用基于網(wǎng)頁內容分析的算法進行網(wǎng)頁分類時,需要對網(wǎng)頁進行如下預處理。
在網(wǎng)頁文本內部,位于不同標簽中的詞語具有不同的重要性,應該賦予不同的權重。而在網(wǎng)頁文本之間的超級鏈接,也在一定程度上反映了網(wǎng)頁所屬的類別。文中通過提取

表1 標簽的具體含義及權重設置
這種基于權重設置的網(wǎng)頁文本表示,可以體現(xiàn)出網(wǎng)頁HTML標簽的作用,從而有效地提升網(wǎng)頁分類的準確率。
對于中文網(wǎng)頁,由于不像英文一樣存在天然的分隔符,所以有必要進行分詞和去停用詞等處理。網(wǎng)頁文本屬于短文本,如果將分詞后的結果全部用于文本表示,那么特征向量將是一個稀疏向量。文本中句子一般是由各種詞性的詞匯構成,而其中有實際區(qū)分能力的一般是名詞和動詞,所以可以使用詞性標注技術僅選取符合條件的詞語,以此來對特征集進行初步的降維。此外相對動詞而言,名詞的區(qū)分能力更強,所以有必要為其賦予更高的權重。通過這種方法提取特征詞還可以省去去停用詞這一步驟,并且在剔除部分對網(wǎng)頁分類貢獻較小的詞語的同時,也為區(qū)分能力較高的名詞賦予更高的權重,這對于改善網(wǎng)頁分類的效率和準確性都有一定的幫助。
盡管只保留了名詞和動詞,但是特征向量的維度仍很大,所以還有必要進行進一步的降維。TF-IDF(term frequency-inverse document frequency)是一種統(tǒng)計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度,其計算方式如下所示:

(1)
其中,ni,j表示特征詞ti在文檔fj中出現(xiàn)的次數(shù);|D|表示所有文檔的數(shù)量;|Dti|表示包含特征詞ti的文檔的數(shù)量。
通過計算各特征詞的TF-IDF值,并選擇TF-IDF值總和排名前4 000的特征詞用于網(wǎng)頁的特征向量的表示。
完成上述處理后,就可以使用深度信念網(wǎng)絡進行深層次的特征提取和分類。首先進行無監(jiān)督的預訓練,即采用貪婪法逐層訓練每一層的RBM,從而構建完整的DBN。然后在DBN的最后一層設置BP網(wǎng)絡,將頂層RBM的輸出特征向量作為它的輸入特征向量,有監(jiān)督地微調分類器。構建好該深度網(wǎng)絡模型后,就可以對需要測試的網(wǎng)頁進行分類。
由于目前網(wǎng)上公開的用于中文網(wǎng)頁分類的數(shù)據(jù)集較少,所以實驗數(shù)據(jù)采用人工從新浪網(wǎng)上收集財經、教育、體育和游戲這4個主題的網(wǎng)頁(各480個),其中訓練集的數(shù)量為360,測試集的數(shù)量為120。新浪網(wǎng)是新浪公司主辦的新聞門戶網(wǎng)站,其中的網(wǎng)頁經人工分類劃分到各個主題下,具有一定的權威性。
jsoup是一款Java的HTML解析器,可直接解析某個URL地址、HTML文本內容。文中通過收集上述網(wǎng)頁的URL,然后利用jsoup進行HTML解析,提取
NLPIR是目前世界上最好的漢語詞法分析器,該系統(tǒng)支持C、C++和Java等主流開發(fā)語言。文中利用NLPIR漢語分詞系統(tǒng)的中文分詞和詞性標注等功能,篩選出待分類網(wǎng)頁文本中的名詞和動詞,并且為名詞賦予更高的權重。
對于上述處理得到的名詞和動詞,使用Python機器學習庫scikit-learn中的TfidfTransformer()函數(shù)計算它們的TF-IDF值,并且選擇TF-IDF值總和排名在前4 000的特征詞用于網(wǎng)頁的特征向量表示。
MATLAB的深度學習工具箱DeepLearn Toolbox包含稀疏自動編碼器(SAE)、卷積神經網(wǎng)絡(convolutional neural network)和深度信念網(wǎng)絡(DBN)等常見深度網(wǎng)絡結構。文中使用該工具箱中的DBN網(wǎng)絡實現(xiàn)特征選取和分類。
使用查準率(precision)、查全率(recall)和F1值(F1score)對實驗中網(wǎng)頁分類的結果進行評價,3個評價標準的計算方法分別如下:
(2)
(3)
(4)
實驗中采用kNN[14]、Naive Bayes[15]和SVM這三種傳統(tǒng)的分類算法作為對比,其中kNN由Python機器學習庫scikit-learn中的算法實現(xiàn),Naive Bayes由Java編程實現(xiàn),SVM采用LIBSVM工具箱實現(xiàn)。DBN網(wǎng)絡共7層,其中每一層的節(jié)點數(shù)分別為4 000-2 000-1 000-500-250-125-4,迭代1 000次。4種算法的網(wǎng)頁分類結果如表2所示。

表2 4種算法的網(wǎng)頁分類結果
將4種算法網(wǎng)頁分類結果的F1值的平均值繪成圖3所示的柱形圖,可以發(fā)現(xiàn)DBN和SVM網(wǎng)頁分類的準確率相當,要明顯優(yōu)于kNN和Naive Bayes這兩種算法。并且可以預見,當數(shù)據(jù)集增大時,DBN的準確率將優(yōu)于SVM。

圖3 4種算法的網(wǎng)頁分類結果F1值對比
為對比使用詞性標注前后的網(wǎng)頁分類結果,使用詞性標注技術僅提取名詞和動詞,并將名詞的權重設為1.5,然后使用DBN進行特征提取和分類。為避免實驗的偶然性,將實驗數(shù)據(jù)集中的每一類都隨機分為4份,其中1份輪流充當測試集,另外3份作為訓練集,改進前后網(wǎng)頁分類結果的F1值如表3所示。

表3 使用詞性標注前后網(wǎng)頁分類結果F1值對比
通過對4次實驗結果求平均值可知,使用詞性標注后網(wǎng)頁分類結果的F1值的平均值為0.935 4,比改進前的0.905 1增加了3.35%。
上述實驗結果證明了使用DBN網(wǎng)絡進行特征提取和分類具有較高的準確性,并且使用詞性標注技術后,網(wǎng)頁分類的準確性又有一定的提升。
在考慮網(wǎng)頁標簽權重的基礎上提取網(wǎng)頁內容,然后結合詞性標注技術為不同詞性的詞語賦予不同的權重,最后利用深度置信網(wǎng)絡進行特征提取和特征分類。實驗結果表明,提出的網(wǎng)頁分類算法具有較高的準確性。
盡管如此,該算法仍存在一定不足和較大的改善空間。首先網(wǎng)頁標簽權重的設定比較隨意,在未來的研究中,將采用遺傳算法優(yōu)化標簽權重的設定。此外為提高網(wǎng)頁分類的準確性,將嘗試使用混合深度網(wǎng)絡模型進行網(wǎng)頁分類。