java实现item-cf_Item-CF和User-CF算法训练过程优化的心得

〇、背景数据集:MovieLens-1M(其中用户数6040,电影数3592,评分数1000000);工具:Java、MySQL、Redis;主要参考资料:《推荐系统实践》项亮;一、Item-CF算法描述1.Item-CF算法思想为当前用户推荐——与当前用户感兴趣物品相似的 且 当前用户没有接触的物品。2.实现步骤(1)计算物品之间的相似度;(2)根据物品相似度和用户的行为历史,作出推荐。二、Us...
摘要由CSDN通过智能技术生成

〇、背景

数据集:MovieLens-1M(其中用户数6040,电影数3592,评分数1000000);

工具:Java、MySQL、Redis;

主要参考资料:《推荐系统实践》项亮;

一、Item-CF算法描述

1.Item-CF算法思想

为当前用户推荐——与当前用户感兴趣物品相似的 且 当前用户没有接触的物品。

2.实现步骤

(1)计算物品之间的相似度;

(2)根据物品相似度和用户的行为历史,作出推荐。

二、User-CF算法描述

1.User-CF算法思想

先找到目标用户的相似用户(即与他有相同兴趣的其他用户),然后把 相似用户喜欢的且 目标用户未作出行为的物品推荐给目标用户。

2.实现步骤

(1)计算用户兴趣的相似度;

(2)找到与当前用户兴趣相似的用户集合,从该集合的历史物品列表中作出推荐。

三、遇到的问题

基于物品/用户的协同过滤算法是实现推荐系统的基本算法,同时也算是学习推荐系统的入门。两个算法的思想简单明了,所涉及的知识点也比较容易理解,但实现过程中也会有一些坑,比如说——训练过程太耗时。

以Item-CF为例,在算法实现过程中,我先计算物品之间的相似度,并将结果以set的数据结构暂存到Redis(一个基于内存的键值对数据库),方便使用。

而Item-CF算法最耗时的地方是 计算用户对某物品兴趣度的过程,公式如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值