陈建锋
(安徽职业技术学院 信息工程学院,安徽 合肥 230011)
WEB数据预处理是WEB使用挖掘的首要步骤,是后续数据挖掘,生成目标数据的重要步骤[1]。用户访问Internet服务器时,会留下来源于各种数据源的使用痕迹,通过服务器端与客户端对数据进行采集分析是主要的数据源收集分析方法。服务器端数据主要来源于用户访问服务器时交互生成的各种数据,并存放在服务器端WEB日志中[2]。数据预处理是WEB使用控制的重点技术,是对WEB使用数据的有效提取、分解与合并。本研究介绍一种新型WEB使用挖掘数据预处理方法。
WEB使用挖掘:通过数据挖掘技术,提取互联网访问中相关数据与行为中的相关感兴趣的、有价值的模式,以及相关隐含信息,是包含WEB技术、计算机语言学、数据挖掘技术、信息学等领域的相关性综合技术[3]。WEB日志挖掘是最重要的使用挖掘,通过对服务器日志文件的挖掘,获取并分析用户访问WEB页面时的模式,识别用户的喜好、忠实度、满意度,有针对性地优化WEB站点性能、结构,为用户提供个性化的服务,或为商业组织提供针对性的商业智能服务[4]。WEB使用挖掘主要包括三个步骤:第一,数据预处理,即提取、分解再合并WEB日志中的数据,并转换为可用于数据挖掘的相应数据格式,存储到数据库中以便服务于后续数据处理;第二步,模式识别,即利用多种算法挖掘处理后的数据以生成新模式;第三步,数据分析,即分析用户访问WEB的模式,并提取有效模式[5]。数据预处理是整个数据挖掘的基础,是挖掘算法有效实施的充分条件。
WEB挖掘数据预处理主要由数据清理、用户识别、会话识别、路径补充与事务识别五个步骤。该过程是数据准备工作的第一步,是对识别用户会话所生成的WEB初始日志的格式化,用户会话数据中包含网站网页访问者、访问页面、页面访问顺序、每个页面的访问时间等信息,用户一旦发起对网站资源的请求时,WEB服务器就会将相关日志信息全部记录下来,并以服务器日志格式将所有网站中的用户活动信息[6]。数据预处理的一个重要任务就是对服务器日志文件的字段抽取,将日志文件中的每行数据以不同字段过程隔离出来进行字段抽段,将日志项需要作进一步处理与应用的数据进行隔离,以生成各个有价值的字段,并生成一个新日志文件。服务器参数设置差异会导致WEB日志类型存在一定的差异,但在基本信息上存在统一性,主要包括用户IP、访问请求时间、URL、HTTP状态码、网络来路等,如以下为某个IIS服务器WEB日志数据中的一个片段:
#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
要实现数据预处理就要完成以下步骤:
数据清理是通过对原始数据的填充、纠正与删除等操作,将所有冗余数据清理掉,主要包括嵌入对象中的非相关性引用及错误请求,在处理时,需要保留的文件后缀主要是html、asp、asp.net(.aspx)、php及jsp等文件,这些页面中包含了可指向其他页面的超级链接,是用户浏览兴趣所在,而txt、jpg、gif、wmv等则主要是经超级链接所访问的文件,用户一般不会直接输入地址访问这些内容,并非用户浏览兴趣所在,属于非相关性引用,如果数据挖掘的目的在于分析网络流量时,又会增加这些信息的重要性,因此删除时需要记录这些记录中的“发送字节数”“接收字节数”两个域中的内容。极短访问时间、低于所设定阙值的请求记录则属于由当前页面后退至前一页面再由该页面向其他页面链接的访问模式,也在可删除之列。错误代码是需要特别注意的另外一类不相关的无效数据,必须检测并移除这些错误代码。状态码主要有成功、重定向、失败与服务器错误四类,在预处理阶段,需清理所有错误码,如401错误码表示身份验证失败,404错误码则表示文件未找到,这类错误码与分析过程相关性极低,这类状态码会在sc-status中有相关代码提示,属于需要清理的数据。此外,非GET类请求方法数据、服务器端地址与端口号等数据也属于可清理的数据。清理结束后,将清理后的数据整合、合并为一种可接受的格式,为不同挖掘过程提供输入数据。
用户识别即从日志文件记录中识别有访问响应的独立用户,一般的规则基于网络来路规则通过IP地址识别不同用户,但由于访问页面时用户会使用缓存、防火墙与代理服务器等技术,因此识别用户的复杂性很高,用户在访问服务器时就可能会出现多种情况:不同用户同一时间内,由代理服务器对服务器进行访问、同一访问服务器,用户使用不一样的工作站、相同用户同工作站中用不同浏览器与操作系统访问服务器、不同用户通过,同一工作站访问同一个站点等。为识别用户,就需要制定启发式规则, 为降低识别复杂性,一般采用一种基于用户协作的算法,但因用户信息安全性与秘密性要求增加了这一方法的使用难度,基于此,可设计一种启发式规则如下:
每一个IP地址对应一个用户;当多数日志中出现同样的IP地址,而代理日志则提示有不同浏览器或操作系统访问时,一个IP地址代表多个用户;当IP地址、浏览器与操作系统相同时,需要考虑是否存在网络来路信息,即每一个访问请求页面与已访问过的请求页面之间是否存在链接,若某一访问页面和上一个用户已存在的所有访问页面均无直接链接,用户请求页面无法利用任意网页链接直接访问另一个访问页面时,则表示另一个用户则对应相同的IP地址,该机器为多个用户共同使用。这些规则仅为启发式规则,而非精确识别独立用户的规则,当用户更换浏览器或直接输入地址时,应该视为多个用户;若用户使用同一个IP地址、浏览器与操作系统访问服务器,且浏览页面为相同集合时,则应视为同一用户。
会话识别就是对用户访问活动进行分解,以多个会话过程体现,每一会话就表示1次用户对站点访问过程的集合。将用户访问页面的所有行为分解为各个独立的访问页面序列,对这些页面序列进行研究,就能够获取到用户的浏览兴趣或访问模式。日志记录中的引用页面信息、两条相邻WEB日志记录之间的时间差关系能够用于确定某条记录是否属于一个已存在的会话过程或是另一个会话过程的第一记录。时机机制法、参引长度法、最大前向引用是目前主要使用的会话识别方法,时间阈值法则是一个更为精确的会话识别方法主要识别步骤为:
一个新用户对应一个新会话过程;用户会话中的引用页面信息项为空时,代表一个新会话过程;相邻请求时间差超过阈值时,代表一个新会话过程,一般设置为25.5分钟,超时阈值是判断新会话过程的重要方法。
由于缓存技术与代理技术的应用,用户访问使用缓存将访问过程将大大简化,WEB记录不会再记录这些页面的访问请求,对之后的关联规则算法获取用户访问模式精确性有很大影响,路径补充就是为了补全用户访问这些页面时的完整访问路径。在补充时可采用与用户识别规则相同的方法来补全路径,通过网络来路日志即可检测访问请求来路,其具体规则为:
由用户最近访问历史记录中提取访问页面,利用后退按钮不断回溯之前的访问页面,直至出现一个新页面请求后,即可提取缓存版本。若网站来路无法确定时,则需要采用网站拓扑方法进行补充,其基本思想在于:若用户当前访问页面和相邻访问页面为超链接关系时,则提示当前访问和相邻访问之间路径不完全;若用户当前访问页面referlog中存在多个与当前页面有超链接关系的页面时,则判断用户是利用多个页面中与当前访问页面时间差最小的访问页面与当前页面发生超链接关系。在具体补充方法中,用户会话的每次开始,网站来路与URI均会生成一个数据值,可加入一个分节符“-”用来删除网站来路值。
路径是否需要补充的判断方法为:两个连续访问页面P1、P2,若P1为P2引用页面,两个页面之间就需要补全路径,若非引用页面,就需要检查用户访问路径中是否存在P2访问页面,若没有,则判断P2为用户新会话过程,不需要再补全路径,若有,则表明用户是执行了后退操作通过P1访问了P2,需要补全路径。
补全方法一般采取匹配父节点的方法完成,当判断两个页面之间需要补充路径时,先检查P2的父页面,与P1的父节点进行匹配,若相同,就可以直接将P1的父节点作为P1与P2之间的完整路径;若不同,则需要继续检查P1的祖父节点,与P2父节点进行匹配,直至所有需匹配的P2父节点均补全到用户访问路径中。
选择一个52MB大小的数据源进行实验,时间为2018.5.2-2018.7.5,原始WEB日志条目为51692,清理.gif文件后剩余条目为41362,清理.jpg(jpeg)后为25584,清理.wmv后为19473,清理.css后为14934,清理错误码后为10758,清理其他非相关性引用后获得6438个条目,共包含3057次用户访问次数,单独IP用户为1127个,相
同IP用户为369个,设定时间差阈值为25.5分钟,对路径进行补充后,识别出3842次会话过程.经数据预处理后,数据大小、质量均获得了显著提高。
在完成对服务器端WEB文件的采集后,通过数据清理等一系列步骤,进行有效的数据预处理。完成对服务器端用户、会话的识别,在此过程中,采用了部分启发式规则、路径补充方法等,以实现简单、高效地识别用户与会话的过程,经测试,该方法有效地缩减了文件尺寸,提高了数据质量,为后续的数据挖掘提供了高质量的数据信息。