2011推荐系统论坛游记:爱的反义词不是恨

来源:互联网 发布:红马甲炒股软件 编辑:程序博客网 时间:2024/06/08 08:07

上周日参加了2011推荐系统论坛一日游,来自Yahoo!,淘宝,百度,Google和Hulu的技术人员分享了他们在推荐系统相关领域的经验和想法。这一周陆陆续续看到一些网友写的游记,很多对论坛的内容有详细的分析和介绍。今天我也写点,主要讨论一些印象比较深的话题。

1. Yahoo!的Yehuda Koren的演讲

Netflix Prize大赛之后,Yehuda Koren已经成为明星级的研究人员。单纯从技术角度看,他的演讲无疑是这次论坛上最具吸引力的,其中我觉得最值得琢磨的话题有两个。

1.1 Bias Matters

通过分析Netflix Prize数据,Koren发现用户对视频的评分变化中,Bias可以解释其中的33%,而个性化只能解释其中的10%,剩下的57%暂时还得不到解释,是需要我们进一步挖掘的金矿。10%和57%是两个让人瞠目的数字。Koren很好地展示了怎样利用最基本的统计方法得到对数据最深刻的理解。

Koren是针对Netflix Prize大赛做数据分析的,我想谈的是,竞赛和实际应用毕竟是两码事。设想有一个用户只对他非常喜欢的视频打分,他给出的所有评分都是5分。对这样的用户,他的bias可以100%地解释他的评分变化,只要他给某个视频打了分,将评分预测为5分就好了。但在实际应用中,这没有意义,我们不能认为用户会给所有的视频都打5分,我们首先需要知道用户还有可能对哪些视频打分。虽然这个例子稍显极端,但实际应用中这样的用户不在少数。

更为普遍的问题,是怎么处理用户打分非常低的那些视频。经常会看到有些用户对某些视频恨得牙根痒痒,声称恨不得给它打负5分甚至负100分。相比那些用户没有打分的视频,这些让用户讨厌的视频和用户的兴趣更不相关吗?有一句很好地诠释这个问题的口水话:爱的反义词不是恨,是漠不关心。绝大多数用户是想不起来去给那些根本没有兴趣的视频打分的。用户给某个视频打过分,表明这个视频和他兴趣相关,预测视频的评分,只是在用户感兴趣的视频中,区分出他认为质量好的和差的视频。而在实际应用中,首先要解决的问题是区分用户感兴趣的和不感兴趣的视频。

Bias matters,这话是没错的,但在实际应用中,最需要注意的bias是selection bias:用户并不是随机地选择一些视频去打分,而是只选择那些和他们兴趣相关的视频打分,这可能是把Netflix竞赛结果用到实际应用中会遇到的最大的问题。套用大话西游的句式:如果你不知道用户喜欢的其实是他讨厌的那种视频,你的推荐效果才是最要命的。

1.2 用户兴趣数据的获取

Koren谈到他在CIKM 2010的一篇文章:对于新用户,可以选一些视频让他们打分,从而获取他们的兴趣数据;那么选择什么样的视频给用户,可以用尽量少的视频,最大程度地了解用户兴趣呢?Koren似乎给出了一个非常漂亮的解决方案,他找到了一个单目标的模型,可以容纳这个问题的多重目标:选择那些能够最大程度地区分兴趣组的视频,选择的视频要尽量区分不同的兴趣组,等等。这个话题是这次一日游的一个惊喜,还没来得及读Koren的这篇文章,但我想这篇文章会给很多相关领域的研究带来新的灌水点。

Koren的目标是解决推荐系统的cold-start问题,实际上不光是cold-start问题,即使是已经有很多评分和购买数据的用户,系统对他们的了解往往也还是不充分的。一个直观的例子:如果系统认为用户喜欢某类商品,就总是向他推荐该类商品,那么该类商品的点击次数必然会很高。而另一类用户实际上更为喜欢的商品,因为系统掌握的信息不充分,总得不到推荐机会,点击次数就会很低。这种情况下,会出现富者愈富的现象,最合适的那类商品永远得不到推荐机会。

为解决上述问题,近几年有很多工作,研究如何平衡开发和利用(exploration and exploitation)两个方面,根据已知信息的可信度做以下决定:是展现系统认为最有可能被点击的商品,以提高当前这次展示的盈利期望,还是展示那些信息不充分的商品,得到更充分的信息,以避免富者愈富的潜在问题,提高未来的盈利期望(微软的AdPredictor工作有对这个问题简要的探讨)。

目前关于开发和利用问题的研究,基本还是假定各个商品是相互独立的,也就是说,系统知道了商品A的更多信息,并不能增加对商品B的了解。Koren的工作显然丢弃了这个不合理的假设,如果能够将他的方法引入到开发和利用问题的研究中,对这个问题的研究应该会有一定帮助。

