您的位置:首页 > 其它

推荐系统方法之协同过滤

2014-04-03 20:17 169 查看
现如今,推荐系统的应用无处不在,亚马逊、当当、淘宝....都使用了推荐系统。

推荐系统算法主要有以下三种:

1.基于人口统计学的推荐

2.基于内容的推荐

3.协同过滤

在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。

什么是协同过滤

协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

换句话说,就是借鉴和你相关人群的观点来进行推荐,很好理解。

协同过滤的实现

在协同过滤中,有两种主流方法:基于用户的协同过滤、基于物品的协同过滤

基于用户的协同过滤算法主要包括两个步骤:

(1)找到和目标用户兴趣相似的用户集合;

(2)找到这个集合中的用户喜欢,且目标用户没有听说过的物品,并将此物品推荐该目标用户。

对于步骤(1),计算两个用户之间兴趣的相似度,给定用户A和用户B,他们的相似度可通过余弦相似度来计算:



其中: N(A)为用户A喜欢的物品的集合,N(B)为用户B喜欢的物品的集合。

该公式分子的含义为:用户A和用户B共同喜欢的物品的个数

该公式分母的含义为:用户A喜欢的物品的个数乘以用户B喜欢的物品的个数,再开根号

比如,A喜欢{a,b,d},B喜欢{a,c},那么用户A和用户B的相似度为:



下图给出了一个例子,对于用户 A,根据用户的历史偏好,找到和用户A兴趣相似的用户-用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。



基于物品的协同过滤算法主要包括两个步骤:

(1)计算物品之间的相似度;

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

对于步骤(1),计算两个物品之间的相似度,给定物品i和物品j,它们的相似度可通过余弦相似度来计算:



其中: N(i)为喜欢物品i的用户的集合,N(j)为喜欢物品j的用户的集合;

该公式分子的含义为:既喜欢物品i又喜欢物品j的用户的个数;

该公式分母的含义为:喜欢物品i的用户的个数乘以喜欢物品j的用户的个数,再开根号。

下图给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户
C 可能也喜欢物品 C。

注意:两个物品产生相似度是因为它们共同被很多用户喜欢。



详细请参考:https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: