ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于协同过滤的推荐算法(用户协同、物品协调、模型协调)

2021-09-04 16:33:30  阅读:175  来源: 互联网

标签:协同 推荐 协调 用户 算法 过滤 相似 物品


文章目录

介绍

1.基于用户的协同过滤推荐

基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群。基于邻居的历史偏好信息,为当前用户进行推荐。
即:归类相似用户ABC,推荐用户BC的物品给用户A
优点:可以间接发现相似用户的潜在兴趣
缺点:推送的物品关联性弱
在这里插入图片描述

2.基于项目(物品)的协同过滤推荐

基于项目的协同过滤推荐的基本原理是,使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。
即:归类相似物品ABC,推荐物品BC给购买了物品A的用户
优点:物品间的关联性强
缺点:只在一定范围内推送物品,有一定的局限性
在这里插入图片描述

3.基于模型的协同过滤推荐

基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。
优点:1它不需要对物品或者用户进行严格的建模。2推荐是开放的,可以共用他人的经验
缺点:1用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。2方法更新迭代慢。

实现步骤

1.用户协同过滤和物品协同过滤的实现方法

1)收集用户偏好

将不同的行为进行分组:
用户行为:查看、推荐、购买、借还、收藏等
物品行为:被查看、被推荐、被购买等

然后基于不同的行为,计算不同的用户 / 物品相似度。类似于
“查看了这本图书的人还查看了A …”
“没有搜到此书,但为您推荐类似图书B”
“和你同一专业的人都在看这些书”

加权操作:
根据不同行为反映用户喜好的程度将它们进行加权,得到用户对于物品的总体喜好。一般来说,显式的用户反馈比隐式的权值大,但比较稀疏,毕竟进行显示反馈的用户是少数;同时相对于“查看”,“购买”行为反映用户喜好的程度更大,但这也因应用而异。

收集了用户行为数据之后需要对数据进行预处理,主要就是 减噪 和 归一化。

减噪
用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,可以通过一些算法过滤掉行为数据中的噪音。

归一化
将各个行为的数据统一在一个相同的取值范围中。最简单的归一化处理,就是将各类数据除以此类中的最大值,以保证归一化后的数据取值在 [0,1] 范围中。

进行的预处理后,根据不同应用的行为分析方法,可以选择分组或者加权处理,之后可以得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1]或者[-1, 1]的浮点数值。

最后形成如下的 用户偏好表 或者 物品偏好表

用户偏好表物品1物品2物品3物品4物品5
用户10.50.80.10.3-
用户20.8-0.2-0.2
用户3-0.20.810.8
物品偏好表用户1用户2用户3用户4用户5
物品10.10.80.10.7-
物品20.21--0.2
物品3-0.20.910.3

2)计算用户或物品的相似度

采用余弦相似度算法比较相似性(余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上)。
在这里插入图片描述
在这里插入图片描述
计算形成如下相似度表

用户相似度权值表用户A用户B用户C
用户A10.30.4
用户B0.810.2
用户C-0.91
物品相似度权值表物品A物品B物品C
物品A10.50.9
物品B0.81-
物品C0.10.21

相似度权值归一化在[0,-1]或者[-1,1]之间

3)推荐

偏好矩阵 × 相似度矩阵 = 推荐列表

根据上面的相似度表查询出相似用户或相似物品 结合不同场景进行推荐

2.模型协同过滤的实现方法

1)待补充,根据具体需求实现

标签:协同,推荐,协调,用户,算法,过滤,相似,物品
来源: https://blog.csdn.net/weixin_43721000/article/details/120085246

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有