推荐系统 BR:深入浅出混合推荐技术
By arthur503 -- 30 Sep 2013
这是盛大智能推荐团队负责人陈运文在程序员(201310期)上的文章。话说每次买程序员都是因为有推荐系统的文章,不过,全本书也就觉得两三篇有用,其他没什么意思。
这篇主要讲的是混合推荐技术,是指在推荐系统中,单一的推荐算法是不存在能够通吃所有应用场景的,每种推荐算法都有局限性,因此需要使用混合推荐技术,对用户进行推荐。
一、用户为什么需要推荐?
在推荐技术出现之前,用户在网络上也是好好的,没有什么推荐需求。为什么推荐技术一出来,好像大家都一下子突然就都需要推荐了,推荐成了硬性需求。那么,这个需求是从哪来的呢?
人对推荐的需求是从来就有的,并不是突变产生的。在之前的博文互联网产品:深入挖掘并重新定义用户需求的满足方式中也提到过,与漫长的人类进化史相比,短短的几十年内,人类的需求是不会有明显变化的。
我们在之前的上网过程中,推荐需求是在现实世界里满足的。比如,我想去看个电影,一般是问同学什么电影好看,有没有推荐的。看书、购物也同样如此。随着网络上的信息的增多和数据挖掘技术的进展,我们才可以通过对用户数据的分析,挖掘出用户的喜好,预测出用户会感兴趣的东西。
二、用户什么时候需要推荐?
推荐系统并不是万能的,也不是什么时候都需要的。作者在文中分析了,在用户搜索意图不明确、不容易表达清楚,或需要个性化、非热门内容时,需要用到推荐。如果搜索意图明确,或需要热门内容时,就是搜索的需求了。
三、怎样对用户进行推荐?
这就涉及到推荐算法。作者分析了各种推荐算法的优缺点,最后结论是:“一招鲜,吃遍天”的推荐算法是没有的。所以需要混合推荐技术,来适应不同的推荐场景。
四、如何进行推荐算法的混合?
从架构上看,可以分为Online-Nearline-Offline的三段式混合系统,各系统分别负责热门请求、短期计算和长期推荐计算。
从算法上看,可以分为加权型混合推荐、分级型混合推荐、交叉混合推荐和瀑布型混合推荐。基本上是用加权(静态和动态计算权值)、分级排序(好的推荐算法结果排前面,其他往后排)、交叉(不同推荐算法配比来保证多样性)和过滤(类似Adaboost分级过滤)的思想。
最后介绍的推荐基础特征混合、推荐模型混合和整体式混合推荐框架则感觉是从基础特征的筛选、推荐模型的内嵌,以及商业和产品等角度来考虑的,对我而言,现阶段还涉及不到,等到做一个产品的时候,才能从这样的高度来考虑。
最后,放上这篇文章的思维导图,看起来简单明了:
参考资料: