五对混合推荐系统的思考( 四 )


五对混合推荐系统的思考

文章插图
这里同样要保证不同的推荐算法输出的得分要在同一个范围,否则加权是没有意义的 。
(5) 分支()混合
分支混合根据某个判别规则来决定在某种情况发生时,利用某个推荐算法的推荐结果 。具体的公式可以用下式简单表示 。
分支条件可以是与用户状态相关的,也可以是跟上下文相关的,下面举几个例子说明,让读者可以更好地理解 。
a 如果用户是新用户,用热门推荐,当用户行为足够多时,用协同过滤算法给用户做推荐;
b 如果用户在早上使用产品,给用户推荐新闻;
c 当用户在某个新的地点使用美团外卖,可以给用户推荐当地特色菜肴;
d 在信息流推荐中,当用户手动下滑时,给用户更新基于用户最新行为的相关推荐结果;
上述a中的分支条件是用户是否是新用户(实际的判断过程是如果用户能够算得出协同过滤就用协同过滤,否则就用热门推荐),b中的分支条件是时间,c中的分支条件是地点,d中的分支条件是用户的下拉操作 。
3
流水线()混合范式
在流水线混合范式中,一个推荐算法生成的推荐结果给到另外一个推荐算法作为输入(该算法可能还会利用其它的数据输入),再产生推荐结果,输入到下一个推荐算法,依次类推 。具体算法的混合逻辑见下面图3 。
五对混合推荐系统的思考

文章插图
图3:流水线混合推荐范式
流水线混合是一个分阶段的过程,多个推荐算法一个接一个,最后的一个算法产出最终的推荐结果 。根据一个算法的输出以怎样的方式给到下一个算法使用,具体可以分为如下2种实现方案 。
(6) 级联()混合
在级联方式中,一个算法的推荐结果作为输出给到下一个算法作为输入之一,下一个算法只会调整上一个算法的推荐结果的排序或者剔除掉部分结果,而不会新增推荐标的物 。如果用数学语言来描述,级联混合就满足下面两个条件的混合推荐,其中n是级联的算法个数,

是第k个推荐算法的推荐结果 。
注意,排在级联混合第一个算法后面的算法的输入除了前面一个算法的输出外,可能还会利用其它的数据来训练推荐算法模型,级联的目的是优化上一个算法的排序结果或者剔除不合适的推荐,通过级联会减少最终推荐结果的数量 。
(7) 元级别(Meta-level)混合
在元级别的混合中一个推荐算法构建的模型会被流水线后面的算法使用,用于生成推荐结果,下面的公式很好地说明了这种情况 。由于这种混合直接将模型作为另一个算法的输入,类似函数式编程中函数作为另一个函数的输入,所以比较复杂,在现实业务场景中一般n=2,即只做两层的混合 。
到此为止,我们简单介绍了三大类7种常用的进行推荐算法混合的策略,下面分别对这三大类混合范式的特点进行简单说明 。
如果对于特征层面我们无更多的其他知识和信息,单体范式是有价值的,它只需要对主推
荐算法及数据结构进行极少的预处理和细微调整就可以了 。
并行的混合推荐范式是对业务侵入最小的一种方式,因为混合阶段只是对不同算法的结果进行简单混合 。但是由于使用了多个推荐算法的结果,整个推荐的计算复杂度会更高,并且多个算法的推荐结果的得分怎么在同一个框架中具备可比性也是比较棘手的、需要处理好的问题 。
流水线式的混合策略是最复杂耗时的一类混合方案,需要对前后的两个算法有很好的理解,并且它们也需要配合好才能最终产生比单个算法好的结果,但如果能将几个差别较大(差别较大,混合后预测的方差会更小,类似遗传中的杂交优势)的推荐算法很好地整合起来时,往往收获也是较大的 。