陳建鋒
(安徽職業(yè)技術學院 信息工程學院,安徽 合肥 230011)
WEB數(shù)據(jù)預處理是WEB使用挖掘的首要步驟,是后續(xù)數(shù)據(jù)挖掘,生成目標數(shù)據(jù)的重要步驟[1]。用戶訪問Internet服務器時,會留下來源于各種數(shù)據(jù)源的使用痕跡,通過服務器端與客戶端對數(shù)據(jù)進行采集分析是主要的數(shù)據(jù)源收集分析方法。服務器端數(shù)據(jù)主要來源于用戶訪問服務器時交互生成的各種數(shù)據(jù),并存放在服務器端WEB日志中[2]。數(shù)據(jù)預處理是WEB使用控制的重點技術,是對WEB使用數(shù)據(jù)的有效提取、分解與合并。本研究介紹一種新型WEB使用挖掘數(shù)據(jù)預處理方法。
WEB使用挖掘:通過數(shù)據(jù)挖掘技術,提取互聯(lián)網(wǎng)訪問中相關數(shù)據(jù)與行為中的相關感興趣的、有價值的模式,以及相關隱含信息,是包含WEB技術、計算機語言學、數(shù)據(jù)挖掘技術、信息學等領域的相關性綜合技術[3]。WEB日志挖掘是最重要的使用挖掘,通過對服務器日志文件的挖掘,獲取并分析用戶訪問WEB頁面時的模式,識別用戶的喜好、忠實度、滿意度,有針對性地優(yōu)化WEB站點性能、結構,為用戶提供個性化的服務,或為商業(yè)組織提供針對性的商業(yè)智能服務[4]。WEB使用挖掘主要包括三個步驟:第一,數(shù)據(jù)預處理,即提取、分解再合并WEB日志中的數(shù)據(jù),并轉換為可用于數(shù)據(jù)挖掘的相應數(shù)據(jù)格式,存儲到數(shù)據(jù)庫中以便服務于后續(xù)數(shù)據(jù)處理;第二步,模式識別,即利用多種算法挖掘處理后的數(shù)據(jù)以生成新模式;第三步,數(shù)據(jù)分析,即分析用戶訪問WEB的模式,并提取有效模式[5]。數(shù)據(jù)預處理是整個數(shù)據(jù)挖掘的基礎,是挖掘算法有效實施的充分條件。
WEB挖掘數(shù)據(jù)預處理主要由數(shù)據(jù)清理、用戶識別、會話識別、路徑補充與事務識別五個步驟。該過程是數(shù)據(jù)準備工作的第一步,是對識別用戶會話所生成的WEB初始日志的格式化,用戶會話數(shù)據(jù)中包含網(wǎng)站網(wǎng)頁訪問者、訪問頁面、頁面訪問順序、每個頁面的訪問時間等信息,用戶一旦發(fā)起對網(wǎng)站資源的請求時,WEB服務器就會將相關日志信息全部記錄下來,并以服務器日志格式將所有網(wǎng)站中的用戶活動信息[6]。數(shù)據(jù)預處理的一個重要任務就是對服務器日志文件的字段抽取,將日志文件中的每行數(shù)據(jù)以不同字段過程隔離出來進行字段抽段,將日志項需要作進一步處理與應用的數(shù)據(jù)進行隔離,以生成各個有價值的字段,并生成一個新日志文件。服務器參數(shù)設置差異會導致WEB日志類型存在一定的差異,但在基本信息上存在統(tǒng)一性,主要包括用戶IP、訪問請求時間、URL、HTTP狀態(tài)碼、網(wǎng)絡來路等,如以下為某個IIS服務器WEB日志數(shù)據(jù)中的一個片段:
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query
s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-
win32-status sc-bytes cs-bytes
2018-05-1115:44:21W3SVC381 202.199.120.47 GET/news/news.
asp id=200 80-203.208.60.169 Mozilla/60.0+(compatible;+Googlebot
/2.1;++http://google.com/bot.html)200 0 0 29057 298
要實現(xiàn)數(shù)據(jù)預處理就要完成以下步驟:
數(shù)據(jù)清理是通過對原始數(shù)據(jù)的填充、糾正與刪除等操作,將所有冗余數(shù)據(jù)清理掉,主要包括嵌入對象中的非相關性引用及錯誤請求,在處理時,需要保留的文件后綴主要是html、asp、asp.net(.aspx)、php及jsp等文件,這些頁面中包含了可指向其他頁面的超級鏈接,是用戶瀏覽興趣所在,而txt、jpg、gif、wmv等則主要是經超級鏈接所訪問的文件,用戶一般不會直接輸入地址訪問這些內容,并非用戶瀏覽興趣所在,屬于非相關性引用,如果數(shù)據(jù)挖掘的目的在于分析網(wǎng)絡流量時,又會增加這些信息的重要性,因此刪除時需要記錄這些記錄中的“發(fā)送字節(jié)數(shù)”“接收字節(jié)數(shù)”兩個域中的內容。極短訪問時間、低于所設定闕值的請求記錄則屬于由當前頁面后退至前一頁面再由該頁面向其他頁面鏈接的訪問模式,也在可刪除之列。錯誤代碼是需要特別注意的另外一類不相關的無效數(shù)據(jù),必須檢測并移除這些錯誤代碼。狀態(tài)碼主要有成功、重定向、失敗與服務器錯誤四類,在預處理階段,需清理所有錯誤碼,如401錯誤碼表示身份驗證失敗,404錯誤碼則表示文件未找到,這類錯誤碼與分析過程相關性極低,這類狀態(tài)碼會在sc-status中有相關代碼提示,屬于需要清理的數(shù)據(jù)。此外,非GET類請求方法數(shù)據(jù)、服務器端地址與端口號等數(shù)據(jù)也屬于可清理的數(shù)據(jù)。清理結束后,將清理后的數(shù)據(jù)整合、合并為一種可接受的格式,為不同挖掘過程提供輸入數(shù)據(jù)。
用戶識別即從日志文件記錄中識別有訪問響應的獨立用戶,一般的規(guī)則基于網(wǎng)絡來路規(guī)則通過IP地址識別不同用戶,但由于訪問頁面時用戶會使用緩存、防火墻與代理服務器等技術,因此識別用戶的復雜性很高,用戶在訪問服務器時就可能會出現(xiàn)多種情況:不同用戶同一時間內,由代理服務器對服務器進行訪問、同一訪問服務器,用戶使用不一樣的工作站、相同用戶同工作站中用不同瀏覽器與操作系統(tǒng)訪問服務器、不同用戶通過,同一工作站訪問同一個站點等。為識別用戶,就需要制定啟發(fā)式規(guī)則, 為降低識別復雜性,一般采用一種基于用戶協(xié)作的算法,但因用戶信息安全性與秘密性要求增加了這一方法的使用難度,基于此,可設計一種啟發(fā)式規(guī)則如下:
每一個IP地址對應一個用戶;當多數(shù)日志中出現(xiàn)同樣的IP地址,而代理日志則提示有不同瀏覽器或操作系統(tǒng)訪問時,一個IP地址代表多個用戶;當IP地址、瀏覽器與操作系統(tǒng)相同時,需要考慮是否存在網(wǎng)絡來路信息,即每一個訪問請求頁面與已訪問過的請求頁面之間是否存在鏈接,若某一訪問頁面和上一個用戶已存在的所有訪問頁面均無直接鏈接,用戶請求頁面無法利用任意網(wǎng)頁鏈接直接訪問另一個訪問頁面時,則表示另一個用戶則對應相同的IP地址,該機器為多個用戶共同使用。這些規(guī)則僅為啟發(fā)式規(guī)則,而非精確識別獨立用戶的規(guī)則,當用戶更換瀏覽器或直接輸入地址時,應該視為多個用戶;若用戶使用同一個IP地址、瀏覽器與操作系統(tǒng)訪問服務器,且瀏覽頁面為相同集合時,則應視為同一用戶。
會話識別就是對用戶訪問活動進行分解,以多個會話過程體現(xiàn),每一會話就表示1次用戶對站點訪問過程的集合。將用戶訪問頁面的所有行為分解為各個獨立的訪問頁面序列,對這些頁面序列進行研究,就能夠獲取到用戶的瀏覽興趣或訪問模式。日志記錄中的引用頁面信息、兩條相鄰WEB日志記錄之間的時間差關系能夠用于確定某條記錄是否屬于一個已存在的會話過程或是另一個會話過程的第一記錄。時機機制法、參引長度法、最大前向引用是目前主要使用的會話識別方法,時間閾值法則是一個更為精確的會話識別方法主要識別步驟為:
一個新用戶對應一個新會話過程;用戶會話中的引用頁面信息項為空時,代表一個新會話過程;相鄰請求時間差超過閾值時,代表一個新會話過程,一般設置為25.5分鐘,超時閾值是判斷新會話過程的重要方法。
由于緩存技術與代理技術的應用,用戶訪問使用緩存將訪問過程將大大簡化,WEB記錄不會再記錄這些頁面的訪問請求,對之后的關聯(lián)規(guī)則算法獲取用戶訪問模式精確性有很大影響,路徑補充就是為了補全用戶訪問這些頁面時的完整訪問路徑。在補充時可采用與用戶識別規(guī)則相同的方法來補全路徑,通過網(wǎng)絡來路日志即可檢測訪問請求來路,其具體規(guī)則為:
由用戶最近訪問歷史記錄中提取訪問頁面,利用后退按鈕不斷回溯之前的訪問頁面,直至出現(xiàn)一個新頁面請求后,即可提取緩存版本。若網(wǎng)站來路無法確定時,則需要采用網(wǎng)站拓撲方法進行補充,其基本思想在于:若用戶當前訪問頁面和相鄰訪問頁面為超鏈接關系時,則提示當前訪問和相鄰訪問之間路徑不完全;若用戶當前訪問頁面referlog中存在多個與當前頁面有超鏈接關系的頁面時,則判斷用戶是利用多個頁面中與當前訪問頁面時間差最小的訪問頁面與當前頁面發(fā)生超鏈接關系。在具體補充方法中,用戶會話的每次開始,網(wǎng)站來路與URI均會生成一個數(shù)據(jù)值,可加入一個分節(jié)符“-”用來刪除網(wǎng)站來路值。
路徑是否需要補充的判斷方法為:兩個連續(xù)訪問頁面P1、P2,若P1為P2引用頁面,兩個頁面之間就需要補全路徑,若非引用頁面,就需要檢查用戶訪問路徑中是否存在P2訪問頁面,若沒有,則判斷P2為用戶新會話過程,不需要再補全路徑,若有,則表明用戶是執(zhí)行了后退操作通過P1訪問了P2,需要補全路徑。
補全方法一般采取匹配父節(jié)點的方法完成,當判斷兩個頁面之間需要補充路徑時,先檢查P2的父頁面,與P1的父節(jié)點進行匹配,若相同,就可以直接將P1的父節(jié)點作為P1與P2之間的完整路徑;若不同,則需要繼續(xù)檢查P1的祖父節(jié)點,與P2父節(jié)點進行匹配,直至所有需匹配的P2父節(jié)點均補全到用戶訪問路徑中。
選擇一個52MB大小的數(shù)據(jù)源進行實驗,時間為2018.5.2-2018.7.5,原始WEB日志條目為51692,清理.gif文件后剩余條目為41362,清理.jpg(jpeg)后為25584,清理.wmv后為19473,清理.css后為14934,清理錯誤碼后為10758,清理其他非相關性引用后獲得6438個條目,共包含3057次用戶訪問次數(shù),單獨IP用戶為1127個,相
同IP用戶為369個,設定時間差閾值為25.5分鐘,對路徑進行補充后,識別出3842次會話過程.經數(shù)據(jù)預處理后,數(shù)據(jù)大小、質量均獲得了顯著提高。
在完成對服務器端WEB文件的采集后,通過數(shù)據(jù)清理等一系列步驟,進行有效的數(shù)據(jù)預處理。完成對服務器端用戶、會話的識別,在此過程中,采用了部分啟發(fā)式規(guī)則、路徑補充方法等,以實現(xiàn)簡單、高效地識別用戶與會話的過程,經測試,該方法有效地縮減了文件尺寸,提高了數(shù)據(jù)質量,為后續(xù)的數(shù)據(jù)挖掘提供了高質量的數(shù)據(jù)信息。