基于用户的协同过滤算法(二):用户相似度计算的改进

用户相似度计算的改进

上一节介绍了计算用户兴趣相似度的最简单的公式(余弦相似度公式),

基于用户的协同过滤算法(二):用户相似度计算的改进_第1张图片

但这个公式过于粗糙,本节将讨论如何改进该公式来提高UserCF的推荐性能。首先,以图书为例,如果两个用户都曾经买过《新华字典》,这丝毫不能说明他们兴趣相似,因为绝大多数中国人小时候都买过《新华字典》。但如果两个用户都买过《数据挖掘导论》,那可以认为他们的兴趣比较相似,因为只有研究数据挖掘的人才会买这本书。换句话说,两个用户对冷门物品采取过同样的行为更能说明他们兴趣的相似度。因此,John S. Breese在论文中提出了如下公式,根据用户行为计算用户的兴趣相似度:

基于用户的协同过滤算法(二):用户相似度计算的改进_第2张图片

可以看到,该公式通过

  

惩罚了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响。本节将基于上述用户相似度公式的UserCF算法记为User-IIF算法。下面的代码实现了上述用户相似度公式。

def UserSimilarity(train):
​​​​​​​​    
    # build inverse table for item_users
​​​​​​​​    
    item_users 

你可能感兴趣的:(AI人工智能算法落地与实践,算法,机器学习,人工智能)