- 协同过滤的概念
协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。
- 协同过滤的分类
- Itemcf,基于物品的协同过滤
- Usercf基于用户的协同过滤
- 协同过滤的算法思想
- Itemcf:
物品、用户 |
Ua |
Ub |
Uc |
Ud |
Ia |
1 |
1 |
|
|
Ib |
|
1 |
1 |
|
Ic |
1 |
1 |
|
1 |
Id |
|
|
1 |
1 |
假设当我们存在如上矩阵,第一行表示四个用户,第二行表示四个物品,我们仅用1来表示用户是否对该物品感兴趣。
由表中我们可以得知,ia与ic有着很高的用户重合度,而其中ic有一个ia没有表示兴趣的观众ud,我们因此可以将物品ia推荐给用户ud,达到我们精准营销的目的。
公式表示:
我们先取出两种物品i,j,对其重合度进行打分。
物品i,j的用户集合分别用u(i),u(j)表示,则其用户重合度越高时,Sij(ij物品的相似度)越高,而为了避免因为大热门导致用户重合合集样本很大,因此我们需要除以他们的并集。当一个物体与另一个物体完全一致时,他的相似度为1.
找到了物品相似度后,我们需要基于类似的商品,对每个用户推荐程度进行打分:
N(u)表示用户u感兴趣的商品集合,s(j,k)表示与物品j最相似的前k个物品的集合。公式的含义为,和用户历史上感兴趣的物品越相似的物品,越有可能在用户的推荐列表中获得较高的排名。
2.Usercf:
与itemcf类似的,我们将用户与用户之前通过购买过的相同商品联系起来,获得用户的相似度集合
N(u)表示用户u行为过的物品集合,N(v)表示用户v行为过的物品集合,当然这个集合我们也可以将其改为行为分数。
usercf的推导过程与itemcf类似,也是通过遍历行为过i物品的用户集合,进行方向的推进。获得商品i对于用户u的推荐度。
- 两种协同过滤推荐算法的优劣及其使用的场景
优缺点 |
usercf |
itemcf |
推荐实时性 |
不会很快造成推荐结果的变化 |
会实时造成推荐结果的变化 |
新用户/新物品的推荐 |
新用户到来不能立即得到推荐 |
新物品不能立即得到推荐 |
推荐理由的可解释性 |
|
|
试用场景 |
usercf |
itemcf |
性能层面考量 |
当item>>user |
当user>>item |
个性化层面考量 |
|
采用itemcf |
|
|
|