首页> 中国专利> 一种基于项目的混合显性隐性反馈的协同过滤推荐算法

一种基于项目的混合显性隐性反馈的协同过滤推荐算法

摘要

本发明公开了一种基于项目的混合显性隐性反馈的协同过滤推荐算法,包括以下步骤:获得用户对各个项目的兴趣信息,建立各用户对所有项目的评分矩阵;计算每个用户的平均评分、每个项目的评分用户数、每个项目的平均得分;计算共同评价用户数矩阵;计算任意两个项目之间的Pearson相似度和修正余弦相似度;计算基于显性反馈的相似度;计算基于隐形反馈的余弦相似度;计算最终相似度;获取当前项目的最近邻居集I;向目标用户u提供推荐列表时,依据评分矩阵,得到目标用户u已评分项目和目标用户u未评分项目;计算目标用户u未评分项目的预测评分,选取其中预测评分最高的N个项目推荐给用户。本发明可以有效地提高预测推荐的准确度。

著录项

  • 公开/公告号CN103745100A

    专利类型发明专利

  • 公开/公告日2014-04-23

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201310738030.8

  • 申请日2013-12-27

  • 分类号G06F19/00;

  • 代理机构杭州天勤知识产权代理有限公司;

  • 代理人胡红娟

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2024-02-19 23:19:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-04

    授权

    授权

  • 2014-05-21

    实质审查的生效 IPC(主分类):G06F19/00 申请日:20131227

    实质审查的生效

  • 2014-04-23

    公开

    公开

说明书

技术领域

本发明涉及个性化推荐技术领域,具体涉及一种基于项目的混合显性 隐性反馈的协同过滤推荐算法。

背景技术

推荐系统是为解决信息过载问题而提出的一种智能代理系统,能从大 量信息中向用户自动推荐出符合其兴趣偏好或需求的资源。随着互联网的 普及和飞速发展,推荐系统已经被广泛应用于各种领域,尤其在电子商务 领域,推荐系统得到了越来越多的研究和应用。目前,几乎所有的大型电 子商务网站都不同程度的使用了各种形式的推荐系统,比如Amazon、eBay 和当当网上书店等,在现有使用的推荐系统中,协同过滤技术获得了较大 的成功。

协同过滤算法主要有基于用户的协同过滤算法和基于项目的协同过 滤算法,这两种算法的输入都是用户对项目的评分矩阵,用户对项目的评 分可以显式获得,例如:通过用户对项目进行评分操作;也可以隐式获得, 例如:通过用户对项目的捜索、浏览、购买等行为构造评分函数计算得到。 矩阵的每一行形成的向量表示该行对应用户的对各个项目的评分向量。

基于用户的协同过滤算法的基本原理是利用用户对项目评分的相似 性来互相推荐用户可能感兴趣的项目。例如:对当前用户U,推荐系统通 过其评分记录及特定相似度函数,计算出与其评分行为最相近的k个用户 作为用户U的最近邻居集,统计用户U的近邻用户评分过而用户U未评 分的项目生成候选推荐集,然后计算用户U对候选推荐集中每个项目i的 预测评分,取其中预测评分最高的N个项目作为用户U的Top-N推荐集。

基于项目的协同过滤算法则比较项目之间的相似性,根据当前用户已 评分的项目集合推荐未评分的项目。由于项目之间的相似性比用户相似性 稳定,因此可以离线进行计算存储并定期更新,所以基于项目的协同过滤 算法相对于基于用户的协同过滤算法,推荐精度高,实时性好,对基于项 目的协同过滤算法进行优化,能够使推荐准确度更高、效果更佳、更符合 客户需求。

基于项目的协同推荐的基本处理流程,分为线下相似度计算和线上推 荐两个部分。线下相似度计算流程用于计算并保存项目间的相似度包括以 下步骤:步骤1:获取每一用户对每个项目的评分矩阵;步骤2:计算各 个项目间相似度,相似度函数可采用余弦相似度、皮尔森相似度(Pearson) 等;步骤3:存储各个不同项目间相似度。

在预先计算存储了各个不同项目间相似度的基础上,线上推荐流程如 下:步骤1:获取待推荐的用户标识(ID),即目标用户标识(ID);步骤 2:获取目标用户ID对应的目标用户已经评分的项目集合;步骤3:根 据预先存储的项目相似度数据,获取与目标用户已经评分的项目集合中各 项目相似度高的项目,形成该目标用户的待推荐项目集;步骤4:根据项 目间相似度,进一步计算目标用户对待推荐项目集中每个项目的预测评 分,例如:根据如下公式计算预测评分,其中,PU,i表示目标用户U对项目i的预测评分,sim(i,j)表示项目i和项目j之间的 相似度,RU,j表示用户u对项目j的实际评分;步骤5:根据预测评分结 果取评分最高的前N项作为对目标用户的推荐结果。

