先回顾一下基于用户的协同过滤算法:
基于用户的协同过滤算法(UserCF)包括两个步骤:
1、找到和目标用户兴趣相似的用户集合
2、找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
一般常用的是余弦相似度计算:
具体例子可以看我之前写的一篇文章:推荐系统UserCF和ItemCF。里边介绍了计算用户兴趣相似度的最简单的公式(余弦相似度公式),但这个公式过于粗糙,本篇文章将讨论如何改进该公式来提高UserCF的推荐性能。
首先,以图书为例,如果两个用户都曾经买过《新华字典》,这丝毫不能说明他们兴趣相似,因为绝大多数中国人小时候都买过《新华字典》。但如果两个用户都买过《数据挖掘导论》,那可以认为他们的兴趣比较相似,因为只有研究数据挖掘的人才会买这本书。换句话说,两个用户对冷门物品采取过同样的行为更能说明他们兴趣的相似度。因此, John S. Breese提出了如下公式,根据用户行为计算用户的兴趣相似度:可以看到,该公式通过 惩罚了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响。 《推荐系统实践》一书中将基于上述用户相似度公式的UserCF算法记为User-IIF算法,同时也对该算法做了测评:
如表所示, UserCF-IIF在各项性能上略优于UserCF。这说明在计算用户兴趣相似度时考虑物品的流行度对提升推荐结果的质量确实有帮助。
顺便解释提到的关于推荐系统的测评指标:
1、准确率、召回率
准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。
一般来说,准确率就是检索出来的条目(比如:文档、网页等)有多少是准确的,召回率就是所有准确的条目有多少被检索出来了。
这篇文章里举了个例子很好的解释了准确率和召回率: 推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
2、覆盖率
覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。长尾:美国《连线》杂志主编Chris Anderson在2004年发表了“The Long Tail”(长尾)一文并于2006年出版了《长尾理论》一书。该书指出,传统的80/20原则(80%的销售额来自于20%的热门品牌)在互联网的加入下会受到挑战。互联网条件下,由于货架成本极端低廉,电子商务网站往往能出售比传统零售店更多的商品。虽然这些商品绝大多数都不热门,但与传统零售业相比,这些不热门的商品数量极其庞大,因此这些长尾商品的总销售额将是一个不可小觑的数字,也许会超过热门商品(即主流商品)带来的销售额。主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。
参考:
《推荐系统实践》
推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure) http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/
网友评论