一、什么是好的推荐系统
对推荐系统的评价和单纯的算法的评价略有不同,评价一个推荐系统的好坏可以从多个角度去评价。
1. 推荐系统的实验方法
首先我们先来介绍下获得这些指标的实验方法,主要有离线实验、用户调查、在线实验。
离线实验的数据主要从数据集上完成,不需要从一个实际的系统来获取实验,只要提供系统日记即可,缺点是无法获取商业上的指标,并且离线实验和商业指标上存在差距。
用户调查是需要一些真实的用户,在推荐系统上完成一些任务,根据他们的答案和行为了解系统的性能。可以完成离线时没有办法评测的用户的主观感受,因为高预测率并不等于高用户满意度。但是这种方式成本比较高,同时还要保证样本用户的可靠性。
在线实验主要是AB测试,AB测试是可以公平的获得不同算法实际在线时的性能指标,缺点是周期比较长,切分流量也是AB测试的关键,因为从前端展示到后端的算法,中间经过了很多层,我们需要知道结果的改变是推荐算法的改变还是页面展示的改变。
总之,一个推荐算法需要上线,首先,通过离线实验证明很多的离线指标可以优于上面的算法,其次通过用户调查确定它的用户满意度不低于现在的算法,最后通过AB测试确定在我们关心的指标上优于现有算法。
2. 推荐系统的评测指标
(1) 用户满意度
有的网站是通过反馈按钮来反映用户的满意程度、更一般的情况我们可以用点击率、转化率、用户停留时长来反映
(2) 预测准确度
l 评分预测
通过均方根误差(RMSE)和平均绝对误差(MAE)判断
lTopN推荐
召回率
准确率
(3) 覆盖率
覆盖率是是一个可以描述推荐系统对物品长尾的发掘能力,即推荐系统推荐出来的物品占总物品集合的比例。
但是覆盖率为100%的物品的系统可以有无数的物品流行度分布,如果所有的物品都出现在推荐列表里,且出现的次数不多,那么推荐系统的发掘长尾的能力就比较好。有另外两个指标来衡量,分别是
信息熵
基尼系数
(4) 多样性
每个人的兴趣是多样的,类似的,在推荐系统中,如果可以发现用户不同的兴趣点,那么这样的推荐系统就会具有多样性。
我们可以用一个公式来描述推荐系统的多样性,
先计算用户u推荐列表的多样性
再计算推荐系统整体的多样性
(5) 新颖性
新颖性是指给用户推荐那些他们以前没有听说过没有看过的物品,评价新颖性的一个方法主要是利用推荐结果的平均流行度,因为越不热门的物品越有可能让别人觉得新颖。
(6) 惊喜度
首先区分和新颖性的意义,惊喜度偏向推荐结果和用户的历史兴趣不相似,但却让用户满意。
(7) 信任度
可以增加推荐系统的透明度,以及根据好友推荐可以增加信任度。
(8) 实时性
在很多网站中,很多物品具有时效性,比如新闻、微博等。
(9) 健壮性
任何一个可以盈利的系统都会被人攻击,有人推荐系统是依赖用户行为的,比如有的人回你雇佣一批人给自己的商品高评分。对于这种方法可以尽量使用代价高的用户行为(比如有购买记录的用户),以及在使用数据前进行清洗。
(10) 商业目标
最终的是目的是盈利,但是计算这种盈利模式的代价比较高。
3. 评测维度
增加评测维度的目的是知道一个推荐系统在什么情况下性能最好:
用户维度:用户活跃度以及是不是新用户
物品维度:包括物品的流行度以及是不是新加入的物品、属性信息、平均分
时间维度:季节、工作日还是周末 白天还是晚上
参考书目:项亮:《推荐系统实战》