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