用户浏览模式(共8篇)
用户浏览模式 篇1
0 引言
在Internet电子商务网站中,客户在网站上的每一次点击,作为网站后台的Web服务器都会将这个动作如实地记录在日志中,这为分析用户访问频率、用户访问路径、用户访问目的等信息提供了数据来源。通过分析Web浏览日志,发现用户的访问模式,提取用户的访问兴趣,将得到的各种用户信息进行整合研究,从而生成有效的决策信息,即可为用户提供个性化推荐,同时还能进一步优化网站的拓扑结构。当前数据挖掘技术与Web日志分析已经实现了优质紧密结合。其中,Chen等人在1996年提出了可以将数据挖掘技术应用到Web领域中的思想,并且探讨基于Web事务的Web日志挖掘过程,用以发现用户的访问模式,由此又定义了最向前引用算法MF的概念。Zaiane等人则将Web服务器日志保存为数据立方体(Data Cube),然后对数据立方体进行数据挖掘和联机分析处理(OLAP)。而实现这些算法的前提是从Web日志中探究会话识别,并分离出用户会话,进而提炼出用户访问路径。针对用户普遍使用的多页面浏览器产生树型结构的浏览路径,Web日志中将会呈现非时序的日志记录。基于此,本文提出了一种新的自上而下的用户访问路径收集算法,运行得出用户在一次会话中可能访问的复数目的页面,由此得出全局目的页面访问频度矩阵,该矩阵的数据将可作为实现基于网络结构的推荐系统的核心数据。
1 基于多页面浏览模式的用户访问路径的收集算法
用户访问路径树,指用户通过多页面浏览器访问模式浏览网页形成的网页访问路径。其中定义用户浏览网页的记录集,属性包括会话编号、用户编号、用户访问资源、用户引用页面、以及其他相关信息。具体来说,集合中就是经过数据预处理过程的会话识别后得到的结果记录,其他信息则是根据需要添加的不同信息,比如页面大小,访问时间等等。此外,还需定义树的节点,内容包括用户编号、用户访问资源、孩子集合等。
在对Web日志数据进行去除冗余信息、用户识别、会话识别的预处理后,算法将自上而下地搜索用户会话记录,重点关注了记录中的用户访问资源、引用页面和用户信息等属性。该主题算法的基本思想为:首先从单个会话记录的顶部发起搜索,通常第一条记录为用户访问的初始页面或者是从其他网站跳转过来的页面,此页面就会作为新建用户浏览树的根节点。继续向下展开记录搜索过程,对记录进行分析,考察记录的引用页面,是否为先前已建立的树的节点。如果是,则加入树模型中;如果不是,即以此记录的访问页面为根节点,再建一棵用户浏览路径树。直到将此会话记录全部搜索完毕,算法执行结束。
以图1所示的用户浏览情况为例算法的识别过程如下。
如图1所示,首先搜索第一条记录,把A节点作为用户浏览树的根节点。继续向下搜索记录,搜索到B页面所对应的记录。考察此记录的引用页面,引用页面为A页面,将B页面作为A页面的子节点,继续向下搜索。此后将C页面和D页面也加入到A页面所对应的节点下。
在子节点搜索父节点的过程中,此算法遵从就近搜索原则。具体过程如图2所示。
由图2可知,在搜索到访问E页面的记录时,E记录是从最后添加的D节点开始搜索的,然后搜索C节点,在搜索B节点时发现与记录的引用页面相符合,所以将E页面添加到B的孩子节点中去。在用户有多棵用户浏览树的情况下,搜索情况也与上面相似,先搜索最近生成的用户浏览树。在搜索会话记录的过程中可能会出现重复数据,即在不同的时间访问了相同的资源并且引用页面也相同,可能是用户使用同一种方式,即点击了同一超链接反复访问了同一资源,遇到这样的情况需要合并记录。这一做法的处理实现过程如图3所示。
解析图3可知,如果在搜索会话记录过程中,搜索到了第2个关于D页面的记录,向上搜索父节点的过程中遇到了一个与自己相同的页面,需考察此页面的父节点,如果与自身的引用页面相同则合并记录。
综上可得,整个算法实现流程如图4所示。
实验数据是某商业网站日志中分离出来的711个用户,使用一般用户访问路径识别算法,最终获得了1 352个路径,其中的1 076个路径均属长度为2的短路径。而使用本文算法则总共得出839棵用户访问路径树,此时可标识为2个节点的树却仅有517棵。这一结果说明本算法在收集用户访问路径上,把现有算法中并未收集到的大量短的访问路径均已成功合并到了用户访问路径树上,从而减少了短路径的生成数目。
2 基于用户多页面浏览模式的网络结构推荐系统的实现
2.1 推荐算法实现
基于网络结构的推荐算法并不考虑用户和对象的内容特征,而只是将其视作图结构中的一个个单元节点,算法所利用的信息是用户和对象之间的选择关系。在基于网络结构的推荐系统中通常会构建一个二部分网络,其中用户和对象分别构成2个节点集。定义用户集合U,表示为:U={u1,u2,u3,…,um}。定义对象集合C,表示为:C={c1,c2,c3,…,cn}。通过用户选择对象构成一个m×n的邻接矩阵A={aij}m×n。在该矩阵中如果用户j选择了对象i,则元素aij的值为1,否则该元素的值为0。算法的目的就是对于任意的用户k,对其还未经历选择的所有对象可依照k的浏览行为、兴趣爱好等方面的因素进行打分,预测k关于这些对象的喜爱程度,并将其提供有效排序,最后再将排名前若干位的对象推荐给用户k。
研究假设用户i选择了若干对象,这里可以看成用户将可调度精力或者金钱平均施付于这若干个对象上。在此,给出演示实例如图5所示。
由图5可见,X、Y、Z分别代表3个用户,a、b、c、d则为可供其选择的对象。诸如,用户X选择了对象a、b。在没有预设加权的情况下,说明用户X将自己的资源平均分配到了所选择的2个对象上。综合其他2位用户,最终分配结果可如图6所示。
综上结果可知,此次分配之后每个对象都得到了用户一定量的资源,这取决于选择资源的用户个数以及用户选择的对象个数。研究过程推理得到对象所产生的资源量可以表述为:
式中,aic表示用户i所选择的对象C。并且:
同时,f(xi)表示用户X的资源数。k(xi)代表用户X的度,具体即指用户X选择的商品数量。经过一次资源分配后,每个对象都拥有了各自的资源。研究中,再一次设定对象对用户进行一次反向的资源分配,分配结果如图7所示。
此次分配的目的在于使对象实际拥有的资源需按照用户与对象的选择关系进行再分配。由此即可获知用户一方的资源拥有量。这个过程原理的数学表示为:
将其中的f(yc)进行替换后,由上式可得下式:
上式可以写成:
提出wij得到:
式中,wij就是对象j愿意分配给对象i的资源配额。k(xj)表示对象j的度,意指该对象已由多少用户定制选择,k(yc)表示选择对象c的用户一共选择了多少对象。
如图1所示,呈现了用户和对象之间的选择关系,假设每个用户可供分配的资源数为1。利用式(3),计算得出下面的矩阵:
矩阵中的每个元素代表行元素对象愿意分配给列元素对象的资源量。这样就可得出对象与对象之间的资源配给关系。对于一个初始用户,将其自主选择的对象的初始资源设为1,其余为0。这样就得到一个n维向量f={f1,f2,…,fn}。记这个向量为f,通过资源分配后,最终的资源向量为:
此后,即对用户还未确定选择的对象,按照向量F中对应元素的大小进行排序,值越大表明用户可能对此有更多偏好,因为这些对象在那些已经被选择过的对象当中对其分配的资源的分量最重。最后将排名靠前的若干位对象推荐给目标用户。下面给出进一步解析说明。对于用户X来说,该用户选择了对象a和b,而并未选择对象c和d,在对未选择对象c和d预测评分时参照对象间资源配给矩阵得到对象a和b所在行分别给予对象c和d的资源分配量并将其求和。最终推得对象c的预测评分为5/18,对象d的预测评分为1/6,相较于对象d,对象c可能更受用户X欢迎。
2.2 推荐系统实现
上述用户多页面浏览模式下用户在一次会话中可能浏览多个目的页面。树形访问路径的叶子节点即为用户访问的目的页面。
定义用户的浏览目的页面集合User Ed P(user,uri[]),user表示用户,uri[]为此用户访问的浏览目的页面集合。定义交叉页面访问频度cp Freq(i,j),其中i,j是网页编号,cp Freq代表的是既访问量页面i又访问了页面j的用户频度。
上面交叉页面访问频度的计算方式为:
式中,∏符号为关系代数中投影计算符。特别地,下标L代指判断条件:i页面和j页面同时存在于用户的浏览目的页面集中。为此,构建矩阵如下:
对于矩阵的第i行j列元素,既访问了i页面又访问了j页面的用户访问频度。累加第k行或者k列,得出的访问了2个页面的用户数统计结果,其中这2个页面分别是k页面和所有目的页面集合。
在基于网络结构的推荐算法中,考察用户访问k页面时,系统对应搜索矩阵中的第k行(列),对页面访问频度进行排序,找到数值较大的几位,去掉数值最高的一位。因为其中cp Freq(k,k)必定为此行(列)中数值最大的项。选取上述排名前几位的交叉页面访问频度,并代入如下计算:
式中,cp Gra(k,i)为交叉页面用户访问比重,表征在访问了k页面的用户中还有多少比例人群访问了i页面。实验使用实验数据日志中的6个页面,在数据库中页面编号和对应的Uri资源如表1所示。
以表1作为数据基础设计构建的交叉页面访问频度矩阵如下:
交叉页面用户访问比重矩阵为下:
从数据上可以看出浏览过编号为4 475页面的用户中部分人还浏览了编号为278的页面,这2个页面的交叉页面用户访问比重为0.062,说明这2个页面可能具有一定的关联。对于浏览了编号为278页面的用户根据表1的数据可以证得6 759号、4 475号和2 612号页面的交叉页面用户访问比重分别为0.052、0.010和0.022。如果推荐系统给用户推荐候选页面为2个的情况下,根据计算得出交叉页面用户访问比重的结果,6 759和2 612的推荐比重均高于其他页面,也就是推荐6 759和2 612号页面要更为合适。
3 结束语
针对用户普遍使用的多页面浏览器产生树型结构的浏览路径,本文提出了一种新的自上而下的用户访问路径收集算法。此算法能够收集到的用户访问路径树,合并短路径到用户浏览树上,减少了短路径的综合实际生成。由此得出全局用户浏览目的页面访问频度矩阵,此矩阵的内容作为实现基于网络结构的推荐系统的核心数据,实验表明建立交叉页面访问频度矩阵在实现基于网络结构的推荐上具有可行性。
摘要:针对用户普遍使用的多页面浏览器产生树型结构的浏览路径,Web日志中将会呈现非时序的日志记录。本文提出了一种新的自上而下的用户访问路径收集算法,进而得出的用户在一次会话中可能访问的复数目的页面,由此得出全局目的页面访问频度矩阵,此矩阵的数据作为实现基于网络结构的推荐系统的核心数据。
关键词:访问路径树形,推荐系统,网络结构
用户浏览模式 篇2
关键词:用户浏览行为;电子商务;个性化推荐系统;兴趣度
中图分类号:F713文献标识码:A文章编号:1009-3044(2007)12-21528-02
An E-commerce Recommend System based on User Browse Behavior's Mining
HE Ying1,2,JIANG Wai-wen1
(1.School of Information Science and Engineering,Central South University,Changsha 410008,Cina;2.Hunan Vocational College of Commerce,Changsha 410205)
Abstract:This paper,we introduce the personalized recommend system for E-commerce and propose a new recommend system model based on user's browse behavior to mine his interests and gives its flow chart and mining algorithms in detail.
Key words:browse behavior; E-commerce;personal recommendation system;interest
1 引言
近年来,因特网的规模正以惊人的速度发展。人们越来越希望网页的内容能够从原先的以“网站”为中心转变成以“用户”为中心,尽可能地自动调整以迎合每个用户的浏览兴趣,从而让每个用户能够感觉到他是网站的唯一用户。在日趋激烈的竞争环境下,电子商务网站要想有效保留用户、防止用户流失、提高销售量,就必须实现个性化服务,即对不同用户投其所好,采取不同的服务策略,提供不同的服务内容,这就需要建立电子商务网站的个性化推荐系统。
2 电子商务网站的个性化推荐系统
电子商务中的推荐系统是利用统计学、人工智能、数据挖掘等技术,分析访问者在电子商务网站的访问行为,产生能帮助顾客访问感兴趣的产品信息的推荐结果,引导顾客的购买行为,从而产生可观的利润。推荐系统首先要分析以前顾客行为数据,建立表示顾客行为的模型,并充分利用模型对其它顾客推荐有兴趣购买的产品信息。这就要求推荐系统首先必须知道用户的兴趣、偏好和访问模式等信息。而在电子商务中,用户很多浏览行为都能很好地反映用户的兴趣。基于用户浏览行为的Web挖掘技术就是通过对用户浏览Web时的访问行为、访问频度、访问内容等浏览信息进行挖掘,发现蕴涵的、未知的、有潜在应用价值的非平凡的模式,从而获得用户兴趣,提取出用户的特征,获取用户访问Web的模式,为用户实现主动推荐,提供个性化服务。
3 基于用户浏览行为的挖掘流程
3.1在客户端获取行为数据:输入Web文档,当用户浏览完网页后,输出用户在该文档上的浏览行为,同时记录Web文档的相关信息
3.2數据预处理:对数据进行清洗,滤掉脏数据,保留一些能表示用户对某页面兴趣度的信息。
3.3用户兴趣度计算:根据选取出来的行为数据建立兴趣模型,进而计算出能反映用户兴趣的网页兴趣度。
3.4推荐:主要根据挖掘结果实施推荐,将用户感兴趣的内容的链接添加到用户正在浏览的网页。
3.5结果修正:根据用户浏览行为的反馈对推荐进行修正,如果用户接受推荐,则进行巩固;否则,根据用户的反馈进行重新推荐。
4 基于用户浏览行为的挖掘算法
4.1行为数据的选取
一个用户浏览网页时的行为数据是非常丰富的,大致可以分为以下几类:
(1)表示用户兴趣的显式行为 如利用问卷调查等形式收集用户感兴趣的信息。
(2)表示用户兴趣的标记行为 如执行保存、打印页面等动作。
(3)表示用户兴趣的操作行为 如执行剪切、复制、粘贴、搜索文本等操作行为。
(4)表示用户兴趣的链接行为 指用户在浏览页面时点击某个超链接或没有点击某个超链接等行为。
(5)表示用户兴趣的重复行为 指某个用户在某个页面上点击了 “更多”,就可以认为用户对这个页面有更多的兴趣。
(6)表示用户不感兴趣的行为 如某用户经常访问某网站,但经常只浏览其中某些页面,则认为此用户对该网站其他网页不感兴趣。
4.2网页兴趣度计算
虽然能够揭示用户对网页的兴趣度PageInterest的浏览行为很多,常规使用浏览时长、网页字节数乘积与总浏览时长、总信息数乘积的比值作为网页的兴趣度。定义为:
而经研究表明,不但用户停留在网页的浏览时间PageTotalTime能揭示用户兴趣,另外还有一种关键行为:翻页/拉动滚动条次数Number同样也表达了用户对该网页的关心程度。经仔细的分析和实验,发现PageTotalTime, Number与网页兴趣度PageInterest之间的定量关系为:
PageInterest=0.1123*PageTotalTime+ 0.0711*Number+ 95.8883
因此改进的网页兴趣度计算算法如下:
输入:用户浏览信息矩阵
输出:网页兴趣度矩阵
function PageInterest;
begin for logx=1 to n
//找出该网页的最大允许访问时间
maxtime=find(maxtime,topic);
//找出该网页的最小允许访问时间
mintime=find(mintime,topic);
//如果用户时间小于最小时间或大于最大时间,但进行了保存操作,则将其转化为对等的标准时间。
If browsetime>maxtime or browsetime if issaved browsetime=standtime; endif endif //确定该网页的位置,并修改总浏览时长 k=locate(browtime,page_logx); browtime(k)=browtime(k)+browtime; endfor; //以路径为单位计算总浏览时长、翻页/拉动滚动条次数 for j=1 to pagenum totaltime=totaltime+browtime(j); totalnumber=totalnumber+number (j); endfor for j=1 to pagenum interest(j)= 0.1123*totaltime+ 0.0711* totalnumber + 95.8883 endfor end function 时间复杂度分析:每条浏览行为记录计算一次,执行时间与浏览记录数量成正比,时间复杂度为O(n)。 空间复杂度分析:需要的存储空间与网页为数目成正比,最大为网页数,因此空间复杂度为O(n)。 4.3 基于用户浏览行为的挖掘算法 输入:用户浏览行为矩阵 输出:用户浏览模式 function PreferedBrow(browdata as browdatarr); //计算前缀为path路径数 amount=count(s,path) for i=1 to amount interest=browdata(s,path) if interest>mininterest addpath(path) endif endfor end function 算法的时间复杂度与用户浏览事务集合元素和浏览的最大路径长度有关,是O(M*N),其中,M表示用户浏览集体的元素数,N表示最大浏览路径长度。另外,由于该算法是一个递归算法,需要的辅助空间栈的深度为最大浏览路径长度数。 5 结束语 随着电子商务、电子政务以及网络远程教育等电子服务的发展,研究 Web环境下的个性化服务具有重要且现实的意义。本文提出的算法使得 Web 信息服务提供者根据用户网络浏览行为可正确把握其兴趣所在并可动态地对其兴趣改变进行跟踪,根据这些个性化信息调整 Web 信息资源的组织方式,最大效率地为用户提供方便快捷且实用的个性化服务。 参考文献: [1]韩家炜,孟小峰.等. Web挖掘研究[M].计算机研究与发展,2001,38(4)405-413. [2]Claypool M., Le E, Waseda M., et al. Implicit interest indicators. In: Campbell M,ed.Proceeding of the ACM Intelligent User Interfaces Conference (IUI), New York: ACM Press,2001.14-17. [3]劉培刚.Web挖掘技术在电子商务中的应用研究[J].情报学报,2002(6). 随着计算机网络的迅速发展, 越来越多的企业和机构都通过互联网树立形象、宣传产品。但在竞争日益激烈的网络经济中, 只有赢得用户, 才能最终赢得竞争的优势。作为一个企业网站的管理员或拥有者, 应该知道访问网站的用户都需要些什么, 知道网站哪些内容最为用户所喜爱, 哪些不受用户关注, 什么样的改动带来了显著的用户满意度提高, 什么样的改动反而丢失了用户等等。而基于WEB数据挖掘技术正能满足这些需求。 基于WEB数据挖掘, 就是利用数据挖掘技术自动地从网络文档以及服务中发现和抽取信息的过程。根据挖掘的对象不同可分为三大类:基于WEB内容的挖掘、基于WEB结构的挖掘以及基于WEB使用的挖掘。 本文所提出的算法, 属于基于WEB使用挖掘的范畴, 对包含用户访问网站时的点击行为的日志文件进行挖掘和归纳, 从而了解用户的行为数据所具有的意义。笔者认为, 传统上对用户点击行为的分析, 均从宏观的角度出发, 着眼于群体用户的点击行为分析, 往往不太重视对个体用户行为进行有效的分析, 并忽略了用户行为的时间特性。有鉴于此, 本文将着眼于个体用户的点击行为, 挖掘其点击序列, 并从多个序列中总结出共性, 分析出隐藏在点击行为后的浏览习惯, 并将分析结果用于网页内容的调整与自动推送。 2. 分析用户浏览轨迹前的准备 用户在进入网站浏览的过程中, 对网页上各种信息的点击按时间先后顺序形成点击序列, 称之为用户浏览轨迹。通过对用户浏览轨迹的分析, 我们可以发现用户浏览页面和网上行为之间的潜在关系。例如, 在多个确定的浏览轨迹中发现存在这样的一个共同规律:用户在访问某一户外运动产品 (例如登山包) 网页后, 有27%的用户接下来访问户外帐篷这一产品的页面, 有21%的用户访问望眼镜这一产品页面, 12%的用户访问了军刀这一产品页面, 另有40%的用户选择浏览其他网页或是离开该网站。根据这一发现, 可以重组网站内容, 将用户潜在的最有可能浏览的网页内容进行实时推送。 在进行具体分析前, 需要先考虑以下几个方面的问题: 2.1 用户识别 由于用户轨迹分析是建立在单用户粒度上的分析和统计, 所以如何识别单个用户的身份就显得尤为重要。由于代理服务器、防火墙、Internet服务提供商采用动态分配IP地址等问题, 使得用户识别变得复杂。目前识别用户常用的方法有:IP地址、嵌入Session ID、Cookies和注册等方法。由于本文研究对象是用户某一次浏览过程中的点击行为, 对于某一访问用户, 只需分析其从进入网站到离开网站之间的点击行为, 无论该用户是否注册, 其点击数据均具有研究价值, 故除已注册用户外, 需通过启发规则来识别用户, 即不同的IP地址代表不同的用户。 2.2 数据准备 实验环境下的用户行为和真实网络环境下的用户行为是有所差异的。为了研究真实网络用户的点击行为, 笔者在某一商品网站中加入日志采集功能, 收集到一段时间内的真实网络环境下的用户点击日志。日志表中包含用户名、用户IP、点击时间以及商品ID共计4个信息项。其中, 用户名是用户注册后, 系统区别用户的唯一标识, 通过它可以确保是对同一用户的日志信息进行聚集, 实现对同一个用户点击行为的分析研究;用户IP是系统区别非注册用户的身份标示, 作用与用户名相同;点击时间是用户发生点击操作时的时间, 是构成点击序列的重要依据, 通过对该网站历史访问量的分析, 决定将其精度定为秒;商品ID是商品的标示指用户点击某一页面时, 该页面所呈现。在用户身份确定的前提下, 商品ID按点击时间的排序就为该用户的浏览轨迹。 3. 用户浏览轨迹分析及应用 3.1 模型分析 通过数理模型的分析, 从用户点击日志表的大量数据中有针对性的获取以下信息:如在点击日志表的某个时间段内, 浏览某件商品的每一位用户接下来最喜欢浏览的商品是哪些, 这些商品在“接下来浏览”的行为中被浏览的次数是多少, 并对其浏览次数进行统计。其过程如图1所示: 统计数据可用于预测出最可能被用户浏览的商品信息, 并在用户浏览相应商品页面时, 将相应产品信息推送给该用户。 3.2 算法实现 以用户访问商品ID编号为17的页面为例, 描述该算法的详细实现过程。 (1) 当访问某件商品页面时, 由页面链接参数值得到该商品的ID值。以该ID值为关键字, 查询用户点击日志表内某段时间内所有关于该商品的访问记录, 并将查询到的所有记录存放到一个数组中。 (2) 通过判断点击记录中, 同一用户的点击时间间隔, 可以划分出用户的一次完整浏览过程, 即用户从进入网站到离开网站的过程。在用户点击日志表中查询该ID商品一段时间内的访问记录, 结果如表1所示: (3) 将该数组的记录数作为循环次数, 进入循环。每次循环取出数组中一条记录, 记录中包括用户名称、用户IP、商品ID和访问时间。以前3个值为关键字, 以最后一个值的访问时间为范围限定, 从点击日志表中查询到在这条记录之后, 同一位用户浏览的下一个商品的访问行为的详细信息, 并记录在另外3个一维数组中, 3个数组分别记录用户名或IP、商品ID和访问时间。在查询操作中, 分为两种情况, 有用户名和用户名为空, 如果有用户名, 则以用户名作为查询关键字之一, 若无用户名, 则以IP作为查询关键字, 关键是要保证每次分析的是同一位用户的访问行为。 (4) 循环结束后, 3个一维数组中, 记录了每一位用户在离开当前访问的商品页面后, 访问的下一个商品的记录信息。此时得到如表2所示数据: (5) 另外新定义一个二维数组, 以上一步的有效记录条数作为循环的次数, 通过嵌套循环的形式, 统计出每个商品被访问的记录, 将对应的商品ID和被访问次数存放在这个二维数组中。通过冒泡排序, 将二维数组中的元素, 按访问数由高至低排序。此时得到点击次数排列表。通过该表, 我们可以得到这样一个结论, 在一段时期内, 访问该网站的用户, 在浏览了id为17的商品后, 接下来最喜欢访问的产品id是28、27、11等等。由此, 对于访问商品id编号为17的页面的用户, 我们可以在他们访问页面时, 将表中排在前几位的商品信息同时推送到该页面内, 这样就能达到改善用户体验的目的。 4. 结束语 网络用户行为蕴含大量有价值的信息, 分析这些信息可以帮助了解客户的行为从而改进网站的结构。本文讨论了一种基于web使用挖掘技术的算法来了解用户的兴趣和爱好, 分析用户的浏览模式, 并根据用户的当前访问需要, 自动实时地为用户提供推荐页面。由于推送内容均是根据算法自动得出, 在实际的浏览中, 这些推送的内容对用户的吸引度如何?换而言之, 推送内容在用户的实际浏览点击命中率又是多少?如何根据这些命中率来改进该算法, 从而提高推送准确度, 将是以后的研究方向。 参考文献 [1]岑荣伟, 刘奕群, 张敏, 茹立云, 马少平.网络检索用户行为可靠性分析[J], 软件学报, 2010, (21) [2]董富强.网络用户行为分析研究及其应用[D]西安电子科技大学, 2005 [3]刘立军, 周军, 梅红岩.Web使用挖掘的数据预处理[J]计算机科学, 2007, (05) [4]王斓樾.用户行为分析在搜索引擎中的应用[D]沈阳工业大学, 2007 自搜狗独立运营后, 业绩开始快速增长。搜狗首席执行官王小川日前表示, 搜狗流量强劲增长得益于“输入法——浏览器——搜索”的三级火箭战略模式得到市场的验证。 数据显示, 搜狗浏览器月度覆盖率达到23.4%, 覆盖用户9360万人, 目前位列国内浏览器市场第三, 市场份额继续上升。搜狐CFO余楚媛曾公开表示, 搜狗搜索80%的流量来自搜狗浏览器, 入口优势日益凸显。 双核保证无缝切换 目前, 市场上双核和多核的浏览器产品比较多, 使用多核心浏览器的好处就是可以把每个核心扬长避短, 给用户最好的速度体验, 同时避开兼容性的缺点。 搜狗桌面事业部总经理杨洪涛表示, 判断双核浏览器的指标应该包括三个方面。第一, 必须做到智能切换。搜狗在对页面本身的兼容性分析时采用了自动化技术和人工相结合的方式, 来保证用户可以享受到无缝切换。第二, 浏览器的内核, 这也是体现浏览器企业技术水平的重要指标。第三, 外围的兼容性, 在这点上搜狗的能力更强、更突出。 具体来说, 由于一些应用开发者使用chrome的平台进行开发, 因此也就面临着无法在IE浏览器上得到兼容。搜狗浏览器具有webkit和Trident两个内核, 这两个内核对于浏览器开放平台上的应用是同时兼容的, 可以无缝切换。也就是说, 搜狗浏览器可以让IE的内核支持chrome的应用。 目前多核技术的难度并不是很大, 各个厂商的差异在于掌握程度。对于四核等多核技术, 杨洪涛表示, 做更多的内核意义已经不大。 网页更新提醒扩大覆盖面 网页更新提醒功能也是搜狗浏览器的一大特色。杨洪涛表示, 这个功能比较复杂, 需要对大量的网站做预先的分析。主要分析用户的使用习惯, 以及如何将非结构化、没有规律的页面变得结构化, 并将更新提供给用户。 事实上, 搜狗要对每一个页面进行处理, 并不能因为两个网页功能相似而忽略其一。目前, 搜狗支持的网站数量在万的量级以上, 并且这一数字将持续上升。不过, 用户并不会对这一增长有明确的体验。因为支持网站的升级是不需要升级版本, 而是靠后台云端的处理。 网络教学随着Internet的发展被越来越多的人所使用, 而如何针对学习者的兴趣推荐相应的学习资源, 也成为了网络教学中被关注的问题。随着学习内容的推进, 学习者的兴趣相应地会发生转变, 针对这一特点, 本文设计了基于浏览行为的个性化推荐系统 (Browsing Behavior Personalized Information Recommendation System, BBIRS) 。 1 用户兴趣模型的建立 1.1 基于向量空间模型的混合模型 在个性化推荐系统中, 用户的兴趣模型会在很大程度上影响到推荐效果, 文中采用了图1所示的二层树状结构模型。 图1用二层树状结构模型来表示用户兴趣。用一组兴趣主题词 (I1, I2, …Ik) 来代表用户的k个兴趣类型, 每一兴趣类II根据用户兴趣度的高低赋予一定的权值InterestDregree (Ii) , 因此用户的兴趣可以表示为 ( (I1, InterestDegree (I1) ) 的加权矢量形式[1,2]。 树状模型的第一级节点表示了用户的兴趣类型, 及其对每一兴趣类的兴趣度高低。树状模型的第二级节点是用户某一兴趣类的向量空间模型表示, 这样就使得用户的兴趣类的表示和页面文档的表示统一了起来, 那么在兴趣模型更新的时候就可以直接采用前面讨论的相似度计算公式计算新浏览页面与兴趣类的相似性, 简化了用户兴趣模型的更新。 本文从两个方面考虑一张页面在其兴趣类页面集合中的兴趣等级:①用户在这张页面上的浏览行为动作;②页面内容与兴趣类主题的相关程度。 1.2 通过浏览速度计算用户的兴趣度 设用户在时间段TimeSpan内共依序浏览了N个页面, 记为b1, b2, …, bN。由于用户可能多次访问同一个页面, 因此用户在时间段Timespan内浏览的各不相同的页面数n≤N。记用户在时间段Timespan内访问的各不相同的页面为p1, p2, …, pn, 访问pi (i=1, 2, …, n) 的次数为Fre (pi) 。 令Interest (p) 为用户对页面P的兴趣度, Duration (pi) 表示用户在页面pi上驻留的时间, 用户的浏览速度定义为单位时间内用户浏览的字节数, 即 则用户兴趣度可以通过下式来估计: 对浏览速度进行非线性归一化, 用户对页面p的兴趣度可以通过下式得到: 2 BBIRS系统 2.1 BBIRS系统结构图 BBIRS系统可以分为在线部分和离线部分[3]两个过程来进行, 如图2所示。 2.2 PPTIS系统结构 该系统主要包含Web使用挖掘、用户兴趣分析和个性化推荐三个模块。其中, 框架的基础是Web使用挖掘, 其首要任务就是利用Web结构数据预处理的结果和Web站点服务器日志完成Web使用数据预处理工作, 即从大量的Web日志中识别用户、识别会话并进行路径补充, 以形成访问事务集。访问事务集也就成为各种Web使用挖掘方法的处理对象。比如, 可以利用聚类算法对访问事务进行聚类, 并利用基于决策树的快速关联规则挖掘算法[4]对访问事务集进行处理。 用户兴趣分析模块首先需要利用用户的浏览行为和浏览内容分析用户对页面的兴趣, 以形成用户当前会话;然后, 将频繁Web页面集与用户当前会话进行匹配, 以形成推荐页面集。同时, 该模块可以自适应用户的兴趣模型[5]。 个性化推荐阶段只需要推荐引擎依据用户偏好视图将用户所偏好的页面以超级链接的形式附加在用户的学习页面中。 3 推荐策略 BBIRS系统采用了Web使用挖掘和分析用户兴趣的两种方法进行推荐, 但这两种方法不同的特点。 首先, 二者来源不同, 访问日志记录了关于用户访问的信息;交互数据则记录了用户和远程教育系统之间的交互信息。再者, 对二者的兴趣点不同, 日志记录中本文主要关心的是用户访问的行为方式, 如:兴趣的转移、页面滞留时间、访问次数等;交互数据中本文主要感兴趣的是用户访问记录的具体内容, 例如:作业、考试完成情况和答案, 答疑时给老师提的问题, 与同学交流的主题等。因此, Web使用挖掘方式适合于用户的兴趣没发生很大改变的时候进行推荐, 而分析用户兴趣方式适合用户的兴趣发生变化时进行推荐, 而用户的兴趣变化主要通过其浏览行为体现, 而浏览速度是最能体现用户兴趣的浏览行为之一。 推荐算法如下: 设定阈值α If (Interest (p) >α) then 更新用户兴趣库; 采用用户兴趣分析方式推荐; Else 采用Web使用挖掘方式推荐; end 需要说明的是:当用户对页面的浏览速度speed (p) 比较慢, 即interest (p) >阈值时, 有两种情况, 第一种情况很显然说明用户对页面很感兴趣;第二种情况可能是用户对该页面的内容是第一次学习或学习次数较少, 在这种情况下, 访问日志中记录的该页面的信息就可能较少, 所以采用用户兴趣分析方式推荐, 同时更新用户的兴趣库。 4 结束语 本文所设计的系统具有以下特点: ①有两个基本平行的挖掘过程分别对访问日志和交互数据进行挖掘, 使得每一个挖掘过程相对简单, 又能各自独立地处理不同的数据源。因此, 用两个相对独立的挖掘模块进行挖掘, 更能充分利用这些信息来个性化用户群。 ②该模型体现了以用户为中心的思想, 从用户出发, 最终反馈到用户, 变被动为主动, 能够尽可能地迎合每个学习者的浏览 (学习) 兴趣, 并且不断调整自己来适应学习者浏览 (学习) 兴趣的变化, 进行 个性化教学服务。在模型中, 对两种不同数据库一般会采用不同的挖掘算法, 以期望使个性化得到最好的体现, 本文的目标不是个性化到每个相似的用户群体, 而是个性化到每个不同的用户, 使每个用户感觉到整个教育过程就是专门为他量身定做的一样。 摘要:网络教育已成为现代教育技术主流的发展方向。提出了二层树状结构模型, 并在此基础上, 设计了一个基于基于浏览行为的个性化推荐系统 (BB IRS) 。系统可以通过离线和在线方式对用户的访问日志和交互数据分别进行挖掘, 并通过根据用户的浏览速度计算用户对页面的兴趣度, 根据该兴趣度是否大于阈值, 系统采用不同的推荐策略。 关键词:E-learning,个性化推荐,Web挖掘,推荐模型 参考文献 [1]冯是聪, 单松巍.基于Web挖掘的个性化技术研究[J].计算机工程与设计, 2004, 1:4-6. [2]潘延军.基于用户浏览内容的Web用户浏览行为个性化研究[D].天津大学硕士论文, 2005. [3]侯伟, 吴晨生, 杨炳儒, 等.一种高效的离线数据流频繁模式挖掘算法[J].计算机科学, 2009, 7:246-251. [4]陈雪飞.一种基于决策树的快速关联规则挖掘算法[J].计算机科学, 2008, 35 (7) :252-254. 个性化服务是指针对不同用户提供不同服务策略和服务内容的服务模式, 为了提供高质量的个性化服务, 需要构建准确的用户兴趣模型, 这就需要了解用户对内容的感兴趣程度[1]。一种获得用户兴趣度的方法是让用户自己标注感兴趣的内容。但是用户自己标注的方法固然能够获得较为准确的用户模型, 但大多数用户并不愿意参与标注。另外一种获得用户兴趣度的方法是根据用户浏览网页行为来计算用户兴趣度。所以如何准确的估计用户的兴趣度是作为个性化服务研究的重要内容, 也是决定个性化服务质量的关键因素。 1 用户浏览行为分析 浏览行为大致可以分为以下几类[2,3,4]。 (1) 标记行为:增加书签、删除书签、保存页面、打印页面等。 (2) 操作行为:复制、粘贴、剪切、拉动滚动条、点击链接等。 (3) 重复行为:重复访问同一个页面等。 由于用户对网页的处理动作属于心理强烈的反应动作, 能更明显地反映用户兴趣, 用户如果对此页面非常感兴趣, 一般都会采取保存页面和收藏页面这些操作, 而打印页面操作并不一定会发生, 而拉动滚动条, 点击链接等操作行为在浏览网页的时候一般都使用的比较频繁, 并不能很准确的反映用户是否对网页感兴趣。此外, 由于用户浏览网页时, 浏览网页的时间取决于网页内容的大小, 所以不能单纯分析用户的浏览时间长短去获取用户感兴趣网页。综合考虑, 本文分析保存页面、收藏页面和网页浏览速度这三种最能体现用户兴趣的浏览行为, 基于这三种行为计算用户兴趣度。 用户兴趣度[5]是指用户对一个网页内容的感兴趣程度, 采用0-1间的实数示, 0表示无兴趣, 1表示最大兴趣。 当前, 计算用户兴趣度的方法主要分两类, 一是基于浏览内容的方式[6,7], 二是基于用户行为的方式。前者计算的对象完全来自于Web页面本身的内容, 一般采用关键词频率和权重计算[8]。通过这种方法, 可以得到对用户浏览内容的概括, 但它没有考虑用户浏览页面时能反馈心理的动作信息。所以本文分析浏览网页行为进行用户兴趣度计算。设定初始用户兴趣度为Interest×[0, 1]。对每个网页l采用三种浏览行为来计算用户兴趣度。这三种浏览行为表示为:保存页面save (li) 、收藏页面bookmark (li) 和在页面上的驻留时间time (li) , 由于考虑网页大小会对驻留网页的时间有影响[9], 故采用保存页面save (li) 、收藏页面bookmark (li) 和网页浏览速度speed (li) 来重新作为这新的三种浏览行为[10]。其中l表示页面, i表示网页数, li表示访问的第i个网页。本文在计算用户对页面的兴趣度时做了如下规定。 (1) 保存和收藏页面这两个行为比较特殊, 只要其中一个发生了, 就表明用户对这个页面的兴趣度很高, 此时浏览网页速度也不再作为计算因子。此时收藏和保存页面与用户兴趣度的关系为一个二值函数[11]。 此时, 用户兴趣度与式h (li) 存在如下关系: (2) 当保存和收藏页面这两个行为均未发生时, 只计算浏览网页速度产生的兴趣度。 由于计算用户浏览网页速度speed (li) 取决于网页大小size (li) 和页面驻留时间time (li) , 然而当用户在页面的驻留时间太短少于5s, 则认为用户对此网页不感兴趣;当用户在页面的停留时间太长大于3min, 可能造成页面驻留时间异常。所以为避免这两种情况, 在5s<time (li) <3min时才考虑页面驻留时间[12]。而页面浏览速度speed (li) 是依据页面驻留时间time (li) 和网页大小size (li) 产生的兴趣度函数定义为: 由于浏览网页速度越快, 表明用户对此网页越不感兴趣, 为了避免值过度偏离1, 则用户兴趣度与浏览网页速度存在如下关系: 由以上理论, 可以得到每个网页的用户兴趣度计算公式如下: 2 用户兴趣的衰减 时间对用户兴趣有着深入而广泛的影响。用户兴趣是会随着时间而变化的。基于此, 一些国内学者就假设人对某一事物的兴趣如果在没有外界刺激去加强它的情况下会随时间而衰减, 如同艾宾浩斯提出的人在学习过程中存在遗忘规律一样, 他描述了人类大脑对新事物遗忘的规律。基于这个规律, 艾宾浩斯提出了这种记忆保存量与时间关系的函数[13] (即兴趣衰减因子) : 其中, K (x) 表示记忆保存量, T=cur-per (cur表示当前时间, per表示第一次浏览该网页的时间) 单位为分钟, c=1.25、k=1.84时公式 (6) 所代表的遗忘函数与人的遗忘规律比较匹配。那么, 如果要准确预测用户现在的兴趣, 就应该关注用户最近的行为, 但是, 考虑用户最近的兴趣只能针对渐变的用户兴趣, 而对突变的用户兴趣是很难起作用。根据以上的理论, 得到了随着时间的流逝用户兴趣变化的计算公式: 其中, Interest (li) 为用户原来对每个网页的兴趣度, Interest* (li) 为衰减后的兴趣度。 根据以上公式, 得出用户对每个网页的兴趣度公式如下: 其中, new Interest (li) 为用户浏览一个新的页面后对该页面对应的兴趣度的变化值, 也可当做用户对该文档的兴趣度。为了避免单一的方法所造成的局限性, 本文决定通过用户的浏览动作即收藏页面和保存页面、浏览速度两者来对它进行计算, 得到公式如下: 其中, ω1为收藏和保存页面对应的权重, ω2为浏览网页速度对应的权重。 最后利用K-means算法依据网页内容聚类成主题, 每个主题随机选取10篇用户感兴趣网页进行实验, 所以根据式 (7) 得到主题的的兴趣度函数: 其中, p表示主题, m表示主题数目, j表示第m个主题的总共网页数目。由于兴趣度的值的维持在0和1之间, 为了避免页面兴趣度值偏大, 所以的归一化处理, 得到归一化的主题兴趣度函数: 3 实验分析 本文选取浏览一周的新浪用户感兴趣网页作为处理数据, 利用K-means算法最终聚类成为5个主题并且包含其文本内容, 并随机选取每个主题10篇文章作为实验数据。然后采用dyna Trace AJAX Edition软件来得到用户的浏览行为和操作, 然后通过用户浏览行为采用前面介绍的方法获取用户对每个网页兴趣度, 从而得到每个主题兴趣度。一周后再通过对浏览这些网页的用户群进行统计调查, 让用户自己评价对每个主题的兴趣度, 将用户主观的评价结果与根据计算得到的网页兴趣度进行比较。 实验步骤: (1) 采用dyna Trace AJAX Edition软件获取用户浏览行为, 该软件是一个前端性能测试工具, 能够捕捉用户在某一站点下的浏览行为, 包括浏览的页面地址、鼠标的点击事件以及页面的驻留时间等。在本文中, 获取的是用户访问的网页链接、浏览时间、网页大小、保存和收藏页面操作。用户浏览行为的获取数据如图1所示。经整理后的用户浏览行为如图2所示。 (2) 利用Java程序计算用户兴趣度, 随机选取其中部分网页兴趣度经整理如表1所示。 图2包括本文前面提到所需的的浏览行为, 即用户浏览网页的字节数, 用户浏览网页的停留时间, 经计算得到的用户浏览网页的速度和用户浏览网页时保存和收藏页面的操作动作。 用户浏览轨迹算法分析与应用 篇3
用户浏览模式 篇4
用户浏览模式 篇5
用户浏览模式 篇6
从表1可以看出, 根据前面提到的兴趣度计算方法计算得到的用户兴趣度与用户自评的兴趣度值用绝对误差值来验证其合理和有效性, 绝对误差值控制在11%以内, 由此可以验证本文的用户兴趣度的计算方法是合理和有效的。
4 结束语
本文主要对用户的浏览行为进行了分析, 并在此基础上, 提出了一种基于网页浏览行为的用户兴趣度计算方法, 并结合了兴趣会随时间衰减的规律更新这个计算方法, 然后通过K-means算法将所浏览的网页内容聚类成主题, 然后获取主题兴趣度为后续的用户兴趣模型的构建提供了更好的基础。通过实验验证了这种计算方法的有效性。然而计算用户兴趣度只是建立用户兴趣模型的第一步, 如何使用合适的数据结构来存储用户兴趣, 并建立和更新兴趣模型将是下一步的研究内容。
摘要:用户兴趣度的计算是个性化服务的核心, 而用户浏览网页时的行为能反映用户的兴趣。文中着重分析保存页面、收藏页面以及网页浏览速度这三种网页浏览行为, 且在此基础上结合用户兴趣衰减因子, 提出一种新的基于网页浏览行为的用户兴趣的计算方法, 并利用K-means算法将浏览的网页内容聚类成不同主题, 最后基于这三种网页浏览行为和用户兴趣衰减因子计算用户主题兴趣度。实验结果表明, 提出的用户兴趣度计算方法是有效的。
用户浏览模式 篇7
引起HTTP-Get Flood攻击种类:
1) 页面刷新类攻击。频繁按F5键刷新网页会向服务器提交大量Get请求报文,导致HTTP服务器过载。这种攻击强度、攻击频率、持续时间长短因人而定。
2) 静态类型。这种攻击通过设定的程序自动执行,攻击参数可以设定。常有的攻击参数有目标IP地址、目标URL、攻击频率。
3) 动态类型。攻击者动态修改攻击参数,使攻击产生变化的效果。
1 相关研究
攻击者通过傀儡机或者多线程向目标Web发送大量的HTTP请求,这些请求可以随机生成,也可以通过拦截用户的正常请求序列后产生。从内容上看,攻击者对服务器的请求与合法用户的请求完全相同,基于数据包特征串检测很难发现到异常[1],而且特征串提取过程复杂,实时性不高。通过大量肉机向目标服务器发送海量分组的攻击并不是HTTP-Get Flood攻击的唯一手段,它可以通过低速的请求、动态变化的攻击参数隐藏自己,这样基于访问频率的检测[2]将无法可依。李敏提出用多分支的隐马尔科夫模型来分析Web页面访问行为[3],以区分正常数据和异常数据。这种检测方法对训练数据的纯洁度和数据量都要求很高,学习过程复杂,计算量十分庞大,况且数学估计本身就存在误差。通过分析Web服务器上的用户行为日志辨别异常[4]的方法缺乏主动性,不能从主干流量监控层面去实施。本文根据僵尸网络爆发的集中性,行为高度相似性等特点,提出了基于用户访问行为相似度鉴别异常的Web页面访问行为。
2 检测方法及其实现步骤
僵尸主机都是按照预定的程序运行,僵尸主机的行为在网络上的表现具有相似性,如果一组流量群体行为同步性以及聚类系数都在检测系统设定的阈值范围之内,且其目的服务器的可信度低,则认为此组流量是僵尸网络命令控制流量。无论是集中式还是分布式僵尸网络,同一僵尸网络中,僵尸主机之间具有相似的通信模式和行为特征,因此其网络流量具有较高的相似性,通过聚类技术搜索这种相似性,可以有效检测僵尸流量。僵尸网络控制发动的HTTP-Get Flood攻击时,攻击时间几乎吻合,访问Web页面的次序完全一致,持续的时间也高度相似。而用户对Web网页的访问行为在时空方面存在巨大差异,不同人访问Web页面的次序、点击Web网页的频率、在Web网页停留的时间都不相同。同一时间段内大量用户上述行为完全一致的情况很难发生,只能是僵尸主机操纵多台肉机进行群体攻击时肉机行为才能高度一致。正常人的反应时间一般都不超过0.1 s[5],当某个用户浏览行为切换得非常高时,也有可能是既定程序执行的操作。
2.1 HTTP-Get Flood攻击检测原理
Web网页的点击行为往往包含一个对主页的请求和若干个对网页内嵌对象的请求,用户点击产生的Get请求是对动态页面请求,动态的Web内容需要服务器执行脚本程序,也就是包含一次或多次的数据库查询,而内嵌的对象或静态页面是静态文件,由服务器直接响应的(动态页面的Get请求包的URL通常包含.asp,.jsp,.php,.asp,.net,.cgi等字符)。基于HTTP-Get Flood攻击就是对动态页面进行高频访问,让服务器应接不暇直至崩溃,而它对静态页面攻击几乎无效。动态页面Get请求包中的URL信息表示用户要浏览的资源地址,相邻两个动态Get请求间隔时间反应了用户在两个页面之间的切换时间。如图1所示,将动态页面Get请求包中的URL定义为不同的状态,以阿拉伯数字将每种状态进行编号,相同字符串的URL编号相同,相邻两个动态页面Get包的间隔时间T为跳转时间,公式P=(A-B)/T反应Web页面切换率(A与B为相邻状态)。
考虑到人的反应速度很少能达到0.1 s,T精确到小数点后一位。认为那些跳转时间小于0.1 s的切换是机器执行的动作,统一按0.1 s计算。不同用户流量页面的路径或许相同,但浏览停留时间却千差万别,即使一些人的浏览路径、转换时间高度相似,但同一时刻内多个用户浏览行为相似的概率是很小的,一定时间内P值相同的概率非常低。同一指令下被控肉机浏览页面的路径肯定是一样的,假设肉机同时收到攻击命令,排除线路拥塞等情况,攻击报文到达Web服务器的时间应该十分接近,时间偏差很少能超过0.1 s。这样受僵尸网络控制的肉机在同一时刻内的切换率P相等的概率非常之高。为了区别不同时刻的切换率,将P乘以第2个状态到来的时间S(精确到秒),这样公式Q=(A-B)×S/T就能唯一地表示S时刻内某个用户浏览行为,利用上述公式计算得到的Q值定义为行为活动值。即使多个用户同一时间段对Web服务器的访问路径相同,但浏览的时间不一定相同,而且切换时刻也不都相同,通过上述公式计算得到的行为活动值相等的概率非常低,而HTTP-Get Flood发送时浏览路径高度一致,切换时间几乎一样,发动攻击的时刻也会相同,通过上述公式计算的行为活动值相等的概率很高。某一时刻内多个行为活动值重复次数非常多,很可能Web服务器受到了HTTP-Get Flood 攻击。图2所示为某台受攻击Web服务器日志数据计算后时刻6内Q值分布情况,从图可知,时刻6内最黑点反应浏览行为高度重叠。
一段时间H内行为活动值Q的个数N反应这一时刻内切换行为总数。时间粒度H中去除重复Q值后剩下的个数记为M, K=N-M表示行为活动值相互重叠的个数。公式L=k/N反应时间粒度H内的重复率,这里将L定义为行为相似度,当行为相似度超过一定阈值时,认为此时刻内的浏览行为高度一致,疑似遭受到DDOS攻击。Web服务器的承受能力千差万别,很难有一个统一的标准。服务器在时间粒度内最多允许的访问量记为S,服务器最高允许同时访问的量为P,阈值一般要大于P/S,这样可以保证在某个时刻击瘫服务器。
2.2 HTTP-Get Flood行为相似度检测算法实现步骤
算法实现流程如图3所示。
1) 建立足够槽位的哈希表,每一个哈希节点表示一个Web服务器,以Web服务器的IP地址作为哈希节点键值。
2) 截获80,8080,43等HTTP业务数据的Get包,将动态页面Get数据包按目的IP地址映射到相应的哈希节点中,提取包中的URL信息、截获时间和源IP地址。利用基于状态机的变种AC算法[6]为URL编号,此编号即为状态号,按IP地址分类,将截获的信息存放到map结构体中。用公式Q=(A-B)×S/T计算源IP的行为活动值(如果IP中没有存放状态和时间信息,将新截获的信息存放其中),为Q值打上时刻标签。
3) 将同一个哈希节点中一定时间间隔内的N个Q值映射到hash_map计算频度。相同Q值被映射到同一个节点,这样hash_map的节点个数就是去掉重复后的Q值个数,记为M。用公式L=(N-M)/N计算行为相似度,超过阈值(V)判定这个时刻遭受攻击。
4) 将检测到的异常结果写入日志。
3 实验结果分析
3.1 实验数据选取
下载公开的Trace[7],该数据集包含了大约一个小时匿名的HTTP-Get Flood攻击数据。该攻击是控制多台肉机变换的请求Web服务器中的多个资源。以5 s为一个时间粒度检测行为相似度,根据经验阈值设定为40%。
3.2 实验结果
如图4所示为截取自Get Flood攻击频繁时期40 s内的行为相似度分布情况,从图中可知攻击不是持续不断的,而是一波波进行。图中横黑线为阈值线,黑点表示浏览行为相似度,超过阈值的点判断为疑似DDOS攻击。基于用户浏览行为相似性判断异常可以检测出那些攻击参数不断变化的HTTP-Get Flood。单位时间内某个IP多次访问同一个URL界定异常是不足的,因为僵尸主机可以通过控制多台主机同时对Web服务器发动短时攻击,而且控制指令指定的URL信息可以不断变化,统计得到某个IP访问同一个URL的次数或许达不到阈值。虽然单个IP浏览行为可以不断变化,但受同一指令控制的肉机在某个时刻内的浏览行为几乎是完全一致的,利用行为相似性分析HTTP-Get Flood 攻击更准确。图4高于阈值线的行为相似度点离散分布就是本算法对DDOS攻击的分布式特性免疫的伪证,表明本算法可以在分布式HTTP-Get Flood攻击中很好地揭示其发生的时间段。
4 总结
针对HTTP-Get Flood攻击检测,本文使用用户浏览行为相似度描述用户访问Web页面的特征。可以检测出改变参数的攻击,相比利用隐马尔科夫建模预测用户浏览行为,此方法更加简单,实时性更高。后期将重点研究如何追查攻击源和僵尸控制主机信息,从源头扼住异常行为。
参考文献
[1]WANG H N,ZHANG D L,SHIN K G.Detecting SYN flooding attacks[C]//Proc.the 21st Annual Joint Conf.IEEE Computer and Communi-cations Societies.[S.l.]:IEEE Press,2002:1530-1539.
[2]XIE Y,YU S Z.Anomaly detection based on Web users,browsing behav-iors[J].Journal of Software,2007,18(4):967-977.
[3] LI Ming.HTTP-Get flood attack detection method based on user access behavior[J].Journal of BeiHua University,2011,12(1):120-122.
[4]LI Ming.The Http-flood detection methods based on user browsing be-havior[J].Compter Safer,2010(2):61-63.
[5] YU Ge,YU Xiaocong,DONG Xiaomei,et al.Rapid detection technique for P2P-base botnets[J].Journal of Northeastern University,2010,31(12):1709-1712.
[6] CHENG Qilian,DOU Rongbin,LI Hongming,et al. On the speed barrier of human beings--firstly uncover the recipe of Jamaican athlete usain bolt,the creator of sprint world’s record[J].Journal of Jiangxi Normal University,2009,33(3):376-378.
软件设计模式浏览器的UML模型 篇8
关键词:软件设计模式浏览器,UML,用例模型,对象模型
自出现软件以来,软件质量就是一个永恒的话题。在软件开发方法的探索中,提出了很多种设计思想。面向对象软件方法的兴起,在很大程度上为提高软件质量和开发效率奠定了很好的基础。目前软件业广泛采用设计模式进行软件设计,因为它们与构建应用程序直接相关,为代码复用开辟了新的道路。Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides在参考文献1中第一次将设计模式提升到理论高度,对应用中的各种模式进行总结、筛选,并规范化,提出了23种基本设计模式,这些模式分析了在设计和构造应用程序时遇到的常见问题和解决方案。之后,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。参考文献2把模式分成体系模式、设计模式和代码模式三个层次,并提出了一些新的模式。
参考文献3特别强调了Design Patterns are Bad for Software Design,主要原因在于熟悉传统的结构化方法的设计人员过渡到面向对象方法存在很多困难,要应用软件设计模式更没有经验可言。同时,软件设计模式会随着学科经验的积累而不断更新,在对软件设计模式不熟悉的情况下套用软件设计模式会对设计的效率和重构潜力产生很坏的影响。
从国内外的研究来看,软件设计模式应该是变化的、不断成熟的理论,新的更好的软件设计模式会不断的产生,老的软件设计模式可能会过时。要从众多的软件设计模式中选择适合自己系统的模式显然是使用模式的瓶颈,特别是对软件设计模式并不熟练的人员。虽然使用软件设计模式不是目的,但它确实可以在很大程度上提高程序的重构能力。要应用设计模式,首先应该需要熟悉并深入理解这些模式,其次,需要一种有效的软件设计模式选择方法和工具。
有很多人在研究软件设计模式以及具体设计模式的应用,对软件设计模式的学习和选择来源于书籍,或者一些不可补充的电子参考,比如参考文献4,这对于不断发展的软件设计模式理论显然是不够的,迫切需要较为直观的软件设计模式学习和浏览的工具。这里希望找到一个有效并尽量完善的软件设计模式浏览器(SDPE,Software Design Pattern Explorer)模型,为软件开发者提供一个了解、比较、学习、选择软件设计模式的工具。
UML(Unified Modeling Language,统一建模语言)是一种面向对象建模语言,它采用可视化的方法对软件进行描述、可视化处理、构造和建立软件产品的相关文档,具有创建系统静态结构和动态行为等多种结构模型的能力,具有可扩展性和通用性,适合于多种多变结构系统的建模,便于迭代。是面向对象分析和设计的基本工具。
Rational Rose是Rational公司基于UML规范的可视化建模工具。Rose与Rational其他一系列的软件工程方面产品的集成度比较高,并且使用方便,提供从模型到代码的自动化,Rational Rose遂成为UML建模的首选。
本文采用UML规范,用Rational Rose 2003实现SDPE的功能建模和对象建模。
1 模式信息的组织
目前的软件设计模式主要有三个来源,一个是GOF提出的23种设计模式;一个是POSA中提出的模式;然后是一些没有系统化提出但是应用比较广泛的模式。从GOF和POSA对软件设计模式的描述来看,对众多的模式均采用多级分类进行组织。参考文献1中,根据目标准则,GOF把模式分成行为型、结构型、创建型三大类;根据范围准则,则分为类模式和对象模式,按照这两种依据的组合,可以分成六个小类。参考文献2中,把模式分成服务访问和配置模式、事件处理模式、同步模式、并发模式四大类。综合这些分类方法,选择采用三级树型结构进行组织,如图1。第一级为根,称为SoftwareDesignPattern。第二级为模式的来源,有GOF、POSA、Others等类别。第三级是具体的模式。模式的描述另外说明。这个结构应该是活动的,软件可以根据模式携带的信息主动构建这个结构,从而实现模式的动态更新。同一个模式对应多种语言的示例代码,独立于模式信息存储。
2 SDPE的功能模型
在SDPE中,用户使用最多的是模式浏览功能,由于对模式最直接的认识来源于模式的结构图,据此设计模式浏览的主体功能为结构图,同时可以选择显示模式的其它文字信息,通过示例代码分析模式的实现方法。用户初步选定某个模式之后,如果需要深入了解,可以导出该模式的模型、代码,并进行编辑。浏览的基础是对模式信息的存储,因此需要模式的管理功能。
根据以上分析,SDPE应该实现设计模式的管理功能,模式浏览打印功能,模型导出编辑功能,模式示例代码分析功能。从用户的角度看到希望得到的功能是SDPE的功能需求,表现为用例图。SDPE中的事务有:
1)用户要浏览软件设计模式信息,设计支持顺序浏览和选择浏览,并简洁信息和完整信息两个方案;
2)用户需要编辑模式信息,涉及加入新模式,修改现有模式,以及删除已有模式;
3)用户要深入了解或者引用某个模式的模型,这里涉及为模式的相关信息导出,可以导出文字信息,图形信息和Rose模型;
4)用户要使用某个模式,需要进行代码方面的研究,设计为模式代码编辑和导出。
SDPE是开放式软件,任何用户都可以直接操作SDPE实现所有的功能,归为同一类参与者;由SDPE导出的文件需要使用一些专门的软件打开,在这里归为被动参与者。由SDPE导出的模型使用Rational Rose编辑,Rational Rose属于被动参与者,同样RTF文件的浏览软件(如Microsoft Word)也是被动参与者。根据以上分析,SDPE的用例模型表示为图2。
模式浏览提供类似于Windows资源管理器的浏览界面,在界面控制上有所区别;模式管理用例由加入模式、修改模式、删除模式、代码编辑三个用例实现;模式引用由导出MDL模型、导出模式信息、代码编辑三个用例实现。模式浏览用例由完整浏览和简洁浏览两个用例实现。
3 SDPE的对象模型
对象模型描述系统类的数据元素和界面元素。在SDPE中,最核心的数据是模式信息,每个模式的信息均需要永久存储于磁盘,需要定义永久类Pattern和永久类Code。
根据GoF对模式的描述,每个模式本身需要用名称(Name)、意图(Intent)、别名(AlsoKnownAs)、动机(Motivation)、适用性(Applicability)、参与者(Participants)、协作(Collaborations)、效果(Consequence)、实现(Implementation)、已知应用(KnownUses)、相关模式(RelatedPatterns)、结构图(Structure)等十三个属性进行刻画,Pattern类的相关模式属性(Related Patterns)与Pattern类自身关联。为便于对模式信息进行分类组织,增加模式组、模式类型两个属性。
在SDPE运行期间,所有模式信息作为一个集合进行访问,每次访问一个模式的信息,可以定义为集合与记录的关系,由此定义一个模式管理器类PatternManager。其属性在Pattern类的基础上加入当前模式位置信息CPos。按同样的方式定义代码类Code和代码管理器类CodeManager。
PatternManager类的结构与永久类基本相同。Pattern类支持的操作定义为方法,从提高软件重构能力出发,为永久类Pattern定义方法SDPExport()实现结构图导出,定义ModelExport()方法实现Rose模型的导出,定义Pattern类的打印方法Print()实现模式信息的打印输出,定义Pattern类的多态显示方法Display()实现在人机界面的信息显示。
作为对系统功能的描述,根据上文的分析定义行为类Ex-plorerForm、MaintainForm和CodeEditForm。ExplorerForm类实现浏览,MaintainForm类实现模式管理。CodeEditForm类实现代码编辑。
根据以上分析,SDPE的对象模型定义如图3(由于Pattern类属性较多,没有一一画出)。从图3来看,PatternManager类和Pattern类之间是一对多的依赖关系。Pattern类通过RelatedPatterns/Name与自身关联,为一对多的反射关联关系。
4 SDPE中的模式思想
在设计中使用软件设计模式可以在很大程度上提高程序的重构能力,这里提出SDPE设计中的模式思想。
工厂模式,在实现软件设计模式浏览时,由模式信息的数据集合产生具体模式的信息,并且在任何时刻都只有一个模式存在。工厂模式一般采用单实例模式实现,单实例(Singleton)模式属于对象创建型模式,它保证一个类只有一个实例,图3中的Pattern由PatternManager实例化,Code由CodeManager实例化,每次只产生一个实例。
外观模式,使用ADO.NET对象连接数据库时用到了外观模式,只需要提供数据库文件路径就可以填充返回数据集合。并且,单实例通常也采用外观模式实现。
以上列举了几个软件设计模式应用的例子,模式之间不是完全独立的,在一个应用中,可能会同时用到多种设计模式。同样,同一个模式也会有多种形式,不应该拘泥于模式的某种结构。
5 结论
本文使用通用的UML面向对象建模语言对软件设计模式浏览器进行用例模型分析和对象模型分析,并采用集成化的OOCASE工具Rational Rose实现这些模型,探讨了SDPE中的软件设计模式思想。为软件设计模式的研究提供了一个实用的工具软件模型,具有现实意义。
参考文献
[1]Gamma E,Helm R,Johnson R,et al.设计模式:可复用面向对象的软件基础(双语版)[M].李英军,马晓星,蔡敏,等,译.北京:机械工业出版社,2007.
[2]Buschmann F,Meunier R.Pattern-Oriented Software Architecture,Volume1:A System of Patterns[M].Addison Wesley,1996.
[3]Sommerlad,Peter.Design Patterns are Bad for Software Design[J].Software IEEE,2007,24(4):68-71.
[4]国刚,周峰,孙更新.UML与Rational Rose2003软件工程统一建模原理与实践教程[M].北京:电子工业出版社,2007.
[5]刁成嘉.UML系统建模与分析设计[M].北京:机械工业出版社,2007.
[6]绍维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,南宁:广西科学技术出版社,2006.