您的当前位置:首页一种Web日志会话识别的优化方法

一种Web日志会话识别的优化方法

2023-07-01 来源:爱问旅游网
维普资讯 http://www.cqvip.com

第33卷 第1期 Vo1.33 ・计算机工程 2007年1月 January 2007 No.1 Computer Engineering 软件技术与赘【据库・ 一文章编号t l0oo—3428(2007)0l—o095___03 文■标识码。A 中啊分类号。TP311 种Web日志会话识别的优化方法 陈子军,王鑫昱,李伟 (燕山大学信息学院计算机科学与工程系,秦皇岛066004) 摘要:会话识别是Web日志挖掘的关键步骤,然而很多方法所得到的会话不够精确。该文对此提出优化算法,并对最常用的Timeout 方法识别的会话进行优化,通过实验证明会话质量得到了提高。 关健诃:Web日志挖掘;数据预处理;会话识别 Method 0f Web Log Sessions Reconstruction CHEN Z un,WANG Xinyu,LI Wei (Department of Computer Science and Engineering,Information Institute,Yanshan University,Qinhuangdao 066004) [Abstract]Although sessions reconstruction is n iamportnta step in Web log mining,the sessions recognized by existing methods are not accurate. An algorithm resolving this problem is proposed.This paper impmves the Timeout method wih the talgorithm.Finally the algorithm enhancing the quality of Web log sessions is proved by experiments. [Key wordsl Web log mining;Data preprocessing;Sessions reconstruction l概述 Web日志挖掘的目的是为了发现用户的访问模式和兴 趣,这些信息可以用于及时调整网站的结构和内容,从而创 造更大的商业价值。 Web日志挖掘的主要步骤有数据预处理、模式识别和模 真实会话有一定的差距。 最大向前序列的方法是根据用户访问行为划分会话,一 旦用户后退测览已经渊览过的页面时,就找到了会话的边 界H】。这种方法简便,也易于实现,但是由于所发现的会话 只表达了用户的部分行为,具有很大的局限性,因此也不是 很适用。 式分析,其中数据预处理是关键和首要任务。如果没有良好 的预处理算法,就会降低进一步挖掘的效率和准确性。Web 日志挖掘的预处理包括数据清洗、用户识别、会话识别和路 以上3种会话识别方法可能产生如下情况:(1)使原本在 同一个会话里的记录被划分在不同的会话中;(2)使原本不在 径补全等步骤。 本文主要研究会话识别的方法。目前,有两种用户访问 会话的定义: 同一个会话的记录被划分在同一个会话中。当这样的不合理 划分所占的比例很大时,进一步挖掘和分析所得到的结果就 会受到影响,甚至是错误的。基于此,本文提出了会话识别 的优化算法,并对最常用的Timeout方法所得到的会话进行 优化,通过实验证明会话质量得到了提高。 (1)一个从用户进入站点时刻起至他离开时刻止所请求 的一系列链接的集合”1; (2)一个用户在站点中关于某一个话题所请求的一系列 链接的集合 j。 第2种定义是将第1种定义按照话题进行细化。为了发 现用户的访问模式和兴趣,本文采用第2种定义。 2基本思想 下面介绍会话识别优化方法的两种基本操作:合并和 断开。 目前,会话识别的常用方法有3种。最常用的是Timeout 方法。在该方法中,会话的边界是在两个页面请求记录(以下 2.1合并 会话识别可能使原本在一个会话里的记录被划分到两个 不同会话里。例如,真实会话<X….,S,R,A,B,…,Y>(其中 x,S,R,A,B,Y都是记录)被划分成<x,…,S,R,A>和<B,...> 两个会话。 由于A和B在一个真实会话里,表明用户还没有转向另 一简称记录)的时间间隔超过一定的阈值时确定的。经过实验和 理论分析,选择25.5min作为Timeout的时间阈值比较接近 真实会话 J。目前产业界一般选择30min作为默认的Timeout 时间阈值。 个话题,或者说用户还没有离开站点。简单地说,就是在 基于上述事实,在对会话进行优化时,如果遇到会话边 Cooley等人提出了一种事务识别会话的方法,称为序列 长度法【2J。经过研究发现,用户测览页面的模式一般是通过 辅助页面到达内容页面,而且用户在内容页面停留的时间往 网站的拓扑结构中,从A到B有直接或者间接的链接。 往要比辅助页面的长。这样,如果已知内容和辅助页面的集 合,在顺序读取日志记录时,一旦遇到内容页面就找到了会 话的边界。但是由于在多数情况下,用户光顾一个站点不可 能只对一个内容页面感兴趣,因此该方法形成的会话必然与 基金项目:燕山大学博士基金资助项目 作者筲介:陈子军(1971一),男,博士、副教授,主研方向:数据挖 掘,数据集成与交换;王鑫昱、李收藕日期:20064)1—05 伟,硕士生 E・mail:zjchen@ysu.due.ca 维普资讯 http://www.cqvip.com

