写点什么

谷歌大规模多目标排序实践:Youtube 视频推荐核心技术

2019 年 10 月 31 日

谷歌大规模多目标排序实践:Youtube视频推荐核心技术

本文主要介绍下 Google 在 RecSys 2019 上的最新论文[1],提出了一套大规模多目标排序框架应用于 Youtube 视频推荐,引入 MMoE 解决多目标学习,以及解决用户隐式反馈中的 selection Bias 问题。



介绍

本文提出了一套大规模多目标排序框架应用于 Youtube 视频推荐平台。众所周知,Youtube 视频推荐面临着众多的挑战,包括需要解决多个互相竞争的排序目标、以及用户反馈中的选择偏差(selection bias)等等。为了解决这些问题,我们引入了 MMoE[2]来优化多目标排序目标。另外,我们改进了 W & D 框架来解决用户反馈的 selection bias。在 Youtube 视频推荐的线上实验也证明了本文算法的显著提升。



所谓相互竞争的排序目标,是指在排序的优化目标上往往是相互冲突的。比如我们不仅希望用户观看,还希望用户能给出高评价并分享。所谓用户隐式反馈中的选择偏差(selection bias),具体来说比如用户点击观看视频仅仅是因为它位置比较靠前,而非用户真正喜欢。因此用当前系统收集到的数据训练出来的模型会引发 bias,从而形成一个反馈循环,越来越偏。


模型架构

本文提出的系统模型架构如下图所示。具体来说,首先将需要学习的多目标分成两类:engagement 目标(点击、观看等用户参与度)和 satisfaction 目标(用户点赞、评论等喜欢程度)。


对于这两类稍微有点冲突的多目标任务,我们引入 MMoE 的结构来解决,并通过门结构来加权选择更好地学习独立的目标。


为了减少训练数据中的 selection bias(比如 position bias),我们添加了如下图左边的浅层塔,接收 selection bias 相关的特征作为输入(比如排序位置),输出则作为主模型最终预测的偏差项。模型将目标分解为两部分,一个是无偏的用户偏好,另一个是倾向分。模型结构可以看做是 Wide & Deep 的扩展,用以解决用户反馈中的 selection bias。



MMoE 结构

如前所述,本文将需要学习的多目标分为参与度和满意度两类,如果是分类问题就用 cross entropy loss 学习;如果是回归问题则用 square loss。最后用加权公式来平衡用户参与度和满意度指标,取得最佳效果。


多目标的排序系统中通常使用的是 shared-bottom 结构(如下图 a 所示),但是这种 hard-parameter 强行共享底层的方案对于相关性小的目标之间的任务,效果是此消彼长有损伤的。因此为了同时学习多个互相冲突的目标并达到平衡,我们采用并扩展 MMoE 结构来解决多目标冲突问题。


MMoE 结构设计的目的就是希望能够在不引入过多模型参数的前提下能够捕捉学习不同任务之间的区别。如下图 b 所示,网络结构上主要的区别是使用 MoE 层来替换共享的 ReLu 层,并为每一个任务单独添加一个额外的门结构。



消除 selection bias

在推荐排序系统中,用户的隐式反馈譬如点击、观看等被广泛地应用在训练深度排序网络模型中。但是用户的隐式反馈是有 bias 偏差的,最明显的就是 position bias,很多时候用户点击观看某个视频并不是因为真的喜欢某个视频,而仅仅只是因为其排序的位置比较靠前。因此我们需要去移除这种 bias,打破这种越来越偏的循环。


因此我们扩展了 W & D 网络结构,将模型的预测输出层分解成为两部分:学习 engagement 的 main tower;以及学习 selection bias 的 shallow tower。如下图所示,shallow tower 训练的时候将产生 selection bias 的特征譬如排序位置 bias 作为输入。在线预测时,位置特征设为 missing



实验结果

Youtube 线上实验结果如下图所示,baseline 是常用的 Shared-Bottom 结构。可以看出 MMoE 结构在基线的基础上,在 engagement 和 satisfaction 的两个目标上均有显著提升



与此同时,我们可以看到排序位置的 1-9 上的 ctr 分布如下图所示。这里面有两个方面因素,一方面预估 ctr 越高则排序位置越高;另一方面由于 position bias 的存在,排序位置越高则用户更容易点击。模型 shallow tower 学习到的 selection bias 分布也显示了这一点。



参考资料:


1. Recommending What Video to Watch Next: A Multitask Ranking System