在基于项目的协同过滤算法流程中,项目间的相似度对最终的推荐结 果有着至关重要的影响。在传统的基于项目的协同过滤推荐算法中,基于 显性评分进行预测评分的项目间的相似度有余弦相似度,Pearson相似度, 修正余弦相似度三种传统计算方式,人们通常选择其中最常用的Pearson 相似度和修正余弦相似度中的一种作为标准进行计算,但是却忽略了他们 不同的侧重点完全可以共同为最终的相似度做出贡献。同时,基于显性评 分的相似度计算和基于隐形反馈的相似度计算通常作为两种不同的推荐 方式使用,其实二者相似度计算中的要素是相互互补、相辅相成的,可以 融合成一种更加合理的相似度。

发明内容

本发明提供了一种基于项目的混合显性隐性反馈的协同过滤推荐算 法,该算法在原有的基于项目的协同过滤推荐算法的基础上,对项目间相 似度计算进行优化,可以有效地提高预测推荐的准确度。

一种基于项目的混合显性隐性反馈的协同过滤推荐算法,包括以下步 骤:

(1)服务器通过跟踪用户的访问,获得用户对各个项目的兴趣信息, 并根据设定的评分原则,利用所获得的兴趣信息建立各用户对所有项目的 评分矩阵;

(2)根据所述评分矩阵计算每个用户的平均评分、每个项目的评分 用户数、每个项目的平均得分;

(3)根据所述评分矩阵计算共同评价用户数矩阵,所述共同评价用 户数矩阵用于记录对任意两个项目都有评分的共同用户数;

(4)计算任意两个项目之间的Pearson相似度和修正余弦相似度;

所述Pearson相似度的计算公式如下:

Simr(i,j)=ΣuU(Ru,i-Ri-)(Ru,j-Rj-)ΣuU(Ru,i-Ri-)2ΣuU(Ru,j-Rj-)2

其中:U表示对项目i和项目j都评分过的用户集合;

Ru,i表示用户u对项目i的评分;

表示项目i的平均得分;

Ru,j表示用户u对项目j的评分;

表示项目j的平均得分。

所述修正余弦相似度的计算公式如下:

Simc(i,j)=ΣuU(Ru,i-Ru-)(Ru,j-Ru-)ΣuU(Ru,i-Ru-)2ΣuU(Ru,j-Ru-)2

其中:U表示对项目i和项目j都评分过的用户集合;

Ru,i表示用户u对项目i的评分;

Ru,j表示用户u对项目j的评分;

表示用户u的平均评分。

(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)中得到 的共同评价用户数矩阵,计算基于隐形反馈的余弦相似度;

所述基于隐形反馈的余弦相似度Simv(i,j)的计算公式如下:

Simv(i,j)=|N(i)N(j)||N(i)||N(j)|

其中:N(i)表示对项目i做出评价的用户数量;

N(j)表示对项目j做出评价的用户数量;

N(i)∩N(j)表示项目i和项目j的共同评分用户数。

(7)利用步骤(5)基于显性反馈的相似度和步骤(6)基于隐性反 馈的相似度,计算最终相似度;

所述最终相似度的计算公式如下:Sim(i,j)=Simk(i,j)*Simv(i,j)。

(8)针对每个项目,根据其它项目与当前项目的最终相似度由高到 低的顺序,对其它项目进行排序,在得到的序列中选择最终相似度大于阈 值的至多K个项目作为当前项目的最近邻居项目,所有最近邻居项目构成 当前项目的最近邻居集I;

(9)向目标用户u提供推荐列表时,首先依据步骤(1)所得的评分 矩阵,得到目标用户u已评分项目和目标用户u未评分项目;

(10)计算目标用户u未评分项目的预测评分,选取其中预测评分最 高的N个项目推荐给用户。

所述预测评分的计算公式如下:

Ru,i=R-i+ΣjIisim(i,j)*(Ru,j-R-j)ΣjIi|sim(i,j)|

其中,表示项目i的平均得分;

表示项目j的平均得分;

Ru,j表示用户u对项目j的评分;

sim(i,j)表示项目i和项目j的最终相似度;

Ii表示项目i的最近邻居集。

现有技术中基于项目的协同推荐的基本处理流程,分为线下相似度计 算和线上推荐两个部分,本发明主要集中于改进线下相似度计算方面。

本发明提供的协同过滤推荐算法综合考虑到了用户平均评分、项目平 均评分对相似度产生的影响,通过融合隐性反馈的余弦相似度为相似度添 加了项目共同评价数、项目热度的因素影响,从而更好的描述了项目之间 的相似情况,为最终的个性化推荐提供了更准确的依据。

本发明与现有的技术相比,考虑的因素更加多元化,更加符合客观事 实的规律,提高了推荐项目的质量,使得推荐更加精确。

附图说明

图1为本发明的应用场景推荐引擎架构;

图2为本发明的项目间最终相似度计算的流程示意图;

图3为本发明的线上推荐流程示意图。

具体实施方式

下面结合附图对本发明做进一步的详细说明。

本发明作为一种改进的协同过滤推荐算法,可以应用到几乎所有带有 评分的网站和系统中,比如豆瓣、优酷等。通过这些网站和系统,可以轻 松的获取每个项目的各个用户观看时间、行为操作、项目评分数据等,通 过后台推荐模块的处理,为每个用户提供未浏览评分的项目的个性化推 荐,具体包括如下步骤:

