Share-Bottom: 推荐系统多任务学习(multitask)的实战总结和常见问题(二)

本文介绍了推荐系统中多任务学习的经典算法Share-Bottom,探讨了其在节省资源和刻画用户画像方面的优势,以及可能产生的跷跷板效应。分享了PaddleRec库中的实现,并预告了后续的Gate专家系列算法。
摘要由CSDN通过智能技术生成

多任务学习算法系列的主要内容是回顾和总结自己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)

文章转自:Share-Bottom: 推荐系统多任务学习(multitask)的实战总结和常见问题(二) - 知乎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
几篇CVPR关于multi-task论文笔记整理,包括 一、 多任务课程学习Curriculum Learning of Multiple Tasks 1 --------------^CVPR2015/CVPR2016v--------------- 5 、 词典对分类器驱动卷积神经网络进行对象检测Dictionary Pair Classifier Driven Convolutional Neural Networks for Object Detection 5 三、 用于同时检测和分割的多尺度贴片聚合(MPA)* Multi-scale Patch Aggregation (MPA) for Simultaneous Detection and Segmentation ∗ 7 四、 通过多任务网络级联实现感知语义分割Instance-aware Semantic Segmentation via Multi-task Network Cascades 10 五、 十字绣网络多任务学习Cross-stitch Networks for Multi-task Learning 15 --------------^CVPR2016/CVPR2017v--------------- 23 六、 多任务相关粒子滤波器用于鲁棒物体跟踪Multi-Task Correlation Particle Filter for Robust Object Tracking 23 七、 多任务网络中的全自适应特征共享与人物属性分类中的应用Fully-Adaptive Feature Sharing in Multi-Task Networks With Applications in Person Attribute Classification 28 八、 超越triplet loss:一个深层次的四重网络,用于人员重新识别Beyond triplet loss: a deep quadruplet network for person re-identification 33 九、 弱监督级联卷积网络Weakly Supervised Cascaded Convolutional Networks 38 十、 从单一图像深度联合雨水检测和去除Deep Joint Rain Detection and Removal from a Single Image 43 十一、 什么可以帮助行人检测?What Can Help Pedestrian Detection? (将额外的特征聚合到基于CNN的行人检测框架) 46 十、 人员搜索的联合检测和识别特征学习Joint Detection and Identification Feature Learning for Person Search 50 十三、 UberNet:使用多种数据集和有限内存训练用于低,中,高级视觉的通用卷积神经网络UberNet: Training a Universal Convolutional Neural Network for Low-, Mid-, and High-Level Vision using Diverse Datasets and Limited Memory 62 一共13篇,希望能够帮助到大家
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值