1.一种基于用户行为数据检测的新闻推荐方法,其特征在于,包括:
步骤1,对用户新闻点击行为数据进行转换,生成可处理的用户新闻点击行为数据集;
步骤2,过滤掉用户新闻点击行为数据集中的非频繁行为,使用频繁项集串行挖掘算法获取相对频繁项集,构建由用户新闻点击行为中的相对频繁项集形成的相对频繁项集树,找出最优频繁项集,计算用户新闻点击行为中最优频繁项集的完整支持度;
步骤3,对最优频繁项集进行遍历,根据完整支持度,生成用户新闻点击行为频繁项集相关的关联规则;
步骤4,根据关联规则向用户推荐与新闻点击历史行为具有强关联度的新闻。
2.根据权利要求1所述的方法,其特征在于,步骤1包括:
对用户新闻点击行为数据进行转换,按照在数据集中出现的顺序,转换为从1开始到N的整型数据;将用户点击数据按照用户分组整合在一起形成行存储数据,每个用户代表数据集中的一行;对所有用户的新闻点击行为数据进行处理生成可处理的用户新闻点击行为数据集T;其中所述用户新闻点击行为数据为用户点击网页行为形成的点击流数据,N为用户点击数据中不同的点击数据的数量。
3.根据权利要求1所述的方法,其特征在于,步骤2包括:
步骤201,用MapReduce编程模型中的Map操作将用户新闻点击行为数据集转换为为由单个项和计数量1构成的键值对;用Reduce操作将各个键值对整合在一起,得到每一个行为的支持度;根据经验设置最小支持度阈值,找出行为数据中支持度小于最小支持度阈值的非频繁行为,将所述非频繁行为删除;
步骤202,根据经验设置分区数,将过滤后的用户新闻点击行为数据集分为相应分区数的子数据集;在每一个子数据集上面运行频繁项集串行挖掘算法,找出针对每个子数据集的相对频繁项集;将所有相对频繁项集聚集在一起,相同的相对频繁项集的支持度相加在一起,形成聚合后的估计支持度;
步骤203,从具有最大项集长度的相对频繁项集开始,由其组成树的最高层,然后根据项数往下搜索该层项集的项数只相差一个的子集,由这些子集组成下一层,直至遍历完所有相对频繁项集,构建出相对频繁项集树;基于相对频繁项集树,从相对频繁项集的最高层开始,比对项集与其子集之间的价值;若子集的价值大于该项集,则将子集视为最优频繁项集,继续搜索该子集的子集中是否有价值更高的子集,迭代向下搜索,直到找到最优频繁项集;
步骤204,在每个用户新闻点击行为数据上搜索最优频繁项集,由搜索到的最优频繁项集构成项集和计数量1的键值对,将所有键值对聚合在一起,计算得到最优频繁项集的完整支持度。
4.根据权利要求1所述的方法,其特征在于,步骤2中所述使用频繁项集串行挖掘算法获取相对频繁项集包括:对于不同项数的频繁项集,设置运行分割值将频繁项集挖掘过程分割为两个挖掘过程;对于项数小于等于运行分割值的频繁项集,采用MapReduce编程模型操作来挖掘出相对频繁项集;对于项数小于等于运行分割值的频繁项集,采用Apriori关联分析算法并结合位图排序挖掘出相对频繁项集。
5.根据权利要求1所述的方法,其特征在于,步骤2中所述构建由用户新闻点击行为中的相对频繁项集形成的相对频繁项集树,找出最优频繁项集包括:将相对频繁项集RFIs按照项集的长度划分为不同的层,项集的长度越长,层次越高;从最高层的最大频繁项集开始,对每一层进行扫描,找出上层的子集,以此构建相对频繁项集树RFIs-tree;从最大频繁项集开始,过滤掉冗余的频繁项集,扫描每一个上层频繁项集X来计算其价值RFIV(X)和它最近的子集X_sub的价值RFIVsub(X_sub);将价值RFIV(X)和RFIVsub(X_sub)中距离数字1的距离更远的频繁项集确定为当前的更优频繁项集;如果上层频繁项集X为更优频繁项集,则与项集X的其他子集进行比较,如果下层的子集X_sub为更优频繁项集,则子集X_sub与其子集进行比较,迭代向下搜索,直到找到最优频繁项集;
其中频繁项集X的RFIV(X)与不同的RFIVsub相关,RFIV(X)的计算公式为:
子集X_sub的价值RFIVsub(X_sub)的计算公式为:
S={x|x=RFIV(X_subn),n∈{1,...,len(X_sub)}},
其中,eSup()指的是某一项集的估计支持度,即已获得的不完整的支持度,其中diff(X,X_sub)表示X和X_sub之间的差集,len(X_sub)表示X_sub的长度,RFIV(X_subn)为X_sub相对于其第n子集的RFIV,S为RFIV(X_subn)值的集合,avg()表示计算平均值。
6.一种基于用户行为数据检测的新闻推荐系统,其特征在于,包括:
用户行为预处理模块,用于对用户新闻点击行为数据进行转换,生成可处理的用户新闻点击行为数据集;
用户行为频繁项集提取模块,用于过滤掉用户新闻点击行为数据集中的非频繁行为,使用频繁项集串行挖掘算法获取相对频繁项集,构建由用户新闻点击行为中的相对频繁项集形成的相对频繁项集树,找出最优频繁项集,计算用户行为中最优频繁项集的完整支持度;
用户行为关联规则生成模块,用于对最优频繁项集进行遍历,根据完整支持度,生成用户新闻点击行为频繁项集相关的关联规则;
新闻推荐模块,用于根据关联规则向用户推荐与新闻点击历史行为具有强关联度的新闻。
7.根据权利要求6所述的系统,其特征在于,用户行为频繁项集提取模块具体用于:
用MapReduce编程模型中的Map操作将用户新闻点击行为数据集转换为为由单个项和计数量1构成的键值对;用Reduce操作将各个键值对整合在一起,得到每一个行为的支持度;根据经验设置最小支持度阈值,找出行为数据中支持度小于最小支持度阈值的非频繁行为,将所述非频繁行为删除;
根据经验设置分区数,将过滤后的用户新闻点击行为数据集分为相应分区数的子数据集;在每一个子数据集上面运行频繁项集串行挖掘算法,找出针对每个子数据集的相对频繁项集;将所有相对频繁项集聚集在一起,相同的相对频繁项集的支持度相加在一起,形成聚合后的估计支持度;
从具有最大项集长度的相对频繁项集开始,由其组成树的最高层,然后根据项数往下搜索该层项集的项数只相差一个的子集,由这些子集组成下一层,直至遍历完所有相对频繁项集,构建出相对频繁项集树;基于相对频繁项集树,从相对频繁项集的最高层开始,比对项集与其子集之间的价值;若子集的价值大于该项集,则将子集视为最优频繁项集,继续搜索该子集的子集中是否有价值更高的子集,迭代向下搜索,直到找到最优频繁项集;
在每个用户新闻点击行为数据上搜索最优频繁项集,由搜索到的最优频繁项集构成项集和计数量1的键值对,将所有键值对聚合在一起,计算得到最优频繁项集的完整支持度。
8.根据权利要求6所述的系统,其特征在于,用户行为频繁项集提取模块使用频繁项集串行挖掘算法获取相对频繁项集包括:对于不同项数的频繁项集,设置运行分割值将频繁项集挖掘过程分割为两个挖掘过程;对于项数小于等于运行分割值的频繁项集,采用MapReduce编程模型操作来挖掘出相对频繁项集;对于项数小于等于运行分割值的频繁项集,采用Apriori关联分析算法并结合位图排序挖掘出相对频繁项集。
9.根据权利要求6所述的系统,其特征在于,用户行为频繁项集提取模块构建由用户新闻点击行为中的相对频繁项集形成的相对频繁项集树,找出最优频繁项集包括:将相对频繁项集RFIs按照项集的长度划分为不同的层,项集的长度越长,层次越高;从最高层的最大频繁项集开始,对每一层进行扫描,找出上层的子集,以此构建相对频繁项集树RFIs-tree;从最大频繁项集开始,过滤掉冗余的频繁项集,扫描每一个上层频繁项集X来计算其价值RFIV(X)和它最近的子集X_sub的价值RFIVsub(X_sub);将价值RFIV(X)和RFIVsub(X_sub)中距离数字1的距离更远的频繁项集确定为当前的更优频繁项集;如果上层频繁项集X为更优频繁项集,则与项集X的其他子集进行比较,如果下层的子集X_sub为更优频繁项集,则子集X_sub与其子集进行比较,迭代向下搜索,直到找到最优频繁项集;
其中频繁项集X的RFIV(X)与不同的RFIVsub相关,RFIV(X)的计算公式为:
子集X_sub的价值RFIVsub(X_sub)的计算公式为:
S={x|x=RFIV(X_subn),n∈{1,...,len(X_sub)}},
其中,eSup()指的是某一项集的估计支持度,即已获得的不完整的支持度,其中diff(X,X_sub)表示X和X_sub之间的差集,len(X_sub)表示X_sub的长度,RFIV(X_subn)为X_sub相对于其第n子集的RFIV,S为RFIV(X_subn)值的集合,avg()表示计算平均值。
10.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至5任一所述的方法。