王寶亮,陳偉寧,潘文采
(1.天津大學信息與網(wǎng)絡中心,天津300072; 2.天津大學國際工程師學院,天津 300072; 3.天津大學電氣自動化與信息工程學院,天津 300072)
在互聯(lián)網(wǎng)技術迅猛發(fā)展的背景下,用戶畫像技術被廣泛應用于危險檢測、大數(shù)據(jù)、新聞推薦等各個領域,其核心是通過對用戶各類行為進行分析,從而將用戶特征抽象為標簽形式。在校園網(wǎng)絡行為日志中,關于用戶行為的描述信息可分為兩大類,一類是用戶使用的APP名稱、類別及使用時間、使用時長等各類附加屬性,另一類則是用戶訪問的URL地址及其各類附加屬性,校園網(wǎng)絡日志工具并未對URL進行分類,但判斷此類別卻對準確描述用戶行為特征具有極其重要的意義。
本文以真實校園網(wǎng)絡行為日志為基礎,對校園網(wǎng)絡用戶畫像進行了深入研究。文獻[2]通過網(wǎng)絡訪問日志得出的學生興趣雷達圖,采用一種基于互信息和關聯(lián)規(guī)則的文本特征提取方法分析用戶的潛在興趣。文獻[3]針對傳統(tǒng)的機器學習分類方法基本沒有考慮文本數(shù)據(jù)特征,提供無差別的分類服務的問題,提出以文本標題為突破口實現(xiàn)快速分類。
與上述文獻不同,為了提高模型的準確率,本文所提模型不僅提取了URL對應網(wǎng)頁中的特征文本內容用于詞向量訓練,還提取并壓縮了網(wǎng)頁的DOM(Document Object Model)樹結構,構建了壓縮DOM樹結構向量。在生成文本特征向量時,利用TF-IDF方法將每個詞向量賦予不同的權重。在生成DOM樹結構特征向量時,考慮到3個問題:1)在單一網(wǎng)頁中相同結構出現(xiàn)頻次的問題,2)在不同網(wǎng)頁間各類結構總數(shù)的差異問題,3)未過濾出現(xiàn)次數(shù)較少的結構,導致向量數(shù)目巨大且不統(tǒng)一的問題。本文所提方法對DOM樹結構進行了壓縮,生成壓縮結構向量。最后將文本特征向量和DOM樹結構向量進行融合后,通過分類器進行分類并輸出分類結果。
DOM的本質是基于樹的應用程序接口,用于表示整個網(wǎng)頁的文檔模型。該模型將網(wǎng)頁表達為樹形結構,各層標簽即為樹的節(jié)點,因此可以系統(tǒng)描述網(wǎng)頁標簽之間的層級關系,同時提供相應的操作規(guī)范以方便渲染和修改標簽內容。
為了增加DOM樹結構中各節(jié)點與網(wǎng)頁主題的關聯(lián)性以提高刻畫網(wǎng)頁特征的能力,通??蓪⒐?jié)點分為表1中的5種類別。
事實上,不同類型網(wǎng)站中的網(wǎng)頁DOM樹在節(jié)點使用和整體結構上都具有其特殊性。例如,圖1左側是常見購物類網(wǎng)站中頻繁存在的圖片鏈接與商品描述的捆綁型結構,可將該結構表示成右側的DOM樹結構。需要注意的是,部分視頻類網(wǎng)站也存在大量該結構,但在其它布局結構上與購物類網(wǎng)站存在一定區(qū)別。
表1 常見DOM樹節(jié)點類別
圖1 購物網(wǎng)站商品捆綁型結構與對應DOM樹案例圖
又如,新聞類網(wǎng)站通常是以圖2左側所示的較為聚集的文本鏈接結構呈現(xiàn),可將該結構表示成右側的DOM樹結構。
圖2 新聞網(wǎng)站鏈接聚集型結構與對應DOM樹案例圖
由此可見,對于類別差異較大的網(wǎng)站,其網(wǎng)頁結構各具特點,這些特點在一定程度上為網(wǎng)頁類型的判別提供了支持。
本文提出了如圖3所示的融合壓縮DOM樹結構向量的行為類別標簽預測模型。
圖3 融合壓縮DOM樹結構向量的行為類別標簽預測模型
模型構建過程主要分為文本特征向量生成、DOM樹結構向量生成以及向量融合三個部分,融合后的向量即可通過分類器進行分類。
本部分旨在通過對網(wǎng)頁中的關鍵信息進行合理利用以達到生成文本特征向量的目的,因此應充分挖掘其中最能表達網(wǎng)頁特征的元素。傳統(tǒng)做法通常是使用爬蟲程序獲取網(wǎng)頁中全部標簽內的文本并以此進行詞向量模型的構建,這種做法存在明顯缺點,因為全部文本信息中必然存在大量的噪聲元素,例如用戶在購物網(wǎng)站中瀏覽了一篇運動主題文章,則最終結果極可能將行為標簽預測為“運動”類別。為了增強預測準確性,本文在深入研究網(wǎng)頁結構及元素后,將表2所示的網(wǎng)頁標簽元素作為語料信息。
本文選取4類網(wǎng)頁標簽內容作為語料輸入信息。需要說明的是,當網(wǎng)頁中標簽數(shù)量不足50個時,則從第一個標簽開始,依次將標簽中的內容寫入空余位置,直至補全所有空位。另外,少量編寫不規(guī)范的網(wǎng)頁不包含所選兩類標簽,此時將隨機選取5個標簽中的內容寫入對應位置,以平衡每段文本的信息量。
表2 文本語料提取信息
以上述文本語料為基礎,將文本進行分詞操作以保證文本被切割為最小單詞形式,并對其中不具有特征的詞進行去停用詞過濾處理,然后將語料信息作為樣本,使用詞向量模型進行詞向量的訓練,從而得到文本中每一個詞所對應的詞向量。
而在表示整段文本特征向量時,傳統(tǒng)方法通常使用詞向量均值模型,將文本中所有詞的詞向量加和取平均后,作為整段文本的特征向量,即
(1)
其中()表示詞的詞向量,()表示文本的特征向量,為文本的詞數(shù)量。
上述方法可以在不同文本之間詞數(shù)量不相等的情況下,以相同維度的向量表征文本。但該方法也存在明顯的缺陷,即在未考慮每個詞重要程度的情況下,為所有詞賦予了相同的權重,這與實際情況是違背的。故本文根據(jù)文獻[9]所提方法,結合TF-IDF原理,計算每個詞的權重,并在引入權重后進行加權平均,最終表示整段文本的特征向量,過程如下:
首先計算詞頻
(2)
式中為特征詞在文本中出現(xiàn)的次數(shù),為文本中特征詞總數(shù),則可以衡量特征詞在文本中的重要程度。
然后計算逆文本概率
(3)
式中為文本總數(shù),為包含特征詞的文本數(shù),則可以衡量特征詞在所有文本中的重要程度。
結合式(2)和式(3)可得,特征詞權重為
-=×
(4)
因此,引入詞權重的文本特征向量表示方法可由式(1)改寫為
(5)
由上式即可構建考慮詞權重的文本特征向量。
上文提到,不同類型網(wǎng)站中的網(wǎng)頁DOM樹在節(jié)點使用和整體結構上都具有一定特點,因此可將DOM樹的結構轉化為向量,并作為輔助條件與文本特征向量融合,構建成最終的融合向量。
本文在參考相關文獻[10-12]并對各類網(wǎng)頁的DOM樹結構進行深入考察和統(tǒng)計后發(fā)現(xiàn),網(wǎng)頁DOM樹結構中出現(xiàn)標簽的類別一般較為固定且網(wǎng)頁核心內容的DOM節(jié)點深度一般為5-10層,最多不超過15層,因此篩選了如表3所示的出現(xiàn)頻率最高的非
表3 DOM樹結構中14類頻率最高的標簽
在上述研究的支持下,進行DOM樹結構向量的構建。需要提出的是,在文獻[13]中,作者使用了類似的思路,提取網(wǎng)頁中的全部DOM樹結構,并構建20維向量。但該方法未對向量做任何處理,以0-1標注的形式表示標簽出現(xiàn)位置,未考慮在單一網(wǎng)頁中相同結構出現(xiàn)頻次的問題以及在不同網(wǎng)頁間各類結構總數(shù)的差異問題,且未過濾出現(xiàn)次數(shù)較少的結構,因此該方法必然導致向量數(shù)目巨大且不統(tǒng)一。
本文所提方法對DOM樹結構進行了二次壓縮,能有效降低向量冗雜度并篩選出高頻向量,改善上述方法中的缺點。本文將DOM樹結構向量初始維度設置為15維,并在此向量中按DOM樹的節(jié)點順序以
=[,,…,]
(6)
當多次重復出現(xiàn)相同結構時,可將該結構進行壓縮簡化表達,則在向量末尾追加一維從而構成16維向量,向量可改寫為:
=[,,…,,]
(7)
而在通常情況下,網(wǎng)頁中的結構有幾種或十幾種,均以不同頻次出現(xiàn),則可初步將DOM樹結構的全部向量表示為矩陣形式:
(8)
根據(jù)(8)構建出的結構向量具有明顯特點,即都以多個
例如如下向量:
[1,1,1,1,8,3,2,0,0,0,0,0,0,0,0,108]
在經(jīng)過上述轉化過程后成為
[8,3,2,0,0,0,0,0,0,0,0,0,0,0,0,108]
即去除了所有的起始“1”標簽編號,將關鍵項提前,并用“0”補全原向量維數(shù)。
另一方面也可以發(fā)現(xiàn),不同DOM樹的子結構出現(xiàn)頻次差異較大,而出現(xiàn)頻次低的往往是網(wǎng)頁整體框架或其它非標志性板塊。為提取出網(wǎng)頁中比例最大、出現(xiàn)最頻繁的DOM結構,可再次對向量進行壓縮,去除頻次低的向量,只保留出現(xiàn)頻次最高的前5位。同時,考慮到網(wǎng)頁之間的容量差異,將出現(xiàn)頻次統(tǒng)一為位次高低形式而不使用比例形式。則此時的DOM樹結構向量通式為
[,,…,,5]
[,,…,,4]
[,,…,,3]
(9)
[,,…,,2]
[,,…,,1]
此外,若因網(wǎng)頁容量較小而不足以提取出至少5類結構時,則使用0補全后續(xù)向量。最后將上述5行向量進行扁平化壓縮,得到最終的壓縮樹結構向量形式為:
[,…,5,,…,4,,…,3,,…,2,,…,1]
(10)
上述壓縮樹結構向量生成過程如下:
算法1:壓縮樹結構向量生成算法
輸入:遍歷后的樹矩陣
輸出:壓縮樹特征向量
初始化:123
1)查找中的所有相同項共類,記錄每一類中相同項的重復數(shù)目、2,…,;
2)根據(jù)式(7),將行向量1,2,…,均統(tǒng)一為16維,前15位存放節(jié)點標簽編號,末位存放對應類別的重復數(shù)目,存入1;
3)刪除1中每行向量最前方的標簽編號“1”,并將每行向量重新補全為16維,存入2;
4)篩選出2中重復數(shù)目最多的前5位21、22、23、24和25,存入3;
5)根據(jù)式(9),將3中5行向量依照末位數(shù)的大小改寫為5、4、3、2、1;
6)根據(jù)式(10),將3中5行向量壓縮為一行并存入;
7)
在得到文本特征向量和樹結構向量之后,對向量進行融合,首先設文本的特征向量形式為
=[1,2,…,]
(11)
其中表示文本特征向量的維數(shù),該維數(shù)在詞向量訓練過程中定義。
對應樹結構向量形式如(10)所示,為簡化表達,將其改寫為
=[1,2,…,]
(12)
其中表示樹結構向量的維數(shù),在本文中為80維。
則將二者融合后得到融合向量形式為
=[1,2,…,,1,2,…,]
(13)
融合后的向量即可通過分類器進行分類。
本文使用的數(shù)據(jù)集為Amazon數(shù)據(jù)集和DMOZ數(shù)據(jù)集。Amazon數(shù)據(jù)集是在Amazon的Alexa網(wǎng)址排名網(wǎng)站中獲取的URL集合,共分為10類,每類3000條,共30000條數(shù)據(jù)。DMOZ數(shù)據(jù)集則是在DMOZ網(wǎng)址分類網(wǎng)站中獲取的URL集合,也分為相同的10類,每類800條,共8000條。其中數(shù)據(jù)是使用爬蟲程序爬取對應URL而獲取的網(wǎng)頁所有標簽符號及標簽內容,爬取過程中已經(jīng)使用遞歸方式對每一棵DOM樹進行了遍歷。類別是在參考網(wǎng)站中的分類類別以及校園網(wǎng)絡行為日志中的APP類別后進行整理合并來確定的,分為“游戲”、“影視”、“音樂”、“社交”、“閱讀”、“學習”、“購物”、“運動”、“新聞”和“服務”。上述兩種數(shù)據(jù)集均采取4:1的比例劃分訓練集和測試集。
實驗運行的系統(tǒng)環(huán)境為macOS Catalina 10.15.3,硬件環(huán)境為2.6GHz 六核 Intel Core i7 CPU以及32G 2667MHz DDR4內存,軟件環(huán)境為Python 3.8.1。
在詞向量構建部分,使用jieba分詞庫進行分詞操作,使用整理后的stopwords.txt進行去停用詞操作。使用gensim函數(shù)庫訓練Word2vec模型,其中模式sg設置為Skip-Gram,詞向量維數(shù)size設置為100維,上下文窗口大小window設置為8,最小詞頻mincount調低為1,其余參數(shù)設置為默認值。TF-IDF過程使用Scikit-learn中的CountVectorizer和TfidfTransformer完成。GloVe詞向量訓練過程使用python-glove庫,詞向量維數(shù)仍然設置為100維。
在分類器部分,分別使用Scikit-learn提供的naive_bayes中的MultinomialNB實現(xiàn)樸素貝葉斯分類,linear_model中的LogisticRegression實現(xiàn)邏輯回歸分類,以及svm中核參數(shù)少且速度快的LinerSVC實現(xiàn)支持向量機分類。
在評價部分,使用F(F-Measure)值作為評價指標
(14)
式中為準確率(Precision),為召回率(Recall),計算公式分別為
(15)
式中代表被正確分類的樣本數(shù),代表不屬于該類別卻被誤分到該類別的樣本數(shù)
(16)
式中代表屬于該類別卻未被分入該類別的樣本數(shù)。
實驗共分為兩部分。一部分是為了比較使用2均值模型(以下簡稱)、2+-權值模型(以下簡稱)以及均值模型(以下簡稱)三類方法構建出的詞向量模型分別進行分類的效果,設置實驗的原因在于該模型本身使用了共現(xiàn)矩陣的方法,不僅考慮了詞在上下文中的關聯(lián)度,還考慮了詞在全語料中的出現(xiàn)情況,因此將其作為探索性實驗以比較其與之間的性能差異。分類器使用了樸素貝葉斯(以下簡稱)、邏輯回歸(以下簡稱)以及支持向量機(以下簡稱)。另一部分實驗則是在得出、和三類方法中的最優(yōu)方法后,使用最優(yōu)方法比較不融合樹結構向量(以下簡稱)、文獻[13]中融合未壓縮樹結構向量(以下簡稱)以及本文所提融合壓縮樹結構向量(以下簡稱)三類方法的效果,分類器仍然使用、和三種。
表4、5和6分別列出了三類不同分類器結合三種不同文本特征向量模型的分類效果平均值,由于在兩種數(shù)據(jù)集上的實驗結果差異不大,因此將兩者加權平均后得出表中實驗數(shù)據(jù),本組實驗未融合樹結構向量。
表4 NB分類器結合Wa、WT及Ga的分類F1平均值
表5 LR分類器結合Wa、WT及Ga的分類F1平均值
表6 SVM分類器結合Wa、WT及Ga的分類F1平均值
從整體上看,無論使用哪種模型組合方式,“游戲”、“影視”、“音樂”和“購物”這4種類型的分類效果較好,而“閱讀”“學習”、“運動”和“服務”這4種類型效果不太理想。從文本特征向量模型上看,W模型和G模型相比于W模型均有不同程度提高,W模型的提升率在1.3%~5%之間,提升幅度較為平穩(wěn);而G模型的提升率在0.4%~5.7%之間,但表現(xiàn)極不穩(wěn)定,并且在某些類別上的效果低于W模型。從分類器上看,NB效果一般,LR和SVM均在某些類別上呈現(xiàn)出良好的效果。
圖4則是將表中10種類別取平均值后的柱狀圖對比效果,由圖像可以看出,WT模型和Ga模型相比于Wa模型,在最終的平均值上均有不同程度提升,WT模型平均提升率為2.3%,Ga模型平均提升率為1.4%。因此綜合考量模型的穩(wěn)定性和總提升率,決定在下一部分實驗中使用WT模型來進行。
圖4 三種分類器結合Wa、WT及Ga的分類F1平均值
表7 NB分類器結合WT、WTD及WTDc的分類F1平均值
表8 LR分類器結合WT、WTD及WTDc的分類F1平均值
表9 SVM分類器結合WT、WTD及WTDc的分類F1平均值
表7、8和9分別列出了三類不同分類器結合三種不同樹結構向量的分類效果1平均值,數(shù)據(jù)使用了數(shù)據(jù)集和數(shù)據(jù)集,將兩者加權平均后得出表中實驗數(shù)據(jù)。
由數(shù)據(jù)可知,文獻[12]所提WD方法與未引入DOM樹結構向量的W方法相比,提升率在0%~3%,提升幅度較為平穩(wěn),雖然在某些類別上存在下降趨勢,但數(shù)值較小,整體上取得了不錯的效果。本文所提WD方法與W方法相比,提升率在0.1%~5.3%,提升幅度較為平穩(wěn),尤其在“新聞”和“服務”類別上,獲得了大幅度提升,但值得注意的是,“閱讀”類別存在下降趨勢。從分類器上看,仍然是NB效果一般,LR和SVM效果較好。
圖5 三種分類器結合WT、WTD及WTDc的分類F1平均值
圖5則是將表中10種類別取平均值后的柱狀圖對比效果,由圖像可以看出,WD模型和WD模型相比于W模型,在最終的平均值上均有不同程度提升,WD模型平均提升率為0.9%,而本文所提WD模型平均提升率為1.6%。
為了解決現(xiàn)有的校園網(wǎng)絡行為日志分析僅考慮文本內容而忽視結構信息,導致對學生行為類別表述模糊的問題,提出了融合壓縮樹結構向量的行為類別標簽預測模型。在生成文本特征時,區(qū)別于基于詞向量的均值模型,本文為每個詞向量賦予不同權重。在生成結構特征時,將樹的結構轉化為向量,并作為輔助條件與文本特征向量融合,構建成最終的融合向量。實驗結果表明,所提的模型的1值相較于比較的方法平均提升率為16,從而驗證了算法的有效性。