背景
本文介绍协同过滤推荐算法在我们项目组的使用方案,作为笔记或者供大家参考的小结。协同过滤推荐算法理解为一个推荐算法,推荐算法一个是基于用户的喜好程度的推荐算法可以简写为UserCF
,另一个就是根据商品被喜好程度的推荐算法简称为ItemCF
。
UserCF介绍
UserCF推荐算法其实就是考察某个用户喜好与另一个用户的喜好是否相近,通过跟他臭味相投的人,他臭味相投的人喜欢啥的就推荐给他。
A用户喜欢: a, b, c, d, e
B用户喜欢:a, b, c, x, f
A用户与B用户是一对臭味相投的人,A用户登录系统,那么需要将B用户的商品推荐给A用户即可。推荐商品为 x, f,为什么不推荐a, b, c呢,因为A已经喜欢过a, b, c了;推荐就是要推荐你没有的东西,但是你又可能喜欢的。
通过上面的例子,我们需要客观计算判断两个人臭味相投的程度,也就是提出一个数学公式来表示他们的兴趣相似度。比如我的爱好能跟范冰冰的爱好相同的吗,肯定不会相同,但是差别有多大那是要计算出来。
N ( A ) ∩ N ( B ) ∣ N ( A ) ∣ ∣ N ( B ) ∣ \frac{N(A) \cap N(B) }{\sqrt{|N(A)| |N(B)|}} ∣N(A)∣∣N(B)∣N(A)∩N(B) = W A B W_{AB} WAB
N(A)表示A用户喜欢的商品集合,N(B)表示B用户喜欢的商品集合;分子是两个集合的交集表示,他们喜欢商品的重合数量。这个式子类似三角函数的余弦夹角,在