推荐中的多任务学习-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)是机器学习中的一个重要领域,其目标是利用多个学习任务中所包含的有用信息来帮助每个任务学习 ...
随机推荐
- AtCoder Regular Contest 060
C - 高橋君とカード / Tak and Cards 思路:dp,先说说我想的,我写的dp数组是dp[i][j][k],表示从前i个数字中,选择j个数字,平均值为k,则dp[i][j][k] = d ...
- 神经网络为什么需要多次epoch
Δw(t)=−ε ∂w(t)∂E +αΔw(t−1)(9) 我们知道反向传播每次迭代的效果是这样的:w=w+Δw(t) w=w+\Delta w(t)w=w+Δw(t) 我们知道,每条训练数据都会导 ...
- H3C 电路交换连接模型
- gradle在build的时候找不到某个jar包的解决办法
前几天公司来新人, 我给他装项目环境的时候遇到一个问题, 在执行gradle build时遇到一系列的错误, 我一个个分析并解决了, 特此记录, 以供他人参考. 一, 首先遇到了找不到spring-b ...
- asp.net mvc获取路由参数
学习了mvc有一段时间了,本以为直接可以通过request对象直接获取路由参数呢,后来实验了一下发现想错了,mvc有专门获取路由参数的方式,在不同的地方,获取路由参数的方式也不一样,这里分别说一下,在 ...
- oracle comment on的用法
转:http://www.2cto.com/database/201109/106249.html oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON { ...
- H3C DCC的特点
- [C++] 自动关闭右下角弹窗
最近腾讯.迅雷等各种客户端,都越发喜欢在屏幕的右下角弹框了. 有骨气的人当然可以把这些软件卸载了事,但是这些客户端在某些情况下却又还是有用的.怎么办呢? 作为码农,自己实现一个自动关闭右下角弹窗的程序 ...
- 使C# WebApi返回Json
找到Global.asax文件,在Application_Start()方法中添加一句: protected void Application_Start() { AreaRegistration.R ...
- Django使用cors解决跨域问题
1.安装Django-cors-headers模块 pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... ' ...