MTL框架:模型、权重与融合公式


一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

多任务多目标 CTR 预估技术

多任务学习的两个主要研究方向:

  1. 网络结构的构造;
  2. 多目标优化的方法;

模型设计

AI上推荐之MMOE
在这里插入图片描述

1. 任务依赖关系

  • 任务序列依赖关系建模:适合于不同任务之间有一定的序列依赖关系。

比如电商场景里面的ctr和cvr,其中cvr这个行为只有在ctr之后才会发生。这种依赖关系如果能加以利用,可以解决任务预估中的样本选择偏差(SSB)和数据稀疏性(DS)问题。
- 样本选择偏差: 后一阶段的模型基于上一阶段采样后的样本子集训练,但最终在全样本空间进行推理,带来严重泛化性问题
- 样本稀疏: 后一阶段的模型训练样本远小于前一阶段任务


1. ESMM
多任务学习模型之ESMM介绍与实现

CVR预估面临两个关键问题:

  1. Sample Selection Bias (SSB)
    训练数据为点击数据,但需要预测曝光数据,即训练数据和预测数据分布不一致,带来严重泛化性问题。
    在这里插入图片描述

  2. Data Sparsity (DS)
    CVR预估任务训练使用的点击样本远小于CTR预估训练使用的曝光样本

x,y,z分别表示曝光,点击,转换,则

p ( y = 1 , z = 1 ∣ x ) ⏟ p C T C V R = p ( y = 1 ∣ x ) ⏟ p C T R × p ( z = 1 ∣ y = 1 , x ) ⏟ p C V R \underbrace{p(y=1, z=1 \mid x)}_{p C T C V R}=\underbrace{p(y=1 \mid x)}_{p C T R} \times \underbrace{p(z=1 \mid y=1, x)}_{p C V R} pCTCVR p(y=1,z=1x)=pCTR p(y=1x)×pCVR p(z=1y=1,x)

注意到,在全部样本空间中,CTR对应的label为click,而CTCVR对应的label为click & conversion,这两个任务是可以使用全部样本的。因此,ESMM通过学习CTR,CTCVR两个任务,再根据上式隐式地学习CVR任务。具体结构如下:
在这里插入图片描述

  • 共享Embedding。 CVR-task和CTR-task使用相同的特征和特征embedding,即两者从Concatenate之后才学习各自独享的参数;
  • 隐式学习pCVR。pCVR 仅是网络中的一个variable,没有显示的监督信号,反映在目标函数中:
    L ( θ c v r , θ c t r ) = ∑ i = 1 N l ( y i , f ( x i ; θ c t r ) ) + ∑ i = 1 N l ( y i & z i , f ( x i ; θ c t r ) ∗ f ( x i ; θ c v r ) ) L\left(\theta_{c v r}, \theta_{c t r}\right)=\sum_{i=1}^N l\left(y_i, f\left(\boldsymbol{x}_i ; \theta_{c t r}\right)\right)+\sum_{i=1}^N l\left(y_i \& z_i, f\left(\boldsymbol{x}_i ; \theta_{c t r}\right) * f\left(\boldsymbol{x}_i ; \theta_{c v r}\right)\right) L(θcvr,θctr)=i=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)f(xi;θcvr))

2. DBMTL
多任务学习模型之DBMTL介绍与实现

常见的多目标优化模型是从每个优化目标单独的模型网络出发,通过让这些网络在底层共享参数,实现各目标相关模型的适当程度的独立性和相关性。不论底层如何共享参数,此类网络的概率模型可以用下述公式描述:
P ( l , m ∣ x , H ) = P ( l ∣ x , H ) ⋅ P ( m ∣ x , H ) P(l, m \mid x, H)=P(l \mid x, H) \cdot P(m \mid x, H) P(l,mx,H)=P(lx,H)P(mx,H)其中l,m 为目标,x为样本特征,H为模型。这里做了各目标独立的假设。

