一种基于hadoop的改进的物品推荐方法

文档序号:6519018阅读:875来源:国知局
一种基于hadoop的改进的物品推荐方法
【专利摘要】本发明公开了一种基于hadoop的改进的物品推荐方法,包括如下步骤:将数据存储到分布式数据存储环境中;从用户-物品矩阵中抽取物品集;通过mapreduce利用改进的聚类方法对物品集进行聚类;计算类别内的物品相似度,存储在哈希表中;利用所得到的物品相似度,进行物品推荐。本发明解决在处理海量数据时运行速度和推荐精度的问题。
【专利说明】一种基于hadoop的改进的物品推荐方法
【技术领域】
[0001]本发明涉及一种基于hadoop的改进的物品推荐方法。
【背景技术】
[0002]协同过滤是一个非常成功的构建推荐系统的方法。通过一系列具有相同的体验或者偏好的用户群体的经历来为特定用户进行推荐。每一个个体对于推荐的结果给予一定的回应和评判,这些反馈结果同样也被拿来用到对于其他用户的咨询筛选过程中。通过对特定用户进行系统的评估和推测,协同过滤系统可以对这些用户进行适合的推荐。这一思路和方法广泛的运用于电子商务,数据分析,远景预测等各个领域,并取得了很有成效的商业效果。无论是亚马逊脸谱,还是淘宝豆瓣,在各个领域,我们都可以看到其广泛的应用场景。因此,如何更有效更直接快速的进行推荐和预测,成为了一个很热门且很值得研究的问题。准确且快速的推荐,可以给予用户更好的行为体验,从而在各个方面提高一些商业网站的利润及利益。但是随着用户的增多,数据量的增大,如何达到快速和准确的目标,目前的协同过滤算法仍需要在各方面进行自身的改进和优化。
[0003]针对数据量增大的问题,传统的协同过滤推荐方法可以对物品进行聚类,以此缩小推荐过程中的计算量。但是传统的聚类方法可能会需要大量的迭代次数,从而使得整体的运行时间非常的长,因此一般情况下只是适用于较小的数据集。如果其用来处理海量数据,可能会导致内存泄露等问题。
[0004]另一方面,协同过滤算法中利用用户-物品矩阵中的频度进行相似度计算,难以准确的反映出物品的相似程度。而基于物品属性特征的相似度计算可以准确的反应物品的行为,但是欠缺用户行为对它进行的修正。所以对于基于协同过滤的推荐系统,需要一种改进方法,更加准确的结合物品各方面的特征,从而得出更加准确的推荐结果。

【发明内容】

[0005]发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种基于hadoop的改进的物品推荐方法,解决在处理海量数据时运行速度和推荐精度的问题。
[0006]技术方案:为实现上述发明目的,本发明米用的技术方案为一种基于hadoop的改进的物品推荐方法,包括如下步骤:
(1)将数据存储到分布式数据存储环境中;
(2)从用户-物品矩阵中抽取物品集;
(3)通过mapreduce利用改进的聚类方法对物品集进行聚类;
(4)计算类别内的物品相似度,存储在哈希表中;
(5 )利用所得到的物品相似度,进行物品推荐。
[0007]所述数据跟“用户-物品矩阵”可以视为相同概念,一个数据即为用户-物品矩阵中的一个值。
[0008]进一步的,所述步骤(3)中,用map函数计算每个物品到所有聚类中心的距离,用reduce函数计算所有聚类中心的修正值,直到聚类中心保持不变,完成迭代。
[0009]进一步的,迭代过程具体为:
1)选择k个类的初始中心;
2)在Hadoop平台各个节点的Mapper端计算每个数据对象到所有初始中心的距离;
3)在所述Mapper端选择距离最小的中心点,将局部数据发送到Hadoop平台各个节点的 Combiner 端;
4)在所述Combiner端把属于同一中心点的数据对象集合在一起,计算属于同一中心点的数据对象的和,将所有同一聚类的局部数据发送到Hadoop平台各个节点的Reducer端;
5)在所述Reducer端汇总所有聚类的局部数据,计算所有聚类的新中心;
6)重复执行步骤2)至5),直到对于所有的k个聚类中心保持不变,则迭代结束,得到聚类结果,否则继续迭代。
[0010]进一步的,所述步骤(3)和(4)中,距离和物品相似度均采用一种基于内容的配对相似度(COS: Coup led S imi I ar i ty ),其计算方法为在对物品的每个属性计算属性内相似度和属性间相似度两个相似度后相乘,再累加所有属性上的相似度。其中,属性内相似度,即对于不同物品的同一属性计算相似度,表示了属性不同值之间的共现程度;属性间相似度,是对于某一属性不同值之间的相似度,由与该属性同时出现的其他属性的不同值的相似度来度量,即对于多属性的物品,表示了属性之间的共现程度。为简单起见作出如下说明:对于用N个属性描述的物品,两个物品越是相似,则会有越多的属性取相同值,这就是属性内相似,相似度的取值趋向于1,即完全相同;而对于一个属性两个物品出现的不同取值,两个物品越是相似,则说明在其他属性上就有越多取相同属性的取值,则可以认为这个有不同取值的属性的两个取值也具有一定的相似度,否则取值趋向于无关,即趋向于O。
[0011]进一步的,所述步骤(5)中的物品推荐,可以选用传统的item-based的(基于物品的)协同过滤算法,将物品相似度替换为前述的配对相似度(COS)。
[0012]有益效果:本发明通过mapreduce进行的并行化和聚类,减少同样数据规模下系统运行的时间,提高运算效率;通过改进的相似度计算方法,更加准确的描述的物品之间的联系,得到了更好的推荐效果。
【专利附图】

