推荐系统实战-出租公寓项目4-协同过滤算法推荐

推荐系统实战 专栏收录该内容
16 篇文章 1 订阅

https://github.com/worry1613/gongyu-recommend

代码已经托管到github上,有任何的疑问可以直接看代码,或者直接给我发邮件worry1613@163.com,看到我会及时回复。

协同过滤算法

协同过滤是推荐系统中最常用到的算法,最基础的算法。 在协同过滤的基础上,衍生出了很多高级的算法,新的算法。协同过滤分为2种,基于用户的协同过滤,基于物品的协同过滤。

基于用户的协同过滤(userCF)

基于用户的协同过滤算法包括2个步骤:

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

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

推荐那些和他有共同兴趣爱好的用户喜欢的物品

简单点一句话,‘看过A的用户还看过哪些物品’。在物品详情页中,几乎都能见到。

具体实现请看https://github.com/worry1613/gongyu-recommend/usercf.py

类userCF经典算法,类userCFIIF改进版算法,对热门商品进行了适当的降权,使推荐数据更多样性。

基于物品的协同过滤(itemCF)

基于用户的协同过滤算法包括2个步骤:

1.计算物品之间的相似度

2.根据物品的相似度和用户的历史行为给用户生成推荐列表

推荐那些和他之前喜欢的物品类似的物品

简单点一句话,‘找到和看过的物品类似的物品

具体实现请看https://github.com/worry1613/gongyu-recommend/itemcf.py

类itemCF经典算法,类itemCFIUF改进版算法,对热门商品进行了适当的降权,使推荐数据更多样性。

如何使用协同过滤算法

什么情况下用基于用户的协同过滤?什么情况下用基于物品的协同过滤?

1.用户和物品哪个数据少,就用基于哪个的算法,为什么?计算量小啊,很快就能出结果。临时可以用一用可以,长久不行。

2.时效性强的推荐使用基于用户的协同过滤,例如,新闻推荐。

3.个性化强的推荐使用基于物品的协同过滤,例如,论文,歌,图片,商品 推荐。

UserCF是某个群体内的物品热门程度
ItemCF是反应本人的兴趣爱好,更加个性化

优缺点对比

项目

UserCFItemCF
性能适用于用户较少的场合,如果用户过多,计算用户相似度矩阵的代价交大适用于物品数明显小于用户数的场合,如果物品很多,计算物品相似度矩阵的代价交大
领域实效性要求高,用户个性化兴趣要求不高长尾物品丰富,用户个性化需求强烈
实时性用户有新行为,不一定需要推荐结果立即变化用户有新行为,一定会导致推荐结果的实时变化
冷启动在新用户对少的物品产生行为后,不能立即对他进行个性化推荐,因为用户相似度是离线计算的 
新物品上线后一段时间,一旦有用户对物品产生行为,就可以将新物品推荐给其他用户
新用户只要对一个物品产生行为,就能推荐相关物品给他,但无法在不离线更新物品相似度表的情况下将新物品推荐给用户
推荐理由很难提供

可以根据用户历史行为归纳推荐理由

多看代码,理解算法,这个算法很简单,简单,单。
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值