一种基于Hadoop的用户偏好评估方法及系统与流程

文档序号:11519716阅读:440来源:国知局
一种基于Hadoop的用户偏好评估方法及系统与流程

本发明属于移动互联网技术领域,特别是用户应用偏好分析方法技术领域,涉及一种基于hadoop的用户偏好评估方法及系统。



背景技术:

在移动互联网盛行的今天,数据业务已然成为运营商营收的主要组成部分。智能手机的广泛普及,使得数据业务占比日益提升。不同的用户对手机应用的偏好程度是不同的,这决定了每个用户手机里的应用消耗的流量是不同的。在这种情况下,如果能够对用户的上网行为进行分析,就可以挖掘用户的上网习惯,这使得精确的应用、新闻、广告、购物等信息的推送成为可能,极大地提升用户体验。同时,也增加了运营商的收入来源,提高其数据业务的竞争壁垒。

然而,传统关系型数据库无法处理海量用户数据,传统用户偏好分析方法不能精准分析用户对应用的偏好,以致营销成功率低。现有的用户偏好评估方法及系统主要将用户信息存储在传统关系型数据库中,利用关系型数据库的计算能力生成用户偏好值,然后根据用户偏好开展营销活动。这种方法由于传统关系型数据库存储和计算能力的瓶颈,无法处理海量的用户上网信息,造成无法实时跟踪用户的上网偏好变化情况。

因此,目前急需一种精准高效的用户偏好评估方法。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于hadoop的用户偏好评估方法及系统,能够很好的解决传统用户偏好分析方法不能精准分析用户对应用的偏好,以致营销成功率低的问题。

为达到上述目的,本发明提供如下技术方案:

一种基于hadoop的用户偏好评估方法,该方法包括以下步骤:

s1:获取现网全量用户在某个统计时间段内的上网信息;进行数据清洗,过滤掉不符合要求的数据,包括检查数据一致性、处理无效值和缺失值;

s2:将本地统计的用户上网信息存储至hadoop平台的分布式文件存储系统hdfs上,同时基于用户偏好评估算法,利用mapreduce的海量数据计算能力实现用户偏好评估,生成用户偏好得分;

s3:在hive数据仓库中建立“用户-应用”偏好值数据表,并将步骤s2中得到的用户偏好得分导入数据表中,方便利用hive查询;

s4:根据用户上网信息和“用户-应用”偏好数据表,生成推荐应用列表和目标用户群,实现重点用户关注和同类应用推荐。

进一步,在步骤s1中,所述上网信息包含用户使用的应用名称,以及对于每款应用,统计一个月内用户的消耗流量、访问次数、使用时长,使用频率以及连续活跃天数;具体包括但不限于:在统计时段内,用户使用的应用名称,以及对于每款应用,统计消耗流量(flow)、访问次数(pv)、使用时长(timespan)、使用频率(freq)、连续活跃天数(active_days)信息,上述指标主要依靠用户上网日志信息、爬虫技术及dpi识别获取。

此外,通过将海量本地用户数据存储至分布式文件存储系统hdfs,能够提高数据存储效率以及便于后期利用mapreduce框架计算用户偏好。

进一步,在步骤s2中,所述的基于用户偏好评估算法,利用mapreduce的计算能力实现用户偏好评估,得出用户偏好得分,具体包括:

s21:对采集的数据变量进行标准化处理,得到index_flow、index_pv、index_timespan、index_freq、index_active_days,index表示经过标准化处理之后的变量,需要注意的是,flow、pv、timespan、freq、active_days均是针对统计时段内用户使用的某一款应用而言;

s22:求出五个变量:消耗流量、访问次数、使用时长、使用频率、连续活跃天数的最大值max、最小值min、标准差σ、平均值标准差系数v以及权重系数w;

s23:根据上述过程生成的标准化数据以及对应的权重系数,建立用户得分的偏好评估模型:

user_score=index_flow*w1+index_pv*w2+index_timespan*w3+

index_freq*w4+index_active_days*w5

每个用户都有一个对应的得分,这个分数基本反映了用户对于这款应用的偏好程度;

根据上述数据计算样本数据中全体用户偏好程度的标准得分,取之前统计的消耗流量、访问次数、使用时长、使用频率、连续活跃天数五个指标的均值:对这五个均值进行标准化处理,代入用户得分评价模型:

avg_score=index_avg_flow*w1+index_avg_pv*w2+index_avg_timespan*w3

+index_avg_freq*w4+index_avg_active_days*w5

