基于协同过滤的处理方法和系统技术方案

技术编号:8532691 阅读:294 留言:0更新日期:2013-04-04 15:37
本发明专利技术公开了一种基于协同过滤的处理方法和系统,涉及计算机技术领域。所述系统包括请求接收模块和至少两个计算服务器;所述请求接收模块;依赖计算服务器确认模块;分量发送接收模块;推荐项目计算模块,适于每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体;所述各计算服务器之间通过调用讯息传递接口发送和接收数据。本发明专利技术可快速针对庞大的矩阵数据计算推荐项目,并且可降低计算系统对硬件的要求,可从整体上降低硬件成本。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种基于协同过滤的处理方法和系统
技术介绍
互联网上的信息资源呈指数膨胀带来了所谓的“信息过载”和“信息迷向”问题,即人们很难找到自己感兴趣的信息,即使找到了一些,也经常混有很多“噪音”。因此出现了面向互联网的信息检索、信息过滤和协同过滤等技术。但信息检索不具有智能性,不能学习用户的兴趣,尤其是对具有特定专业兴趣的用户,输入相同的关键词只能得到相同的检索结果。信息过滤不能对同一主题的过滤结果区分质量好坏,并且随着信息资源的剧增,更有效的过滤需要结合人们的质量评价信息。基于该种需求,出现了推荐系统,推荐系统是为解决信息过载问题而提出的一种智能代理系统,能从大量信息中向用户自动推荐出符合其兴趣偏好或需求的资源。随着互联网的普及和飞速发展,推荐系统已经被广泛应用于各种领域,尤其在电子商务领域,推荐系统得到了越来越多的研究和应用。目前,几乎所有的大型电子商务网站都不同程度的使用了各种形式的推荐系统,比如Amazon、CDNOff> eBay和当当网上书店等。其中,协同过滤技术在当前推荐系统的应用中获得了较大的成功。协同过滤是一类推荐算法。协同过滤考虑了用户的评价信息。协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度的预测。主要分为基于用户的协同过滤(User based)和基于商品的(Item based)两种。例如基于用户的协同过滤算法,它的基本思想是如果要为一个用户推荐其没有的商品,首先计算其它用户和这个用户的喜好的相似程度,然后从与其喜好最相似的若干用户中找到这个用户没有的商品进行推荐。基于项目的协同过滤原理类似。在互联网环境下,用户和商品都是海量数据,同时由于实效性对算法有一定的时间要求,而现有技术中对于协同过滤的计算基本上是在一个计算服务器上进行,当遭遇超大量的用户,比如百万数量级的时候,其各种矩阵的数据也非常庞大,采用单服务器计算则时效太慢,并且对于硬件的要求比较高。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于协同过滤的处理系统和相应的一种基于协同过滤的处理方法。依据本专利技术的一个方面,提供了一种基于协同过滤的处理方法,包括接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程,所述过程包括针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体;其中,所述各计算服务器之间通过调用讯息传递接口发送和接收数据。可选的,所述每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量,包括每个参与计算的计算服务器获取其他所有计算服务器处理的各分块矩阵数据中分量标识;每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。依据本专利技术的另外一个方面,提供了一种基于协同过滤的处理系统,包括请求接收模块和至少两个计算服务器;所述请求接收模块,适于接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器;至少两个计算服务器中每个所述计算服务器包括分块矩阵数据获取模块,适于每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;依赖计算服务器确认模块,适于每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;分量发送接收模块,适于每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;推荐项目计算模块,适于每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体;所述各计算服务器之间通过调用讯息传递接口发送和接收数据。可选的,所述依赖计算服务器确认模块包括分量标识获取模块,适于每个参与计算的计算服务器获取其他所有计算服务器处理的各分块矩阵数据中分量标识;第一依赖服务器确认模块,适于每个参与计算的计算服务器根据所述协同过滤距离矩阵中的分块矩阵数据,和/或主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。可选的,还包括标识发送模块,适于每个参与计算的计算服务器将所依赖的各计算服务器中的各分块矩阵数据的分量标识,发送给当前计算服务器依赖的各计算服务器;进一步的,所述分量发送接收模块包括第一分量发送接收模块,适于每个参与计算的计算服务器根据所述被依赖的分量标识,将所述相应的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量。可选的,所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵;所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的用户标识相似矩阵;进一步的,所述分量包括用户标识-项目主体-项目权重矩阵的分量进和用户标识-权重均值矩阵分量。可选的,所述第一依赖服务器确认模块包括剪枝模块,适于每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算;第二依赖服务器确认模块,适于每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。可选的,所述剪枝模块包括第一剪枝模块,适于针对用户标识相似矩阵中的分块矩阵数据中每行或每列矩阵数据的每个维度,将每个维度的值进行排序,保留每行或每列中排序靠前的至少一个维度。可选的,所述第二依赖服务器确认模块包括第一行/列分量标识转置模块,适于每个参与计算的计算服务器将用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的各分量标识进行行分量标识或列分量标识转置;第一行/列分量标本文档来自技高网
...

