一种基于项目的协同过滤推荐方法及装置的制造方法

文档序号:9579273阅读:611来源:国知局
一种基于项目的协同过滤推荐方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种基于项目的协同过滤推荐方法及装置。
【背景技术】
[0002]协同过滤推荐(Collaborative Filtering recommendat1n)技术是目前推荐系统中应用最为广泛的技术之一。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
[0003]目前,协同过滤推荐算法主要分为基于项目的协同过滤推荐算法和基于用户的协同过滤推荐算法,其中,基于项目的协同过滤推荐算法,通过相同用户对不同的项目的评分来评测项目之间的相似性,基于项目之间的相似性做出推荐;基于用户的协同过滤推荐算法,通过不同用户对相同项目的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。
[0004]现有两种基于项目的协同过滤推荐算法的方式,一种方式是使用一台计算机来进行基于项目的协同过滤推荐算法的计算;另一种方式是使用计算机集群来进行基于项目的协同过滤推荐算法的计算。
[0005]然而,在实际应用中,使用一台计算机来进行基于项目的协同过滤推荐算法的计算时,当被计算的数据集的数据量达到内存容纳不下的量级时,算法的性能不高;使用计算机集群来进行基于项目的协同过滤推荐算法的计算时,计算机集群的每台计算机计算数据集的一部分,虽然能解决数据量大的问题,但是需要增加额外的辅助功能,影响算法的性能。例如:同一份数据在计算机集群里的各个计算机里都有一份拷贝,数据存在冗余;计算机集群的各个计算机需要保存计算的数据,同时各个计算机之间还需要进行通信;计算机集群的每台计算机计算数据集的一部分之后,还需要将计算的结果整合在一起,并且需要对拆分成若干数据子集的边缘数据进行处理。并且随着数据量的增加,需要增加计算机集群中的计算机,增加了成本。

【发明内容】

[0006]本发明实施例的目的在于提供一种基于项目的协同过滤推荐方法及装置,以提高基于项目的协同过滤推荐算法的性能,且避免成本的增加。
[0007]为达到上述目的,本发明实施例公开了一种基于项目的协同过滤推荐方法,包括:
[0008]获得目标数据集;
[0009]将目标数据集拆解成若干适合内存容量的数据块;
[0010]对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
[0011]将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
[0012]较佳的,所述目标数据集,包括:
[0013]不同用户收藏的网址信息;
[0014]或不同用户点击过的广告信息;
[0015]或不同用户搜索过的内容;
[0016]或不同用户购买过的商品。
[0017]较佳的,所述方法还包括:
[0018]判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N ;
[0019]在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
[0020]从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0021 ] 较佳的,所述方法还包括:
[0022]在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0023]较佳的,所述方法还包括:
[0024]在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将预设的阈值调低,直到在项目i所处的数据块B中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N ;
[0025]对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
[0026]从排序队列中选取前N个项目作为项目i实际推荐的项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0027]较佳的,所述方法还包括:
[0028]在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,计算项目i和至少一个其它数据块中的各项目的相似度;
[0029]将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
[0030]较佳的,所述方法还包括:
[0031]判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N ;
[0032]在项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
[0033]从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0034]较佳的,所述方法还包括:
[0035]在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0036]较佳的,所述方法还包括:
[0037]在项目i的候选推荐项目的数量没有达到项目i实际推荐项目的需求数量N的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N;
[0038]对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
[0039]从排序队列中选取前N个项目作为项目i实际推荐的项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0040]为达到上述目的,本发明实施例还公开了一种基于项目的协同过滤推荐装置,包括:
[0041]数据集获得模块,用于获得目标数据集;
[0042]数据集拆解模块,用于将目标数据集拆解成若干适合内存容量的数据块;
[0043]第一相似度计算模块,用于对每个数据块B中的每个项目i,在本地计算项目i和该数据块B中其它项目的相似度;
[0044]候选推荐项目确定模块,用于将与所述项目i的相似度高于预设的阈值对应的项目确定为项目i的候选推荐项目。
[0045]较佳的,所述目标数据集,包括:
[0046]不同用户收藏的网址信息;
[0047]或不同用户点击过的广告信息;
[0048]或不同用户搜索过的内容;
[0049]或不同用户购买过的商品。
[0050]较佳的,所述装置还包括:
[0051]第一判断模块,用于判断项目i的候选推荐项目的数量是否达到项目i实际推荐项目的需求数量N;
[0052]排序模块,用于在第一判断模块判断结果为是的情况下,对项目i的候选推荐项目中的所有项目按照相似度数值从高到低排序;
[0053]实际推荐项目选取模块,用于从排序队列中选取前N个项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0054]较佳的,所述实际推荐项目选取模块,还用于:
[0055]在第一判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0056]较佳的,所述装置还包括:
[0057]第一阈值调整模块,用于在第一判断模块判断结果为否的情况下,将预设的阈值调低,直到在项目i所处的数据块B中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
[0058]较佳的,所述装置还包括:
[0059]第二判断模块,用于在第一判断模块判断结果为否的情况下,判断是否还存在未和项目i计算相似度的其他数据块的项目;
[0060]第二相似度计算模块,用于在第二判断模块判断结果为是的情况下,计算项目i和其它数据块中的各项目的相似度。
[0061]较佳的,所述实际推荐项目选取模块,还用于:
[0062]在第二判断模块判断结果为否的情况下,将项目i的候选推荐项目中的所有项目作为项目i实际推荐项目,向客户端反馈项目i的实际推荐的项目,以使所述客户端将所述项目i的实际推荐的项目推荐给所述项目i的用户。
[0063]较佳的,所述装置还包括:
[0064]第二阈值调整模块,用于在第二判断模块判断结果为否的情况下,将预设的阈值调低,直到在所有数据块中,项目i的候选推荐项目的数量达到项目i实际推荐项目的需求数量N。
[0065]较佳的,所述候选推荐项目确定模块,还用于:
[0066]将相似度高于调低后的阈值对应的项目确定为项目i的候选推荐项目。
[0067]由上述的技术方案可见,本发明实施例只使用一台计算机进行基于项目的协同过滤推荐算法的计算,在计算时,将项目的整个数据集拆解成若干适合内存容量的数据块,对每个数据块B中的每个项目i,在本地计算该项目i和该数据块B中其它项目的相似度,将与所述项目i的相似度高于预设的阈值对应的项目确定为该项目i的候
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1