标准得分avg_score反映了用户样本(比如:100万现网用户)在统计时段内对某款应用的平均偏好程度;

s24:对所有统计用户在统计时段内访问应用的次数pv从高到低进行排序,取中位数,对访问次数低于中位数的用户,将其访问次数置为0。这样做一方面便于将注意力集中在高频访问次数的用户;另一方面减少了毛刺数据,便于后续有效计算。

进一步,在步骤s4中,根据hive中的“用户-应用”偏好数据表,生成推荐应用列表和目标用户群,实现重点用户关注和同类应用推荐,具体包括:

对“用户-应用”偏好数据表中访问次数高于中位数的用户的偏好得分做降序排列,标记降序排列的序号(number=1,2,3,4,…);对于已经降序排列的用户,如果其用户得分高于标准得分,则说明该用户在统计时段内,对该应用的黏度已经超过了平均水平,可以标记为该应用的偏好用户,否则,不予标记为偏好用户;

其中,在标记的偏好用户中:

对于序号处于前1/6的偏好用户,定义为发烧用户;

对于序号处于前1/6到2/6之间的偏好用户,定义为强偏好用户;

对于序号处于前2/6到4/6之间的偏好用户,定义为一般偏好用户;

对于序号处于前4/6到6/6之间的偏好用户,定义为弱偏好用户;

计算分数时,如果有小数部分,一律向下取整。

本发明还提供了一种基于hadoop的用户偏好评估系统,该系统包括:本地用户数据采集模块、mapreduce计算模块(以下简称mr模块)、数据查询模块、应用推荐模块;

所述本地用户数据采集模块,用于获取用户使用的应用名称,以及对于每款应用,统计一个月内用户的消耗流量、访问次数、使用时长、使用频率以及连续活跃天数,然后进行数据清洗,包括检查数据一致性、处理无效值和缺失值,过滤掉不符合要求的数据;

所述mr模块,用于将本地统计的用户上网信息存储至hadoop平台的分布式文件存储系统hdfs上,同时基于用户偏好评估算法,利用mapreduce的海量数据计算能力实现用户偏好评估,生成用户偏好得分;

所述数据查询模块,用于在hive数据仓库中建立“用户-应用”偏好数据表,并将上一步得到的用户偏好得分导入数据表中,方便利用hive查询;

所述应用推荐模块,用于根据用户上网信息和“用户-应用”偏好数据表,生成推荐应用列表和目标用户群,实现重点用户关注和同类应用推荐。

本发明的有益效果在于:本发明提供的基于hadoop的用户偏好评估方法及系统,首先,获取现网全量用户的上网信息;其次,将本地用户上网信息存储至hdfs,同时基于用户偏好评估算法和mapreduce计算能力实现用户偏好评估,生成用户偏好得分;再次,将用户偏好得分导入hive数据仓库,方便海量用户偏好数据的查询;最后,根据用户上网信息和“用户-应用”之间的偏好关系,实现重点用户关注和同类应用推荐,帮助企业扩大经济效益的同时也提升了用户感知。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明一种基于hadoop的用户偏好评估方法实施例的流程示意图;

图2为本发明一种基于hadoop的用户偏好评估方法实施例的结构示意图;

图3为本发明一种基于hadoop的用户偏好评估方法实施例的应用推荐流程示意图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

本发明提供了一种基于hadoop的用户偏好评估方法,在该方法中,首先,获取现网全量用户的上网信息;其次,将本地用户上网信息存储至分布式文件存储系统hdfs,同时基于用户偏好评估算法和mapreduce计算能力实现用户偏好评估,生成用户偏好得分;再次,将用户偏好得分导入hive数据仓库,方便海量用户偏好数据的查询;最后,根据用户上网信息和“用户-应用”之间的偏好关系,实现重点用户关注和同类应用推荐。

图1为本发明一种基于hadoop的用户偏好评估方法实施例的流程示意图,如图所示,在本次推荐活动中,执行的流程如下:

步骤101中,获取现网用户在统计时段内的上网信息,包含:用户使用的应用名称,以及对于每款应用,统计消耗流量、访问次数、使用时长、使用频率以及连续活跃天数,然后进行数据清洗(包括检查数据一致性、处理无效值和缺失值),过滤掉不符合要求的数据;

本步骤101中,用户上网信息包含在统计时段内,用户使用的应用名称,以及对于每款应用,统计所耗流量(flow)、访问次数(pv)、使用时长(timespan)、使用频率(freq)、连续活跃天数(active_day),如表1所示,主要依靠用户上网日志信息、爬虫技术及dpi识别获取。