利用贝叶斯公式,以上模型可以改为 P ( l , m ∣ x , H ) = P ( l ∣ m , x , H ) ⋅ P ( m ∣ x , H ) P(l, m \mid x, H)=P(l \mid m,x, H) \cdot P(m \mid x, H) P(l,mx,H)=P(lm,x,H)P(mx,H)

在这里插入图片描述
在这里插入图片描述


2. 底层表示共享

  • Shared Bottom->MMoE:MMoE将shared bottom分解成多个Expert,然后通过门控网络自动控制不同任务对这些Expert的梯度贡献。
    Shared Bottom最大的优势是Task越多, 任务之间过拟合的风险越小。 但是劣势也非常明显,就是底层强制的shared layers难以学习到适用于所有任务的有效表达, 尤其是任务之间存在冲突或者两个任务相关性没那么好(比如排序中的点击率与互动,点击与停留时长)。

  • MMoE->PLE:PLE在MMoE的基础上又为每个任务增加了自有的Expert,仅由本任务对其梯度更新。
    MMoE做了一个聪明的事情,“化整为零”,把一个共享参数矩阵化成多个结合gate的共享Expert。不同的loss在存在相互冲突时,在不同的expert上,不同loss可以有相对强弱的表达,那么出现相互抵消的情况就可能减少,从而达到“各有所得”的状态,即部分experts受某task影响较大,部分experts受其他task主导。但是MMoE并不保证“各有所得”,PLE增加了specific experts,保障“各有所得”,能够在“共享参数”的撕扯争夺上,有了最基础的保障。

Loss设计

1. loss如何选择?

  • 观看时长:weighted logistic regression
  • ctr/pr:cross entropy

对于回归目标,采用正逆序对比(PNR,positive-negative-ration)来评估多目标预估值融合后的排序效果。

2. 权重如何调整?

  • Magnitude(Loss量级):Loss值有大有小,出现取值大的Loss主导的现象,怎么办?
  • Velocity (Loss学习速度): 任务有难有易,Loss学习速度有快有慢,怎么办?
  • Direction(Loss梯度冲突):多个Loss的反向梯度,更新方向冲突,出现翘翘板、负迁移现象,怎么办?

2.1 Magnitude

深度学习多目标优化的多个loss应该如何权衡

AI上推荐 之 多任务loss优化(自适应权重篇)

Uncertainty weight(2018)

Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

多任务学习中损失函数权重的自动调整

自动学习任务的uncertainty,给uncertainty大的任务小weight

  • 偶然不确定性:数据本身的误差,可分为同方差(数据依赖)和异方差(任务依赖)
  • 认知不确定性:模型的误差,衡量input data是否存在已有的数据中

利用同方差自动计算任务权重( 1 / 2 σ 2 1/2\sigma^2 1/2σ2)

在这里插入图片描述


2. 2 Velocity

Gradnorm(2018)

GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks

作者认为,任务不平衡会阻碍模型的训练,而这种阻碍其实体现在了反向传播时参数的梯度不平衡。所以通过动态调整loss权重,让参数的梯度保持平衡。

定义了一个gradient loss,用来衡量每个任务的loss权重,即实际权重和理想权重的差距

