本发明涉及计算机技术领域,尤其涉及基于会话聚类预测的缓存替换方法、装置及计算机设备。
背景技术:
伴随着互联网的蓬勃发展,人们越来越依赖于在web上获取各种各样的信息,浏览web页面已经成为人们生活中不可或缺的一部分。
当前,网络的信息量以及用户量都呈现出爆炸式增长的趋势,导致web服务器存储量大大增加出现访问延时等问题,现有技术中解决该技术问题主要有两种方法,一种是采用代理服务器或作者距离用户较近的服务器上已减少web服务器的存储量,另一种是通过替换算法计算替换函数值,将替换函数值最大/最小的相关内容删除,其主要包括基于访问时间间隔、访问次数、文档大小或保存价值等因素的替换算法。
上述方法可以大大缩短访问距离,减轻网络和web服务器的负担,但是其无法实现个性化服务,且网络利用率低。
技术实现要素:
基于此,本发明针对上述的问题,提供了一种基于会话聚类预测的缓存替换方法,旨在解决现有服务器无法实现个性化服务以及网络利用率低的技术问题。
本发明实施例提供的一种基于会话聚类预测的缓存替换方法,具体包括:
获取服务器访问日志,并识别所述访问日志的浏览器和用户,按照预先设定的筛选方法获得有效访问数据;
根据所述用户和与所述用户对应的有效访问数据中用户访问页面按照时间排序法建立用户会话序列;
将所述用户会话序列采用预设的聚类算法进行聚类处理获取用户会话簇;
获取用户请求,并根据所述用户会话簇建立预测模型;所述预测模型包含预测对象标识和与所述预测对象对应的计数;
以所述预测模型中的计数作为权重值,采用价值评价缓存替换方法进行存储对象的价值计算,获得存储对象价值;以及
当需要进行替换时,将所述存储对象价值最小的存储对象剔除,获得存储空间进行替换。
更进一步地,所述按照预先设定的筛选方法获取有效访问数据具体包括:
获取访问日志中的返回状态码,请求方法和页面类型;
筛选出返回状态码为200,请求方法为get和页面类型为html所对应的访问数据,即为有效访问数据。
更进一步地,所述将所述用户会话序列采用预设的聚类算法进行聚类处理步骤,具体包括:
随机选取所述用户会话序列中的多个点作为第一质心,并按照距离计算方法计算其余数据点到所述初始质心的距离获取多个距离值,获得多个第一用户会话集合;
根据所述多个第一用户会话聚类中距离平均值确定更换变量,并根据跟变变量变更质心获得第二质心;进行距离计算获得第二用户会话集合;
重复上述步骤,直至质心不再发生改变,获得用户会话簇。
更进一步地,所述将所述用户会话序列采用预设的聚类算法进行聚类处理,并建立预测模型步骤中建立预测模型具体包括:
当处于离线阶段时,获取聚类处理后获得的用户会话簇;
当处于在线阶段时,获取用户请求,并根据综合距离测量方法计算综合距离值,根据所述综合距离值确定所述用户请求所属用户的用户会话簇;在所述所属用户的用户会话簇中对用户请求的页面进行查询,获得页面中会话记录,并统计所述用户请求出现的频次,将所述用户请求进行标识获得预测对象标识,所述频次为预测对象的计数,获得预测模型。
更进一步地,所述综合距离测量方法为:
dintegrated(s1,s2)=[nup+[2×(|nap-nda|)]]/(|s1|+|s2|);
所述dintegrated(s1,s2)为两个会话s1和s2之间的距离;所述nup为两个会话通过插入空隙也不能对齐的唯一页面数量;所述nap为通过插入空隙后对齐的网页数量;所述nda为初始的两个会话不加任何操作直接对齐的页面的数量;所述|s1|为会话s1的长度;所述|s2|为会话s2的长度;所述|nap-nda|为实际经过插入空隙而对齐的页面的数量。
更进一步地,所述以所述预测模型中的计数作为权重值,采用价值评价缓存替换方法进行存储对象的价值计算,获得存储对象价值步骤中价值评价缓存替换方法为:
所述h(i)为存储对象价值,所述l为老龄化因子;所述fr(i)为最初值为1的对象访问次数;所述value(i)为进行web对象的缓存时要付出的代价;所述size(i)为对象的大小,所述t为对象下一次被访问的平均间隔时间,所述number为权重值。
本发明实施例的另一目的在于提供一种基于会话聚类预测的缓存替换装置装置,包括:
有效访问数据获取模块,用于获取服务器访问日志,并识别所述访问日志的浏览器和用户,按照预先设定的筛选方法获得有效访问数据;
用户会话序列建立模块,用于根据所述用户和与所述用户对应的有效访问数据中用户访问页面按照时间排序法建立用户会话序列;
聚类处理模块,用于将所述用户会话序列采用预设的聚类算法进行聚类处理获取用户会话簇;
预测模型建立模块,用于获取用户请求,并根据所述用户会话簇建立预测模型;所述预测模型包含预测对象标识和与所述预测对象对应的计数;
存储对象价值计算模块,用于以所述预测模型中的计数作为权重值,采用价值评价缓存替换方法进行存储对象的价值计算,获得存储对象价值;以及
存储替换模块,用于当需要进行替换时,将所述存储对象价值最小的存储对象剔除,获得存储空间进行替换。
本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时上述方法的步骤。
有益效果:
本发明通过对站点服务器的日志文件进行发掘分析,通过聚类算法进行聚类处理得到用户访问页面是的特征和兴趣,建立预测模型,可以应用该模型预测用户接下来将要访问的相关页面,同时应用预测模型中的技术信息为权重值,采用价值评价缓存替换方法计算存储对象的价值,用于在缓存剩余空间不足时,需要进行对象替换时,替换出价值值最小的,对页面对象的替换做出快速的判断和选择,提高网络利用率和用户的体验度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1为本发明提供的一种基于会话聚类预测的缓存替换方法的流程图;
图2为本发明提供的有效访问数据筛选的流程图;
图3为本发明提供的用户会话序列进行聚类处理流程图;
图4为本发明提供的预测模型建立流程图;
图5为本发明提供的基于聚类算法的web预测模型的整体构图;
图6为本发明提供的pgdsf-ait算法与size,lru,gdsf,gdsf-ait四种缓存替换策略关于缓存命中率的对比实验结果图;
图7为本发明提供的pgdsf-ait算法与size,lru,gdsf,gdsf-ait四种缓存替换策略关于字节命中率的对比实验结果图;
图8为本发明提供的基于会话聚类预测的缓存替换装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提出了一种基于会话聚类预测的缓存替换方法,具体包括以下步骤:
步骤101,获取服务器访问日志,并识别所述访问日志的浏览器和用户,按照预先设定的筛选方法获得有效访问数据。
在本发明实施例中,web服务器及其应用在工作过程中会不断记录用户访问数据,对于用户的每一个http请求会生成一条日志记录,比如数据集nasa(nationalaeronauticsandspaceadministration)日志,该日志来自于佛罗里达州的美国国家航天局肯尼迪航空中心服务器,该日志共包括1000000+条记录,记录从1995年7月1日到31日,共31天的用户请求数据。这个日志文件中的一条记录如下所示:199.120.110.21-[01/jul/1995:00:00:09-0400]"get/shuttle/missions/sts-73/mission-sts-73.htmlhttp/1.0"2004085,表1为该条记录的参数的含义;
表1:
如图2提供的有效访问数据筛选的流程图,步骤201,获取访问日志中的返回状态码,请求方法和页面类型,即获取web访问日志后,识别用户即客户端的ip地址和浏览器;步骤202,主要选择范围状态码为200且请求方法为get的html的页面的访问记录,作为有效访问数据,用户的每条请求记录可以表示为r=(t,p,μid),其中,t表示请求时间,p表示请求页面,uid表示用户。
步骤102,根据所述用户和与所述用户对应的有效访问数据中用户访问页面按照时间排序法建立用户会话序列。
在本发明实施例中,将获得有效访问数据按照用户名称进行分类,按照使用时间间隔阈值为30min的方法来识别用户会话,将用户访问序列表示为si=<p1,p2,p3,…,pn〉,其中,pi为第i个会话按时间进行排序后的用户访问页面。若序列无任何元素,称为空序列,表示为<>,可以获得如表2所示的用户会话序列表。
表2:
步骤103,将所述用户会话序列采用预设的聚类算法进行聚类处理获取用户会话簇。
在本发明实施例中,如图3提供的聚类处理流程图,步骤301,随机选取所述用户会话序列中的多个点作为第一质心,并按照距离计算方法计算其余数据点到所述初始质心的距离获取多个距离值,获得多个第一用户会话集合。即首先在用户会话序列中随机选取k个点作为第一质心,并根据公式1)计算其余数据点到k个第一质心的距离,获得多个距离值,获得多个第一用户会话集合。
di=vlvd(si,sm)公式1)
其中,si和sm表示两个不同的会话,vlvd为距离计算函数。
步骤302,根据所述多个第一用户会话集合中距离平均值确定更换变量,并根据跟变变量变更质心获得第二质心;进行距离计算获得第二用户会话集合,即根据多个第一用户集合中的距离平均值按照公式2)确定更换变量,根据变更变量更改质心确定第二质心,并按照公式1)的距离计算方法计算距离,获得第二用户会话集合。
其中,di为该用户会话集合的数据与初始质心的距离,ci表示某个用户会话集合;
步骤303,重复上述步骤,直至质心不再发生改变,获得用户会话簇,在重复上述步骤的过程中,观察质心是否还发生变化,若已经不再发生变化了则聚类处理结束,获得用户会话簇。所述用户会话簇指的是特征相同或相似的页面数据的集合。应当理解的是,聚类处理结束终止点的选择也可以是其他方式,比如聚类函数是否已经收敛等。
该聚类算法与现有的k-means聚类算法相比,最大的不同点即距离计算和更新质心时所使用的方法,本算法在更新质心时采用的是使用原始质心加上该聚类中每个数据点到原始质心的距离的和的平均值,进行距离计算时使用的是vlvd函数,这种距离计算的方法能够很好的适用于不同长度的用户会话序列。
步骤104,获取用户请求,并根据所述用户会话簇建立预测模型;所述预测模型包含预测对象标识和与所述预测对象对应的计数。
在本发明的实施例中,如图4给出的预测模型建立流程图,步骤401,当处于离线阶段时,获取聚类处理后获得的用户会话簇;即在离线阶段时,主要在服务器端完成,主要工作是进行数据预处理和数据的聚类分析并获得用户会话簇。
步骤402,当处于在线阶段时,获取用户请求,并根据综合距离测量方法计算综合距离值,根据所述综合距离值确定所述用户请求所属用户的用户会话簇;在所述所属用户的用户会话簇中对用户请求的页面进行查询,获得页面中会话记录,并统计所述用户请求出现的频次,将所述用户请求进行标识获得预测对象标识,所述频次为预测对象的计数,获得预测模型。其中的综合距离测量方法是有sam距离方法和sabdm距离方法所构成,计算公式如公式3)所示。
dintegrated(s1,s2)=[nup+[2×(|nap-nda|)]]/(|s1|+|s2|)公式3)
其中,dintegrated(s1,s2)表示求得的两个会话s1和s2之间的距离;nup是指两个会话通过插入空隙也不能对齐的唯一页面;nap指的是通过插入空隙后对齐的网页数量,例如s1=(a,b,c,f,g,h),s2=(a,f,g,j,u);nda指的是初始的两个会话不加任何操作直接对齐的页面的数量;|s1|表示会话s1的长度;|s2|表示会话s2的长度;|nap-nda|是指实际经过插入空隙而对齐的页面的数量。
在本发明实施例中,图5提供了基于聚类算法的web预测模型的整体构图,该框架图中的部分组件解释如下:
集群(clusters):该组件使用的是本发明中所介绍的经过改良的k-means算法。该算法初始质心的选择与传统的k-means算法类似,质心也会在每次迭代完成后有所改变,直到收敛,一旦形成簇,就用唯一的标识来表示。如形成四个聚类(簇),则它们分别被唯一标识为c0,c1,c2,c3;
查找集群(findcluster):这是在线阶段的第一个步骤。这一步主要的目的是找到与请求距离最近的集群,通过使用综合距离测量距离的方法比较请求与所有存在的集群的中心的距离;
搜索集群(searchcluster):在查找集群中所得到的结果中对当前请求的页面进行查询,查看当前页面存在于哪些会话当中,然后在这些会话中检索下一个请求并记录其出现的次数,然后将其存储到预测列表中,存储形式为<url,number>,其中url为预测的对象标识,number为该对象的计数;
面列表(pagelist):该组件的作用是对搜索集群组件所得到的页面列表进行维护。该列表即为预测列表,最终它会和响应一起被发送到客户端。
步骤s105,以所述预测模型中的计数作为权重值,采用价值评价缓存替换方法进行存储对象的价值计算,获得存储对象价值。
在本发明实施例中,采用的价值评价缓存替换方法是基于预测机制的pgdsf-ait缓存替换算法,在gdsf-ait策略的根基上利用在预测模型中所得的预测队列中的计数信息作为权重值来进行价值的计算,其中gdsf-ait策略基于价值评价函数的缓存替换策略,它在进行替换时综合考虑了对象被访问的频次,替换对象时所需的代价,对象的对数大小,访问对象的平均时间间隔等因素,能很好的反映访问对象的特征,它的价值评价函数如公式4)所示:
其中,l为老龄化因子,最初的值为0;fr(i)为最初值为1的对象访问次数;value(i)表示进行web对象的缓存时要付出的代价;size(i)表示对象的大小,它的值一般取为2+size(i)/536,t表示对象下一次被访问的平均间隔时间,这里t=t+tk,即若一个对象仅仅只被访问过一次,这时t=t。
本发明的缓存替换算法为:web预取模型中的预测队列以二元组<url,number>为组元素,所以将number值作为价值函数的一个权重,由此得到pgdsf-ait的价值函数如公式5)和公式6)所示。
其中,number为预测队列中该对象出现的频次,其余参数与公式4)参数意义相同,在此不再赘述。
该缓存替换方法在计算对象的价值时考虑全面,更能体现对象的特征,能够有效的提高缓存命中率和字节命中率;对象在进行缓存后,当再次访问时,可以直接中缓存中取出,省去了向服务器请求数据和服务器解析数据响应用户的时间,能够大大的减少用户等待的时间。
步骤106,当需要进行替换时,将所述存储对象价值最小的存储对象剔除,获得存储空间进行替换。
在本发明实施例中,当服务器的数据较多,且数据量还在持续增加需要替换时,将h(i)最小的对象剔除,获得缓存空间,将当前对象存储值缓存控制中。
该方法通过对站点服务器的日志文件进行发掘分析,通过聚类算法进行聚类处理得到用户访问页面是的特征和兴趣,建立预测模型,可以应用该模型预测用户接下来将要访问的相关页面,同时应用预测模型中的技术信息为权重值,采用价值评价缓存替换方法计算存储对象的价值,用于在缓存剩余空间不足时,需要进行对象替换时,替换出价值值最小的,对页面对象的替换做出快速的判断和选择,提高网络利用率和用户的体验度。
在本发明实施例中,图6为pgdsf-ait算法与size,lru,gdsf,gdsf-ait四种缓存替换策略关于缓存命中率的对比实验结果图。由该图明显可以看出在不同缓存大小空间的情况下,缓存命中率最终逐渐趋于平稳状态,并且可以看出要想提高一点点的缓存命中率都需要以相当大的缓存空间作为代价。因此,缓存替换算法的好坏对缓存性能有着决定性作用。并且从图中也可以清晰的看到改进的pgdsf-ait算法的命中率明显高于其它替换算法,这说明发明提出的算法是可行的并且具有较好的性能。
在本发明实施例中,图7为pgdsf-ait算法与size,lru,gdsf,gdsf-ait四种缓存替换策略关于字节命中率的对比实验结果图。由该图可知字节命中率也是随着缓存容量的增大而逐渐升高,并最终趋于平稳,并且由此图可以直观的看出本发明提出的pgdsf-ait策略的字节命中率,显然比其它策略优越。
由上述实施例可知,加入预测机制的缓存替换算法的性能无论是在命中率还是字节命中率都比其它策略更优。因此,它能充分提高站点性能,减少用户访问站点时站点给出响应所要等待的时间。
如图8所示,本发明提供了基于会话聚类预测的缓存替换装置的结构示意图。
有效访问数据获取模块810,用于获取服务器访问日志,并识别所述访问日志的浏览器和用户,按照预先设定的筛选方法获得有效访问数据。
在本发明实施例中,有效访问数据获取模块获取web访问日志后,识别用户即客户端的ip地址和浏览器,主要选择范围状态码为200且请求方法为get的html的页面的访问记录,作为有效访问数据,用户的每条请求记录可以表示为r=(t,p,μid),其中,t表示请求时间,p表示请求页面,uid表示用户。
用户会话序列建立模块820,用于根据所述用户和与所述用户对应的有效访问数据中用户访问页面按照时间排序法建立用户会话序列。
在本发明实施例中,用户会话序列建立模块将获得有效访问数据按照用户名称进行分类,按照使用时间间隔阈值为30min的方法来识别用户会话,将用户访问序列表示为si=〈p1,p2,p3,…,pn〉,其中,pi为第i个会话按时间进行排序后的用户访问页面。若序列无任何元素,称为空序列,表示为<>,可以获得如表2所示的用户会话序列表。
聚类处理模块830,用于将所述用户会话序列采用预设的聚类算法进行聚类处理获取用户会话簇。
在本发明实施例中,聚类处理模块首先在用户会话序列中随机选取k个点作为第一质心,并根据公式1)计算其余数据点到k个第一质心的距离,获得多个距离值,获得多个第一用户会话集合;然后根据多个第一用户集合中的距离平均值按照公式2)确定更换变量,根据变更变量更改质心确定第二质心,并按照公式1)的距离计算方法计算距离,获得第二用户会话集合;重复上述步骤,直至质心不再发生改变,获得用户会话簇,在重复上述步骤的过程中,观察质心是否还发生变化,若已经不再发生变化了则聚类处理结束,获得用户会话簇。
预测模型建立模块840,用于获取用户请求,并根据所述用户会话簇建立预测模型;所述预测模型包含预测对象标识和与所述预测对象对应的计数。
在本发明实施例中,预测模型建立模块建立预测模型分为两个阶段,在离线阶段时,主要在服务器端完成,主要工作是进行数据预处理和数据的聚类分析并获得用户会话簇;当处于在线阶段时,获取用户请求,并根据综合距离测量方法如公式3)计算综合距离值,根据所述综合距离值确定所述用户请求所属用户的用户会话簇;在所述所属用户的用户会话簇中对用户请求的页面进行查询,获得页面中会话记录,并统计所述用户请求出现的频次,将所述用户请求进行标识获得预测对象标识,所述频次为预测对象的计数,获得预测模型。
存储对象价值计算模块850,用于以所述预测模型中的计数作为权重值,采用价值评价缓存替换方法进行存储对象的价值计算,获得存储对象价值。
在本发明实施例中,存储对象价值计算模块采用的价值评价缓存替换方法是基于预测机制的pgdsf-ait缓存替换算法,在gdsf-ait策略的根基上利用在预测模型中所得的预测队列中的计数信息作为权重值来进行价值的计算,web预取模型中的预测队列以二元组<url,number>为组元素,所以将number值作为价值函数的一个权重,按照公式5)、6)进行价值计算。
存储替换模块860,用于当需要进行替换时,将所述存储对象价值最小的存储对象剔除,获得存储空间进行替换。
本发明实施例中,存储替换模块在服务器的数据较多,且数据量还在持续增加需要替换情况下,将h(i)最小的对象剔除,获得缓存空间,将当前对象存储值缓存控制中。
上述装置通过对web站点的服务器日志文件进行发掘分析,得到用户访问页面时的特征和兴趣,建立一个预测模型,并结合预测模型与gdsf-ait算法提出了pgdsf-ait缓存替换策略,实现了对页面对象的替换做出快速的判断和选择,提高网络利用率和用户的体验度。
在本发明实施例中,还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时本发明中各方法的步骤。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。