【附图说明】
[0013]图1为本发明方法的流程图。
【具体实施方式】
[0014]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0015]如图1所示,下面详细说明本发明方法的步骤:
步骤1,将数据存储到分布式数据存储环境中;
步骤2,从用户-物品矩阵中抽取中物品集,将物品转化成向量形式,向量内容为该物品的所有属性特征;步骤3,通过mapreduce利用改进的聚类方法(CK_modes)对物品集进行聚类,其具体步骤为:
迭代过程具体为:
(3.1)选择k个类的初始中心;
(3.2)在Hadoop平台各个节点的Mapper端计算每个数据对象到所有初始中心的距
离;
(3.3)在所述Mapper端选择距离最小的中心点,将局部数据发送到Hadoop平台各个节点的Combiner端;
(3.4)在所述Combiner端把属于同一中心点的数据对象集合在一起,计算属于同一中心点的数据对象的和,将所有同一聚类的局部数据发送到Hadoop平台各个节点的Reducer端;
(3.5)在所述Reducer端汇总所有聚类的局部数据,计算所有聚类的新中心;
(3.6)重复执行步骤(3.2)至(3.5),直到对于所有的k个聚类中心保持不变,则迭代结束,得到聚类结果,否则继续迭代。
[0016]其中距离由COS得出,计算公式如下:
【权利要求】
1.一种基于hadoop的改进的物品推荐方法,包括如下步骤: (1)将数据存储到分布式数据存储环境中; (2)从用户-物品矩阵中抽取物品集; (3)通过mapreduce利用改进的聚类方法对物品集进行聚类; (4)计算类别内的物品相似度,存储在哈希表中; (5 )利用所得到的物品相似度,进行物品推荐。
2.根据权利要求1所述一种基于hadoop的改进的物品推荐方法,其特征在于:所述步骤(3)中的聚类过程,用map函数计算每个物品到所有聚类中心的距离,用reduce函数计算所有聚类中心的修正值,直到聚类中心保持不变,完成迭代。
3.根据权利要求2所述一种基于hadoop的改进的物品推荐方法,其特征在于:所述步骤(3)和(4)中,距离和物品相似度均采用一种基于内容的配对相似度,其计算方法为在对物品的每个属性计算属性内相似度和属性间相似度两个相似度后相乘,再累加所有属性上的相似度。
4.根据权利要求2所述一种基于hadoop的改进的物品推荐方法,其特征在于:所述迭代包括如下步骤: 1)选择k个类的初始中心; 2)在Hadoop平台各个节点的Mapper端计算每个数据对象到所有初始中心的距离; 3)在所述Mapper端选择距离最小的中心点,将局部数据发送到Hadoop平台各个节点的 Combiner 端; 4)在所述Combiner端把属于同一中心点的数据对象集合在一起,计算属于同一中心点的数据对象的和,将所有同一聚类的局部数据发送到Hadoop平台各个节点的Reducer端; 5)在所述Reducer端汇总所有聚类的局部数据,计算所有聚类的新中心; 6)重复执行步骤2)至5),直到对于所有的k个聚类中心保持不变,则迭代结束,得到聚类结果,否则继续迭代。
【文档编号】G06F17/30GK103605718SQ201310568662
【公开日】2014年2月26日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】高阳, 王睿, 史颖欢 申请人:南京大学, 江苏万维艾斯网络智能产业创新中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1