写点什么

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

  • 2019-10-31
  • 本文字数:1709 字

    阅读完需:约 6 分钟

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

评论

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

软件测试/测试开发丨Web自动化测试,强制等待与隐式等待

测试人

软件测试 自动化测试 测试开发

财务共享中心成功建立!用友帮助河南水投集团打造财务效率新高地

用友BIP

财务共享

上海国家会计学院杨寅: 数据、业务、技术三大事项相互融合,促进财务发展

用友BIP

智能会计 价值财务

Apache Hudi 在袋鼠云数据湖平台的设计与实践

袋鼠云数栈

数据湖 Hudi Apache Hudi

NFTScan 正式发布 Bitcoin NFT 浏览器,支持 Ordinals NFT 和 BRC20 资产

NFT Research

Bitcoin NFT\

我的 UI 组件库发布了!

DUFU

JavaScript Svelte 移动端 Tailwind UI组件库

Scrum的执行过程及产品Backlog梳理的目的、时间、内容

顿顿顿

Scrum 敏捷开发 敏捷开发管理 敏捷项目管理

开发者福利来了 | 京东云全系核心产品公开比价:我们承诺,买贵就赔!

京东科技开发者

数据库 云主机 京东云 云主机厂商 企业号 5 月 PK 榜

浅谈电解电容在电路设计中的作用

华秋PCB

电路 元器件 PCB PCB设计 电解电容

如何在Windows中设置应用程序开机启动?

IT蜗壳-Tango

SSH和SFTP是否相同

镭速

缺乏集成和标准的协作框架,企业如何确保API质量?

龙智—DevSecOps解决方案

git API API 接口

数学计算软件开发巨头MathWorks助力嵌入式开发创新,将MATLAB、Simulink与Perforce Helix Core集成

龙智—DevSecOps解决方案

版本控制 数学计算软件 MathWorks

火山引擎DataLeap联合DataFun发布《数据治理知识地图》

字节跳动数据平台

数据治理 数据开发 数据库开发 数据研发

阿里大佬随手甩出一份覆盖全网的微服务架构笔记,让我涨薪60%

程序知音

Java 微服务 spring-cloud 后端技术 spring-boot

大型企业建设财务共享中心需要重视的5个核心要素

用友BIP

财务共享

软件测试 | LDAP常见操作指南

测吧(北京)科技有限公司

测试

财务共享真的有价值吗?

用友BIP

财务共享

快速易用pdf编辑器:PDF Expert 中文激活版

真大的脸盆

Mac Mac 软件 PDF编辑 编辑PDF文件

阿里P9架构师推荐的Spring领域巅峰之作,颠覆了我对Spring的认知

程序知音

Java spring java架构 Java进阶 后端技术

Kyligence 客户案例招商银行批发业务分析平台获评金融数字化最佳实践案例

Kyligence

金融数字化 指标平台

零信任之访问代理

Flomesh

Pipy

奇妙JVM(一):Java程序员必须知道的神秘黑箱

xfgg

Java JVM

移动应用架构与React Native、Flutter的关联

Onegun

flutter 移动应用 ReactNative 软件应用架构

能让中国联通青睐的财务共享智能报账平台是什么样的?

用友BIP

财务共享

2023上海国际嵌入式展 | 如何通过版本控制与IP管理建立嵌入式开发的单一可信数据源

龙智—DevSecOps解决方案

版本控制 嵌入式开发 静态代码扫描

透明LED显示屏与常规屏的区别

Dylan

LCD1602液晶显示屏 显示器 LED显示屏

在 Kubernetes 上实现高速应用交付

NGINX开源社区

nginx Kubernetes

MaxCompute 发布智能物化视图,CU 算力节省 14%

云布道师

软件测试 | 角色介绍

测吧(北京)科技有限公司

测试

谷歌大规模多目标排序实践:Youtube视频推荐核心技术_AI&大模型_深度传送门_InfoQ精选文章