2. 淘宝的玄澄和游龙的演讲

淘宝分别由玄澄和游龙作了两个题目的演讲,印象最深的还是淘宝数据的一些参数:8亿种商品,大部分销量出现在商品上线5个月之内,等等。到目前为止我基本上还不是淘宝的用户,对淘宝的推荐系统并没有直观的印象。但这些数据给我这样一个印象,实现推荐系统所有可能遇到的难题,在淘宝这里都会遇到。具体说,可能的难题有:

a) 商品种类繁多,生命周期短,带来的直接问题是对大多数商品而言,很难及时收集到足够多的点击或购买数据,这使得基于用户行为的推荐方法,比如item-based方法,发挥空间有限。
b) 因为商品是由卖家而非网站登记的,数据的规范性差,这又给基于内容的推荐带来了很大的困难。
c) 而且要考虑到,不论商品特征输入多么规范,大多数情况下,都只能代表商品的一小部分特征,这和新闻或是博文的推荐不同,新闻和博文的文本已经包含了它们绝大部分的特征。
d) 另外,8亿种商品中,重复的商品种类应该非常多,需要尽量避免推荐重复种类的商品给用户,但在数据规范性差、区分度差的情况下,如何归并重复商品种类,这本身也是个很大的难题。
e) 再者,大多数推荐系统只需要考虑如何满足买家的需求,在淘宝,还要考虑卖家的需求,比如说用户到我的店里来看羊绒衫,系统给他推荐其它店的羊绒衫显然不合适。
f) 最后,每天要处理的点击和购买数据量庞大,这个难题在淘宝的环境下似乎只能算个小巫。

淘宝出资赞助了这次论坛,又在论坛上宣布了淘宝研究院的成立,想借此机会招揽人才的意图很明显。有兴趣的同学要多多关注。

3. 百度张栋的演讲

张栋的演讲提到一个被部分受众解释为“算法无用论”的见解:UI/UE:40% > Data:30% > Knowledge:20% > Algorithm:10%,这个提法迅速地占领了相关讨论的大部分频段,使得他演讲的技术内容受到的关注反而减少了。这个话题的热度在一周后的今天仍在延续,我也很有跳进这个坑继续挖挖的冲动。但重读豆瓣的once同学的游记,其中点睛的两句:“首先这是一次盛大而充满技术含量的大会,其中有组委会的同学与赞助商的不懈努力”,让我决定还是把焦点放到技术话题上。

3.1 神经网络和LambdaRank

张栋的演讲中提到怎么看待神经网络,以及基于神经网络的RankNet和LambdaRank算法的问题。在学术界甚至产业界,神经网络似乎都是个有争议的话题,对它有很多宗教狂热式的批评或支持:没有理由,只有态度。从我个人有限的经验看,多层感知器最大的问题是它是非凸问题,局部最优点数量庞大,这使得他的训练非常困难。当训练结果不满意的时候,除了调调参数和初始权重,似乎也没有什么更好的办法。和其他分类器相比,多层感知器的训练结果往往处于比上不足,比下有余的平庸状态。当然,相比其它比较流行的非线性分类器,例如径向基的SVM或是AdaBoost,在输入数据维数特别大(比如超过几万维)并且特别稀疏时,多层感知器在计算效率上的优势还是比较明显的,前提条件是隐层所需的神经元数目不是特别大。

LambdaRank是微软研发的一个基于多层感知器的Ranking算法。LambdaRank大约在2006年或更早就被Bing.com(当时是live.com?)用来做排序,可能是最早投入实际使用的learning to rank算法。实际上,ranking数据集的维数一般在几百维,稀疏性也不是很突出,这种情况下采用多层感知器的理由并不是很充分。LambdaRank发明者后续的一些工作中的试验表明该算法表现平庸,但试验中隐层都只用10个节点,让人感觉试验结果缺乏说服力。

和神经网络不相关的题外话:看到有同学对张栋提到的topic model在Netflix竞赛中的效果有疑问。其实这个问题在演讲中已经提到了,Blei发表的topic model是针对multinomial分布的,并不适合Netflix竞赛的数据,需要替换为正态分布。我以前的博文里其实也有一些相关讨论。

4. 其他

此外还有Google和Hulu的技术人员的演讲,但由于我的生物钟非常不适应会议的时间(主要是早上开始的太早),到后面两讲基本上没听下什么,有空看看录像再来谈。

最后,要感谢论坛的组织者提供的这次交流学习的机会,他们来自淘宝、ResysChina.com、豆瓣网、简网等,没什么能感谢他们的,就帮他们宣传宣传吧。

(欢迎转载 谢绝篡改 作者:chen_1st 微博:http://t.sina.com.cn/chen1st)



首发于:http://www.resyschina.com/2011/03/2011_forum_restropectio.html | Resys China

原创粉丝点击