【技术保护点】
一种基于协同过滤的处理方法,包括:接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程,所述过程包括:针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体?项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;每个参与计算的计算服务器根据所述主体?项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;每个参与计算的计算服务器针对本地的主体?项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体?项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体;其中,所述各计算服务器之间通过调用讯息传递接口发送和接收数据。

【技术特征摘要】
1.一种基于协同过滤的处理方法,包括接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程,所述过程包括针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体;其中,所述各计算服务器之间通过调用讯息传递接口发送和接收数据。2.如权利要求1所述的方法,所述每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量,包括每个参与计算的计算服务器获取其他所有计算服务器处理的各分块矩阵数据中分量标识;每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。3.如权利要求2所述的方法,还包括每个参与计算的计算服务器将所依赖的各计算服务器中的各分块矩阵数据的分量标识,发送给当前计算服务器依赖的各计算服务器;进一步的,每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量包括所述每个计算服务器根据所述被依赖的分量标识,将所述相应的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量。4.如权利要求3所述的方法,所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵;所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的用户标识相似矩阵;进一步的,所述分量包括用户标识-项目主体-项目权重矩阵的分量进和用户标识-权重均值矩阵分量。5.如权利要求4所述的方法,所述每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算; 每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。6.如权利要求5所述的方法,所述每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算包括 针对用户标识相似矩阵中的分块矩阵数据中每行或每列矩阵数据的每个维度,将每个维度的值进行排序,保留每行或每列中排序靠前的至少一个维度。7.如权利要求6所述的方法,所述每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器将用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的各分量标识进行行分量标识或列分量标识转置; 将由行分量标识转置后得到的结果与所述用户标识相似矩阵的列分量标识对齐,或者将由列分量标识转置后得到的结果与所述协用户标识相似矩阵的行分量标识对齐; 针对当前各行或者各列保留的维度,标记对应保留维度的行分量标识或者列分量标识; 根据所述标记的行分量标识或列分量标识,与本地获取的用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分块矩阵数据中的行分量标识或列分量标识比较,判断本地不存在的行分量标识或列分量标识; 根据本地不存在的行分量标识或列分量标识所属的计算服务器,确认当前服务器依赖的各计算服务器,以及依赖的各计算服务器中用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分量标识。8.如权利要求3所述的方法,所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵; 所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的项目-项目相似矩阵; 进一步的,所述分量包括项目-项目相似矩阵的分量。9.如权利要求8所述的方法,所述每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器根据用户标识-项目主体-项目权重矩阵计算候选推荐集;每个参与计算的计算服务器根据所述候选推荐集、项目-项目相似矩阵的分块矩阵数据和用户标识-项目主体-项目权重矩阵确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。10.如权利要求9所述的方法,所述每个参与计算的计算服务器根据所述候选推荐集、 项目-项目相似矩阵的分块矩阵数据和用户标识-项目主体-项目权重矩阵确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括每个参与计算的计算服务器将所述项目-项目相似矩阵的各分量标识进行行分量标识或列分量标识转置;将由行分量标识转置后得到的结果与所述用户标识-项目主体-项目权重矩阵的列分量标识对齐,或者将由列分量标识转置后得到的结果与所述协用户标识相似矩阵的行分量标识对齐;根据所述标记的行分量标识或列分量标识,与本地获取的用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分块矩阵数据中的行分量标识或列分量标识比较, 判断本...

【专利技术属性】
技术研发人员:齐路何锐邦唐会军
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1