之前在Netflix Prize的时候,我们Ensemble组内部讨论过,如果很多人共用一个账号,而他们的兴趣不同,这可能会造成推荐结果的不准确。那么如何能够分开共用一个账号的用户呢? 当时我们的组员Lester Mackey提出过一些idea,但是当时因为时间紧张,没有能实现这个model。 最近Lester Mackey在ICML上发表了一篇文章”Mixed Membership Matrix Factorization“,详细讨论这个idea。他将LDA和SVD结合了起来,认为每个user id可能对应了好几个人,所以一开始用多项式分布采出一个id对应的人,而每个人对应一个latent factor。他的方法在RMSE上的提高是比较明显的 0.9 => 0.896 这个model很有意思,大家可以看看,也许我理解的不是那么准确。
知道推荐解释是很久之前的事情了,但真正了解推荐解释的重要性却是最近的事情。推荐解释之重要,在于他可以让用户理解推荐,并且知道他的行为是怎样影响他的推荐结果的。 好的推荐解释的例子有上图amazon的推荐解释。另外大家常用的google reader也是有推荐解释的。他的推荐解释是基于user的,他会告诉你这篇文章谁也喜欢,或者是谁分享的。这个时候,用户如果要获得好的推荐,他可以通过选择follow谁来决定。所以说,有了好的推荐解释,甚至可以不用算法。我个人把twitter本身也看做一个有解释的推荐系统。用户可以通过选择follow来决定自己的首页上显示什么样的消息。 一个好的推荐系统,不在于其算法的复杂性,也不在于其精度或者其他指标。而是在于他能成为一个循环的良性系统。一个系统要进入良性循环,反馈是最重要的。而反馈是用户给的,如果用户能给出好的反馈,那么推荐系统就会越来越好。这几年推荐系统的研究逐渐复杂化,大家都在比拼自己算法的高深和玄妙,其实没有必要。复杂的算法只是用来应付坏的数据,而如果数据足够的好,简单的算法效果是最好的。 用户有的时候困惑于我们的推荐,他们会很奇怪,为什么我们给他推荐这个东西。从而产生对推荐系统的不满。这个时候,如果我们给他以解释,告诉他我们为什么推荐这个,已经推荐结果和他的日常行为之间的关系。用户就可以知道如何反馈行为给推荐系统。同时对奇怪的推荐的不满程度也会下降。 其实揭示算法的本质,goole很早之前就做了。google鼓励大家seo,并且告诉大家什么样的网页权重会高。这也促进了互联网上网页格式的统一,对google本身也是好的。当然这也会引来作弊,这是双刃剑,无法避免。 国内的推荐系统在解释方面不是很重视,豆瓣似乎一直是没有解释的,他只是简单区分了友邻的推荐和基于浏览历史的推荐。 我感觉,好的推荐系统是应该以可解释性为中心的。一个不可以解释的推荐系统终将不能成为一个持久的系统。当然很多算法的解释性不好。KNN的解释很容易,而SVD的算法几乎就是没法解释的。而往往常规的推荐系统设计是以精度为中心的。我现在对精度的看法是,这件事基本不靠谱。我们实验测的精度,和用户满意度之间有没有线性正比关系,我相当怀疑。一个用户对一个系统满意,不仅仅在于推荐本身是否满足他的需要,而且在于系统告诉他,他应该怎么做才能获得自己想要的结果。 对实验精度的另一个批判是,这其实只是预测精度。预测这件事情有的时候很容易做对,他的难易在于被预测item的信息量。如果我预测太阳从东方升起,那肯定是100%的精度。而我对现有推荐算法的看法是,我们的所谓预测精度的提高,往往都是在提高对容易预测对的事情的预测精度,而对于不容易预测对的事情的精度,我们几乎没有提高。比如在netflix prize中,对于高方差的电影(用户看法极端不一致的电影),我们的预测精度的提高甚至连1%都没有。要知道,如果一个电影全世界的人都打4分,你预测一个新人也打4分,预测对了,也是没有意义的。
http://blog.netflix.com/2010/03/this-is-neil-hunt-chief-product-officer.html 还是因为隐私问题
After Netflix Prize, Netflix inc. announce that they will hold another competition by using more user data (gender, zipcode, age, etc) to improve prediction accuracy of recommender system. However, many Netflix users think this is violate to they privacy rules and do not want Netflix to reveal such data. http://www.wired.com/threatlevel/2009/12/netflix-privacy-lawsuit/ As a competitor of Netflix [...]
TechnoCalifornia 新发表了一篇博客讨论内容信息在推荐系统的作用。可以在这里看到。 http://technocalifornia.blogspot.com/2009/12/on-uselessness-of-content-for.html 鉴于blogspot被封了,我转载一下他的博客,并讨论一下我的看法。 在NetflixPrize中,对于如何利用IMDB的内容信息有不少人有过研究,我也做过一些模型。我们的基本结果是,内容信息可以稍微改善一个单独模型的精度,但在最后的融合中基本不起作用。这篇文章就从这个出发点来讨论内容在推荐中究竟有没有用。 This is one of the hot discussions that has sparked as a result of the Netflix Prize. During the competition several teams reported trying to use movie metadata always with discouraging results. This is probably best summarized by a 2008 post by Pragmatic Theory, one of the leading teams. The [...]
http://www.surveymonkey.com/s.aspx?sm=22wRLb_2ftg1lYXUtUOjXNVA_3d_3d 还是比较有意思的,调查者来自 Universidade Católica Portuguesa – a Business School in Lisbon
AusDM收集了Netflix的两支队伍BPC和Ensemble的1151个模型,组织了一个比赛,看谁能设计出最好的融合算法,从而得到精度最高的预测。 这里是比赛的网站 http://www.tiberius.biz/ausdm09/index.php In brief: You have asked several experts to independently build you some mathematical models that will predict how your customers would rate particular movies. All the experts, who were given the same information on how previous movies were rated, provided predictions with very similar accuracies. While trying to determine which experts predictive [...]
Netflix update leaderboard today and report RMSE in test set for every competitor. Following is the screenshot. I am in #13 of leaderboard, and The Ensemble is in #2 now. The all dataset can be download here http://archive.ics.uci.edu/ml/datasets/Netflix+Prize The report from Wining team BPC can be download here http://www.netflixprize.com//community/viewtopic.php?id=1537
This is the first time I see my teammates in photo. Photos comes from Chefele, a member of The Ensemble. Photo in Flickr http://www.flickr.com/photos/chef_ele/3940069526/in/set-72157622421793714/ I have not attend the conference, so, I am not in the photo Ten of the 30+ members of “The Ensemble” posed for this team photo while attending the Netflix Prize [...]
Netflix公司正式宣布了NetflixPrize的结果,BPC获得了冠军,他们在test set上的结果是10.06%,当然我们的也是10.06%。我们之所以输了,是因为我们比BPC晚提交了20多分钟,sigh,天意弄人啊。 http://www.netflixprize.com//community/viewtopic.php?id=1537 Netflix公司同时宣布了下一个比赛项目,这个比赛的任务根据我的理解,是利用content信息来解决cold starting的问题,不过Netflix没有说如何评测大家的算法,所以目前这个问题应该说还没有完全定义出来。 我准备把手头的论文写完了,再考虑是否参加Netflix2的问题,如果单纯是content filtering,感觉没有太大的意思,业余搞搞还是可以的,不太适合作为研究的方向。