在推荐业务中经常有“既要、也要、还要”的场景,比如做视频推荐业务的时候既要提升用户对于视频的点击率,也希望同时提升用户观看视频的时长。面对这样的诉求,通常需要在推荐系统中使用多目标建模算法。
多目标建模目前业内有两种模式,一种叫Shared-Bottom模式,另一种叫MOE,MOE又包含MMOE和OMOE两种。MMOE也是Google提出的一套多目标学习算法结果,被应用到了Google的内部推荐系统中,接下来分别介绍下这些多目标算法的结构。
上图基本能把Shared-Bottom、OMOE、MMOE讲清楚。
Shared-Bottom的思路就是多个目标底层共用一套共享layer,在这之上基于不同的目标构建不同的Tower。这样的好处就是底层的layer复用,减少计算量,同时也可以防止过拟合的情况出现。
接着就是MOE类型的算法介绍了,MOE是Mixture of experts的缩写,也就是说MOE结构的算法底层是有多个experts组成,这些experts网络是彼此独立的,最终的输出结果其实是目标在多个experts上的概率分布结果。MOE可以通过一个Gate去控制,Gate network也叫门控网络,可以控制在不同应用场景下每个expert的参与权重。OMOE指的是one gate MOE, MMOE指的是multi gate MOE,从字面意思理解,MMOE一定是比OMOE更全面的。
最终选用MOE结构的算法还是Shared-Bottom结构的呢?其实取决于业务效果。上面一张图介绍了Shared-Bottom以及OMOE、MMOE在不同目标相关性下的的效果比对。
不难发现,无论目标Correlation是什么数值,MOE结构的算法的loss永远低于Shared-Bottom类型的,显然MOE结构更优。
而OMOE在目标相关性最高的情况下(Correlation=1)和MMOE的效果相似,其它情况下不如MMOE。也就是说,目标相关性越低MMOE较其它二者的优势越明显,相关性非常高的情况下MMOE会近似于OMOE。
另外,解释下相关性Correlation的概念,可以理解为业务正相关性。比如点赞和踩,这两个行为肯定是相关性很低的,如果一个模型既要支持点赞率提升,也支持踩提升,一定要选MMOE。比如收藏和点赞,这两个目标就是相关性非常高的目标。
参考:
[1]https://zhuanlan.zhihu.com/p/55752344?edition=yidianzixun&utm_source=yidianzixun&yidian_docid=0LC8kTgk
[2]https://zhuanlan.zhihu.com/p/145288000
[3]https://www.cnblogs.com/xindi/p/12349940.html