基于领域的算法【详细说明】
基于领域的算法是推荐系统中最基本的算法。
一、什么是协同过滤算法?
二、什么是基于用户的协同过滤算法
2.1 基础算法
基于用户的协同过滤算法主要有 2 个步骤:
- 找到和目标用户兴趣一致的用户集合
- 找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户(首先是兴趣一致用户集合感兴趣的内容,且目标用户没有听说过)
步骤1的关键是计算两个用户的兴趣相似度。给定用户u和用户v,令N(u)表示用户u层级有过正反馈的物品集合,令N(v)为用户v曾经有过正反馈的物品集合。那么我们通过Jaccard公式简单计算u和v之间的兴趣相似度:
或者通过余弦相似度计算:
注意:
(1)余弦相似度的计算,时间复杂度是O(|U| * |U|),这在用户数大的时候非常耗时 ,因为很多用户之间没有对同样的用户产生过行为,即 |N(u) ∩ N(v)| = 0
(2)我们可以先算出 |N(u) ∩ N(v)| ≠ 0的用户对(u,v),然后再进行余弦相似度的计算。
三、什么是基于物品的协同过滤算法
ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。
基于物品的协同过滤算法主要分两步:
(1)计算物品之间的相似度
(2)根据物品的相似度和用户的历史行为给用户生成推荐列表。
四、UserCF与ItemCF的综合比较
思考,为什么Digg使用UserCF,而亚马孙网使用ItemCF?