MTL多任务学习

MTL更多的是一种思想

两种模式

  • hard share: 不同任务直接共享部分模型参数
  • soft share: 不共享参数,添加正则来保证参数的相似

原理

  • 隐式数据增加(implicit data augmentation):为了训练任务A,通过其他任务的数据来扩充任务A训练过程的数据量。这些数据可以看做是引入额外的噪声,在理想情况下起到提高模型泛化效果的作用
  • 注意力机制(Attention focusing):当训练数据量有限且高维时,模型很难区分出相关的特征和不相关的特征。多任务学习可以使模型更关注于有用的特征
  • 监听机制(Eavesdropping):从任务B中有可能容易学习到特征G,但是从任务A中很难学习得到。通过多任务学习,可以通过任务B学习到特征G,再利用特征G预测任务A
    特征偏置(Representation bias):多任务学习使得模型更容易去选择其他任务容易选择到的特征,这样有助于模型在假设空间下获得更好的模型泛化能力。

常见模型结构

  • 常见模型:share bottom/MMoE/SNR/ESMM;损失函数按照指定权重融合,或者使用GradNorm做动态融合

Share bottom

  • 最常见的mtl结构,不同任务共享底层

MMoE(Multi-gate Mixture-of-Experts)

  • paper
  • 是一种soft share
  • 添加了expert机制获取不同信息
  • 添加gate机制对expert进行加权

CGC(Customized Gate Control)/PLE(Progressive Layered Extraction)

  • MMoE的基础上,把experts分为share experts和domain experts
  • 单层多任务网络结构(CGC),多层多任务网络结构(PLE)

SNR(Sub-Network Routing)

  • paper
  • SNR-Trans: 下层输出通过权重矩阵变换,再做加权后输出至下一层。会引入更多参数。其中z为二进制。
  • SNR-Avg: 下层输出加权后输出至下一层
  • 损失函数:
  • z为二进制,无法优化,需要把z松弛为平滑变量,将z变为hardSigmoid,其中s是一个服从q分布的连续的随机变量
  • 可以继续转换,其中epsilon是一个噪声变量,r(epsilon)是一个无参数的噪声分布,h是一个确定且可微的分布
  • 在实际应用中,结合重采样技术和hard concrete distribution,可以继续做转换,其中u为均匀分布,log(α)为需要学习的参数,其他为超参
  • training的时候,加入z的L0正则,则最终loss为:
  • training: 总结来说,模型需要学习的参数是W和隐变量分布变量log(alpha)。训练流程如下所示:
    • 首先,采样一组均匀分布的随机变量u;
    • 其次,计算z来获得网络结构;
    • 最后,将训练数据喂给模型来计算损失函数。W和log(alpha)的梯度通过反馈计算得到。
  • serving: 使用如下的estimator来得到z的值

When sigmoid , we will have and the resulted model will be sparsely connected.

Star(One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction)

  • paper
  • center tower和domain tower的结合,论文中是两塔权重element-wise相乘,也可以改为两塔logits相加
  • PN: partitioned normalization, 在BN的基础上,对每个domain引入domain相关的两个scale参数

十字绣(Cross-Stitch Network)

ESMM(Entire Space Multi-Task Model)

  • 混合ctr、cvr数据流
  • 传统CVR预估模型的本质,不是预测“item被点击,然后被转化”的概率(CTCVR),而是“假设item被点击,那么它被转化”的概率(CVR)。即CVR模型的样本空间,是click空间。
  • ESMM
    • 使用了全样本空间,通过预测CTR和CTCVR间接求CVR
    • 解决training样本有偏的问题: training的时候在点击空间,serving的时候在展示空间。
    • 直接在show空间求ctcvr,label太稀疏,建模ctcvr=cvr*ctr,解决稀疏问题
  • 利用全概率公式,隐式学习pCVR
  • paper
  • blog
  • pCVR只是一个variable,无显式监督信号

其他

GradNorm

  • paper
  • 分两个loss,加权多任务loss以及每个任务权重的loss,后者只过share bottom
  • 两个作用
    • 动态调整不同任务损失函数的权重:不同目标重要性不同/收敛的程度/loss的大小 diff较大,可以考虑使用
    • share bottom的更新受到每个任务权重的影响
  • https://blog.csdn.net/Leon_winter/article/details/105014677

MAMDR(MAMDR: A Model Agnostic Learning Method for Multi-Domain Recommendation)

  • paper
  • 提出了一种通用的,模型结构无关的,多域推荐的学习方法

    背景

  • 不同域数据分布差异很大:
    • (1) Shared parameters suffer from the domain conflict problem: 共享参数停在compromised position
    • (2) Specific parameters are inclined to overfitting: domain参数overfitting
    • (3) Existing Multi-domain recommendation models cannot generalize to all circumstances: 与应用场景相关

Method

  • 包括Domain Negotiatio和Domain Regularization
  • Domain Negotiatio: 针对共享参数。所有domain更新完之后,再兑回一点。
  • Domain Regularization: 针对domain参数。针对domain i,先sample若干其他domain,利用其他domain更新domain i的参数,再利用domain i更新domain i的参数。

share vs not share

  • not share bias emb: tend to useful
  • share sparse: tend to useful
  • share bottom use small learning rate, tower use adam or bigger learning rate

Refs