1.介绍
在web上执行业务流程易用性和快速性是电子商务迅速增长的关键驱动力量。而且电子商务也把最终用户卷入了一场深重的革命中。跟踪用户浏览行为甚至个体鼠标点击的能力将商家和最终用户前所未有的拉近了。现在对商家来说,针对大量的客户订制行为对每个顾客提供个性化的产品信息是可以实现的。
上面所说的是web 使用挖掘的一个可能的应用场景,是基于应用型数据的挖掘技术到基于web数据的使用模型发现的一个处理过程。与web相关的数据挖掘就称之为web挖掘,广义上可以分为三类,内容挖掘,用途挖掘,结构挖掘。Web内容挖掘和结构挖掘不在文章范围之内。 [29]也提出了早期的一种web挖掘分类方法,并描述了web挖掘系统的架构,给出了web用途挖掘的第一个系统。正在进行的与KDD-1999会议协办的webKDD[41],提供了一些web用途挖分析领域的研究的样本,它包含web使用挖掘。本文提供了学院和工业研究机构以及商业团体最近进行的web使用挖掘工作的最新调查。第二部分描述了对web使用挖掘的各种web数据。第三部分讨论了web数据使用模型挖掘研究中的主要问题以及预处理,模型发现,模型分析这三个处理的阶段第四部分给出了一个web使用挖掘的详细分类。第五部分概述了一个web使用挖掘系统webSIFT。第六部分发表个人的观点。第七部分是总结。
2.WEB 数据
数据库知识发现一个关键步骤是创建一个合适的目标数据集。在Web挖掘中,数据可以从服务器,客户端,代理服务器或者某个组织的数据库(包含业务数据和整理过的Web数据)中收集。数据采集的每个步骤都与从本地数据源采集都有所不同,比如数据的可用性,数据的分块,实现的方法等。
在web挖掘中有以下几类数据可以使用:
l 内容:web页面的真实数据,为传送用户请求而设计的web数据。通常包含文本和图形,但并不仅仅如此。
l 结构:描述内容是如何组织的。页面内部结构信息包括在特定页面里各种HTML和XML标记是如何安排。这个可以用一个树形结构表示,标记是树的根节点。内部页面结构信息主要是超链接。
l 使用:描述web页面使用模型的数据,例如IP地址,页面引用,用户访问的时间和数据。
l 用户代理:能够提供web站点的用户统计信息的数据。包含注册信息和客户代理信息。
2.1 数据来源
从单用户,单站点的浏览行为到用户,多站点的访问模式,从不同数据源收集的使用数据将表现所有web流量的不同分块对应的不同的导航模型。
2.1.1 服务器端的数据收集
一个web服务器是一个重要的数据来源,因为它明确记录了网站访问者的浏览行为。他反映了多个用户对一个站点的访问信息。这些日志文件可以以不同的格式保存,例如普通log格式和扩展的log格式。图2是一个扩展日志文件格式的例子。然而,在web环境中多缓存的数据可能使日志文件是完全不可靠的。缓存的页面试图没有被记录在日志文件中。而且任何通过POST方法提交的重要信息在日志文件中是无法获取的。包监测技术是另一种从服务器日至中获取数据的方法。包检测技术能够监控来自某web服务器和TCP/IP包的网络流量。Web服务器也可能保存其他使用信息,例如cookies和单个日志的查询数据。Cookie是网站用来跟踪访问者而由服务器生成的客户的数据。HTTP协议的无连接特性使得跟踪单个用户不是一个简单地工作。Cookies隐含的记录用户的操作,而且现在被视为用户的隐私。这种观点在第六部分将被讨论到。查询数据也是服务器记录在线用户查询它们所需要的信息时而成的。除了使用数据,web服务器也记录了内容信息,结构信息及web页元信息(如文件长度和最后修改时间等)。
Web服务器也使用CGI脚本等工具处理用户发送的请求。服务器能根据解析URI来判断用户请求的文件是否是一个应用程序。对某个CGI程序发送的URI(Uniform Resource Identifer)可以包含参数。CGI完成了执行任务,web服务器将把结果返回给用户。
2.1.2 客户端数据收集
可以用远程代理(javascript或者javaapplets)来实现客户端的数据收集。通过修改现存浏览器的源代码(Mosaic或mozilla)可以增强其数据收集的能力。客户端数据采集的方法需要用户写作,比如客户需要把浏览器的javascript和javaapplet的禁用功能取消或者志愿使用开源的浏览器。客户端收集一个比从服务器端收集好的地方就是他改善了缓存和会话(session)识别的问题。然而在确定实际的浏览页时间时,javaapplet执行的效率并不比服务器日志要好,当他第一次载入的时候尤其要花费额外的时间。Javascript由客户端的解释器执行,但不能捕捉到所有的用户点击(例如刷新和后退按钮)。这些方法只能收集单用户单站点的浏览行为。这种方法最困难的是如何确认用户是否使用这个浏览器进行日常的浏览行为。这个可以通过提供愿意使用此浏览器的用户奖励的方法来解决。类似NetZero[9]和AllAdvantage[2]公司便是这样,他们会给与额外的程序功能给那些在网上冲浪是经常点击工具栏上的功高的用户。
2.1.3 代理端的数据收集
Web代理作为一种处于客户浏览器和服务器之间的缓存机制,它能降低某些页面载入的时间,如果这些页面曾经被用户访问过。代理缓存的执行效率依赖于预测将来请求的页面的正确率。代理技术可以揭示多用户访问多服务器的实际HTTP请求。它可以描述一组匿名用户的浏览行为的特征,如果这些用户共享一个通用代理服务器。
2.3 数据抽象
上面提供的几种数据源能抽象成几类数据,特别是用户,服务器session,episode,点击流,浏览页,为了保证术语的一致性。WCA(W3C Web Characterization Activity)发布了一个与web使用分析相关的web术语标准化的草案。 用户是通过浏览器从某台机器访问服务器文件的个体。一个用户可以通过不同的机器访问统一个web,或者在一个机器里面使用不同的代理。 一个浏览页包括在用户某一时刻看到的浏览器内容。浏览页往往与单用户行为联系在一起,可能由几个不同的文件组成,比如框架,图形和脚本。当我们分析用户行为时,往往夸大了浏览页数据的重要性。因为用户不会明确的访问加载到其浏览器中的n个框架和m个图形,用户请求的是一个“web页面”。确定由哪些文件组成一个浏览页这样的数据可以从web服务器上获取到。点击流是一组连续的浏览页的请求,从服务器端提取的数据不会总能够重建对一个站点的完整点击流。通过客户端或代理访问的浏览页在服务器端是不可见的。用户session是单个用户访问整个页面的点击流。既然访问信息对大多数web服务器是不公开的,每个用户访问特定站点的用户session只有一部分是可用的。用户session中对某个web服务器的点击流是一个服务器session。对web用途挖掘和其他数据挖掘工具而言,必须要有一系列的服务器session作为输入。对一个特定的站点当用户浏览会话结束时服务器session也就结束了。然而这只是个简单的概念,实际服务器session很难被可靠的跟踪。W3C WCA提出了episode的概念,它是一个服务器session的一个语义子集。
3.Web使用挖掘
如图1所示,web使用分析或web使用挖掘主要包括三个任务。本节概括描述了web使用挖掘的这三个任务及每个任务需要完成的工作。
3.1预处理
预处理包括将使用记录,内容,结构转化为模式分析所需要的有用的数据。
3.1.1 使用预处理
因为可用数据的不完整性使得使用预处理成为使用挖掘过程中最困难得恶任务。除非客户端的跟踪机制被充分使用,当IP地址,代理,服务器段的点击流都可以准确地标志用户和服务器session。下面列出了一些可能遇到的典型问题:
单个IP地址/多服务器session问题。ISP通常会提供一个代理服务器的池。单个代理服务器可能含有几个用户信息,这些用户在同一时间段内访问了同一个站点。
多个IP地址/单服务器session问题:某些ISP或者私人工具会随机将几个IP地址分配给统一个用户使用。在这里案例中,单个服务器session就会含有多个IP地址。
多IP地址/但用户问题:一个用户可能从拥有不同IP的不同机器上访问同一个站点。这使得跟踪同一个用户的访问比较困难。
多代理/单用户问题:一个用户可能会用不止一个浏览器,即使在同一个机器上,也会被视为多个用户。
假设现在每个用户都被唯一的标识(通过cookies,登录,或者IP/代理/路径分析),每个用户的点击流被分割为不同的sessions。从其他服务器上的页面请求不具有典型性,所以很难知道某用户什么时候推出一个web站点。切断一个点击流默认的方法是设一个30分钟的超时退出。30分超时算法来源于[23]。如果一个session的标志嵌入在URI里面,则服务器可以确定每个session。
当每个用户行为在服务器日志里作为一个字段能够提供确切的信息,有必要访问内容服务器。内容服务器能为每个活动的session维护一个状态变量,所以一个用户请求的内容在URI不能总是被获取到。预处理过程中最后一个问题是推断出被缓存的页面引用。就像在2.2所讨论的那样,唯一可以证实的跟踪缓存中浏览页的方法是监控客户端的使用数据。每个请求的引用字段可以用来监测用户看到的缓存中的页面实例。
图2给出了上面讨论的几个问题的例子(第一列不是实际服务器日志,只是为了描述的目的)。地址123.456.78.9对应三个服务器sessions,209.456.78.2和209.45.78.3对于四个sessions。用referer和agent这两个字段,第1行道第11行可悲分为三个sessions,分别为A-B-F-O-G,L-R,和A-B-C-J。路径补足后的第一个session变为A-B-F-O-F-B-G,第三个为A-B-A-C-J。如果不用Cookies,除了一种嵌入式的Session号或者客户端的数据收集方法外不能确定12和13条记录实际上是一个单个的服务器session。
3.1.2 内容预处理
内容预处理包括以下任务,转换文本,图像,脚本和其他多媒体数据转换成对web使用挖掘有用的格式。通常,包括对内容进行分类和聚类。然而对web站点内容的数据挖掘时一个非常有意思的研究领域。在web使用挖掘的上下文中,站点内容能用来过滤模型发现的输入和输出。例如,一个分类算法的结果能对特定主题和产品的浏览页分类。除了根据主题对浏览页进行分类或聚类,还可以对根绝用户的使用意图进行分类。浏览页也可以传递信息(通过文本,图形和其他多媒体信息),收集来自用户的信息,允许导航(通过超链接列表),或者对用户分组。浏览页的使用意图也可以在模型发现之前和之后对session进行过滤。为了运行内容挖掘,浏览页的信息必须首先进行量化。这一阶段任务的典型方法是向量空间模型法。文本可以分割为单词的向量。图形或多媒体信息可以用文本和关键字替代。静态浏览页的预处理比较简单,通过解析HTML和重新对信息格式化或运行其他的需求算法就可以实现。动态浏览页比较难处理。内容服务器使用个性化的技术手段比如使用关系数据局来构建浏览页的方法可以获取更多可以被预处理的数据。一个给定的服务器sessions可以访问一个大的动态站点一些浏览页。这里内容可以有规则的进行改变。每个浏览页的内容必须是“汇编的”。不论是从基于HTTP的爬虫程序,或者一组模版,脚本或数据库数据获取的。如果只是浏览页的一部分能被预处理,那分类和聚类可能不准确。
3.1.3结构预处理
站点的结构通过页面之间的超级链接建立的。站点的结构预处理的方法与内容预处理基本相同。动态内容比静态内容导致更多问题。不同的站点结构可能必须针对每个服务器session进行构建。
3.2 模型发现
模型发现相关的算法有很多包括统计学,数据挖掘,机器学习和模式识别。本文目的不是描述所有算法和技术。有兴趣的读者可以参考[33;24]。这部分描述的是可以应用到web领域的各种挖掘方法。其他领域的方法可以用来对数据抽象和web挖掘服务。比如关联规则,给予市场分析的事物标记法虽然在前面并未被考虑,那时因为识别一个session是非常困难的,需要了解一些其他的知识(比如前面所说的设置超时限制)。
3.2.1 统计分析
统计学是提取知识的最通用的方法。分析session文件时,各种分析法(频率,平均数,中值等)可对浏览页的各种变量进行统计,比如浏览页的浏览时间和浏览路径等。许多web流浪分析工具体能对统计信息诸如频率最大的访问页,一个页面的平均访问时间和一个站点的平均访问长度等给出周期性的报表,但这个报表可能包含最低级的错误,因为他包含一些非法访问和无效的URI。除了知识的深度,统计学在提高系统效率,加强系统安全性,方便网站修改和提供市场决策支持等方面还是很有用的。
3.2.2 关联规则
关联规则可以生成在一个服务器session中最有可能被引用的页面。在web用途挖掘环境中,关联规则可以提供一个浏览页的集合,只要这些浏览页的支持值超过一个给定的阈值。这些页面可能并没有通过超链接与用户浏览页面直接连接在一起。例如用Apriori算法的关联规则发现可以揭示访问电子产品的用户和访问运动设备的用户之间的内在关联。除了应用于商务和市场营销,也可以帮助web设计者对站点进行修改。而且可以当从远程主机加载一个页面时,作为降低用户感知期的一个指导性文件。
3.2.3聚类
聚类是一种将具有相似特性的项集分组的技术。在web使用领域。有两种有趣的聚类:用户聚类和页聚类。用户聚类是对具有相似浏览模式的用户进行分类。它在某些方面是很有用的,比如通过对用户行为进行推断和统计在电子商务应用中可以有效的对市场进行划分,或者给用户提供个性化的web内容。而页的聚类可以发现有相关内容的页面,可以用在互联网搜索引擎和web关联提供领域。在这两种应用里,都可以根据用户的查询和历史信息,创建静态或动态的页面,为用户提供一些相关超链接的建议。
3.2.4分类
分类是将一个数据项映射到一个或几个预先定义好的类中。在web领域,可以开发应用到特定用户群体的一个代理服务器。这需要提取最能描述用户类别特性的数据。分类可以通过有导师学习例如决策树分类,普通的Bayesian分类算法, k近邻法,向量支持机等。对服务器日志的分类可以发现某些兴趣规则,比如30%的经常浏览产品、音乐的用户在18-25之间而且住在西海岸。
3.2.5序列化模式
序列化模型技术试图发现项集的内部关系。比如在一个时间有序的session或episode中一个项集是跟在另一个项集之后的。通过这种方法,web市场人员能预测将来的访问模式,这对特定用户群有目的的放置一些广告是有用的。对序列化模型一些临时性的方法是有效的,比如意图分析,改变点检测或者相似性分析(trend analysis, change point detection, similarity analysis.)。
3.2.6依赖模式
依赖模式是另一个有益的模式发现的工作。目标是开发一个模型,这个模型可以表示大量web领域的变量之间的的依赖关系。举个例子,可以构建一个模型,它能表示用户再往上商店购买行为的不同阶段(即从一个偶然的访问到潜在的购买行为)。对用户浏览行为进行建模的方式包括Hidden MarkovModels和Bayesian Belief Networks.对web使用模型的建模不仅能提供一个分析用户行为的理论框架,而且可以预测将来的web资源消费。这些信息可以提高web网站的销售额或者为用户提供更便利的导航系统。
3.3 模型分析
模型分析是web挖掘处理过程的最后一步。模型分析的动机是从模型发现阶段发现的规则或模型过滤掉其中不感兴趣的部分。准确的方法学取决于具体的web挖掘的应用。最通用的模型分析应该包括类似SQL的制式查询机制。也有的方法为了能够执行OLAP操作而把使用逐句加载到数据立方体中。可视化技术也是一种方法,比如模型图形化或者为了在所有数据中强调所有的模型而给不同的值设置成不同的颜色。内容和结构信息也可以用来对包含特定使用类型、内容类型或者匹配特定超级链接结构的页面的模型进行过滤。