赵 娜 葛蒲阳

摘要:数据预处理在Web日志挖掘过程中起着至关重要的作用。本文详细分析了数据预处理的过程,并对用户识别提出了改进策略,最后实现了一个Web日志挖掘预处理模型(WLMPM)。

关键词:Web日志挖掘;数据预处理;用户识别;会话识别

中图分类号:TP311文献标识码: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信息量的剧增,如何帮助用户快速有效地获取自己感兴趣的信息,已成为网站设计者亟待解决的问题。解决这个问题的途径之一就是将数据挖掘技术和Web结合起来,进行Web挖掘[1]。作为Web挖掘的一个重要组成部分,Web日志挖掘是从Web的存取模式中获取有价值的信息或模式的过程[2],就是对用户访问 Web 时在服务器留下的访问记录进行挖掘。通过分析和研究日志记录的规律,可以实现用户聚类、页面聚类和发现频繁访问路径改进Web站点的性能和结构,为用户提供个性化服务等。

Web日志挖掘过程一般分为三个阶段[3],即:预处理阶段、挖掘算法实施阶段、模式分析阶段。数据预处理的目的就是将原始日志记录经过处理形成用户的会话文件,为挖掘算法实施阶段作好数据准备。目前,Web日志挖掘技

术发展迅速,作为整个挖掘过程的基础和实施有效挖掘算法的前提,数据预处理环节非常关键。

2 Web日志文件格式

典型的Web服务器日志包括以下信息:IP地址、请求时间、方法(如 GET/POST)、被请求文件的URL、超文本传输协议 HTTP及版本号、返回码(请求的状态,成功或错误返回码)、传输字节数、引用页的URL(指向被请求的页面)和代理(用户使用的浏览器和操作系统的类型)。

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服务器日志,其中:222.212.224.26表示请求访问的用户IP地址;02/Jul/2006:06:30:13表示访问时间;GET表示请求的方法;/cs/first_page.action表示被请求的URL;HTTP/1.1表示超文本传输协议及版本号;200表示请求成功的返回码;11226表示传输字节数;“-”表示没有引用页; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)表示用户代理信息。

3 Web日志数据预处理过程

数据预处理是在将Web 日志文件转换成数据库文件以后进行的,其目的是把Web日志转化为适合进行数据挖掘的可靠的精确的数据。这个过程主要包括四个阶段:数据清洗、用户识别、会话识别和路径补充。

3.1 数据清洗

数据清洗是指根据需求,对日志文件进行处理,包括删除无关紧要的数据,合并某些记录,对用户请求页面时发生错误的记录进行适当的处理等等。

当用户请求一个网页时,与这个网页有关的图片、音频等信息会自动下载,并记录在日志文件中,因此可以把日志中文件的后缀为gif、jpg、jpeg、wav、GIF、JPG、JPEG 、WAV等的记录删除(除非图片、音频等是用户显式请求的,即用户所需要的内容正是这些图片和音频等文件)。但是,当挖掘的目的是为了进行网络流量分析或为页面缓冲与预取提供依据时,这些信息又显得格外重要,所以在删除这些记录的时候一定要记录下相关信息。后缀名为cgi、js和JS等脚本文件对后面的分析处理不造成任何影响,也应该删除。常见做法是定义一个缺省的规则库来帮助删除记录,而且这个规则库可以根据正在分析的网站类型进行修改。我们可以预先将网站分为一般网站、图片网站、音视频网站等,分别建立对应的规则库;确定要分析的网站属于哪一类,然后按照该类网站的规则库进行数据清理。当然,还可根据自己的特定需要对规则库进行删改。为了避免到邮件系统和请求教师资源的操作对挖掘产生的影响,我们还删除了邮件系统的记录以及部分教师资源的请求记录,只针对网站的本身进行数据挖掘。

3.2 用户识别