表1统计时段内应用使用情况的统计维度

步骤101中还需要检查以上数据源的一致性、处理无效值和缺失值,过滤掉不符合要求的数据,以便进行数据修正或重提取,从而保证数据源的有效性和正确性。

执行步骤101的目的是确定数据来源,尽可能地为本次推荐活动提供全面且有价值的数据。

步骤102中,将本地用户上网信息存储至hadoop平台的hdfs上,同时基于用户偏好评估算法,利用mapreduce的海量数据计算能力实现用户偏好评估,生成用户偏好得分;

步骤102中的本地用户上网信息是对步骤101中的采集数据进行预处理后生成的。

步骤102中提到的用户偏好评估算法基于mapreduce程序实现,算法实现思路如下:

首先,针对步骤101中得到的数据变量进行标准化处理,因为五个变量的量纲是不同的,不具有可比性,不能直接比较。在进行标准化处理之后,才可以参与运算。标准化处理的计算公式如下所述:

index_flow=(flow-flow_min)/(flow_max-flow_min)

index_pv=(pv-pv_min)/(pv_max-pv_min)

index_timespan=(timespan-timespan_min)/(timespan_max-timespan_min)

index_freq=(freq-freq_min)/(freq_max-freq_min)

index_active_day=(active_day-active_day_min)/(active_day_max-active_day_min)index表示经过标准化处理之后的变量,需要注意的是,flow、pv、timespan、freq、active_day均是针对统计时段内用户使用的某一款应用而言。

其次,根据步骤101中的数据可以求出五个指标(消耗流量、访问次数、使用时长、使用频率、连续活跃天数)的最大值max、最小值min、标准差σ、平均值标准差系数v以及权重系数w,具体信息如表2所示:

表2数据计算

其中,v'=v1+v2+v3+v4+v5。

再次,根据上述过程求出的标准化数据以及对应的权重系数,可以建立用户得分的偏好评估模型:

user_score=index_flow*w1+index_pv*w2+index_timespan*w3+

index_freq*w4+index_active_day*w5

每一个用户都有一个对应的得分,这个分数基本反映了用户对于这款应用的偏好程度。

此外,根据上述数据还可以计算样本数据中全体用户偏好程度的标准得分,取之前统计好的消耗流量、访问次数、使用时长、使用频率、连续活跃天数五个指标的均值:对这五个平均值进行标准化处理:

代入用户得分评价模型:

avg_score=index_avg_flow*w1+index_avg_pv*w2+index_avg_timespan*w3

+index_avg_freq*w4+index_avg_active_day*w5

标准得分avg_score反映了用户样本(比如:100万现网用户)在统计时段内对某款应用的平均偏好程度。

最后,对所有统计用户在统计时段内访问应用的次数(pv)从高到低进行排序,取中位数,对访问次数低于中位数的用户,将其访问次数置为0。这样做一方面便于将注意力集中在高访问次数的用户;另一方面减少了毛刺数据,便于后续有效计算。

步骤103中,在hive数据仓库中建立“用户-应用”偏好数据表,并将步骤102中得到的用户偏好得分导入数据表中,方便利用hive查询。

考虑到步骤102中将会产生的海量数据,为方便后续推荐活动可能涉及到的查询及其他操作,步骤103采用hive数据仓库的形式进行数据存储,首先,运用hql语句建立“用户-应用”偏好数据表,每一行对应用户的key值,用以区分不同的用户,每一列对应用户使用的应用名称,则数据表中的value值代表某个用户对应某款应用的偏好值;

其次,将步骤102中生成的用户得分写入步骤103中数据表的对应位置,直至数据表写入完毕为止。

步骤104中,根据用户上网信息和“用户-应用”偏好数据表,生成推荐应用列表和目标用户群,实现重点用户关注和同类应用推荐。

步骤104中,对步骤103的“用户-应用”偏好数据表中访问次数高于中位数的用户的偏好得分做降序排列,标记降序排列的序号(number=1,2,3,4,…)。对于已经降序排列的用户,如果其用户得分高于步骤102中计算得到的标准得分,则说明该用户在统计时段内,对该应用的黏度已经超过了平均水平,可以标记为该应用的偏好用户,否则,不予标记为偏好用户。

其中,在标记的偏好用户中:

对于序号处于前1/6的偏好用户,定义为发烧用户;

对于序号处于前1/6到2/6之间的偏好用户,定义为强偏好用户;

