陳芊希,范磊
?
基于深度學習的網頁分類算法研究
陳芊希,范磊
摘 要:網頁分類可將信息準確篩選與呈現給用戶,提高信息檢索的準確率。深度學習是機器學習中一個全新的領域,其本質是一種多層的神經網絡學習算法,通過逐層初始化的方法來達到極高的準確率,被多次使用在圖像識別、語音識別、文本分類中。提出了基于深度學習的網頁分類算法,實驗數據證明該方法可有效提高網頁分類的準確率。
關鍵詞:網頁分類;深度學習;棧式自動編碼器;TFIDF
范 磊(1975-),男,上海交通大學,電子信息與電氣工程學院,副教授,博士,研究方向:數據挖掘、信息安全,上海,200240Abstract:Webpage classification can be used to select accurate webpage for users, which improves the accuracy of information retrieval. Deep learning is a new field in machine learning world. It’s a multi-layer neural network learning algorithm, which achieves a very high accuracy by initializing the layer by layer. It has been used in image recognition, speech recognition and text classification. This paper uses the deep learning algorithm in webpage classification. With the experiments, it finds out that the deep learning has obvious advantages for webpage classification.
Webpage Classification Based on Deep Learning Algorithm
Chen Qianxi, Fan Lei
(Information Content Analysis Technology National Engineering Laboratory, Shanghai Jiaotong University, Shanghai 200240, China)
Key words:Webpage Classification; Deep Learning; Stacked Auto Encoder; TFIDF
隨著21世紀互聯網行業的快速發展,網絡上的信息也急速膨脹,從如此復雜多樣的網絡中迅速、準確的找到用戶所真正感興趣的網頁信息已經成為了一項挑戰。由此,對網頁的分類也逐漸被人們所看重。
現有的網頁分類技術主要有3個方向:
1)使用文本分類算法。
一個網頁最基礎的部分就是文本,提取出該文本信息就可以使用文本分類算法來做網頁分類。在文本分類領域中,向量空間模型已成為最廣泛的表示方式。它將文檔表示為一系列無序特征詞的向量,通過將這些文檔表示成具有不同權重的向量再使用傳統的分類算法如類中心向量算法、KNN或支持向量機(SVM)等來分類。不同的特征項對文檔的重要性和區分度是不同的,將文檔形式化成向量時,需要對各個特征詞匯賦予不同的權重。最常用的特征加權算法為TFIDF方法。
TFIDF算法即詞頻-逆向文件頻率,它的主要思想是如果一個詞匯在一篇文檔中出現的頻率高,并且在其他文章中很少出現,則認為該詞匯很可能反映了這篇文章的特性,因此它就具有很好的類區分能力,適合用于分類。對于一個詞匯w和某一文檔d,w在d中的權重計算公式如公式(1):
(1)
其中,TF(d,w)表示詞w在文檔d中出現的頻率,|D|是文檔總數,DF(w)是在所有文檔詞w出現的次數。由這個公式也可以看出,一個詞匯在一個文檔中出現的次數越多,它越能代表該文檔,則它的權重就越高,而它在越多的文檔中出現,它區分該文檔和其他文檔的能力就越低,則權重也就越低。
但是網頁分類與文本分類又有極大的不同點,第一,傳統的文本分類具有結構化的創作方式,而網頁中通常包含大量的噪音。網頁的設計比較隨意,通常包含各類廣告、設計人員的注釋以及一些與網頁內容無關的信息等。第二,網頁中包含大量的HTML標簽和超鏈接。因此傳統的文本分類方法無法完全滿足網頁分類的要求,從而產生了下面兩種網頁分類技術。
2)網頁特征分類。使用網頁中文本信息分類雖然方便,但由于網頁的復雜性和其附帶的噪音之多,將所有文本內容用于分類并不能達到最好的分類效果。因此,必須利用網頁中其他特征信息來篩選其文本內容來提高分類準確度。一方面,在網頁中,HTML的標簽是與文本內容的一大不同,研究證明,使用來自這些標簽的信息可以有效提高分類器的性能。另一方面,網頁中除了在HTML中的文本內容,網頁還有由瀏覽器所呈現出來的視覺展示,提供了對網頁的不同視圖,利用這些生成的頁面視覺信息比分析文檔的HTML標簽更通用。如文獻[7]中提出了一種改進的基于視覺特征利用分塊重要度進行中文主題網頁分類的方法。實驗結果證明,利用網頁分割和分塊重要度來將網頁中的主題信息和噪聲信息分隔開,只使用用主題信息對網頁進行分類,顯著提高了主題網頁分類的質量。
3)利用鄰網頁信息。雖然網頁中包含很多有用的特征,但有時那些特征不一定存在或者很可能是無法識別的。為了克服這個問題,可以從一些鄰近的網頁中提取與原網頁有關的特征作為補充信息使用。直觀的,可以利用超鏈接來找到這些鄰網頁。我們認為這些鄰居網頁具有一些相似的特征,或更強地,我們認為這些網頁更傾向于是屬于同一類別的。通過挑選適當的鄰居網頁,并使用網頁合適的部分可以使用鄰居網頁來對原網頁分類提供幫助。如文獻[6]中,將鏈接圖所到的鄰居網頁信息來用于對原頁面的網頁分類,通過對不同種類鄰居的研究,發現兄弟頁面信息對原網頁的分類效果具有最大的提高。
本文將在圖像處理和語音識別領域中有廣泛應用的深度學習算法應用到網頁分類中,該分類算法可有效提高分類的準確率。
1.1 深度學習概念
深度學習的概念自2006年由Hinton等人提出以后,使機器學習領域取得了突破性的進展,在語音識別和圖像識別等領域獲得了巨大的成功。深度學習是一種基于無監督特征學習和特征層次結構的學習方法,它通過模擬人腦進行分析學習,明確突出了特征學習的重要性,通過逐層特征變換,每次都是訓練一個單層網絡,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預測更加容易。
1.2 深度學習常用模型之棧式自動編碼器模型
深度學習的常用模型有自動編碼器,深度置信網和卷積神經網絡等。本文算法采用棧式自動編碼器算法處理網頁數據,棧式自動編碼器是在神經網絡的基礎上作出改進,使每一層都盡可能重現輸入信號。自動編碼器具體過程如下:
1)非監督方法學習特征:
第一步,使用無標簽數據進行逐層訓練。在神經網絡中,輸入的樣本是有標簽的,利用輸出與標簽的差值來調整參數,直到收斂。而在自動編碼器中,無標簽數據無法得到輸出與標簽的差值,因此,需要對神經網絡做些修改,將輸入傳送到一個編碼器中,得到該輸入的表示編碼,為了衡量該輸入和編碼之間的差值,增加一個解碼器,將編碼輸入到該解碼器后可以得到一個重構信號,為了使該重構信號與輸入之間的誤差盡可能小,我們調節編碼器參數得到一個更為準確的編碼,最后當誤差最小時,就可以將該編碼當做輸入信號的一個表示了。這就組成了一個自動編碼器。
2)逐層訓練:
棧式自動編碼器是在自動編碼器的基礎上加上深度學習的思想,即“逐層初始化”的概念。棧式自動編碼器由多層的自動編碼器組成,前一層的自動編碼器的輸出作為其后一層自動編碼器的輸入,同樣最小化重構誤差來得到其后一層的參數。在訓練每一層參數時,固定其它各層參數保持不變。通過這么多層的編碼器,最后我們便得到了輸入信號的一個非常抽象又近似的表達了。
3)有監督微調:
經過上面的方法,得到多層的自動編碼器,每一層都是原始輸入的不同表達。最終,需要用這么多層的自動編碼器來分類數據,因此需要它去學習如何連結一個輸入和一個類。為了實現分類,在最頂層的編碼層添加一個分類器(例如logistic回歸、SVM等),將最后一個隱層的編碼輸入到最后的分類器,通過帶標簽的數據去訓練,基于第一步得到的各層參數進一步微調整個多層模型的參數,誤差自頂向下傳輸。至此,該網絡就可以用來分類了。
2.1 網頁獲取與預處理
良好的網頁歸類是實現正確網頁分類的前提和基礎。本文選取了第一分類目錄(http://www.dir001.com/category)網站上的數據作為我們的數據集,該網站包含了大量網頁的人工分類結果。實驗中使用Scapy網絡爬蟲工具將該分類目錄下帶類別標簽的各網頁信息抓取出來。
對網頁的處理包括3個部分:網頁預處理、特征抽取和權重分配。
首先,使用HTML解析來抽取出文本。HTML解析的目的在于去掉與網頁分類無關的HTML源碼來抽取需要的文本數據。在HTML頭部信息中,包括了對整個網頁的概要描述,其中我們提取出<title>、<keywords>、<description>這3個標簽中的文本部分,它們分別代表網頁的標題、關鍵字及描述。這3個部分的文本組成了對網頁的整體描述。
在網頁預處理后得到了一系列網頁的文本數據,需要將這些文本序列切分成單獨的詞匯來作為特征使用。本實驗使用的中文分詞技術是基于字典、詞庫匹配的機械分詞方法,這類方法簡單、分詞效率高。分詞后,網頁的文本成為一系列詞匯的集合。在文本分類中,一個文檔具有大量的詞匯會導致特征空間維度過高而造成存儲代價過高且影響分類效果。但在網頁分類中,提取出來的文本遠沒有文檔的多,因此,本實驗不考慮特征選擇的問題,將網頁中出現的詞匯全部保留下來作為特征使用。
將網頁表示成這些特征的向量以后,還必須對這些特征賦予不同的權重來顯示不同詞匯對網頁的重要性和區分度。在深度學習算法中,我們使用簡單直觀的布爾模型來賦予權重,即若這個特征出現在該文本中標記為1,否則標記為0。在TFIDF對比實驗中的權重,使用修改后的TFIDF值作為特征的權重。
2.2 傳統的網頁分類算法
采用改進的TFIDF算法來做對比實驗。使用該算法分類時,計算每個特征詞匯的TFIDF值作為該特征的權重。原本計算TFIDF的方式應該是對每個網頁計算它所包含詞匯的TFIDF值。但由于網頁中這3個字段所包含的詞匯較少,具有重復的特征詞匯更是寥寥無幾,與文檔所含詞匯多不同,因此,采用改進的TFIDF算法,對訓練集中所有網頁以類別為單位分別計算,即對每個類別來分別計算它具有的特征詞匯的TFIDF值,公式描述如公式(2):

其中,TF(c,w)表示詞w在大類c中出現的頻率,|C|是該類別總的網頁個數,TF(w)是包含該詞w的網頁個數,|D|是類別總數,即|D|=8,DF(w)是在所有大類中詞w出現的次數。
對測試集中網頁詞匯,我們無法使用上述公式來計算其TFIDF值,因此,我們也用布爾權重來表示網頁向量,對網頁中出現的詞匯權重為1,未出現詞匯權重為0。
分類方法為:計算每個測試集中網頁向量與各個類別特征向量的相似度,將網頁分到與其相似度最大的類別中去,向量的相似度計算方法如公式(3):

cos值越高表示夾角越小,向量相似度越高。
2.3 基于深度學習的網頁分類
通過網頁預處理后,網頁成為這些特征詞匯的向量,以0、1為向量元素。本實驗使用的深度學習算法為棧式自動編碼器,原理如上述。所使用的深度學習算法工具為基于Matlab的Deeplearningtoolbox工具,它包含了棧式自動編碼器(SAE)、卷積神經網絡(CNN)、深度置信網絡(DBN)、卷積自動編碼器(CAE)等幾種深度學習算法。我們使用其中的SAE即棧式自動編碼器來實現對網頁的分類。該工具中的棧式自動編碼器算法首先使用無監督學習來逐層初始化,將每一層當做一個BP(反向傳播)神經網絡來更新參數。通過不斷迭代修改這個神經網絡的權值來達到每層的輸入和重構輸入的誤差最小,使神經網絡的輸出不斷逼近原始輸入。最后使用有標簽數據對模型進行微調。在每一層的神經網絡訓練中一個重要的參數是訓練的迭代次數。迭代次數過小會導致網絡的預測誤差過大,對輸入無法充分學習,導致最終多層的深度學習算法的分類準確度過低,而迭代次數過大又會導致計算時間過長而得到的準確率卻只有微小的提升。
本實驗使用的深度學習模型都是四層系統,包括一層輸入層、兩層隱層和一層輸出層,且兩個隱層中節點個數都為100個,通過調節其編碼器參數來得到最好的分類效果。在實驗中,通過修改棧式編碼器中每個神經網絡的迭代次數發現,當迭代次數足夠大時,準確率會趨于穩定,并最終收斂。為了降低實驗的計算時間,我們在實驗中取迭代次數為4次,此時的準確率效果較好且計算時間也較短。
3.1 數據集說明
本實驗基于第一分類目錄這個網站,該網站將各網站信息系統地分類整理,提供了一個按類別區分的網站目錄。總共包括休閑娛樂、網上商城、網絡服務、商業經濟、生活服務、教育文化、博客論壇、以及綜合其他等八大類,剔除掉一些停用的網頁,隨機挑選一些網頁作為數據集。選取的網頁共有1600個,每個類別有200個網頁。
4.2 實驗環境及評價指標
本論文實驗是在Windows XP操作系統的環境下,利用Python2.7工具和Matlab R2007a開發工具,并通過Python 和Matlab語言實現的。TFIDF實驗使用Python實現,深度學習算法使用基于Matlab的Deeplearningtoolbox工具實現。對于實驗所需的中文網頁都是使用網頁爬蟲Scrapy從網上抓取,對于中文分詞使用Python工具里的結巴分詞得到。
為對比分類效果,我們采用最通用的性能評價指標:召回率Recall、精確度Precision及F1值,其定義如表1所示:

表1 混淆矩陣(YES代表屬于類Ci,NO代表不屬于類Ci)
對于某一特定的類別Ci,精確度代表分類器作出預測正確的概率,召回率代表該類中被分類器正確預測的概率。這兩個指標相互制約,其一值高會導致另一值低。F1值是精確度和召回率的加權調和平均,使用F1值可以綜合查看這兩個指標。
3.3 實驗結果
為了更有效得對比深度學習算法和TFIDF算法的優劣,進行多次對比實驗,采用k層交叉檢驗的方式,將原始的數據隨機分成k個部分,完成k次實驗,每次實驗取一個部分作為測試數據,其他k-1個部分作為訓練數據,這樣能保證每個數據都被作為測試數據一次,作為訓練數據k-1次。本實驗中,取k=10。我們從1600個網頁中隨機抽取160個網頁作為測試網頁,剩余1440個網頁作為訓練數據,重復做10次實驗。實驗結果如圖1~圖3所示:

圖1 深度學習精確度與TFIDF精確度對比

圖2 深度學習召回率與TFIDF召回率對比

圖3 深度學習F1值與TFIDF F1值對比
上面3張圖分別給出了深度學習算法和TFIDF算法分類結果的精確度、召回率及F1值的比較。其中橫軸表示第1次到第10次的實驗序號,縱軸表示計算得到的精確度、召回率和F1值。對比看出:深度學習算法的網頁分類結果無論在精確度、召回率和F1值上的評估都要優于傳統的TFIDF算法的分類效果。深度學習算法F1值大部分都能達到90%以上,且10次實驗的效果比較穩定,F1值最高能達到96%的高度。而TFIDF算法在這10次實驗的效果偏差較大,最高的F1值只有85%左右。
同時,我們取第一次實驗的結果,通過對比每類的精確度、召回率和F1值情況,來查看這兩次實驗分別對各類別的分類效果,結果如表2所示:

表2 每類分類效果對比
從表2我們可以看出TFIDF實驗對類別的分類效果浮動較大,F1值最大差值在24%左右。但深度學習對每個類別的分類效果都較好,F1值都達到了90%以上,且最大差值也只有7%左右,這表明深度學習對每個類別的數據都能很好的學習到每類的特征。
以上我們對比了使用傳統的文本分類的方法來對網頁分類,即引言中的第一類網頁分類方法。以下我們對比其他兩類分類方法的實驗效果。
文獻[7]中采用了網頁分類的第二類方法,它的實驗結果如圖4所示:

圖4 采用KNN分類器傳統方法與分塊方法的F1值對比
文獻7中,對網頁利用視覺特征將網頁分割成塊,對每個分塊賦予不同的權值進而用于分類。圖4是文獻7中將傳統的全文網頁分類方法和基于視覺特征的利用分塊重要度的網頁分類法進行比較。從圖4我們可以看出,利用視覺特征確實對網頁分類有所提高,但其分類效果遠不如深度學習算法的分類效果,F1值最高只有81%。且它對每個類別的分類效果趨勢與傳統方法相似,如類別‘軍事’的分類效果最差,類別‘體育’的分類效果最好,而本文使用的深度學習算法對每個類別的分類效果都近似,F1值浮動較小。
文獻[6]采用了網頁分類的第三類方法,利用網頁上的鄰居頁面信息來對原網頁進行分類。文獻中采用ODP(開放式分類目錄搜索系統)中的網頁,ODP是目前互聯網上最大的人工編制的分類檢索系統。實驗結果表明該方法能夠提高傳統的分類方法的分類效果,準確度從70%提升到了大約90%。分類效果也差于本文的深度學習算法的分類效果。
本文使用深度學習算法對網頁進行分類,對比傳統的TFIDF分類方法,使用深度學習算法具有更好的分類效果,能將網頁分類的準確性提升到另一個高度。網頁中還包含很多不同于文檔的頁面信息,本文只使用了網頁中文本的3個字段就達到比較好的效果,今后可以使用更多的網頁信息例如標簽信息并結合深度學習算法對網頁分類的精確度進一步提升。
參考文獻
[1] Qi X, Davison B D. Web page classification: Features and algorithms[J]. ACM Computing Surveys (CSUR), 2009, 41(2): 12.
[2] de Boer V, van Someren M, Lupascu T. Classifying Web Pages with Visual Features[C].WEBIST (1). 2010: 245-252.
[3] Kan M Y, Thi H O N. Fast webpage classification using URL features[C].Proceedings of the 14th ACM international conference on Information and knowledge management. ACM, 2005: 325-326.
[4] Ong W K, Hong J L, Fauzi F, et al. Ontological based webpage classification[C].Information Retrieval & Knowledge Management (CAMP), 2012 International Conference on. IEEE, 2012: 224-228.
[5] Asirvatham A P, Ravi K K, Prakash A. Web page classification based on document structure[C].IEEE National Convention. 2001.
[6] Qi X, Davison B D. Knowing a web page by the company it keeps[C].Proceedings of the 15th ACM international conference on Information and knowledge management. ACM, 2006: 228-237.
[7] 段昕. 基于視覺特征中文網頁分類方法的研究[D]. 山東大學, 2007.
[8] 王美方, 劉培玉, 朱振方. 基于TFIDF的特征選擇方法[J]. 計算機工程與設計, 2007, 第23期:5795-5796. DOI:doi:10.3969/j.issn.1000-7024.2007.23.070.
[9] 孫建濤, 沈抖,陸玉昌, 等. 網頁分類技術[J]. 清華大學學報: 自然科學版, 2004, 44(1): 65-68.
[10] 單松巍, 馮是聰, 李曉明. 幾種典型特征選取方法在中文網頁分類上的效果比較[J]. 計算機工程與應用, 2003, 39(22): 146-148.
[11] 蘇峰. 基于深度學習的文本分類研究[D]. 內蒙古民族大學, 2014.
收稿日期:(2015.05.13
作者簡介:陳芊希(1991-),女,上海交通大學,電子信息與電氣工程學院,碩士研究生,研究方向:數據挖掘,上海,200240
基金項目:上海市基礎研究重大重點項目 (NO.13JC1403500)
文章編號:1007-757X(2016)02-0025-04
中圖分類號:TP391
文獻標志碼:A