基于用户的协同过滤的并行实现方法及系统的制作方法

文档序号:8258752阅读:479来源:国知局
基于用户的协同过滤的并行实现方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域。具体来说,涉及到基于用户的协同过滤的并行实现方法及系统。
【背景技术】
[0002]协同过滤是构建推荐系统常用的一种方法,与传统的基于内容过滤直接分析内容进行推荐的系统不同,协同过滤将所有用户对于某一信息的评价综合在一起,基于推荐目标在用户群中查找与其相似的用户,最终形成系统对该指定用户对此信息的喜好程度预测。协同过滤目前在商业应用中使用广泛,亚马逊、⑶Now、MovieFinder等系统均采用了该方法来提应用的服务质量。
[0003]协同过滤分为两种类型:基于物品的协同过滤和基于用户的协同过滤。基于物品的协同过滤通过用户对不同物品的评分来评测物品之间的相似性,基于物品之间的相似性做出推荐;基于用户的协同过滤通过不同用户对物品的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。目前与协同过滤相关的专利分为两种类型:第一,应用传统基于物品的协同过滤方法或者基于用户的协同过滤方法进行推荐系统的构建;第二,为解决大量物品或者大量用户所带来的计算效率问题对基于物品的协同过滤方法或者基于用户的协同过滤方法做出改进。如专利申请号为200810216517.9的发明专利申请,该系统直接使用基于用户的协同过滤方法进行项目推荐系统的构建。如专利申请号为200910080946.2的发明专利申请,该系统使用基于用户的协同过滤算法以及关联规则算法完成商品推荐系统的实现。如专利申请号为201210568662.4的发明专利申请,提出了一种改进的基于物品的协同过滤方法,其主要思想是通过hadoop并行计算过程将物品进行聚类,以减少物品的类别,从而提高推荐效率。如专利申请号为200310109063.2的发明专利申请,提出了一种处理超大规模用户的协同过滤推荐方法,该方法将分布式哈希表路由算法引入协同过滤系统中,解决了集中式协同过滤系统的扩展问题,并提高了推荐质量。
[0004]随着物品数量以及用户数量的不断增加,目前协同过滤算法主要面临效率问题,由于现有推荐系统中物品数量相对固定,大多数应用网站倾向于使用基于物品的协同过滤方法来规避这一问题,但是该方法只能反映物品之间的关系,未考虑用户之间的相似性,因此该方法对于面向特定用户群体的应用存在很强的局限性。已有专利也考虑了使用分布式哈希表路由算法改进基于用户的协同过滤的效率,该方法要求每个客户端运行一个代理程序,并且用户只保留自身对于项目的评分结果,其优势在于客户端只取与自身评价项目集合有交集信息,从而减少了该用户自身的计算量,但是该方法只是用减少计算对象规避了计算量的问题,并没有从根本上解决该问题,而且该方法需要确保所有客户端代理均在线并且可连通才能够得到准确的推荐结果。
[0005]综上分析可知,需要一种新的思路从根本上解决面向海量用户的协同过滤算法存在的效率问题。

【发明内容】

