推荐算法学习(一):协同过滤

  • 协同过滤的概念

协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。

 

  • 协同过滤的分类
    1. Itemcf,基于物品的协同过滤
    2. Usercf基于用户的协同过滤

 

  • 协同过滤的算法思想
    1. 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

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq553823465/article/details/86063725