朱壽華,黃保華
(1.廣西大學 計算機與電子信息學院,廣西 南寧 530004;2.廣西中醫(yī)藥大學 信息網絡中心,廣西 南寧 530001)
人們在訪問Web站點時,服務器的Web日志文件會自動保留其訪問信息,而Web日志挖掘就是通過分析服務器Web日志文件信息,試圖發(fā)現用戶的上網行為模式,了解用戶的訪問習慣和興趣,以便能更好地為用戶提供個性化服務和構建自適應站點等[1]。Web日志挖掘的過程主要分為三個階段:數據預處理、模式識別和模式分析[2]。數據預處理階段會根據不同情況、不同業(yè)務,從大量未經處理的原始數據中提取出所需要的信息進行處理。模式識別階段的主要作用是采用數據挖掘算法對預處理后的數據集合進行挖掘,從而發(fā)現用戶潛在的訪問規(guī)律及模式。模式分析階段會對模式發(fā)現階段所產生的模式和規(guī)則進行分析過濾,提取出對用戶有用的或者感興趣的模式和規(guī)則,并轉化成用戶所能接受的知識呈現出來。
筆者首先對目前較為常用的用戶會話識別方法進行分析研究,然后在此基礎上提出一種新的用戶會話識別方法并進行實驗。提取一段真實的Web日志信息,在數據預處理過程中采用新的用戶會話識別方法進行處理,實驗證明了新的方法比目前常用的方法更為有效。
服務器的Web日志文件是日志挖掘的主要對象。但是由于防火墻、代理服務器、本地緩存的存在,使得Web日志文件中的信息數據通常是冗余的、不完整的、有錯誤的,這對后續(xù)挖掘算法的分析結果產生了直接的影響。還有就是原始數據的數據模型與挖掘算法中所需的數據模型之間有明顯的差異,因此需要對原始數據進行提取和轉化工作。這時,數據預處理過程就顯得尤為重要了。
數據預處理過程包括數據清洗、用戶識別、會話識別、路徑補充、事務識別5個步驟[3]。數據清洗是把與后續(xù)挖掘算法不相關的Web日志信息數據刪除掉;用戶識別的主要作用是分辨出瀏覽站點的每個用戶;會話識別是分解用戶在一定時間段內的訪問記錄序列,從中得到每個用戶相應的會話;路徑補充的主要作用是對用戶會話進行優(yōu)化,這樣能夠對用戶的訪問請求進行更加客觀準確地描述;事務識別是把前面識別出的用戶會話進一步實施語義分組,同時生成挖掘算法所需要的事務。
用戶會話是指用戶從進入站點到離開站點期間所訪問的一系列頁面序列集合[4]。公式表示為:
在公式1中:UserID——用戶標識,SessionID——會話標識,{(Pid1,time1),(Pid2,time2),…,(Pidk,timek),…,(Pidn,timen)}——用戶在某一個時間段內的頁面訪問序列,Pid——Page id訪問頁面的URL(標識),time——請求頁面的時間。(Pid1,time1)——用戶在本次會話中的第一個訪問頁面和訪問時間,(Pidn,timen)——用戶在本次會話中的最后一個訪問頁面和訪問時間。
目前,會話識別的方法主要有兩種:一種是基于時間閥值的方法,另一種是基于參引頁和站點結構的方法。
2.1.1 基于時間閥值方法
(1)設定頁面訪問時間閥值β[5]。假設在一個用戶訪問序列中有任意相鄰的兩條訪問記錄(Pidi,timei) 和 (Pidi+1,timei+1)。 只有當滿足 timei+1-timei≤β 時,可認定記錄(Pidi,timei)和(Pidi+1,timei+1)是在同一個用戶會話中。當timei+1-timei>β時,則說明(Pidi,timei)和(Pidi+1,timei+1)不屬于同一個用戶會話,(Pidi,timei)是前一個會話的末尾一條記錄,而(Pidi+1,timei+1)則是新會話的首條記錄。業(yè)內一般把β取值為10分鐘。
(2)設定一次會話持續(xù)時間閥值θ[6]。該方法設定用戶在站點上的總停留持續(xù)時間不得超過時間閥值θ,如果持續(xù)時間超過閥值θ,則說明開啟了一個新的會話。研究者實驗得出θ的值設定為25.5分鐘為最佳,但是目前業(yè)內一般把30分鐘作為θ的缺省值。
2.1.2 基于參引頁和站點結構的方法
(1)參引頁和訪問歷史的識別方法。假如一個用戶的請求無法從參引頁上的URL地址進入,則該請求記錄可能不屬于當前會話。只有在前面所有訪問過的頁面中沒有出現當前請求的參引頁時,就可認定是一個新會話的開啟。
(2)最大向前序列法。該方法對會話劃分的依據是判斷用戶的訪問行為。人們?yōu)g覽網站的習慣通常都是向前訪問的,一旦用戶發(fā)生了后退的訪問行為,即點擊了“返回”按鈕。這時則說明當前會話已結束,同時開啟了一個新的會話。
在基于時間閥值的識別方法中,沒有對用戶個體的差異性進行充分地考慮。方法(1)是識別不出超過30分鐘的會話,而且如果存在兩個連續(xù)時間較短的會話也不能很好地識別出來。方法(2)中,假如用戶在瀏覽網站期間突然有事離開,一段時間(10分鐘)后回來繼續(xù)訪問該站點,這種情況其實都是同一個會話,但是該方法會誤認為已經開啟了一個新會話。
基于參引頁和站點結構的方法總體來說太過于機械,不能很真實地模擬出用戶的訪問行為,對文本信息的考慮有所欠缺,最終降低了會話識別的準確度。
要確定出每一個用戶會話的關鍵在于發(fā)現兩個相鄰會話間的分割點。即上一個用戶會話的最后訪問頁面和下一個用戶會話的首次訪問頁面。其實只要能準確識別出新用戶會話的首次訪問頁面,即說明前一個會話的結束。
絕大多數用戶在瀏覽某站點時一般會從該站點的首頁進入,用戶可以點擊IE瀏覽器收藏夾中的收藏記錄,或者直接在地址欄中輸入網站的URL訪問。通過查看服務器的IIS日志文件信息,判斷用戶訪問的URL是否為網站的首頁面。只要用戶訪問的URL地址是站點首頁面,則可認定這是一個新會話的開始。但當用戶瀏覽完畢退出網站時,本次會話結束,但服務器日志并不能判斷出用戶此刻的行為。而當該用戶再次打開首頁訪問網站時,這標志著上一個會話已經結束,從本條記錄開始是一個新的會話。
如果單純的以首頁作為劃分標準顯然是不夠嚴謹的,沒有充分考慮到用戶的瀏覽興趣和上網習慣,忽略了用戶的差異性。因此在以站點首頁作為劃分標準的基礎上,提出一種采用以站點首頁結合動態(tài)時間閥值的新會話識別方法。
本算法先是以打開網站的首頁面作為一個新會話開始的標志,再引入一個動態(tài)的會話持續(xù)時間閥值θ。如果該會話在持續(xù)時間θ內出現用戶訪問URL是首頁的記錄,則認為用戶開啟了一個新的會話;否則就采用動態(tài)時間閥值的方法來確定用戶會話的邊界。動態(tài)時間閥值的識別算法是,首先定義兩個初始的時間閥值θ和β。其中,θ為一個會話的持續(xù)時間,在本方法中取值30min;β為相鄰兩個頁面的瀏覽時間間隔,經研究證明最佳的取值為10min。假如有任意兩個相鄰的頁面訪問時間間隔 T1、T2,當 T2-T1>β,可以動態(tài)調整θ的值,進行均值處理:
改進的會話識別算法具體步驟如下:
(1)設置初始值 θ=30min,β=10min。把用戶訪問序列中的第一條訪問記錄加入第一個會話中,作為第一個會話的首條訪問記錄;
(2)讀取用戶訪問序列中的下一條訪問記錄,直到處理完畢序列中所有記錄;
(3)判斷本條訪問記錄的URL是否為站點首頁。如果是首頁,則當前會話結束,并開啟一個新會話,同時把本條訪問記錄加入新的會話訪問序列中,然后跳轉到步驟(2)。否則,跳轉到步驟(4);
(4)把本條訪問記錄的頁面訪問時間間隔T(n)加入當前用戶會話持續(xù)時間θ(new),若θ(new)大于θ,則當前會話結束并開始一個新會話,同時把本條訪問記錄作為新會話的第一條記錄,然后轉步驟(2)。 否則,轉步驟(5);
(5)計算本條訪問記錄的頁面訪問時間間隔T(n)與上一條訪問記錄時間間隔T(n-1)的差,若T2-T1>β,執(zhí)行式(2)動態(tài)調整θ的值。把本次訪問記錄加入當前用戶會話,并跳轉到步驟(2)繼續(xù)處理下一條記錄。
實驗采用某網站(http://www.gxtcmu.edu.cn/)的日志數據,由于數據量比較大,本實驗只選取了2013年7月13日的數據,經過數據清理后共有12 042條有效的訪問記錄存入SQL中,如圖1所示。
圖1 經過數據清理后的Web日志記錄
下面用4種會話識別方法進行實驗分析:
方法1:頁面訪問時間閥值法,時間閥值β取10min。
方法2:會話持續(xù)時間閥值法,時間閥值θ取30min。
方法3:基于訪問站點的首頁方法。
方法4:以站點首頁結合動態(tài)時間閥值的新會話識別方法。
由于真實的用戶會話很難得到,在識別出每種方法的實驗會話后,再通過手工檢測出真實的會話,實驗結果如下表1。
表1 實驗結果
在數據預處理中,用戶會話識別是較為重要的環(huán)節(jié)。本文對Web日志挖掘數據預處理階段的會話識別方法進行了探索,在現有方法的基礎上提出一種采用站點首頁結合動態(tài)時間閥值的新會話識別方法。實驗表明,新的會話識別方法能夠識別出更多的真實用戶會話,且有效地提高了會話識別的準確率。
[1]趙全明,朱啟瑩.Web數據挖掘技術淺析[J].信息產業(yè),2012:108.
[2]王聽忠,王輝,武新梅,等.基于協(xié)同推薦的Web日志預處理過程[J].微計算機信息,2006(22):150-151.
[3]Wang Chao,Lu Jie,Zhang Guangquan.Mining key information of web pages:A method and its application[J].Expert Systems with Applications,2007(33):425-433.
[4]Facca F M,Lanzi P L.Mining interesting knowledge from Webblogs:a Survey[J].Data and Knowledge Engineering,2005,53(3):225-241.
[5]Spiliopoulou M,Mobasher B,Berendt B.A framework for the evaluation of session reconstruction heuristics in web usage analysis[J].Informs Journal of Computing,2003,15(2):171-179.
[6]Bayir M,Toroslu I,Cosar A.A new approach for reactive web usage data processing[C]//Proceedings of the 22nd International Conference on Data Engineering Eorkshops,Atlanta,Georgia,USA,2006:44.