基于物品的协同过滤算法(Item-CF)

来源:互联网 发布:去码软件 编辑:程序博客网 时间:2024/06/04 18:40

一、算法思想。

    基于物品的协同过滤算法,是给用户推荐和他之前喜欢的物品相似的物品。

基于物品的协同过滤算法,是目前广泛使用的一种推荐算法,像Netflix, YouTube, Amazon等。

 

二、算法步骤。

1、计算物品之间的相似度。

计算相似度的方法有以下几种:

  • 基于余弦(Cosine-based)的相似度计算,通过计算两个向量之间的夹角余弦值来计算物品之间的相似性,公式如下:


其中分子为两个向量的内积,即两个向量相同位置的数字相乘。

  • 基于关联(Correlation-based)的相似度计算,计算两个向量之间的Pearson-r关联度,公式如下:

其中表示用户u对物品i的打分,表示第i个物品打分的平均值。


 

计算物品(item)间的相似度的实现:(根据所有用户U的”历史偏好”数据,即:打过分的item数据,来计算item间的相似度)

同时对物品Ii、Ij打分的用户集合U=(u1,u2,…un),计算物品Ii、Ij的相似度。按照上面3种方法:

         i. 余弦Cosin:

U对物品Ii打分,组成一个向量v1(r1,r2,…,rn);U对物品Ij打分,组成一个向量v2(r1,r2,…,rn),利用余弦公式,计算物品 Ii、Ij的相似度sim(Ii、Ij)。

         ii. Pearson-r关联度:

直接按照公式计算。


          这样,就得到一个物品间的“相似度矩阵M”。

 

2、根据物品的相似度和用户的历史行为给用户生成推荐列表。

       用户的历史行为也就是用户对若干个物品产生过购买、浏览、关注等行为,假设这些商品的集合为:


假设用户未发生过行为的物品为:


在得到物品间的相似度后,Item-CF通过如下公式计算用户u对物品j的兴趣度:


其中,表示用户对产生过行为的物品i的兴趣度;表示物品i,j的相似度。


3、为用户u生成推荐列表。

       对J中所有物品打分后,倒排序,取TOP K,作为推荐结果。

 

 

0 0