Rethinking Recommendation Engines

原文:: 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同学。

Building Recommendation Engines English | 5 Jan. 2017 | ISBN: 1785884859 | 357 Pages | AZW3/MOBI/EPUB/PDF (conv) | 81.07 MB Key Features A step-by-step guide to building recommendation engines that are personalized, scalable, and real time Get to grips with the best tool available on the market to create recommender systems This hands-on guide shows you how to implement different tools for recommendation engines, and when to use which Book Description A recommendation engine (sometimes referred to as a recommender system) is a tool that lets algorithm developers predict what a user may or may not like among a list of given items. Recommender systems have become extremely common in recent years, and are applied in a variety of applications. The most popular ones are movies, music, news, books, research articles, search queries, social tags, and products in general. The book starts with an introduction to recommendation systems and its applications. You will then start building recommendation engines straight away from the very basics. As you move along, you will learn to build recommender systems with popular frameworks such as R, Python, Spark, Neo4j, and Hadoop. You will get an insight into the pros and cons of each recommendation engine and when to use which recommendation to ensure each pick is the one that suits you the best. During the course of the book, you will create simple recommendation engine, real-time recommendation engine, scalable recommendation engine, and more. You will familiarize yourselves with various techniques of recommender systems such as collaborative, content-based, and cross-recommendations before getting to know the best practices of building a recommender system towards the end of the book! What you will learn Build your first recommendation engine Discover the tools needed to build recommendation engines Dive into the various techniques of recommender systems such as collaborative, content-based, and cross-recommendations Create efficient decision-making systems that will ease your work Familiarize yourself with machine learning algorithms in different frameworks Master different versions of recommendation engines from practical code examples Explore various recommender systems and implement them in popular techniques with R, Python, Spark, and others
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值