对于序号处于前2/6到4/6之间的偏好用户,定义为一般偏好用户;

对于序号处于前4/6到6/6之间的偏好用户,定义为弱偏好用户。

计算分数时,如果有小数部分,一律向下取整。

至此,完成图1所示的流程示意图的描述。

图2为本发明一种基于hadoop的用户偏好评估系统实施例的结构示意图,该系统包括本地用户数据采集模块201、mapreduce计算模块(mr模块)202、数据查询模块203以及应用推荐模块204。

其中所述本地用户数据采集模块201,用于获取现网用户在统计时间段内的上网信息,包含:用户使用的应用名称,以及对于每款应用,统计消耗流量、访问次数、使用时长、使用频率、连续活跃天数,然后进行数据清洗(包括检查数据一致性、处理无效值和缺失值),过滤掉不符合要求的数据;

所述mapreduce计算模块(mr模块)202,用于将本地用户上网信息存储至hadoop平台的hdfs上,同时基于用户偏好评估算法,利用mapreduce的海量数据计算能力实现用户偏好评估,生成用户偏好得分;

mr模块202的目的是基于mapreduce计算框架和用户偏好评估算法计算用户对于不同应用的偏好得分,算法思路如下:

首先,针对本地用户数据采集模块201中采集的数据变量进行标准化处理,得到index_flow、index_pv、index_timespan、index_freq、index_active_day,index表示经过标准化处理之后的变量,需要注意的是,flow、pv、timespan、

freq、active_day均是针对统计时段内用户使用的某一款应用而言。

其次,根据本地用户数据采集模块201中的数据可以求出五个指标(消耗流量、访问次数、使用时长、使用频率、连续活跃天数)的最大值max、最小值min、标准差σ、平均值标准差系数v以及权重系数w。

再次,根据上述过程求出的标准化数据以及对应的权重系数,可以建立用户得分的偏好评估模型:

user_score=index_flow*w1+index_pv*w2+index_timespan*w3+

index_freq*w4+index_active_day*w5

每个用户都有一个对应的得分,这个分数基本反映了用户对于这款应用的偏好程度。

此外,根据上述数据还可以计算样本数据中全体用户偏好程度的标准得分,取之前统计的消耗流量、访问次数、使用时长、使用频率、连续活跃天数五个指标的均值:对这五个均值进行标准化处理,代入用户得分评价模型:

avg_score=index_avg_flow*w1+index_avg_pv*w2+index_avg_timespan*w3

+index_avg_freq*w4+index_avg_active_day*w5

标准得分avg_score反映了用户样本(比如:100万现网用户)在统计时段内对某款应用的平均偏好程度。

最后,对所有统计用户在统计时段内访问应用的次数(pv)从高到低进行排序,取中位数,对访问次数低于中位数的用户,将其访问次数置为0。这样做一方面便于将注意力集中在高访问次数的用户;另一方面减少了毛刺数据,便于后续有效计算。

所述数据查询模块203,用于在hive数据仓库中建立“用户-应用”偏好数据表,并将步骤102中得到的用户偏好得分导入数据表中,方便利用hive查询。

所述应用推荐模块204,用于根据用户上网信息和“用户-应用”偏好数据表,生成推荐应用列表和目标用户群,实现重点用户关注和同类应用推荐。

至此,完成图2所示的系统结构示意图的描述。

图3为本发明一种基于hadoop的用户偏好评估方法实施例的应用推荐流程示意图。

步骤301中,对步骤103的“用户-应用”偏好数据表中访问次数高于中位数的用户的偏好得分做降序排列,标记降序排列的序号(number=1,2,3,4,…)。对于已经降序排列的用户,如果其用户得分高于步骤102中计算得到的标准得分,则说明该用户在统计时段内,对该应用的黏度已经超过了平均水平,可以标记为该应用的偏好用户,否则,不予标记为偏好用户。

其中,在标记的偏好用户中:

对于序号处于前1/6的偏好用户,定义为发烧用户;

对于序号处于前1/6到2/6之间的偏好用户,定义为强偏好用户;

对于序号处于前2/6到4/6之间的偏好用户,定义为一般偏好用户;

对于序号处于前4/6到6/6之间的偏好用户,定义为弱偏好用户。

计算分数时,如果有小数部分,一律向下取整。

步骤302中,根据用户上网信息和不同用户-应用之间的偏好关系,生成目标用户群和应用推荐列表,实现重点用户关注和同类应用推荐,具体营销方式结合业务需求而定,此处不予限制。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1