CN103995878B - 一种分布式个性化推荐方法及系统 - Google Patents

一种分布式个性化推荐方法及系统 Download PDF

Info

Publication number
CN103995878B
CN103995878B CN201410225857.3A CN201410225857A CN103995878B CN 103995878 B CN103995878 B CN 103995878B CN 201410225857 A CN201410225857 A CN 201410225857A CN 103995878 B CN103995878 B CN 103995878B
Authority
CN
China
Prior art keywords
scoring
project
user
mrow
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410225857.3A
Other languages
English (en)
Other versions
CN103995878A (zh
Inventor
王雷
况亚萍
夏磊
张成晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201410225857.3A priority Critical patent/CN103995878B/zh
Publication of CN103995878A publication Critical patent/CN103995878A/zh
Application granted granted Critical
Publication of CN103995878B publication Critical patent/CN103995878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Abstract

本发明公开了一种分布式个性化推荐方法及系统,其中,该方法包括:建立包含用户信息、该用户评分项目及对应评分值的评分集合;根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;根据所述预测评分值的大小向用户进行推荐。通过采用本发明公开的方法及系统,节约了网络传输资源和输入输出开销,提高了联结效率。

Description

一种分布式个性化推荐方法及系统
技术领域
本发明涉及分布式计算技术领域,尤其涉及一种分布式个性化推荐方法及系统。
背景技术
个性化推荐系统是一种根据用户的个人信息、兴趣特点、购买行为等,向用户个性化推荐感兴趣的信息或商品的系统。推荐系统有三个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。
Hadoop是一个开源项目,是一种针对大数据处理和分析的开源分布式计算平台,是一个完整的分布式软件架构。Hadoop由HDFS(分布式文件系统)、HBase(分布式开源数据库)、MapReduce(映射化简模型)、ZooKeeper(可靠性协调系统)等核心部分组成,分别负责分布式文件系统、分布式数据库系统、分布式并行计算模型和并发访问控制。
其中,Hadoop为一个分布式系统基础架构的名称。用户可以在不了解分布式底层细节的情况下,开发分布式程序,并且充分利用集群高速运算和存储的能力。具有高扩展性、高可靠性、高容错性、低成本等特点。
HDFS为Hadoop实现的一个分布式适合运行在通用硬件上的文件系统(英文全称,Hadoop Distributed File System,简称HDFS)。HDFS具有高容错性,提供高吞吐量的数据访问,适合那些有着超大规模数据集的应用程序。
HBase为一个分布式的、面向列的开源数据库。它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。具有高可靠性、高性能、面向列、可伸缩等特点。
MapReduce是谷歌提出的一个软件架构,是一种编程模型,用于大规模数据集(大于1TB)的并行运算。软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
Zookeeper是Hadoop的子项目。是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式服务、组服务等。Zookeeper的目标就是封装好复杂易出错的的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
当前的推荐系统主要集中在单一节点上,通过显式地收集用户反馈或者或隐式地分析行为记录,学习和跟踪用户的兴趣偏好和行为模式,主动向用户推荐那些可能感兴趣的商品。推荐算法是推荐系统的核心。常见推荐算法包括协同过滤推荐、基于内容推荐、基于关联规则推荐、基于效用推荐、基于知识推荐等。
在众多协同过滤算法中,Slope One以其极易实现、预测高效、准确度高等特点受到业界的青睐。Slope One算法是一系列应用于系统过滤的算法的统称,是一种系统过滤推荐的思想,是基于项目评价的系统过滤算法的最简洁形式。其本质是用简单的线性关系来拟合复杂的相似度计算。从直观上来看,共同出现次数更多的项目对对彼此评分的影响更大。因此有更通用的WSO(Weighted Slope-one轻量级Slope one算法)方法对评分差进行加权计算。
随着用户数据量的剧增,传统基于单一节点的集中式推荐系统显现出存储能力不足和计算能力不足的弊端,不能保证推荐的实时性,推荐效果也不明显。用户数据量剧增,Slope One算法缺点展现出来:(1)原Slope One算法时间、空间复杂度过高,单机无法存储中间文件;(2)计算代价过高,通常只能使用在小规模数据上。另一方面,在Slope One算法实现上,使用MapReduce在HDFS大规模数据集合上进行多次联结操作,这种多台服务器的联结包括Map侧(Map-side)和Reduce侧(Reduce-side)。Reduce侧的联结适用性高,但是开销大,Map侧联结速度快,适用性低。
发明内容
本发明的目的是提供一种分布式个性化推荐方法及系统,节约了网络传输资源和输入输出开销,提高了联结效率。
本发明的目的是通过以下技术方案实现的:
一种分布式个性化推荐方法,该方法包括:
建立包含用户信息、该用户评分项目及对应评分值的评分集合;
根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
根据所述预测评分值的大小向用户进行推荐。
一种分布式个性化推荐系统,该系统包括:
评分集合建立模块,用于建立包含用户信息、该用户评分项目及对应评分值的评分集合;
项目评分差信息计算写入模块,用于根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
未评分项目预测评分模块,用于利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
推荐模块,用于根据所述预测评分值的大小向用户进行推荐。
由上述本发明提供的技术方案可以看出,通过整合HBase、HDFS和MapReduce,实现了轻量级算法DWSO的分布式实现,由于把联结操作的一方设为HBase表,省略了传统联结过程中的Reduce操作的洗牌、排序阶段,节约了网络传输资源和输入输出开销,提高了联结效率;同时,由于采用HBase存储用户数据,本系统还提供实时交互和离线处理的功能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例一提供的一种分布式个性化推荐方法的流程图;
图2为本发明实施例一提供的一种联结MapReduce、HDFS和HBase的示意图;
图3为本发明实施例一提供的一种应用场景的示意图;
图4为本发明实施例二提供的一种分布式个性化推荐系统的示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
实施例一
图1为本发明实施例一提供的一种分布式个性化推荐方法的流程图。如图1所示,该方法主要包括如下步骤:
步骤11、建立包含用户信息、该用户评分项目及对应评分值的评分集合。
在此之前需获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
用户通过浏览互联网或使用客户端产生各种信息,例如,用户通过注册,会留下个人信息,包括性别,年龄,地区,职业,兴趣等;用户通过网购会产生购买商品的信息和对这些商品的评分信息;用户收听音乐会产生收听的音乐以及对音乐的评分等。对于用户的不同网络行为,用户会产生的信息类型也不同。
对获取到的上述信息进行分析后,可以建立一评分集合,以便后续随时调用。该评分集合可以使用辅助HBase表:t_taste表来进行存储。所述t_taste表可如表1所示:
表1t_taste表
步骤12、根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表。
具体的:将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差;聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
示例性的,用户A对项目1和项目2的评分分别为ra和rb,评分差为ra-rb。对于所有用户,项目1和项目2出现的次数即为权重。项目对就是项目1和项目2这样的一对出现的情况,简称为项目对。
本发明实施例中,Map函数通过一个两层循环操作获取每个项目对某一次出现的评分差,并记录该项目对共同出现的次数输出到Reduce(化简)。在Reduce中,聚合这个项目对所有的评分差和出现总次数,并计算评分差的算术平均值,最后写入项目对评分差表中。
本发明实施例中,项目对评分差表可以使用辅助HBase表:t_diff表来进行存储。所述t_diff表可如表2所示:
表2t_diff表
步骤13、利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值。
本步骤需要进行两次联结,如图2所示,具体包括:1)将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;其中,联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数;2)将第一次的联结结果与评分集合进行第二次联结;其中,联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
然后,再结合预测算法计算出用户未评分项目的预测评分值,其公式为:
其中,ru,i与ru,j分别表示用户u对未评分项目i的预测评分值及对已评分项目j的评分值,Iu表示该用户的评分集合,wi,j表示项目对评分差表中项目i与项目j组成的项目对出现的总次数,diffi,j表示第一次联结结果中该用户未评分项目与已评分项目的项目对评分差的算术平均值。
步骤14、根据所述预测评分值的大小向用户进行推荐。
本发明实施例中,可以根据预测评分值的大小采用常规的策略向用户推荐。示例性的,可以预先设定一个临界值,当预测评分值大于这个临界值时,则将对应的项目推荐给用户;否则,不推荐给用户;或者,对于不同的预测评分值进行分类,对于不同的类,可以选择在上午、中午或者晚上进行推荐等。
另一方面,为了便于理解,下面结合一个实际场景对本发明做进一步介绍。如图3所示,为一个包含3个用户及3个项目的实际应用场景,需要说明的是,此处给出用户与项目的实际数量,仅为便于举例说明;在实际应用中其数值可以根据需求进行设定。
首先,根据图3所示的信息可以构建一评分集合,可存储在t_taste表中。具体的如表3所示:
表3评分集合
然后,可以计算项目对评分差的算术平均值及同一项目对出现的总次数,并写入建的项目对评分差表中,可存储在t_diff表中。所述项目对评分差表如表4所示:
表4项目对评分差表
下面简述表4中第一列数值的计算过程:
1)项目1-项目2的评分差算术平均值:从图3或者表3中的信息可知,用户A与用户C涉及到项目1-项目2;对于用户A而言,项目1-项目2的评分差为:4-5=-1;对于用户B而言,项目1-项目2的评分差为:3-5=-2;项目1-项目2的评分差算术平均值则为:[-1+(-2)]/2=-1.5;同时,项目1-项目2总出现次数(权重)为2。
2)项目1-项目3的评分差算术平均值:从图3或者表3中的信息可知,用户A与用户B涉及到项目1-项目3;对于用户A而言,项目1-项目3的评分差为:2-5=-3;对于用户B而言,项目1-项目3的评分差为:3-4=-1;项目1-项目3的评分差算术平均值则为:[-3+(-1)]/2=-2;同时,项目1-项目3总出现次数(权重)为2。后续计算过程与此处计算类似,故不再赘述。
其次,进行两次联结。具体的:
1、将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目(待预测的用户-项目对)与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中。
本示例中,用户B包含未评分项目2,用户C包含未评分项目3,再集合表4进行第一次联结,获得第一联结结果,其具体过程如表5所示:
表5第一次联结
下面简述表5中具体含义:
1)未评分项目集合中的两个子集(B,2)与(C,3)分别表示用户B包含未评分项目2,用户C包含未评分项目3。
2)项目对评分差表中(1,{<2,-1.5,2>,<3,-2,2>})表示:项目1分别与项目2、项目3的评分差算术平均值及权重,即(项目1,{<项目2,评分差算术平均值-1.5,权重2>,<项目3,评分差算术平均值-2,权重2>}),之后的;(2,{<1,1.5,2>,<3,-2,1>})和(3,{<1,2,2>,<2,2,1>})所表示的含义类似,不再赘述。
3)第一次联结结果中(B,2{<1,1.5,2>,<3,-2,1>})表示:用户B的未评分项目2分别与项目1、项目3的评分差算术平均值及权重;即(用户B,未评分项目2{<项目1,评分差算术平均值1.5,权重2>,<项目3,评分差算术平均值-2,权重1>});(C,3{<1,2,2>,<2,2,1>})所表示的含义类似,不再赘述。
2、将第一次的联结结果与评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值,其具体过程如表6所示:
表6第二次联结并预测评分
下面简述表6中具体含义:
1)第一次联结结果中的含义在表5中已经详细介绍过了,不再赘述。
2)评分集合:可参见表3,其中A、B、C表示用户,尖括号“<>”中第一个数字表示项目,后一数字表述该项目的评分值。
3)第二次联结结果中,(B,2{<2.5,2>,<5,1>})中,B为用户B,2为未评分项目2;<2.5,2>中的2.5为用户B第一次联结结果中的该用户未评分项目2与已评分项目1的项目对评分差的算术平均值(1.5)和该用户评分集合中该项目对对应的已评分项目1的评分值(4)做减法运算的结果,即4-1.5=2.5;该场景中项目2与项目1组成的项目对出现次数为2;<5,1>表示的含义类似。同理,(C,3{<3,2>,<1,1>})表示类似的含义,不再赘述。
4)预测评分中,(B,2,3.33)中B为用户B,2为未评分项目2,3.33为预测评分。其计算公式如下:
其中,ru,i与ru,j分别表示用户u对未评分项目i的预测评分值及对已评分项目j的评分值,Iu表示该用户的评分集合,wi,j表示项目对评分差表中项目i与项目j组成的项目对出现的总次数,diffi,j表示第一次联结结果中该用户未评分项目与已评分项目的项目对评分差的算术平均值。
示例性的,计算用户B未评分项目2的预测评分:
(C,3,2.33)所表示的含义及计算方法类似,不再赘述。
当按照上述方式完成未评分项目的预测后,可结果写入用户-项目评分表中,具体的如表7所示:
表6用户-项目评分表
最后,根据一定策略将项目推荐给用户。例如设定一个临界值,预测评分大于这个值的商品推荐给用户,小于这个值的商品不推荐给用户;或者,对于不同的预测评分值进行分类,对于不同的类,可以选择在上午、中午或者晚上进行推荐。
本发明实施例通过整合HBase、HDFS和MapReduce,实现了轻量级算法DWSO的分布式实现,由于把联结操作的一方设为HBase表,省略了传统联结过程中的Reduce操作的洗牌、排序阶段,节约了网络传输资源和输入输出开销,提高了联结效率;同时,由于采用HBase存储用户数据,本系统还提供实时交互和离线处理的功能。
实施例二
图4为本发明实施例提供的一种分布式个性化推荐系统的示意图。如图4所示,该系统主要包括:
评分集合建立模块41,用于建立包含用户信息、该用户评分项目及对应评分值的评分集合;
项目评分差信息计算写入模块42,用于根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
未评分项目预测评分模块43,用于利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
推荐模块44,用于根据所述预测评分值的大小向用户进行推荐。
进一步的,该系统还可以包括:
信息获取模块45,用于在建立包含用户信息、该用户评分项目及对应评分值的评分集合之前获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
进一步的,所述项目评分差信息计算写入模块42还可以包括:
项目评分差信息计算模块421,用于将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差;聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
进一步的,所述未评分项目预测评分模块43还可以包括:
第一次联结模块431,用于将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;具体的:联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数;
第二次接连模块432,用于将第一次的联结结果与评分集合进行第二次联结;具体的:联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
进一步的,所述未评分项目预测评分模块43还可以包括:
预测模块433,用于结合预测算法计算出用户未评分项目的预测评分值包括:
其中,ru,i与ru,j分别表示用户u对未评分项目i的预测评分值及对已评分项目j的评分值,Iu表示该用户的评分集合,wi,j表示项目对评分差表中项目i与项目j组成的项目对出现的总次数,diffi,j表示第一次联结结果中该用户未评分项目与已评分项目的项目对评分差的算术平均值。
需要说明的是,上述系统中包含的各个功能模块所实现的功能的具体实现方式在前面的各个实施例中已经有详细描述,故在这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (8)

