一种分布式个性化推荐方法及系统的制作方法

文档序号:6547672阅读:147来源:国知局
一种分布式个性化推荐方法及系统的制作方法
【专利摘要】本发明公开了一种分布式个性化推荐方法及系统,其中,该方法包括:建立包含用户信息、该用户评分项目及对应评分值的评分集合;根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;根据所述预测评分值的大小向用户进行推荐。通过采用本发明公开的方法及系统,节约了网络传输资源和输入输出开销,提高了联结效率。
【专利说明】一种分布式个性化推荐方法及系统
【技术领域】
[0001]本发明涉及分布式计算【技术领域】,尤其涉及一种分布式个性化推荐方法及系统。【背景技术】
[0002]个性化推荐系统是一种根据用户的个人信息、兴趣特点、购买行为等,向用户个性化推荐感兴趣的信息或商品的系统。推荐系统有三个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。
[0003]Hadoop是一个开源项目,是一种针对大数据处理和分析的开源分布式计算平台,是一个完整的分布式软件架构。Hadoop由HDFS (分布式文件系统)、HBase (分布式开源数据库)、MapReduce (映射化简模型)、ZooKeeper (可靠性协调系统)等核心部分组成,分别负责分布式文件系统、分布式数据库系统、分布式并行计算模型和并发访问控制。
[0004]其中,Hadoop为一个分布式系统基础架构的名称。用户可以在不了解分布式底层细节的情况下,开发分布式程序,并且充分利用集群高速运算和存储的能力。具有高扩展性、高可靠性、高容错性、低成本等特点。
[0005]HDFS为Hadoop实现的一个分布式适合运行在通用硬件上的文件系统(英文全称,Hadoop Distributed File System,简称HDFS)。HDFS具有高容错性,提供高吞吐量的数据访问,适合那些有着超大规模数据集的应用程序。
[0006]HBase为一个分布式的、面向列的开源数据库。它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。具有高可靠性、高性能、面向列、可伸缩等特点。
[0007]MapReduce是谷歌提出的一个软件架构,是一种编程模型,用于大规模数据集(大于1TB)的并行运算。软件实现是指定一个Map (映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce (化简)函数,用来保证所有映射的键值对中的每一个共孚相同的键组。
[0008]Zookeeper是Hadoop的子项目。是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式服务、组服务等。Zookeeper的目标就是封装好复杂易出错的的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
[0009]当前的推荐系统主要集中在单一节点上,通过显式地收集用户反馈或者或隐式地分析行为记录,学习和跟踪用户的兴趣偏好和行为模式,主动向用户推荐那些可能感兴趣的商品。推荐算法是推荐系统的核心。常见推荐算法包括协同过滤推荐、基于内容推荐、基于关联规则推荐、基于效用推荐、基于知识推荐等。
[0010]在众多协同过滤算法中,Slope One以其极易实现、预测高效、准确度高等特点受到业界的青睐。Slope One算法是一系列应用于系统过滤的算法的统称,是一种系统过滤推荐的思想,是基于项目评价的系统过滤算法的最简洁形式。其本质是用简单的线性关系来拟合复杂的相似度计算。从直观上来看,共同出现次数更多的项目对对彼此评分的影响更大。因此有更通用的WSO(Weighted slope-one轻量级Slope one算法)方法对评分差进行加权计算。
[0011]随着用户数据量的剧增,传统基于单一节点的集中式推荐系统显现出存储能力不足和计算能力不足的弊端,不能保证推荐的实时性,推荐效果也不明显。用户数据量剧增,Slope One算法缺点展现出来:(I)原Slope One算法时间、空间复杂度过高,单机无法存储中间文件;(2)计算代价过高,通常只能使用在小规模数据上。另一方面,在Slope One算法实现上,使用MapReduce在HDFS大规模数据集合上进行多次联结操作,这种多台服务器的联结包括Map侧(Map-side)和Reduce侧(Reduce_side)。Reduce侧的联结适用性高,但是开销大,Map侧联结速度快,适用性低。

【发明内容】

[0012]本发明的目的是提供一种分布式个性化推荐方法及系统,节约了网络传输资源和输入输出开销,提高了联结效率。
[0013]本发明的目的是通过以下技术方案实现的:
[0014]—种分布式个性化推荐方法,该方法包括:
[0015]建立包含用户信息、该用户评分项目及对应评分值的评分集合;
[0016]根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
[0017]利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
[0018]根据所述预测评分值的大小向用户进行推荐。
[0019]—种分布式个性化推荐系统,该系统包括:
[0020]评分集合建立模块,用于建立包含用户信息、该用户评分项目及对应评分值的评分集合;
[0021]项目评分差信息计算写入模块,用于根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
[0022]未评分项目预测评分模块,用于利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
[0023]推荐模块,用于根据所述预测评分值的大小向用户进行推荐。
[0024]由上述本发明提供的技术方案可以看出,通过整合HBase、HDFS和MapReduce,实现了轻量级算法DWSO的分布式实现,由于把联结操作的一方设为HBase表,省略了传统联结过程中的Reduce操作的洗牌、排序阶段,节约了网络传输资源和输入输出开销,提高了联结效率;同时,由于采用HBase存储用户数据,本系统还提供实时交互和离线处理的功倉泛。
【专利附图】

【附图说明】
[0025]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0026]图1为本发明实施例一提供的一种分布式个性化推荐方法的流程图;
[0027]图2为本发明实施例一提供的一种联结MapReduce、HDFS和HBase的示意图;
[0028]图3为本发明实施例一提供的一种应用场景的示意图;
[0029]图4为本发明实施例二提供的一种分布式个性化推荐系统的示意图。
【具体实施方式】
[0030]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0031]实施例一
[0032]图1为本发明实施例一提供的一种分布式个性化推荐方法的流程图。如图1所示,该方法主要包括如下步骤:
[0033]步骤11、建立包含用户信息、该用户评分项目及对应评分值的评分集合。
[0034]在此之前需获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
[0035]用户通过浏览互联网或使用客户端产生各种信息,例如,用户通过注册,会留下个人信息,包括性别,年龄,地区,职业,兴趣等;用户通过网购会产生购买商品的信息和对这些商品的评分信息;用户收听音乐会产生收听的音乐以及对音乐的评分等。对于用户的不同网络行为,用户会产生的信息类型也不同。
[0036]对获取到的上述信息进行分析后,可以建立一评分集合,以便后续随时调用。该评分集合可以使用辅助HBase表:t_taste表来进行存储。所述t_taste表可如表1所示:
【权利要求】
1.一种分布式个性化推荐方法,其特征在于,该方法包括: 建立包含用户信息、该用户评分项目及对应评分值的评分集合; 根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储; 利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值; 根据所述预测评分值的大小向用户进行推荐。
2.根据权利要求1所述的方法,其特征在于,所述建立包含用户信息、该用户评分项目及对应评分值的评分集合之前包括: 获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
3.根据权利要求1所述的方法,其特征在于,所述计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数包括: 将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差; 聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
4.根据权利要求1或2所述的方法,其特征在于,所述利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结包括: 将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目; 将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;具体的:联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数; 将第一次的联结结果与评分集合进行第二次联结;具体的:联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
5.根据权利要求4所述的方法,其特征在于,所述结合预测算法计算出用户未评分项目的预测评分值包括:
6.一种分布式个性化推荐系统,其特征在于,该系统包括: 评分集合建立模块,用于建立包含用户信息、该用户评分项目及对应评分值的评分集合; 项目评分差信息计算写入模块,用于根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储; 未评分项目预测评分模块,用于利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值; 推荐模块,用于根据所述预测评分值的大小向用户进行推荐。
7.根据权利要求6所述的系统,其特征在于,该系统还包括: 信息获取模块, 用于在建立包含用户信息、该用户评分项目及对应评分值的评分集合之前获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
8.根据权利要求6所述的系统,其特征在于,所述项目评分差信息计算写入模块包括: 项目评分差信息计算模块,用于将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差;聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
9.根据权利要求6或7所述的系统,其特征在于,未评分项目预测评分模块包括: 第一次联结模块,用于将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;具体的:联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数; 第二次联结模块,用于将第一次的联结结果与评分集合进行第二次联结;具体的:联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
10.根据权利要求9所述的方法,其特征在于,所述未评分项目预测评分模块还包括: 预测模块,用于结合预测算法计算出用户未评分项目的预测评分值包括:
【文档编号】G06F17/30GK103995878SQ201410225857
【公开日】2014年8月20日 申请日期:2014年5月23日 优先权日:2014年5月23日
【发明者】王雷, 况亚萍, 夏磊, 张成晨 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1