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