推荐中的多任务学习-YouTube视频推荐
本文将介绍Google发表在RecSys’19 的论文《Recommending What Video to Watch Next: A Multitask Ranking System》。主要解决大规模视频推荐中的排序阶段的多任务学习和用户选偏置问题。
- 背景
给定当前用户正在观看的视频,推荐给用户下一个可能观看或者喜欢的视频。在实际推荐场景中的两个主要问题:
1)多目标:我们不仅希望推荐的视频用户会点击,而且希望用户会给好评并分享给朋友观看
2)选择偏置:用户点击视频可能因为该视频在页面的顶部,并不是用户真的喜欢。如果不考虑这种偏置,推荐系统会误以为用户喜欢这种类型视频,导致恶性循环。
 为了解决这些问题,文章提出使用Multi-gate Mixture-of-Experts (MMoE)进行多任务学习,并对Wide&deep做出了扩展,引入一个浅层台模型消除选择偏置。MMoE是多任务学习的一种架构,核心思想是对每个学习任务将底部共享层替换为MoE层并加上门控网络,也是由google提出的,可以参考下原论文[2]。
- 模型架构
总体架构如图

 MMoE部分主要用于解决多目标学习,具体来说,文章将多目标分成两组:1)参与度目标,例如点击、观看时长等;2)满意度目标,用户评分等。每个expert关注输入的不同部分,利用多门控机制可以控制expert的权重。
 shallow tower部分用于减少选择偏置的影响,将和偏置有关的特征作为输入。该部分类似于wide&deep的wide部分,输出作为主模型的偏置。
1.建模任务间联系和冲突
 当任务间的关联比较低时,使用硬参数的底层共享模型很多进行多目标学习,为了解决这个问题,文章使用基于软参数的MMoE进行学习,让多个任务共享这些“专家”,也可以用门控网络来协调不同“专家“所起的作用。下图是提出的多任务模型

 一般来说,在输入层或者隐含层之上增加”专家“层,最终可以更好地对多模态的特征空间进行建模。但是直接加在输入层之上,会增加模型训练代价(因为输入层维度相比隐含层包含更多的参数),因此文章采用”专家“层加在隐含层之上的方法。
 对给定的任务\(k\),
\[
\begin{aligned}y_{k} &=h^{k}\left(f^{k}(x)\right) \\\text { where } f^{k}(x) &=\sum_{i=1}^{n} g_{(i)}^{k}(x) f_{i}(x)\end{aligned}
\]
对应的门控
\[
g^{k}(x)=\operatorname{softmax}\left(W_{g^{k}} x\right)
\]
2.偏置消除

 关于选择偏置问题,本文开头已经介绍了,通常用户倾向于点击显示在页面前面的视频。模型的输入被分为两部分,主塔部分输入为主要的特征信息,浅层塔输入为和偏置有关的信息。
 训练过程,浏览时的位置作为输入特征的一部分,设置drop-out,避免过度依赖位置特征。serving时,位置特征设为missing。将设备信息会被加入到shallow tower的输入中,是因为不同设备上不同位置的bias是不同的。
- discussion
具体的实验部分可以看原论文,另外论文也提出了一些在实践中需要考虑的问题。如
1.多模态特征空间
2.可扩展性
3.效果与效率的折衷
4.模型压缩等
references:
[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
推荐中的多任务学习-YouTube视频推荐的更多相关文章
- 推荐中的多任务学习-ESMM
		本文将介绍阿里发表在 SIGIR'18 的论文ESMM<Entire Space Multi-Task Model: An Effective Approach for Estimating Po ... 
- 大学MOOC课程视频下载、流文件合并、批量重命名、b站视频下载及学习课程视频推荐
		计算机行业技术更新快,编程语言种类多,在当今大数据和人工智能的时代,为了能在相关领域有所成就,就必须掌握好python.R等语言,较好的数学基础和深入的行业背景知识.计算机从业人员务必践行" ... 
- 深度召回模型在QQ看点推荐中的应用实践
		本文由云+社区发表 作者:腾讯技术工程 导语:最近几年来,深度学习在推荐系统领域中取得了不少成果,相比传统的推荐方法,深度学习有着自己独到的优势.我们团队在QQ看点的图文推荐中也尝试了一些深度学习方法 ... 
- Mac 软件专题:高效率工作和学习工具软件推荐
		今天和大家分享软件专题:「高效率工作和学习工具」,简而言之就是提高你工作和学习效率的软件,这对于要天天使用Mac工作或学习的人来说太有帮助了,这里主要分享大家平时经常用的一些,欢迎留言补充. 本文图片 ... 
- [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习
		机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ... 
- 【论文笔记】多任务学习(Multi-Task Learning)
		1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ... 
- 多任务学习Multi-task-learning  MTL
		https://blog.csdn.net/chanbo8205/article/details/84170813 多任务学习(Multitask learning)是迁移学习算法的一种,迁移学习可理 ... 
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)
		译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ... 
- 多任务学习(MTL)在转化率预估上的应用
		今天主要和大家聊聊多任务学习在转化率预估上的应用. 多任务学习(Multi-task learning,MTL)是机器学习中的一个重要领域,其目标是利用多个学习任务中所包含的有用信息来帮助每个任务学习 ... 
随机推荐
- Android 性感美图在线浏览APP
			周末无聊,遂整理了下近来常用的几个开源库,无意间又发现了一些开放接口,于是乎决定融合在一起,做个简单的"性感美图"浏览的APP,名字呢,就叫"性感沙滩",效果如 ... 
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
			不可否认,微信.QQ列表的滑动删除.编辑功能着实很经典(从IOS那边模仿过来的),然.Android这边,对列表的操作,其实大多还停留上下文菜单来实现. Android如何实现list item的滑动 ... 
- ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel
			当在jupyter下使用parser.parse_args()出错则改换为parser.parse_known_args()[0]其效用是差不多的,至于为什么出现错误,我也不知道… 
- 整理了一下 ThinkPHP 历史 (2019-07-01)
			整理了一下 ThinkPHP 历史 ThinkPHP 一款国内最流行的 PHP 开源框架. 版本 发布日期 最后更新日期 总天数 ThinkPHP(FCS) 0.6 2006-01-15 2006-0 ... 
- spring+mybatis 整合
			项目目录: 一.导入pom.xml依赖 最下边有 二.在applicationContext.xml配置连接器和数据库的数据源 三.流程:用户请求数据,springmvc解析url,通过控制器和适配器 ... 
- 2013年NOIP普及组复赛题解
			题目涉及算法: 计数问题:枚举: 表达式求值:栈: 小朋友的数字:动态规划: 车站分级:最长路. 计数问题 题目链接:https://www.luogu.org/problem/P1980 因为数据量 ... 
- Postman接口测试工具学习笔记
			- 新建测试接口 在Postman中有两种新建测试接口的方式,第一种是图片右上角的,点击可以选择 request 请求进行新建 选择 Request 以后会出现下面图片的对话框,让你输入一个保存接口的 ... 
- 简单的Spring Batch示例
			使用Spring Batch做为批处理框架,可以完成常规的数据量不是特别大的离线计算. 现在写一个简单的入门版示例. 这里默认大家已经掌握了Spring Batch的基本知识,示例只是为了快速上手实践 ... 
- 5-1rquests模拟登陆知乎之httpcode
			1,状态码: 400错误:请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里 2,requests库:python常用的库,有空仔细阅读一下官方文档 
- Ultra-QuickSort——[归并排序、分治求逆序对]
			Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ... 
