Gradient Normalization在多任务学习中的优化实践

简介: 在每平每屋以及我们团队负责的其他一些场景,MMoE多任务模型是精排阶段常用的模型。在每平每屋场景中,我们使用MMoE模型,对场景中的三个任务同时进行点击率预估,即内容的一跳点击、内容详情页点击以及跳转的商品详情页点击。

1.gif

本系列文章包含每平每屋过去一年在召回、排序和冷启动等模块中的一些探索和实践经验,本文为该专题的第四篇。

第一篇指路:冷启动系统优化与内容潜力预估实践

二篇指路:GNN在轻应用内容推荐中的召回实践

第三篇指路:基于特征全埋点的精排ODL实践总结

前言

在每平每屋以及我们团队负责的其他一些场景,MMoE多任务模型是精排阶段常用的模型。在每平每屋场景中,我们使用MMoE模型,对场景中的三个任务同时进行点击率预估,即内容的一跳点击、内容详情页点击以及跳转的商品详情页点击。MMoE结构有别于简单的Hard Parameter Sharing的方式,可以通过模型去学习不同任务之间哪些参数共享(Experts),共享的程度如何(Gates)

图片.png

建模

MMoE是从Model Structure的角度来对共享参数做精细化控制,并在很多场景都取得了提升。除了Model Structure之外,我们还可以从Model Dynamics的角度去考虑优化。由于不同任务之间天然存在着数据量、样本分布、难易程度的差别,导致在训练过程中,收敛速度、收敛结果都会存在不小的差异。Model Dynamics希望在模型训练过程中去动态调整训练的速度等变量。

建模

图片.png

▐  Dynamic Weight Averaging

图片.png


图片.png

▐  Dynamic Task Prioritization

图片.png

▐  Gradient Normalization

图片.png

图片.pngimage.gif

GradNorm实践

图片.png


▐  离线对比

图片.png


auc结果波动性


我们对同样的模型参数组,连续训练三次,计算每次结果三个任务auc的均值和方差,我们可以发现,在不使用gn的基准组,一跳点击、二跳点击、商详点击的预估auc方差逐次增大,这也表明二跳点击和商详点击的预估任务,在相同训练参数下波动较大,表明任务训练的结果不好,这对于线上结果显然是有害的。而在使用了gn的实验组,auc的方差都保持在相对较低的水平,表明这几个任务的训练结果应当是稳定的。


type click auc detail auc fav auc
baseline 0.6720 ± 0.0013 0.6886 ± 0.0057 0.6915 ± 0.0095
baseline + gn 0.6828 ± 0.0023 0.7078 ± 0.0014 0.7155 ± 0.0012

baseline 平均波动:0.0055

baseline + gn 平均波动:0.0016

整体训练波动被大幅缩小,尤其是在正样本比较稀疏的 detail 任务和 fav 任务上,此外加入gn之后整体auc有明显的提升。


▐  线上AB

线上ab结果,pctcvr +3.49%,avg_ipv +4.04%

ab_name

uctr_improv

pctr_improv

avg_expo_improv

avg_click_improv

ipv_uctr_improv

ipv_pctr_improv

uctcvr_improv

pctcvr_improv

avg_ipv_improv

GradNorm

2.25%

4.59%

0.51%

5.13%

-0.19%

-1.05%

2.06%

3.49%

4.04%

Baseline AA

0.00%

-0.15%

0.43%

0.27%

0.03%

0.02%

0.03%

-0.13%

0.26%

Baseline

0.00%

0.00%

0.00%

0.00%

0.00%

0.00%

0.00%

0.00%

0.00%

总结

在实际推荐、搜索场景中,我们所优化的业务目标往往并不单一,使用多任务、多目标模型在目前业界比较常见。不同于MMoE、PLE等Model Structure优化,我们从Model Dynamic的角度出发,人为定义一系列"好的"Model Dynamic标准,并在建模中应用,取得了在MMoE基础上的进一步提升。两类优化具有互补性,在实际使用中可以同时应用。

团队介绍

*本项工作是本组实习生知同在职时合作完成。

淘系技术部-淘宝智能团队

淘宝智能团队是一支数据和算法一体的团队,服务于淘宝、天猫、聚划算、闲鱼和每平每屋等业务线的二十余个业务场景,提供线上零售、内容社区、3D智能设计和端上智能等数据和算法服务。我们通过机器学习、强化学习、数据挖掘、机器视觉、NLP、运筹学、3D算法、搜索和推荐算法,为千万商家寻找商机,为平台运营提供智能化方案,为用户提高使用体验,为设计师提供自动搭配和布局,从而促进平台和生态的供给繁荣和用户增长,不断拓展商业边界。

这是一支快速成长中的学习型团队。在创造业务价值的同时,我们不断输出学术成果,在KDD、ICCV、Management Science等国际会议和杂志上发表数篇学术论文。团队学习氛围浓厚,每年组织上百场技术分享交流,互相学习和启发。真诚邀请海内外相关方向的优秀人才加入我们。如果您有兴趣可将简历发至bangzhu.gx@alibaba-inc.com,期待您的加入!

参考文献

[1] 多任务学习优化(Optimization in Multi-task learning) https://zhuanlan.zhihu.com/p/269492239[2] Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts, KDD 2018 https://dl.acm.org/doi/10.1145/3219819.3220007[3] End-to-End Multi-Task Learning with Attention, CVPR 2019 https://openaccess.thecvf.com/content_CVPR_2019/papers/Liu_End-To-End_Multi-Task_Learning_With_Attention_CVPR_2019_paper.pdf[4] Dynamic task prioritization for multitask learning, ECCV 2018 https://openaccess.thecvf.com/content_ECCV_2018/papers/Michelle_Guo_Focus_on_the_ECCV_2018_paper.pdf[5] GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks, ICML 2018 http://proceedings.mlr.press/v80/chen18a/chen18a.pdf


相关文章
|
机器学习/深度学习 资源调度 监控
深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。
深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。
|
5月前
|
算法 计算机视觉 Python
技术经验分享:GBM模型调参详解
技术经验分享:GBM模型调参详解
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
122 0
|
机器学习/深度学习 存储 算法
强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN
强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN
强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN
|
机器学习/深度学习 自然语言处理 算法
深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
|
机器学习/深度学习 Python
【机器学习】numpy实现NAG(Nesterov accelerated gradient)优化器
【机器学习】numpy实现NAG(Nesterov accelerated gradient)优化器
230 0
【机器学习】numpy实现NAG(Nesterov accelerated gradient)优化器
|
机器学习/深度学习 并行计算 PyTorch
用什么tricks能让模型训练得更快?先了解下这个问题的第一性原理(2)
用什么tricks能让模型训练得更快?先了解下这个问题的第一性原理
133 0
|
机器学习/深度学习 存储 并行计算
用什么tricks能让模型训练得更快?先了解下这个问题的第一性原理
用什么tricks能让模型训练得更快?先了解下这个问题的第一性原理
108 0
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 15 过拟合问题的优化技巧(二):Dropout()方法
异常数据的特点:与主流样本中的规律不同,在一个样本中出现的概率要比主流数据出现的概率低很多。在每次训练中,忽略模型中一些节点,将小概率的异常数据获得学习的机会变得更低。这样,异常数据对模型的影响就会更小。
250 0
|
机器学习/深度学习 分布式计算 并行计算
十七、大规模机器学习和随机梯度下降(SGD)
十七、大规模机器学习和随机梯度下降(SGD)
十七、大规模机器学习和随机梯度下降(SGD)
下一篇
无影云桌面