余小高 余小鵬
摘要:隨著網(wǎng)絡的廣泛應用,網(wǎng)絡用戶規(guī)模越來越龐大,如何分析他們的偏好,進行有效的管理和引導,成為亟待解決的問題。利用網(wǎng)絡日志對用戶偏好進行分析,是一個行之有效的方法。本文首先定義了空間概念,給出了網(wǎng)絡空間概念,并提出了改進的Tire樹結構;然后結合Hadoop平臺和改進的Tire樹,給出了分布式網(wǎng)絡空間的構建方法,對網(wǎng)絡日志的存儲進行構建;接著在網(wǎng)絡空間的基礎上設計了用戶偏好分析方法的工作流程、步驟和偽代碼,對網(wǎng)絡日志進行分布式并行處理,得出用戶的偏好;最后通過實驗和實例分析得出,該方法提高了網(wǎng)絡日志分析的效率和精確度,也驗證了該方法對用戶偏好的分析具有可行性和正確性。
關鍵詞:網(wǎng)絡日志;Tire+樹;分布式并行處理;用戶偏好
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2017)21-0098-04
引言
隨著信息技術的發(fā)展,網(wǎng)絡的應用已經(jīng)深入到人們生活的方方面面。同時,網(wǎng)絡日志數(shù)據(jù)量顯指數(shù)級增長,已無法估計其容量。通過網(wǎng)絡日志分析,可以了解用戶的偏好,對不同用戶歸類,進行有針對性的引導。[1]例如,分析校園網(wǎng)的網(wǎng)絡日志,可以了解學生的上網(wǎng)行為[2],歸納出學生的偏好類型,對有良好偏好的學生予以贊揚,對有不良偏好的學生予以干預和引導,也可以根據(jù)學生的偏好,了解學生的特點,進行個性化教學。
由于網(wǎng)絡日志的海量性,近年來許多文獻采用Hadoop平臺[3-7],利用其分布性特點提高數(shù)據(jù)的處理效率,但是還沒有文獻對數(shù)據(jù)結構進行優(yōu)化,并與分布式存儲和分布式并行計算結合,提高數(shù)據(jù)的處理效率和精確度。在網(wǎng)絡日志分析方面,主要采用了一些改進的數(shù)據(jù)挖掘方法[8-11],如聚類、關聯(lián)規(guī)則等,但是這些方法沒有考慮日志的存儲結構的優(yōu)化,因為網(wǎng)絡日志的分析,涉及到預處理、存儲、計算等過程。在網(wǎng)絡日志特征分析方面,涉及到用戶上網(wǎng)時段、地域信息、興趣等,但是沒有綜合考慮網(wǎng)絡日志的整體特征,以及特征值的計算方法。在網(wǎng)絡日志分析系統(tǒng)實現(xiàn)方面,沒有根據(jù)網(wǎng)絡日志特征、結構來優(yōu)化,而是從大數(shù)據(jù)技術角度完成預處理、存儲、分析與實現(xiàn)等。[6,11]
本文從網(wǎng)絡日志結構和特征出發(fā),利用Hadoop平臺分布式存儲技術,采用改進的Tire樹實現(xiàn)網(wǎng)絡日志的存儲結構,在該存儲結構的基礎上,根據(jù)網(wǎng)絡日志的特征,對其進行分布式并行處理,得出用戶偏好。
相關定義
定義1:一個空間D是由t個區(qū)d組成,即D={d(t)|t=1,2,…,n}。
定義2:一個區(qū)d是由i個域sd組成,即d={sd(i)|i=1,2,…,n}。
定義3:一個域分為j層,每層由k個單元Unit組成,即sd={Unit(j,k)|j,k=1,2,…,n}。
定義4:單元特征集。每一個單元包含m個特征{UnitA(m)|m={1,2,…,n}。
定義5:網(wǎng)絡空間D是由多個區(qū){d(t)|t=1,2,…,n}組成,此時區(qū)是由域名及其對應的網(wǎng)站系統(tǒng)組成。域名和網(wǎng)站系統(tǒng)統(tǒng)稱域,域名分為主域名、二級域名等{sd(i)|i=1,2,…,n},網(wǎng)站系統(tǒng)由主頁、二級網(wǎng)頁等單元{Unit(j,k)|j,k=1,2,…,n}組成。
網(wǎng)絡空間構建方法
網(wǎng)絡空間中各區(qū)的網(wǎng)絡結構采用的是以Tire樹為基礎的改進樹(稱為Tire+樹),該樹的節(jié)點和樹葉增加了特征值。根據(jù)URL第一個“/”之前的字符串,即域名地址,可以直接查到對應的樹,然后根據(jù)第一個“/”后的字符串,逐步找到對應的層次,將網(wǎng)頁插入到對應的位置,同一層次的網(wǎng)頁根據(jù)插入的先后順序排列。網(wǎng)絡空間構建方法步驟如下。
①初始化。設WebLog為網(wǎng)絡日志集合,WebLog={RecordLog(i)|i=1,2,…,n},RecordLog(i)為網(wǎng)絡日志的第i條記錄。
②數(shù)據(jù)清洗。讀取第i條日志記錄RecordLog(i),去掉以gif、jpg、png等文件類型的URL,同時也去掉無法識別的URL。
③分布式存儲。網(wǎng)絡日志數(shù)據(jù)量巨大,筆者僅下載了校園網(wǎng)一天形成的網(wǎng)絡日志,就有26.6G左右,因此采用Hadoop平臺技術,實現(xiàn)大數(shù)據(jù)分布式存儲、并行運算。
④生成“Tire+樹”形結構。處理完網(wǎng)絡日志文件,生成了由區(qū)組成的網(wǎng)絡空間,各個區(qū)是一個“Tire+樹”形結構,對應的域是由一級、二級等域名組成,建立以主頁為樹根、各下一級網(wǎng)頁為節(jié)點、末端網(wǎng)頁為樹葉的樹形結構。每個網(wǎng)頁中建立特征表,該特征表記錄了不同訪問者訪問該網(wǎng)頁的記錄,并根據(jù)不同的訪問者進行分類、排序。各區(qū)相互組成了以“Tire+樹”為基礎的森林結構。
筆者從用戶角度,根據(jù)用戶訪問不同網(wǎng)頁的次數(shù)、停留時間,判斷用戶的偏好,并根據(jù)用戶的偏好,對用戶進行分類。對擁有好的偏好用戶進行鼓勵,對擁有不良偏好的用戶進行干預,促進用戶群體健康向上發(fā)展。
用戶偏好的判斷方法
1.工作流程
筆者所使用的判斷方法是基于Hadoop的“主-從”(master-slave )模式設計的,其工作流程如圖1所示。
在整個工作過程中,主節(jié)點讀取現(xiàn)有的網(wǎng)絡日志。該模式只有一個主節(jié)點控制著多個從節(jié)點,主從之間沒有依賴關系。圖1說明了主節(jié)點和從節(jié)點之間的關系,圖中“輸入①”表示輸入網(wǎng)絡日志,然后進行數(shù)據(jù)清洗,再根據(jù)網(wǎng)絡日志記錄構建網(wǎng)絡空間。“輸入②”表示輸入要查詢樣本的ID號,然后查詢網(wǎng)絡空間中該樣本訪問各網(wǎng)頁的次數(shù)、停留時間等特征值,查詢完畢返回網(wǎng)頁序列,利用分類器對返回的結果進行歸類,得出樣本的偏好。
2.步驟
①建立域名庫,域名庫中記錄每個域名的具體含義和內容,將網(wǎng)絡空間中的URL與域名庫進行匹配,可對網(wǎng)絡空間不同用戶訪問的內容進行解釋。endprint
②選擇一個樣本i并行分配給網(wǎng)絡空間各個區(qū),并行查找各區(qū)的網(wǎng)站樹形結構。
③各區(qū)并行運行樣本查找,將查到的網(wǎng)頁連同其特征值一起返回,形成局部的查詢結果數(shù)據(jù)集。
④各局部查詢結果依據(jù)樣本訪問網(wǎng)頁的次數(shù)從大到小對網(wǎng)頁進行排序,形成序列CL1(i)(i=1,2,…,n)。同時,各局部查詢結果依據(jù)樣本駐留網(wǎng)頁時間從大到小對網(wǎng)頁進行排序,得到序列CL2(i)(i=1,2,…,n)。
⑤各區(qū)并行處理完畢,將序列CL1(i)和序列CL2(i)進行全局排序(可采用歸并排序等方法),得到全局的序列GL1和序列GL2。
⑥選擇一個新的樣本,從步驟①開始循環(huán)執(zhí)行,直到所有的樣本運行完畢,最終形成了{用戶,GL1,GL2}的向量空間。
⑦根據(jù)每一個樣本的全局序列GL1和序列GL2,采用聚類等方法,生成j個不同的樣本偏好集合P={p(j)|j=1,…,n},該集合的元素p(j)就是樣本的偏好類別。
⑧對照域名庫中域名的分類和內容,可以找出網(wǎng)頁集合P中各網(wǎng)頁的歸類和內容。
實驗
由9臺計算機組建Hadoop集群,1臺為主節(jié)點,其余8臺為從節(jié)點。每臺機器的CPU為i7 7700K,內存為DDR4 8G,硬盤為PM961 256G M.2。操作系統(tǒng)為Ubuntu14.04,并安裝hadloop2.7.0等。根據(jù)學校網(wǎng)絡中心提供一個整天的網(wǎng)絡日志數(shù)據(jù),數(shù)據(jù)量達到26.6G,共130665204173條記錄,將這些數(shù)據(jù)進行拆分處理,得出計算不同數(shù)據(jù)量所需要的時間,如圖2所示。
設T0是Hadoop環(huán)境下將清洗后的網(wǎng)絡日志文件直接存入計算機集群中計算得出的用戶偏好時間,T1是Hadoop環(huán)境下將清洗后的網(wǎng)絡日志文件以網(wǎng)絡空間結構形式存入計算機集群中計算得出的用戶偏好時間,上述兩種方法采用的計算方式一樣。圖2是T0與T1的對比,對比相同的數(shù)據(jù),T1小于T0,數(shù)據(jù)量越大,二者的差距就越大。
為了得出文中提出的方法的精確度,筆者將學生的偏好分為兩大類:學習類、娛樂類。在網(wǎng)絡日志分析中,將那些熱衷于網(wǎng)游、視頻、音樂、交友、微博、社區(qū)、體育、小說、即時通信、圖片、旅游等網(wǎng)絡的學生歸為娛樂類,將那些集中在學習、新聞等網(wǎng)絡上的學生歸為學習類。
筆者首先對上學期授課的85名本科生進行實際跟蹤訪談,得出學習類的學生67名,娛樂類的學生18名,期末考試不及格的學生有12名,不及格的學生全部在娛樂類。然后將這85名學生在期末考試之前第三天的上網(wǎng)日志從網(wǎng)絡中心導出,對他們的偏好進行分析。設A0是不采用網(wǎng)絡空間結構計算得出的用戶偏好的結果,設A1是采用網(wǎng)絡空間結構計算得出的用戶偏好的結果,上述兩種方法采用相同的聚類算法。上表是問卷調查和實際跟蹤的結果及A0和A1三者之間的對比,以實際跟蹤的結果為參考,可以發(fā)現(xiàn)A1優(yōu)于A0。由于A1在計算過程中,各區(qū)提交的結果是經(jīng)過局部排序的,進行全局計算時,在局部排序基礎上進行全局排序,然后采用聚類算法對用戶偏好進行劃分,因此效率和精確度都較高。
通過實驗分析,筆者提出的以網(wǎng)絡空間模式存儲和處理網(wǎng)絡日志,得出的用戶偏好的效率和精確度優(yōu)于不采用網(wǎng)絡空間模式。
結束語
在Hadoop環(huán)境下,筆者構建了網(wǎng)絡空間,建立了網(wǎng)絡日志的存儲和運行模式,在該模式的基礎上,研究了基于網(wǎng)絡日志的用戶偏好判斷方法。該方法能夠根據(jù)用戶上網(wǎng)情況,對用戶偏好進行判斷,指導有關管理者對用戶進行引導,激勵具有良好偏好的用戶,干預不良偏好的用戶。例如,通過對學生成績的預測,對那些期末考試有可能不及格的學生提前進行干預,減少他們在網(wǎng)游、交友、聊天、視頻等方面花費過多的時間,引導他們完成學業(yè)。
參考文獻:
[1]Ladeker A, Pawar P, Raikar D, et al. Web Log based Analysis of Users Browsing Behavior[J].International Journal of Computer Applictions,2015,115(11):5-8.
[2]楊丕仁.基于Hadoop下利用Hive進行網(wǎng)絡日志存儲和分析[J].電子技術與軟件工程,2017(2):163-165.
[3]劉立坤.基于Hadoop平臺的Web日志聚類分析算法研究[D].西安:西北大學,2016.
[4]周秋彤.實時分布式Web日志分析系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2015.
[5]黃杰.基于用戶行為的Web日志聚類研究與應用[D].重慶:重慶大學,2015.
[6]覃應接.網(wǎng)絡日志管理與分析技術研究與實現(xiàn)[D].北京:北京交通大學.2015.
[7]張艷華,張仰森,馬紅霞.一種網(wǎng)絡日志屬性挖掘與分析方法[J].計算機應用研究,2017,33(5):1410-1414.
[8]姚俊杰.WEB日志數(shù)據(jù)挖掘在MOODLE中的研究與應用[D].上海:上海交通大學,2015.
[9]余小高,余小鵬.一種基于角相似性的k-最近鄰搜索算法[J].計算機應用研究,2009,26(9):3296-3299.
[10]余小高,余小鵬.基于距離和密度的無監(jiān)督聚類算法的研究[J].計算機應用與軟件,2010,27(7):122-125,168.
[11]余小高.電子商務智能推薦系統(tǒng)研究[M].武漢:湖北人民出版社,2012:52-118.
作者簡介:余小高,湖北經(jīng)濟學院教授,博士,主要研究方向為大數(shù)據(jù)、商務智能等。余小鵬,副教授,博士,從事信息系統(tǒng)、大數(shù)據(jù)技術等研究。
基金項目:湖北省教育科學規(guī)劃課題(編號:2016GA049) 資助。endprint