专利名称:一种Web活跃用户网站访问模式的在线挖掘方法
技术领域:
本发明涉及对网站活跃用户的鉴别分析和频繁访问模式的挖掘技术,特别是涉及一种Web活跃用户网站访问模式的在线挖掘方法。
背景技术:
随着互联网技术的发展,各种互联网应用不断涌现,网络用户持续增加。分析网络用户的行为模式、挖掘潜在用户已成为增加网站点击率,提高网站服务质量的新方法。Web挖掘技术被认为是一种分析、挖掘互联网潜在信息的有效方法。一般来说,Web挖掘可以分为Web内容挖掘,即自动地从Web上找出有用信息;Web使用挖掘,即从用户对网站的访问过程中发现用户的访问特点。采用Web使用挖掘技术,可从用户对网站的访问请求中,发现用户对网站的频繁访问模式。通过对频繁访问模式的分析,既可用于研究用户行为,为不同用户提供个性化服务;同时可以协助网站架构师更好地组织网站架构,提高用户对网站的访问率,方便用户对网站的访问。
目前已经存在一些对用户访问数据进行挖掘的技术,然而这些方法大都是在离线状态下运行。它们一般利用Web服务器记录的历史日志,将日志文件中的用户访问请求按照请求时间转化成时间序列,然后从转化后的请求序列中挖掘出频繁的子序列模式。虽然这些方法可以有效地挖掘出用户对网站的使用模式,然而它们存在以下几个问题1)由于使用的是用户的历史数据,分析的只是用户的历史行为,并不能实时地分析用户信息,因而无法准确地给出当前用户的行为模式;2)由于挖掘出来的是序列模式,只是给出了访问请求之间的时间先后关系,而并没有给出访问请求页面之间的逻辑关系,有些甚至没有使用网站的组织架构关系;3)这些方法一般考虑的是所有用户,而并没有有效地针对网站内的活跃用户,一般来说活跃用户的访问模式与普通用户常常表现得并不一致。
因而针对目前网站用户的使用特点,结合现有的数据挖掘技术,有必要提供一个专门针对网站活跃用户、在线挖掘用户访问模式、实时分析这类用户访问行为的方法。
发明内容
本发明的目的在于提供一种Web活跃用户网站访问模式的在线挖掘方法。
本发明解决其技术问题采用的技术方案是一种Web活跃用户网站访问模式的在线挖掘方法,其步骤如下 (1)会话产生器分析活跃用户的访问请求,包括页面分析、访问时间分析、访问用户信息分析,为不同用户在不同时间段对网站的访问产生相应的会话信息; (2)活跃用户实时鉴别器根据用户对网站的访问请求内容、请求时间、请求频率依据用户鉴别策略获得网站活跃用户; (3)会话树生成器根据网站的组织结构信息,将活跃用户的会话信息转化成相应的树形结构模型; (4)频繁会话树在线挖掘器从活跃用户的会话树中挖掘出每个用户对网站的频繁访问模式。
进一步地,所述步骤(1)中,去掉用户请求中的冗余信息,转化成访问三元组<访问者,访问时间,访问页面>,该三元组信息被记录到会话表中;根据当前访问与会话创建的时间间隔ΔT向活跃用户实时鉴别器发送用户访问信息;按照t+2t+...+2n-1t≤ΔT计算n值,其中t为事先给定的时间间隔,当前n值与前一次计算的n值发生变化时,向活跃用户实时鉴别器发送用户访问信息; 所述步骤(2)中,活跃用户依据访问频率来确定,给定预设阈值支持度s∈(0,1)和错误率参数ε∈(0,1),其中ε<<s,以及当前接收到的用户请求次数N,所有访问频率超过(s-ε)*N的用户被认定为活跃用户; 所述步骤(3)中,根据网站的组织结构信息,将用户会话中后面的请求关联且只关联到前面的某个请求,父子节点关系的形成依据访问请求在时间上的先后顺序;产生的会话树有三个特点第一,所有的会话树具有公共根节点;第二,所有的会话树中不存在标签相同的兄弟节点;第三,每个节点下的子节点有序; 所述步骤(4)中,频繁会话树的挖掘步骤如下 第一步,子树产生模块采用自下而上的方式为每棵会话树产生所有带根子树,产生步骤如下 (a)获得当前节点的所有子节点,产生所有子节点的带根子树,将每个子节点的所有带根子节点看作一个等价类EQ; (b)子节点所构造的EQ中选择子树,并将这些子树合并成新的以当前节点为根节点的子树;假定当节点下有k个子节点,第i个子节点对应的EQ中有ci个子树,则将产生∏(ci+1)个以当前节点为根的子树,其中i满足1≤i≤k; 第二步,将产生的带根子树插入到全局子树维护模块,全局子树维护模块以全局Trie树作为数据结构存储子树,子树以三元组(t,f,Δ)来存储其内容,其中t表示插入的子树,在全局Trie树中以字符串的形式表示;f表示该子树出现的次数,即频率;Δ值在子树第一次被插入Trie树时确定;全局子树维护模块包括如下两个部分 (a)子树的插入,在插入子树之前先将子树转化成字符串格式,然后以字符串形式插入到Trie树中,字符串采用前序遍历子树节点的方式产生;如果该子树已经在Trie树中存在,则将子树的对应的频率f加1;如果该子树不存在,则在全局Trie树中插入(t,1,
);其中N为到当前会话树个数,ε为出错参数ε∈(0,1),即每棵子树出现次数估计出错的比率; (b)非频繁子树的删除,根据ε可计算出滑动窗口大小为
如果当前的N正好是w的整数倍,则扫描所有子树;如果子树满足不等式t.f+t.Δ≤ε*N,那么就删除该子树; 第三步,产生当前频繁访问模式,发送频繁访问模式查询请求获得当前活跃用户对网站的频繁访问模式;给定最小支持度s∈(0,1)且ε<<s,扫描所有全局Trie树中的子树;所有满足t.f≥(s-ε)*N的子树被确认为频繁子树;并将产生的频繁子树依据网站的组织架构重新格式化返回给请求者。
本发明具有的有益效果是 根据目前网站用户的使用特点,结合现有的数据挖掘技术,快速有地挖掘出一组网站的活跃用户,针对这类用户,在线挖掘出用户对网站的频繁访问模式。网站提供商根据挖掘出的用户访问模式研究分析用户访问行为,即可为不同活跃用户指定并提供个性化服务;同时亦可协助网站架构师更好地组织网站架构,提高用户对网站的访问率。
图1是Web活跃用户网站访问模式在线挖掘方法的总体结构示意图。
图2是用户访问元组示意图。
图3是内存中用户会话信息的存储示意图。
图4是某时刻用户访问请求频率示意图。
图5是由用户会话信息转换成的会话树示意图。
图6是带根子树示意图。
图7是树的字符串形式示意图。
图8是全局Trie树数据结构示意图。
具体实施例方式 在对互联网用户进行行为分析中,采用本发明所提供的Web活跃用户网站访问模式在线挖掘方法,可以及时、快速、有效地挖掘出活跃用户对网站的访问模式,具体的实施步骤如下 1)会话产生器分析活跃用户的访问请求,为不同用户不同时间段对网站的访问产生相应的会话信息;具体过程如下 (a)将用户请求中的冗余信息去掉,转化成访问元组<访问者,访问时间,访问页面>,图2给出了用户的访问请求和转化后的访问元组;其中IP地址、请求方式POST、网站地址等都被删除; (b)判断用户访问是否已被记录到会话中,如果已被记录,添加新的访问元组到会话中;如果未被记录,启动新会话,将访问元组存储到新会话中,并将新会话存储到会话表中,图3给出了在内存中用户会话信息的存储结构;该结构用哈希表来表示,其中关键字为用户ID,项内容为用户的访问会话组;对于每个用户可存在多个会话信息,在每个会话信息中使用动态数组以请求访问时间序存储每条请求信息; (c)如果当前访问标志会话的开始,需要向活跃用户实时鉴别器发送用户请求信息,传送数据为用户ID;否则计算当前访问与会话创建的时间间隔ΔT,按照t+2t+...+2n-1t≤ΔT计算n值,如果当前的n值与前一次用户访问计算的n值不同,则向活跃用户实时鉴别器发送一次用户请求ID;假定会话创建时间为Ts,时间间隔t为200s,会话中的访问时间分别为Ts、Ts+100、Ts+200、Ts+300、Ts+400、Ts+500、Ts+600、Ts+700;则总共需要向活跃用户实时鉴别器发送3次用户请求,分别为Ts、Ts+200及Ts+600访问时; (d)定时从活跃用户实时鉴别器中获得一组活跃用户,根据活跃用户ID从会话表中获得活跃用户的会话信息; 2)活跃用户实时鉴别器根据用户对网站的访问请求内容、请求时间、请求频率用户鉴别策略获得网站活跃用户进行过滤,活跃用户鉴别模块采用数据结构DS来记录用户访问请求,集合DS中的每项用元组(uid,f)来表示,其中uid表示用户请求ID,f表示用户访问频率;给定预设阈值支持度s∈(0,1)和错误率参数ε∈(0,1),其中ε<<s,以及当前接收到的用户请求次数N,选择满足f≥(s-ε)*N的用户为活跃用户;用户所对应的访问频率采用如下计算方法 初始时,DS为空,且设置采样率为r,采样率为r表示在DS中记录新收到用户访问请求的概率为1/r;对每次接受收到的用户请求,如果该用户的uid已经存在DS中,则将uid对应的f加1,否则将根据采样率决定是否要将接收到的用户访问请求(uid,1)插入到DS集合中;为加快插入和查询过程DS使用哈希表来实现,其中关键字为uid;采样率的计算方式如下 设置n=ε-1log(s-1δ-1),其中s表示支持度s∈(0,1),ε表示估计出错范围参数ε∈(0,1),δ表示在ε范围内估计出错的概率δ∈(0,1);在采样过程中,前2n个元素的采样率为1,下面2n个为2,再接下来的4n个为4,下8n个为8,这样一直下去; 假定某个时刻DS集合中的数据如图4表示,其中冒号前面表示用户,后面表示当时用户的访问请求次数;假定当时已经有10000个用户请求,最小支持度s设为4%,ε为0.4%,则根据前面的活跃用户鉴定规则,请求数在10000*(4%-0.4%)=396以上的被认为是活跃用户,因此a、c、d、g、i、j被认为是活跃用户;若设置δ=1%,则根据计算公式n=ε-1log(s-1δ-1)可得出n为1956;即当用户请求数量达到1956时,进行一次频率修改;当用户请求数达到3912时,再次进行频率修改;通过0,1随机抉择方法修改元素频率,随机获得0或1两数之间的任意数;如果为1,则将频率减1,并且接着执行下一次修改频率方法,若频率减为0,则将元素从DS中删除;如果为0,结束频率修改过程; 3)会话树形结构生成器根据网站的组织结构信息,将用户的会话信息转化成相应的树形结构模型;图5给出了用户的会话信息及其转化后的会话树,会话树依据请求先后顺序和网站组织架构产生;其中根节点为网站的根路径,下面的子节点依据用户会话中不同时刻的请求产生,每个标签对应一个请求,用于标识节点在树中位置,在树构造过程中自动地对节点下的所有子节点标签进行排序;图5用A、B、C、D等标签来表示请求的URL,每个节点下的子节点是按照标签顺序进行排列,比如节点A下面的2个有序子节点B、D; 4)树形结构数据在线挖掘器从活跃用户的会话树中挖掘出每个用户对网站的频繁访问模式;具体过程如下 第一步,为每棵会话树产生所有带根子树,图6给出了以图5中节点A为根节点产生带根子树的过程;首先对于节点C由于没有子节点,故只有其自身作为节点C的带根子树;对于节点B,只有1个子节点,将有2棵以节点B为根的带根子树;同样可计算出节点D的带根子树;然后计算节点A的带根子树,由于其有2个子节点,分别由2棵和1棵带根子树,根据前面的计算公式,最终将产生(2+1)*(1+1)=6棵带根子树;在子树产生过程中,首先产生只有节点A自己的带根子树;然后将将节点A添加到子节点的所有带根子树上,生成3棵子树;最后对2个子节点对应的2个等价类作合并,产生2棵子树; 第二步,将产生的带根子树插入到全局子树维护模块,全局子树维护模块以全局Trie树作为数据结构存储子树;每棵子树以字符串的表现形式插入到全局Trie树中,图7给出了树的字符串表示方法,字符串以前序遍历方式产生,图7的子树可用字符串“A-1,B-2,C-3,D-2”来表示,对于节点“A-1”,其中A表示节点标签,1表示该节点在树中的层次;图8给出了全局Trie树的结构,方框内(5,2)表示子树“A-1,B-2,C-3,D-2”当前出现的次数为5,估计出错次数最大可达到2;假定s为50%,ε为1%,根据定义可计算出滑动窗口大小为
即每接受到每个用户产生100个会话时,就需要扫描所有子树,删除所有其中不可能成为频繁的子树,即t.f+t.Δ≤0.01*N的子树;若此时N为1000,通过计算对于子树“A-1,B-2,C-3,D-2”,由于满足非频繁子树删除规则5+2≤0.01*1000=10,因此需要删除该子树;根据频繁树的Apriori性质,即非频繁子树的超树也是非频繁的,可以删除所有子树“A-1,B-2,C-3,D-2”的超树;若此时请求者发送请求要求返回所有频繁子树,根据定义需要返回所有满足规则t.f≥(s-ε)*N的频繁子树;扫描所有子树,可以发现子树“A-1,B-2,C-3”不是频繁子树,由于该子树存在300<(0.5-0.01)*1000=490而不满足频繁子树规则;但子树“A-1,B-2”由于满足不等式500>(0.5-0.01)*1000=490,因此该子树被认为是频繁子树;最后将所有频繁子树的标签反向转化相应的请求URL,将挖掘出的活跃用户频繁访问模式输出给请求者。
权利要求
1、一种Web活跃用户网站访问模式的在线挖掘方法,其特征在于,该方法包括以下步骤
(1)分析活跃用户的访问请求,包括页面分析、访问时间分析、访问用户信息分析,产生不同用户在不同时间段对网站访问的会话信息。
(2)根据用户对网站的访问请求内容、请求时间、请求频率,依据用户鉴别策略,获得网站活跃用户。
(3)根据网站的组织结构信息,将活跃用户的会话信息转化成相应的树形结构模型。
(4)从活跃用户的会话树中产生带根子树,并从所生成的会话子树中实时挖掘出用户对网站的频繁访问模式。
2、根据权利要求1所述的Web活跃用户网站访问模式的在线挖掘方法,其特征在于所述步骤(1)中,去掉用户请求中的冗余信息,转化成访问三元组<访问者,访问时间,访问页面>,该三元组信息被记录到会话表中;根据当前访问与会话创建的时间间隔ΔT向活跃用户实时鉴别器发送用户访问信息;按照t+2t+...+2n-1t≤ΔT计算n值,其中t为事先给定的时间间隔,当前n值与前一次计算的n值发生变化时,向活跃用户实时鉴别器发送用户访问信息。
3、根据权利要求1所述的Web活跃用户网站访问模式的在线挖掘方法,其特征在于所述步骤(2)中,活跃用户依据访问频率确定,给定预设阈值支持度s∈(0,1)和错误率参数ε∈(0,1),其中ε<<s,以及当前接收到的用户请求次数N,所有访问频率超过(s-ε)*N的用户被认定为活跃用户。
4、根据权利要求1所述的Web活跃用户网站访问模式的在线挖掘方法,其特征在于所述步骤(3)中,根据网站的组织结构信息,将用户会话中后面的请求关联且只关联到前面的某个请求,父子节点关系的形成依据访问请求在时间上的先后顺序;产生的会话树有三个特点第一,所有的会话树具有公共根节点;第二,所有的会话树中不存在标签相同的兄弟节点;第三,每个节点下的子节点有序。
5、根据权利要求1所述的Web活跃用户网站访问模式的在线挖掘方法,其特征在于所述步骤(4)中,频繁会话树的挖掘步骤如下。
第一步,子树产生模块采用自下而上的方式为每棵会话树产生所有带根子树,产生步骤如下
(a)获得当前节点的所有子节点,产生所有子节点的带根子树,将每个子节点的所有带根子节点看作一个等价类EQ;
(b)从子节点所构造的EQ中选择子树,并将这些子树合并成新的以当前节点为根节点的子树;假定当节点下有k个子节点,第i个子节点对应的EQ中有ci个子树,则将产生∏(ci+1)个以当前节点为根的子树,其中i满足1≤i≤k;
第二步,将产生的带根子树插入到全局子树维护模块,全局子树维护模块以全局Trie树作为数据结构存储子树,子树以三元组(t,f,Δ)来存储其内容,其中t表示插入的子树,在全局Trie树中以字符串的形式表示;f表示该子树出现的次数,即频率;Δ值在子树第一次被插入Trie树时确定;全局子树维护模块包括如下两个部分
(a)子树的插入,在插入子树之前先将子树转化成字符串格式,然后以字符串形式插入到Trie树中,字符串采用前序遍历子树节点的方式产生;如果该子树已经在Trie树中存在,则将子树的对应的频率f加1;如果该子树不存在,则在全局Trie树中插入(t,1,
);其中N为到当前会话树个数,ε为出错参数ε∈(0,1),即每棵子树出现次数估计出错的比率;
(b)非频繁子树的删除,根据ε可计算出滑动窗口大小为
如果当前的N正好是w的整数倍,则扫描所有子树;如果子树满足不等式t.f+t.Δ≤ε*N,那么就删除该子树;
第三步,产生当前频繁访问模式,发送频繁访问模式查询请求获得当前活跃用户对网站的频繁访问模式;给定最小支持度s∈(0,1)且ε<<s,扫描所有全局Trie树中的子树;将所有满足t.f≥(s-ε)*N的子树确认为频繁子树;将产生的频繁子树依据网站的组织架构重新格式化返回给请求者。
全文摘要
本发明公开了一种Web活跃用户网站访问模式的在线挖掘方法。本发明采用在线实时鉴别活跃用户和实时挖掘用户访问模式的方法,获得活跃用户对网站的频繁访问模式。方法基于关联规则的频繁度模型,只需扫描一次用户请求数据即可实时鉴别活跃用户并提取活跃用户的会话信息。依据带根子树特点,采用自下而上的方式快速地从会话树中产生所有子树,并构造有效存储结构全局Trie树来维护产生的子树。算法在传统频繁模式挖掘方法基础上,有效结合滑动窗口模型,可以实时挖掘活跃用户对网站的频繁访问模式。本发明能够快速、实时地对网站活跃用户的访问模式进行分析和挖掘,是一种既高效又实用的用户行为模式分析方法。
文档编号G06F17/30GK101266610SQ20081006139
公开日2008年9月17日 申请日期2008年4月25日 优先权日2008年4月25日
发明者珂 陈, 刚 陈, 胡天磊, 寿黎但, 贝毅君 申请人:浙江大学