协同过滤算法
2021/8/5 20:05:56
本文主要是介绍协同过滤算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
协同算法
转载:学习视频链接
User CF
- 建立并计算用户相似度矩阵,给用户推荐和他相似的K个用户喜欢的物品
- 适用于用户比较稳定,用户更新慢于item的场景,比如新闻网站
- 优点:推荐有惊喜
- 缺点:基于用户的协同过滤很难对推荐结果做出解释
- 基于用户的协同过滤算法主要包括两个步骤
- 找到和目标用户兴趣相似的用户集合
- 找到集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
- 冷启动:UserCF算法对物品冷启动的问题并不敏感,因为,UserCF在给用户进行推荐时,会首先找到和用户兴趣相似的一群用户,然后给用户推荐这一群用户喜欢的物品。
用户/物品 | 物品A | 物品B | 物品C | 物品D |
---|---|---|---|---|
用户A | V | V | 推荐 | |
用户B | V | |||
用户C | V | V | V |
`
这里介绍以下协同算法中的基于用户的协同过滤,基于用户的协同过滤是目的是什么呢?就是建立并计算用户相似度矩阵,从而给用户推荐和他相似的K个用户喜欢的物品,比如,我喜欢看完美世界漫画,你也喜欢看这个漫画。我还喜欢看斗罗大陆漫画,那么算法分析后可能就会觉得你可能也会喜欢看斗罗大陆这个漫画。但是也可能出现偏个性化的推荐,例如你喜欢的某些花里胡哨的东西,我可能并不感兴趣,这样的话,如果只依据某一个人的喜好来推荐,可能召回率就相当的低了。所以要经过AB测试,通过测试K个用户来发现,在根据N个用户的洗好来推荐给我喜好的时候达到最高的召回率。
当然,这种推荐算法是有惊喜的。我们因为共同爱好漫画而被划分为相似用户,你的其他洗好也可能会推荐给我,这样的话,我可能就会发现有些喜好是我之前不太感兴趣的,但是现在有兴趣了解他。
正如推荐有惊喜,可能推荐的也不是惊喜。有可能你的某些偏好,我非常不感兴趣。这也就是很难对基于用户的系统过滤做出解释。优点与缺点并存。
Item CF
-
基于物品的协同过滤
-
通过分析用户的行为记录物品之间的相似度,并不利用物品的内容属性计算物品之间的相似度,中间的桥梁也是用户
-
适用于电商类的推荐系统
-
优点:可以利用用户的历史行为给推荐结果提供推荐解释
-
基于物品的协同过滤算法主要分为两部:
- 计算物品之间的相似度
- 根据物品的相似度和用户历史行为给用户生成推荐列表
-
冷启动:对于ItemCF算法来说,物品冷启动就是一个严重的问题。因为ItemCF算法的原理是给用户推荐和他之前喜欢物品相似的物品。ItemCF算法会每隔一段时间利用用户行为计算物品相似度表(一般一天计算一次),在线服务时ItemCF算法会将之前计算好的物品相关度矩阵放在内存中。
- 当新物品加入时,内存中的物品相关表不会存在这个物品,从而Item CF算法无法推荐新的物品。解决这一问题的办法是频繁更新物品相似度表,但基于用户行为计算物品相似度是非常耗时的,主要原因是用户行为日志非常庞大,而且,新物品如果不展示给用户,用户就无法对他产生行为,通过行为日志计算是计算不出包含新物品的相关矩阵的。
- 为此,我们只能利用物品的内容信息计算物品相关表,并且频繁的更新 相关表(如半小时计算一次)
-
用户/物品 物品A 物品B 物品C 用户A V V 用户B V V V 用户C V 推荐
这篇关于协同过滤算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南