多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://github.com/PaddlePaddle/PaddleRec),欢迎大家点赞,关注和讨论。
第一章推荐系统多任务学习(multitask)的实战总结和常见问题(一) 介绍了多任务的基本概念和常见的动机及应用场景。
第二章主要介绍工业实践中的多任务解决方案中最经典的入门级算法Share-Bottom
一. 多任务与"共享"
"共享"的概念大家并不陌生:共享单车,共享充电宝,在公司层面的各种中台等等都是"共享"的现实体现。在机器学习/深度学习中共享参数、共享数据也是由来已久。在多任务学习的算法中最直观最经典的算法就是Share-Bottom (后面简称share-btm)【1】Multitask learning: A knowledge-based source of inductive bias. Caruana, R. (1993).
根据共享的程度分为硬参数共享(Hard parameter sharing) 和软参数共享(Soft parameter sharing). 【2】
推荐系统(深度学习)的演变,往往是从简单到复杂的过程,综合精度和性能考虑,最常见的路径是线性模型/LR -> 双塔模型(user/item) -> DNN全链接 -> 多个目标的联合学习 / 更复杂的特征学习(wide&deep, deepfm等)。
最直观最容易理解的多任务学习就是share-btm的硬共享学习,而最常见的共享部分就是embedding。关于embedding的介绍和各种优化不在这里赘述了,有兴趣的可以自行搜索,可以说推荐系统的有效性,有一半的功劳都属于embedding(离散id->多维特征)。
不论是离散特征比如用户id, 性别男/女, ,年龄(25)还是连续性特征如收入(10000 :可以转化为区间的离散特征或者直接映射到一个很大的id空间)都可以通过embedding转化为多维空间下的向量,用于更深刻的刻画这个特征值。在一个中等或者大规模的推荐系统中,往往embedding的key(离散id)可以达到上亿甚至十亿以上的规模。用户id的embedding的"表示"能力往往支撑着一个个性化推荐系统的下限。
所以一个有着数百万以上用户的推荐系统往往sparse(一般指embedding,是相对于全链接层等稠密dense计算而言)部分就占据着相当大的参数规模和计算量。在多任务场景下,如果各个任务都需要embedding映射,那么每个任务都有一个独立的sparse映射表就显得太"奢侈"了。同时希望多个任务能同时完整全面的刻画一个用户的画像(embedding表示),所以共享sparse部分成为推荐系统中多任务学习的最常见的行为。
总结一下,共享sparse可以节省大量资源,更完整刻画用户/产品等特征值的画像。
二. Share-Bottom的优缺点分析
根据上图硬共享的图示,数据进入共享层后会作为不同任务的输入,在反向梯度计算中,不同任务会共同影响共享层的参数。
优点:
(1) 简单直接易于理解,符合多任务学习共享表示的直观思想。
(2) 应用场景广泛。可以满足上一章中提到的大部分多任务需求,如快速帮助冷启模型收敛,为稀疏数据场景的子任务扩充数据源,从更多的角度提升模型的泛化性。
(3) 易于实现。特别适合于快速迭代和简易推荐系统的搭建。
缺点:
(1) 不同任务下,尤其是相关性差的多任务会产生严重的跷跷板效应,即一些子任务效果好,一些子任务效果差,甚至会出现表型都差的情况,原因就是直接将共享层作为不同任务的输入有可能会造成互斥任务间的排斥效应。
PaddleRec大规模推荐算法库中实现了Share-bottom的动态图和静态图方法,链接如下 https://github.com/PaddlePaddle/PaddleRec/tree/master/models/multitask/share_bottom
本章介绍了多任务学习中最经典的入门级算法Share-Bottom,可以满足大部分多任务学习的基本需求,但是对于多个任务之间过于简单草率的"联合"也导致了跷跷板效应。后续有大量的学术研究和工业实践都是为了解决share-btm的不足,在下一章中我们将介绍推荐系统中多任务学习的神之算法——Gate专家系列算法。
最后再宣传一下我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://github.com/PaddlePaddle/PaddleRec),欢迎大家点赞,关注和讨论。
参考资料:
【1】Multitask learning: A knowledge-based source of inductive bias. Caruana, R. (1993).
【2】An Overview of Multi-Task Learning in Deep Neural Networks. Sebastian Ruder(2017)