01
60 秒回答模板
推荐系统多任务学习的常见结构可以按共享方式展开:
1. Shared-bottom / hard sharing:底层 embedding 和 MLP 共享,上面接多个 task tower,简单高效,但任务不一致时容易负迁移。
2. 独立塔或 soft sharing:每个任务有自己的网络,通过正则或少量连接共享,干扰少但参数和样本利用效率差。
3. ESMM 类结构:常用于 CTR/CVR/CTCVR,利用行为链路关系缓解 CVR 样本选择偏差和稀疏问题。
4. MMoE:多个 expert 共享给所有任务,每个任务用 gate 对 experts 加权,能让不同任务选择不同专家。
5. PLE:同时保留 shared experts 和 task-specific experts,并通过 progressive layered extraction 逐层抽取共享与专属信息。
训练目标一般是 L = Σ_t λ_t L_t,推荐里任务可能是点击、转化、停留、点赞、收藏、关注、负反馈等。难点不只是多一个 loss,而是不同任务样本空间、标签延迟、稀疏程度、目标方向和业务权重都不同,容易出现梯度冲突、负迁移和 seesaw phenomenon:一个任务涨,另一个任务掉。
PLE 主要优化 shared-bottom 和 MMoE 的两个问题。对 shared-bottom,它减少所有任务被迫共享同一个底座导致的过度共享;对 MMoE,它通过任务专属专家和共享专家分开建模,减少所有任务从同一批专家里混合选择造成的干扰。PLE 的 CGC 层会给每个任务配置 task-specific experts,同时还有 shared experts;任务 gate 从专属和共享专家中选择,shared gate 汇总共享信息并逐层传递。这样相关任务可以共享,不相关部分可以隔离,多层结构还能逐步提纯表征。
考点 多任务结构
难度 真实面经题
回答目标 让候选人能从推荐多目标排序的工程矛盾出发,解释各类多任务结构如何控制共享与隔离,并能准确说明 PLE 相比 shared-bottom 和 MMoE 的结构收益与验证方法。
02
深入解析
01 多任务为什么常见
推荐系统最终不是只优化点击。点击、转化、停留、互动、关注、购买、负反馈、留存等目标共同影响排序。多任务学习希望共享底层样本和特征表示,同时让不同目标都有自己的预测头。
02 Shared-bottom
Shared-bottom 是最基础结构:embedding 和底层网络共享,多个 task tower 输出各自概率。优点是简单、低延迟、样本共享充分;缺点是所有任务都压到同一个表示上,任务相关性弱或标签噪声不一致时容易负迁移。
03 独立塔与 soft sharing
独立塔减少任务干扰,但参数多、训练样本利用不足,线上维护成本高。Soft sharing 通过 cross-stitch、正则或部分连接让任务间有限共享,适合任务差异明显但仍有信息互补的情况。
04 ESMM 类链路模型
ESMM 常用于 CTR、CVR、CTCVR 这类有行为链路的任务,利用 pCTCVR = pCTR * pCVR 在全曝光空间建模转化链路,缓解只在点击样本上训练 CVR 导致的 sample selection bias 和 data sparsity。
05 MMoE 的改进与局限
MMoE 用多个共享 expert 加 task-specific gate,让不同任务选择不同专家组合,比 shared-bottom 灵活。局限是 experts 仍然是全任务共享的,任务不相关或冲突强时,expert 可能被多个任务拉扯,出现专家语义不清、任务互相干扰或 gate 退化。
06 PLE 的核心结构
PLE 的核心是把 experts 分成 shared experts 和 task-specific experts,并使用 CGC 层逐层抽取。每个任务的 gate 可以选择本任务专属专家和共享专家;共享分支也有 gate 聚合共享专家和各任务信息,供下一层继续使用。
07 PLE 主要解决的问题
PLE 不是简单堆更多 expert,而是控制共享边界:相关信息进入 shared experts,任务独有信息进入 task-specific experts。它缓解 shared-bottom 的过度共享、MMoE 的全专家共享干扰、负迁移、任务跷跷板和表示混杂问题。
08 训练与权重取舍
多任务 loss 通常是 L=Σλ_t L_t。λ_t 可以人工设定,也可以用 uncertainty weighting、GradNorm、DWA、PCGrad 等处理任务尺度和梯度冲突。工程上还要处理缺失标签、延迟标签、任务采样比例和主目标优先级。
09 验证路径
离线看每个任务的 AUC/logloss/校准、主任务和辅助任务的切片收益、梯度 cosine、gate 分布和 expert 利用率;线上看综合排序目标、guardrail 指标和长期指标。必须与 shared-bottom、MMoE、单任务模型做公平消融。
03
易错点
- 只罗列模型名,不解释共享方式和要解决的冲突。
- 把 PLE 说成 MMoE 的简单加深或加专家版本。
- 认为所有任务共享越多越好,忽略负迁移。
- 只看平均 AUC,不看主任务、辅助任务和切片的跷跷板。
- 忽略多任务标签空间差异,例如 CVR 只在点击样本上训练带来的偏差。
- 没有讨论 loss 权重、梯度冲突、线上综合目标与 guardrail。
04
面试官追问
PLE 和 MMoE 在 expert 和 gate 的连接方式上具体有什么不同?
MMoE 通常是一组共享 expert,每个任务通过自己的 gate 组合这些 expert。PLE 进一步区分共享 expert 和任务专属 expert,并分层抽取,让每个任务既能利用公共信息,也能保留独立表达,从结构上减少任务互相干扰。
什么是 seesaw phenomenon?如何判断多任务模型发生了任务跷跷板?
seesaw phenomenon 指多任务训练中一个任务指标上涨时另一个任务下降,像跷跷板一样互相拉扯。可以通过离线分任务指标、梯度相似度、loss 曲线、线上主辅指标切片和 ablation 判断是否发生任务冲突。
CTR 和 CVR 多任务为什么常用 ESMM?它解决了什么偏差?
CTR/CVR 中 CVR 只在点击后观察,直接训练会有样本选择偏差,且转化样本更稀疏。ESMM 用曝光空间建模 CTR 和 CTCVR,并通过 CVR = CTCVR / CTR 的关系缓解 sample selection bias 和 data sparsity。
多任务 loss 权重 λ_t 怎么设?固定权重有什么风险?
loss 权重可以从业务优先级、样本量、梯度尺度、指标敏感度和动态权重方法综合确定。固定权重简单但可能让大样本或易优化任务主导共享层,导致主任务受损;需要监控梯度冲突和主业务指标。
如果某个辅助任务离线涨了但主业务指标跌了,你会怎么排查?
先确认辅助任务是否真的与主目标同向,再看样本、标签时效、loss 权重、gate 分配和 expert 利用率。可以做去掉辅助任务、冻结共享层、调整权重、分任务切片和线上小流量验证,避免为了辅助指标牺牲主业务目标。