来 DTDS 全球数字人才发展峰会,与刘润、叶军、快刀青衣畅聊成长>> 了解详情
写点什么

谷歌大规模多目标排序实践: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:301777

评论

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

中台之路,从平台到中台的思考与实践(二)

孤岛旭日

架构 中台 企业中台 企业架构

开源这件事儿,越来越“声势浩大”了

赵钰莹

Apache GitHub 阿里巴巴 开源 腾讯

【JAVA】感受下JDK14的空指针提示

遇见

Java jdk jep

Kylin 实时流处理技术探秘.笔记

迹_Jason

大数据

我使用了哪些生产力工具?

ikook

效率工具 软件 Alfred Notion 推荐

微服务架构深度解析与最佳实践-第一部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

程序员通过哪些方式来赚钱?

一尘观世界

程序员 外包 自由职业 副业 赚钱

Gitlab CI/CD 中的 Cache 机制

Chong

DevOps gitlab cicd

苏宁云商向江旭:是时候让技术成为新司机了!

TGO鲲鹏会

字节跳动的增长密码

池建强

字节跳动 张一鸣

[KubeFlow] MPI-Operator深度解读

薛磊

Docker gpu kubeflow Kubernetes

自动驾驶复苏在2020

陈思

人工智能 自动驾驶

人间至味——苦瓜

三只猫

人生 美食 生活

ELF文件格式

韩超

Linux的proc文件系统编程

韩超

NVidia Docker介绍

薛磊

Docker

服务降级的常见套路

松花皮蛋me

Java

从西游到武侠——确定性与不确定性

伯薇

个人成长 管理 确定性 不确定性

Doris 一种实时多维分析的解决方案

迹_Jason

大数据

百度主任架构师谭待:打造非职权技术管理机制

TGO鲲鹏会

高手和普通人的差距,不看不知道,一看吓一跳

熊斌

学习

3000w人民币的学费——我的决策反思

孤岛旭日

数据中台 架构 中台 企业中台 企业架构

Docker Swarm 踩坑

ikook

Docker Docker Swarm 技术 容器 踩坑

聊聊分心这件事

Jackey

纯技术改造,技术如何驱动需求,我有话说

一叶而不知秋

项目管理 架构 技术

面试官,不要再问我三次握手和四次挥手

猿人谷

面试 TCP 三次握手 四次挥手

特定系统的Linux的构建

韩超

NVidia-Docker2 性能优化

薛磊

Docker gpu nvidia container

中台之路,从平台到中台的思考与实践(一)

孤岛旭日

架构 中台 企业中台 企业架构

redis数据结构介绍-第一部分 SDS,链表,字典

Nick

redis 源码 数据结构 源码分析 算法

基于RocketMQ实现分布式事务 - 完整示例

清幽之地

Java 分布式事务 RocketMQ 微服务

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

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