推荐阅读时间:6min~8min 文章内容:基于物品的协同过滤
在了解了基于用户的协同过滤之后,还有基于物品的的协同过滤。它们的原理非常类似。在电商平台中经常看到“看了又看”,“看过它的人还看”等等推荐,这些推荐背后对应的算法大多数都是基于物品的协同过滤。
介绍基于物品的协同过滤之前,先来看下基于用户的协同过滤可能带来的问题。
基于物品的协同过滤就是根据用户历史行为来计算出物品之间的相似度,然后会用户推荐跟他消费过的物品类似的物品。那么它是如何解决基于用户的协同过滤存在的上面的问题呢?
使用余弦公式来计算。
解释下,x,y 表示两个物品的向量,x_i,y_i 表示物品向量中的每个元素。分母是计算两个物品向量的长度,求元素值的平方和再开方。分子是两个向量的点积,相同位置的元素值相乘再求和。
在计算得到物品相似度结果之后,下来要做的是生成推荐结果,在不同的场景,可以生成不同的推荐结果。
相关推荐
相关推荐关心的是当前物品与推荐物品的相关性,所以针对每个物品,可以直接按照与该物品相似度倒排,然后取 Top N 即可。
个性化推荐
个性化推荐需要考虑的是与用户偏好相关的,所以需要针对每个用户计算一个推荐结果,也就是预测用户对每个物品的结果。
解释下上面的公式:
等号左边表示预测的用户 u 和 物品 i 的匹配评分。等号右边表示匹配评分的计算过程。
sim(i,j) 表示物品 i 和 物品 j(当前用户 u 已消费的物品之一) 的相似度,r(u,j) 表示当前用户 u 对 物品 j 的评分。分母是对当前用户 u 已消费过的 m 个所有物品与物品 i 的相似度进行求和,分子是把这当前用户对已消费过的物品 j 的评分,按照相似度加权求和。
注意:这里说的评分是指广义上的评分,可以指普通的 1-5 ,也可以是 1 或 0,表示买过或未买过等布尔类型的行为。
上面的计算过程都是离线的,为每个用户计算出推荐结果之后,保留分数最高的前 N 个作为之后的推荐结果。
基于物品的协同过滤,首先会计算不同物品之间的相似度,然后根据根据不同的应用场景选择不同的推荐结果,“相关推荐”会直接选用与当前物品相似度最高的 Top N,个性化推荐会根据用户已消费过的物品来计算对每个物品的预测评分。
相关推荐:
点击这里领取BAT面试题 ==》:BAT机器学习/深度学习面试300题
点击这里领取AI小抄表 ==》:AI 小抄表福利大放送,快来收藏吧
作者:无邪,个人博客:脑洞大开,专注于机器学习研究。