一种基于项目的混合显性隐性反馈的协同过滤推荐算法
【专利摘要】本发明公开了一种基于项目的混合显性隐性反馈的协同过滤推荐算法,包括以下步骤:获得用户对各个项目的兴趣信息,建立各用户对所有项目的评分矩阵;计算每个用户的平均评分、每个项目的评分用户数、每个项目的平均得分;计算共同评价用户数矩阵;计算任意两个项目之间的Pearson相似度和修正余弦相似度;计算基于显性反馈的相似度;计算基于隐形反馈的余弦相似度;计算最终相似度;获取当前项目的最近邻居集I;向目标用户u提供推荐列表时,依据评分矩阵,得到目标用户u已评分项目和目标用户u未评分项目;计算目标用户u未评分项目的预测评分,选取其中预测评分最高的N个项目推荐给用户。本发明可以有效地提高预测推荐的准确度。
【专利说明】一种基于项目的混合显性隐性反馈的协同过滤推荐算法
【技术领域】
[0001]本发明涉及个性化推荐【技术领域】,具体涉及一种基于项目的混合显性隐性反馈的协同过滤推荐算法。
【背景技术】
[0002]推荐系统是为解决信息过载问题而提出的一种智能代理系统,能从大量信息中向用户自动推荐出符合其兴趣偏好或需求的资源。随着互联网的普及和飞速发展,推荐系统已经被广泛应用于各种领域,尤其在电子商务领域,推荐系统得到了越来越多的研究和应用。目前,几乎所有的大型电子商务网站都不同程度的使用了各种形式的推荐系统,比如Amazon、eBay和当当网上书店等,在现有使用的推荐系统中,协同过滤技术获得了较大的成功。
[0003]协同过滤算法主要有基于用户的协同过滤算法和基于项目的协同过滤算法,这两种算法的输入都是用户对项目的评分矩阵,用户对项目的评分可以显式获得,例如:通过用户对项目进行评分操作;也可以隐式获得,例如:通过用户对项目的捜索、浏览、购买等行为构造评分函数计算得到。矩阵的每一行形成的向量表示该行对应用户的对各个项目的评分向量。
[0004]基于用户的协同过滤算法的基本原理是利用用户对项目评分的相似性来互相推荐用户可能感兴趣的项目。例如:对当前用户U,推荐系统通过其评分记录及特定相似度函数,计算出与其评分行为最相近的k个用户作为用户U的最近邻居集,统计用户U的近邻用户评分过而用户U未评分的项目生成候选推荐集,然后计算用户U对候选推荐集中每个项目i的预测评分,取其中预测评分最高的N个项目作为用户U的Top-N推荐集。
[0005]基于项目的协同过滤算法则比较项目之间的相似性,根据当前用户已评分的项目集合推荐未评分的项目。由于项目之间的相似性比用户相似性稳定,因此可以离线进行计算存储并定期更新,所以基于项目的协同过滤算法相对于基于用户的协同过滤算法,推荐精度高,实时性好,对基于项目的协同过滤算法进行优化,能够使推荐准确度更高、效果更佳、更符合客户需求。
[0006]基于项目的协同推荐的基本处理流程,分为线下相似度计算和线上推荐两个部分。线下相似度计算流程用于计算并保存项目间的相似度包括以下步骤:步骤1:获取每一用户对每个项目的评分矩阵;步骤2:计算各个项目间相似度,相似度函数可采用余弦相似度、皮尔森相似度(Pearson)等;步骤3:存储各个不同项目间相似度。
[0007]在预先计算存储了各个不同项目间相似度的基础上,线上推荐流程如下:步骤1:获取待推荐的用户标识(ID),即目标用户标识(ID);步骤2:获取目标用户ID对应的目标用户已经评分的项目集合;步骤3:根据预先存储的项目相似度数据,获取与目标用户已经评分的项目集合中各项目相似度高的项目,形成该目标用户的待推荐项目集;步骤4:根据项目间相似度,进一步计算目标用户对待推荐项目集中每个项目的预测评分,例如:根据如下公式计算预测评分,
【权利要求】
1.一种基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,包括以下步骤: (1)服务器通过跟踪用户的访问,获得用户对各个项目的兴趣信息,并根据设定的评分原则,利用所获得的兴趣信息建立各用户对所有项目的评分矩阵; (2)根据所述评分矩阵计算每个用户的平均评分、每个项目的评分用户数、每个项目的平均得分; (3)根据所述评分矩阵计算共同评价用户数矩阵,所述共同评价用户数矩阵用于记录对任意两个项目都有评分的共同用户数; (4)计算任意两个项目之间的Pearson相似度和修正余弦相似度; (5)利用Pearson相似度和修正余弦相似度计算基于显性反馈的相似度Simk(i,j),计算公式如下:
Simk (i, j) = aSimr(i, j) + (1-a) Simc (i, j) 其中,a为常数; Simr (i, j)为项目i和项目j的Pearson相似度; Simc (i, j)为项 目i和项目j的修正余弦相似度; (6)依据步骤(2)中每个项目的评分用户数以及步骤(3)中得到的共同评价用户数矩阵,计算基于隐形反馈的余弦相似度; (7)利用步骤(5)基于显性反馈的相似度和步骤(6)基于隐性反馈的相似度,计算最终相似度; (8)针对每个项目,根据其它项目与当前项目的最终相似度由高到低的顺序,对其它项目进行排序,在得到的序列中选择最终相似度大于阈值的至多K个项目作为当前项目的最近邻居项目,所有最近邻居项目构成当前项目的最近邻居集I ; (9)向目标用户u提供推荐列表时,首先依据步骤(1)所得的评分矩阵,得到目标用户u已评分项目和目标用户u未评分项目; (10)计算目标用户u未评分项目的预测评分,选取其中预测评分最高的N个项目推荐给用户。
2.如权利要求1所述的基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,所述步骤(4)中Peanson相似度的计算公式如下: 其中:U表示对项目i和项目j都评分过的用户集合; Riu表示用户U对项目i的评分; 瓦表示项目i的平均得分; R,,,表示用户u对项目j的评分; 瓦表示项目j的平均得分。
3.如权利要求2所述的基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,所述步骤(4)中修正余弦相似度的计算公式如下:
4.如权利要求3所述的基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,所述步骤(6)中基于隐形反馈的余弦相似度Simv(i,j)的计算公式如下:
5.如权利要求4所述的基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,所述步骤(7)中最终相似度的计算公式如下:
Sim(i, j) = Simk (i, j)*Simv(i, j)。
6.如权利要求5所述的基于项目的混合显性隐性反馈的协同过滤推荐算法,其特征在于,所述步骤(10)中预测评分的计算公式如下:
【文档编号】G06F19/00GK103745100SQ201310738030
【公开日】2014年4月23日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】尹建伟, 张宗禹, 李莹, 邓水光, 吴朝晖, 吴建 申请人:浙江大学