1.一种分布式个性化推荐方法,其特征在于,该方法包括:
建立包含用户信息、该用户评分项目及对应评分值的评分集合;
根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
根据所述预测评分值的大小向用户进行推荐;
其中,两次联结过程如下:将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;具体的:联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数;将第一次的联结结果与评分集合进行第二次联结;具体的:联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
2.根据权利要求1所述的方法,其特征在于,所述建立包含用户信息、该用户评分项目及对应评分值的评分集合之前包括:
获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
3.根据权利要求1所述的方法,其特征在于,所述计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数包括:
将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差;
聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
4.根据权利要求1所述的方法,其特征在于,所述结合预测算法计算出用户未评分项目的预测评分值包括:
<mrow> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>diff</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
其中,ru,i与ru,j分别表示用户u对未评分项目i的预测评分值及对已评分项目j的评分值,Iu表示该用户的评分集合,wi,j表示项目对评分差表中项目i与项目j组成的项目对出现的总次数,diffi,j表示第一次联结结果中该用户未评分项目与已评分项目的项目对评分差的算术平均值。
5.一种分布式个性化推荐系统,其特征在于,该系统包括:
评分集合建立模块,用于建立包含用户信息、该用户评分项目及对应评分值的评分集合;
项目评分差信息计算写入模块,用于根据该集合计算所有用户的所有项目对评分差的算术平均值及同一项目对出现的总次数,并写入预先构建的项目对评分差表;其中,所述评分集合与项目对评分差表均采用Hbase表来存储;
未评分项目预测评分模块,用于利用MapReduce映射化简模型将HDFS文件系统中存储的用户信息及其未评分项目的集合与所述项目对评分差表进行第一次联结,并将第一次联结结果存入HDFS中;再将所述第一次联结结果与所述评分集合进行第二次联结,并结合预测算法计算出用户未评分项目的预测评分值;
推荐模块,用于根据所述预测评分值的大小向用户进行推荐;
其中,未评分项目预测评分模块包括:
第一次联结模块,用于将每一用户及其未评分项目作为一个子集,聚合所有用户及其未评分项目;将所有用户及其未评分项目与所述项目对评分差表进行第一次联结并将第一次联结结果存入HDFS中;具体的:联结时以子集为单位进行联结,每一子集的联结结果中包含该用户信息、该用户未评分项目、该用户未评分项目与已评分项目的项目对评分差的算术平均值及其出现的总次数;
第二次联结模块,用于将第一次的联结结果与评分集合进行第二次联结;具体的:联结时以子集为单位进行联结,将第一次联结结果中的该用户未评分项目与已评分项目的项目对评分差的算术平均值和该用户评分集合中该项目对对应的已评分项目的评分值做减法运算,获得第二次联结结果的每一子集获得包含该用户信息、该用户未评分项目、减法运算结果及对应项目对出现总次数。
6.根据权利要求5所述的系统,其特征在于,该系统还包括:
信息获取模块,用于在建立包含用户信息、该用户评分项目及对应评分值的评分集合之前获取用户信息、该用户评分项目及对应评分值,以及该用户的未评分项目。
7.根据权利要求5所述的系统,其特征在于,所述项目评分差信息计算写入模块包括:
项目评分差信息计算模块,用于将所述评分集合中任一用户的任意两个已评分项目作为一个项目对,并计算项目对的评分差;聚合所有用户所有项目对的评分差及同一项目对出现的总次数,再计算项目对评分差的算术平均值。
8.根据权利要求5所述的系统,其特征在于,所述未评分项目预测评分模块还包括:
预测模块,用于结合预测算法计算出用户未评分项目的预测评分值包括:
<mrow> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>diff</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
其中,ru,i与ru,j分别表示用户u对未评分项目i的预测评分值及对已评分项目j的评分值,Iu表示该用户的评分集合,wi,j表示项目对评分差表中项目i与项目j组成的项目对出现的总次数,diffi,j表示第一次联结结果中该用户未评分项目与已评分项目的项目对评分差的算术平均值。
CN201410225857.3A 2014-05-23 2014-05-23 一种分布式个性化推荐方法及系统 Active CN103995878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410225857.3A CN103995878B (zh) 2014-05-23 2014-05-23 一种分布式个性化推荐方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410225857.3A CN103995878B (zh) 2014-05-23 2014-05-23 一种分布式个性化推荐方法及系统

