摘 要:隨著互聯網的飛速發展,Web用戶行為模式挖掘研究工作日益重要,但目前的挖掘工作中存在如用戶識別不準確、路徑補充存在誤差、無法及時有效地了解某一區域的互聯網使用情況等問題。為解決這些問題,研究、實現了一種新的Web用戶行為統計分析系統。
關鍵詞:Web用戶行為; 統計分析系統; 研究和實現
中圖分類號:TP391 文獻標志碼:A
文章編號:10013695(2008)09275804
Research and realization of new statistic and analysissystem of Web user’s behavior
YANG Fenglei1a,1b,2, YAN Baoping1a
(1.a.Computer Network Information Center, b.Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100080, China; 2.Graduate School, Chinese Academy of Sciences, Beijing 100039, China)
Abstract:With the rapid development of Internet, the research of Web usage mining became more and more important. But, there were some shortages in the research of Web usage mining such as the error of identifying Web user, the error of complementing the Web user’s navigation path and incapable to know the Web usage data of a district in time. To resolve these problems, this paper researched and realized a new statistic and analysis system of Web user’s behavior.
Key words:Web user’s behavior; statistic and analysis system; research and realization
0 引言
隨著網絡的飛速發展,互聯網開始滲透到人們日常的生活、工作、學習等各個方面,人們對互聯網的依賴程度日益加深。與此同時,從另一方面看,互聯網也變成了一個巨大而分布廣泛的全球性信息服務中心。在此情況下,由于Web數據內容的動態性和龐大性特點,要想在互聯網上及時、準確地找到期望的資源和發現有用的知識,就有一定的困難。而Web站點具有智能性,能快速、準確地向用戶提供所需信息,為不同用戶提供不同的特定服務將是廣大用戶所期望的。為了完成上述功能或解決此類問題,需要準確地了解用戶訪問互聯網的規律從而得到用戶訪問互聯網的行為模式、興趣等。這是一個基礎性的工作,涉及到Web用戶行為模式挖掘研究,其屬于Web挖掘范疇。一般而言,Web用戶行為模式挖掘需要經過的過程可用圖1表示。
具體而言,Web用戶行為模式挖掘中所涉及原始文件主要包括Web服務器日志、引用者日志、代理服務器日志、用戶的注冊信息等;對原始日志文件所進行的數據預處理過程一般包括數據清理、用戶識別、會話識別、路徑補充、事務識別、數據定制等過程;對數據預處理的結果(事務文件等)進行模式挖掘可采用的技術包括統計分析、關聯規則、序列模式、聚類/分類、依賴性建模等;對模式挖掘得出的結果即規則/模式可進行OLAP等查詢和分析評估(更常見的情況是結合進模式應用過程中);對于有效而用戶感興趣的模式可用于具體的應用如個性化服務、系統優化、網站優化、網站營銷、網絡安全等。
模式挖掘的目標是為了應用,為了更好地服務于用戶。但從目前Web用戶行為模式挖掘應用的情況看,除一些專注在特定領域的應用外,絕大部分應用的效果都有進一步改進的必要。出現這種狀況的原因可從模式挖掘的過程來分析,主要原因在于:模式挖掘、模式分析和模式應用的方法、算法需要進一步改進以挖掘出全部真正有用的模式并能準確應用;現在的模式挖掘體系、數據預處理過程中存在諸多需要改進的地方,其直接影響了后續工作的準確度和效果。這里主要關注后者,如用戶識別過程中的問題。由于緩存和代理服務器(包括網吧、局域網等環境)的存在,盡管它能加快用戶的訪問速度或節省IP地址等,但對于Web服務器而言,代理服務器卻屏蔽了用戶的IP,導致了準確識別用戶的困難。盡管可以采用用戶的IP地址、Cookie、用戶注冊信息、啟發的方式等來識別用戶,但其中存在的問題是顯而易見的,用戶識別問題是一個至今都無法完全解決的問題。再如路徑補充過程中,為了找回被遺漏掉的記錄而采用的一些方法。例如,如果當前請求的頁面與用戶上次請求的頁面之間沒有超文本鏈接,那么用戶很可能使用了瀏覽器上的“back”按鈕來調用緩存在本機中的頁面。檢查日志確定當前請求來自哪一頁,如果用戶在歷史訪問記錄中有很多個頁面包含與當前請求頁面的鏈接,則將請求時間最接近當前頁的頁面作為當前請求的來源。很明顯,這里面也存在不準確的因素。如何進一步提高路徑補充的準確度也將是一個應該關注的問題。顯而易見,未能準確識別用戶和用戶訪問路徑等問題會對后續的模式挖掘和應用帶來影響,尤其是對個性化等應用的影響更大。
由中國互聯網絡信息中心(CNNIC)聯合各互聯網絡單位每年實施兩次的中國互聯網絡發展狀況統計調查工作截至目前進行了20次,發布的報告得到了社會各界的廣泛重視和引用。但隨著互聯網的發展,社會各界對調查數據的詳細程度、數據及時性等提出了更高的要求,如希望能實時或在較短的時間內了解某一區域所有網站(市、省、國家、全球等)或部分網站的用戶使用互聯網的情況等,這是目前的調查方式所無法完成的。對比,由于當前的Web用戶行為模式挖掘研究工作主要針對單個的網站(單獨的服務器或服務器群),現有的Web用戶模式挖掘工作也無法完成或完成起來比較困難。
1 系統整體結構
系統的基本思路是通過安裝在樣本用戶(經過一定方法選擇的互聯網用戶)計算機上的軟件,采集用戶使用互聯網的相關數據,并據此形成行為記錄(經過加密),將該行為記錄傳輸回數據處理服務器并對其進行解密、轉換、計算、挖掘后得到結果。此過程中,通過加密行為記錄的部分字段保證了數據的可靠性,并在采集信息、處理信息時執行一些特定的算法防止異常(作假等)行為。因此,本系統從整體上分為兩大部分,即樣本終端軟件部分和數據處理服務器部分。其中:樣本終端軟件部分負責采集用戶使用互聯網的信息、生成行為記錄、執行加密算法等防假處理、傳送行為記錄;數據處理服務器部分又分為三個部分,即數據收集、解密和驗證(含執行特定算法防止作假等)部分、數據統計挖掘計算(負責執行數據預處理、對信息進行統計分析、生成供OLAP的多維數據、挖掘用戶模式)部分和發布統計結果部分等。系統總體思路如圖2所示。
系統的功能結構框圖如圖3所示。
2 樣本終端軟件部分
在樣本終端軟件中,記錄訪問量數據和執行加密等防偽算法是其中的關鍵點和難點。另外,由于此部分需要運行在用戶的計算機上,其運行時的安全性、穩定性、負載、對不同操作系統的適應性等也需要重點考慮。考慮到目前絕大部分用戶使用的是IE瀏覽器,并結合以上的相關考慮,該部分以BHO(browser help objects)的方式來實現。通過系統預留的COM組件接口就可以實現用戶使用互聯網相關數據的監控和記錄。在兼顧加密程序的抗攻擊性和加密效率的前提下,數據加密部分通過一改進的對稱加密算法對部分訪問行為信息特征值、訪問行為數據記錄和參照物的關系特征值以及訪問行為數據記錄相互之間的關系特征值加密后與訪問行為數據一同生成行為記錄,之后將訪問行為記錄傳送回數據處理服務器。樣本終端軟件部分的功能框圖如圖4所示。
3 數據處理服務器部分
3.1 數據收集、解密和驗證
由于樣本終端軟件中采用的是對稱加密算法,此處只要對密文進行對稱解密即可。之后對解密的密文和明文、明文內容特征值等之間是否相同進行驗證。另外要執行一特定算法防止作假等異常行為。對通過驗證并認為正常的記錄放入用戶訪問行為日志文件,過程如圖5所示。3.2 數據統計挖掘計算
在Web用戶行為模式挖掘領域中,研究者通常將挖掘指標分為統計分析指標、關聯規則、序列模式、聚類/分類模式、依賴性建模等類。在本文的系統實現中,出于系統實現的方便,采用了另外一種分類方法,考慮到關于Web用戶行為的統計指標是多層次和多類型的(如時間概念上的日、周、月指標;涵蓋范圍上的互聯網、網站、頻道、欄目、特定對象指標;用戶特征分布及其結合用戶特征的參數指標;需要采用模式挖掘算法如關聯規則、序列模式、聚類/分類分析、依賴性建模等計算得到的規則/模式指標等),按照計算的復雜程度與指標之間的相互依存關系,將所有指標分為基本指標、復雜指標、結合用戶特征的參數指標和結合挖掘算法的模式指標(此處不包括統計分析指標)四種。復雜指標是指與惟一訪問者有關的指標;基本指標是指計算過程比較簡單的,如請求數、頁面閱覽數、帶寬等指標;結合用戶特征的參數指標指類似于用戶的平均訪問天數在用戶性別上的分布等的指標;模式指標如關聯規則:訪問頁面A的客戶中,有40%的用戶又訪問了頁面B等。
依據上述不同指標的計算特點、指標相互之間的依存關系、計算復雜性不同等情況,將數據計算部分分為初始化、讀配置文件、切分日志文件、日志文件預處理、日志文件復雜處理、結合挖掘算法的復雜計算、產生結果幾個階段。它們之間的關系如圖6所示。
圖6中,初始化階段主要完成計算所需的相關變量、結構、數組等的定義和賦值;切分數據文件主要是為了執行特定網站的參數計算而做好數據準備;挖掘計算前的入庫生成多維數據主要是考慮到靈活性的要求留下來的功能擴展接口;產生結果階段將計算結果、計算過程信息諸如計算過程花費的時間等,按照確定的格式存入指定的位置和文件中。而讀配置文件、日志文件預處理、日志文件復雜計算、結合挖掘算法的模式計算,這幾個階段是數據計算的關鍵和難點部分。
3.2.1 讀配置文件
為了能夠對數據進行靈活的分析處理,系統采用UNIX風格的系統配置文件對互聯網(針對不同層次的區域,其所指范圍不同,以下同)、網站、網站頻道等層次進行各自不同的、靈活的計算規定。這就確定了后續的計算內容、方式和過程,即對計算的不同要求通過修改配置文件即可方便達到。配置文件包括互聯網、網站、頻道等部分配置內容。其中互聯網、網站的配置文件內容規定了如網站名稱、主域名、服務器列表、日志文件的源路徑等基本信息;網站統計中指定要包含(include)記錄的特征配置信息、網站統計中指定要排除(exclude)記錄的特征配置信息等。頻道的配置文件內容與網站的配置內容類似,但可以規定多個相對獨立的頻道信息。另外,考慮到系統的靈活性,配置文件的生成有兩種方式,即人工方式和自動方式。
3.2.2 日志文件預處理
日志文件預處理階段完成的工作主要是依據配置文件中所規定的內容統計互聯網、網站、頻道的基本指標和用戶特征指標,并產生復雜處理所需要的關于互聯網、網站、頻道的臨時文件。在此過程中按照配置文件的設置將排除無關項(數據凈化工作)。為了提高效率和方便計算,日志預處理階段要合并日志文件,直至產生只包含復雜指標計算所需的用戶ID、URL等字段,及按照時間排序的臨時結果文件(完成用戶識別工作)。在此過程中,對于日志文件的每條記錄,依次統計互聯網、網站和頻道的基本指標和用戶特征指標,如請求數、頁面閱覽數和帶寬等。過程如圖7所示。
3.2.3 日志文件復雜計算
這里對互聯網、網站或頻道合并成惟一的臨時文件進行復雜指標及相關用戶特征指標的計算。復雜指標計算過程中,惟一訪問者的確定是計算的前提和關鍵。只有確定了惟一訪問者,才能根據其訪問時間等再確定用戶會話數等指標。考慮到系統的靈活性、實用性,惟一訪問者的確定在本系統中有兩種實現方式:a)采用樣本終端軟件中嵌入的ID號作為惟一訪問者的標志;b)通過IP地址作為惟一標志。在a)中,由于在分發樣本終端軟件過程中分配了惟一的ID,該部分就避免了傳統用戶識別方法帶來的IP地址需要排序等復雜的計算過程,從而非常容易、準確地得到了惟一訪問者標志;之后即可計算會話數、結合用戶特征指標的參數值和進行關聯規則、序列模式、聚類等模式挖掘計算。在b)中,為快速計算惟一訪問者,要對IP地址排序后采用快速查找算法。在兼顧減少插入IP地址時數組元素的移動量(對計算速度影響很大)和占用合適大小內存量的原則下,針對IP地址的前兩個字節建立二維(256×256)數組(提高檢索速度)。每個數組元素指向一個可動態擴充(節省內存)的結構指針數組,存儲所有前兩個字節為數組下標的IP地址及相關參數。這樣計算的復雜度急劇減少并且占用內存量也減到可接受的范圍。事實證明此方法是高效的。數據結構如圖8所示。
為了完成用戶會話數的計算以及進行后續的模式挖掘工作,在數據復雜計算過程中,進行了會話識別和事務識別計算。會話識別采用超時的方法處理;事務識別采用最大前向引用方法識別。最后在完成復雜計算的過程中,生成了用于后續行為模式挖掘的事務文件。由此可見,傳統的Web用戶行為模式挖掘過程所需要的數據預處理工作(一般包括數據凈化、用戶識別、會話識別、路徑補充、事務識別等步驟)在本文研究的系統中發生了變化。由于本系統的數據是通過樣本終端軟件得到的,結合本系統結構的優點,預處理過程中避免了一些對常規Web日志挖掘預處理無法很好處理的問題,如用戶識別等。在本系統中只需要進行數據凈化、會話識別、事務識別幾個預處理過程。即無須進行用戶識別、路徑補充等難點工作,而且保證了用戶和路徑的絕對準確。
3.2.4 結合挖掘算法的模式計算
原則上,在得到了事務文件后即可進行關聯規則、序列模式、聚類、分類、依賴性建模等各種Web用戶行為模式挖掘工作。目前在系統中主要以個性化服務為應用背景,完成了序列模式、用戶聚類、頁面聚類挖掘計算。
1)序列模式 考慮到傳統的基于Apriori類的算法有一些固有的缺點:需要多次掃描數據庫;需要產生大量候選項集等。這在存在大量數據的Web用戶行為模式挖掘過程中是無法接受的。因此,在本文的系統中采用了改進的FPGrowth算法,主要的修改部分在于FP_Tree的構造,而基于FP_Tree的FP_Growth挖掘算法相同于挖掘關聯規則的FP_Growth算法。基本過程為:掃描交易數據庫,統計各個項目的訪問頻率并排序(從高到低),根據用戶設置的支持度閾值得到頻繁1項序列L;再次掃描交易數據庫,根據得到的頻繁1項序列L去除每個交易中的非頻繁項,保持原交易中數據項的順序,構造FP_Tree;對FP_Tree進行分析,利用FP_Growth算法挖掘所有的序列模式。
2)用戶聚類 將用戶事務轉換為用戶訪問頻率矩陣,對該矩陣中的用戶進行聚類,形成C={C1,C2,C3,…,CM}式樣的類別。每個類的中心矢量表示為CI={D1,D2,D3,…,DN},DJ表示在用戶類別I中頁面j出現的平均頻率。聚類分析中采用的計算方法結合了譜系和非譜系兩種方法的優點,首先進行譜系聚類:定義案例之間的距離為歐氏平方距離d2=∑(xik-yjk)2,使每個案例自成一類,每一步使離差平方和(一個類中每一個項目與類均值的偏差平方和ESS=∑Xi-Xave)的增加最小的兩類合并為一類,直到所有案例都歸為一類為止。在此過程中得到各個類的重心(將作為非譜系聚類的初始分類重心)。之后進行非譜系聚類:首先指定要形成的聚類數,對樣本進行初始分類并計算每一類的重心——該類中所有案例在各個變量上的均值所代表的點;調整分類,計算每個樣本點到各類重心的距離,將每個樣本點歸入距重心最近的那一類;重新計算每一類的重心。重復上述步驟,直至所有的對象都不能再分配時為止。
3)頁面聚類 為了得到相似程度較高的頁面,一種方法是采用類似于搜索引擎中通過截詞將頁面表示成向量,然后在向量空間中計算向量間相似程度的做法來得到。但是此種方法僅從頁面本身出發,并沒有考慮用戶感受,而這在Web個性化等應用環境中是比較關鍵的。用戶訪問頻率矩陣則表示了用戶對頁面的感受,所以頁面聚類實際上可在以用戶為坐標的坐標系中對頁面進行聚類。但存在一個問題:由于用戶的關注點或興趣存在多樣性造成了用戶變量之間是相關的,即聚類變量之間存在共線性問題。統計學已經證明,這會對聚類的效果造成大的影響,使得聚類的準確度下降等。解決的方法之一是在聚類之前先進行正交化處理。在這里的聚類過程是:首先采用因子分析方法對用戶訪問頻率矩陣進行正交化,之后采用聚類分析。因子分析的過程是首先將用戶訪問頻率矩陣計算轉換為相關系數矩陣,據情況選擇主因子方法進行分析,之后即可進行提取因子、因子旋轉、計算因子值等步驟,最終得到完全正交化的矩陣。因子分析的實質是:
即k個觀測變量可用m個正交的公因子表示。之后進行的頁面聚類分析過程與用戶聚類中的過程類似。
3.3 發布統計分析結果
本部分完成的主要功能是向用戶提供訪問統計結果的接口。當用戶發出請求要查看統計結果數據時,Java程序將分析他的用戶名和口令,將所請求的數據生成一個動態圖表頁面并發送給用戶。本部分采用JSP+Bean+Oracle的方式實現。
4 樣本終端軟件部署
理論上講,在將樣本終端軟件分發給互聯網用戶、數據處理服務器部分收集到用戶使用互聯網的數據后,即可進行數據的統計分析模式挖掘工作。但這里存在一個問題,即這樣得到的數據是沒有代表性的。也就是說,在此情況下計算得到的數據不準確。為保證得到的數據能夠在一定準確度水平上代表一定區域內的狀況,或者換句話說,期望數據能在一定置信度水平上代表全國、某個省、某個市或其他某個區域的狀況,在樣本終端軟件的分發過程中采用了抽樣技術。
首先需要確定樣本量,在置信度為95%的情況下,不同的誤差水平下所需要的樣本量如表1所示。
表1 純凈樣本量計算表
允許絕對誤差/%2345
純凈樣本量2 4011 067600384
樣本量的確定要考慮到成本和時間的限制,折中后即可選擇合適的最大允許絕對誤差及對應的樣本量。此外,考慮到實際抽樣過程中的誤差,還需要考慮設計效應的問題,綜合上述因素后可確定最終的樣本量。
其次需要確定樣本的選擇方法(即抽樣方法),這就需要確定抽樣的變量。具體方法是利用以前的互聯網調查數據(如CNNIC互聯網調查)確定網民的相關特征與網民上網行為之間是否有顯著的關聯性。在此過程中初始選擇的特征變量有性別、年齡、婚姻狀況、地域分布等;初始選擇的上網行為變量有上網地點、上網時間段、上網目的、常用的網絡服務等。分析過程中采用了回歸分析、交互分析、相關分析及擴展等方法。根據分析結果(據顯著性水平選擇有影響的變量)并結合經驗,即可確定進行抽樣的變量。
根據上述過程確定的抽樣變量及樣本量,從目標區域范圍中隨機抽取既滿足條件、又愿意配合的網民作為樣本。具體的抽取方法有從以前樣本調查資料中抽取、公開征募等。選定樣本后即可向選定的樣本分發嵌入了ID號的樣本終端軟件,此后即可收集數據和進行統計挖掘。由此,本系統計算得到的數據即可在一定置信度水平下代表某一區域內的情況。
5 系統測試
5.1 樣本終端軟件部分測試
樣本終端軟件部分的測試主要從系統對不同操作系統的適應性、系統對用戶計算機的負載、穩定性影響兩個方面來進行測試。實際上這兩方面的測試都可以歸結為對用戶感受的影響測試。測試中,選擇了目前用戶使用較多的Windows 2000、Windows XP、Windows 2003等操作系統。在不同的操作系統上分別測試系統的適應性、負載和穩定性影響。經過測試發現,從用戶實際的感受看,安裝該樣本終端軟件前和后的用戶感受基本沒有變化。實際上,安裝樣本終端軟件前和后實際測得的用戶計算機的CPU、內存等參數基本無變化。
50.2 數據處理服務器部分測試
該部分的測試主要從功能正確性和性能兩方面進行,參照對象選擇了WebTrends Log Analyzer4.1(LA)。在功能正確性測試中,通過對相同日志文件進行統計分析發現,本系統計算的結果與Log Analyzer4.1(LA)計算的結果比較而言,結果之差在3%之內。測試結果如表2所示。
在性能測試中,通過同一服務器對相同日志文件進行同樣指標的計算發現,本系統的計算速度明顯快于Log Analyzer4.1(LA)。測試結果如表3所示。
商業公司對其軟件的計算過程、算法等嚴格保密,經初步分析后,認為功能正確性測試中的結果差異是由于兩個系統的指標定義、計算算法、對記錄的合法性定義及處理等有不同所致。性能測試結果的差異是由于兩個系統中指標計算算法不同等原因所致。
6 結束語
本文系統全面地敘述了所研究實現的不同于傳統方式的新的Web用戶行為統計分析系統的結構組成、算法、系統部署方法等,這在目前的Web用戶行為模式挖掘研究領域中較少涉及。它主要解決了目前Web用戶行為模式挖掘工作中所面臨的用戶識別問題、路徑補充問題、實時或在較短時間內計算某一區域的互聯網使用情況等問題,
為進一步提高互聯網發展狀況統計調查工作的水平和Web用戶行為模式挖掘的應用效果奠定了一定的基礎。
目前本系統的理論研究、算法設計、原型實現和部分實驗工作已經完成。后面的工作是將原型進一步形成實用的系統和進行系統部署,準備用于CNNIC中國互聯網絡發展狀況統計調查、區域性的互聯網發展狀況統計調查以及相關Web用戶行為模式挖掘工作中,為互聯網的發展作出貢獻。
參考文獻:
[1][EB/OL].http://www.ipro.com.
[2][EB/OL].http://www.netcraft.com.
[3][EB/OL].http://www.doubleclick.com.
[4][EB/OL].http://www.netiq.com.
[5][EB/OL].http://www.iab.org.
[6][EB/OL].http://www.apache.org.
[7][EB/OL].http://www.cnnic.cn.
[8]盧開澄.計算機密碼學[M].北京:清華大學出版社,1998:38129.
[9]HAN J, PEI J, YIN Y,et al. Mining frequent patterns without candidate generation:a frequentpattern tree approach[EB/OL].(2007).http://www.cs.uiuc.edu/~hanj/pdf/dami04_fptree.pdf.
[10]李雄飛,李軍.數據挖掘與知識發現[M].北京:高等教育出版社,2003:93116.
[11]宋擒豹,沈鈞毅.Web日志的高效多能挖掘算法[J].計算機研究與發展,2001,38(3):328333.
[12]劉煒,陳俊杰.一種Web使用模式挖掘模型的設計[J].計算機應用研究,2007,24(3):184186.