一种协同过滤处理方法和系统的制作方法

文档序号:6383314阅读:148来源:国知局
专利名称:一种协同过滤处理方法和系统的制作方法
技术领域
本发明涉及计算机技术领域,具体涉及一种协同过滤处理方法和系统。
背景技术
互联网上的信息资源呈指数膨胀带来了所谓的“信息过载”和“信息迷向”问题, 即人们很难找到自己感兴趣的信息,即使找到了一些,也经常混有很多“噪音”。因此出现了 面向互联网的信息检索、信息过滤和协同过滤等技术。但信息检索不具有智能性,不能学习 用户的兴趣,尤其是对具有特定专业兴趣的用户,输入相同的关键词只能得到相同的检索 结果。信息过滤不能对同一主题的过滤结果区分质量好坏,并且随着信息资源的剧增,更有 效的过滤需要结合人们的质量评价信息。基于该种需求,出现了推荐系统,推荐系统是为解 决信息过载问题而提出的一种智能代理系统,能从大量信息中向用户自动推荐出符合其兴 趣偏好或需求的资源。随着互联网的普及和飞速发展,推荐系统已经被广泛应用于各种领 域,尤其在电子商务领域,推荐系统得到了越来越多的研究和应用。目前,几乎所有的大型 电子商务网站都不同程度的使用了各种形式的推荐系统,比如Amazon、CDNOff> eBay和当当 网上书店等。其中,协同过滤技术在当前推荐系统的应用中获得了较大的成功。
协同过滤是一类推荐算法。协同过滤考虑了用户的评价信息。协同过滤分析用 户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的 评价,形成系统对该指定用户对此信息的喜好程度的预测。主要分为基于用户的协同过滤 (User based)和基于商品的(Item based)两种。例如基于用户的协同过滤算法,它的基本 思想是如果要为一个用户推荐其没有的商品,首先计算其它用户和这个用户的喜好的相 似程度,然后从与其喜好最相似的若干用户中找到这个用户没有的商品进行推荐。基于项 目的协同过滤原理类似。
在互联网环境下,用户和商品都是海量数据,同时由于实效性对算法有一定的时 间要求,而现有技术中对于协同过滤的计算基本上是在一个计算服务器上进行,当遭遇超 大量的用户,比如百万数量级的时候,其各种矩阵的数据也非常庞大,采用单服务器计算则 时效太慢,并且对于硬件的要求比较高。发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的一种协同过滤处理系统和相应的一种协同过滤处理方法。
依据本发明的一个方面,提供了一种协同过滤处理方法,包括
接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器 进行推荐计算过程,所述过程包括
针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据; 所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵 数据;
每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体。依据本发明的另外一个方面,提供了一种协同过滤处理系统,包括请求接收模块和至少两个计算服务器;所述请求接收模块,适于接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器;至少两个计算服务器中每个所述计算服务器包括分块矩阵数据获取模块,适于每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;依赖计算服务器确认模块,适于每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量;分量发送接收模块,适于每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;推荐项目计算模块,适于每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体。根据本发明的一种协同过滤处理方法可以利用多个计算节点并行的进行协同过滤的推荐计算,由此解决了现有技术针对庞大的矩阵数据计算时效慢,并且对于硬件的要求比较高的问题,高取得了针对需要快速计算推荐项目的需求,可快速针对庞大的矩阵数据计算推荐项目,并且可降低计算系统对硬件的要求,可从整体上降低硬件成本的有益效
果O上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了根据本发明一个实施例的一种协同过滤处理方法实施例一的流程示意图2示出了根据本发明一个实施例的一种协同过滤处理方法实施例二的流程示意图3示出了根据本发明一个实施例的User based计算原理的矩阵对照示意 图4示出了根据本发明一个实施例的User based计算原理的两个计算服务器矩阵对照示例图5示出了根据本发明一个实施例的一种协同过滤处理方法实施例三的流程示意图6示出了根据本发明一个实施例的Item based的计算原理示意图7不出了根据本发明一个实施例的一种协同过滤处理系统实施例一的结构不意图9示出了根据本发明一个实施例的一种协同过滤处理系统实施例三的机构示意图;
图9示出了根据本发明一个实施例的一种协同过滤处理系统实施例三的结构示意图。图8示出了根据本发明一个实施例的一种协同过滤处理系统实施例二的结构示具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,其示出了本发明一种协同过滤处理方法实施例一的流程示意图,具体可以包括
步骤100,接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程;
在本发明实施例中,所述主体可比如网络中的用户标识,那么对于用户标识在网络中使用过的或者未使用过的各种项目,系统或者用户则可请求针对各个用户标识推荐某个或者某几个项目,比如针对在网络中购买的产品,向用户推荐相关产品。
那么所述至少两个计算服务器进行推荐计算过程包括
步骤110,针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据;
在本发明中,对于所述主体-项目权重矩阵,可为用户标识-项目的评分矩阵,比
权利要求
1.一种协同过滤处理方法,包括 接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程,所述过程包括 针对至少两个计算服务器,每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据; 每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量; 每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量; 每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体。
2.如权利要求1所述的方法,所述每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量,包括 每个参与计算的计算服务器获取其他所有计算服务器处理的各分块矩阵数据中分量标识; 每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
3.如权利要求2所述的方法,还包括 每个参与计算的计算服务器将所依赖的各计算服务器中的各分块矩阵数据的分量标识,发送给当前计算服务器依赖的各计算服务器; 进一步的,每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量包括 所述每个计算服务器根据所述被依赖的分量标识,将所述相应的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量。
4.如权利要求3所述的方法, 所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵; 所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的用户标识相似矩阵; 进一步的,所述分量包括用户标识-项目主体-项目权重矩阵的分量进和用户标识-权重均值矩阵分量。
5.如权利要求4所述的方法,所述每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算; 每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
6.如权利要求5所述的方法,所述每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算包括 针对用户标识相似矩阵中的分块矩阵数据中每行或每列矩阵数据的每个维度,将每个维度的值进行排序,保留每行或每列中排序靠前的至少一个维度。
7.如权利要求6所述的方法,所述每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器将用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的各分量标识进行行分量标识或列分量标识转置; 将由行分量标识转置后得到的结果与所述用户标识相似矩阵的列分量标识对齐,或者将由列分量标识转置后得到的结果与所述协用户标识相似矩阵的行分量标识对齐; 针对当前各行或者各列保留的维度,标记对应保留维度的行分量标识或者列分量标识; 根据所述标记的行分量标识或列分量标识,与本地获取的用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分块矩阵数据中的行分量标识或列分量标识比较,判断本地不存在的行分量标识或列分量标识; 根据本地不存在的行分量标识或列分量标识所属的计算服务器,确认当前服务器依赖的各计算服务器,以及依赖的各计算服务器中用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分量标识。
8.如权利要求3所述的方法,所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵; 所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的项目-项目相似矩阵; 进一步的,所述分量包括项目-项目相似矩阵的分量。
9.如权利要求8所述的方法,所述每个参与计算的计算服务器根据本地的协同过滤距离矩阵中的分块矩阵数据,主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器根据用户标识-项目主体-项目权重矩阵计算候选推荐集; 每个参与计算的计算服务器根据所述候选推荐集、项目-项目相似矩阵的分块矩阵数据和用户标识-项目主体-项目权重矩阵确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
10.如权利要求9所述的方法,所述每个参与计算的计算服务器根据所述候选推荐集、项目-项目相似矩阵的分块矩阵数据和用户标识-项目主体-项目权重矩阵确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识包括 每个参与计算的计算服务器将所述项目-项目相似矩阵的各分量标识进行行分量标识或列分量标识转置; 将由行分量标识转置后得到的结果与所述用户标识-项目主体-项目权重矩阵的列分量标识对齐,或者将由列分量标识转置后得到的结果与所述协用户标识相似矩阵的行分量标识对齐; 根据所述标记的行分量标识或列分量标识,与本地获取的用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分块矩阵数据中的行分量标识或列分量标识比较,判断本地不存在的行分量标识或列分量标识; 根据本地不存在的行分量标识或列分量标识所属的计算服务器,确认当前服务器依赖的各计算服务器,以及依赖的各计算服务器中用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分量标识。
11.如权利要求1-10其中之一所述的方法, 所述各计算服务器之间通过调用讯息传递接口发送和接收数据。
12.—种协同过滤处理系统,包括 请求接收模块和至少两个计算服务器; 所述请求接收模块,适于接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器; 至少两个计算服务器中每个所述计算服务器包括 分块矩阵数据获取模块,适于每个参与计算的计算服务器获取各种分块矩阵数据;所述各分块矩阵数据包括主体-项目权重矩阵的分块矩阵数据、协同过滤矩阵的分块矩阵数据; 依赖计算服务器确认模块,适于每个参与计算的计算服务器根据所述主体-项目权重矩阵、和协同过滤矩阵确认当前计算服务器依赖的各个服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量; 分量发送接收模块,适于每个参与计算的计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量; 推荐项目计算模块,适于每个参与计算的计算服务器针对本地的主体-项目权重矩阵的分块矩阵数据中的每个主体,利用本地的主体-项目权重矩阵的分块矩阵数据、本地的协同过滤矩阵的分块矩阵数据和接收到的分量之间的对应关系,将至少一个项目推荐给所述主体。
13.如权利要求12所述的系统,所述依赖计算服务器确认模块包括 分量标识获取模块,适于每个参与计算的计算服务器获取其他所有计算服务器处理的各分块矩阵数据中分量标识;第一依赖服务器确认模块,适于每个参与计算的计算服务器根据所述协同过滤距离矩阵中的分块矩阵数据,和/或主体-项目权重矩阵的分块矩阵数据,和其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
14.如权利要求13所述的系统,还包括 标识发送模块,适于每个参与计算的计算服务器将所依赖的各计算服务器中的各分块矩阵数据的分量标识,发送给当前计算服务器依赖的各计算服务器; 进一步的,所述分量发送接收模块包括 第一分量发送接收模块,适于每个参与计算的计算服务器根据所述被依赖的分量标识,将所述相应的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量。
15.如权利要求14所述的系统, 所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵; 所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的用户标识相似矩阵; 进一步的,所述分量包括用户标识-项目主体-项目权重矩阵的分量进和用户标识-权重均值矩阵分量。
16.如权利要求15所述的系统,所述第一依赖服务器确认模块包括 剪枝模块,适于每个参与计算的计算服务器针对所述用户标识相似矩阵中的分块矩阵数据进行剪枝计算; 第二依赖服务器确认模块,适于每个参与计算的计算服务器根据所述剪枝后的所述用户标识相似矩阵中的分块矩阵数据,以及所述其他所有计算服务器处理的各分块矩阵数据中分量标识,确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
17.如权利要求16所述的装置,所述剪枝模块包括 第一剪枝模块,适于针对用户标识相似矩阵中的分块矩阵数据中每行或每列矩阵数据的每个维度,将每个维度的值进行排序,保留每行或每列中排序靠前的至少一个维度。
18.如权利要求17所述的系统,所述第二依赖服务器确认模块包括 第一行/列分量标识转置模块,适于每个参与计算的计算服务器将用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的各分量标识进行行分量标识或列分量标识转置; 第一行/列分量标识对齐模块,适于将由行分量标识转置后得到的结果与所述用户标识相似矩阵的列分量标识对齐,或者将由列分量标识转置后得到的结果与所述协用户标识相似矩阵的行分量标识对齐; 第一保留模块,适于针对当前各行或者各列保留的维度,标记对应保留维度的行分量标识或者列分量标识; 第一判断模块,适于根据所述标记的行分量标识或列分量标识,与本地获取的用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分块矩阵数据中的行分量标识或列分量标识比较,判断本地不存在的行分量标识或列分量标识; 第三依赖服务器确认模块,适于根据本地不存在的行分量标识或列分量标识所属的计算服务器,确认当前服务器依赖的各计算服务器,以及依赖的各计算服务器中用户标识-项目主体-项目权重矩阵和用户标识-权重均值矩阵的分量标识。
19.如权利要求14所述的系统,其特征在于, 所述主体-项目权重矩阵包括用户标识-项目主体-项目权重矩阵; 所述协同过滤矩阵为对应用户标识-项目主体-项目权重矩阵的项目-项目相似矩阵; 进一步的,所述分量包括项目-项目相似矩阵的分量。
20.如权利要求19所述的系统,所述依赖服务器确认模块包括 第一候选推荐集计算模块,适于每个参与计算的计算服务器根据用户标识-项目主体-项目权重矩阵计算候选推荐集; 第四依赖服务器确认模块,适于每个参与计算的计算服务器根据所述候选推荐集、项目-项目相似矩阵的分块矩阵数据和用户标识-项目主体-项目权重矩阵确认当前计算服务器依赖的各计算服务器,以及所述依赖的各计算服务器中的各分块矩阵数据的分量标识。
全文摘要
本发明公开了一种协同过滤处理方法和系统,涉及计算机技术领域。所述方法包括接收针对主体推荐至少一个项目的请求,根据所述请求启动至少两个计算服务器进行推荐计算过程,所述过程包括每个计算服务器获取包括主体-项目权重矩阵、协同过滤矩阵的各种分块矩阵数据;每个计算服务器确认当前计算服务器依赖的各计算服务器及其中的各分块矩阵数据的分量;每个计算服务器将所述被依赖的分量发送给依赖该分量各计算服务器;并接收各计算服务器发送的分量;每个计算服务器针对本地的每个主体,将至少一个项目推荐给所述主体。本发明可快速针对庞大的矩阵数据计算推荐项目,并且可降低计算系统对硬件的要求,可从整体上降低硬件成本。
文档编号G06F17/30GK103049488SQ20121051815
公开日2013年4月17日 申请日期2012年12月5日 优先权日2012年12月5日
发明者齐路, 何锐邦, 唐会军 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1