Publications (2)

Publication Number Publication Date
CN103995878A CN103995878A (zh) 2014-08-20
CN103995878B true CN103995878B (zh) 2017-10-27

Family

ID=51310043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410225857.3A Active CN103995878B (zh) 2014-05-23 2014-05-23 一种分布式个性化推荐方法及系统

Country Status (1)

Country Link
CN (1) CN103995878B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572880B (zh) * 2014-12-22 2018-03-02 中国科学院信息工程研究所 基于用户的协同过滤的并行实现方法及系统
CN108090208A (zh) * 2017-12-29 2018-05-29 广东欧珀移动通信有限公司 融合数据处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541920A (zh) * 2010-12-24 2012-07-04 华东师范大学 联合基于用户和项目的协同过滤提高准确度的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842126B2 (en) * 2012-04-20 2017-12-12 Cloudera, Inc. Automatic repair of corrupt HBases

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541920A (zh) * 2010-12-24 2012-07-04 华东师范大学 联合基于用户和项目的协同过滤提高准确度的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于云计算的分布式推荐引擎算法研究》;刘源;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20140115(第01期);正文第6-42页 *

Also Published As

Publication number Publication date
CN103995878A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
CN110532479A (zh) 一种信息推荐方法、装置及设备
WO2021109464A1 (zh) 一种面向大规模用户的个性化教学资源推荐方法
CN105975440A (zh) 一种基于图计算模型的矩阵分解并行化方法
CN102298650B (zh) 一种海量数字信息的分布式推荐方法
CN104462383A (zh) 一种基于用户多种行为反馈的电影推荐方法
CN107391502A (zh) 时间间隔的数据查询方法、装置及索引构建方法、装置
CN112380453B (zh) 物品推荐方法、装置、存储介质及设备
CN109658210A (zh) 一种商品推荐方法、装置、设备以及存储介质
CN110197404A (zh) 可降低流行度偏差的个性化长尾商品推荐方法和系统
Cong Personalized recommendation of film and television culture based on an intelligent classification algorithm
CN105373546A (zh) 一种用于知识服务的信息处理方法及系统
Grolman et al. Utilizing transfer learning for in-domain collaborative filtering
CN103995878B (zh) 一种分布式个性化推荐方法及系统
CN107730306B (zh) 基于多维偏好模型的电影评分预测与偏好估计方法
Guo et al. Dynamic feature generation and selection on heterogeneous graph for music recommendation
Gandhi et al. Hybrid recommendation system with collaborative filtering and association rule mining using big data
CN104794237A (zh) 网页信息处理方法及装置
CN106202503B (zh) 数据处理方法及装置
Bhatnagar Data mining-based big data analytics: parameters and layered framework
CN104572880B (zh) 基于用户的协同过滤的并行实现方法及系统
Godahewa et al. SETAR-Tree: a novel and accurate tree algorithm for global time series forecasting
Wang et al. A Tri-Attention Neural Network Model-BasedRecommendation
Hameed et al. Business intelligence: Self adapting and prioritizing database algorithm for providing big data insight in domain knowledge and processing of volume based instructions based on scheduled and contextual shifting of data
Wang et al. The research of recommendation system based on Hadoop cloud platform
CN106484747A (zh) 一种基于交互事件的网页项目推荐方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant