CN105335385B - 一种基于项目的协同过滤推荐方法及装置 - Google Patents
一种基于项目的协同过滤推荐方法及装置 Download PDFInfo
- Publication number
- CN105335385B CN105335385B CN201410309477.8A CN201410309477A CN105335385B CN 105335385 B CN105335385 B CN 105335385B CN 201410309477 A CN201410309477 A CN 201410309477A CN 105335385 B CN105335385 B CN 105335385B
- Authority
- CN
- China
- Prior art keywords
- project
- recommendation
- similarity
- actual
- candidate
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于项目的协同过滤推荐方法及装置,该方法包括:获得目标数据集;将目标数据集拆解成若干适合内存容量的数据块;对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。应用本发明实施例,只使用一台计算机进行基于项目的协同过滤推荐算法的计算,在计算时,将项目的整个数据集拆解成若干适合内存容量的数据块,提高了基于项目的协同过滤推荐算法的性能,消减了额外的辅助功能对算法性能的影响,同时避免了成本的增加。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于项目的协同过滤推荐方法及装置。
背景技术
协同过滤推荐(Collaborative Filtering recommendation)技术是目前推荐系统中应用最为广泛的技术之一。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
目前,协同过滤推荐算法主要分为基于项目的协同过滤推荐算法和基于用户的协同过滤推荐算法,其中,基于项目的协同过滤推荐算法,通过相同用户对不同的项目的评分来评测项目之间的相似性,基于项目之间的相似性做出推荐;基于用户的协同过滤推荐算法,通过不同用户对相同项目的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。
现有两种基于项目的协同过滤推荐算法的方式,一种方式是使用一台计算机来进行基于项目的协同过滤推荐算法的计算;另一种方式是使用计算机集群来进行基于项目的协同过滤推荐算法的计算。
然而,在实际应用中,使用一台计算机来进行基于项目的协同过滤推荐算法的计算时,当被计算的数据集的数据量达到内存容纳不下的量级时,算法的性能不高;使用计算机集群来进行基于项目的协同过滤推荐算法的计算时,计算机集群的每台计算机计算数据集的一部分,虽然能解决数据量大的问题,但是需要增加额外的辅助功能,影响算法的性能。例如:同一份数据在计算机集群里的各个计算机里都有一份拷贝,数据存在冗余;计算机集群的各个计算机需要保存计算的数据,同时各个计算机之间还需要进行通信;计算机集群的每台计算机计算数据集的一部分之后,还需要将计算的结果整合在一起,并且需要对拆分成若干数据子集的边缘数据进行处理。并且随着数据量的增加,需要增加计算机集群中的计算机,增加了成本。
发明内容
本发明实施例的目的在于提供一种基于项目的协同过滤推荐方法及装置,以提高基于项目的协同过滤推荐算法的性能,且避免成本的增加。
为达到上述目的,本发明实施例公开了一种基于项目的协同过滤推荐方法,包括:
获得目标数据集;
将目标数据集拆解成若干适合内存容量的数据块;
对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
较佳的,所述目标数据集,包括:
不同用户收藏的网址信息;
或不同用户点击过的广告信息;
或不同用户搜索过的内容;
或不同用户购买过的商品。
较佳的,所述方法还包括:
判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将预设的阈值调低,直到在项目i所处的数据块B中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N;
对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐的项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,计算项目i和至少一个其它数据块中的各项目的相似度;
将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
较佳的,所述方法还包括:
判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N;
对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐的项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
为达到上述目的,本发明实施例还公开了一种基于项目的协同过滤推荐装置,包括:
数据集获得模块,用于获得目标数据集;
数据集拆解模块,用于将目标数据集拆解成若干适合内存容量的数据块;
第一相似度计算模块,用于对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
候选推荐项目确定模块,用于将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
较佳的,所述目标数据集,包括:
不同用户收藏的网址信息;
或不同用户点击过的广告信息;
或不同用户搜索过的内容;
或不同用户购买过的商品。
较佳的,所述装置还包括:
第一判断模块,用于判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
排序模块,用于在第一判断模块判断结果为是的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
实际推荐项目选取模块,用于从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述实际推荐项目选取模块,还用于:
在第一判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述装置还包括:
第一阈值调整模块,用于在第一判断模块判断结果为否的情况下,将预设的阈值调低,直到在项目i所处的数据块B中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
较佳的,所述装置还包括:
第二判断模块,用于在第一判断模块判断结果为否的情况下,判断是否还存在未和项目i计算相似度的其他数据块的项目;
第二相似度计算模块,用于在第二判断模块判断结果为是的情况下,计算项目i和其它数据块中的各项目的相似度。
较佳的,所述实际推荐项目选取模块,还用于:
在第二判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
较佳的,所述装置还包括:
第二阈值调整模块,用于在第二判断模块判断结果为否的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
较佳的,所述候选推荐项目确定模块,还用于:
将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
由上述的技术方案可见,本发明实施例只使用一台计算机进行基于项目的协同过滤推荐算法的计算,在计算时,将项目的整个数据集拆解成若干适合内存容量的数据块,对每个数据块B中的每个项目i,在本地计算该项目i和该数据块B中其它项目的相似度,将与所述项目i的相似度高于预设的阈值对应的项目确定为该项目i的候选推荐项目。相对于现有技术使用一台计算机来进行基于项目的协同过滤推荐算法的计算,提高了基于项目的协同过滤推荐算法的性能;相对于现有技术使用计算机集群来进行基于项目的协同过滤推荐算法的计算,消减了额外的辅助功能对算法性能的影响,同时避免了成本的增加。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种基于项目的协同过滤推荐方法的流程示意图;
图2为本发明实施例提供的第二种基于项目的协同过滤推荐方法的流程示意图;
图3为本发明实施例提供的第三种基于项目的协同过滤推荐方法的流程示意图;
图4为本发明实施例提供的第四种基于项目的协同过滤推荐方法的流程示意图;
图5为本发明实施例提供的第五种基于项目的协同过滤推荐方法的流程示意图;
图6为本发明实施例提供的第一种基于项目的协同过滤推荐装置的结构示意图;
图7为本发明实施例提供的第二种基于项目的协同过滤推荐装置的结构示意图;
图8为本发明实施例提供的第三种基于项目的协同过滤推荐装置的结构示意图;
图9为本发明实施例提供的第四种基于项目的协同过滤推荐装置的结构示意图;
图10为本发明实施例提供的第五种基于项目的协同过滤推荐装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于项目的协同过滤推荐方法及装置,该方案中,获得目标数据集,将目标数据集拆解成若干适合内存容量的数据块,对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度,将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
下面通过具体实施例,对本发明进行详细说明。
图1为本发明实施例提供的第一种基于项目的协同过滤推荐方法的流程示意图,包括:
S101:获得目标数据集;
S102:将目标数据集拆解成若干适合内存容量的数据块;
S103:对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
S104:将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
可选的,在本发明的一个具体实现中,目标数据集可以为:不同用户收藏的网址信息;或不同用户点击过的广告信息;或不同用户搜索过的内容;或不同用户购买过的商品。
下面以不同用户收藏的网址信息为例,对目标数据集进行详细介绍:
A用户共收藏5条网址信息,这5条网址信息分别为:www.baidu.com,www.hao123.com,www.ijinshan.com,www.kingsoft.com和www.jd.com。
B用户共收藏3条网址信息,这3条网址信息分别为:www.baidu.com,www.kingsoft.com和www.jd.com。
C用户共收藏4条网址信息,这4条网址信息分别为:www.baidu.com,www.kingsoft.com,www.jd.com和military.china.com。
则目标数据集为用户A、B和C收藏的所有网址信息。
为了方便后续的计算,可以将项目和用户建立关联,例如生成基于项目格式的如下关联:
www.baidu.com=[A、B、C],
www.hao123.com=[A],
www.ijinshan.com=[A],
www.kingsoft.com=[A、B、C],
www.jd.com=[A、B、C],
military.china.com=[C]。
假设内存只能容纳4条网址信息,将上述6条网址信息分为两个数据块,其中,第一个数据块B1中含有网址信息为:www.baidu.com,www.hao123.com,www.ijinshan.com和www.kingsoft.com,第二个数据块B2中含有网址信息为:www.jd.com和military.china.com。
对数据块B1的每个项目,在本地计算该项目和该数据块B1中其它项目的相似度,对数据块B2的每个项目,在本地计算该项目和该数据块B2中其它项目的相似度。
下面以计算项目www.baidu.com和www.hao123.com为例,对计算相似度进行说明:
项目www.baidu.com的收藏用户数量n1为3,项目www.hao123.com的收藏数量n2为1,既收藏了www.baidu.com,又收藏了www.hao123.com的数量n3为1,www.baidu.com和www.hao123.com的相似度=n3/(n1+n2-n3)=1/(3+1-1)=0.33。
相应的,可以计算任意两个项目之间的相似度。
例如,www.baidu.com和www.ijinshan.com的相似度为0.33,www.baidu.com和www.kingsoft.com的相似度为1。
需要说明的是,本申请中并不对计算相似度的具体实现方式做限定,任何可能的实现方式都可以应用于本申请中。
示例性的,在本发明的实施例中,假设预设的相似度阈值为0.5。
将计算出的相似度高于0.5对应的项目www.kingsoft.com确定为项目www.baidu.com的候选推荐项目。
应用本发明图1所示的实施例,只使用一台计算机进行基于项目的协同过滤推荐算法的计算,在计算时,将项目的整个数据集拆解成若干适合内存容量的数据块,对每个数据块B中的每个项目i,在本地计算该项目i和该数据块B中其它项目的相似度,将与所述项目i的相似度高于预设的阈值对应的项目确定为该项目i的候选推荐项目。相对于现有技术使用一台计算机来进行基于项目的协同过滤推荐算法的计算,提高了基于项目的协同过滤推荐算法的性能;相对于现有技术使用计算机集群来进行基于项目的协同过滤推荐算法的计算,消减了额外的辅助功能对算法性能的影响,同时避免了成本的增加。
考虑到在实际应用中,项目的候选推荐项目数量之多,但这些候选推荐项目并不是完全作为项目的实际推荐项目,而是选择相似度数值较高对应的项目作为项目的实际推荐项目,本发明实施例还提供一种基于项目的协同过滤推荐方法,参见图2所示,
本发明图2所示实施例在图1所示实施例基础上,增加S105、S106、S107和S108的步骤。
其中,S105:判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N,如果是,执行S106,如果否,执行S108;
S106:对项目i的候选推荐项目中的所有项目按照相似度数值从高到底排序;
S107:从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户;
S108:将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
示例性的,在本实施例中,假设预设的相似度阈值为0.3。将项目www.hao123.com、项目www.ijinshan.com和项目www.kingsoft.com均确定为项目www.baidu.com的候选推荐项目。如此时只对一个项目进行推荐,则对项目www.baidu.com的候选推荐项目中的所有项目按照相似度数值从高到底进行排序,结果为www.kingsoft.com、www.hao123.com、www.ijinshan.com。将项目www.kingsoft.com作为项目www.baidu.com实际推荐项目。
在实际应用中,可以将项目www.baidu.com的实际推荐项目www.kingsoft.com向客户端反馈,客户端可以将项目www.kingsoft.com推荐给用户。
当用户点击收藏夹里的收藏链接www.baidu.com时,在www.baidu.com页面中的动态内容区域显示为用户推荐的www.kingsoft.com的网页链接。
示例性的,在本实施例中,假设预设的相似度阈值为0.5。将项目www.kingsoft.com确定为项目www.baidu.com的候选推荐项目。如此时对三个项目进行推荐,但项目www.baidu.com的候选推荐项目中的数量不足三个,则将项目www.baidu.com的候选推荐项目中所有项目作为项目www.baidu.com的实际推荐项目,此时即将项目www.kingsoft.com作为项目www.baidu.com的实际推荐项目。
在实际应用中,可以将项目www.baidu.com的实际推荐项目www.kingsoft.com向客户端反馈,客户端可以将项目www.kingsoft.com推荐给用户。
当用户点击收藏夹里的收藏链接www.baidu.com时,在www.baidu.com页面中的动态内容区域显示为用户推荐的www.kingsoft.com的网页链接。
可选的,当项目www.baidu.com的候选推荐项目的数量没有达到项目www.baidu.com实际推荐项目的需求数量时,还可以在本数据块中将阈值调低,将相似度高于调低后的阈值对应的项目确定为项目www.baidu.com的候选推荐项目,进而再对项目www.baidu.com的候选推荐项目的数量是否达到项目www.baidu.com实际推荐项目的需求数量进行判断,参见图3所示,
S109:将阈值调低,将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
示例性的,在本实施例中,假设预设的相似度阈值为0.5。将项目www.kingsoft.com确定为项目www.baidu.com的候选推荐项目。如此时对三个项目进行推荐,但项目www.baidu.com的候选推荐项目中的数量不足三个,则将相似度阈值调低,假设调低至0.32,直到项目www.baidu.com的候选推荐项目的数量达到项目实际推荐项目的需求数量,将项目www.hao123.com、项目www.ijinshan.com和项目www.kingsoft.com均确定为项目www.baidu.com的候选推荐项目。对项目www.baidu.com的候选推荐项目中的所有项目按照相似度数值从高到底进行排序,结果为www.kingsoft.com、www.hao123.com、www.ijinshan.com。将项目www.kingsoft.com、www.hao123.com、www.ijinshan.com作为项目www.baidu.com实际推荐项目。
在实际应用中,可以将项目www.baidu.com的实际推荐项目www.kingsoft.com、www.hao123.com和www.ijinshan.com向客户端反馈,客户端可以将项目www.kingsoft.com、www.hao123.com和www.ijinshan.com推荐给用户。
当用户点击收藏夹里的收藏链接www.baidu.com时,在www.baidu.com页面中的动态内容区域显示为用户推荐的www.kingsoft.com、www.hao123.com、www.ijinshan.com的网页链接。
可选的,当项目www.baidu.com的候选推荐项目的数量没有达到项目www.baidu.com实际推荐项目的需求数量时,还可以判断是否还存在未和项目www.baidu.com计算相似度的其它数据块中的项目,当存在未和项目www.baidu.com计算相似度的其它数据块中的项目时,计算项目www.baidu.com和其他数据块中的各项目相似度,进而再进行项目www.baidu.com的候选推荐项目的数量是否达到项目www.baidu.com实际推荐项目的需求数量进行判断,参见图4和图5所示,
S110:判断是否还存在未和项目i计算相似度的其他数据块的项目;
S111:计算项目i和其他数据块中的各项目的相似度;
S112:将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户;
S113:将阈值调低,将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
其中,S111计算项目i和其他数据块中的各项目的相似度的方式可以与图1所示实施例中计算项目www.baidu.com和项目www.baidu.com所处数据块中的其他项目的相似度的方式相同,S112将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户与图2所述实施例的步骤108相同,S113将阈值调低,将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目与图3所述实施例的步骤109相同,这里不再赘述。
应用本实施例,在项目i所处的数据块中选择出的项目i的实际推荐项目可以直接应用于相应前端用户的请求,进行推荐,对于项目i和其他数据块中的项目相似度的计算由于耗时较长,可以在离线的情况下服务器后端运行,作为推荐覆盖面的完善,当项目i和其他数据块中的项目相似度也计算完成后,将项目i的候选推荐项目中的所有项目按照相似度数值从高到底排序,选取前几个项目作为项目i的实际推荐项目,此时推荐的项目能更好的满足用户的需求。
图6为本发明实施例提供的第一种基于项目的协同过滤推荐装置的结构示意图,与图1所示的流程相对应,包括:数据集获得模块201、数据集拆解模块202、第一相似度计算模块203和候选推荐项目确定模块204,
其中,数据集获得模块201,用于获得目标数据集;
可选的,目标数据集可以为不同用户收藏的网址信息;还可以为不同用户点击过的广告信息;还可以为不同用户搜索过的内容;还可以为不同用户购买过的商品。
数据集拆解模块202,用于将目标数据集拆解成若干适合内存容量的数据块;
第一相似度计算模块203,用于对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
候选推荐项目确定模块204,用于将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
应用本发明图6所示的实施例,只使用一台计算机进行基于项目的协同过滤推荐算法的计算,在计算时,将项目的整个数据集拆解成若干适合内存容量的数据块,对每个数据块B中的每个项目i,在本地计算该项目i和该数据块B中其它项目的相似度,将相似度高于预设的阈值对应的项目确定为该项目i的候选推荐项目。相对于现有技术使用一台计算机来进行基于项目的协同过滤推荐算法的计算,提高了基于项目的协同过滤推荐算法的性能;相对于现有技术使用计算机集群来进行基于项目的协同过滤推荐算法的计算,消减了额外的辅助功能对算法性能的影响,同时避免了成本的增加。
图7为本发明实施例提供的第二种基于项目的协同过滤推荐装置的结构示意图,包括:数据集获得模块201、数据集拆解模块202、第一相似度计算模块203、候选推荐项目确定模块204、第一判断模块205、排序模块206和实际推荐项目选取模块207,
其中,第一判断模块205,用于判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
排序模块206,用于在第一判断模块判断结果为是的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
实际推荐项目选取模块207,用于从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
本发明实施例的实际推荐项目选取模块207,还用于在第一判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
图8为本发明实施例提供的第三种基于项目的协同过滤推荐装置的结构示意图,包括:数据集获得模块201、数据集拆解模块202、第一相似度计算模块203、候选推荐项目确定模块204、第一判断模块205、排序模块206、实际推荐项目选取模块207和第一阈值调整模块208,
其中,第一阈值调整模块208,用于在第一判断模块判断结果为否的情况下,将预设的阈值调低,直到在项目i所处的数据块B中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
图9为本发明实施例提供的第四种基于项目的协同过滤推荐装置的结构示意图,包括:数据集获得模块201、数据集拆解模块202、第一相似度计算模块203、候选推荐项目确定模块204、第一判断模块205、排序模块206、实际推荐项目选取模块207、第二判断模块209和第二相似度计算模块210,
其中,第二判断模块209,用于在第一判断模块判断结果为否的情况下,判断是否还存在未和项目i计算相似度的其他数据块的项目;
第二相似度计算模块210,用于在第二判断模块判断结果为是的情况下,计算项目i和其它数据块中的各项目的相似度;
实际推荐项目选取模块207,还用于在第二判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
图10为本发明实施例提供的第四种基于项目的协同过滤推荐装置的结构示意图,包括:数据集获得模块201、数据集拆解模块202、第一相似度计算模块203、候选推荐项目确定模块204、第一判断模块205、排序模块206、实际推荐项目选取模块207、第二判断模块209、第二相似度计算模块210和第二阈值调整模块211,
其中,第二阈值调整模块211,用于在第二判断模块判断结果为否的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N;
候选推荐项目确定模块204,还用于将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
应用本发明图7至图10所示实施例,在项目i所处的数据块中选择出的项目i的实际推荐项目可以直接应用于相应前端用户的请求,进行推荐,对于项目i和其他数据块中的项目相似度的计算由于耗时较长,可以在离线的情况下服务器后端运行,作为推荐覆盖面的完善,当项目i和其他数据块中的项目相似度也计算完成后,将项目i的候选推荐项目中的所有项目按照相似度数值从高到底排序,选取前几个项目作为项目i的实际推荐项目,此时推荐的项目能更好的满足用户的需求。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于项目的协同过滤推荐方法,其特征在于,所述方法包括:
获得目标数据集;
将目标数据集拆解成若干适合内存容量的数据块;
对每个数据块B中的每个项目i,计算项目i和该数据块B中其它项目的相似度;
将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目;
其中,所述方法还包括:
判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户;
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,判断是否存在未和项目i计算相似度的其他数据块的项目,如果存在,则计算项目i和至少一个其它数据块中的各项目的相似度;
将与所述项目i相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
2.根据权利要求1所述的方法,其特征在于,所述目标数据集,包括:
不同用户收藏的网址信息;
或不同用户点击过的广告信息;
或不同用户搜索过的内容;
或不同用户购买过的商品。
3.根据权利要求1所述的方法,其特征在于,所述在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,判断是否存在未和项目i计算相似度的其他数据块的项目,如果存在,则计算项目i和至少一个其它数据块中的各项目的相似度,将与所述项目i相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目之后,所述方法还包括:
判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N;
对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
从排序队列中选取前N个项目作为项目i实际推荐的项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
6.一种基于项目的协同过滤推荐装置,其特征在于,所述装置包括:
数据集获得模块,用于获得目标数据集;
数据集拆解模块,用于将目标数据集拆解成若干适合内存容量的数据块;
第一相似度计算模块,用于对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
候选推荐项目确定模块,用于将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目;
第一判断模块,用于判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
排序模块,用于在第一判断模块判断结果为是的情况下,判断是否存在未和项目i计算相似度的其他数据块的项目,如果存在,则对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
实际推荐项目选取模块,用于从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户;
第二判断模块,用于在第一判断模块判断结果为否的情况下,判断是否还存在未和项目i计算相似度的其他数据块的项目;
第二相似度计算模块,用于在第二判断模块判断结果为是的情况下,计算项目i和至少一个其它数据块中的各项目的相似度。
7.根据权利要求6所述的装置,其特征在于,所述目标数据集,包括:
不同用户收藏的网址信息;
或不同用户点击过的广告信息;
或不同用户搜索过的内容;
或不同用户购买过的商品。
8.根据权利要求6所述的装置,其特征在于,所述实际推荐项目选取模块,还用于:
在第二判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二阈值调整模块,用于在第二判断模块判断结果为否的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
10.根据权利要求9所述的装置,其特征在于,所述候选推荐项目确定模块,还用于:
将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309477.8A CN105335385B (zh) | 2014-06-30 | 2014-06-30 | 一种基于项目的协同过滤推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309477.8A CN105335385B (zh) | 2014-06-30 | 2014-06-30 | 一种基于项目的协同过滤推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335385A CN105335385A (zh) | 2016-02-17 |
CN105335385B true CN105335385B (zh) | 2019-09-17 |
Family
ID=55285924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410309477.8A Active CN105335385B (zh) | 2014-06-30 | 2014-06-30 | 一种基于项目的协同过滤推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335385B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066602A (zh) * | 2017-04-21 | 2017-08-18 | 北京搜狐新媒体信息技术有限公司 | 一种新闻信息推送方法及系统 |
CN113239284B (zh) * | 2021-07-13 | 2021-10-15 | 武汉斗鱼鱼乐网络科技有限公司 | 推荐信息的顺序确定方法及装置 |
CN114282118B (zh) * | 2022-03-03 | 2022-06-17 | 北京轻松筹信息技术有限公司 | 确定公益项目的推送用户的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346751A (zh) * | 2010-08-03 | 2012-02-08 | 阿里巴巴集团控股有限公司 | 一种信息推送方法及设备 |
CN103049486A (zh) * | 2012-12-05 | 2013-04-17 | 北京奇虎科技有限公司 | 一种协同过滤距离的处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2447868A (en) * | 2007-03-29 | 2008-10-01 | Motorola Inc | A distributed content item recommendation system |
-
2014
- 2014-06-30 CN CN201410309477.8A patent/CN105335385B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346751A (zh) * | 2010-08-03 | 2012-02-08 | 阿里巴巴集团控股有限公司 | 一种信息推送方法及设备 |
CN103049486A (zh) * | 2012-12-05 | 2013-04-17 | 北京奇虎科技有限公司 | 一种协同过滤距离的处理方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于矩阵划分和兴趣方差的协同过滤算法;潘红艳等;《情报学报》;20060228;第25卷(第1期);第49-54页 |
Also Published As
Publication number | Publication date |
---|---|
CN105335385A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241415B (zh) | 项目推荐方法、装置、计算机设备及存储介质 | |
CN107451894B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN104123332B (zh) | 搜索结果的显示方法及装置 | |
Soundarajan et al. | Using community information to improve the precision of link prediction methods | |
CN105677765B (zh) | 给用户推荐期望的功能序列的方法及系统 | |
CN104992347B (zh) | 一种视频匹配广告的方法及装置 | |
CN103294778B (zh) | 一种推送资讯信息的方法及系统 | |
CN106339502A (zh) | 一种基于用户行为数据分片聚类的建模推荐方法 | |
CN108647276B (zh) | 一种搜索方法 | |
CN110503506B (zh) | 基于评分数据的物品推荐方法、装置及介质 | |
CN104615631B (zh) | 一种信息推荐的方法及装置 | |
JPWO2012118087A1 (ja) | レコメンダシステム、レコメンド方法、及びプログラム | |
CN105868254A (zh) | 信息推荐方法及装置 | |
CN106934071A (zh) | 基于异构信息网络和贝叶斯个性化排序的推荐方法及装置 | |
CN109902713A (zh) | 基于数据分析的楼盘推荐方法、设备、存储介质及装置 | |
CN102693223A (zh) | 一种搜索方法 | |
CN104850537B (zh) | 对文本内容进行筛选的方法及装置 | |
CN103294911A (zh) | 一种时间序列相似度值获取方法及系统 | |
CN105335385B (zh) | 一种基于项目的协同过滤推荐方法及装置 | |
CN103365842B (zh) | 一种页面浏览推荐方法及装置 | |
CN103186666A (zh) | 基于收藏进行搜索的方法、装置与设备 | |
CN107798012B (zh) | 阅读资源评论推送方法和系统 | |
CN103336771A (zh) | 基于滑动窗口的数据相似检测方法 | |
CN110264284A (zh) | 新媒体营销属性分析预测方法、装置及系统 | |
CN109558384A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20181214 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 Jinshan Building, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |