多任务学习综述:推荐系统多任务学习(multitask)的实战总结和常见问题(一)
多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://github.com/PaddlePaddle/PaddleRec),欢迎大家点赞,关注和讨论。
第一章首先介绍多任务的基本概念和工业实践中的动机以及应用场景。
一. What multitask
多任务学习(multitask)的定义和形式有很多种。我觉得比较直观的理解是和单任务学习相对的一种机器学习方法。
以School Data案例为例介绍单任务和多任务的区别:
(1) School Data是用来预测学生成绩的回归问题的数据集,总共有139个中学的15362个学生,其中每一个中学都可以看作是一个预测任务。
(2) 单任务学习就是忽略任务之间可能存在的关系分别学习139个回归函数进行分数的预测,或者直接将139个学校的所有数据放到一起学习一个回归函数进行预测。
(3) 而多任务学习则看重任务之间的联系,通过联合学习,同时对139个任务学习不同的回归函数,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。
一般优化多于一个的目标函数的任务都可以称为多任务(multi-task)【1】。
本文的多任务学习特指工业界推荐系统领域(搜广推)中深度学习相关的多任务学习。
二. Why multitask
多任务算法的应用场景还是很广泛的,只要是推荐技术涉及的业务,比如搜索、广告还是推荐都有需求,另外无论是成熟的大规模推荐系统还是处于上升期的初创场景对于多个目标的联合训练一般都有强需求。
常见多任务学习的动机和需求还是围绕提升(主)模型的精度(泛化能力)、资源性能和维护成本,具体如下也欢迎更多同学补充交流。
(1)多任务场景下,多个任务(相关性较强)会从不同的角度学习特征,增强模型泛化能力来提升收益,最常见的就是通过增加优化目标,比如在信息流推荐领域中的点击,时长,评论,点赞等多个维度,比如在电商领域的点击和转化。
(2)共享参数,不额外增加资源的前提下变相增加参数规模。推荐系统的核心是embedding,对于相关的多个目标,比如点击/时长等,用户及相关特征的重合或者接近的,多个任务共享这部分参数可以极大的节省离线和在线资源
(3)用数据更多的任务指导学习数据较少的任务。一般常见的就是某个任务的数据量较少,期望能通过大数据训练较好的模型指导稀疏数据场景下的模型,比如点击率和转化率,一跳场景和二跳场景。
(4)冷启模型的快速收敛。将冷启模型和收敛模型同时训练,帮助冷启模型可以在一个相对正确的方向上快速收敛
(5)有更多反馈和指导的模型(人工参与或更接近用户反馈层)指导学习其他模型。最常见的就是在精排阶段或者重排序阶段有一些"精准"评分用来指导更上层的粗排或者召回模型
(6)多个模型合并为一个模型后的线上资源多路请求可以合并为一路,减少请求资源。这个一般是架构同学的强需求,毕竟线上资源还是非常贵的。
(7)减少多模型的维护成本。有很多策略和架构同学减少维护多个"相似"模型的需求是强烈的,一般一个模型有数据链条,离线训练任务,在线任务等多个环节,如果能合并成一个任务会极大的减轻工作量。
(8)混合数据中训练不同任务。由于数据生成或者任务形式的不同,常见的需求是期望不同的数据训练不同的模型(比如mlp塔),而不是所有数据都训练每个模型,这也是多任务学习中的常见需求。不同的数据一般指不同的样本 或者一条样本的不同特征。
总结一下,本章主要介绍了多任务的概念,一般优化多于一个的目标函数的任务都可以称为多任务。多任务学习的主要动机还是围绕提升(主)模型的精度(泛化能力)、资源性能和维护成本。
后续将总结不同需求下的解决方案,包括模型层面(share-bottom, mmoe, ple, esmm等)和数据层面的解决方案(Instag),后续也会推出常见问题的章节,比如为什么esmm的ctcvr的auc精度损失问题,多个目标的融合等。
其他文章链接:
Share-Bottom: 推荐系统多任务学习(multitask)的实战总结和常见问题(二)
Gate&Expert 系列:推荐系统多任务学习(multitask)的实战总结和常见问题(三)
多样本空间下的多任务算法——ESMM & Instag:推荐系统多任务学习(multitask)的实战总结和常见问题(四)
欢迎更多同学讨论和指正,最好还是宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://github.com/PaddlePaddle/PaddleRec)
参考文献:
【1】An Overview of Multi-Task Learning in Deep Neural Networks .
多任务学习综述:推荐系统多任务学习(multitask)的实战总结和常见问题(一)相关推荐
- 叶梓老师人工智能培训之强化学习与深度强化学习提纲(强化学习讲师培训)
强化学习与深度强化学习提纲(强化学习讲师培训) 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym,Te ...
- AI内训讲师叶梓-强化学习与深度强化学习提纲(强化学习讲师培训)
叶梓老师更多教程资料可点击个人主业查看 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym ...
- MMoE PLE:推荐系统多任务学习(multitask)的实战总结和常见问题(三)
多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成 ...
- 【推荐系统多任务学习 MTL】PLE论文精读笔记(含代码实现)
论文地址: Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized ...
- 多任务学习---综述
学界 | 多任务学习概述论文:从定义和方法到应用和原理分析 多任务深度学习的三个经验教训 多任务学习-An Overview of Multi-Task Learning in Deep Neural ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
- 1.1.4. Multi-task Lasso(多任务 Lasso)(多任务学习)
1.1.4. Multi-task Lasso 说实话,在最开始,我只把多任务 Lasso当作Lasso的一种应用于多输出回归的一种方式而已:甚至想把它和弹性网络那几章混在一起讲.但是我又按捺不住性子 ...
- 【深度学习】多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)
1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我们训练单一模型或多个模型集合来完成指定得任务.然后,我们通过精细调参,来改进模型直 ...
- Survey | 多任务学习综述
1.简介 深度学习模型通常需要大量有标签数据才能训练出一个优良的分类器.但是,包括医学图像分析在内的一些应用无法满足这种数据要求,因为标注数据需要很多人力劳动.在这些情况下,多任务学习(MTL)可以通 ...
最新文章
- R语言ggplot2包旋转(Rotate)可视化图像轴标签实战
- 时空大数据赋能智慧城市的思考和实践
- iOS_多线程(一)
- 建站初期关键字的定位
- 抖音右上角一个小黄点是什么_抖音用户更喜欢什么样的人设?抖音怎么塑造出一个受人喜欢的人设?抖音人设...
- Java 接口实现计算器加减乘除(字符交互界面)
- [置顶] 软件设计之道_读书纪要.doc
- C++中auto关键字
- LeetCode面试题03. 数组中重复的数字
- php怎么检查输入名称,PHP |通过$_POST []获取输入名称
- CSS属性之attr()
- AntDesign组件库的使用
- Google AdSense广告被屏蔽
- 数据库的操作 增删改查 mysql
- 程序员的自我修养 pdf_软件特攻队|C/C++程序员的自我修养(5)
- 大数据导论章节答案_苹果手机一般能用几年 一份大数据告诉你答案
- PetShop数据访问层之消息处理(转Bruce Zhang)
- java 运行不出来的原因_小议Java程序不能运行的几种原因
- python的ls是什么意思_谏言给那些想学Python的人,建议收藏后细看!
- 搭建京东客京推推CMS2.0导购网站部署教程,新手教程带视频