协同过滤算法的底层实现是什么?

基于用户的CF基于用户的协同过滤,

通过用户对不同内容(物品)的行为,来评测用户之间的相似性,找到“邻居”,基于这种相似性做出推荐。这种推荐的本质是,给相似的用户推荐其他用户喜欢的内容,这就是我们经常看到的:和你类似的人还喜欢如下内容。下面这个列子可以说明:

需要给用户A推荐游戏,根据用户B和用户C对游戏的偏好行为,给A推荐游戏,从下表可以知道,基于对游戏的偏好来讲,用户A跟用户C的相似度比用户跟用户B的相似度要大,所以,系统会给用户A推荐炉石传说。当然,举的这个例子十分简单,实际上,还需要考虑的是每个用户物品的偏好程度,虽然用户A和用户C都玩过英雄联盟,但是用户A和用户C对英雄联盟的偏好程度可能不一样,在真正的计算过程中,需要对这种偏好的程度设定一个参数,参数的大小表明用户对物品的偏好程度的大小。根据设置或调整参数的大小,得出最后的值给用户推荐商品,这样的推荐计算结果会更加严谨。

 

基于物品的CF的原理和基于用户的CF类似,

只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给用户。从计算的角度来看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。就是我们常见的:购买该商品的用户还购买了如下商品,等等就是文章开头前的啤酒和纸尿裤的故事,

因为超市的人员发现很多男人买纸尿裤的时候会买啤酒,根据这一用户行为,纸尿裤和啤酒的相似度较高,那么在用户购买纸尿裤的时候推荐啤酒,增加啤酒的销量。也用相同的例子来说明:可以从下表看出,用户B和用户C有一个共同的特征,即选择了英雄联盟也会选炉石传说,说明这两个游戏之间相似度会比较高,那么会当用户A选择了英雄联盟,系统会把炉石传说也推荐给他。但是同时要注意的一点,这种情况也是属于比较理想化的一种,物品和物品之间的相似度可能不一样,也需要调整参数,这里不进行深入的探讨了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据架构师Pony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值