摘 要: 提出了一種改進(jìn)的會(huì)話識(shí)別方法。該方法基于訪問(wèn)站點(diǎn)的首頁(yè)和導(dǎo)航頁(yè),以首頁(yè)或?qū)Ш巾?yè)作為新會(huì)話開始的標(biāo)識(shí)。選取真實(shí)的Web日志,用PL/SQL編程實(shí)現(xiàn)改進(jìn)的會(huì)話識(shí)別方法,并與現(xiàn)有方法進(jìn)行比較。實(shí)驗(yàn)結(jié)果證明,改進(jìn)的會(huì)話識(shí)別方法比現(xiàn)有方法識(shí)別會(huì)話更有效。
關(guān)鍵詞: 數(shù)據(jù)預(yù)處理;Web日志;會(huì)話識(shí)別;站點(diǎn)首頁(yè);導(dǎo)航頁(yè)
Web日志挖掘現(xiàn)已成為Web挖掘研究的重點(diǎn)。其主要分為數(shù)據(jù)預(yù)處理、模式發(fā)現(xiàn)、模式分析3個(gè)階段[1]。數(shù)據(jù)預(yù)處理階段是要把從各種數(shù)據(jù)源得到的使用信息、內(nèi)容信息和結(jié)構(gòu)信息轉(zhuǎn)換成模式發(fā)現(xiàn)階段需要的數(shù)據(jù)抽象;模式發(fā)現(xiàn)階段旨在使用各種數(shù)據(jù)挖掘技術(shù)發(fā)掘隱藏在數(shù)據(jù)背后的規(guī)律和模式;模式分析階段旨在根據(jù)具體的實(shí)際應(yīng)用,過(guò)濾掉在模式發(fā)現(xiàn)階段沒(méi)有用的規(guī)則或模式,并把有用的規(guī)則和模式轉(zhuǎn)換為知識(shí)。
本文主要研究數(shù)據(jù)預(yù)處理階段的會(huì)話識(shí)別。在分析現(xiàn)有的會(huì)話識(shí)別方法基礎(chǔ)上,提出一種基于訪問(wèn)站點(diǎn)首頁(yè)和導(dǎo)航頁(yè)的改進(jìn)會(huì)話識(shí)別方法,最后通過(guò)實(shí)驗(yàn)驗(yàn)證了改進(jìn)的會(huì)話識(shí)別方法比現(xiàn)有方法更有效。
1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是Web日志中最基礎(chǔ)、最頻繁的工作,是整個(gè)數(shù)據(jù)準(zhǔn)備的核心工作。數(shù)據(jù)預(yù)處理的結(jié)果將直接影響到挖掘算法產(chǎn)生的規(guī)則和模式,因此預(yù)處理過(guò)程在整個(gè)Web日志挖掘過(guò)程中占據(jù)著非常重要的地位,是挖掘質(zhì)量的保證。
數(shù)據(jù)預(yù)處理包括數(shù)據(jù)清理、用戶識(shí)別、會(huì)話識(shí)別、路徑補(bǔ)充和事務(wù)識(shí)別5個(gè)階段[2]。(1)數(shù)據(jù)清理是指刪除Web日志中與挖掘算法無(wú)關(guān)的數(shù)據(jù);(2)用戶識(shí)別是識(shí)別出訪問(wèn)網(wǎng)站的每個(gè)用戶;(3)會(huì)話識(shí)別是在用戶識(shí)別之后,把每個(gè)用戶在一段時(shí)間內(nèi)的訪問(wèn)序列進(jìn)行分解,從而得到相應(yīng)的會(huì)話。會(huì)話是指同一用戶在一次瀏覽過(guò)程中連續(xù)請(qǐng)求的頁(yè)面序列,它代表了用戶對(duì)服務(wù)器的一次有效訪問(wèn);(4)路徑補(bǔ)充是對(duì)識(shí)別出的用戶會(huì)話進(jìn)行優(yōu)化的步驟,以使得其更加準(zhǔn)確地描述用戶的瀏覽請(qǐng)求;(5)事務(wù)識(shí)別是將用戶會(huì)話進(jìn)行語(yǔ)義分組,形成適合挖掘需要的事務(wù)。
2 會(huì)話識(shí)別分析
用戶會(huì)話[3]是指用戶從進(jìn)入站點(diǎn)到離開站點(diǎn)期間所訪問(wèn)的一系列頁(yè)面序列集合。可表示為:
其中SessionID是會(huì)話標(biāo)識(shí),{(Pid1,t1)…(Pidk,tk)…(Pidn,tn)}是此次用戶會(huì)話的頁(yè)面訪問(wèn)序列,Pid是訪問(wèn)頁(yè)面的標(biāo)識(shí),t是訪問(wèn)該頁(yè)面的時(shí)間。(Pid1,t1)表示用戶此次會(huì)話訪問(wèn)的第一個(gè)頁(yè)面和時(shí)間,(Pidn,tn)表示用戶此次會(huì)話訪問(wèn)的最后一個(gè)頁(yè)面和時(shí)間。
2.1 常用會(huì)話識(shí)別方法
目前常用會(huì)話識(shí)別方法主要有兩大類:一類是基于時(shí)間閾值,另一類是基于用戶訪問(wèn)頁(yè)面時(shí)的參引頁(yè)面?;跁r(shí)間閾值的會(huì)話識(shí)別方法又可細(xì)分為以下3類:
(1)設(shè)定會(huì)話的持續(xù)時(shí)間閾值θ。即一個(gè)會(huì)話總的持續(xù)時(shí)間不超過(guò)θ。國(guó)外學(xué)者Catledge和Pitkow由實(shí)驗(yàn)得出θ設(shè)為25.5 min較好[4],許多商業(yè)產(chǎn)品都采用30 min作為缺省值。
(2)設(shè)定頁(yè)面的訪問(wèn)時(shí)間閾值η[5]。假設(shè)(Pidi,ti)、(Pidi+1,ti+1)為一個(gè)用戶訪問(wèn)序列中的兩條相鄰訪問(wèn)記錄。只有當(dāng)ti+1-ti≤η時(shí),才認(rèn)為這兩條記錄屬于同一個(gè)會(huì)話。當(dāng)ti+1-ti>η時(shí),(Pidi,ti)是上一次會(huì)話的最后一條訪問(wèn)記錄,而(Pidi+1,ti+1)是新會(huì)話的第一條訪問(wèn)記錄。一般η取10 min。
(3)上述方法(2)是對(duì)所有頁(yè)面設(shè)定同一個(gè)頁(yè)面訪問(wèn)時(shí)間閾值,并沒(méi)有因頁(yè)面的不同而不同。參考文獻(xiàn)[6]中,根據(jù)統(tǒng)計(jì)的頁(yè)面的訪問(wèn)時(shí)間,在正態(tài)分布的假設(shè)下為每個(gè)頁(yè)面設(shè)定一個(gè)訪問(wèn)時(shí)間作為切分會(huì)話閾值,并結(jié)合頁(yè)面內(nèi)容及站點(diǎn)結(jié)構(gòu)來(lái)確定頁(yè)面重要程度,對(duì)該閾值進(jìn)行調(diào)整。這是一種個(gè)性化的時(shí)間閾值設(shè)置方法。
2.2 常用會(huì)話識(shí)別方法評(píng)估
第(1)、(2)兩種方法使用單一時(shí)間閾值來(lái)識(shí)別用戶會(huì)話顯然是不合理的。方法(1)不能識(shí)別出訪問(wèn)時(shí)間大于30 min的會(huì)話,且識(shí)別不出兩個(gè)連續(xù)較短的會(huì)話;方法(2)的不足在于,若一個(gè)用戶在訪問(wèn)站點(diǎn)期間暫時(shí)離開電腦,但并沒(méi)有退出站點(diǎn),過(guò)10 min后回來(lái)繼續(xù)瀏覽該站點(diǎn),這實(shí)際上屬于同一個(gè)會(huì)話,而方法(2)則會(huì)錯(cuò)誤地認(rèn)為用戶開始了一個(gè)新的會(huì)話;方法(3)使用的統(tǒng)計(jì)學(xué)方法雖然大大減小了上限閾值,但仍然無(wú)法準(zhǔn)確描述對(duì)頁(yè)面感興趣的用戶閱讀網(wǎng)頁(yè)的平均時(shí)間,無(wú)法區(qū)分超短時(shí)間用戶訪問(wèn)記錄。
基于參引頁(yè)面的會(huì)話識(shí)別方法引入了時(shí)間限制?駐,主要是考慮到下面這種情況:訪問(wèn)頁(yè)面的引用頁(yè)面為空,用戶可能是通過(guò)點(diǎn)擊瀏覽器上的”BACK”按鈕,回溯到之前某個(gè)曾經(jīng)瀏覽過(guò)的頁(yè)面,進(jìn)而訪問(wèn)到該頁(yè)。這顯然也是不合理的,用戶從p頁(yè)面回退到上級(jí)頁(yè)面后,用戶要在此頁(yè)面搜尋到感興趣的p頁(yè)面,并點(diǎn)擊鏈接進(jìn)入該頁(yè)面,所需時(shí)間一般不止10 s,且用戶可能是回退多次后再點(diǎn)擊鏈接進(jìn)入p頁(yè)面。因此,此處設(shè)置這個(gè)時(shí)間閾值并不合理。
3 改進(jìn)的會(huì)話識(shí)別方法
3.1 會(huì)話劃分思考
要準(zhǔn)確地識(shí)別出用戶會(huì)話,關(guān)鍵在于識(shí)別出兩次相鄰會(huì)話的分割點(diǎn)。即上一次會(huì)話結(jié)束時(shí)訪問(wèn)的頁(yè)面及下一次會(huì)話開始時(shí)訪問(wèn)的頁(yè)面。而找出新會(huì)話開始時(shí)訪問(wèn)的頁(yè)面,也就意味著上一會(huì)話的結(jié)束。因此,研究重點(diǎn)放在尋找標(biāo)記新會(huì)話開始的訪問(wèn)頁(yè)面。
用戶開始訪問(wèn)某一站點(diǎn),一般是通過(guò)在瀏覽器的地址欄中輸入站點(diǎn)的URL或是通過(guò)點(diǎn)擊收藏欄中的收藏,通過(guò)站點(diǎn)的首頁(yè)進(jìn)入此站點(diǎn)的,此時(shí)用戶也就開始了自己的一次會(huì)話。在Web服務(wù)器日志中,可以查看用戶訪問(wèn)的URL是否是首頁(yè)來(lái)判斷用戶的這種行為。當(dāng)用戶瀏覽完畢退出該站點(diǎn),此時(shí)會(huì)話結(jié)束,而在Web服務(wù)器端日志中,無(wú)法判斷這種用戶行為。但當(dāng)該用戶下一次通過(guò)首頁(yè)來(lái)訪問(wèn)站點(diǎn)時(shí),在Web日志中發(fā)現(xiàn)用戶又鍵入了首頁(yè)URL,則很顯然上一次會(huì)話在本條記錄之前結(jié)束,本條記錄標(biāo)志用戶開始了一個(gè)新的會(huì)話。
3.2 改進(jìn)的會(huì)話識(shí)別方法
上述思想以訪問(wèn)站點(diǎn)的首頁(yè)作為新會(huì)話開始的標(biāo)記,基于這一前提用戶開始訪問(wèn)站點(diǎn)時(shí)總是由站點(diǎn)首頁(yè)進(jìn)入站點(diǎn)。但真實(shí)的訪問(wèn)情況并不是所有的用戶每次開始訪問(wèn)站點(diǎn)時(shí)都由首頁(yè)進(jìn)入。一般的站點(diǎn)分若干版塊,而每一版塊都有自己的導(dǎo)航頁(yè)。如一門戶網(wǎng)站有新聞、體育、娛樂(lè)各版塊,有的用戶只對(duì)體育感興趣,那么他可能就會(huì)將體育版塊的導(dǎo)航頁(yè)做為收藏,每次訪問(wèn)站點(diǎn)時(shí),點(diǎn)擊收藏,直接進(jìn)入體育導(dǎo)航頁(yè)開始訪問(wèn),而非先通過(guò)站點(diǎn)首頁(yè),再進(jìn)入體育版塊導(dǎo)航頁(yè)。因此,識(shí)別用戶會(huì)話,不能只以站點(diǎn)首頁(yè)作為開始標(biāo)記,還應(yīng)考慮各導(dǎo)航頁(yè),因?yàn)楹芏嘤脩羰侵苯油ㄟ^(guò)導(dǎo)航頁(yè)訪問(wèn)自己感興趣的頁(yè)面而非站點(diǎn)首頁(yè)。
改進(jìn)的會(huì)話識(shí)別方法如圖1所示,以站點(diǎn)首頁(yè)或?qū)Ш巾?yè)作為新會(huì)話開始的標(biāo)識(shí)。
改進(jìn)的會(huì)話識(shí)別方法具體描述如下:
(1)首先用戶訪問(wèn)序列中的第一條訪問(wèn)記錄是第一個(gè)會(huì)話的開始序列,置入第一個(gè)會(huì)話中;
(2)讀取用戶訪問(wèn)序列中的下一條訪問(wèn)記錄,直至序列中所有記錄都處理完畢;
(3)判斷本次訪問(wèn)的頁(yè)面是否是站點(diǎn)的首頁(yè),若是首頁(yè),則當(dāng)前會(huì)話結(jié)束,新會(huì)話開始,將該次訪問(wèn)置入新會(huì)話的訪問(wèn)序列中,然后轉(zhuǎn)步驟(2)處理下一條訪問(wèn)記錄。否則,轉(zhuǎn)步驟(4);
(4)判斷本次訪問(wèn)的頁(yè)面是否是站點(diǎn)的導(dǎo)航頁(yè)之一,若不是(即該頁(yè)面為內(nèi)容頁(yè)),則將本次訪問(wèn)置入當(dāng)前會(huì)話的訪問(wèn)序列中,然后轉(zhuǎn)步驟(2)繼續(xù)處理下一條訪問(wèn)記錄。否則(即該頁(yè)面是導(dǎo)航頁(yè)之一),轉(zhuǎn)步驟(5)判斷它的上一條訪問(wèn)記錄;
(5)判斷上一條訪問(wèn)記錄,若上一條訪問(wèn)記錄訪問(wèn)的頁(yè)面是首頁(yè),則本次訪問(wèn)記錄和上次訪問(wèn)記錄同屬一個(gè)會(huì)話;若上一條訪問(wèn)記錄訪問(wèn)的頁(yè)面不是首頁(yè),則本次訪問(wèn)就標(biāo)識(shí)了新會(huì)話的開始,將其置入新會(huì)話的訪問(wèn)序列中。轉(zhuǎn)步驟(2),處理下一條訪問(wèn)記錄。
4 實(shí)驗(yàn)與結(jié)果分析
4.1 實(shí)驗(yàn)過(guò)程
4.1.1 數(shù)據(jù)準(zhǔn)備
選用了安研星空站點(diǎn)http://www.ahusky.cn/從2009年2月17日至2009年3月5日的Web服務(wù)器日志,共計(jì)1 251 331條記錄,作為實(shí)驗(yàn)數(shù)據(jù),如圖2所示。
4.1.2 會(huì)話識(shí)別
將這些Web訪問(wèn)日志通過(guò)SQL Loader載入Oracle數(shù)據(jù)庫(kù)中,經(jīng)過(guò)數(shù)據(jù)清理,共有有效訪問(wèn)記錄35 273條,存放在表log中,如圖3所示。
此處,以Web訪問(wèn)日志中的IP地址作為用戶標(biāo)識(shí),利用Oracle PL/SQL編程實(shí)現(xiàn)上述改進(jìn)的會(huì)話識(shí)別算法。為了與其他的會(huì)話識(shí)別方法進(jìn)行比較,分別用2.1節(jié)中的方法(1)和方法(2)對(duì)同樣的Web日志進(jìn)行會(huì)話識(shí)別,其中方法(1)取時(shí)間閾值30 min,方法(2)取時(shí)間閾值10 min。實(shí)驗(yàn)結(jié)果如表1所示。
4.2 實(shí)驗(yàn)分析
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),改進(jìn)的會(huì)話識(shí)別方法識(shí)別出的會(huì)話數(shù)(11 325條)要遠(yuǎn)多于方法(1)(5 073條)和方法(2)(5 226條)。另外,為了比較這三種會(huì)話識(shí)別方法識(shí)別會(huì)話的準(zhǔn)確率,將三種方法中識(shí)別出的關(guān)于用戶220.178.4.195的會(huì)話分別與原始的Web日志記錄比較,發(fā)現(xiàn)改進(jìn)的會(huì)話識(shí)別方法識(shí)別會(huì)話的準(zhǔn)確率(82.19%)也要高于方法(1)(62.47%)和方法(2)(64.85%)。由此可見(jiàn),改進(jìn)的會(huì)話識(shí)別方法能夠識(shí)別出更多的會(huì)話,且識(shí)別會(huì)話的準(zhǔn)確率也更高。
數(shù)據(jù)預(yù)處理階段的會(huì)話識(shí)別為模式分析階段提供了挖掘數(shù)據(jù),即每一個(gè)有效的用戶會(huì)話,因此它直接影響到模式分析階段能否發(fā)現(xiàn)有效的模式。本文提出的基于站點(diǎn)首頁(yè)和導(dǎo)航頁(yè)的改進(jìn)會(huì)話識(shí)別方法能識(shí)別出更多的會(huì)話,識(shí)別會(huì)話的準(zhǔn)確率更高。
參考文獻(xiàn)
[1] SRIVASTAVA J, COOLEY R. Web usage mining: Discovery and applications of usage patterns from Web data[C]. SIGKDD Explorations, 2000.
[2] COOLEY R, MOBASHER B, SRIVASTAVA J. Data preparation for mining world wide web browsing patterns[J]. Knowledge and Information Systems, 1999,1(1):5-32.
[3] FACCA F M, LANZI P L. Mining interesting knowledge from Weblogs: a Survey[J]. Data and Knowledge Engineering, 2005,53(3):225-241.
[4] CATLEDGE L, PITKOW J. Characterizing browsing strategies in the world wide Web[J]. Computer Networks and ISDN Systems, 1995,27(6):1065-1073.
[5] SPILIOPOULOU M, MOBASHER B, BERENDT B, et al. A framework for the evaluation of session reconstruction heuristics in Web usage analysis[J]. Informs Journal of Computing, 2003,15(2):171-179.
[6] 嚴(yán)奉華,劉建平,楊凡丁.改進(jìn)的Web訪問(wèn)日志會(huì)話識(shí)別算法[J].計(jì)算機(jī)工程與設(shè)計(jì).2008,29(22):5685-5687.
[7] 熊忠陽(yáng),周亞峰.Web訪問(wèn)挖掘的預(yù)處理技術(shù)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展2007,17(8):14-18.