界A和B(形式为<…,S,R,A>、<B,...>),则分两种情况考虑 Algorithm reSessionizer 将A、B合并到一个会话中。 情况1:如果模式A—B是该用户经常访问的模式(eP频 繁访问模式),则直接将A、B合并,否则进行情况2的判断。 输入:会话识别形成的会话文件sessions_file、网站拓扑 结构文件和最大频繁访问序列文件MFS 输出:优化后的会话文件 begin 频繁访问模式的挖掘很受关注,当前时间复杂度比较好的算 法是文献【5】中提出的用suffix tree挖掘最大频繁序列MFS, 时间复杂度是O(nlogn)。本文利用该挖掘方法对由会话识别 形成的会话进行处理,形成MFS文件,从而判断两个相邻会 话的边界是否为频繁访问模式。 (1)打开所有输入文件; (2)readItem(sessi0ns—file,R1): (3)0【=O; (4)while(sessions file不为空) (5) readItem(sessi0ns—file,R2); 情况2:利用网站的拓扑结构判断A或A之前的L条记 录能否链接到B(称为能否寻迹到B,在算法中用函数Trace (A—B,L)表示),如果找到上述记录,则将A、B合并,否则 默认原来的划分。至于L的取值本文将在实验分析部分给出 说明。 (6) if(0【==O)//判断是否开始一个新的会话 (7) 0【:R2.accesstime—R1.accesstime; (8) (9) L)) if(RI.boundary --2 and R2.boundary==1) if(RI.url一>R2.url in MFS)or(Trace(R1.url一+R2.url, 2.2断开 会话识别也可能使原本不在同一个会话的请求被划分在 同一个会话中。例如,有两个真实会话<x,…,A>、<B .,Y>(其 中x,A,B,Y都是记录)被划分成<x,…A,B....>一个会话。 A、B虽然是一个用户在服务器上记录的两条连续记录, (1O) (11) (12) R1.boundary=R2.boundary:0;//合并 else 0【=O;//开始一个新的会话 else if(R2.accesstime—RI.accesstime>=0【) and f!Trace(R1.url一+R2.url,L) 但是由于不在同一个真实会话里,表明用户已经转向另一话 题。该用户可能是通过一定量的后退,也可能是直接输入网 址等方法到达记录B的页面。 (13) f14) (15) R1.boundary=2;R2.boundary=1;//断开 0【=O: if(0【『一O) 基于上述事实,在优化时,对于会话内部记录A和B(形 式为<…,A,B….>),如果通过A或者A前面的L条记录不可 以寻迹到B,则将A、B断开。 f16) f17) Or,=(R2.accesstime—R1.accesstime+ ̄t)/2; RI=R2;//end while (18)关闭所有文件 end. 另外,如果用户由一个话题转向其它话题,一般要经过 较长的时间段0【,即A到B经历的时间是0【。因此不必对会 话内部的每两个相邻记录都进行判断,只需要特别关注那些 时间间隔相对较大的记录。本文0【的取值为当前会话的平均 访问时间,随着记录的读入动态计算。 .算法首先打开会话识别形成的会话文件(sessions_file)、 网站拓扑结构文件和挖掘得到的最大频繁访问序列文件 (MFS文件),读取第l条记录,此时设置会话内部的平均访 问时间0【为0。第5行顺序读取该用户会话的其它记录。第6、 7行是在开始一个新的会话时设置平均访问时间n的初值。第 综上所述,通过合并和断开两种操作对会话进行优化, 必然能够使所得到的会话更接近真实会话。 3数据结构和算法 下面给出会话识别的优化算法。如果相邻的两个会话形 式为<…,A>、<B,...>,这时就要判断A、B是否需要合并在同 一8.1l行进行合并操作,第8行判断目前的两条记录是否是两 个相邻会话的边界,第9行判断它们是否符合合并条件,第 l0行更改boundary域值使记录Rl、R2合并,第ll行不符 合合并条件,将平均访问时间0【置为0,表明将要开始优化新 的会话。第l2.14行是进行断开操作,第l2行判断目前的两 条记录Rl、R2是否符合断开条件,第l3行更改boundary 域值使Rl、R2断开,则第l4行将平均访问时间0【置为0。 第l5行判断0【的值,第l6行0【的值不为0,表明没有开始新 的会话,仍需要动态计算当前会话的平均访问时间0【。第l7 行将记录R2赋值给Rl,返回到第4行,形成循环。 下面解释算法中涉及的各个函数的功能: readltem(sessions—file,R)从会话文件sessions—file中读取 记录,将其存储到R中。 Trace(R1.url—R2.url,L)在网站的拓扑结构中,寻找Rl 个会话中。如果满足下面两个条件之一即可合并:(1)模式 A—B是频繁的,也就是说该模式在MFS中可以找到; (2)可以通过记录A或者A前面的记录寻迹到记录B。 如果一个会话形式为<…,A,B,...>,这时就要判断A、B 是否需要划分在两个不同的会话里。如果同时满足下面两个 条件即可断开:(1)记录A、B的访问时间差大于动态时间阈 值0【;(2)不可以通过记录A或者A前面的记录寻迹到B。 3.1数据结构 本文采用的数据结构如图1所示。各个域的含义如下: url是页面请求记录的URL链接;accesstime是访问时间; boundary是整型域,表示该记录在会话中的位置信息,是会 话的头则值为l,是会话的尾则值为2,否则值为0。 ud accesstime boundary 到R2的链接,如果没有找到,再去寻找Rl前面的第l条记 录到R2的链接,依此类推,一直寻找到Rl前面的第L-l(L 是大于等于l的整数)条记录。如果找到链接,则函数返回值 为真,否则返回值为假。 4实验分析 圈1羹量结构 本节将给出会话识别优化算法的实验结果并加以分析。 实验数据采用最常用的Timeout方法所得到的会话。日志文 件来源于燕山大学信息科学与工程学院,记录的是2005年6 月份访问该部门网站的信息。由于要人工识别真实会话,数 3.2算法 下面给出本文的算法,对同一个用户的访问会话进行优 化,描述如下。 —-96一 维普资讯 http://www.cqvip.com

