原文:: http://www.readwriteweb.com/archives/rethinking_recommendation_engines.php
推荐引擎的改进不是一个算法问题,而是表述问题( Presentation issue )。
推荐引擎除了是一个技术问题,还有一些重要的心理学问题:人们想要推荐吗?如果想要,何时推荐给他们?也许还有个更大的问题:用户收到糟糕的推荐会发生什么?
推荐引擎的基础
所有的推荐引擎都试图解决这个问题: given a set of ratings for a particular user, along with those of the whole user base, come up with new items that this user will like 。用到的很多算法都聚焦于:个人的、社会的和重要的( personal, social, fundamental )三个要素。
(1) 个性化推荐( personalized ~ ):基于某个用户的过去的行为
(2) 社会推荐( social ~ ):基于相似用户的过去的行为
(3) 项目推荐( item ~ ):基于项目( item )
(4) 上述三项的联合
The guy in the garage
推荐问题的复杂性是由于可能性的巨大空间。非常类似,很难指出是哪个基因负责人的某个特征;很难指出究竟是电影或音乐的哪点使得我们给了它五星评价。人类思维的逆向工程是很难的( Reverse engineering human thinking is hard )。
Nicknamed Guy In The Garage , Gavin Potter from London 很信赖人的惰性 / 惯性( inertia )。显然,对电影的评价依赖于对之前看过的电影的评价。比如,如果你连续看了三部电影,对它们的评价是四星,之后你看了第四部稍好一点的(和前三部相比),你会对它评价五星。相反,如果你对连续观看的三部电影评价为一星,之后,相同的电影,你换种方式可能评价为五星,现在却只评价四星。 -- 对于连续观看的四部电影,第四部的评分常常是在前三部基础上进行的。
Just when you think that this is not true, you will discover that this algorithm now sits in the 5th place and still is making progress, while other algorithms are spinning. Enhancing formulas with a bit of human psychology is a really good idea and this is where we turn next. 通过一点人类心理学增强规则会是一个好主意。
用过滤代替推荐
这些事在你身上发生了多少次:朋友向你推荐一部电影或一个餐馆,你兴奋的前往,但结果很失望。太多了!很明显,大肆宣传 / 广告宣传使得期待很高,却增加了失败( miss ,失望?)的机会。数学上称之为 false positive 。如果你的朋友并没有向你推荐某部电影,反而告诉你你不会喜欢某部电影,让你别租它,试想一下结果是什么(会发生什么)?
那样会带来负面结果吗?不会太多,因为很可能你不会去看它。但是,即使你看了而且喜欢它,你也不会体验到负面情绪。这个例子指出了我们对 false negative 和 false positive 的不同回应。 False positives 是我们心烦( upset us ),但是 false negatives 不会。使用过滤而不是推荐的主意,就来自这种现象。
文章据此认为, Netflix 举办的改进推荐算法的大赛迟早会失败。要是不那样做,而是展示给你最新上映的影片和一个按钮,会怎么样:过滤掉我不喜欢的。算法是一样的,但是想法( perception )不同。
实时文化中的过滤( Filters in real-time culture )
这个想法在实时新闻的时代变得越来越重要和有力,我们越来越面临持续过滤的新信息( And this idea becomes increasingly important and powerful in the age of real-time news. We are increasingly oriented towards continuously filtering new information. )。我们每天都在用 RSS 阅读器这样做。我们从一系列的新鲜事物发生的角度来看待这世界,旧有的事物是不相关的( We think of the world in terms of streams of news, where things of the past are not relevant. )。我们不需要推荐,因为我们已经订阅过量了( We do not need recommendations, because we are already over subscribed )。我们需要噪音过滤。一个算法是:嗨,你一定不喜欢它,隐藏掉吧。如果机器能为我们丢掉一些信息,那么我们就能自己处理剩下的。借用 Email 中的垃圾邮件功能,如果我们身边的工具有这样一个按钮“给我过滤掉它”,甚至有默认开启这个过滤的模式, we'd all to get more things done 。
讨论
建立一个完美的推荐引擎是一个非常复杂的任务。不管什么方法,协同过滤或者事物的继承属性 ---- 推荐是一个 unforgiving business , false positives 很快会使用户厌烦。也许在问题上应用心理学,能使人们觉得这些复杂的算法真的在工作。让机器过滤掉我们明显不会喜欢的事物,而不是推荐,我们可能会更宽容、理解。
-----------
作者的意思,思考问题时,加入心理学,会产生新的思路。不改变算法的前提下,换个角度,将推荐替换为过滤,可能效果更好。
PS 谢谢Boey同学。