推荐算法-多目标学习总结

推荐算法-多目标学习总结
mutil-task  , 本质上是用一个模型完成多个任务的建模、在推荐系统中 , 多任务学习一般即指多目标学习(multi-label ) , 不同目标输入相同的进行联合训练 , 是迁移学习的一种 。他们之间的关系如图:
q1:为什么要用多目标学习?
1、很多业界推荐业务 , 天然就是多目标建模场景 , 需要多目标共同优化 。
2、工程便利 。一般推荐系统中排序模块延时需求在40ms左右 , 如果分别对每个任务单独训练一个模型 , 难以满足需求 。
q2:为什么多任务学习有效?
当把业务独立建模变成多任务联合建模之后 , 有可能带来四种结果:
多任务学习的优势在于通过部分参数共享 , 联合训练 , 能在保证“还不错”的前提下 , 实现多目标共同提升 。原因有以下几种:
● 任务互助:对于某个任务难学到的特征 , 可通过其他任务学习
● 隐式数据增强:不同任务有不同的噪声 , 一起学习可抵消部分噪声
● 学到通用表达 , 提高泛化能力:模型学到的是对所有任务都偏好的权重 , 有助于推广到未来的新任务
● 正则化:对于一个任务而言 , 其他任务的学习对该任务有正则化效果
多任务学习主要研究:网络结构设计(哪些参数共享、在什么位置共享、如何共享)、多loss优化策略(每个目标都对应一个loss , 继而引起loss数值有大有小 , 学习速度有快有慢 , 更新方向时而相反)
多目标类别
1、loss 加权融合

推荐算法-多目标学习总结

文章插图
优点:
● 模型简单 , 仅在训练时通过梯度乘以样本权重实现对其它目标的加权
● 模型上线简单 , 和base完全相同 , 不需要额外开销
缺点:
● 本质上并不是多目标建模 , 而是将不同的目标转化为同一个目标 。样本的加权权重需要根据AB测试才能确定 。
2、- 底层共享结构
优点:
● 浅层参数共享 , 互相补充学习 , 任务相关性越高 , 模型loss优化效果越明显 , 也可以加速训练 。
缺点:
● 任务不相关甚至优化目标相反时(例如新闻的点击与阅读时长) , 可能会带来负收益 , 多个任务性能一起下降 。
3、多任务学习-MOE
4、多任务学习-MMOE(mutil gate -of )
MMOE 是MOE的改进 , 相较于MOE的结构中所有任务共享一个门控网络 , MMOE的结构优化为每个任务都单独使用一个门控网络 。这样的改进使模型更容易捕捉到子任务间的相关性 。
5、多任务学习-ESMM( Space Multi-Task Model)
ESMM是针对任务依赖而提出 , 比如电商推荐中的多目标预估经常是ctr和cvr , 其中转换这个行为只有在点击发生后才会发生 。
优点与拓展:
1、ESMM首创了利用用户行为序列数据在完整样本空间建模 , 并提出利用学习CTR和CTCVR的辅助任务 , 迂回学习CVR , 避免了传统CVR模型经常遭遇的样本选择偏差和训练数据稀疏的问题 , 取得了显著的效果 。
2、论文中子任务的Tower网络是MLP , 我们可以很容易将其替换为其他学习模型 , 方便拓展
3、可以在loss中引入动态加权的学习机制
4、也可以对更长的序列依赖进行建模
6、PLE