1 引言
隨著數據分析、數據挖掘技術以及互聯網的不斷發展,人們逐漸發現了將兩者結合的巨大價值。通過對Web的分析和挖掘,可以使互聯網企業發現隱藏在互聯網中有價值的信息,掌握海量數據中蘊藏的廣闊商機,從而在競爭激烈的互聯網業處于不敗之地。
2 基本概念
2.1 商業智能
商業智能(Business Intelligence),又稱商務智能,指通過使用數據倉庫(Data Warehouse)、在線分析處理(OLAP)和數據挖掘(Data Mining)等技術,對數據進行分析,以實現商業價值。
2.2 數據倉庫
數據倉庫是一個面向主題的、集成的、穩定的、隨時間不斷變化、并且支持企業或組織的管理或決策過程的技術。“面向主題”是指一個數據倉庫包含的內容通常是一個領域內的知識;“集成”是指數據倉庫中的數據并不是按照原始的流水的方式存放的,而是經過分析、建模,經過抽取、轉換、導入過程的結構化的數據;穩定是指數據被放入到數據倉庫中后,很少會變動:隨時間變化是指新的數據可以不斷被入到數據倉庫中;而支持決策是因為結構化的數據更有利于分析,從大量的數據中找出有價值的內容。
2.3 OLAP
OLAP (Online Analytical Processing,聯機分析處理)系統是相對與OLTP(Online Transaction Processing,聯機事務處理)系統而言的。
OLTP系統記錄企業的日常數據,旨在處理同時輸入的成百上千的事務。盡管OLTP系統擅長記錄支持日常操作所需的數據,但是OLTP系統并不善于協助管理人員對數據進行匯總,以獲取分析影響單位或小組的趨勢所需的信息。
OLAP系統則旨在處理發現趨勢和關鍵因素所需的查詢。通常OLAP系統的查詢需要更多的數據。能包括一到多個OLTP系統的數據。存在OLAP系統中的數據,不像OLTP系統中的數據那樣頻繁變更。OLAP數據被組織到多維數據集(cube)中,cube中的基本單元稱為度量值(Measure),記錄著經過處理、計算的OLTP系統中的數據。由于Measure中的數據是經過處理、計算的,并且cube可以有多個維度,因此非常便于查詢、分析。
2.4 數據挖掘
數據挖掘也被成為數據庫中的知識發現(Knowledge Discovery in Databases),是在OLAP或數據倉庫或大型數據庫的基礎上,從大量的數據中分析、提取出有價值的信息,發掘數據中存在的不易被發現的模式,或依據發掘出的模式做出預測。數據挖掘中常見的算法包括關聯、聚類、決策樹、時間序列、序列聚類、nalve貝葉思等。
Web挖掘是數據挖掘在web領域中一個應用,主要分為三類:web內容挖掘、web結構挖掘、以及web日志挖掘。其中web日志挖掘是通過對用戶瀏覽網站的記錄進行分析與處理,得到互聯網用戶的偏好、習慣的使用模式等有價值的信息。這在互聯網企業的業務分析、調整方面有非常重要的作用。
3 Web日志分析系統的實現
3.1 基本結構
圖1 Web日志分析系統結構圖
從系統的結構圖中可以看出。Web日志分析系統是由4部分組成的:“數據處理”、“數據倉庫”、“OLAP”和“數據挖掘”。整個流程使用Microsoft SQL Server數據轉換服務(Data Transformation Services,DTS)作為流程驅動,不需要人為參與,可以按計劃自動運行。
3.2 數據預處理與轉換
在大型的互連網站的Web日志中,出現亂碼、數據不合理等現象都是正常的,常見的原因主要有“并發訪問量大,日志記錄程序在并發壓力較大的情況下記錄出錯”、“網站系統的Bug”、“新舊系統不一致”、“用戶沒有輸入真實信息”等,同時日志中的數據格式并不一定符合分析系統的需要。所以必須先對日志進行預處理,才能導入到數據倉庫系統中,也就是通常說的ETL(Extracting,Transforming,LOAding抽取、轉換、加載)。
*去掉“噪聲”數據
首先應當去掉日志中的亂碼與明顯不合理的數據,這可以通過對日志中的字符與值的范圍做限定實現。其次,通過用戶請求的文件的類型,可以排除掉一些對日志分析意義不大的記錄。如在某些情況下,指向圖片文件的點擊并不代表有意義的操作。因此在這種情況下,應將這些記錄清洗掉。除此之外,還會有更多的特殊情況需要清洗,有些情況是設計、開發人員預先想不到的,可以通過取出部分數據樣例,經加載、處理到OLAP系統中,利用對cube中數據的查詢發現特殊情況,再判斷是否需要清洗掉。有一些日志分析的目的就是要找出特殊的記錄,在這種情況下,清洗工作就需要謹慎的進行,以免將有意義的“噪聲”清洗掉。
*IP地址反查
日志中通常會記載訪問者的IP地址,這個信息可以用來得到匿名用戶所屬的地區。但IP地址對于業務分析人員并不直觀,因此可以利用IP地址對照表,將IP對應到所屬地區。通過IP地址的反查,也可部分彌補注冊會員在注冊時輸入不真實信息的影響,為分析人員多提供一種參考。
*用戶識別
登陸的會員可以用用戶名來確認身份,但對于匿名訪問的情況,則較難處理。由于動態IP的存在,也很難通過IP地址來判斷操作是否屬于同一個用戶。目前比較通用的解決辦法是使用SessionID。有些網站通過cookie等方式,可以確保一段時間內,同一臺電腦對該網站的訪問使用相同的SessionID。在用戶沒有禁用cookie的情況下。這種方法極大的方便了用戶身份的確認。當然,也不能僅僅依靠SessionID做出判斷,比如SessionID相同,但登陸的用戶名不同,或操作系統版本不同的情況,就明顯不是同一個訪問者。
*訪問路徑識別
判斷哪些操作是屬于用戶的同一次訪問路徑。以及這些操作的順序,對于分析用戶的瀏覽習慣是很重要的。通常的做法是設定一個時間閥值δ。當同一用戶的兩條記錄之間的間隔超過δ,則可認為這兩條記錄屬于不同的路徑。同時也應該參考其它因素,例如雖然兩條記錄之間的時間間隔并沒有超過δ,但已經使用不同的SessionID,則這兩條記錄應屬于不同的訪問路徑。
用來進行日志分析的路徑,應該是“最大前向路徑”,例如實際的訪問路徑為ABCDABEAF,則應用來進行分析的“最大前向路徑”有3條:ABCD、ABE和AF。
在識別訪問路徑過程中,可能會遇到“補全訪問路徑”的問題。例如,通過時間閥值、SessionID等條件判斷出ABCD是用戶的一個訪問路徑。但從頁面C沒有到頁面D的直接鏈接,而頁面B有,則很可能用戶通過瀏覽器的“后退”按鈕退回到B頁面然后鏈接到D頁面的,因此實際的訪問路徑為ABCBD。這種補全方法需要對網站的結構做出分析,才能夠做出正確的補全。
目前有些網站出于安全性或其它考慮,不將鏈接的地址直接放在頁面上,而是通過POST的方式,從服務器端進行跳轉。如果這種網站能夠將每一次點擊的起點和目標均記錄在日志中,則對路徑識別有很大幫助。
鑒于本文項目的需求,經過預處理的數據被分成了三種文本文件。一種是維度文件。這種文件中記錄著需求中要求的各種維度的信息,例如在記錄屏幕分辨率維度信息的文件中,存儲著“800×600”、“1024×768”等內容。如果最初給的樣本數據有一定代表性。則維度文件將很少變動。第二類文件是事實數據文件,存儲著將被更新到數據倉庫的事實表中的數據。這類文件的內容將隨著日志的更新而更新。第三類是輔助數據挖掘工作的文件,如訪問路徑文件等。這三類文件將被導入到數據倉庫中。導入的過程以及前面的日志預處理過程,均可由DTS來驅動自動完成。
3.3 數據倉庫
針對本文項目的需求與特點,數據倉庫按照如下方式建立:
事實表有2個,分別是:
表1 事實表名稱與含義
維度表共有18個,分別為:
表2 維度表名稱與含義
除此之外還有一些表和視圖,輔助后續的數據挖掘工作。
3.4 OLAP
根據數據倉庫結構,在OLAP服務器上建立了17個共享維度,對應于數據倉庫中除DimMember外的17個維度表。由于一般大型網站的會員數量龐大,如果將會員作為cube的一個維度,將會影響處理與查詢的效率,而且針對每一個會員個體的查詢意義并不是很大。在本文項目中雖然在數據倉庫中建立會員的維度表,但是在OLAP中只將會員維度作為一個可選項。
本文項目中。為了查詢方便,總共建立了5個cube,分別為“訪客事實”、“會員事實”、“會員事實一獨立用戶”、“全部會員事實”、“全部事實”。其中“全部會員事實”與“全部事實”為虛擬cube。虛擬cube與其它3個cube的關系依圖2所示。其中“訪客事實”與“會員事實”中的度量值為Count人次數,而“會員事實_獨立用戶”中的度量值為依會員用戶名的“獨立計數”。通過一些客戶端軟件,我們可以查看OLAP中的信息。
圖2 cube之間的關系
3.5 數據挖掘
3.5.1 欄目的用戶重合度分析
欄目的用戶重合度分析是要找出欄目之間的關聯程度。通過應用“決策樹(Decision Trees)”算法和“關聯規則(Association Rules)”算法,可以實現這個目標。
在重合度分析中,使用SessionID列表和SessionID對各個欄目的訪問次數列表作為案例和嵌套案例。在嵌套案例中去掉了訪問次數很低的記錄,既可以減少偶然性(例如點錯了點到該欄目)的情況,又加快了處理的速度。決策樹分析可以利用依賴網絡視圖展現數據挖掘結果,也可以用決策樹視圖展現,而關聯規則分析只能用依賴網絡視圖展現,不過關聯規則分析的速度比決策樹分析要快。從依賴網絡視圖中可以看出各個欄目之間的依賴程度,通過改變查看器中的閥值,可以找出依賴關系最強的幾個欄目,在決策樹視圖中,可以瀏覽某一個欄目是否被訪問的影響因素。
圖3 依賴網絡視圖
圖4 決策樹視圖
3.5.2 瀏覽習慣聚類
瀏覽習慣的聚類是為了從大量的數據中找出普遍的模式,發現用戶的瀏覽習慣,可以分為靜態聚類與動態聚類。靜態聚類挖掘的是用戶的匯總信息,而動態聚類挖掘的是用戶的瀏覽過程。也就是在數據預處理階段準備的訪問路徑信息。
靜態聚類采用“聚類(Clustering)”算法。以訪問者的個人信息與訪問各個欄目次數的列表為案例,進行挖掘,得到結果如圖5所示。案例中的訪問者被分為幾類,每一類都有其特征。
圖5 聚類算法的聚類外觀視圖
動態聚類采用“序列聚類(Sequence Clustering)”算法,以訪問者列表為案例表,以訪問者以及訪問路徑為嵌套案例表進行挖掘,得到結果如圖6所示。從結果中可以看出,不同聚類的瀏覽習慣有著明顯的不同。
圖6 序列聚類算法的聚類外觀視圖
3.5.3 預測訪客個人信息
預測的過程分為兩步,首先通過“決策樹算法”分析會員個人信息的相關因素,找出具備哪些因素的會員具有什么樣的個人信息,再利用得到的決策樹挖掘模型和訪客日志中的相關因素,預測訪客的個人信息。這種預測方式經某網站的實際數據驗證,得到了較好的效果。
3.6 項目實現
本文項目選用.Net Framework,Microsoft 2000 DTS,Microsoft 2000 Analysis Service,Microsoft SQL Server 2005 BI Workbench實現,在實際檢驗中取得了很好的效果。在P4 3.0、1G內存、Windows 2000的環境下,對約1.2G大小的原始日志文件進行操作。從最初的預處理到將數據處理到cube中,只用了8分鐘的時間,而且整個流程由DTS驅動,不需要人為參與。這樣的處理能力對于一般大型網站每天的日志量和服務器的配置來說,是可以接受的。通過數據分析、數據挖掘得到的結果,對于互聯網企業的業務分析與調整,是有很大幫助的。
4 思考
有數據表明,自20世紀90年代以來,人類積累的數據量以每月高于15%的速度增長。僅僅依靠人力。要理解這些數據,將其變為有用的“知識”,幾乎是不可能的。商業智能(數據倉庫、OLAP與數據挖掘),是能夠將海量的數據變為“知識”的有效方法。數據倉庫用于抽取、整合、分布、存儲有用的信息;OLAP用于全方位分析現狀,通過前端展現工具,將“知識”從多種角度以多種形式展現給管理人員。在此基礎結構之上,數據挖掘通過“描述”與“預測”兩種方式,更進一步的展現海量數據中存在的“知識”。
本文中,針對互聯網日志分析業務提出的解決方案,也可以類似的用到其它業務領域。例如,在銀行信貸領域,可以將用戶的還款行為作為事實數據,將用戶的個人信息,如年齡、職業、收入等作為維度數據建立數據倉庫與多維數據集,在此基礎上進行數據挖掘的“描述”與“預測”,從而對貸款者的還款能力做出分析。商業智能的技術在國防、軍事領域也有著很大作用,例如在“反恐”中,可以通過對嫌疑人個人信息以及行為的分析。判斷嫌疑人是恐怖分析的可能性以及其危險性。另一方面,在戰場上,可以通過實時的數據挖掘對戰場上發生的復雜情況做出分析,進而對敵軍的行動做出預測,對戰場形式做出正確判斷。除了上面舉的幾個例子之外,商業智能技術在各種領域中,都可以發揮出巨大作用。
5 結束語
本文在綜合利用商業智能技術,從網站的點擊日志中分析、挖掘有價值信息的過程做了初步探索。本文項目仍然存在著很多值得改進的方面,例如,可以充分利用SQL Server 2005數據挖掘算法可擴充的特性,將一些更適合Web日志挖掘具體情況的算法應用到這個系統中。相信隨著技術的日趨完善,商業智能將在互聯網業中發揮更大的作用。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:商業智能在互聯網業務分析中的研究與應用