康海燕, 王紫豪,2, 于愛民, 譚雨軒
(1. 北京信息科技大學 信息管理學院 北京 100192; 2. 邁阿密大學 計算機科學系 美國佛羅里達州科勒爾蓋布爾斯 33146; 3. 中國科學院 信息工程研究所 北京 100093)
隨著網(wǎng)絡與信息資源的飛速發(fā)展,網(wǎng)絡搜索引擎已成為人們獲取信息的主要途徑,網(wǎng)絡搜索日志包含了用戶的行為和需求,從網(wǎng)絡日志可以判斷出一個人的性格,甚至可以預測用戶接下來要做的事情,這在安全領域尤其重要,可以根據(jù)用戶接下來的行為判斷哪些用戶可歸為危險人群,如黑客經(jīng)常使用社會工程學的方法,利用人的弱點進行攻擊.如用戶信息泄露,犯罪分子在網(wǎng)絡上搜索用戶的身份信息、手機號碼等實施盜取賬號資金的目的.黑客首先進行信息偵探,收集名字、電話號碼、身份證號等信息,從而偽裝用戶以實現(xiàn)對服務器端的欺騙,盜取用戶賬戶.因此,如果安全部門通過分析網(wǎng)絡日志,便可判斷出危險的人群,甚至可以知道這類人群甚至特定的人接下來要做的事,就可以提前預警,防范危害的發(fā)生.目前,用戶行為分析在日志中對用戶所需要的信息檢索和提取行為特征的研究已經(jīng)取得一定的進展.
信息檢索方面,文獻[1]指出了在大數(shù)據(jù)時代下,搜索引擎采用云計算分布式架構,對各個服務器進行分析,并按查找結果的相似度高低進行排序.文獻[2]提出了基于上下文分詞的特征表示.將分詞利用Word2vector進行向量表示,并進行聚類.文獻[3]提出了基于后綴樹聚類算法的搜索引擎,將具有多重含義的關鍵詞搜索結果以聚類的方式呈現(xiàn),避免用戶花更多時間篩選有用的信息,提高搜索效率.
提取行為特征方面,文獻[4]中提取了chrome瀏覽器的搜索日志,利用日志存儲于數(shù)據(jù)庫的特點,從數(shù)據(jù)庫中提取數(shù)據(jù),但分析結果僅局限于瀏覽器搜索日志已搜索過的關鍵詞和現(xiàn)有的URL,并未從日志中進行進一步的數(shù)據(jù)挖掘與預測,不具有延展性.文獻[5]提出了針對用戶的商業(yè)意圖的架構,借助電商的瀏覽歷史記錄和商品網(wǎng)頁點擊情況,統(tǒng)計搜索詞與商品類目之間的關系,采用概率論的方法進行預測,得出了用戶商業(yè)意圖,但該方法僅適用于電商領域,無法應用于復雜多變的社會工程環(huán)境.文獻[6]提出了用戶行為具有隱蔽性強、主動性強、復雜多樣的特點.該研究將行為進行分類并采用K-means算法進行行為分析,但K-means算法結果精確度不高.文獻[7]基于Spark平臺,以網(wǎng)絡日志中的URL作為研究對象,并對URL進行查詢擴展,結合Word2vec模型,采用類層次聚類算法ISKHC對搜索日志進行用戶聚類分析,與K-means算法相比,ISKHC的聚類質(zhì)量更高.文獻[8]提出了基于多層感知器神經(jīng)網(wǎng)絡的用戶垃圾郵件的分類,分類效果相比機器學習算法更加準確,但神經(jīng)網(wǎng)絡中權值的存儲消耗較大的內(nèi)存空間,訓練需要大量樣本.文獻[9]提出了基于卷積神經(jīng)網(wǎng)絡的特征識別,權值共享的特點減少了多層感知器神經(jīng)網(wǎng)絡的空間復雜度和訓練樣本數(shù)量.文獻[10]將以神經(jīng)網(wǎng)絡為主導的深度學習算法和機器學習算法進行比較,深度學習算法的效率和準確度優(yōu)于機器學習算法.
因此,針對目前信息檢索與提取行為特征技術的不足,本文參考文獻[7]中將URL查詢進行擴展和關鍵詞聚類的方法,對上網(wǎng)時用戶的搜索日志,采用基于機器學習的數(shù)據(jù)挖掘算法,提出了基于網(wǎng)絡日志的用戶性格特征分析及行為預測方法,進行關鍵詞類目以及瀏覽日志搜索項之外的行為預測,從而提供更廣泛、精確的安全預警.
基于網(wǎng)絡日志的用戶行為分析與預測方法流程如圖1所示.主要包括日志獲取、日志預處理、核心算法以及輸出結果4個模塊.
圖1 基于網(wǎng)絡日志的用戶行為分析與預測方法流程Fig.1 Process of analysis and prediction of user behavior based on web log
源日志主要來自于搜索引擎服務器或網(wǎng)絡爬蟲,將爬蟲系統(tǒng)與各個站點連接,從而獲取網(wǎng)絡日志.目前常用的爬蟲系統(tǒng)有百度統(tǒng)計、cnzz等.本研究采用搜狗實驗室2008年6月部分網(wǎng)頁查詢需求及用戶點擊情況的網(wǎng)頁查詢?nèi)罩?數(shù)據(jù)格式為:“用戶|查詢詞|該URL在返回結果中的排名|用戶點擊的順序號|用戶點擊的URL”.日志樣本如表1所示.(本文選取個體用戶查詢信息多于8條的用戶作為實驗對象).
定義1同義詞集合. 同義詞集合包含該詞以及具有與該詞含義相同或相近詞的集合.
定義2上位詞. 上位詞指概念范圍更廣的詞.如“車”是“汽車”的上位詞;“交通工具”是“車”的上位詞.同位詞集合包含于上位詞中.
1.2.1性格模型的構建 性格模型的構建包含兩部分:(1) 性格的劃分;(2) 上位詞的分類與選取.本研究參照大五人格理論[11],性格包含開放性、責任心、外傾性、宜人性和情緒化人格.人們受社會環(huán)境、社會文化和各種思潮的影響,性格特點具有多樣性,其多樣性根據(jù)大五人格理論可大致分為積極、中級與消極3個方面.通過結合個人特點的自身優(yōu)勢、不足進行客觀的評價.根據(jù)文獻[12],人們接觸到多元的價值觀,接受主流思想,具有思維活躍、勇于展現(xiàn)自我、熱情奔放、社會責任感強、團隊合作意識、創(chuàng)新意識、感恩意識等特點,具體性格表現(xiàn)與相關分類如表2所示.上位詞的分類可分為自然科學類詞匯與社會科學類詞匯.自然科學類詞匯選取軍事、科技、體育、旅游、食物5類;社會科學類詞匯選取史政、文藝、社會、娛樂、美容5類.劃分的依據(jù)有:(1) 自然科學與社會科學本身的特點,例如科技、史政、文藝等標志明顯詞匯;(2) 依據(jù)人的性格特點,如社會責任感強的人,會討論并分析國家時事,故有一定概率關注軍事類內(nèi)容.興趣廣泛的人通常性格開朗,會有一定概率關注體育類、旅游類內(nèi)容,而體育類和旅游類需要團體的配合與周密的安排,符合自然科學類的特點.社會科學類詞匯傾向于發(fā)散思維,考慮到多方面,例如社會、娛樂.社會科學類思維的人不喜拘束,隨性,故有一定概率關注美容類,其涉獵范圍廣,人們關注范圍廣,符合社會科學類的性格特點.包含上位詞的用戶標準性格特征向量庫如表2所示.表2中數(shù)字代表不同性格的人群搜索的具有相同上位詞的關鍵詞個數(shù)的百分比的統(tǒng)計平均值.
表1 日志樣本Tab.1 Log samples
表2 性格模型與性格關鍵詞分類Tab.2 Classification of character models and character keywords %
1.2.2預處理算法 預處理算法如下(算法1).
輸入: 用戶的原始日志.
輸出: 用戶的特征向量.
步驟1 首先對原始日志中URL進行爬取,獲取網(wǎng)頁摘要并加入用戶日志中;
步驟2 找出日志中的關鍵詞,統(tǒng)計搜索關鍵詞的個數(shù);
步驟3 統(tǒng)計關鍵詞的上位詞出現(xiàn)的個數(shù);
步驟4 求得每類上位詞占所有上位詞的比例并將比值以百分比形式構成特征向量.
算法1舉例:輸出結果例如表1樣本中用戶125254918559和828687165269,搜索的上位詞比例構成的向量分別為125254918559: (0.0, 20.0, 0.0, 0.0, 0.0, 40.0, 20.0, 0.0,0.0, 20.0);828687165269: (25.0,56.25, 0.0, 0.0, 0.0,0.0,12.5,6.25,0.0,0.0).
核心算法主要包含兩個算法:(1) 基于余弦相似度特征聚類的性格分析算法;(2) 基于粗糙集模糊分析的行為預測算法.基于余弦相似度特征聚類的性格分析算法在構建上述標準性格特征向量庫的基礎上,對新日志中各類上位詞的比例進行統(tǒng)計,與向量庫中每一行進行余弦相似度比較,夾角越小,越接近其性格特征向量.求得余弦值最大的分量,即夾角最小的分量,即可得出其性格特征.基于粗糙集模糊分析的行為預測算法采用知識簡約的方法,將性格特征向量庫中的性格進一步分為積極、中級和消極3個等級.關鍵詞的上位詞進一步分為自然科學類和社會科學類詞匯,將兩類詞匯的搜索比例分為3個等級.分析3個因素(性格等級,自然科學詞匯等級,社會科學詞匯等級)的不同組合,共有33=27種組合,將27種組合參考霍蘭德職業(yè)性格傾向測試結果[13],可得具有27種行為方向的行為庫.將用戶日志中的3個因素做相同處理,與行為庫進行比對,輸出符合的行為.
1.3.1核心算法的理論基礎 (1) 相似度計算方法.常用的相似度算法包括歐氏距離相似度和余弦相似度[14-15].本研究采用余弦相似度進行性格分析.因為余弦相似度是從方向上區(qū)分差異,而對絕對的數(shù)值不敏感,所以更多用于用戶對內(nèi)容評分來區(qū)分興趣的相似度和差異,同時修正了用戶間可能存在的度量標準不統(tǒng)一的問題.因此本文采用余弦相似度算法來計算用戶性格模型之間的相似度.(2) 粗糙集理論.粗糙集是一種刻畫不完整性和不確定性的數(shù)學工具[16-17],能有效地分析不精確、不一致、不完整等各種不完備的信息,還可以對數(shù)據(jù)進行分析和推理,從中發(fā)現(xiàn)隱含的知識,揭示潛在的規(guī)律.粗糙集理論的主要思想是利用已知的知識庫,將不精確或不確定的知識用已知的知識庫中的知識近似刻畫.粗糙集理論核心是知識簡約.
定義3近似.K=(U,S)為給定的知識庫,U表示論域,S為U上的等價關系簇.則?X?U和U上的一個等價關系R∈IND(K),如圖2所示,子集X關于知識R的上近似和下近似分別為:
定義4知識簡約. 知識庫中的知識并非同等重要,有知識冗余.知識簡約是將一些五環(huán)或多余特征丟棄,在不影響原有分析的前提下將信息量減少.即在不影響原知識分類的情況下,將n維信息空間{x1,x2,…,xn}減小為m維信息空間{x1,x2,…,xm},(m 知識表達系統(tǒng)是粗糙集理論中主要的知識表示方法,記為S=(U,A,V,f),其中:U表示對象的非空有限集合,即論域;A為屬性的非空有限集合,即屬性集;V=∪α∈AVα,Vα表示屬性α的值域;f為U×A→V,為信息函數(shù),為每個對象的每個屬性賦予一個信息值,即?α∈A,x∈U,f(x,α)∈Vα.因此知識表達可以用表格來實現(xiàn).如表3所示,其中:U={x1,x2,…,xn}為論域;A={P,P2,…,Pn}為全體屬性集合. 表3 知識表達系統(tǒng)Tab.3 Knowledge representation system 圖2 集合X的上近似、下近似、邊界域示意圖Fig.2 Schematic of the upper approximation, lower approximation, and boundary domain of set X 1.3.2基于余弦相似度特征聚類的性格分析算法 從未知性格的新用戶中提取出日志中的關鍵字并統(tǒng)計其上位詞分別出現(xiàn)的頻率,求得統(tǒng)計平均值.用關鍵字的上位詞所占比例構建特征向量,并與標準性格特征向量庫中的分量進行相似度計算.得出的差值越小,表明越接近該行向量,進而得出用戶在標準性格特征向量庫中最接近的性格,即為本用戶的性格. 基于余弦相似度特征聚類的性格分析算法如下(算法2). 輸入: 用戶的特征向量(由算法1輸出生成). 輸出: 用戶的性格特征. 步驟1 構建性格模型向量集合; 步驟2 構建用戶測試向量; 步驟3 相似度比較,找出特征向量庫中余弦值最大的分量; 步驟4 輸出該分量對應的性格特征. 算法2舉例.輸出結果例如表1樣本中用戶125254918559的性格特征:家庭觀念強、自立自強、尊老愛幼(較好的家庭觀念/體恤父母/自立自強/理解父母的艱辛與良苦用心/吃苦耐勞,適應力強),歸為積極性格;用戶828687165269的性格特征為:缺乏溝通技巧(溝通不暢/表達能力差/與他人關系緊張/朋友圈子較小/容易遭遇尷尬),歸為消極性格. 用戶性格趨向是用戶性格特征向量與標準性格特征向量庫中行向量的相似度的反映.矩陣M為標準性格特征向量庫,C1~Cn表示上位詞,W1~Wn表示上位詞比例權重的平均值. 1.3.3基于粗糙集模糊分析的行為預測算法 首先將性格與各個上位詞搜索百分比作為知識庫.然后將性格簡約為積極、中級和消極.上位詞簡約為自然科學類詞匯的百分比和社會科學類詞匯的百分比.最后根據(jù)百分比所在不同區(qū)間,分別將自然科學類詞匯和社會科學類詞匯簡約為3個等級. 基于粗糙集模糊分析的行為預測算法如下(算法3). 輸入: 用戶的性格特征(由算法2輸出生成),用戶的特征向量(由預處理算法輸出生成). 輸出: 用戶的行為預測. 步驟1 構建長度為4的索引表,表的二維數(shù)組作為行為分析庫; 步驟2 構建長度為3的一維數(shù)組分別表示性格等級、自然科學詞匯等級與社會科學詞匯等級; 步驟3 將用戶測試向量中關鍵詞按照自然科學類和社會科學類分別求統(tǒng)計平均值并劃分等級,存入一維數(shù)組對應的空間中; 步驟4 劃分用戶性格等級,存入一維數(shù)組對應的空間中; 步驟5 將一維數(shù)組在行為分析庫中匹配對應的行,輸出行為. 算法3舉例.輸出結果例如表1樣本中用戶125254918559的行為預測結果:理科類與文科類興趣比例約為1∶3(社會責任感強,擅長分析政治局勢/關注國家政策/喜歡政治類的新聞、報紙、名人自傳);用戶828687165269的行為預測結果:理科類與文科類興趣比例約為3∶1(自閉/對科學內(nèi)容有較高理解力,如計算機、物理、生物/可能采取技術性的極端行為,對他人造成人身/財產(chǎn)傷害). 首先將性格按照積極、中級、消極劃分為3個等級;然后將用戶搜索日志中自然科學類中5類詞匯的比例求和,得到自然科學類詞匯的比例.將百分比按照[0,33),[33,66),[66,100]3個區(qū)間分為3個等級.社會科學類詞匯同理.因此,A={性格等級,自然科學類詞匯等級,社會科學類詞匯等級},U={x1,x2,…,x27}.對屬性集不同元素的27種組合,根據(jù)霍蘭德職業(yè)性格傾向測試結果對每種情況分別進行分析,建立行為分析庫,行為的集合即為U.其中消極性格記為1,中級性格記為2,積極性格記為3.自然科學和社會科學詞頻將百分比按照[0,33)記為1,[33,66)記為2,[66,100]記為3.x1~x27表示行為的編號. 最后將用戶的屬性集合與行為分析庫比對,找到使用戶屬性集與行為分析庫中的屬性集相等的記錄,輸出符合的行為特征. 操作系統(tǒng)為Win7 32位/64位,采用Java語言編寫,所用IDE為Eclipse Java Mars.采用2008年搜狗實驗室發(fā)布的開源匿名網(wǎng)絡日志,選取一天內(nèi)的數(shù)據(jù),共51.0 MB,包含1 030 577條日志,選取搜索項大于8條的個體用戶作為測試數(shù)據(jù).本實驗在搜狗實驗室日志中用隨機抽樣的方法選取10 000個符合條件的用戶進行測試. 實驗內(nèi)容包括3部分:(1) 測試個體用戶性格分析的準確性;(2) 測試個體用戶行為預測的準確性;(3) 測試群體中危險用戶的比例.測試選取不同日志條數(shù)下的多個用戶,剔除上位詞頻率分布僅集中在個別上位詞的用戶,分別進行日志條數(shù)與性格準確率關系、日志條數(shù)與行為準確率關系的測試. 2.2.1測試個體用戶性格分析的準確性 實驗選取不同搜索條數(shù)的測試日志進行實驗,測試日志不包括訓練日志,性格準確率定義為分析出的性格條目描述(共5條)在源日志上位詞中的命中率,即符合上位詞內(nèi)容的條目/總條數(shù).命中率范圍為(0,1).命中率越高,說明該系統(tǒng)對個體用戶的評價越準確.本實驗將不同用戶按照日志條數(shù)與性格準確率作散點圖,并進行曲線擬合.測試結果如圖3所示,其中每個點代表一個用戶,橫坐標對應值代表該用戶日志的條數(shù),縱坐標表示準確率. 結果分析:(1) 隨著個體日志條數(shù)的增加,個體性格準確率呈現(xiàn)先上升,后下降,再上升的趨勢;(2) 準確率呈現(xiàn)上升趨勢的日志條數(shù)區(qū)間約為(0,13)、(30,+∞),下降趨勢區(qū)間為(13,30);(3) 開始日志條數(shù)較少時,隨著日志條數(shù)的增加,準確率會相應增加.當日志條數(shù)相對較多時,用戶搜索結果出現(xiàn)多樣性,而與性格傾向有所偏移,形成干擾.當樣本容量足夠大時,符合用戶性格的搜索所占比例遠大于其他搜索項.因此日志條數(shù)足夠多時,性格準確率顯著增加. 2.2.2測試個體用戶行為預測的準確性 行為準確率定義與測試性格分析準確性定義類似.區(qū)別在于行為預測條數(shù)總共為3條.測試結果如圖4所示. 圖3 個體日志條數(shù)與性格準確率關系Fig.3 Relationship between individual log number and character accuracy rate 圖4 個體日志條數(shù)與行為準確率關系Fig.4 Relationship between individual log number and behavior accuracy rate 結果分析:(1) 隨著用戶日志條數(shù)的增加,行為準確率呈先上升,后平穩(wěn)的趨勢;(2) 行為準確率上升的日志條數(shù)區(qū)間約為(0,13),當日志條數(shù)大于13時,準確率趨近于1;(3) 當日志條數(shù)較少時,隨著日志條數(shù)的增加,行為準確率增加.當日志條數(shù)足夠時,由于采用粗糙集模糊分析法將性格重新進行分類,減少了性格之間的波動性,故該模型能夠有效地進行行為預測. 2.2.3測試群體中危險用戶的比例 本實驗用10 000個符合條件的用戶進行測試,進而評估實驗數(shù)據(jù)中100 000個用戶積極、中級、消極性格用戶所占比例以及危險信號與非危險信號所占比例.其中,積極性格用戶約占66%,中級性格用戶約占31%,消極性格用戶約占3%.三類用戶中具有危險信號的用戶約占3%.實驗證明該系統(tǒng)能夠準確分析出危險人群. 結果分析:(1) 成功篩選出了危險人群.如表1所示用戶828687165269,其搜索關鍵詞包含如“村妓”、“富婆”等詞匯,用戶極有可能受到不良信息的影響,并產(chǎn)生違法犯罪的行為;(2) 用戶群體中積極性格用戶占1/3,中級性格用戶占2/3,極個別用戶為消極性格;(3) 危險人群多集中在消極性格用戶中. 2.2.4實驗結果對比 本實驗在單機日志分析系統(tǒng)進行,隨著樣本數(shù)量的增加,評估用戶性格與行為預測的準確率逐漸增加.文獻[18]采用基于Hadoop的分布式日志分析系統(tǒng),用K-means算法將用戶分成5類.相比之下,本研究采用粗糙集模糊分析法的不足之處在于,行為的分析是根據(jù)先驗經(jīng)驗建立行為模型,而非從大量日志數(shù)據(jù)分析行為類型,因此對用戶行為的描述無法細化. 文獻[7]的大數(shù)據(jù)平臺采用3臺虛擬機的Spark平臺,將分類體系分為導航類、信息類和資源類.實驗日志采用搜狗實驗室2011年搜索日志,共100萬條.去除缺失數(shù)據(jù)的日志,從中隨機挑選7 000條.其中訓練日志有1 000條,測試日志有6 000條.該實驗進行了4組測試,分類算法和詢問機制分別為:決策樹+歸一化熵值裝袋法;樸素貝葉斯+歸一化熵值裝袋法;決策樹+IK-Means結合歸一化熵值裝袋法和樸素貝葉斯結合IK-Means+歸一化熵值裝袋法.4組實驗對3類日志分類的精確度均大于0.7,查全率均大于0.67.在該基準下,實驗2.2.1在用戶日志條數(shù)大于37條時,性格的精確度大于0.7;在實驗2.2.2中,日志條數(shù)僅在大于13條時,行為準確率接近于1,證明該系統(tǒng)能夠準確分析用戶的行為. 安全領域所面臨的威脅正逐漸從一般的純技術攻擊向結合社會工程學的智能化攻擊轉變.由于這種危險行為具有隱蔽性的特點,運用通常意義上的安全防范技術很難將其發(fā)現(xiàn)并防御.但運用網(wǎng)絡大數(shù)據(jù)用戶行為預測分析技術可以有效地做到準確分析、安全預警.綜上所述,基于網(wǎng)絡日志的用戶性格特征分析及行為預測方法具有以下的創(chuàng)新性:第一,提出基于行為預測的主動防御方法;第二,將特征聚類與模糊分析的智能算法應用于本研究.本研究分析結果的準確性高.余弦相似度算法解決了適量樣本情況下的機器學習中聚類的問題,使訓練模板數(shù)據(jù)即使在數(shù)據(jù)不是足夠大的情況下仍能提取特征.粗糙集模糊分析法簡化了分析過程,減少了建模中需考慮的因素,又能得出精確的結果.2 實驗結果及分析
2.1 實驗結果
2.2 性能分析
3 結束語