[摘要] web服務器日志中保存了大量的用戶訪問電子商務系統的記錄,我們從中提取所需的數據,運用數據挖掘技術對所提取的數據進行處理和分析,從而得到用戶購物的興趣和習慣,使電子商務系統更能滿足用戶的需求。
[關鍵詞] 數據挖掘 電子商務 頻繁訪問路徑
在電子商務網站模式下,用戶購買商品的過程就是在電子商務網站頁面中跳轉的過程,用戶的每個活動其實也就是對網站上的一個頁面對象的點擊操作,而這些點擊操作都被記錄在網站的系統日志中,通過對日志文件的分析挖掘,可以找出用戶行為模式;在另一方面,電子商務網站的結構組織是不是符合客戶購買商品的規律,通過對網站日志的分析也可以得到。所有這些都離不開數據挖掘技術,本文就是通過對電子商務網站服務器日志文件進行分析,從而進一步指導電子商務網站建設。
在Web中使用數據挖掘,數據最直接的來源是Web服務器日志,它非常明確地記錄了訪問者的瀏覽行為,在Web使用記錄挖掘中有很重要的地位。每當有獲取資源的請求到來時,服務器方將會產生Server1095,Error1095和Cookie1095三種類型的日志文件,記錄用戶訪問和交互的基本信息Web日志文件是由一條條的記錄組成,記錄了用戶對Web頁面的一次訪問,盡管不同Web服務器的記錄格式不盡相同,但都包含用戶訪問的基本信息。Web服務器文件的記錄格式:
一、提取數據
客戶在瀏覽網站時,是以點擊超鏈接方式訪問電子商務網站,客戶的所有的點擊行為可以抽象的點擊流來表示,客戶的操作軌跡都被記錄在服務器日志里,因此我們可以大量收集每個客戶的行為數據、深入研究,從這些看似“無意義”的數據中得到有價值的信息和知識。我們可以收集并分析客戶的瀏覽行為,使用數據挖掘方法發現客戶的使用模式,向客戶提供個性化頁面的推薦服務。
同時可以刪除web日志中與挖掘算法無關的記錄,本文中所需要的數據主要是用戶名、請求的頁面的時間和頁面的地址,其它的數據項不需要,因此都可以刪除。
二、用戶識別
用戶識別是點擊流數據預處理過程中一項比較困難的任務,但目前已出現了不少來精確識別一個用戶的方法,其中最簡單但是誤差也最大的一種方法就是根據IP進行識別,此外還有一些嵌入sessionID、讓用戶進行注冊、在客戶端寫入Cookie標識以及使用嵌入代理的方法每種方法都有其自身的優缺點。在Web日志挖掘中,如果只根據服務器端日志確定用戶往往會有一定的誤差,確定用戶的誤差會導致對用戶訪問事務的劃分出現不準確,從而使得數據挖掘的結果也出現偏差。可以根據結果所要的精確度,選擇不同的方法進行識別,我們一般選擇在客戶端寫入Cookie的方法即可達到比較好效果。
三、會話事務識別
用戶會話的數學表示:用戶會話S是一個二元組
S=
服務器要并發處理多個用戶的請求,要從多個相互交織的用戶訪問事務中正確區分出所有用戶訪問事務比較困難。一般都是對用戶在客戶端瀏覽行為做不同的假設,然后再在此基礎上確定用戶訪問事務。因此確定的用戶訪問事務并不能保證完全精確。根據對用戶訪問行為的不同假設,有四種確定用戶訪問行為及訪問事務的模型:頁面類型模型(PageTyPeModel)、參引長度模型(ReferenceLengthModel)、最大向前參引模型(MaximalForward
RefereneeModel)、時間窗口模型(TimeWindowModel)。
我們采用時間窗口模型對用戶訪問事務進行識別。時間窗口模型中,對用戶瀏覽行為假定的方法是認為用戶一次訪問的時間都有一個最大的限制。我們采用時間間隔來區分用戶訪問事務,即如果相鄰兩個頁面請求的間隔時間超過一定的界限,就認為是開始了一次新的用戶會話。此時,公式1要滿足式公式2:
timei-timet-1≤W,1<i≤k—公式2
在時間窗口模型中劃分用戶訪問事務。其中關鍵的一步是如何確定時間窗口大小即超時閥值。因為超時閥值的確定直接影響到點擊流數據預處理結果的輸出,不同的超時閥值會產生不同的用戶會話文件。對于超時閥值,我們采用對實際日志進行實驗,觀察超時閥值與平均用戶會話長度及用戶會話個數之間的關系來確定。
實驗證明,當超時閥值到達60分鐘時,會話長度增長于平穩,并且會話個數減少的趨勢也趨于平穩,因而在我們的系統中將超時閥設為60分鐘。目前,許多商業產品將缺省超時值確定為30分鐘,超時的界限以根據站點的使用統計反饋的結果進行調節,直到可以更準確地識別會話。
四、頻繁路徑的挖掘
用戶頻繁訪問路徑是用戶在一定時期內多次瀏覽的連續頁面序列,它最能反映在這個時期里用戶的瀏覽興趣。因此,用戶頻繁訪問路徑的挖掘對于了解用戶當前興趣,為用戶提供個性化的服務有著非常重要的意義。用戶頻繁訪問路徑挖掘算法輸入數據為事務識別的結果:用戶的MFP集合。輸出的是用戶的頻繁訪問路徑集合和相應的支持度。據此結論,可以得到用戶的興趣模式。相關定義和概念。
定義1:給定路徑P={x1,x2,…xn},任意的p`={xi,xi+1,…xi+j}(i=1,i.+j=n)均為P的子路徑(Sub一path),且稱P包含p`。
定義2:如果一個Web訪問路徑P={x1,x2,…xn},滿足以下條件:
則稱路徑P為頻繁路徑。其中,Smin為預先定義的最小支持度。頻繁訪問路徑就是MFP中滿足一定支持度的連續頁面序列。
定義3:支持度指包含頻繁訪問路徑的用戶會話的數目。定義頻繁訪問路徑的長度為其包含的頁面數。設長度為k的頻繁遍歷路徑的集合為FPk,其中最頻繁的M個訪問路徑的集合為FPk_m={Pk_1,…Pk_m}。
定義4候選路徑:若兩個連續的k-1長的子路徑{xj,… xj+k-2}和{xj+1,…xj+k-1}都是FPK-1的元素,即它們的支持度都不小于Pk-1_.m。的支持度,那就稱{xj,…xj+k-1}為FKk的候選路徑。如會話S包含兩個MFP:{a,b,c,d,e}和{f,g},尋找FP3的候選路徑需要考慮3個子路徑{a,b,c}{b,c,d}{c,d,e},如果{a,b}{b,c}是即FP2中的頻繁訪問路徑,那么{a,b,c}就是一個FP3的候選路徑。
用戶頻繁訪問路徑挖掘算法,挖掘長度為k的用戶頻繁訪問路徑就是設法構造FPk。算法的主要思想是基于候選路徑的概念,從MFP中找出長度為k的候選路徑{xj,…xj+k-1,},然后計算它在用戶所有會話中的支持度。支持度最大的M個路徑的集合就是FKk_m。
構造FPk(k>1)的算法如下:
輸入:一個用戶的MFP的集合Fi。
輸出:一個用戶的頻繁遍歷路徑集合FPk(k>l)。
for每個Fi. {
for Fi中的每個{x1, x2, ……, xm}{
if (k=m){
for (j =l;j< m-k+l;j++)}
if{ x j,… xj+k-1}己經在FPk中
{xj,…xj+k-1}的支持度加1
else if{ x j,…xj+k-2}的支持度=Sk-1and{xj+l,…xj+k-1}的支持度=Sk-1
將{xj,… xj+k-1}插入FPk;
}
}
}
}
在調用發現頻繁遍歷路徑的算法之前,先要計算每一頁在用戶會話中的支持度,也就是路徑長度為1的情況,然后從2直到k循環調用發現頻繁遍歷路徑的算法,每一次循環都可以利用上一次循環結果中的支持度。
使用該算法分析每個用戶會話,得到每個用戶頻繁遍歷路徑表,用戶頻繁遍歷路徑表:
在電子商務系統的推薦模塊里。就可以根據用戶的ID號和及其相應的頻繁訪問路徑向用戶提供最可能的訪問鏈接,從而達到向用戶推薦其最可能需要產品的目的。
五、小結
本文通過對web服務器的日志文件的數據進行處理和分析,使用數據挖掘的方法,從中得到用戶的頻繁訪問路徑,來了解用戶的購物特性和習慣,從而達到向每個用戶推薦產品的目的。Web挖掘是一個十分復雜,但是有廣泛應用前景的技術,很多方面都值得我們去探究。
參考文獻:
[1]華廣穎張慧穎等:關聯規則挖掘在企業運作策略調查問卷中的應用[J].工業工程, 2004,(02)
[2]辛燕:基于點擊流分析的電子商務智能決策支持系統[D]. 江蘇大學,2003
[3]周世東:web數據挖掘在電子商務中應用與研究[D].北方交通大學,2008
[4]朱明著:數據挖掘.中國科學技術大學出版社,2002.2