导读:今天给大家分享一篇Youtube推荐排序模块的论文from RECSYS 2019:Recommending What Video to Watch Next: A Multitask Ranking System。

该论文是 youtube 上实践的一篇文章,并且内容应该比较实用。论文本身虽然没有提出特别新颖的结构,但内容很实在,也 work,算是推荐系统中排序模块很通俗易懂的文章了,论文主要聚焦于大规模视频推荐中的排序阶段,介绍一些比较实在的经验和教训,解决 Multitask Learning,Selection Bias 这两个排序系统的关键点。

一般推荐系统排序模块的进化路径是:ctr 任务 -> ctr+ 时长 -> mulittask & selection bias。

所以强烈推荐还在推荐系统起步阶段的同学读一读这篇 paper,下边简单抽取文章的重点介绍下。

在 Youtube 上进行两段实验验证效果:
  • multitask learning
  • removing a common type of selection bias
贡献:
- an end-to-end ranking system 
- multi-objective learning ( MMOE ) 
- mitigate position bias 
- signifcant improvements on a real-world large-scale video recommendation system
相关工作
    模型结构就不多介绍了,基本上就是各种 pointwise,pairwise 目标,还有各种 NN 模型结构,rnn,attention,NN+GBDT 等等。
    多目标的话最基础的就是 shared-bottom 这种共享底层的结构,进阶版就是 MMOE 这种了,以及因为不同目标的 loss 贡献不一样所以会搞一些比如 gradnorm 这种的优化算法。
    Bias之前的分享的推荐系统文章基本都提过这块。常见的是把 position 之类的作为输入,预估时用 position 为1的输出值。其他的方案有从随机数据中学一个 bias iterm,也有不需要随机数据的,用 counter-factual model 学 inverse propensity score ( IPS )。像 Twitter、Youtube 这种用户兴趣变化比较快的,不太适合 IPS,需要更高效的方案来适应这种数据分布变化。
模型结构
1. System Overview
排序系统学习两种目标:
1) 参与度:点击、观看 
2)满意度:喜欢、不喜欢
所以排序目标是分类问题和回归问题的组合。
此方法是 pointwise,像 pairwise 和 listwise 的方案虽然可以提升推荐的多样性。但是基于 serving 时的考虑还是选择用 pointwise,简单高效,尤其是候选集比较多的时候。
2. Ranking Objectives
目标基本上就是刚才说的两类,一类是点击、时长, 一类是点赞、打分。分类问题就用 cross entropy loss 学习,回归问题可就是 square loss。最后用融合公式来平衡用户交互和满意度指标,取得最佳效果。
3. Modeling Task Relations and Conficts with Multi-gate Mixture-of-Experts
常见的多目标的排序系统用的是 shared-bottom 结构,但是这种 hard-parameter 强行共享底层的方案对于目标之间相关性小的任务,是有损效果的。因此采用并扩展 MMOE 结构来解决多目标冲突问题。
本文的排序系统上是在共享隐层上边加 experts,如图2-b。Mixture-of-Experts 层可以帮助从输入中学习模块化信息,更好的建模多模态特征空间。但直接上 MoE 层会显著增大训练和预测的消耗,因为输入层维度一般比隐层维度大。
具体公式如下:
x 就是低层的共享 embedding,fi(x) 就是第 i 个 expert,g(x) 就是图中的 gate layer。
4. Modeling and Removing Position and Selection Biases
排序系统中有很多 bias,最明显的就是 position bias,排的靠前的天然就比排的靠后的容易被点击,所以我们需要去移除这种 bias,打破这种越来越偏的循环。
所以模型结构上除了一个 main tower,还有一个 shallow tower 去建模 bias,将输出的偏置项加到 main tower 最终输出的 logit 上,如图3训练的时候浏览时的位置作为输入,设置 drop-out rate 为10%,避免过度依赖位置特征。serving 时,位置特征设为 missing。设备信息会被加入到 shallow tower 的输入中,因为不同设备上不同位置的 bias 是不同的。
EXPERIMENT RESULTS
实验就开在 Youtube 上,比较可靠。有不少推荐系统方向论文的改进是在很小数据集上测试的,在大规模场景下经常就不好使了,所以我比较少去看学术界的推荐系统论文。
离线使用指标用 AUC,线上开 AB 实验,评估参与度指标和满意度指标,除此外还要关注下服务的预测开销。
1. Multitask Ranking With MMoE
① Baseline Methods
基线方法就是图2a的 shared-bottom,模型复杂度是差不多的,确保线上 serving 开销相同。
② Live Experiment Results
结果如表1,MMOE 在保持模型复杂度不变的情况下,比较了下4个 experts 和8个 experts。可以看出参与度、满意度指标都有所提升。
③ Gating Network Distribution
图5画了网络中每个 expert 对每个任务的累计概率,方便理解 MMoE 如何帮助优化多目标。可以看到有的 expert 偏重参与度任务,有的偏重满意度任务。
另外让 gating networks 直接和 input layer 相连,没有明显提升,所以没必要增大开销进行直连。
④ Gating Network Stability
多机分布式训练可能会导致 model diverged,比如 Relu death。在分布式训练中,可以观察到此模型中 gating network 有20%会极化,这降低了模型性能。因此训练中要使用 drop-out,10%的概率将 expert 的利用程度设为0并重新归一化 softmax 输出的概率。
2. Modeling and Reducing Position Bias
① Analysis of User Implicit Feedback
图6展示了位置1-9的 CTR,这里边有 item 相关性的原因也有 position bias 的因素。因此用个 shollow tower 去学下 position bias。
② Baseline Methods
  • 直接用位置特征作为输入
  • Adversarial learning: 用辅助任务去预测展现的位置,在反向传播阶段把梯度取负(这里之前理解错了,写成了把梯度抹除掉),这样主模型不会依赖位置特征
