Netflix提供一百万美元为了更好的推荐引擎。更好的推荐显然很有价值。
但是有什么更好的建议呢?我们说的更好是什么意思?
在Netflix奖中,“更好”的含义非常具体。这是均方根误差(RMSE)是Netflix用户对电影的实际评分与算法预测之间的关系。
假设我们构建了一个在竞赛中获胜的推荐人。我们的预测与人们实际评价之间的误差比Netflix过去所能做到的减少了10%。是,好吗?
这取决于我们想要什么,它可能非常好。如果我们想做的是向人们展示他们可能有多喜欢一部电影,那么对每一部可能的电影都尽可能准确就好了。
然而,这可能不是我们想要的。即使是在向人们展示他们有多喜欢某一部电影的特稿中,人们也会更在意那些极端的失误。例如,如果你说你会对你喜欢的电影不热情(预测是3.5颗星)(实际是4.5颗星),而说你对你不热情的电影不热情(预测是2.5颗星)(实际是3.5颗星)可能会更糟糕。
此外,我们经常想要的不是对任何一部电影进行预测,而是找到最好的电影。在TopN推荐中,推荐者试图为某人挑选最好的10个左右的项目。如果你无法预测人们会讨厌什么或不热情的阴影,那也没关系。唯一重要的是挑选10件别人会喜欢的东西。
一个能很好地预测所有电影的推荐人可能在预测TopN电影方面做得不好。RMSE对你不关心的电影中的错误进行惩罚,就像对伟大电影中的错误进行惩罚一样,但也许我们真正关心的是在预测伟大电影时将错误最小化。
这与网络搜索有相似之处。网络搜索引擎主要关心的是准确性(相关结果排在前10或前3),他们只关心当人们注意到他们可能看到的结果中缺少的某些东西时的回忆。搜索引擎不关心任何文档的错误评分,只关心它们找到前N名文档的能力。
更糟糕的是,无论是在推荐系统还是在网络搜索中,人们对质量的感知很容易受到其他因素的影响,而不是显示的项目。人讨厌慢速网站会认为慢速出现的结果比快速出现的结果更糟糕。每一项信息的差异(特别是缺失的数据或拼写错误)会影响感知质量。展示的问题,甚至链接的颜色,都可能改变人们关注的焦点和他们看到的推荐。当引擎能够解释为什么会产生这些建议时,人们会更加信任这些建议。人们喜欢在有新信息时立即更新的推荐。多样性是评估;在重复的不喜欢。新项目吸引眼球,但人们往往会对不熟悉或未被认可的推荐做出严厉的评判。
最后,我们想要的是快乐、满意的用户。最小化RMSE的推荐引擎会让人们满意吗?
我相信这篇文章的主要观点是正确的:最好的RMSE不等于最好的用户满意度,但我不确定TopN是电影推荐系统的唯一相关指标。例如,TopN没有提到多样性(如果我喜欢Pierre Richard的法国喜剧,这并不意味着我这周只想看它们,我想要更多不同类型的建议),新鲜感等等
我希望好的电影推荐系统是一个好的“探索”互动系统,它可以告诉我为什么我可能喜欢这部电影,为什么它与我喜欢/不喜欢的电影相似/不同(http://www.clerkdogs.com/是一个很好的例子)。
电影评级的例子让我想起了效用理论——我真的需要温习一下,但可能有一些效用的拟合模型,可以用来推导出在某些领域推荐的改进质量度量。
我认为质量度量的领域或用户需求特异性是这里的关键。我对新闻过滤系统和电影推荐系统的要求是不同的。
前者应该让我了解情况,同时花费我最少的时间,我不需要解释为什么某些东西被推荐给我——除非它已经到我必须弄清楚应该采取什么纠正措施的地步。
后者可以帮助我确定应该在哪部电影上投入时间和金钱,我愿意提前投入一些时间来做出一个好的决定。在这里,推荐电影的多样性和解释推荐电影的原因是受欢迎的。
推荐系统的伟大之处是什么?在我看来答案很简单。最好的推荐系统是那些吸引用户并提高客户忠诚度的系统。
像在给定训练集的测试数据集上的RMSE这样的东西,最好的情况下是粗糙的代理,最坏的情况下是完全偏离目标。甚至像点击率,订单大小和转化率这样只考虑会话级别行为的指标也会产生误导。根据我的经验,它们往往会把你引向那些从长远来看并非全局最优的建议。
微妙的平衡是要对市场的短期趋势做出反应,但要着眼于通过与客户的深入关系来推动长期价值。
我一直在和richrelevance的客户进行这样的对话,我很高兴他们和我一样致力于与他们的客户建立长期的关系。
除了如何解释RMSE(或您决定的任何指标)之外,您确实必须考虑用户的任务和糟糕推荐的成本。
对于Netflix的用户来说,糟糕的推荐所带来的损失并不大。差推荐的风险(推荐要差到什么程度,你还在租电影,还毁了你的夜晚?)也不是很大。
长期以来,我一直认为这是推荐研究的一个长期障碍——除了它的商业化程度,你在推荐电影方面只能做到这一步。推荐器在许多其他领域都有应用,但并不全是在产品或媒体推荐中,但在这方面还没有做过研究。嗯,不是很多。
虽然我同意用户通常想要更多的5星电影和更少的1星电影,但我不同意这意味着推荐类似于TopN网络搜索。Web搜索假设交互性很少,一旦用户找到了他要找的一个项目/链接,他就完成了搜索活动。
另一方面,有了推荐,人们更倾向于探索和回忆。我敢打赌,人们在Netflix的队列中不会只有3到10个项目。我们不得不问Netflix的平均队列长度是多少,但坊间证据(http://www.geeksugar.com/1865307)显示这个数字在几十到数百之间。这比网络搜索的top3或top10更倾向于回忆。
另一个例子是音乐推荐,如Pandora。你在潘多拉上植入几首你喜欢的歌曲或歌手,它就会为你建立一个个性化的、以推荐为导向的电台,并以大约每小时20首歌曲的速度向你播放音乐。几个小时,几天,推荐的数量就有几百个了。在使用Pandora几周或几个月后,这个数字就变成了数千。
因此,与网页搜索不同的是,人们希望找到唯一的答案并完成搜索,Pandora的音乐推荐是一个长期的、以回忆为导向的过程。我敢打赌,人们甚至更愿意忍受一些糟糕的、甚至更不温不火的歌曲,因为他们更有兴趣听到尽可能多的好、不同的、有趣的歌曲(几十首?数百名?)。挑选10件人们会喜欢的东西并不是他们唯一在乎的事情。记得胜过精度。
我认为5星推荐系统作为一种偏好评级系统存在根本性缺陷。五星体系本来是一个民主的评级体系,应该用来衡量个人的偏好。Netflix应该挑战的是开发更好的评分系统,而不是更好的算法。阅读更多:
http://www.thinksketchdesign.com/2009/03/25/web/media/netflix-on-facebook-the-slow-revolution-of-recommendation-engines
我在网站上发表了关于这个话题的文章
http://www.stat.columbia.edu/~cook/movabletype/archives/2008/11/netflix_prize_s.html
RMSE不会奖励一个意识到自身不确定性的系统,区分平庸和争议确实需要一个不确定性模型。
另一件似乎经常被忽视的事情是如何让用户相信推荐。当我第一次开始使用推荐算法时,我试图产生新颖的结果——用户不知道的东西,他们会感兴趣,而不是使用一些更基本的计数算法,例如在亚马逊的相关产品中使用。我很快意识到,就连我自己也不相信这些推荐。它们似乎互不相关,即使点开它们,我也会意识到它们其实很有趣,很相关。
我从中得出的结论是,在一组推荐中,你通常想要扩大它们的规模,这样你就会插入一些明显的结果,以建立信任——用户几乎肯定知道这些东西,可能不会点击,但他们会建立“好吧,是的,这是我的口味。”然后你应用第二种排序方案,跳到他们不知道的事情上。一旦你建立了对这些推荐的信任,他们就更有可能跟进那些更新颖的推荐。
这与搜索的关键词是“权威来源”有所不同(追溯到Kleinberg关于基于图表的搜索的开创性论文)——你想要找到新奇和身份的正确组合,而不仅仅是寻找高度相关性。
也许为了两全其美,专注于改进搜索和推荐(精确度和召回率),为人们提供发现媒体的两种选择是正确的做法。
http://www.jinni.com
我在网站上发表了关于这个话题的文章
http://www.stat.columbia.edu/~cook/movabletype/archives/2008/11/netflix_prize_s.html
RMSE不会奖励一个意识到自身不确定性的系统,区分平庸和争议确实需要一个不确定性模型。
显示所有10个评论