2. Modeling Task Relationships in Multi-task Learning with Multi-Gate Mixture-of-Experts


3. https://zhuanlan.zhihu.com/p/82584437


本文授权转载自知乎专栏“深度推荐系统”。原文链接:https://zhuanlan.zhihu.com/p/88834117


2019 年 10 月 31 日 08:301670

评论

发布
暂无评论
发现更多内容

重学JS | 异步编程 Generator()

梁龙先森

前端 编程语言 面试题 28天写作

2020DevOps状态报告——变更管理

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

我以为自己够牛逼了,直到看到了Alibaba专家的面试笔记,我学习了三个月,却入职京东,税前36K

Java架构之路

Java 程序员 架构 面试 编程语言

新鲜出炉!阿里内部开源SpringCloud Alibaba全解(全彩版)全网首发

Java架构追梦

Java 架构 面试 学习笔记 SpringCloud Alibaba

太牛了!Alibaba架构师耗时72天总结整理的700页Java进阶架构师宝典。

Java成神之路

Java 程序员 架构 面试 编程语言

WebRTC ICE 状态与提名处理

阿里云视频云

WebRTC 通信

从美国《拜杜法案》到中国供应链体系形成的内在逻辑

JiangX

供应链 28天写作 制造

顶级!13位专家力荐Spring5为企业级开发提供一站式方案

996小迁

Java spring 编程 架构 面试

再造淘宝电商项目落地,从零开始搭建亿级系统架构笔记,直接让你拥有高并发设计经验!

Java成神之路

Java 程序员 架构 面试 编程语言

低代码开发平台的技术路线

Sam678678

细节决定成败!致Android高级工程师的一封信,实战解析

欢喜学安卓

android 程序员 面试 移动开发

跨越全场景统一架构三大挑战,MindSpore亮出“四招”

华为云开发者社区

深度学习 联邦学习 mindspore 算子 ai框架

宝藏!Github上标星45K+的《Java核心神技笔记整理》,吃透消化,面试跳槽不心慌!

Java成神之路

Java 程序员 架构 面试 编程语言

阿里P8内部架构核心学习知识笔记在各大互联网上流传,限时开放下载

Java架构之路

Java 程序员 架构 面试 编程语言

Java 程序经验小结:用私有构造器或者枚举类型强化Singleton属性

后台技术汇

28天写作

electron实战练习-三个文件实现一个命令行终端

OBKoro1

node.js Electron electron实战 命令行终端 electron学习

mysql字符串字段索引优化

瞌睡的李先生

MySQL 索引

高频量化交易机器人系统开发|高频量化交易机器人APP软件开发

开發I852946OIIO

系统开发

林昊获中国计算机学会杰出工程师奖,阿里中间件再获高度肯定,“三位一体”推动技术普惠

阿里巴巴云原生

阿里巴巴 阿里云 开发者 云原生 中间件

太牛了,Alibaba出品的这份《Java并发编程实践》文档,每一步操作都直击你的内心!

Java成神之路

Java 程序员 架构 面试 编程语言

毕业3年,月薪从10K到30K,万分感慨 “数据结构与算法真实太TM重要了!”

Java成神之路

Java 程序员 架构 面试 编程语言

快速入门案例实战:电商网站商品管理(一)

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

工业传感器:工业互联网的第一道门

浪潮云

工业互联网

新思科技静态应用安全测试解决方案获得Forrester Wave认可

InfoQ_434670063458

新思科技 Forrester Wave 静态应用安全测试

快抛弃你错误的坚持

石君

生活随想 28天写作

软件测试--selenium安装使用

测试人生路

软件测试

研发管理101军规#003 实战规模化敏捷:从8人到百人的敏捷之路

PingCode

程序人生 Scrum 敏捷开发

如何对AD和Exchange进行安全加固满足护网需要?

嘉为蓝鲸

安全 asm AD 邮件系统 权限

阿里中间件团队技术官手撸笔记,全新演绎“Kafka部署实战”,已开源

Java架构之路

Java 程序员 架构 面试 编程语言

安卓开发在线!字节跳动Android研发岗这些知识点内部泄露出来了,已拿到offer

欢喜学安卓

android 程序员 面试 移动开发

盘点2020 | 人生是一场马拉松-OBKoro1的2020年年终总结

OBKoro1

2020 前端 年终总结 OBKoro1

混合云之争的开端与终途

混合云之争的开端与终途

谷歌大规模多目标排序实践:Youtube视频推荐核心技术-InfoQ