下边是原文,这里说的不太详细,我又专门去看了下文章引用的第五篇:
https://arxiv.org/pdf/1707.00075.pdf
这个基线方案就是这个论文里讲的:
逻辑上是一个 head 正常预测比如点击,另一个预测位置,然后预测位置的这个 loss 反传是用负梯度,让 share 的底层不去学习位置逻辑,这样主模型就不依赖位置特征了。
③ Live Experiment Results
表2是结果,文中提的方法更好
④ Learned Position Biases
图7是学到的 position bias,可以看到位置越靠后,bias 越小。
Discussion
Neural Network Model Architecture for Recommendation and Ranking
许多推荐系统 paper 里提出的结构源于一些传统机器学习领域,比如 NLP 的  multi-headed attention,CV 里的 CNN。但这些其实都不直接适合我们的需求。主要原因:

「 更多干货,更多收获 」

YouTube 多目标排序系统:如何推荐接下来收看的视频相关推荐

  1. Google最新论文:Youtube视频推荐如何做多目标排序

    作者 | 深度传送门 来源 | 深度传送门(ID:deep_deliver) 导读:本文是"深度推荐系统"专栏的第十五篇文章,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界 ...

  2. 一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

    短视频具有内容丰富.信息集中.用户粘性大的特点,如何提高短视频分发的效率和推荐精准度,有效提升消费时长.留存等关键业务指标,是推荐系统的核心能力和建模目标. 本文主要分享在短视频推荐场景下,爱奇艺基础 ...

  3. 多目标排序在快手短视频推荐中的实践

    分享嘉宾:郑东博士 快手 推荐算法技术总监 编辑整理:于洋 出品平台:DataFunTalk 导读:快手是中国领先的短视频和直播社区,拥有超过3亿的DAU和丰富的社交数据.快手秉承的价值观是真实.多元 ...

  4. 【2022研电赛】商业计划书赛道上海市一等奖:基于多目标排序预测控制的SL-qZSI光伏储能系统

    本文为2022年第十七届中国研究生电子设计竞赛商业计划赛道上海赛区一等奖作品兼全国三等奖分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位 ...

  5. 看Youtube怎么利用深度学习做推荐

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  6. 打分排序系统漫谈1 - 时间衰减

    打分排序系统的应用非常普遍,比如电影的评分,知乎帖子的热度,和新闻文章的排序.让我们从最简单直观的平均打分开始, 聊聊各种打分方法的利弊和使用场景. 最简单的打分方法当然是一段时间的点赞量综述.显而易 ...

  7. java毕业设计基于精细化考核的离散数学课程教学目标达成系统Mybatis+系统+数据库+调试部署

    java毕业设计基于精细化考核的离散数学课程教学目标达成系统Mybatis+系统+数据库+调试部署 java毕业设计基于精细化考核的离散数学课程教学目标达成系统Mybatis+系统+数据库+调试部署 ...

  8. Windows系统免费软件推荐(含电子行业软/硬件开发专业软件)

    因本人工作环境为Windows系统, 所以推荐的软件为Windows上常用的软件.免费无广告. PCB 工具 Kicad是开源跨平台电子设计自动化套件,遵守GNU GPLv3版权协议.套件分为Kica ...

  9. ibm db2获取目标时间与当前时间的差值_高帧频视觉实时目标检测系统

    基于机器视觉的智能目标检测系统应用非常广泛,尤其在航天军工等领域中,经常涉及高速目标的实时检测和控制,对目标检测的智能性和实时性提出了更严格的要求.在这种应用中,视觉系统相对雷达.声纳具有信息量大.抗 ...

最新文章

  1. Chapter 6 : 综合数据和分组函数
  2. Create React App使用
  3. NetLink Communication Mechanism And Netlink Sourcecode Analysis
  4. linux ubuntu如何解压rar文件?unrar
  5. CentOS 6安装详解及PXE 安装
  6. mybatis-plus的 mapper.xml 路径配置的坑
  7. golang开发环境配置及Beego框架安装
  8. 95-134-112-源码-维表-全量加载MySQL
  9. WPF and Silverlight 学习笔记(十九):WPF更换主题
  10. kubernetes 应用快速入门
  11. 10.程序员的自我修养---内存
  12. C#使用OpcNetApi.dll和OpcNetApi.Com.dll操作OPC
  13. 自动化测试基础篇--Selenium弹出框alert
  14. Mysql数据库和表的操作
  15. 大牛总结目前最流行软件开发模式之敏捷开发(scrum)
  16. VMware 虚拟机安装 android-x86_64-9.0-r2 后 VirtWifi/无法访问互联网
  17. Java实验—四子棋进阶
  18. 红帽linux9 iso,RedHat Linux9.0 ISO 原版下载
  19. 二叉树遍历【递归非递归】
  20. 动态规划解决最长公共子序列

热门文章

  1. SAP License:GR/IR
  2. SAP License:买十送一的业务处理与系统实现
  3. SAP License:BWBCS学习记录
  4. 推荐|风控教父新书来袭(含红宝书三本风控秘籍)
  5. C语言讲义——C语言的布尔类型
  6. 【转】CSS和SVG中的剪切——clip-path属性和clipPath元素
  7. 灵动标签调用栏目自定义字段
  8. 初探 performance – 监控网页与程序性能
  9. PHP curl 参数详解
  10. 互联网反欺诈体系中的常用技术和数据类型