趙 娜 葛蒲陽
摘要:數(shù)據(jù)預(yù)處理在Web日志挖掘過程中起著至關(guān)重要的作用。本文詳細(xì)分析了數(shù)據(jù)預(yù)處理的過程,并對用戶識別提出了改進(jìn)策略,最后實(shí)現(xiàn)了一個Web日志挖掘預(yù)處理模型(WLMPM)。
關(guān)鍵詞:Web日志挖掘;數(shù)據(jù)預(yù)處理;用戶識別;會話識別
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)18-2pppp-0c
Research on Data Preprocessing of Web Log Mining
ZHAO Na1,2, GE Pu-yang2
(1.Xidian University,Xi'an 710071,China;2.Information Center of QingHai Architectural Vocational and Technical College,Xining 810012,China)
Abstract:Data preprocessing plays an essential role in the process of Web log mining. This paper analyses data preprocessing process for Web log mining in detail ,and proposes the modified strategy of user identification,finally realizes a model of data preprocessing.
Key words:Web log mining;data preprocessing;user identification;session identification
1 引言
隨著Internet信息量的劇增,如何幫助用戶快速有效地獲取自己感興趣的信息,已成為網(wǎng)站設(shè)計(jì)者亟待解決的問題。解決這個問題的途徑之一就是將數(shù)據(jù)挖掘技術(shù)和Web結(jié)合起來,進(jìn)行Web挖掘[1]。作為Web挖掘的一個重要組成部分,Web日志挖掘是從Web的存取模式中獲取有價值的信息或模式的過程[2],就是對用戶訪問 Web 時在服務(wù)器留下的訪問記錄進(jìn)行挖掘。通過分析和研究日志記錄的規(guī)律,可以實(shí)現(xiàn)用戶聚類、頁面聚類和發(fā)現(xiàn)頻繁訪問路徑改進(jìn)Web站點(diǎn)的性能和結(jié)構(gòu),為用戶提供個性化服務(wù)等。
Web日志挖掘過程一般分為三個階段[3],即:預(yù)處理階段、挖掘算法實(shí)施階段、模式分析階段。數(shù)據(jù)預(yù)處理的目的就是將原始日志記錄經(jīng)過處理形成用戶的會話文件,為挖掘算法實(shí)施階段作好數(shù)據(jù)準(zhǔn)備。目前,Web日志挖掘技
術(shù)發(fā)展迅速,作為整個挖掘過程的基礎(chǔ)和實(shí)施有效挖掘算法的前提,數(shù)據(jù)預(yù)處理環(huán)節(jié)非常關(guān)鍵。
2 Web日志文件格式
典型的Web服務(wù)器日志包括以下信息:IP地址、請求時間、方法(如 GET/POST)、被請求文件的URL、超文本傳輸協(xié)議 HTTP及版本號、返回碼(請求的狀態(tài),成功或錯誤返回碼)、傳輸字節(jié)數(shù)、引用頁的URL(指向被請求的頁面)和代理(用戶使用的瀏覽器和操作系統(tǒng)的類型)。
222.212.224.26 - - [02/Jul/2006:06:30:13 +0800] "GET /cs/first_page.actionHTTP/1.1" 200 11226 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"就是一條常見的Web服務(wù)器日志,其中:222.212.224.26表示請求訪問的用戶IP地址;02/Jul/2006:06:30:13表示訪問時間;GET表示請求的方法;/cs/first_page.action表示被請求的URL;HTTP/1.1表示超文本傳輸協(xié)議及版本號;200表示請求成功的返回碼;11226表示傳輸字節(jié)數(shù);“-”表示沒有引用頁; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)表示用戶代理信息。
3 Web日志數(shù)據(jù)預(yù)處理過程
數(shù)據(jù)預(yù)處理是在將Web 日志文件轉(zhuǎn)換成數(shù)據(jù)庫文件以后進(jìn)行的,其目的是把Web日志轉(zhuǎn)化為適合進(jìn)行數(shù)據(jù)挖掘的可靠的精確的數(shù)據(jù)。這個過程主要包括四個階段:數(shù)據(jù)清洗、用戶識別、會話識別和路徑補(bǔ)充。
3.1 數(shù)據(jù)清洗
數(shù)據(jù)清洗是指根據(jù)需求,對日志文件進(jìn)行處理,包括刪除無關(guān)緊要的數(shù)據(jù),合并某些記錄,對用戶請求頁面時發(fā)生錯誤的記錄進(jìn)行適當(dāng)?shù)奶幚淼鹊取?/p>
當(dāng)用戶請求一個網(wǎng)頁時,與這個網(wǎng)頁有關(guān)的圖片、音頻等信息會自動下載,并記錄在日志文件中,因此可以把日志中文件的后綴為gif、jpg、jpeg、wav、GIF、JPG、JPEG 、WAV等的記錄刪除(除非圖片、音頻等是用戶顯式請求的,即用戶所需要的內(nèi)容正是這些圖片和音頻等文件)。但是,當(dāng)挖掘的目的是為了進(jìn)行網(wǎng)絡(luò)流量分析或?yàn)轫撁婢彌_與預(yù)取提供依據(jù)時,這些信息又顯得格外重要,所以在刪除這些記錄的時候一定要記錄下相關(guān)信息。后綴名為cgi、js和JS等腳本文件對后面的分析處理不造成任何影響,也應(yīng)該刪除。常見做法是定義一個缺省的規(guī)則庫來幫助刪除記錄,而且這個規(guī)則庫可以根據(jù)正在分析的網(wǎng)站類型進(jìn)行修改。我們可以預(yù)先將網(wǎng)站分為一般網(wǎng)站、圖片網(wǎng)站、音視頻網(wǎng)站等,分別建立對應(yīng)的規(guī)則庫;確定要分析的網(wǎng)站屬于哪一類,然后按照該類網(wǎng)站的規(guī)則庫進(jìn)行數(shù)據(jù)清理。當(dāng)然,還可根據(jù)自己的特定需要對規(guī)則庫進(jìn)行刪改。為了避免到郵件系統(tǒng)和請求教師資源的操作對挖掘產(chǎn)生的影響,我們還刪除了郵件系統(tǒng)的記錄以及部分教師資源的請求記錄,只針對網(wǎng)站的本身進(jìn)行數(shù)據(jù)挖掘。
3.2 用戶識別
結(jié)束開始引言引言用戶識別的主要任務(wù)就是消除代理或防火墻的影響,從日志中還原出每一個請求的用戶。在對用戶進(jìn)行訪問模式挖掘或用戶聚類分析時,用戶識別顯得至關(guān)重要,因?yàn)槿后w是由個體組成的,只有對個體有了清楚的了解,才能識別群體的特征。然而由于本地緩存、代理服務(wù)器(網(wǎng)吧、局域網(wǎng)等環(huán)境)和防火墻的使用,使得用戶識別這一步變得很復(fù)雜。
前人在識別用戶時采用的策略中當(dāng) IP 地址相同,用戶使用的操作系統(tǒng)和瀏覽器也相同的條件下,則根據(jù)網(wǎng)站的拓?fù)浣Y(jié)構(gòu)進(jìn)行識別:如果用戶請求的某個頁面不能從已訪問的任何頁面到達(dá),則判斷這是一個新用戶。如果網(wǎng)站的拓?fù)浣Y(jié)構(gòu)比較復(fù)雜,在根據(jù)拓?fù)浣Y(jié)構(gòu)識別頁與頁之間的關(guān)系時,效率會降低。
為此本文對該策略進(jìn)行了改進(jìn):在用戶識別時,不考慮網(wǎng)站的拓?fù)浣Y(jié)構(gòu),而是根據(jù)引用頁來識別,具體策略如下:
(1)判斷用戶IP地址,不同的 IP 地址代表不同的用戶;
(2)若IP地址相同,但是用戶的瀏覽器或操作系統(tǒng)不同,則認(rèn)為是不同的用戶;
(3)若IP地址相同,用戶的瀏覽器和操作系統(tǒng)也相同,則根據(jù)引用頁判別:如果用戶請求的某個頁面未被請求過且該記錄中引用頁為空,則認(rèn)為是新用戶。具體算法框圖見圖1。
圖1 改進(jìn)的用戶識別算法流程圖
需要說明的是:并非使用了這些規(guī)則就能準(zhǔn)確地識別出用戶。如具有相同 IP地址的用戶若在同樣類型的機(jī)器上使用同種瀏覽器,并且請求的頁面集合相同,那么很難識別。一個用戶使用兩種類型的瀏覽器,或是沒有使用站點(diǎn)的鏈接結(jié)構(gòu)直接輸入URL,則容易被認(rèn)為是多個用戶。
3.3 會話識別
一個會話(Session)就是用戶從進(jìn)入到離開站點(diǎn)的一系列瀏覽請求。在跨越時間段較大的Web服務(wù)器日志中,用戶可能多次訪問了該站點(diǎn),會話識別的任務(wù)就是把屬于同一用戶的同一次訪問請求識別出來。
目前,會話識別的常用方法有3種。最常用的是超時(Timeout)方法。在該方法中,會話的邊界是在兩個頁面請求記錄(以下簡稱記錄)的時間間隔超過一定的閾值時確定的。J.Pitkow的實(shí)驗(yàn)證明,選擇 25.5分鐘作為Timeout的時間閾值比較接近真實(shí)會話[4]。目前產(chǎn)業(yè)界一般選擇30分鐘為默認(rèn)的時間閾值。
Cooley 等人提出了一種事務(wù)識別會話的方法,稱為序列長度法[5]。經(jīng)過研究發(fā)現(xiàn),用戶瀏覽頁面的模式一般是通過輔助頁面到達(dá)內(nèi)容頁面,而且用戶在內(nèi)容頁面停留的時間往往要比輔助頁面的長。這樣,如果已知內(nèi)容和輔助頁面的集合,在順序讀取日志記錄時,一旦遇到內(nèi)容頁面就找到了會話的邊界。但是由于在多數(shù)情況下,用戶光顧一個站點(diǎn)不可能只對一個內(nèi)容頁面感興趣,因此該方法形成的會話必然與真實(shí)會話有一定的差距。
最大向前序列的方法是根據(jù)用戶訪問行為劃分會話,一旦用戶后退瀏覽已經(jīng)瀏覽過的頁面時,就找到了會話的邊界。這種方法簡便,也易于實(shí)現(xiàn),但是由于所發(fā)現(xiàn)的會話只表達(dá)了用戶的部分行為,在準(zhǔn)確性方面存在局限性。
以上3種會話識別方法可能產(chǎn)生如下情況:(1)使原本在同一個會話里的記錄被劃分在不同的會話中;(2)使原本不在同一個會話的記錄被劃分在同一個會話中。當(dāng)這樣的不合理劃分所占的比例很大時,進(jìn)一步挖掘和分析所得到的結(jié)果就會受到影響,甚至是錯誤的。
基于此,文獻(xiàn)[6]提出了會話識別的優(yōu)化算法,并通過合并和斷開兩種操作對最常用的Timeout方法所得到的會話進(jìn)行優(yōu)化,使會話質(zhì)量得到了提高。文獻(xiàn)[7]提出了一種改進(jìn)的基于時間間隔的識別方法。該方法通過使用訪問時間間隔超出某個閾值來識別會話.通過為頁面設(shè)置訪問時間閾值,并根據(jù)頁面內(nèi)容及站點(diǎn)結(jié)構(gòu)確定的頁面重要程度對該閾值進(jìn)行調(diào)整。該方法相對于傳統(tǒng)的使用單一先驗(yàn)閾值進(jìn)行會話識別的方法,能更準(zhǔn)確地確定頁面訪問時間閾值,而且可以有效的識別出長會話。
由于超時方法比較簡單,我們開發(fā)的Web日志挖掘預(yù)處理模型在進(jìn)行用戶會話識別時,依然采用這種方法,選擇30分鐘作為超時間隔。
3.4 路徑補(bǔ)充
由于瀏覽器本地緩存和代理服務(wù)緩存的存在,當(dāng)用戶調(diào)用已訪問過的頁面時,將直接從本地或代理的緩存中提取,服務(wù)器日志將遺漏對這些頁面的請求。路徑補(bǔ)充的任務(wù)就是將這些遺漏的請求補(bǔ)充到用戶會話中。
路徑補(bǔ)充的方法是:依次掃描每一個用戶會話,若當(dāng)前訪問的頁面與以前訪問的某個頁面存在超鏈接,則說明該用戶是通Back按鈕,從本地Cache中調(diào)出該頁面的歷史記錄鏈接到當(dāng)前頁面。如果會話中相鄰兩頁之間沒有超鏈,說明用戶很可能使用了緩存中的頁面,則檢查引用日志確定當(dāng)前請求來自哪一頁,如果在用戶的歷史記錄上多次出現(xiàn)引用頁,則將請求時間最接近當(dāng)前請求頁的頁面作為當(dāng)前請求的來源,并將該來源頁補(bǔ)充進(jìn)用戶會話中。若引用日志不完整,可以使用站點(diǎn)的拓?fù)浣Y(jié)構(gòu)。
根據(jù)數(shù)據(jù)挖掘處理任務(wù)的不同,有時還需要進(jìn)行格式化操作,主要是根據(jù)即將進(jìn)行的挖掘任務(wù),將前期預(yù)處理后的數(shù)據(jù)轉(zhuǎn)換成所需的數(shù)據(jù)格式。如進(jìn)行用戶訪問模式挖掘,還需要進(jìn)行事務(wù)識別,將會話進(jìn)一步細(xì)分為具有一定語義的事務(wù)。
4 實(shí)驗(yàn)結(jié)果
根據(jù)以上內(nèi)容,筆者實(shí)現(xiàn)了一個Web日志挖掘數(shù)據(jù)預(yù)處理模型(WLMPM),如圖2所示。使用編程平臺為VB.net,Access 數(shù)據(jù)庫,實(shí)驗(yàn)數(shù)據(jù)取自某大學(xué)計(jì)算機(jī)學(xué)院2006年7月9日~2006年7月16日的服務(wù)器訪問日志,日志中原始記錄為19 5154條,經(jīng)過數(shù)據(jù)清洗:掉cs-method 中非200 的記錄,去掉后綴名為.jpg,.jpeg,.gif,.bmp,.wav的請求,去掉查詢操作和郵件系統(tǒng)操作的請求,去掉部分教師資源的請求,剩余記錄18 263條(是原始日志記錄個數(shù)的10%)。用傳統(tǒng)的用戶識別策略得到2 528個用戶,使用本文提出的用戶識別改進(jìn)策略,共得到3 163個用戶,說明改進(jìn)后的方法具有更好的識別效果,且在網(wǎng)站拓?fù)浣Y(jié)構(gòu)比較復(fù)雜的情況下,時間復(fù)雜度較低。
圖2 WLMPM的體系結(jié)構(gòu)圖
4 結(jié)束語
面向Web日志挖掘中的一個重要的前提和基礎(chǔ)就是Web日志數(shù)據(jù)準(zhǔn)確性。只有準(zhǔn)確的數(shù)據(jù)才能正確地反映使用者的意圖,才能保證分析沿著正確的方向進(jìn)行。高質(zhì)量的Web日志挖掘必須依賴高質(zhì)量的數(shù)據(jù)[8],因此,數(shù)據(jù)預(yù)處理工作既要保證信息無失真的轉(zhuǎn)換,又要保證過濾刪除掉某些對以后挖掘無影響的數(shù)據(jù)。本文所做的工作就是對傳統(tǒng)的Web日志挖掘預(yù)處理過程進(jìn)行詳細(xì)分析,并提出了用戶識別的改進(jìn)策略。同時實(shí)現(xiàn)了一個Web日志挖掘預(yù)處理模型(WLMPM)。目前,如何提高與改進(jìn)Web日志挖掘預(yù)處理技術(shù),確保輸入Web日志挖掘的數(shù)據(jù)正確高效已成為一項(xiàng)重要課題和研究方向。
參考文獻(xiàn):
[1]韓家煒,孟小峰,王靜,等.Web挖掘研究[J].計(jì)算機(jī)研究與發(fā)展,2001,38(4):405-414.
[2]CHAKRABARTIS.Data mining for hypertext:A tutorial survey[J].SIGKDD Exploration,2000,1(2):1-11.
[3]楊怡玲,管旭東,陸麗娜,等.一個簡單的日志挖掘系統(tǒng)[J].上海交通大學(xué)學(xué)報.2000(7):35-37.
[4]Catledge L,Pitkow J.Caraeterxizing Browsing Strategies in the World_Wide_Web[J].Computer Networks and ISDN System,1995,27(6):1065-1073.
[5]Cooley R,Srivastava J.Grouping Web page references into transactions for mining world wide Web browsing patterns [A].Proceedings of KDEX'97[C].Newport Beach,CAUSA 1997:2-7.
[6]陳子軍,王鑫昱,李偉.一種Web日志會話識別的優(yōu)化方法[J].計(jì)算機(jī)工程,2007,33(1):95-97.
[7]殷賢亮,張為.Web使用挖掘中的一種改進(jìn)的會話識別方法[J].華中科技大學(xué)學(xué)報,2006,34(7):33-35.
[8]趙瑩瑩,韓元杰.Web日志數(shù)據(jù)挖掘中數(shù)據(jù)預(yù)處理模型的研究與建立[J].現(xiàn)代電子技術(shù),2007(4):103-105.
收稿日期:2007-12-08
作者簡介:趙娜(1976-),女,西安電子科技大學(xué)在讀碩士,研究方向:數(shù)據(jù)挖掘;葛蒲陽(1957-),男,高講,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。