结束开始引言引言用户识别的主要任务就是消除代理或防火墙的影响,从日志中还原出每一个请求的用户。在对用户进行访问模式挖掘或用户聚类分析时,用户识别显得至关重要,因为群体是由个体组成的,只有对个体有了清楚的了解,才能识别群体的特征。然而由于本地缓存、代理服务器(网吧、局域网等环境)和防火墙的使用,使得用户识别这一步变得很复杂。

前人在识别用户时采用的策略中当 IP 地址相同,用户使用的操作系统和浏览器也相同的条件下,则根据网站的拓扑结构进行识别:如果用户请求的某个页面不能从已访问的任何页面到达,则判断这是一个新用户。如果网站的拓扑结构比较复杂,在根据拓扑结构识别页与页之间的关系时,效率会降低。

为此本文对该策略进行了改进:在用户识别时,不考虑网站的拓扑结构,而是根据引用页来识别,具体策略如下:

(1)判断用户IP地址,不同的 IP 地址代表不同的用户;

(2)若IP地址相同,但是用户的浏览器或操作系统不同,则认为是不同的用户;

(3)若IP地址相同,用户的浏览器和操作系统也相同,则根据引用页判别:如果用户请求的某个页面未被请求过且该记录中引用页为空,则认为是新用户。具体算法框图见图1。

图1 改进的用户识别算法流程图

需要说明的是:并非使用了这些规则就能准确地识别出用户。如具有相同 IP地址的用户若在同样类型的机器上使用同种浏览器,并且请求的页面集合相同,那幺很难识别。一个用户使用两种类型的浏览器,或是没有使用站点的链接结构直接输入URL,则容易被认为是多个用户。

3.3 会话识别

一个会话(Session)就是用户从进入到离开站点的一系列浏览请求。在跨越时间段较大的Web服务器日志中,用户可能多次访问了该站点,会话识别的任务就是把属于同一用户的同一次访问请求识别出来。

目前,会话识别的常用方法有3种。最常用的是超时(Timeout)方法。在该方法中,会话的边界是在两个页面请求记录(以下简称记录)的时间间隔超过一定的阈值时确定的。J.Pitkow的实验证明,选择 25.5分钟作为Timeout的时间阈值比较接近真实会话[4]。目前产业界一般选择30分钟为默认的时间阈值。

Cooley 等人提出了一种事务识别会话的方法,称为序列长度法[5]。经过研究发现,用户浏览页面的模式一般是通过辅助页面到达内容页面,而且用户在内容页面停留的时间往往要比辅助页面的长。这样,如果已知内容和辅助页面的集合,在顺序读取日志记录时,一旦遇到内容页面就找到了会话的边界。但是由于在多数情况下,用户光顾一个站点不可能只对一个内容页面感兴趣,因此该方法形成的会话必然与真实会话有一定的差距。

最大向前序列的方法是根据用户访问行为划分会话,一旦用户后退浏览已经浏览过的页面时,就找到了会话的边界。这种方法简便,也易于实现,但是由于所发现的会话只表达了用户的部分行为,在准确性方面存在局限性。

以上3种会话识别方法可能产生如下情况:(1)使原本在同一个会话里的记录被划分在不同的会话中;(2)使原本不在同一个会话的记录被划分在同一个会话中。当这样的不合理划分所占的比例很大时,进一步挖掘和分析所得到的结果就会受到影响,甚至是错误的。

基于此,文献[6]提出了会话识别的优化算法,并通过合并和断开两种操作对最常用的Timeout方法所得到的会话进行优化,使会话质量得到了提高。文献[7]提出了一种改进的基于时间间隔的识别方法。该方法通过使用访问时间间隔超出某个阈值来识别会话.通过为页面设置访问时间阈值,并根据页面内容及站点结构确定的页面重要程度对该阈值进行调整。该方法相对于传统的使用单一先验阈值进行会话识别的方法,能更准确地确定页面访问时间阈值,而且可以有效的识别出长会话。