L g r a d ( t ; w i ( t ) ) = ∑ i ∣ G W ( i ) ( t ) − G ‾ W ( t ) × [ r i ( t ) ] α ∣ 1 \mathrm{L}_{\mathrm{grad}}\left(\mathrm{t} ; \mathrm{w}_{\mathrm{i}}(\mathrm{t})\right)=\sum_{\mathrm{i}}\left|\mathrm{G}_{\mathrm{W}}^{(\mathrm{i})}(\mathrm{t})-\overline{\mathrm{G}}_{\mathrm{W}}(\mathrm{t}) \times\left[\mathrm{r}_{\mathrm{i}}(\mathrm{t})\right]^\alpha\right|_1 Lgrad(t;wi(t))=i GW(i)(t)GW(t)×[ri(t)]α 1

  • W : 一般选shared layer的最后一层参数,能节省计算量
  • G W ( i ) ( t ) = ∥ ∇ W w i ( t ) L i ( t ) ∥ 2 \mathrm{G}_{\mathrm{W}}^{(\mathrm{i})}(\mathrm{t})=\left\|\nabla_{\mathrm{W}} \mathrm{w}_{\mathrm{i}}(\mathrm{t}) \mathrm{L}_{\mathrm{i}}(\mathrm{t})\right\|_2 GW(i)(t)=Wwi(t)Li(t)2 :每个单任务 w i ( t ) L i ( t ) \mathrm{w}_{\mathrm{i}}(\mathrm{t}) \mathrm{L}_{\mathrm{i}}(\mathrm{t}) wi(t)Li(t) 对于参数 W \mathrm{W} W 的梯度的L2范数,表示t次训练每个任务对于W传回的梯度大小。这个梯度越大,说明了任务主导性就越强,应该减小 w i \mathrm{w}_{\mathrm{i}} wi
  • G ‾ W ( t ) = E t a s k [ G W ( i ) ( t ) ] \overline{\mathrm{G}}_{\mathrm{W}}(\mathrm{t})=\mathrm{E}_{\mathrm{task}}\left[\mathrm{G}_{\mathrm{W}}^{(\mathrm{i})}(\mathrm{t})\right] GW(t)=Etask[GW(i)(t)] :各个任务传回的参数梯度范数的平均值,从而得到每个任务对参数梯度的相对大小。
  • L ~ i ( t ) = L i ( t ) / L i ( 0 ) \tilde{\mathrm{L}}_{\mathrm{i}}(\mathrm{t})=\mathrm{L}_{\mathrm{i}}(\mathrm{t}) / \mathrm{L}_{\mathrm{i}}(0) L~i(t)=Li(t)/Li(0) : 一定程度上衡量了 i \mathrm{i} i 任务的训练速度。
  • r i ( t ) = L ~ i ( t ) / E t a s k [ L ~ i ( t ) ] \mathrm{r}_{\mathrm{i}}(\mathrm{t})=\tilde{\mathrm{L}}_{\mathrm{i}}(\mathrm{t}) / \mathrm{E}_{\mathrm{task}}\left[\tilde{\mathrm{L}}_{\mathrm{i}}(\mathrm{t})\right] ri(t)=L~i(t)/Etask[L~i(t)] : 相对训练速度,即 r i ( t ) \mathrm{r}_{\mathrm{i}}(\mathrm{t}) ri(t) 越大,说明 L i ( t ) \mathrm{L}_{\mathrm{i}}(\mathrm{t}) Li(t) 越大,说明loss下降的幅度小,这个任务训练的慢。

在每次优化中, L t a s k L_{task} Ltask L g r a d L_{grad} Lgrad交替训练。

DWA(2019)

End-to-End Multi-Task Learning with Attention

定义loss下降速度,计算对应权重,GradNorm的简化版
r i ( t − 1 ) = L i ( t − 1 ) L i ( t − 2 ) r_i(t-1)=\frac{\mathcal{L}_i(t-1)}{\mathcal{L}_i(t-2)} ri(t1)=Li(t2)Li(t1)
w i ( t ) = exp ⁡ ( r i ( t − 1 ) / T ) ∑ n exp ⁡ ( r i ( t − 1 ) / T ) w_i(t)=\frac{\exp \left(r_i(t-1) / T\right)}{\sum_n \exp \left(r_i(t-1) / T\right)} wi(t)=nexp(ri(t1)/T)exp(ri(t1)/T)


2.3 Direction

PE-LTR

A Pareto-Efficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation

推荐系统里的多目标调参-pareto efficient

用户级别的Pareto优化

