目录
1、相似度的度量
欧氏距离,度量的是空间中两个点的绝对差异,适用于分析用户能力模型之间的差异:
余弦相似度,度量的是两个向量之间的夹角:
皮尔逊相似度,先对向量做了中心化,向量p和q各自减去向量的均值后,再计算余弦相似度,皮尔逊相似度计算结果在-1到1,-1表示负相关,1表示正相关:
Jaccard相似度,是两个集合的交集元素个数在并集中所占的比例:
扩展,在社交网络中,如何计算好友的相似度。1)选取一些标签特征,如职业、爱好、营销号、是否大v等,计算Jaccord相似度;2)选取帖子关键词向量,计算余弦相似度;3)选取帖子发布量、月帖数量、帖子字数等,计算欧氏距离。最终将这几个相似度融合得到总相似度。
2、基于用户的协同过滤算法
2.1 算法原理
usercf会给用户推荐和他兴趣最相似的K个用户喜欢的物品,主要包括两个步骤:
1、找到和目标用户兴趣相似的用户集合。用户相似度采用余弦相似度
2、找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
2.2 用户相似度计算的改进
两个用户对冷门物品采取过同样的行为更能说明他们兴趣的相似度,惩罚热门物品对用户相似度的影响
2.3 使用的场景
userCF适用于新闻资讯推荐,如Digg,不同用户群体之间的兴趣差别很大,推荐结果反映与用户兴趣相似的小群体的热点,保证推荐结果的热门和实时性。同时,资讯更新很快,userCF可以将新资讯推荐给用户。
3、基于物品的协同过滤算法
3.1 算法原理
ItemCF根据用户行为,为用户推荐可能感兴趣的相似商品,主要分为两步
1、计算物品之间的相似度
2、根据物品的相似度和用户的历史行为为用户生成推荐列表
3.2 物品相似度计算的改进
热门物品会获得较大的相似度,导致推荐结果集中在热门物品,解决方案如下
其一,加大对热门物品的惩罚
其二,引入物品的内容相似度,提高推荐结果的覆盖率和新颖性。
3.3 使用的场景
ItemCF更适合应用在电商网站,如亚马逊,因为在电商网站,用户兴趣比较固定和持久,itemcf 根据用户感兴趣的商品,推荐相似商品,推荐结果反映用户自身的兴趣偏好;物品更新速率比较慢,并且用户数远远大于商品数,物品的相似度矩阵更容易计算,物品的相似度矩阵可以每日更新一次;itemCF能够捕捉到用户实时的兴趣偏好变化,用户有新行为时,推荐结果能够实时更新。
4、userCF和itemCF比较
| UserCF | ItemCF |
性能 | 用户数远远小于物品数;物品实时更新 | 物品数远远小于用户数; |
领域 | 资讯领域,时效性较强,用户个性化兴趣不太明显 | 电商、音乐、电影等领域,用户个性化需求强烈 |
实时性 | 用户有新行为,推荐结果不能立即变化 | 用户有新行为,一定会导致推荐结果的实时变化 |
冷启动 | 新物品上线后,一旦有用户对物品产生行为,就可以把新物品推荐给兴趣相似的其他用户 | 新用户只要对一个物品产生行为,就可以推荐相似的其他物品 |
推荐理由 | 很难解释 | 利用用户的历史行为给用户做推荐解释,用户比较信服 |
参考资料:
https://time.geekbang.org/column/74
《推荐系统实践》