由于超时方法比较简单,我们开发的Web日志挖掘预处理模型在进行用户会话识别时,依然采用这种方法,选择30分钟作为超时间隔。

3.4 路径补充

由于浏览器本地缓存和代理服务缓存的存在,当用户调用已访问过的页面时,将直接从本地或代理的缓存中提取,服务器日志将遗漏对这些页面的请求。路径补充的任务就是将这些遗漏的请求补充到用户会话中。

路径补充的方法是:依次扫描每一个用户会话,若当前访问的页面与以前访问的某个页面存在超链接,则说明该用户是通Back按钮,从本地Cache中调出该页面的历史记录链接到当前页面。如果会话中相邻两页之间没有超链,说明用户很可能使用了缓存中的页面,则检查引用日志确定当前请求来自哪一页,如果在用户的历史记录上多次出现引用页,则将请求时间最接近当前请求页的页面作为当前请求的来源,并将该来源页补充进用户会话中。若引用日志不完整,可以使用站点的拓扑结构。

根据数据挖掘处理任务的不同,有时还需要进行格式化操作,主要是根据即将进行的挖掘任务,将前期预处理后的数据转换成所需的数据格式。如进行用户访问模式挖掘,还需要进行事务识别,将会话进一步细分为具有一定语义的事务。

4 实验结果

根据以上内容,笔者实现了一个Web日志挖掘数据预处理模型(WLMPM),如图2所示。使用编程平台为VB.net,Access 数据库,实验数据取自某大学计算机学院2006年7月9日~2006年7月16日的服务器访问日志,日志中原始记录为19 5154条,经过数据清洗:掉cs-method 中非200 的记录,去掉后缀名为.jpg,.jpeg,.gif,.bmp,.wav的请求,去掉查询操作和邮件系统操作的请求,去掉部分教师资源的请求,剩余记录18 263条(是原始日志记录个数的10%)。用传统的用户识别策略得到2 528个用户,使用本文提出的用户识别改进策略,共得到3 163个用户,说明改进后的方法具有更好的识别效果,且在网站拓扑结构比较复杂的情况下,时间复杂度较低。

图2 WLMPM的体系结构图

4 结束语

面向Web日志挖掘中的一个重要的前提和基础就是Web日志数据准确性。只有准确的数据才能正确地反映使用者的意图,才能保证分析沿着正确的方向进行。高质量的Web日志挖掘必须依赖高质量的数据[8],因此,数据预处理工作既要保证信息无失真的转换,又要保证过滤删除掉某些对以后挖掘无影响的数据。本文所做的工作就是对传统的Web日志挖掘预处理过程进行详细分析,并提出了用户识别的改进策略。同时实现了一个Web日志挖掘预处理模型(WLMPM)。目前,如何提高与改进Web日志挖掘预处理技术,确保输入Web日志挖掘的数据正确高效已成为一项重要课题和研究方向。

参考文献:

[1]韩家炜,孟小峰,王静,等.Web挖掘研究[J].计算机研究与发展,2001,38(4):405-414.

[2]CHAKRABARTIS.Data mining for hypertext:A tutorial survey[J].SIGKDD Exploration,2000,1(2):1-11.

[3]杨怡玲,管旭东,陆丽娜,等.一个简单的日志挖掘系统[J].上海交通大学学报.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日志会话识别的优化方法[J].计算机工程,2007,33(1):95-97.

[7]殷贤亮,张为.Web使用挖掘中的一种改进的会话识别方法[J].华中科技大学学报,2006,34(7):33-35.

[8]赵莹莹,韩元杰.Web日志数据挖掘中数据预处理模型的研究与建立[J].现代电子技术,2007(4):103-105.

收稿日期:2007-12-08

作者简介:赵娜(1976-),女,西安电子科技大学在读硕士,研究方向:数据挖掘;葛蒲阳(1957-),男,高讲,研究方向:计算机网络。