Netflix 为一个更好的推荐引擎提供了一百万美金的奖励。更好的推荐很显然是非常有价值的。
但是,什么是更好的推荐?为了获得更好的推荐,我们要做些什么?
在 Netflix Prize,更好的含义是非常具体的。评测的标准是:Netflix 用户对电影的真实打分和算法预测的用户打分之间的均方根误差(RMSE)。
比方说我们构建了一个赢得了比赛的推荐引擎。我们的算法使 Netflix 能够将预测值和用户的真实打分之间的误差降低 10% 以上。这是好的推荐算法吗?
根据我们的期望,这可能是一个不错的算法。如果我们希望显示用户喜欢一部电影的程度(用户的评分),同时对于每一部电影预测的评分值要尽可能准确。
然而,这可能不是我们想要的。相对于在产品功能上显示用户喜欢一些特定的电影的程度,用户更在意一些极端的错误情况。例如:将一部你喜欢的电影(真实打分为 4.5 分)预测为一般般(预测打分为 3.5 分)和将一部你觉得一般般的电影(真实打分为 3.5 分)预测为非常一般(预测打分为 2.5 分),对于用户来说,前者显得非常糟糕。
此外,我们经常希望不要去预测用户看了电影之后会给电影什么样的评分,而是希望帮忙找到用户最感兴趣的电影。TopN 推荐为用户挑出最感兴趣的 10 个左右的物品。即使不能预测哪些人会厌恶或者是不喜欢也没关系。TopN 关心的仅仅是挑出用户将会喜欢的 10 个物品。
擅长对所有电影进行预测评分的推荐引擎并不一定能很好的预测排名靠前的 N 部电影。均方根误差(RMSE)加大了对于预测不准的电影评分的惩罚,但对于一些不错的电影,也许我们真正关心的是最小误差。
这和 Web 搜索有相似之处。搜索引擎主要关心查准率(排名前 10 或排名前 3 的相关结果)。当人们看到的结果中缺少他们需要的内容时,他们仅仅只关心召回率。搜索引擎不关心关于文档的错误得分,它只是尽力找到排名前 N 的文档。
进一步探讨这个问题,在推荐系统和搜索引擎领域,人们的看法很容易受到物品以外的因素影响。人们讨厌网速慢的网站,认为结果加载慢的网站要比加载快的网站糟糕很多。对于每个物品提供的信息上的差异(特别是数据丢失或拼写错误)会影响用户感知。结果的呈现,那怕是超链接的颜色,都有可能影响用户的注意力,影响用户查看推荐结果。当推荐引擎能够向用户解释为什么给他推荐的时候,用户才能够更多的信任推荐结果。同时当用户提供了一些新的有价值的信息之后,希望推荐结果能够立即得到更新。多样性是有价值的;重复让人讨厌。新物品吸引眼球,但用户还是能够很粗糙的判断出那些不熟悉和陌生的推荐结果。
最后,我们希望用户能够快乐,满足。但是一个推荐引擎最大限度地减少均方根误差能让人快乐吗?
没有评论:
发表评论