基于用户的协同过滤推荐算法原理和实现CreateChen

在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单。该算法1992年提出并用于邮件过滤系统,两年后1994年被GroupLens用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。

俗话说“物以类聚、人以群分”,拿看电影这个例子来说,如果你喜欢《蝙蝠侠》、《碟中谍》、《星际穿越》、《源代码》等电影,另外有个人也都喜欢这些电影,而且他还喜欢《钢铁侠》,则很有可能你也喜欢《钢铁侠》这部电影。

所以说,当一个用户A需要个性化推荐时,可以先找到和他兴趣相似的用户群体G,然后把G喜欢的、并且A没有听说过的物品推荐给A,这就是基于用户的系统过滤算法。

根据上述基本原理,我们可以将基于用户的协同过滤推荐算法拆分为两个步骤:

1.找到与目标用户兴趣相似的用户集合

2.找到这个集合中用户喜欢的、并且目标用户没有听说过的物品推荐给目标用户

通常用Jaccard公式或者余弦相似度计算两个用户之间的相似度。设N(u)为用户u喜欢的物品集合,N(v)为用户v喜欢的物品集合,那么u和v的相似度是多少呢:

Jaccard公式:

余弦相似度:

假设目前共有4个用户:A、B、C、D;共有5个物品:a、b、c、d、e。用户与物品的关系(用户喜欢物品)如下图所示:

如何一下子计算所有用户之间的相似度呢?为计算方便,通常首先需要建立“物品—用户”的倒排表,如下图所示:

然后对于每个物品,喜欢他的用户,两两之间相同物品加1。例如喜欢物品a的用户有A和B,那么在矩阵中他们两两加1。如下图所示:

计算用户两两之间的相似度,上面的矩阵仅仅代表的是公式的分子部分。以余弦相似度为例,对上图进行进一步计算:

到此,计算用户相似度就大功告成,可以很直观的找到与目标用户兴趣较相似的用户。

首先需要从矩阵中找出与目标用户u最相似的K个用户,用集合S(u,K)表示,将S中用户喜欢的物品全部提取出来,并去除u已经喜欢的物品。对于每个候选物品i,用户u对它感兴趣的程度用如下公式计算:

其中rvi表示用户v对i的喜欢程度,在本例中都是为1,在一些需要用户给予评分的推荐系统中,则要代入用户评分。

举个例子,假设我们要给A推荐物品,选取K=3个相似用户,相似用户则是:B、C、D,那么他们喜欢过并且A没有喜欢过的物品有:c、e,那么分别计算p(A,c)和p(A,e):

看样子用户A对c和e的喜欢程度可能是一样的,在真实的推荐系统中,只要按得分排序,取前几个物品就可以了。

这10名相似用户一共推荐了25名园友,计算得到兴趣度并排序:

只需要按需要取相似度排名前10名就可以了,不过看起来整个列表的推荐质量都还不错!

THE END
1.相关商品推荐:基于协同过滤的推荐算法协同过滤算法适用于很多领域,比如电商平台、社交网络、新闻推荐、音乐电影推荐等。通过分析用户的行为,协同过滤算法可以为用户提供个性化的推荐产品或内容,提高用户体验和购买转化率。 实现原理 协同过滤算法的实现原理是基于用户行为的相似性,通过用户之间的行为数据进行比较和匹配,找到相似的用户或商品,从而预测用户对未接...https://www.jianshu.com/p/396b7c403ee4
2.通过社交网络关系的图卷积协同过滤实现的产品推荐方法基于用户的协同过滤算法原理是利用其相似用户对该物品的所有评分的加权平均值,以此来 预测用户对某项物品的未知评分,而基于物品的协同过滤算法是预测用户对某项物品的评分是基 于用户对相似物品的平均评分。基于邻域的cf方法的关键问题是计算相似度和如何加权汇总评 分。 https://www.xjishu.com/zhuanli/55/202111235556.html
1.协同过滤算法在电商推荐系统中的应用:原理与实践3.1 算法原理概述 协同过滤算法通过分析用户和商品之间的关系,找出用户之间的相似性和商品之间的相似性,从而实现推荐。具体来说,协同过滤算法的核心思想是: 利用用户的浏览历史、购买记录、评分等行为数据,建立用户画像。 利用商品的销售数据、用户评分、标签等数据,建立物品画像。 https://blog.csdn.net/2405_88636357/article/details/143904879
2.协同过滤算法原理51CTO博客已为您找到关于协同过滤算法原理的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及协同过滤算法原理问答内容。更多协同过滤算法原理相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/780fa7612181653.html
3.CollaborativeFiltering(协同过滤)算法详解基于用户协同过滤算法的原理图 所以,协同过滤算法主要分为两个步骤: 1、寻找相似的用户集合; 2、寻找集合中用户喜欢的且目标用户没有的进行推荐。 具体实现 一、寻找用户间的相似度 1、Jaccard公式 Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此...https://cloud.tencent.com/developer/article/1085760
4.字节跳动AI高级产品经理田宇洲:AI产品经理需要掌握的核心算法...R2.ai:端到端完成数据清洗到模型搭建,非机器学习专家也可使用,高级数据质检、调参和算法选择等功能,供机器学习专家手动调教模型,比肩人类数据科学家,不断自学习改进建模流程,建模速度可达小时/分钟级,透明可追溯的建模流程。 Q4. 机器学习的基础算法原理及应用场景是怎样的? https://maimai.cn/article/detail?fid=1246742214&efid=hW5NlFAEkS-MHjfZl5IAxg