周超然,趙建平,馬 太,周 欣
(長春理工大學計算機科學技術學院,長春 130022)
在互聯網的實際應用中,當用戶使用搜索引擎進行信息檢索時,出于商業(yè)、用戶點擊量、規(guī)范性差及網絡安全系統(tǒng)不完善等原因會導致返回數據列表中包含部分不符合用戶搜索目標的結果網頁。比如,房地產及招聘廣告網頁、新聞資訊網頁、失效網頁、非法網頁等不包含用戶需求信息的網頁?,F有網頁黑名單識別技術應對新威脅的速度太慢,使得超過90%的訪問者可以在頁面被列入黑名單之前對其進行查看[1]。過分或不適當的網絡資源訪問不僅給網絡運維廠商帶來生產力的負擔和傳輸資源的浪費,網絡上的違法內容甚至會給用戶帶來經濟、精神等方面的損失,嚴重影響網絡環(huán)境[2]。本研究的目的是在使用搜索引擎檢索信息時,對搜索引擎返回的網頁內容進行分析,保留有效信息,提升搜索引擎對用戶的適用性。
本文在網頁黑名單判別任務中,需解決如下問題:1)網頁具有復雜的結構信息和語義信息,實現合理的網頁特征構建來表達網頁信息是一個關鍵問題;2)由于網頁數據復雜性很高,選擇哪種技術來構建判別模型,并保證判別模型的魯棒性和準確性也是十分關鍵的。針對上述問題,本文通過網頁動態(tài)內容分析提出了一種基于注意力機制和集成學習的網頁黑名單判別方法,并訓練了基于集成學習和注意力機制的卷積神經網絡(Ensemble learning and Attention mechanism-based Convolutional Neural Network,EACNN)模型。EACNN 將網頁HTML 標簽中的文本數據轉化為詞向量,采用基于注意力機制的卷積神經網絡(Attention-based Convolutional Neural Network,ACNN)提取文本特征。通過不同標簽的樣本集來訓練基學習器的構建。再采用Bagging 集成學習方法將各標簽的基學習器的結果選擇優(yōu)化輸出權重,完成集成學習器的構建。將集成學習器的輸出作為該網頁是否為黑名單的判別結果。EACNN相較于其他相關工作優(yōu)勢如下:
1)基于神經網絡的判別模型。相較于統(tǒng)計學習方法(K近鄰(K-Nearest Neighbor,KNN)[3]、支持向量機(Support Vector Machine,SVM)[4]等,神經網絡模型[5-9]的準確度更高,學習能力更強,能實現良好的非線性映射關系并具有很強的魯棒性。
2)引入注意力機制。對文本轉化后的嵌入向量執(zhí)行注意力計算,提升對判別結果影響力大的詞匯的關注度,降低對判別結果影響力小的詞匯關注度,使文本數據的特征表達更加合理、充分。
3)基于網頁結構特征的集成學習??紤]網頁中不同標簽數據對網頁的信息涵蓋程度不同,為引入網頁結構特征,采用集成學習將不同網頁標簽基學習器的判別結果進行整合,構建基于集成學習和注意力機制的卷積神經網絡(EACNN)模型。實驗結果表明EACNN 模型性能優(yōu)于其他基線模型,證明了采用集成學習方法引入網頁結構特征的有效性。
網頁分析從20世紀90年代初的專業(yè)管理人員甄別,逐步向后期的關鍵詞檢索分析,發(fā)展到現在已經開始采取啟發(fā)式內容分析方法。網頁分析的主要目標是獲取包含有效信息的網頁并剔除無關的網頁,即實現黑名單網頁的判別。早期的網頁分析方法以關鍵詞檢索、特征設計和引入知識庫、統(tǒng)計學習等技術為主要手段。文獻[10]基于關鍵詞匹配構建混合模型來過濾網頁中的色情文本。Sheu 等[11]通過設計網頁特征結合決策樹算法從網頁集合中區(qū)分醫(yī)療類網頁和情色類網頁。徐雅斌等[12]基于K近鄰算法來過濾互聯網資源中的不良網頁。顧敏等[13]基于Naive Bayesian Model 結合網頁結構特征,采用多特征融合的方法進行網頁分類。Kan 等[14]將URL作為特征實現快速的網頁分類。由于網頁包含很多非結構化信息,完全依賴于人工設計特定的方式來分析網頁是不合理的;而單純采用關鍵詞檢索和統(tǒng)計學習方法在非線性特征方法的表達能力較弱,難以生成準確性高、魯棒性好的模型。
隨著深度學習的不斷發(fā)展,基于神經網絡的網頁分析模型開始成為了主流。鄧璽[5]基于深度卷積神經網絡搭建了網頁特征提取模型并實現了網頁類別劃分工作。Buber 等[6]基于循環(huán)神經網絡(Recurrent Neural Network,RNN)的深度學習架構并將標題、描述和關鍵字的元標簽信息作為特征來構建網頁分類模型。另外有許多基于深度神經網絡的方法[7-9]被用來解決文本分類判別問題,盡管它們沒有考慮網頁特征,但為基于深度學習的網頁黑名單判別模型的研究開展起到了鋪墊和推進作用。
本文在深度神經網絡分類模型的基礎上引入注意力機制,在提升網頁語義信息表達能力的同時完成基礎學習器的構建。注意力機制在本文的應用方式為,以人的關注要點行為依據設計網頁文本嵌入向量的注意力計算。注意力機制在深度神經網絡上的應用,最早應用在圖像處理領域[15],如今已廣泛應用于自然語言處理[16]、語音識別[17]、模型設計[18]等領域。ACNN[19]將深度神經網絡中的CNN 引入注意力機制,是注意力機制與神經網絡結合來解決文本分類任務的探索性工作。
Zhou 等[20]發(fā)現,對多個網絡進行隨機賦權,并利用遺傳算法對權值進行進化,在一定程度上能夠提升神經網絡的表現力。基于上述貢獻,采用類似Zhou 等[20]工作的集成學習方式來引入網頁結構特征,將不同標簽數據訓練的基學習器進行集成,實現網頁黑名單的判別模型構建。集成學習通過構建并結合多個學習器來完成學習任務。Bagging[21]是并行式集成學習方法最著名的代表,基于自助采樣法,利用不同的采樣集訓練出多個學習器,再將這些基學習器進行結合。Bagging 通常對分類任務使用簡單投票法,對回歸任務使用簡單平均法。蔣蕓等[22]提出了基于Bagging 的概率神經網絡集成分類算法,該算法在分類誤差、準確率、泛化性以及執(zhí)行速度方面優(yōu)于傳統(tǒng)BP(Back Propagation)神經網絡。鑒于引入注意力機制并結合網頁特征的集成深度學習模型在特征提取方面的優(yōu)勢,本文設計基于注意力機制和集成學習的網頁黑名單判別方法。
對網頁信息表達而言,不同標簽中的文本數據對用戶理解信息的影響程度是不同的,相較于子標簽,標題和摘要標簽中的數據對網頁信息的概述效果更好,顯然更便于用戶理解網頁信息?;谏鲜鏊枷耄疚奶岢鲆环N基于注意力機制和集成學習的網頁黑名單判別方法,此方法被用于構建基于集成學習和注意力機制的卷積神經網絡(EACNN)模型。EACNN結構如圖1。
圖1 EACNN結構Fig.1 EACNN structure
主要內容如下:首先,將網頁HTML 數據根據標簽類型抽樣為若干個子訓練集;然后,對不同標簽(Tags)的訓練子集采用基于注意力機制的CNN(ACNN)來構建基學習器;最后,通過集成學習的方法對不同的基學習器賦予一個不同的權重Wk,實現網頁黑名單的判別輸出。
基于注意力機制的CNN(ACNN)網頁判別模型結構如圖2所示。
圖2 ACNN網頁判別模型Fig.2 Web page discrimination model of ACNN
嵌入層 將文本映射到多維實數空間,實現語義表達。基于Word2vec 的Skip-gram 策略預訓練詞嵌入模型[23],用于將原始輸入文本序列轉化成嵌入矩陣,并將嵌入矩陣作為注意力計算層的輸入。
注意力計算層 對嵌入矩陣進行局部注意力的計算,獲取文本序列的注意力信息來生成注意力矩陣。卷積層的輸入矩陣為嵌入矩陣和注意力矩陣的拼接結果。
卷積層 對輸入的嵌入矩陣執(zhí)行卷積操作,提取特征信息。
最大池化層 對卷積結果矩陣進行特征的再提取,減少模型參數量的同時提高模型的魯棒性。
輸出層 數據歸一化處理。對最大池化層輸出的特征矩陣采用Sigmoid函數計算輸出結果,完成網頁是否為黑名單的判別。
2.1.1 詞嵌入
嵌入層采用Jieba(https://github.com/fxsjy/jieba)開源工具進行刪除停用詞和中文分詞的預處理工作,并基于Word2vec 方法的Skip-gram 模型實現詞向量的構建。嵌入層通過Word2vec 嵌入模型將輸入文本映射到多維實數空間上,構建嵌入向量來表達文本特征和語義內容。表達方式為:將一個詞匯長度為n的句子通過預訓練的詞嵌入模型,生成輸入矩陣X={c1,c2,…,cn}。其中輸入矩陣X為一個n*d的矩陣,n代表輸入文本的詞長度,d代表詞向量長度,ci表示句子中第i個詞匯的嵌入向量。嵌入表達采用基于Wikipedia_zh 中文維基百科語料貢獻的詞向量模型[24]。詞向量模型的基本設置:動態(tài)窗口大小為5;消極采樣為5;迭代次數為5;低頻詞匯為10;二次采樣概率為1E-5。
2.1.2 注意力計算
注意力計算層通過引入注意力機制來提升嵌入矩陣的特征表達能力。注意力計算層為更好地關注與判別操作緊密相關的關鍵詞,設計了自注意矩陣。采用滑動窗口來計算局部嵌入矩陣的權值,滑動窗口大小為j,每個窗口的權值是不共享的。為保證窗口的中心詞都是原始向量中矩陣的詞,實現覆蓋全部嵌入向量,在輸入矩陣首尾各加入(j-1)/2 個隨機初始向量。隨后執(zhí)行局部嵌入重要程度的計算。
評價局部嵌入重要程度的計算公式如下:
其中:si為窗口中心詞的重要程度,Xi:i+j-1為輸入的第i個到第i+j-1 個窗口內的嵌入矩陣,Watt為輸入詞的注意力權值矩陣,batt為注意力偏置值,f()表示Sigmoid激活函數。
關鍵詞 閾值設定公式:
通過將詞的重要程度si的大小與閾值λ的對比,得到詞的關鍵向量ai,定義如下:
ai保留了重要程度更高的詞匯,并將低于平均影響力的詞匯的權重設置為零向量(0)。其中ci為詞的原始輸入向量,將{a1,a2,…,an}拼接得到經過自注意矩陣的Xatt。矩陣X和矩陣Xatt拼接構成卷積層的輸入矩陣Xcon。
2.1.3 卷積與預測
卷積層通過對輸入矩陣的卷積操作來提取文本的局部特征,基學習器的卷積運算如下:
其中:coi即卷積層的特征提取計算結果,coi(i=1,2,…,n-h+1)表示卷積運算后的結果矩陣,h為窗口大小,Xcon,i:i+h-1表示卷積層輸入的第i個到第i+h-1 個窗口內的矩陣,Wcon為權值矩陣,b為偏置值,f()表示Sigmoid激活函數。
然后采用最大池化操作,對卷積操作提取的特征進行壓縮并提取主要特征,將池化得到的最大值進行拼接,得到一條一維特征向量的池化操作如下。
Sigmoid 函數適用于二分類問題中將內部函數轉化為概率函數。其中Wf∈R1×M為用于網頁黑名單判別的1維矩陣,bf為偏置值。
2.1.4 模型訓練
ACNN是一個二分類模型,因此激活函數選擇為Sigmoid,通過將空間矩陣映射到[0,1]區(qū)間,實現網頁是否屬于黑名單的預測。
Sigmoid計算公式為:
代價函數選擇交叉熵損失函數,定義如下:
其中:y為實際類別標簽值是Sigmoid 激活函數計算得到的判別結果,區(qū)間為[0,1]。在模型訓練階段采用梯度下降法來加快收斂并減少計算量,引入dropout 策略[25]和k折交叉驗證來防止過擬合。本文dropout 和k折交叉驗證的參數分別為0.5和3。
考慮到不同的網頁標簽對網頁信息的表現力不同,需要分析不同網頁結構文本對網頁判別的權重系數。將不同標簽數據集設置為不同基學習器的訓練集,每個訓練集對應訓練一個基學習器。與傳統(tǒng)Bagging采用投票方式不同的是,本文為每個基學習器的輸出賦予一個優(yōu)化權重,即經過每個基學習器輸出結果為原始輸出與優(yōu)化權重的乘積,總體結果為基學習器輸出結果累加和的平均數。具體計算過程如下。
將網頁HTML 數據集根據標簽類別抽樣成N個子數據集,表示為T={T1,T2,…,TN}。標簽類別數目與基學習器個數相同,均為N。第k類子數據集表示為Tk={tk1,tk2,…,tkm},tkm表示第k類標簽子數據集的第m條文本數據。
第k類基學習器對tkm的預測輸出結果表示為Ok(tkm),經過集成學習概念對第m個網頁是否為黑名單的判別結果計算公式為:
其中O(tm)表示對第m條網頁進行集成計算的輸出結果,即引入權重系數Wk表示第k個基學習器的輸出權重。為保證集成學習器效果的優(yōu)秀,需要對不同學習器的文本權重進行最優(yōu)解計算。粒子群優(yōu)化算法[26]具有對連續(xù)參數進行目標函數優(yōu)化的能力,且具有搜索速度快、效率高,適合于實值型處理等方面的優(yōu)點。因此本文采用粒子群優(yōu)化算法(算法1)來實現集成學習器權重W的參數求解。
其中:score(W)表示當前輸入文本設置權重對模型判別的影響效果,W={W1,W2,…,WN}表示各個基學習器的輸出權重集合。rank(tki)表示基學習器k對第i個網頁的判別效果表示基學習器k對第i個網頁是否為黑名單的預測標記,y(tki)表示第i個網頁是否為黑名單的實際標記。
算法1 基于粒子群優(yōu)化算法的EACNN權重設置方法。
輸入 粒子數Partn,迭代次數Itern,速度Speed,EACNN 模型,網頁的標記集合Y={y1,y2,…,ym}。
過程:
算法1 中每個粒子的訓練參數表示基學習器的輸出權重系數集合。算法1相關參數設置如下:粒子數Partn=100,迭代次數Itern=10,更新權重Speed=0.2。
基于爬蟲技術從百度搜索引擎(https://www.baidu.com)中收集了4 390條地理信息類的網頁數據作為實驗數據集,并采用人工標注的方法對實驗數據進行標記,其中正例2 790條、反例1 600 條。將黃頁、商業(yè)購物、投放廣告、社區(qū)問答類網頁標記為黑名單,蘊含地理信息數據的網頁標記為白名單。被標記為正例的數據屬于白名單數據,標記為反例的數據為黑名單數據。實驗數據的訓練集和測試集的數據數量比例為7∶3。每條數據包含如下屬性:1)網頁標題數據;2)網頁元標簽數據;3)網頁URL 數據;4)網頁各級小標題數據;5)網頁特殊字體數據;6)網頁正文數據;7)網頁正反類型的布爾數據,數據樣本示例如圖3。
圖3 數據樣本示例Fig.3 Data samples
實驗是在macOS系統(tǒng)下進行的,CPU為Intel Core i5,內存為8 GB 1 600 MHz DDR3。詞向量維度d=300。其他實驗條件如表1。
表1 實驗環(huán)境及配置Tab.1 Experimental environment and configuration
為引入網頁結構特征并驗證集成學習方法的效果,在實驗環(huán)節(jié)將網頁HTML 文本數據根據其元標簽類型分為如下子數據集:1)標題;2)元數據標簽頁;3)各級小標題;4)特殊字體類標簽;5)網頁正文和table 標簽。根據觀察得出不同標簽類別對判別網頁結果的影響不同,本研究中將網頁文本數據分為如下類別,如表2。采用上述5 類數據進行ACNN 基學習器的構建。
表2 網頁標簽的類別劃分Tab.2 Categories of Web page tags
采用粒子群算法(算法1)實現各基學習器的最優(yōu)權重計算結果如表3。結果發(fā)現,基于標題文本數據和元標簽數據構建的基學習器的權重系數高于其他基學習器的權重系數??紤]原因,標題和元標簽更好地對網頁的元信息進行了概述,而網頁正文數據蘊含的信息相較其他標簽內容更多樣且噪音信息更多,所以基于網頁正文構建的基學習器的集成權重系數為最低的0.169 0。在后續(xù)實驗環(huán)節(jié)沿用表3中的參數完成EACNN構建。
表3 基學習器的輸出權重Tab.3 Output weights of base learners
網頁數據的樣本長度為樣本所包含的詞匯數目。各Tags數據集樣本長度統(tǒng)計曲線均為近對數正態(tài)分布。由于不同Tags集合的樣本長度分布不同,單純取長度最長的樣本,并把其他樣本填充成同樣的長度,會浪費計算資源。為避免樣本間信息量偏差過大,所以設計長度閾值L來優(yōu)化輸入內容。通過計算樣本長度的平均值與二倍此類樣本長度標準差的和作為數據的樣本長度閾值L的設置公式。公式為:
當樣本長度超過閾值L時截取末尾多余長度的樣本,對樣本長度低于閾值L的樣本執(zhí)行前補零操作。將采用L和原始樣本長度(Original Length,OL)的不同數據集基學習器進行了F1分值的對比實驗,來觀察設置樣本閾值長度對模型的影響。如圖4所示。
圖4 樣本長度閾值L對不同學習器的F1分值影響Fig.4 Influence of sample length threshold L to F1 score of different learners
實驗結果表明對各學習器設置優(yōu)化的樣本長度閾值L能夠不同程度地提升模型的整體性能。同時發(fā)現由于Tags1 和Tags2的樣本長度范圍較小,樣本長度閾值的設置對模型的提升效果較低。在樣本長度普遍更長的Tags3、Tags4、Tags5 和All Text數據集,樣本長度閾值的設置使基學習器的F1分值提升更顯著。證明了樣本長度閾值設置的合理性。
為了驗證EACNN 模型的先進性,選擇了SVM、KNN、LSTM、GRU和ACNN作為基線模型,實驗結果如表4。
表4 不同模型的性能對比 單位:%Tab.4 Performance comparison of different models unit:%
從表4 可以看出,使用深度學習的模型判別效果優(yōu)于基于SVM 和KNN 的傳統(tǒng)機器學習模型,證明了深度學習模型在特征提取和學習方面性能優(yōu)于傳統(tǒng)機器學習模型。此外,基于深度神經網絡的網頁黑名單判別模型在使用本數據集時能力相近,CNN、LSTM和GRU的F1分值分別為81.29%、80.30%和82.78%。值得關注的是,引入注意力機制后的CNN 模型的判別效果得到了一定的提升,達到了91.80%的Accuracy和93.77%的F1分值,這說明注意力機制的引入增強了網頁語義特征的表達能力。EACNN 模型的Accuracy 和F1達到了最高的96.90%和95.58%。這證明了本文提出的方法的有效性,將注意力機制和基于網頁結構特征的集成學習方法結合能為網頁黑名單判別模型的構建起到積極作用。
為進一步分析基于網頁結構特征的集成學習方法的合理性,將EACNN 與基學習器的網頁判別能力進行了對比。實驗結果如表5。
表5 EACNN與基學習器的性能對比 單位:%Tab.5 Performance comparison between EACNN and base learners unit:%
由表5 可以看出,基于網頁結構特征的集成學習器相較基學習器而言,具有更高的Accuracy 和Precision 和F1值,Recall 小幅下降,這說明采用本研究提出的方式,網頁黑名單判別的效果更好??梢宰C明,隨著網頁結構特征概念的引入,模型的各方面效果都得到了提升。All Text 學習器是網頁HTML全文本訓練的ACNN學習器。
實驗分析 與Tags3、Tags4、Tags5基學習器相比,EACNN的Recall略有下降。這是因為Accuracy和Recall互相影響,集成學習的策略為理想狀態(tài)下追求兩個值均高為優(yōu),但實際情況是兩者相互“制約”:追求準確率高,則召回率就低;追求召回率高,則會影響準確率。在集成學習方式選擇上采用粒子群智能算法逼近真實答案,這是一種追求準確率的方式,因此會損失一部分召回率作為代價,由于F1值的提升,證明了集成學習能夠提升模型整體性能。此外,本文發(fā)現基于Tags1 和Tags2數據的基學習器的整體性能優(yōu)于其他基學習器,這說明網頁的標題和元描述數據更好地包含了關于Web 頁面特征的信息,且此類數據的樣本長度較短,易于提取特征且噪聲信息少。實驗結果發(fā)現引入不同網頁標簽特征的EACNN 模型的判別效果優(yōu)于單一基學習器,說明采用集成學習方法在引入網頁結構特征的同時對網頁黑名單判別有積極作用。
本文提出一種基于注意機制和集成學習的網頁黑名單判別方法。本方法依據網頁HTML 標簽類型構建多個網頁黑名單判別的基學習器?;鶎W習器采用詞向量表達和注意力的卷積神經網絡進行特征提取,經過Sigmoid 函數進行二分類輸出。然后采用基于網頁結構特征的集成學習方法對基學習器的輸出進行權重賦值,形成引入網頁結構特征的最終輸出結果,實現網頁黑名單的判別。通過設計樣本長度實驗、基線模型對比實驗和集成效果性能實驗多角度的觀察本方法的性能。實驗結果表明,本方法構建的EACNN 模型性能在整體性能上優(yōu)于其他基線模型,證明了引入基于網頁結構特征的集成學習和注意力機制能夠更好地提取網頁結構和文本特征,使網頁黑名單的構建效果更好,說明本方法能夠為凈化互聯網環(huán)境做出貢獻。未來我們計劃開展網頁多分類工作的研究,結合知識圖譜技術,實現面向互聯網資源的知識抽取,達到提升互聯網信息檢索的效率和質量的期許。