aDev第13期#个性化推荐技术#总结(Part III, Final: 稳国柱@豆瓣)

Posted by Breezedeus on November 12, 2012

Talk3:寻路推荐,稳国柱@豆瓣

ppt下载地址

作者介绍了在豆瓣经历的三个推荐产品:电影推荐、图书推荐和电台的音乐推荐。

  1. 电影推荐。在电影推荐中如果纯粹使用CF算法,会产生比较严重的头部效应(热门电影同时被推荐)。用户在一家影院看完某部动作片后,他经常会对在这家影院同时上映的很多电影一起评分。如果直接把CF算法应用于用户的评分数据上,就可能导致喜欢动作片的也喜欢剧情片的尴尬。作者使用了豆瓣上优质的标签数据解决这个问题。首先把电影按照电影标签进行分组(比如分成动作片,剧情片等);然后在每个组里面使用CF算法产生推荐结果;最后把每组中获得的推荐按照加权组合的方式组合在一块。

  2. 图书推荐。图书推荐中有一些新的挑战。图书有一定的阶梯性,比如有科普数学图书以及专业数学图书,为看专业数学书的用户推荐科普数学书一般意义不大。而且很多人更愿意从领域专家那里获得图书建议,而不是从公众。毕竟人的境界差别很大,想看的书也差别很大。用作者的话说:“在大部分的场合,我们需要的并不是与自己相似的用户的推荐,而是与自己相似的专家的推荐”。所以作者利用专家来为其他人产生推荐。首先从所有用户中以某种方式选出各个图书方向的专家,然后每个方向的专家再为每个用户产生那个方向的推荐。最后给用户的推荐列表当然是综合了各个方向的专家的推荐了。这里面的一个问题是,那对专家自身的推荐来自哪呢?专家得自己能探索新书!

    流程图

  3. 电台的音乐推荐。音乐推荐又有更多的挑战了,如“怎么平衡不同用户群在不同状态的需求”,“怎么根据用户实时反馈做出响应”等。作者在项目开始时就比较明确单一的算法是没法获得好的推荐结果的,必须使用一个算法系统(其中包含多个算法)来针对不同的用户进行不同的算法调度。下面这个系统图中的“DJ”指的就是不同的推荐算法,而“Dispatcher”就是算法调度器,它依据用户的反馈实时调整并调度该使用的算法。

    架构图

最后,作者认为理想的推荐系统应该是能够跟随用户的成长而不断成长的。