据量和工作量都很大,因此只选取一天的记录进行分析。根 据分析判断,6月25日的日志比较接近整个月份的平均访问 另0的质量。 5总结 本文提出的Web日志会话识别的优化方法,通过合并和 断开两种操作,使得所发现的会话更加接近真实会话。会话 识别的优化方法,是在会话识别方法的基础上线性扫描会话 文件,提高了会话的质量。 今后的工作可以向两个方向努力,首先,将会话的定义 标准化,提出真正有利于进一步挖掘的会话定义,对于研究 水平线,具有典型性,因此本文对该天的日志进行分析。 经过人工识别,6月25日一天内所产生的实际真实会话 有1 191个。Timeout方法发现的会话有854个,其中发现真 实会话有763,占实际真实会话的比例是64.064%。 算法reSessionizer发现会话的结果将在下表中给出。根 据算法中函数Trace(RI.url—R2.url,L)参数L的值的不同, 发现会话的结果也有所不同。 高性能和高效率的算法至关重要。其次,在预处理时更多地 利用己知的数据(如拓扑结构等)和经验数据(如MFS等)。通 过这些努力提高挖掘的效率和质量,从而获得更大的商业 效益。 表1中,M表示实际真实会话的个数(M=l 191),A表示 发现的会话个数,B表示发现的真实会话个数。 表1 reSessionizer震理会话鳍果 参考文献 1 Facca F M,Lanzi P L.Mining Interesting Knowledge From Weblogs: a Survey[J].Data and nowlKedge Engineering,2005,53(3):225—241. 2 Cooley R,Mobasher B,Srivastava J.Data Preparation for Mining World Wide Web Browsing PauemsH].Journal of Knowldge and e从上表的实验数据可以看出,当L取值为1时,算法 reSessionizer识别出的真实会话数目最多,此时断开的会话 比较多,得到的会话数目增加较大;当L取2时断开的会话 数目较少,会话数目增加不大;当L取3时,发现的真实会 话占发现会话比例最大,但是此时算法合并的会话多而断开 的会话少,造成会话的绝对数目最少。可见L取值太大反而 会影响效果。参数L可以根据经验数据(如网站的拓扑结构和 繁忙程度等)和需要适当选取。由实验数据可以看出,只要选 Information Sys ̄ms,1999,1(1):5—32. 3 Catldge L,Pietkow J.Characterizing Browsing Strategies in the WorldWideWeb[J].Computer Networks nd aISDN Systems,1995, 27(6):1065—1073. 4ChenM S,Park J S,YuP S.EfficientDataMiningforPathTraversal Patterns[J].IEEE Transactions on Knowldge aend Data Engineering, 1998,lO(2):209—22 1. 5 Xiao Yongqiao,Dunham M H.Eficifent Mining of Traversal 取合理的参数,算法reSessionizer就能够有效地提高会话识 Patterns[J].Data nd anowlKdge Engineereing,2001,39(2):191—214. (上接第94页) 可以看出这个进程会产生死锁,从MWB显示的死锁路 穷举搜索,对于并发系统,其状态的数目往往随并发分量的 增加呈指数增长。因此当一个系统的并发分量较多时,直接 对状态空间进行搜索在实际上是不可行的,这就是状态爆炸 问题 J。因此通过并发来表示顺序并不是一个很好的办法, 径看到当进程从通道1接收消息来执行匹配进程时就会产生 死锁。反馈到BPEL4WS中,reply和receive活动之间有一 个1链接,限制了reply活动必须等到receive执行完后才能 执行,但是在结构化活动sequence中必须先执行reply活动 才能执行receive活动激活出站链接,这样就形成了一个 死锁。 上面列举的只是BPEL4WS的一个简单片断,对于简单 的流程可能不能充分体现这种方法的优势,但是当BPEL4WS 在以后的工作中如何解决这个问题,基于BPEL4WS是一门 特殊的语言,能否针对BPEL4WS对pi演算进行适当的扩充, 加上顺序表达式,值得进一步研究和探索。 参考文献 l Koshkina M,Breugel E Veriicatfion of Business Processes for Web 文件结构复杂的时候,流程有无死锁就不是我们能够简单判 断的了,通过映射到Ⅱ.演算然后再利用MWB进行验证将会 是一个很有效的方法。而且根据上面的算法编程生成能够直 Services[R].Department of Computer Science,Y0rk University, Technical Report:CS一2003—1 1。2003—10. 接用于MWB的Ⅱ一演算表达式,再利用MWB进行死锁、互 模拟等性质的验证,这样从BPEL4WS的建模到验证就成为 一2 Victor B.The Mobility Workbench User。S Guide Polyadic(Version 3.122)[Z].1995—10.http://www.it.Ha.se/profundis/mwb-dist/guide一 3.122.ps.gz 个自动化的过程。为其在正式被实施前得到形式上的模拟 与验证提供了简便可行的方法。 3杜旭涛.Ⅱ一演算交互式验证工具的研究与实现[DI.国防科技技术 大学研究生院,2002一O1. 3总结 本文描述了BPEL4WS到Ⅱ.演算的自动映射方法,并把 映射结果利用到MWB进行死锁验证。在研究的过程中发现 一4傅建明,韩光鹏,朱福喜.两种死锁分析的逻辑方法【J】.武汉大学 学报(自然科学版)'1999,45(3). 些问题:pi演算中没有关于进程的顺序表达式,因此需要 5林惠民,张文辉.模型检测:理论、方法与应用【J】.电子学报,2002, 3O f12A). 用并发来表示顺序。但是模型检测是基于对系统状态空间的 — 7一 

因篇幅问题不能全部显示,请点此查看更多更全内容