作者丨gongyouliu 编辑丨zandy 这是作者的第24篇文章,约1.2w字,阅读需60分钟
作者在前面几篇文章中对常用的推荐算法,如基于内容的推荐、协同过滤、矩阵分解、分解机、基于标签的推荐、深度学习等进行了详细介绍(点击蓝色字体阅读相关文章),并在这些文章中详细说明了这些算法的优缺点。在本篇文章我们会介绍混合推荐系统(Hybrid Recommender Systems),就是利用多种推荐算法配合起来做推荐,期望避免单个推荐算法存在的问题,最终获得比单个算法更好的推荐效果。
本篇文章我们从什么是混合推荐系统、混合推荐系统的价值、混合推荐系统的实现方案、工业级推荐系统与混合推荐、对混合推荐系统的思考等5个部分来介绍混合推荐系统。期望读者读完可以更好地理解混合推荐系统的原理与价值,并且能够将混合推荐的思路应用于项目实践中。
一
什么是混合推荐系统
机器学习中有所谓的集成学习(Ensemble Learning),广泛应用于分类和回归问题,本质上是利用多个分类或者回归算法,通过这些算法的有效整合获得更好的分类或者预测效果。集成方法之所以有效,是因为通过不同的算法组合可以有效地降低系统性误差(方差),最终达到更好的效果。在理财投资中也有类似的思路,通过分散投资,构建多类别的投资组合来降低风险。
混合推荐系统的思路跟上面的介绍如出一辙。古话说”三个臭皮匠顶个诸葛亮“,我想用这句话来形容混合推荐算法是非常恰当的。混合推荐算法就是利用两种或者两种以上推荐算法来配合,克服单个算法存在的问题,期望更好地提升推荐的效果。
在推荐系统发展史上,最有名的利用混合推荐算法提升推荐效果的例子莫过于Netflix在2006年启动的100万美元的Netflix Prize竞赛,这个竞赛的冠军在3年后的2009年被三个团队合并后的新团队Bellkor's Pragmatic Chaos(这个名字其实是由三个领先团队组合起来的:第一个是来自 AT&T 统计研究部的BellKor,第二个是来自加拿大蒙特利尔的Pragmatic Theory,第三个是来自于奥地利的 BigChaos)利用原来各自团队算法的优势将各自的算法整合起来(利用GBDT模型组合超过500个算法模型)而获得,这种整合的方法就是一种混合推荐算法。(见参考链接1了解Netflix Prize相关信息,参考文献2、3、4给出了获奖团队写的3篇论文,分别是获奖团队原来的三个团队从自身团队所提出的算法对最终获奖贡献的角度写的)
二
混合推荐系统的价值
从上一节介绍我们知道混合推荐算法是期望利用多个推荐算法协同合作,避免单个算法存在的问题,更好地为用户做推荐,提升推荐质量和用户体验。在讲混合推荐算法的价值之前,我们需要先了解当前主流推荐算法存在的问题,只有知道了当前的问题,才能利用混合推荐算法更好地避免这些问题,那么当前推荐系统存在的主要问题有哪些呢?
1
冷启动问题
冷启动一般分为新用户冷启动和新”标的物”冷启动。对于新用户,由于没有相关行为或者行为很少,无法获得该用户的兴趣偏好,因而无法为他进行有效的推荐。对于新入库/上线的标的物,由于没有用户或者很少用户对它进行操作(点击、浏览、评论、购买等),我们不知道什么类型的用户喜欢它,因而也很难将它推荐出去。
2
数据稀疏性问题
由于很多推荐应用场景涉及到的“标的物”数量巨大(头条有百亿级规模的文章、淘宝有千万级的商品等),导致用户行为稀少,对于同一个“标的物”,只有很少用户有相关行为,这让构建推荐算法模型变得非常困难。
3
马太效应
头部”标的物“被越来越多的用户”消费“,而质量好的长尾”标的物“由于用户行为较少,自身描述信息不足而得不到足够的关注。
4
灰羊(gray sheep)效应
是指某些用户的倾向性和偏好不太明显,比较散乱,没有表现出对具备某些特征的标的物强烈的偏好。因此在协同过滤推荐算法中(拿基于用户的协同过滤来说),这种偏好性不强的用户跟其他用户的相似度都差不多,选择不同的相似用户没啥差别,因此推荐效果不是特别好。这种问题,在多用户使用同一个设备时是非常明显的(比如家庭中的智能电视,一家人都用同一个电视在不同时段看自己喜欢的内容,导致该电视上的行为比较宽泛,无任何特性)。
5
投资组合效应(portfolio effect)
由于从不同渠道获得的标的物是非常相似的,推荐系统可能会推荐非常相关的标的物给用户,但对用户来说,这些相关的标的物是重复的、无价值的。在新闻资讯、短视频类APP的推荐中这种情况是经常发生的,比如从多个渠道获得的内容是对同一个热点事件的报道,有可能内容都是差不多、重复的,而系统在将这些内容入库的过程中,没有进行很好的识别(其实识别两个标的物是不一样的也是比较困难的一件事),因此将这些内容看成是不同的内容,最终推荐系统很容易将它们一起推荐给用户。在我们公司的短视频推荐中就存在这种情况,并且还非常严重,有时甚至重复的内容都排在一起并且量也很多。对于像淘宝这种提供电商平台服务的公司来说,由于有非常多的商家卖相同或者相似的商品,这种现象也非常明显。对于图书推荐,同一本书的不同版本、不同语言等也会出现这个问题。
6
稳定性(stabillity)/可塑性(plasticity)问题
该问题指的是当用户的兴趣稳定下来后,(推荐)系统很难改变对用户的认知,即使用户兴趣最近变化了,推荐系统还是保留了用户过往的兴趣,除非当用户新兴趣积累到足够多,所起的作用完全盖过了老的兴趣。一般解决该问题的思路可以对用户兴趣进行时间衰减操作,最近行为权重更大,越久远的行为权重越小。
针对上面提到的6大类问题,下面针对业界主流的几类推荐算法来说明单个算法可能存在的问题及优势(参见下面表1,更细节的关于协同过滤和基于内容的推荐的优缺点可以参考作者的文章《基于内容的推荐算法》、《协同过滤推荐算法》、《矩阵分解推荐算法》等)(点击蓝色字体阅读相关文章)。
表1:主流推荐算法的问题与优势
上面列举的是一般推荐系统可能存在的问题,对于单个推荐算法,由于所利用的数据不一样,算法自身模型不一样,可能会面临上述问题中的一些。不同的产品形态和业务场景,由于跟用户的交互方式不一样,能够获取到的数据也不一样,对选择具体的推荐算法也存在一定的限制。既然单个算法或多或少存在一些问题,自然的想法就是结合多个算法的优势来避免单个算法存在的问题,这就是下面一节我们要讲的混合推荐算法,混合推荐期望融合多个算法,博采众长,有效缓解上述单个算法存在的居多问题。
三
混合推荐系统的实现方案
我们在第二节讲解了混合推荐算法的价值,那么多种算法怎么混合来构建新的算法呢?根据多种算法混合的方式不同一般可以分为如下3种混合范式,其中每种范式都有两到三种具体的实现方案,一共有7中不同的混合方案,我们在下面分别介绍(该分类参考了参考文献5的具体分类方法)。
1
单体的(Monolithic)混合范式
单体的混合范式整合多种推荐算法到同一个算法体系中,由这个整合的推荐算法统一提供推荐服务,具体的实现流程参考下面的图1。
图1:单体的混合推荐范式
基于内容的推荐算法如果利用用户行为数据来计算标的物相似性属于这类算法。单体范式的混合推荐算法主要有如下两种具体实现方案:
(1) 特征组合(Feature Combination)混合
特征组合利用多个推荐算法的特征数据来作为原始输入,利用其中一个算法作为主算法最终生成推荐结果。
拿协同过滤和基于内容的推荐来说,可以利用协同过滤算法为每个样本赋予一个特征,然后基于内容的推荐利用这些特征及内容相关特征来构建基于内容的推荐算法。比如可以基于矩阵分解获得每个标的物的特征向量,基于内容的推荐利用标的物之间的metadata计算相似度,同时也整合前面基于矩阵分解获得的特征向量之间的相似性。
协同过滤与基于内容的推荐进行特征组合混合能够让推荐系统利用协同数据,而不必完全依赖它,因此降低了系统对某个标的物有操作行为的用户数量的敏感度,也就是说,即使某个标的物没有太多用户行为,也可以很好地将该标的物推荐出去。
由于特征组合方法非常简单,将协同过滤和基于内容的推荐进行组合是非常常用的方案。
(2) 特征增强(Feature Augmentation)混合
特征增强混合是另一个单体混合算法,不同于特征组合简单地结合或者预处理不同的数据输入,特征增强会利用更加复杂的处理和变换,第一个算法可能事先预处理第二个算法依赖的数据,生成中间可用的特征或者数据(中间态),再供第二个算法使用最终生成推荐结果。
比如我们公司在做视频相似推荐时,先用item2vec进行视频嵌入学习(参考作者另一篇文章《嵌入方法在推荐系统中的应用》(点击蓝色字体阅读文章)第四节2中的介绍),学习视频的表示向量,最后用kmeans聚类来对视频聚类,最终对每个视频,将该视频所在类的其他视频作为该视频的关联推荐,这也算是一种特征增强的混合推荐算法。
2
并行的(Parallelized)混合范式
并行的混合范式利用多个独立的推荐算法,每个推荐算法产生各自的推荐结果,在混合阶段将这些推荐结果融合起来,生成最终的推荐结果,具体实现逻辑参考下面的图2。
图2:并行的混合推荐范式 并行混合范式利用多个推荐算法密切配合,利用特殊的混合机制聚合各个算法的结果,根据混合方案的不同主要有如下3中具体的实现方式。 (3) 掺杂(Mixed)混合
掺杂方法将多个推荐算法的结果混合起来,最终推荐给某个用户,见下面公式,其中,k是第k个推荐算法。
上面公式只是给出了为用户推荐的标的物列表,不同的算法可能会推荐一样的,需要去重,另外这些标的物需要先排序再最终展示给用户,一般不同算法的排序逻辑不一样,直接按照不同算法的得分进行粗暴排序往往存在问题。可以将不同的算法预测的得分统一到可比较的范围(比如可以先将每个算法的得分归一化到0-1之间),再根据归一化后的得分大小来排序。还可以通过另外一个算法来单独进行排序。
(4) 加权(Weighted)混合
加权方法利用多个推荐算法的推荐结果,通过加权来获得每个推荐候选标的物的加权得分,最终来排序。具体某个用户u对标的物i的加权得分计算如下:
这里同样要保证不同的推荐算法输出的得分要在同一个范围,否则加权是没有意义的。
(5) 分支(Switching)混合
分支混合根据某个判别规则来决定在某种情况发生时,利用某个推荐算法的推荐结果。具体的公式可以用下式简单表示。
分支条件可以是与用户状态相关的,也可以是跟上下文相关的,下面举几个例子说明,让读者可以更好地理解。
a 如果用户是新用户,用热门推荐,当用户行为足够多时,用协同过滤算法给用户做推荐;
b 如果用户在早上使用产品,给用户推荐新闻;
c 当用户在某个新的地点使用美团外卖,可以给用户推荐当地特色菜肴;
d 在信息流推荐中,当用户手动下滑时,给用户更新基于用户最新行为的相关推荐结果;
上述a中的分支条件是用户是否是新用户(实际的判断过程是如果用户能够算得出协同过滤就用协同过滤,否则就用热门推荐),b中的分支条件是时间,c中的分支条件是地点,d中的分支条件是用户的下拉操作。
3
流水线(Pipelined)混合范式
在流水线混合范式中,一个推荐算法生成的推荐结果给到另外一个推荐算法作为输入(该算法可能还会利用其它的数据输入),再产生推荐结果,输入到下一个推荐算法,依次类推。具体算法的混合逻辑见下面图3。
图3:流水线混合推荐范式
流水线混合是一个分阶段的过程,多个推荐算法一个接一个,最后的一个算法产出最终的推荐结果。根据一个算法的输出以怎样的方式给到下一个算法使用,具体可以分为如下2种实现方案。
(6) 级联(Cascade)混合
在级联方式中,一个算法的推荐结果作为输出给到下一个算法作为输入之一,下一个算法只会调整上一个算法的推荐结果的排序或者剔除掉部分结果,而不会新增推荐标的物。如果用数学语言来描述,级联混合就满足下面两个条件的混合推荐,其中n是级联的算法个数,
,
是第k个推荐算法的推荐结果。
注意,排在级联混合第一个算法后面的算法的输入除了前面一个算法的输出外,可能还会利用其它的数据来训练推荐算法模型,级联的目的是优化上一个算法的排序结果或者剔除不合适的推荐,通过级联会减少最终推荐结果的数量。 (7) 元级别(Meta-level)混合
在元级别的混合中一个推荐算法构建的模型会被流水线后面的算法使用,用于生成推荐结果,下面的公式很好地说明了这种情况。由于这种混合直接将模型作为另一个算法的输入,类似函数式编程中函数作为另一个函数的输入,所以比较复杂,在现实业务场景中一般n=2,即只做两层的混合。
到此为止,我们简单介绍了三大类7种常用的进行推荐算法混合的策略,下面分别对这三大类混合范式的特点进行简单说明。
如果对于特征层面我们无更多的其他知识和信息,单体范式是有价值的,它只需要对主推
荐算法及数据结构进行极少的预处理和细微调整就可以了。
并行的混合推荐范式是对业务侵入最小的一种方式,因为混合阶段只是对不同算法的结果进行简单混合。但是由于使用了多个推荐算法的结果,整个推荐的计算复杂度会更高,并且多个算法的推荐结果的得分怎么在同一个框架中具备可比性也是比较棘手的、需要处理好的问题。
流水线式的混合策略是最复杂耗时的一类混合方案,需要对前后的两个算法有很好的理解,并且它们也需要配合好才能最终产生比单个算法好的结果,但如果能将几个差别较大(差别较大,混合后预测的方差会更小,类似遗传中的杂交优势)的推荐算法很好地整合起来时,往往收获也是较大的。
四 工业级推荐系统与混合推荐
在第三节我们详细讲解了多个推荐算法混合的各种可行情况,那么在真实的推荐业务场景中,混合推荐算法使用得多吗?一般我们会怎么进行不同推荐算法和策略的混合呢?下面我们就来回答这两个大家可能会非常关心的问题。
前面在第二节中也讲解了混合推荐算法的巨大价值,混合推荐算法的思路在工业级推荐系统中是一直在使用的,是非常有价值的一种解决推荐问题的较理想的策略。
在工业级推荐系统中一般将整个推荐流程分为召回、排序、策略调控3个阶段,具体的架构见下图4。
图4:工业级推荐系统3阶段pipeline架构
这个三阶段的pipeline结构类似混合推荐中的流水线混合范式,下面我们分别对这三个阶段的功能进行简单介绍,同时会说明每个阶段的算法是怎么利用到混合推荐的思路的。
召回阶段的目的是通过利用不同的推荐算法将用户可能喜欢的标的物从海量标的物库(千万级或者上亿)中筛选出一个足够小的子集(几百上千)。作者在《基于标签的实时短视频推荐系统》这篇文章第四节“个性化推荐的召回与排序策略”中对多种召回策略进行了介绍(参考下面图5,感兴趣的读者可以阅读这篇文章的相关章节),这其中的每一种召回策略可以看成是一个推荐算法,不同召回算法的结果是通过掺杂混合的方式(也就是前面提到的第三种混合推荐算法)进行合并的,混合后的推荐结果作为数据输入给后续的排序推荐算法阶段进行进一步精细化处理。
图5:多类召回策略
在排序阶段,对召回阶段多种召回算法混合后的推荐结果进行精细排序,因此从召回到排序这两个阶段的pipeline就是前面提到的级联混合推荐(也就是前面提到的第六种混合推荐算法)策略。
在业务调控阶段,会根据业务规则及运营需求,对排序阶段的推荐结果进行调整,可能会调整顺序,插入需要强运营的标的物,插入广告等。这一阶段的处理是比较偏业务的,不同行业和运营策略所做的处理会很不一样,这一块可能会更多偏规则。从排序到业务调控这两个阶段的pipeline没有被前面提到的7种混合推荐算法覆盖,算是在真实业务场景下对上述混合推荐算法的一种补充和完善。
从上面一般的工业级推荐系统的三阶段pipeline架构可以知道,推荐过程是大量使用混合推荐中的一些策略和方法的,并对这些方法进行了拓展和完善。真实的工业级推荐系统是非常复杂的,不同行业和产品形态推荐系统实现方式差别较大。除了前面提到的工业级推荐系统的pipeline架构中包含混合推荐的策略,工业界推荐系统的方方面面都会用到混合的思路,下面分别对当前工业级推荐系统几种主要趋势、算法、架构或者特殊场景下中采用的混合推荐策略进行简单的分析和介绍,方便大家更好地理解混合推荐的方法和思想,通过更多的案例介绍,让大家对混合推荐的思想活学活用、融会贯通,而不仅仅停留在理论层面。
1
实时推荐系统与混合推荐
今日头条是最早将实时个性化推荐大规模应用于产品作为核心功能的APP,并作为整个公司的核心技术,短短几年时间,今日头条APP无论是DAU还是人均使用时长都成为资讯行业第一,这让今日头条迅速崛起为国内top互联网公司。受今日头条的影响,越来越多的公司将实时个性化推荐应用于自己的产品,如手机百度APP、手机淘宝、各类短视频资讯APP等都将实时个性化推荐作为核心功能落地到了自己的产品中。
实时个性化推荐基于用户最近的行为近实时更新用户的推荐列表,对计算能力、算法、服务响应等都有极高的要求。从用户最近的行为获得用户短期偏好,这算是一种推荐算法,将短期偏好获得的推荐结果与原来T 1推荐结果融合推荐给用户也是一种算法的混合,一般可以采用加权的混合方式,最粗暴的方式是将短期偏好推荐结果置于最高的权重,直接放在推荐列表最前面,我在《基于标签的实时短视频推荐系统》(点击蓝色字体阅读文章)这篇文章中对电视猫实时短视频推荐实现原理进行了详细介绍,感兴趣的读者可以参考。
用户近实时推荐怎么跟用户的长期兴趣混合,在推荐列表中整合用户实时兴趣偏好,是实时推荐系统中非常重要、非常关键的技术。
2
深度学习等复杂推荐模型整合多数据源
深度学习等复杂模型这几年在工业界得到了大规模的应用,在推荐系统中也发挥了重要的价值(读者可以参考我之前写的一篇文章《深度学习在推荐系统中的应用》(点击蓝色字体阅读文章)进行深入了解),深度学习可以将多种数据整合到一个模型/框架中,获得非常好的推荐效果(如2016年YouTube的深度学习推荐系统,可以非常容易整合多种信息进行统一学习,见参考文献7)。深度学习模型这种具备整合用户行为数据、标的物metadata数据、用户画像数据等数据的能力,是非常有优势的,相当于将协同过滤、基于内容的推荐等多种算法的能力融合到一个模型中,虽然不是直接将多个模型融合,不在第三部分7大混合推荐方式之列,但这也算是一种多数据源能力的融合,通过整个多数据源获得比古典的单个推荐模型更好的效果。
3
特殊情况下的处理策略
推荐系统属于互联网软件服务,任何软件服务都存在不确定性,因而会存在一定概率出现问题,对推荐系统也不例外。当由于网络故障或者服务故障导致推荐服务不可用时,如果在客户端(即APP上)不做异常保护和处理,用户访问推荐服务时,会超时,导致无任何推荐结果返回,整个UI展示都将出问题,出现开天窗的现象,这时就需要前端做保护,在极端情况出现时,给出一组备选方案展示出来,这样虽然推荐的结果不会那么精准,但不至于什么结果都没有,明显可以提升用户体验。具体的做法可以是在APP启动时,客户端通过一个独立的接口获得一组默认推荐(比如热门推荐)存入客户端本地存储中,当故障出现时,就用这一组默认推荐来填补,这种策略其实是一种分支混合推荐策略(第三节中的混合策略5),分支出现的情况就是正常的推荐服务出现问题的时候。
4
推荐数量不足的增补
在真实工业级推荐场景中,最终的推荐算法一般会给出固定数量的推荐结果(比如50个,但是在前端可能只展现30个),由于标的物会出现下线、不可用(视频下线、商品下架等)等情况,当用户在客户端请求推荐服务时,推荐接口先获取推荐列表(一般是一组标的物的id),再根据列表的id获得标的物的metadata信息,填充完整后返回前端并展示给用户,这个过程中会对标的物id进行过滤和检查,如果下线了或者不可用了会剔除掉。如果某个用户的推荐列表下线的标的物比较多(这种情况出现的概率一般不大),导致最终数量不够前端展现时,一般会采用补足的策略,比如利用热门推荐的结果填补不足的数量,最终获得规定好的数量(如前面提到的50个),这个利用另外一个推荐算法(如热门推荐)来填补的策略就是掺杂混合策略(第三节的第3个混合推荐策略)
5
通过混合策略解决用户冷启动
真实业务场景下的推荐系统不可避免会存在用户冷启动问题,特别是对于提供toC服务的、成长型的互联网公司,发展用户是非常重要的事情,这时每一个发展来的新用户,对于推荐系统来说就是冷启动用户,怎么给这些新用户推荐就是非常重要的事情,因为如果推荐质量不高用户可能会流失。如果产品没有要求用户在刚登录注册时填写自己的兴趣偏好,我们是不知道新用户的兴趣偏好的,那么对于新用户,在他从新用户转化为老用户(行为足够多,可以用协同过滤等算法为他生成推荐结果)的这一阶段我们该怎么给他进行推荐呢?
针对上面提到的问题,一般可以采用分支混合的推荐策略,对于没有操作行为的刚进入的新用户可以采用默认的热门推荐或者通过编辑人工精选的多样性的内容作为推荐,而对于有少量用户行为的用户,这时可以采用基于内容的推荐(如基于标签的推荐),当用户的行为足够多时采用矩阵分解等协同过滤推荐算法(参考下面图6)。对于离线推荐产品,一般这三类算法都是为用户事先计算好的(矩阵分解等推荐算法默认给一段时间的活跃用户,比如过去3个月活跃的用户计算推荐结果,如果某个用户行为不够多,矩阵分解是无法为该用户计算推荐的,或者推荐出的数量不足需要推荐的量,这时只能忽略该用户的推荐,因此该方法无法为该用户生成推荐结果,对于基于内容的推荐原理也一样),当用户请求推荐服务时,推荐接口服务先获取用户的协同过滤推荐结果,如果没有,再去取用户的基于内容的推荐结果,如果还没有,最后就用户热门默认推荐(这个肯定是有的),之所以按照这个顺序取,是因为一般来说,协同过滤算法效果好于基于内容的推荐,基于内容的推荐效果好于默认的热门推荐。
图6:用户从刚注册到老用户过程中的可行推荐策略
除了上面的分支混合策略外,还可以采用掺杂加权的策略,就是将上面3中方案计算出来的推荐结果(如果有的话)混合推荐,这里不再赘述。
五 对混合推荐系统的思考
混合推荐算法提出的目的主要是希望通过多个算法的有效配合避免单个算法存在的问题,提升推荐的整体质量,前面第三节中提到的几种混合方式是从算法的角度来说明几种可行的混合方案,这7种混合方案是在2002年提出来的,历史比较久远了,虽然现在还很有代表性,但是这几年整个推荐系统在算法、工程实践、应用场景上都有较大发展和变化,有很多情况可能是这7种混合方式没有覆盖到的,另外,这7种混合方式只是从算法的角度来进行介绍的,而从更广义的角度来看,推荐系统的混合不光有算法的混合,还有数据源的混合、多类别标的物的混合、应用场景的混合等等,在本节我根据自己对推荐系统的未来发展的理解,试图对混合推荐系统可能的重点发展方向进行简单介绍,给大家提供一些新的思考问题的视角。
1
整合实时推荐中用户短期和长期兴趣
实时个性化推荐可以快速响应用户请求,让用户实时获得优质推荐服务,帮助用户及时获取信息对用户来说是非常有价值的事情。
怎么整合用户实时兴趣和长期兴趣对提升用户体验是非常关键的,前面一节已经提到了一些简单的整合用户实时兴趣的方法,这个方法还非常简单粗暴,更好更加有效的方法还需要算法和工程上的突破。
实时个性化推荐一定是未来的重点方向,特别是随着5G时代的到来,网速有极大的提升,谁能更快更好地服务用户,谁就能拥有用户。
2
利用单个复杂模型建模多源信息
传统的基于内容的推荐、协同过滤等算法一般只利用部分相关数据来构建推荐模型,由于利用的数据有限,模型相对简单,因此单个算法可能存在一些问题(我们在第二节中已经对各个算法可能存在的问题进行过简单介绍),利用我们第四部分介绍的混合推荐策略可以避免部分相关问题。那是否可以利用其它的方案来解决这些基础模型存在的问题呢?确实是可以的。现在随着深度学习等复杂模型的流行,有很多学术研究和工业实践利用深度学习、强化学习等技术整合多种信息来获得更好的推荐效果,这种从模型层面整合多种信息的方法,可以更好地学习多数据源之间的内在关系,所以一定是未来的一个重要的研究和实践方向。
目前的数据源按照数据承载的载体不同有文本、图像、视频、音频等数据,从数据的来源,有用户相关数据、标的物相关数据、用户行为数据、上下文数据等,利用深度学习、异构信息网络等复杂算法来整合多源数据提供更优质的推荐服务是很有前途的一个方向。
3
多源的标的物混合
现在很多APP都是朝着提供综合性服务的方向发展,比如美团(吃、住、行、生活等)等APP提供多种不同性质和类别的服务,未来推荐算法可能会提供综合性的推荐服务,在同一个推荐列表中存在多种不同类别差异性极大的标的物。
另外,互联网产品做广告变现是非常重要的一种商业化手段,随着新闻短视频等信息流产品的流行,信息流广告越来越受到互联网公司的重视(参加下面图7),信息流广告中将广告和标的物混合在一起推荐,这时广告也可以看成是一种标的物,因而也是一种标的物混合推荐的形态,只不过在信息流广告中,我们除了关注标的物的“消费”外,还会重点关注广告曝光、点击、购买等收益性指标。
图7:微信朋友圈中的信息流广告
怎么将不同类别的标的物进行混合推荐给用户,保证不同类别标的物之间的一致性、协调性(对于信息流广告来说,就是所谓的原生广告的概念),满足用户多样性的要求,这也是一个非常有价值的研究与实践方向。
4
家庭场景中多人兴趣的混合推荐
伴随着智能电视业务从萌芽到成熟,互联网服务走进了家庭电视这块大屏。互联网公司如小米、华为等已经布局智能电视业务,传统电视机厂商也进入智能电视行业,家庭互联网成为一个新的重要的流量入口。随着中国城镇化发展与消费升级,越来越多的人开始购买互联网智能电视。智能电视作为家庭中的一块大屏,为家庭成员提供视听相关服务,视频是智能电视上最重要的杀手级服务。智能电视区别于手机的一大特点是家庭中多个成员共享一台设备,这一点不同导致智能电视上的推荐服务需要兼顾多个家庭成员的兴趣。智能电视上的推荐是多个家庭成员兴趣的混合,怎么在一个推荐列表中为多个家庭成员提供推荐,满足家庭成员多样性的兴趣需求是智能电视上的个性化推荐非常棘手的一个问题,也是必须要解决好的一个问题。
5
用户在多APP场景下行为的混合
目前很多提供互联网服务的公司通过打造APP矩阵来提供多种类的服务,试图占领用户日常生活的方方面面,通过多款APP发展更多的用户,增加更多的变现可能。另一方面,在更多领域做尝试和探索,提供多款APP也能抵御存在的风险。这种策略也是未来的公司生存发展的重要趋势和策略之一。
用户在同一家公司的多个APP上的行为,帮助公司从多个渠道来获得用户的兴趣偏好,进而对用户有更全面的了解。怎么融合用户多样的行为,从而为用户在某个APP上提供更加精准的推荐服务,是一个非常值得探索的方向,作者在《嵌入方法在推荐系统中的应用》(点击蓝色字体阅读文章)这篇文章第五节2中讲到盒马APP利用用户在淘宝上的行为来为盒马的新用户做冷启动的案例,有兴趣的读者可以查看相关章节了解。
6
用户多状态(场景)的融合推荐
很多时候用户的行为之间是有一定的依赖关系的,用户在当前状态的行为可能依赖于前一状态的操作和决策,在数学上有专门的一个学科“随机过程”来研究变量之间随着时间变化的状态转移关系。对于互联网产品来说,用户也有兴趣状态的转移过程,下面我举几个大家耳熟能详的案例:
(1) 用户在淘宝上买了一个手机,后面用户可能会买手机壳等配件产品;
(2) 淘宝上的某女性用户关注孕妇服,未来若干月后她可能会关注婴儿服饰、奶粉、尿不湿等产品;
(3) 用户在携程上订了一张去三亚的机票,几个小时后,用户可能会关注旅游景点、吃饭、住宿等;
总的来说,用户在使用某个互联网APP时,在时间、地理位置、状态等上的变化对用户的后续行为及兴趣变化是有很大影响的,推荐系统怎么整合用户多种状态之间的转换,将这些复杂的信息整合起来为用户提供更好的推荐服务,是非常有必要的,也是一件非常有挑战的事情。
六 总结
本文对混合推荐算法的基本概念、出现的背景、价值及具体实现方案进行了介绍,参考文献7是最新的一篇关于混合推荐系统全面介绍的论文,8-23是具体的混合推荐系统的算法介绍,有兴趣的读者可以好好学习一下。
除了混合推荐系统最基本的知识点介绍,作者也花了比较大的篇幅讲解了工业级推荐系统在算法、工程设计、产品体验上是怎么利用混合推荐的思路来更好地服务于用户的。最后,作者对混合推荐的定义做了一定的延伸,不光是算法的混合,数据的融合、多场景下行为的融合、多用户兴趣点的融合、甚至用户状态的连续变化等都算是广义下的融合,对这些不同方向和维度的融合,作者给出了具体的说明和解释,指出了这些情况下推荐面临的困难与挑战,但是这些方向也一定是非常有业务价值的,值得大家去思考和探索。
混合推荐系统不管是从算法上,还是从工程实践、产品体验上都是非常重要的研究方向,未来一定会在推荐系统的应用中产生巨大的商业价值!
参考文献
- https://www.netflixprize.com/
- [2009] The BellKor Solution to the Netflix Grand Prize
- [2009] The BigChaos Solution to the Netflix Grand Prize
- [2009] The Pragmatic Theory solution to the Netflix Grand Prize
- [2002] Hybrid recommender systems: Survey and experiments
- [2017] Hybrid Recommender Systems : A Systematic Literature Review
- [YouTube 2016] Deep Neural Networks for YouTube Recommendations
- [2011] A Cascade Ranking Model for Efficient Ranked Retrieval
- [2009] Hydra- A Hybrid Recommender System
- [2010] An Improved Switching Hybrid Recommender System Using Naive Bayes Classifier and Collaborative Filtering
- [2014] See What You Want to See- Visual User-Driven Approach for Hybrid Recommendation
- [2015] HyPER- A Flexible and Extensible Probabilistic Framework for Hybrid Recommender Systems
- [2016] A Hybrid Recommendation System Considering Visual Information for Predicting Favorite Restaurants
- [2017] A Multicriteria Evaluation of Hybrid Recommender Systems- On the Usefulness of Input Data Characteristics
- [2018] Feature-Combination Hybrid Recommender Systems for Automated Music Playlist Continuation
- [2019] Hybrid Recommender System for Therapy Recommendation
- [2019] Personalized Explanations for Hybrid Recommender Systems
- [2009] A Unified Approach to Building Hybrid Recommender Systems
- [2016] Privacy-preserving Hybrid Recommender System
- A Scalable, Accurate Hybrid Recommender System
- Hybrid Recommender System- Recommending Restaurants to Users
- Hybrid Recommender Systems- The Review of State-of-the-Art Research and Applications
- Partial VAE for Hybrid Recommender System