杨富华 彭钢
摘要:研究基于访问日志挖掘的高校综合信息门户页面推荐。从高校综合信息门户服务器日志中获取用户日志数据,对日志数据中的“脏”数据进行预处理,通过改进的Kmeans聚类算法将用户浏览兴趣度数据集划分为多个具有相近兴趣度的用户集合,凭此为用户提供个性化的页面推荐。实验结果表明,在高校综合信息门户页面推荐方面具有不错的效果。
关键词:用户日志挖掘;高校综合信息门户;页面推荐
中图分类号:TP393文献标识码:A
Abstract:This paper discussed a page recommendation of college synthetical information portals based on server logs mining. Firstly, the user log data was obtained from server logs, which were then pretreated with “dirty” data. Secondly, the interestmeasure of each user pairs was calculated by the processed data sets, and the data set of interestmeasure of each user pairs was divided into multiple classes with similar interestmeasure based on improved Kmeans clustering algorithm. Finally, personalized page recommendation method was provided to each user. The experimental results prove the effectiveness of the method in college information portals.
Key words:server logs mining; college synthetical information portals; page recommendation
1引言
通常,Web挖掘可分为Web内容挖掘、Web结构挖掘和Web日志挖掘[1]。目前,已有部分学者进行了基于Web挖掘实现网页推荐的研究。如:Yan[2]等将用户浏览网页时间作为权值加入到基于关联规则的网页推荐系统中;杨正余等[3]提出了一种基于用户访问序列的实时网页推荐方法;解男男等[4]提出一种基于Web日志挖掘的个性化网页推荐模型;吴瑞[5]讨论了基于双层聚类方法的网页推荐模型。
本文研究了基于访问日志挖掘的网站页面个性化推荐。以本校综合信息门户为例,从本校综合信息门户服务器日志中获取用户日志数据,对日志数据中的“脏”数据进行预处理,以适应数据挖掘的需要,通过改进的Kmeans聚类算法将用户浏览兴趣度数据集划分为多个具有相近兴趣度的用户集合,凭此为用户提供个性化的页面推荐。
本文利用数据挖掘技术对日志数据进行处理,通过分析大量日志数据发现用户的偏好和需求,为用户提供个性化页面推荐[6],从而节省用户搜索页面的时间,提高用户对学校综合信息门户的满意度。
日志挖掘就是从大量的日志数据、文档和活动中发现用户感兴趣的潜在信息的过程。聚类是目前日志挖掘常用的方法[7]。本文在现有Kmeans算法的基础上,提出一种改进的Kmeans聚类算法,设计了高校综合信息门户页面推荐的实现方案。该方案针对高校综合信息门户用户提供个性化页面主动推荐, 帮助用户更快获取有用信息, 提高工作效率。
2总体方案
学校综合信息门户服务器日志是用来记录用户访问活动的,是获取用户访问综合信息门户活动情况的首要数据来源。服务器日志的基本信息包括用户访问请求时间、访问某个页面的次数、持续时间及该页面长度等。图1为总体方案流程图。具体过程如下:首先从高校综合信息门户服务器日志中获取用户日志数据,然后对用户日志数据进行清理、识别等,为数据挖掘与分析奠定基础;接着从待处理的用户日志数据集计算用户浏览兴趣度,并基于改进的Kmeans聚类,将用户浏览兴趣度数据集划分为多个具有相近兴趣度的类,分析用户的偏好和需求,为用户提供个性化页面推荐,最终使系统功能更加友好实用、善解人意。
在上述方案实现过程中,采用基于改进的Kmeans聚类算法,考虑如下:由于现有的 Kmeans算法初始点是建立在随机选取的基础上的,如果初始化点选择不好,一般很难跳出局部最优,而且产生的最终聚类结果也会很差[8]。因此,本文通过选取周围密度最大 k个点作为初始化点,该方式不仅能够有效地解决Kmeans初始化点选择问题,而且也能有效地降低孤立点对Kmeans算法的影响,具体算法如4.2节所示。3日志数据预处理
数据预处理是实施有效挖掘算法的前提, 在日志挖掘中具有非常重要的作用。主要因为:数据是来自多个数据源未被加工的、高维、冗余、含有噪音且非均匀分布的复杂数据, 在数据模型、含义、模式、结构和语义上存在不一致性和冲突,因此数据预处理是日志挖掘质量保障的关键。数据预处理一般包括数据清理、用户识别、会话识别、路径补全等[9],具体过程如图2所示[10]。
1) 数据清理:主要是清除 Web 服务器日志文件中无关数据项的过程。一般包括数据合并、删除无关数据、处理代理访问、规范 URL 等。
2) 用户识别:主要是识别访问学校综合信息门户的独立用户,当用户转换使用浏览器或直接输入 URL 时,一般视为多个用户; 而同一操作系统、同一IP、同一浏览器访问网站,且浏览页面集合相同,一般视为同一个用户。
3) 会话识别:用户会话是指用户从进入站点到离开站点期间所访问的一系列页面序列集合,通过研究这些序列,获得用户在站点中的浏览爱好或是访问模式。
4)路径补全:由于本地缓存和代理服务器缓存的存在, 使得服务器的日志会遗漏一些重要的页面请求。在无法以客户端进行网页浏览跟踪的情况下, 可利用每个请求页面内容推断出一些缓存网页的浏览情况, 通过路径补充将这些遗漏的请求补充到用户会话中,使不完整的访路径变得完整。可利用网站的拓扑结构信息填充路径。
4高校综合信息门户页面推荐
经过数据预处理环节后,现在需要对这些日志数据进行挖掘,本文首先建立用户兴趣度参数来衡量用户对某个页面的兴趣大小,然后将按照用户共同的访问习惯进行聚类,最后基于聚类结果完成针对高校综合信息门户个性化页面推荐。
4.1用户兴趣度计算
兴趣度表示用户对某事物感兴趣的程度。但是在网络访问领域兴趣度的定义并不是十分明确。文献[6,11]提出了用户兴趣度的概念,并给出了量化计算公式。本文用访问频率系数F(i)和浏览时间系数C(i)进行量化。
1)访问频率系数F(i)
定义l 如果用户u访问了某一页面i,即认为用户u对i感兴趣。用户感兴趣的程度即兴趣度的计算依赖于用户对页面的访问频度。设n为u访问i的次数,total为u访问的所有页面的总次数,u对i的兴趣度F(i)的计算方法如下[11]:
F(i)=n/total(1)
即F(i)表示页面i在一次会话中被浏览次数与本次会话浏览的所有页面总次数之比值, 细化为式(2):
F(i)=V(i)∑im∈SjV(im)(2)
上式中, V(i)表示页面i在一次会话中被浏览次数,Sj是一次会话浏览的页面集合。
F(i)越大,则u对i越感兴趣。
在定义l中给出的用户兴趣度计算公式,兴趣度大小由点击量确定。曾经,点击量是衡量网站热门程度的主要指标。不过,随着AJAX技术的发展,百度、雅虎和Google等搜索网站因是浏览器首页造成其点击量较大,但往往不是用户最感兴趣的页面。因此,仅仅以点击量计算用户兴趣度有失偏颇。
2)浏览时间系数 C(i)
用户在一个页面上浏览的时间越长,说明用户对该页面越感兴趣。用户浏览时间应作为衡量网站访问量的最好方式[6,11,12],改变传统过度看重点击量的做法。一个用户在网站上浏览时间(在线时间)的长短,反应出一个网站的粘度和吸引用户的能力。
用户浏览时间,即用户在网站页面从打开到浏览内容结束并关闭页面的时间。用户浏览页面的时间长短也与该页面长度有关,因此需要将页面的长度与“浏览时间”联系起来。 C(i)表示“浏览时间系数”,是浏览页面i单位长度上的所耗时间与本次会话浏览的所有网页单位长度上所耗的最长时间的比值,如式(3)所示:
C(i)=T(i)/L(i)max im∈Sj(T(i)/L(i))(3)
上式中,T(i)表示用户浏览页面i所用时间,L(i)表示页面i的长度,Sj是一次会话浏览的页面集合。
综上,可以看出:用户访问兴趣度与用户访问频率和用户浏览时间有关,为了更准确地反映用户的兴趣度,必须考虑将频率和浏览时间结合起来计算。本文综合F(i)和C(i),表示在某一会话中用户对某个页面i的兴趣度 I(i),I(i)的定义如(4)式所示:
I(i)=2·F(i)·C(i)F(i)+C(i)(4)
上式表明,兴趣度 I(i)只有在用户访问频率系数F(i)和浏览时间系数 C(i)同时较高的情况下才会具有较高的值,换言之,若用户频繁访问某一页面,并且浏览这个页面的时间也较较长,则表明用户对该页面比较感兴趣。有些页面被用户访问的次数比较少,不能反映用户的兴趣度,所以在进行用户页面兴趣度计算时需要设定一个最小的阈值,这样可以排除访问总次数比较少的页面,提高系统的处理速度,同时也提高页面推荐的可用性。
4.2改进的 Kmeans用户聚类算法
将得到的用户兴趣度数据集进行聚类,聚类结果则为多个用户类(簇),每个类(簇)中的用户访问习惯相近,称为用户访问模式。用户访问模式是用来描述具有相同浏览访问特征的用户组。由于多个不同用户在其访问期间可能有相同的兴趣,用户访问模式能有效获得这些用户共同的兴趣或共同的访问需求。此外,用户访问模式也能将不同兴趣的用户区分开来。本文采用改进的 Kmeans聚类算法获得用户访问模式,该算法下。
基于改进的Kmeans用户聚类算法
输入:D={x1,x2,…,xn},k
//用户兴趣度数据集和期望的类数目
输出:k个类集//用户访问模式
1)初始化k个类别中心。
按照公式(5)选取密度最大的前k个数据作为初始聚类中心点 C={c1, c2, …, ck},公式(5)如下:
density(xi)=∑nj=1ed(xi-xj)22σ2(5)
式中σ选取0.5。
2)对于数据集中其它每个对象xj,则根据它们与各个聚类中心点ci的距离,分别将它们分配给与其具有最小距离的聚类中心点的类中,形成k个类。
repeat
for j=1 to n do
将xj分配给距离最近的聚类中心所属的聚类Ci
3)重新计算每个类的聚类中心。
for i=1 to k do
用当前聚类Ci中所有样本的质心点更新聚类中心,即x′i=1Ci∑x∈Cix
4)计算误差函数E=∑ki=1∑x∈Ci|x-x′i|2
UntilE不再明显变化或聚类内的数据点不再发生改变。即所有聚类中心点达到稳定, 则结束聚类; 否则跳至步骤2), 重复执行, 直至聚类中心点不再发生变化。
上述算法中,首先针对现有的Kmeans算法初始点选择容易陷入局部最优问题[8,13,14],通过迭代的方式选取密度最大的前k个数据作为初始化聚类中心,该方式能够有效地解决初始点敏感的问题,而且降低了孤立点对Kmeans算法的影响;再依次计算初始数据集中每一个对象到各个聚类中心点的距离,并根据计算结果将数据对象逐个分派到其最近聚类中心点的类中去,然后重新计算接受新对象的类和失去对象类的均值,如此重复,直到各类再无元素进出。聚类结果得到用户类集合 C={c1, c2,…, ck},其中每个类 ci是具有共同访问兴趣的用户集合。
4.3热点页面推荐
基于聚类算法找到的具有共同访问兴趣的用户集合,本节主要通过这些集合对网站页面的访问兴趣度进行匹配,计算每个页面的推荐度,按推荐度从大到小进行排序,完成用户个性化推荐。
主要通过以下方式进行热点页面推荐。根据每一个类 ci的共同的用户浏览兴趣度,构建面向用户的热点页面推荐集合,选取Top 10个热点页面,当用户登录到系统时,将这10个热点页面以快捷方式推荐给该类用户。
5实验结果
为了验证改进的Kmeans聚类算法的有效性,本文选用了本校综合信息门户平台中的用户行为数据集,并选取 2015 年 3 月1 日至2015 年 6 月 30 日期间的用户行为日志,具体包括2200个用户、400个系统功能菜单以及805200条用户点击记录。运行环境为Win7 系统,主频3.5GHz,内存8G,硬盘1000G,程序使用Java语言实现。用户行为数据集包括了10类用户,分别是:校领导、处级干部、科级干部、一般管理人员、院系领导、教研室主任、实验室主任、普通教师、研究生、本科生,并与K-means聚类算法进行比较,实验中分别设置了400、700、1000、1300、1600 、1900以及2200个用户作为比较对象,聚类结果如图 3 所示。
在图3中,横轴为选取的用户个数,纵轴为聚类结果的准确度。聚类结果准确度在[0,1]之间,结果越大则说明聚类效果越好。从上图中可以看出采用改进的 Kmeans 算法,聚类准确度区间为[0.72,0.88],而一般的Kmeans算法的准确度区间为[0.61,0.75],两个算法的准确度均随着用户个数的增加而增加,但改进的Kmeans 算法要比一般的Kmeans算法性能更佳,因此使用改进的Kmeans 算法聚类效率更高, 将该算法用在高校综合信息门户页面推荐上将进一步提高用户工作效率及其满意度。
6结语
基于服务器日志挖掘的网站页面推荐服务研究,一方面协助用户很快找到感兴趣的页面,另一方面能够帮助信息系统内容和结构的个性化完善。本文首先建立用户浏览兴趣度计算模型,接着通过改进的Kmeans算法对用户进行聚类,然后实现用户兴趣页面推荐,最后通过实验验证算法的有效性。目前,信息系统基于用户兴趣的页面推荐研究仍处在快速发展时期,研究更智能、更优化的信息系统页面推荐技术会有广阔应用前景。
参考文献
[1]韩家炜,孟小峰,王静,等.Web挖掘研究[J].计算机研究与发展,2001,38(4):405-414.
[2]YAN Liang,LI Chunping.Incorporating Pageview Weight into an AssociationRuleBased Web Recommendation System [M].Lecture Notes in Computer Science.Berlin:Springer,2006:577-586.
[3]杨正余,王卫平.基于用户访问序列的实时网页推荐研究[J].计算机系统应用,2008,17(5):50-53.
[4]解男男,胡亮,努尔布力等.基于Web日志挖掘的网页推荐方法[J].吉林大学学报:理学版,2013,51(2):267-272.
[5]吴瑞.基于双层聚类方法的网页推荐模型[J].系统工程学报,2013,28(2):265-270.
[6]郭岩.网络日志中用户兴趣的挖掘及利用[D].北京:中国科学院计算技术研究所,2004.
[7]吕佳.基于兴趣度的Web用户访问模式分析[J].计算机工程与设计,2007,28(10):2403-2407.
[8]赵晶晶.基于Web日志挖掘的用户访问兴趣研究[D].武汉理工大学计算机科学与技术学院,2014.5.
[9]杨鹏.Web日志挖掘数据预处理算法研究与实现[D].北京邮电大学计算机科学与技术学院.2010.5.
[10]孙宇航,孙应飞.基于网络日志的数据挖掘预处理改进方法[J].系统工程与电子技术.2009(12):2994-2996.
[11]张珠玉,刘培玉,朱振方,等.改进的访问统计方法及对用户兴趣度的计算[J].计算机工程与设计,2011,32(2):424-426,627.
[12]邢东山,沈钧毅.一个可以准确反映Web浏览兴趣的度量值—偏爱度[J].控制与决策,2004.19(3):307-310.
[13]邵必林,边根庆,张维琪,等.采用k一均值聚类算法的资源搜索模型研究[J].西安交通大学学报,2012.46(10):55-59.
[14]殷贤亮,张为.Web使用挖掘中的一种改进的会话识别方法[J].华中科技大学学报:自然科学版,2006(7):33-35.