(1)服务器通过跟踪用户的访问,获得用户对各个项目的兴趣信息, 并根据设定的评分原则,利用所获得的兴趣信息建立各用户对所有项目的 评分矩阵(即用户-项目评分矩阵),如图1所示;

本发明中项目可以为服务,也可以为产品,可以通过跟踪用户的观看 时间,行为操作,项目评分等因素,获得用户的感兴趣信息,并进一步通 过数据库等存储引擎进行存储。

设定的评分原则,例如,打开记为1分,浏览完成记为3分,中途暂停 记为-1分等。

计算评分矩阵时,考虑每个用户评价过的所有项目,包括用户的主动 评分,以及服务器依据设定的评分原则进行的自动评分。

(2)根据所述评分矩阵计算每个用户的平均评分、每个项目的评分 用户数、每个项目的平均得分;

每个用户的平均评分利用每个用户对所有项目的评分总和除以项目

数量得到。

(3)根据所述评分矩阵计算共同评价用户数矩阵,所述共同评价用 户数矩阵用于记录对任意两个项目都有评分的共同用户数;

(4)计算任意两个项目之间的Pearson相似度和修正余弦相似度;

所述Pearson相似度的计算公式如下:

Simr(i,j)=ΣuU(Ru,i-Ri-)(Ru,j-Rj-)ΣuU(Ru,i-Ri-)2ΣuU(Ru,j-Rj-)2

其中:U表示对项目i和项目j都评分过的用户集合;

Ru,i表示用户u对项目i的评分;

表示项目i的平均得分;

Ru,j表示用户u对项目j的评分;

表示项目j的平均得分。

所述修正余弦相似度的计算公式如下:

Simc(i,j)=ΣuU(Ru,i-Ru-)(Ru,j-Ru-)ΣuU(Ru,i-Ru-)2ΣuU(Ru,j-Ru-)2

其中:U表示对项目i和项目j都评分过的用户集合;

Ru,i表示用户u对项目i的评分;

Ru,j表示用户u对项目j的评分;

表示用户u的平均评分。

(5)利用Pearson相似度和修正余弦相似度计算基于显性反馈的相似 度Simk(i,j),计算公式如下:

Simk(i,j)=aSimr(i,j)+(1-a)Simc(i,j)

其中,a为常数;a依据不同的推荐场景而取不同的值,例如,主要推 荐视频的网站和主要推荐物品的网站具有可能不同的a值,a值依据一定量 的数据训练得到;

Simr(i,j)为项目i和项目j的Pearson相似度;

Simc(i,j)为项目i和项目j的修正余弦相似度;

(6)依据步骤(2)中每个项目的评分用户数以及步骤(3)中得到 的共同评价用户数矩阵,计算基于隐形反馈的余弦相似度;

所述基于隐形反馈的余弦相似度Simv(i,j)的计算公式如下:

Simv(i,j)=|N(i)N(j)||N(i)||N(j)|

其中:N(i)表示对项目i做出评价的用户数量;

N(j)表示对项目j做出评价的用户数量;

N(i)∩N(j)表示项目i和项目j的共同评分用户数。

(7)利用步骤(5)基于显性反馈的相似度和步骤(6)基于隐性反 馈的相似度,计算最终相似度;

所述最终相似度的计算公式如下:Sim(i,j)=Simk(i,j)*Simv(i,j)。

(8)针对每个项目,根据其它项目与当前项目的最终相似度由高到 低的顺序,对其它项目进行排序,在得到的序列中选择最终相似度大于阈 值(人为设定)的至多K个项目(K人为设定)作为当前项目的最近邻居 项目(即先将最终相似度与阈值做比较,若最终相似度大于阈值的项目数 超过K个,则由高至低选取K个),所有最近邻居项目构成当前项目的最近 邻居集I;

(9)向目标用户u提供推荐列表时,首先依据步骤(1)所得的评分 矩阵,得到目标用户u已评分项目和目标用户u未评分项目,如图3所示;

(10)计算目标用户u未评分项目的预测评分,选取其中预测评分最 高的N个项目推荐给用户。N的数目可以依据需要进行选择。

所述预测评分的计算公式如下:

Ru,i=R-i+ΣjIisim(i,j)*(Ru,j-R-j)ΣjIi|sim(i,j)|

其中,表示项目i的平均得分;

表示项目j的平均得分;

Ru,j表示用户u对项目j的评分;

sim(i,j)表示项目i和项目j的最终相似度;

Ii表示项目i的最近邻居集。

步骤(1)~(8)为线下计算流程,步骤(9)~(10)为线上推荐流 程,本发明的应用场景推荐引擎架构如图1所示,由获取的用户行为数据 中提取行为特征,经行为特征转换后与用户属性数据相结合得到用户特征 向量,候选物品集合通过特征-物品相关推荐关系,得到初始推荐结果, 并依次经过滤、场景排名、推荐解释、得到最终推荐结果,依据最终推荐 结果定期更新物品推荐表。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号