m i n ∥ ∑ i = 1 K ω i ∇ θ L i ( θ ) ∥ 2 2 min \quad \left\|\sum_{i=1}^K \omega_i \nabla_\theta L_i(\theta)\right\|_2^2 min i=1KωiθLi(θ) 22 s.t. ∑ i = 1 K ω i = 1 , ω 1 , ⋯   , ω K ≥ 0 \sum_{i=1}^K \omega_i=1, \omega_1, \cdots, \omega_K \geq 0 i=1Kωi=1,ω1,,ωK0

目标融合

关于推荐系统多目标融合排序的进一步思考
多目标排序在快手短视频推荐中的实践
一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

1. 公式如何设计?

推荐系统多目标优化专题(2)—融合公式设计思路


1.线性加法
a ∗ p E v t r + b ∗ p L t r + … + g ∗ f ( p W a t c h  Time  ) \mathrm{a} * \mathrm{pEvtr}+\mathrm{b} * \mathrm{pLtr}+\ldots+\mathrm{g} * \mathrm{f}(\mathrm{pWatch} \text { Time }) apEvtr+bpLtr++gf(pWatch Time )
目标权重就代表了在融合公式中的重要度,哪个目标应该更重要 (或者想涨哪个指标) 调大,但这个系数对于所有用户都是一样的比例


2.指数乘法
 score  = p V T R w V T R × p V C R w V C R × p S H R w S H R × ⋯ × p C M R w C M R × f (  video_len ) \text { score } =p_{V T R}{ }^{w_{V T R}} \times p_{V C R}{ }^{w_{V C R}} \times p_{S H R}{ }^{w_{S H R}} \times \cdots \times p_{C M R}{ }^{w_{C M R}} \times f( \text { video\_len} )  score =pVTRwVTR×pVCRwVCR×pSHRwSHR××pCMRwCMR×f( video_len)

融合公式对于不同用户是有一定个性化

指数3是预估值越大,单目标在融合公式的影响力也越强;(比如弹幕/点赞这种稀疏目标,预估值高的权重大一些;对于那些喜欢发弹幕的用户,不妨让他们的弹幕目标影响力大一些)

指数0.3则是预估值越大,单目标在融合公式的影响力进行抑制(通俗来讲,即有没有很重要,多还是超级多不关心)


3.带权指数加法
 score  = ∑ i = 1 n  factor  ( α i +  score  i ) β i \text { score }=\sum_{i=1}^n \text { factor }\left(\alpha_i+\text { score }_i\right)^{\beta_i}  score =i=1n factor (αi+ score i)βi

  • factor(组合权重):调节单目标整体的影响力
  • beta(提升比例):基于预估分数调节单目标影响力,即融合公式有一定用户个性化
  • alpha(灵敏度):起到一定兜底作用,同时保证factor只调大单一目标权重,而不是作用于融合公式整体

缺点:加法形式特别容易被最大的目标主导,而稀疏目标一般都有比较大的factor


  1. 带权指数乘法

 score  = ∏ i = 1 n  factor  ( α i +  score  i ) β i \text { score }=\prod_{i=1}^n \text { factor }\left(\alpha_i+\text { score }_i\right)^{\beta_i}  score =i=1n factor (αi+ score i)βi


2. 如何在线优化?

多目标搜参,首先初始化参数;通过融合公式得到每个视频最终的排序分,并计算各子目标的AUC;根据指标的重要性对分类的AUC、回归的PNR等确定权重,定义总的优化目标:
max  Obj  = ∑ i w i ∗ A U C ( t i ) + ∑ j w j ∗ P N R ( r j ) \text{max} \quad \text { Obj }=\sum_i w_i * A U C(t_i)+\sum_j w_j * P N R(r_j) max Obj =iwiAUC(ti)+jwjPNR(rj)
通过持续迭代,使得总评估目标Obj最大,即得到各子目标的超参数α、β。


  1. PSO(粒子群)算法

  1. ES(进化)策略

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值