[0006]有鉴于此,本发明提出了一种基于用户的协同过滤的并行实现方法及系统,该方案不需要运行客户端代理,能够对所有用户产生的结果进行并行分析,有效地提高了算法效率。
[0007]本发明的目的之一是提出一种基于用户的协同过滤的并行实现方法,其步骤包括:
[0008]I)采用分布式文件系统分块保存待进行计算的数据文件;
[0009]2)分布式文件系统中的每个文件服务器对存储于其上的数据进行三个步骤的操作,分别为数据规范化处理、用户相似度计算以及推荐物品计算,其中:
[0010]所述数据规范化处理将数据整理成可并行处理的形式;
[0011]所述用户相似度计算以及所述推荐物品计算,均首先在文件存储的服务器中进行数据整理、同一文件系统数据归并操作,接着将处理结果的键值对发送给中心节点,由中心节点按照主键计算出每个主键需要归并的节点,最后进行跨存储节点的数据归并操作,从而得到用户的最终推荐结果。
[0012]进一步地,所述数据规范化处理,是按照用户、物品、评分三元组的方式将数据进行整理。
[0013]进一步地,所述用户相似度计算首先进行物品评分数据计算,然后以物品评分数据作为衡量用户之间相似程度的指标,通过距离计算方法得到用户相似矩阵。
[0014]进一步地,所述物品评分数据计算的步骤为:
[0015]a)读取本地存储文件块的用户、物品、评分三元组数据;
[0016]b)启动本地归并过程,提取物品编号作为主键,用户与评分作为值,将本地存储中具有相同物品主键的数据按照物品,用户、评分序列对的格式进行归并;
[0017]c)归并结果发送给中心节点,中心节点依据主键分配跨存储归并节点;
[0018]d)同一主键的数据被发送到相同节点的相同运算过程中进行跨存储节点的归并操作,并输出最终结果,该结果以物品为主键,用户、评分序列对为值,并以不重复的命名方式保存在分布式文件系统指定的目录下,作为物品评分数据。
[0019]进一步地,所述用户相似度矩阵计算的步骤为:
[0020]a)读取本地存储的物品评分数据;
[0021]b)以用户对为主键,用户对物品的评分对为值进行数据的重新整理,计算用户之间评分的距离,输出主键为用户对,值为两两用户对于相同物品的评分距离;
[0022]c)启动本地归并过程,将相同用户对的数据进行合并,得到两个用户所有相同物品评分的距离值,归并结果的主键为待推荐用户,值为被推荐用户和其与待推荐用户之间的评分距离;
[0023]d)归并结果发送给中心节点,中心节点依据主键分配跨存储归并节点;
[0024]e)同一主键的数据被发送到相同节点的相同运算过程中进行跨存储节点的归并操作,并输出最终结果,该结果以待推荐用户为主键,被推荐用户和其与带推荐用户之间的评分距离为值,并以不重复的命名方式保存在分布式文件系统指定的目录下,作为用户相似度矩阵数据。
[0025]进一步地,所述推荐物品计算的步骤为:
[0026]a)读取本地节点中的物品评分数据和用户相似度矩阵数据,对物品评分数据进行整理,以用户对作为主键,物品与用户对物品的评分作为值;对用户相似度矩阵进行数据整理,以用户对作为主键,用户距离以及距离总和作为值,将两类数据输入至中心节点;
[0027]b)中心节点依据主键分配相关数据需要进行归并操作的节点;
[0028]c)同一主键的数据被发送到相同节点的相同运算过程中进行跨存储节点的归并操作,查找待推荐用户未选择但是被推荐用户选择的物品以及评分,并计算待推荐用户针对该物品的推荐值,计算完成后以待推荐用户为主键,物品和物品推荐值作为值发送给中心节点;
[0029]d)中心节点依据主键分配相关数据需要进行归并操作的节点;
[0030]e)同一主键的数据被发送到相同节点的相同运算过程中进行跨存储节点的归并操作,对待推荐用户的所有推荐物品按照推荐值进行排序,选取推荐值最高的物品作为推荐结果。
[0031]本发明的另一目的是提出一种采用上述方法的基于用户的协同过滤的并行实现系统,采用分布式文件系统分块保存待进行计算的数据文件,整个系统包括数据规范化处理模块、用户相似度矩阵计算模块以及推荐物品计算模块;
[0032]所述数据规范化处理模块,用于将数据进行整理,形成可被并行计算方法所接受的输入格式,即整理为用户、物品、评分三元组;
[0033]所述用户相似度矩阵计算模块,首先进行物品评分数据计算,然后以用户对物品的评分作为衡量用户之间相似程度的指标,通过距离计算方法得到用户相似度矩阵;
[0034]所述推荐物品计算模块,读取物品评分数据与用户相似度矩阵数据,得到两两用户之间的物品评分值和距离值,首先以用户对为主键对结果按照公式进行合并,得到用户对于某个用户所推荐的物品,接着再进行以用户为主键的归并过程,最终得到应当向目标用户推荐的物品。
[0035]进一步地,所述用户相似度矩阵计算模块包括两个部分,其一,数据整理单元,以物品为主键,将所有用户针对
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1