在推荐业务中经常有“既要、也要、还要”的场景,比如做视频推荐业务的时候既要提升用户对于视频的点击率,也希望同时提升用户观看视频的时长。面对这样的诉求,通常需要在推荐系统中使用多目标建模算法。

多目标建模目前业内有两种模式,一种叫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

推荐业务多目标建模算法介绍:MMOE、OMOE、Shared-Bottom相关推荐

  1. Spark推荐实战系列之Swing算法介绍、实现与在阿里飞猪的实战应用(附代码)

    1.Swing算法介绍 Swing算法原理比较简单,是阿里早期使用到的一种召回算法,在阿里多个业务被验证过非常有效的一种召回方式,它认为 user-item-user 的结构比 itemCF 的单边结 ...

  2. 多目标建模算法PLE

    1. 概述 在现如今的推荐系统或者搜索中,都存在多个目标,多目标的算法在现如今的系统中已然成为了标配.在多目标的建模过程中,如果不同的学习任务之间较为相关时,多个任务之间可以共享一部分的信息,这样最终 ...

  3. 基于haar特征的adaboost算法_目标检测算法介绍

    什么是目标检测 目标检测是指从图像中找出目标,包括检测和识别两个过程,现实中由于环境的复杂性以及各类物体的形状.外观以及光照,遮挡等因素的干扰,所以目标检测一直也是计算机视觉最常见的挑战之一. 目标检 ...

  4. rcnn 回归_基础目标检测算法介绍:CNN、RCNN、Fast RCNN和Faster RCNN

    每次丢了东西,我们都希望有一种方法能快速定位出失物.现在,目标检测算法或许能做到.目标检测的用途遍布多个行业,从安防监控,到智慧城市中的实时交通监测.简单来说,这些技术背后都是强大的深度学习算法. 在 ...

  5. two-stage目标检测算法介绍

    综述 two-stage是基本深度学习的目标检测算法的一种.主要通过一个完整的卷积神经网络来完成目标检测过程,所以会用到的是CNN特征,通过卷积神经网络提取对候选区域目标的特征的描述.典型的代表:R- ...

  6. 深度学习之目标检测(一)—— 目标检测算法介绍

    目标检测问题 目标检测是在图片中对可变数量的目标进行查找和分类 查找就是定位到它在图片中的位置,通常表示为一个矩形框 对于这样的问题,主要存在三个主要难点 ①目标种类与数量问题 ②目标尺度问题 ③外在 ...

  7. Spark推荐系列之Word2vec算法介绍、实现和应用说明

    Spark推荐实战系列目前已经更新: Spark推荐实战系列之Swing算法介绍.实现与在阿里飞猪的实战应用 Spark推荐实战系列之ALS算法实现分析 Spark中如何使用矩阵运算间接实现i2i F ...

  8. 双目立体视觉建立深度图_从单幅图像到双目立体视觉的3D目标检测算法

    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的. 其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明 ...

  9. 万字长文概述单目3D目标检测算法

    一,理论基础-相机与图像 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个模型有很多种,其中最简单的称为针孔相机模型.相机的成像过程是也一个射 ...

最新文章

  1. springBoot探索(2)——构建手脚架
  2. 计算机基础及wps office应用_自考本科计算机应用基础考试大纲
  3. stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)
  4. django 1.8 官方文档翻译:5-2-2 表单素材 ( Media 类)
  5. c语言strTrimed函数用法介绍,linux type命令用法_转
  6. 有关wxGLCanvas的问题
  7. 蓝桥杯C++AB算法辅导
  8. 数据库基础操作:建立学生表
  9. matlab实现带通滤波器的方法,数字信号处理课程设计---带通滤波器的设计及其MATLAB实现.doc...
  10. html5好看的颜色代码,css好看的颜色配色.html
  11. 平方和误差函数--代价函数(机器学习)
  12. R语言安装ccgarch_R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
  13. 如何更好地读开源软件之一:ERD工具简介
  14. The Bean Validation API is on the classpath but no implementation could be found
  15. UNITY材质球合并
  16. (HTML+CSS+JS)仿小米官网首页 含源码
  17. (附源码)springboot学生宿舍管理系统 毕业设计 211955
  18. 区块链触手可及 复杂美BAAS平台
  19. Python之——获取电脑连接过的所有wifi名称和密码
  20. 怎么用超级文档免费制作调查问卷

热门文章

  1. 算法提高课-图论-单源最短路的扩展应用-AcWing 1137. 选择最佳线路:多源最短路、虚拟源点
  2. c语言用指针带出局部变量,关于C语言中返回局部变量和局部指针变量
  3. python 画图 线标注_Python画图的这几种方法,你学会了吗
  4. ajax异步请求验证ua的网页,ajax 异步请求数据
  5. python断网还能用吗_室友打游戏时,让他断网掉线!明明没断网就是没网!Python黑客!...
  6. 列表框QListWidget 类
  7. C++中的override关键字
  8. 设置代理_ie浏览器一键取消自动检测设置并设置代理
  9. 图形界面不卡的linux,图形化界面linux(linaro)的安装小结
  10. C++构造函数初始化列表