提出一种多粒度的用户行为数据收集方法,该方法以可配置的插件形式嵌入服务器端收集数据。实验证明,该方法能提高Web使用挖掘的数据质量,简化Web使用挖掘预处理工作,并为后续挖掘工作提供多种粒度的信息,从而为分析Web用户的行为提供优质数据源。
This paper proposes a new multi-granularity collection method for user behavior data which collects data through configurable server plug-in. The experiment results prove that the method can enhance quantity of Web usage mining data, simplify data cleaning and give multi-granularity information for the following mining,and provide high quality data for Web user behavior analysis.
近年来,Web使用挖掘的研究已经取得很多进展,但是挑战仍然存在[ 1, 2, 3]。大部分研究关注模式分析、挖掘算法,也有不少学者认识到预处理的重要性,并对之进行了大量研究,从而提高后续分析的质量和正确性。但就目前研究情况看,任何方法和措施都无法还原真实的用户访问纪录,只能采用一些启发式的方法和手段来对访问数据进行分析,低成本、移植性好的数据收集方法较少[ 4, 5, 6]。Cooley等[ 3]认为源数据质量是一个重要的研究方向,包括数据收集的技术、数据集成和数据归类等。可以预见,如果能定制所收集的数据,则可从源头开始控制数据的质量,为后续的研究打好基础,大大提高模式分析的正确度和可信度。
相对Web使用挖掘其他方面,对数据收集方法的研究较少,尤其是国内研究很少,而那些众所周知的较优数据收集方法难度大、成本高,难以实施。通过对现有数据收集方法研究,本文提出一种新的多粒度用户行为数据收集方法,该方法以插件实现,能与现有网站无缝结合,移植性好,成本较低,对原系统的影响小,适用面广,所收集的数据对比Web服务器自动产生的日志,具有垃圾数据少、扩展性好、面向应用和可定制等特点。
Web日志在Web使用挖掘中最为常见,其最大优点是成本低、方便,而缺点也非常明显。因此,在使用挖掘中如何使用除日志以外更多的数据源,是研究的热点之一。文献[3]提出使用Web日志、引用日志、注册文件、索引服务器日志、文档等的复合数据源进行Web使用挖掘。文献[7]提出综合使用访问日志、错误日志和引用日志。Tao等[ 8]提出记录所有网页上发生的事件,如“退后”、“回到主页”、“打印”、“关闭窗口”等,通过这些数据来统计用户最频繁的操作,然后把这些用户意向数据应用到电子商务中来验证其有效性[ 9]。
常见的收集地点有浏览器、网络层(TCP/IP)、HTTP代理服务器、Web服务器和应用服务器,产生4类原始数据:应用交互数据、HTTP协议数据、TCP/IP协议数据和浏览器交互数据。不同的收集技术各有优缺点,如客户端收集具有众多优点,但局限很大[ 4, 10, 11]。
Web日志无法很好地满足研究需要,很多学者把目标转向其他的数据源或者多种复合数据。
文献[12]提出通过Web使用日志和网页内容进行综合挖掘。网页的文字内容利用n元字符模型进行抽取,通过Web服务器日志和网页内容的结合来产生用户导航简档。基于此进行分类和预测。实验证明,这种复合数据比单使用Web日志的准确度要高出20%。文献[13]提出把Web日志和缓存结合起来挖掘。文献[14]使用三种不同类型的数据源综合挖掘,对三种数据进行统一描述,包括服务器中的访问日志、超文本和超文本结构/超链接图。文献[15]通过Web结构挖掘和使用挖掘,提出一种方法来收集含义更丰富的使用数据,从而对网站的超链接层次结构进行挖掘,来发现项-项的共现模式。
上述文献提出各种各样的方法来收集含义更为丰富的使用数据,这说明在Web使用挖掘中引入更多的数据源,数据源中增加更多粒度的数据能对用户的行为、意图分析提供更多且有效的支持。
Web服务器日志详细地记录每次通信的信息,而这种廉价的数据不完全可靠,需要繁琐的数据预处理工作[ 4, 5]。同时,日志中的信息粒度是页面级别,而页面上更细粒度的信息,如点击按钮和下拉框、搜索等相关行为没有被记录,而这些粒度更细的数据描述了用户内在的行为,能给模式挖掘提供更细致的信息。本研究将探索一种新方法来收集上述多粒度的用户行为数据,从而提高数据质量,简化预处理工作,并提供多种粒度的信息。
(1)定义及分析
文献[8]提出一种“Intentional Browsing Data”Web用户综合数据源,但并未给出与电子商务平台集成的可行实现方法。参考文献[8],本文给出多粒度用户行为数据(Multi-granularity User Behavior Data, MUBD)是用户进行Web浏览行为时所产生的多种数据,涵义比Web日志更为丰富,这些数据具有多种粒度,数据的粒度与网站结构和内容有关。用户行为是有目的的或者是潜意识的,如B2B电子商务中,用户带有明确购买目的的商品搜索;或者在特色产品、重要广告、热销商品等页面的信息中进行查询、浏览等行为,这些数据是有粒度的,不同粒度的数据在不同程度上反映了用户行为的目的和潜在意向。收集这些信息加上Web日志的分析,对于网站和营销策略的改进有重要作用。
MUBD与日志文件数据有所不同:
①Web服务器日志文件格式是预先设定好的,很多研究对此进行了详细分析,此处不再重复。而MUBD包含许多日志所不具有的信息,如“退出”、“修改”、“查找”、“统计”等行为信息。这些信息的收集,通常是越多越好。因为初期分析目的可能不确定,而越多的数据可以满足后续越多方向的分析。如果具有明确目的,则可以对信息进行定制。
②MUBD具有多种粒度。在Web服务器日志中,数据仅有基于页面一种粒度,只能通过页面名来分析相关的内容、操作。而MUBD中具有多种粒度的数据,包括基于内容划分的模块、页面、控件级别的行为等。
③MUBD具有上下文。文献[8]提出记录“复制”、“打印”等用户意向行为。但是脱离了上下文,这些行为的记录就会变成简单的计数器,实际意义不大。上下文是指通过模块、页面等其他信息,获取相关行为的内容语意,如“搜索螺母”等。
④Web服务器日志中没有用户标志,只能通过启发规则识别。而MUBD可以明确区分登录用户与匿名用户。
(2)分类
面向电子商务网站,MUBD可以根据内容进行分类,如图1所示:
①用户行为基础信息,通常是网站要求用户输入的注册信息及用户简档。但是出于隐私等多种原因,用户输入的信息不精确、不完备,在相关信息变化时,用户也可能不会主动更新简档。
②用户的商业行为信息,主要是用户的历史购买记录、用户的购物车信息、商品收藏信息等。
③用户的意向行为数据(User Intentional Behavoior Data, UIBD)[ 8],体现用户行为的显式或隐含模式。显式指如用户具有明确的购买目标,在网站中进行的收集信息、查看、搜索等行为,相关日志信息加上商业行为数据,将可以分析用户的商业行为;隐式是指不像前一类用户那样具有明确目的,对这类用户的数据分析,可以挖掘其潜在意图,发展其成为真正的客户。
通过对源数据收集方法分析和综合考虑,本文在服务器端收集MUDB,如图 2所示。
图2中,(a)是默认的服务器日志部分,此处不做改动。(b)是对Web服务器的扩展,该部分对传统的Web服务器日志进行扩展,属性可以根据用户需要进行定制,该部分是(c)的基础。(c)面向具体的应用,对Web服务器进行扩展,收集各种用户行为数据,后续可以进行面向具体应用的用户行为分析。(d) MUBD指通过上述机制收集到的多种用户行为数据。其中Web Log 和UIBD Log既有相似之处,也有区别。MUBD中的很多数据与商业相关,为了与传统日志进行对比,下面主要针对UIBD进行分析,对一些关键问题进行讨论[ 8]。
(1)数据粒度
传统Web日志中的粒度是页面级别,UIBD具有多种粒度。粒度越大,实现越容易,对用户行为的描述越粗;粒度越小,实现难度越大,但对用户行为的描述越细。对于不同的Web服务器扩展功能,所需要的数据粒度也不相同。基于可移植性、实现复杂度的考虑,最大粒度为网站内容相关的“模块”级,最小粒度为页面内的“控件”级。
(2)数据收集方式
目前,有些系统也可在网站系统运行过程中形成用户行为日志,具体作法是在页面的各种控件中加入记录这些行为的代码,当用户行为触发相关代码,从而形成数据库中的记录。这种方法的优点是实现简单、成本较低。但是缺点也很明显,该方法是一种分散的收集机制,代码散布在整个网站,难以统一管理,无法移植,扩展性很差。本文提出的数据收集机制是一种集中式的机制,以插件的形式嵌入Web服务器,形成控制中心,对用户的各种请求进行收集,然后分发到各种处理器中。
(3)与现有系统的融合
数据收集形成一个相对独立的模块,需要建立一个结合点来与现有网站融合。UIBD是对传统Web使用数据的扩展,并非简单的机械记录,而是与网站业务相关。在传统日志中,仅记录用户的IP,其他身份识别信息几乎没有。在UIBD中,增加了用户的分身识别信息,对登录用户赋予唯一的标志,该标志由网站用户拥有。通过这个结合点,数据收集模块就与网站实际业务绑定起来。
(4)数据冗余
网站本身拥有面向业务功能的数据库,对服务器功能的扩展,其中可涉及对业务数据分类、统计等,作为扩展功能的基础数据,由于数据量巨大,所需计算时间较长。在收集机制的数据库设计中,允许部分数据冗余,以提高性能。
(5)数据收集机制设计与实现
数据收集方法的重点在于如何建立集中式的收集机制。以IIS服务器为实验平台,将在服务器内对用户请求进行拦截。通过深入分析ASP.NET处理用户请求的流程,将在HttpModule对象的AcquireRequestState事件触发时进行捕捉,如图3所示:
UIBD Log的数据库模式部分属性,如表1所示:
表1中,UserUnid是用户表的主键,在此作为外键,建立多个表间关系,全面跟踪登录用户的行为。匿名用户将统一标志为00000000-0000-0000-0000-000000000000。实际使用中,许多用户使用网站时不登录,此时他们的行为都作为匿名用户记录下来。而当用户发生购买或者因其他原因登录网站时,将使用唯一标志。由于是商业用户,该标志长期不改变。电子商务中,购买可以认为是用户最重要的行为,在UIBD中,购买行为都以“实名”被记录下来,这些数据将为后续分析提供基础。
RawUrl、FilePath、ItemName 记录用户访问的精确信息。这些信息记录用户使用了哪些模块,粒度可细化至页面按钮级,为各种分析和统计提供全面信息。
(1)对W3C日志的良好补充和扩展
MUBD中的UIBD Log遵循W3C的Web日志格式,是对W3C日志的良好补充和扩展,这些数据容易为分析传统日志的系统所利用。该日志可扩展、可定制,具有很高的实用价值。
(2)大大简化数据预处理工作
传统日志中,记录了大量的图片、多媒体文件信息,而这些信息绝大部分并非用户主动访问,在UIBD Log中,这些信息将不被记录。同时,UIBD与原业务数据相关联。借助原有的用户信息,可以明确区分登录用户与匿名用户,大大提高用户识别的准确度。可见,UIBD实际是已经过初步过滤的数据,而非事无巨细的机械记录,数据的粗糙性、模糊性大大降低,相比传统日志,预处理工作大大简化。
(3)具有很强的应用价值
该数据收集方法灵活性大,可移植性强,只需要增加部分基础信息,就可以插件形式与现有系统无缝结合,对原有系统影响很小。方法的可扩展性好,在基础功能上,能根据实际需要进行各种功能扩展,具有很强的应用价值。
本文提出的数据收集方法已在.NET 2005和SQL Server 2005上实现,并嵌入到广东省某年产值高达10亿的大型金属公司的B2B电子商务网站中,运作良好,已经基于该方法,实现了用户的行为权限管理模块和信任管理模块[ 16, 17],并在不断完善、扩展和优化。本文使用的两种数据源:UIBD和传统的Web日志,均来自该B2B电子商务网站。Web日志是2009年1月至6月的数据,由于隐私和商业秘密,UIBD目前只获得2009年3月至5月的部分数据。如果能结合图2中的用户其他行为数据进行分析,能带来更好的分析效果。而现实中,由于商业隐私等问题,这些数据很可能只能在机构内部才能获取和使用。
实验采用5天同期的UIBD和传统的Web日志(均来自该大型金属公司的电子商务网站)与处理后的数据对比,如表2所示:
可见,UIBD日志中的数据仅为Web日志的15.53%,而经过清洗之后的数据量相当。说明UIBD日志已经过滤了大部分的无用信息。清洗后减少的记录,估计是Web Robot留下的信息。可见UIBD的清洗工作已经大大简化。两种数据中记录的页面均为37个,用户数基本一致。UIBD日志中有49个精确识别出来的用户,占总数的9.8%,可见用户识别的准确度比Web日志要高。最大浏览时间和最小浏览时间基本一致。
本文提出一种多粒度的用户行为数据收集方法,在实际应用中,运作良好。该数据收集方法,可以得到经过扩展、初步过滤的数据,基本可免除数据清洗工作,对于登录用户可以进行100%的正确识别,用户识别的正确率得到大幅度提升。且该方法成本较低,安全性能良好,不泄露用户的隐私信息,可移植性强,能与现有的Web系统无缝结合,对原系统的影响几乎为零。同时具有良好的扩展性,可根据实际需要开发相应的功能模块,为后续的模式分析提供优质源数据,是Web使用挖掘研究的一个良好补充。
下一步工作将在UIBD中加入SessionID,理论上可以将会话识别的准确度大大提高,其真实效用需要进一步研究与实验。