搜广推笔记 多目标排序
搜广推[多目标排序]
Created by: Yuanpeng QU
Created time: 2025年8月10日 21:12
第一部分:多目标学习的核心挑战与基础
1. 动机:为何需要多目标学习?
现代工业级推荐系统(如电商、短视频)的目标是综合性的,不能只关注单一指标 。例如,一个短视频推荐系统不仅要优化点击率,可能还要同时提升用户的点赞、关注、转发、评论率以及观看时长 。
如果为每个任务单独建模和优化,或者用一个简单的模型直接预测所有任务,就会遇到**“跷跷板效应” (Seesaw Phenomenon)** 。
- 定义:指的是当模型在优化一个目标时,会导致另一个或多个其他目标的性能下降的现象 。
- 举例:
- 任务跷跷板 (Task Seesaw):一个模型如果过度优化点击率(CTR),可能会倾向于推荐标题党或封面吸引人的内容,但这部分内容的用户实际满意度(如观看时长、点赞率)可能很低,从而损害了长期用户体验 。
- 领域跷跷板 (Domain Seesaw):在多场景(多领域)推荐中,由于不同场景的用户群体和行为分布不同,一个模型在优化A场景(如“发现页”)的性能时,可能会损害其在B场景(如“精选页”)的推荐效果 。
- 结论:单任务优化的局限性在于它忽略了任务间的关联和冲突。因此,必须采用多目标学习(Multi-Task Learning),通过设计更精巧的模型来平衡不同目标,在多个维度上共同提升,实现全局最优。
2. 核心痛点一:样本选择偏差 (Sample Selection Bias, SSB)
SSB问题是多目标学习,特别是涉及用户序贯行为(sequential behaviors)时,最经典也最核心的挑战之一。
- 定义:指模型在训练时所用的数据集分布,与在真实环境中进行预测时所面对的数据集分布不一致,从而导致模型产生预测偏差。
- 以CVR(点击后转化率)预估为例:
- 训练空间 (Training Space):CVR的定义是“用户在点击商品之后发生转化的概率”,即
P(conversion | click=1)。因此,传统的CVR模型,其训练样本天然就是所有被点击过的商品。其中,点击后转化的为正样本,点击后未转化的为负样本。 - 预测空间 (Inference Space):在实际线上服务时,系统需要对所有被曝光的商品进行打分,以便用
pCTR × pCVR这样的公式来预估其最终价值并排序。此时,模型需要预测的是所有曝光商品的CVR,无论它们是否被点击。 - 偏差的产生:模型只在“点击”这个有偏的样本空间上学习了如何区分转化与否,但却被要求在“曝光”这个全量的、无偏的样本空间上做预测。模型没有见过那些“未被点击”的样本,无法准确判断它们的转化潜力,因此做出的预测是有偏的、不准确的。
- 训练空间 (Training Space):CVR的定义是“用户在点击商品之后发生转化的概率”,即
- 结论:SSB问题会导致模型对物品的价值预估不准,是序贯多目标任务中必须解决的基础性难题。这也是ESMM这类模型被提出的直接原因。
3. 核心痛点二:任务间冲突与负迁移 (Negative Transfer)
在多任务学习中,我们期望不同任务能互相借鉴,共同进步(正迁移)。但实际情况中,常常会因为任务间的冲突导致互相“拖后腿”,即负迁移。
- 根源:梯度冲突 (Gradient Conflict)
- 在拥有共享参数(如Shared-Bottom的底层网络或MMoE的共享专家)的模型中,不同任务为了最小化各自的损失函数,可能会对同一个共享参数产生方向相反的更新需求。
- 举例:假设任务A(如点击率)的优化需要增大某个参数,而任务B(如观看时长)的优化需要减小同一个参数。在更新时,这个共享参数就会陷入“拉锯战”,最终的更新结果可能对两个任务都不是最优的,从而导致性能受损。
- “双重跷跷板效应” (Imperfectly Double Seesaw Phenomenon)
- 这是快手在PEPNet论文中提出的一个更贴近工业界真实场景的概念,它是两种“跷跷板效应”的叠加 。
- 任务跷跷板 (Task Seesaw):指前述的不同任务之间的冲突,尤其是在任务目标稀疏度不同时,模型很容易偏向于拟合更简单的任务,而忽略稀疏任务 。
- 领域跷跷板 (Domain Seesaw):指在不同推荐场景(领域)下,由于数据分布、用户意图存在差异,导致模型无法同时在所有领域都取得好效果的现象 。
- 当这两种冲突同时存在时,问题就变得更加复杂,形成了“双重跷跷板效应” 。这也是催生出MMoE、PLE、PEPNet等更先进模型以及PCGrad等优化算法的直接原因。
4. 核心痛点三:稀疏任务的“梯度消失”问题
这是一个在计算广告和推荐系统中非常具体且常见的问题,尤其是在CTR(点击率)预估这类正样本极其稀疏的任务中。
- 问题描述:以CTR任务为例
- CTR任务通常使用LogLoss作为损失函数,其对模型logits输出
z的梯度为p - y,其中p是模型预测的点击概率,y是真实标签(0或1)。 - 对于负样本 (y=0):梯度为
p。由于点击率通常非常低(例如p < 0.01),这意味着占数据总量99%以上的负样本,在反向传播时产生的梯度信号极其微弱。模型几乎“忽略”了这些负样本提供的信息,导致学习不充分。 - 对于正样本 (y=1):梯度为
p - 1。当模型预测不准时(p接近0),梯度接近-1,这是一个非常强的更新信号。 - 结论:正负样本对模型更新的贡献极度不平衡,模型很难从海量的负样本中学到有效信息。
- CTR任务通常使用LogLoss作为损失函数,其对模型logits输出
- 基础解决方案:使用Rank-style或对比学习类损失函数
- 核心思想:改变优化目标,从“精确预测每个样本的绝对概率”转向“正确预估正负样本对的相对顺序”。
- 以RankNet Loss为例:其损失函数为
L_Rank = -ln(σ(s+ - s-)),其中s+和s-分别是正负样本的得分。 - 优势:在这种损失下,对负样本得分
s-的梯度取决于正负样本的得分差,而不是s-本身的大小。即使s-很小,只要它和s+的差距不够大,模型依然能收到一个很强的“把s-降得更低”的梯度信号,从而能更充分地从负样本中学习,缓解梯度消失问题。
第二部分:经典与前沿的多目标模型架构
1. ESMM (Entire Space Multi-task Model):专门解决SSB问题
ESMM是阿里巴巴在2018年提出的一个影响深远的模型,它的设计目标非常明确,就是为了解决在序贯行为(如“曝光 -> 点击 -> 转化”)中普遍存在的**样本选择偏差(SSB)**问题。
1.1 背景:为何需要ESMM?
正如我们第一部分所讨论的,SSB问题的根源在于CVR(点击后转化率)模型的训练空间(被点击过的样本)和预测空间(所有被曝光的样本)不一致。这导致传统CVR模型预估出来的转化率是有偏的,无法直接在全量商品排序中准确使用。
ESMM的提出,就是为了解决这个偏差,得到一个可以在**全样本空间(Entire Space)**上使用的、无偏的CVR预估值。
1.2 ESMM的核心思想:在全空间建模
ESMM的思路非常巧妙,它没有试图去“修正”有偏差的训练数据,而是通过一个数学上的恒等关系,从根本上改变了学习的目标。
核心恒等式:模型认识到,用户的“曝光后即转化”行为,可以被分解为“先点击”和“点击后转化”两个连续的事件。用概率公式表达就是 :
p(转化 | 曝光) = p(点击 | 曝光) × p(转化 | 曝光, 点击)转化为模型术语:这个公式可以被直接翻译成我们熟悉的三个预估任务 :
$$
pCTCVR=pCTR×pCVR
$$- pCTR (Click-Through Rate): 点击率,可以在全曝光样本空间上建模。
- pCVR (Conversion Rate): 点击后转化率,这是我们真正关心但有偏差的目标。
- pCTCVR (Click-Through & Conversion Rate): 曝光后“既点击又转化”的概率,也可以在全曝光样本空间上建模。
ESMM的洞见在于,既然pCTR和pCTCVR都可以在全空间上进行无偏的学习,我们就可以利用这个等式关系,来“约束”和“求解”出那个无偏的pCVR。
1.3 ESMM的架构与关键机制
为了实现上述思想,ESMM设计了一个简洁而有效的双塔结构。
双塔结构 (Two-Tower Architecture):
- CTR塔:一个独立的子网络,输入特征,输出预估的
pCTR。 - CVR塔:另一个独立的子网络,输入相同的特征,输出预估的
pCVR。 - 这两个塔通常共享底层的Embedding层,以学习通用的特征表示。
- CTR塔:一个独立的子网络,输入特征,输出预估的
损失函数与隐式训练 (Loss Function & Implicit Training):
这是ESMM的“魔法”所在。它的总损失函数由两部分构成:$$
L_{total}=L_{CTR}+L_{CTCVR}
$$L_CTR:CTR任务的损失。用CTR塔的输出pCTR和真实的点击标签y_click计算。L_CTCVR:CTCVR任务的损失。用CTR塔和CVR塔输出的乘积pCTR × pCVR和真实的“点击且转化”标签y_conversion计算。
关键机制:请注意,整个训练过程中,没有任何损失函数是直接作用于CVR塔的输出
pCVR上的。CVR塔的参数更新,其梯度完全来自于L_CTCVR,并通过那个乘法节点反向传播回来。这种**“隐式训练”**的方式,强迫CVR塔必须学习到一个能在全空间上都成立的
pCVR。因为只有这样,它与pCTR相乘后才能最好地拟合在全空间上观测到的pCTCVR。这就从机制上保证了我们最终得到的pCVR是无偏的,完美地解决了SSB问题。
1.4 总结
- 目标:专门解决序贯任务中的样本选择偏差(SSB)问题。
- 思想:利用
pCTCVR = pCTR × pCVR的恒等式,在全样本空间上进行建模。 - 机制:通过一个共享底层的双塔结构,联合优化CTR和CTCVR两个任务的损失,从而对CVR塔进行隐式监督,最终得到无偏的CVR预估值。
2. MMoE (Multi-gate Mixture-of-Experts):经典的任务间信息选择与共享模型
MMoE是Google在2018年提出的一个里程碑式的多任务学习模型。它的设计目标非常明确,就是为了解决多任务学习中最常见的**“负迁移”或“跷跷板效应”**问题。
2.1 背景:为何需要MMoE?
在MMoE之前,最流行的多任务学习架构是Shared-Bottom,即所有任务共享一个底层的特征提取网络,然后各自连接一个独立的任务塔。这种硬参数共享的方式过于“一刀切”,它强迫所有任务(无论相关性高低)都使用同一套特征表示。当任务间差异较大时,就会产生我们之前讨论的“梯度冲突”和“跷跷-板效应”,模型性能受损。MMoE的提出,就是为了用一种更“柔软”、更智能的方式来处理任务间的信息共享。
2.2 MMoE的核心思想与架构
MMoE的核心思想是**“混合专家” (Mixture of Experts)**,它借鉴了MoE架构并针对多任务场景进行了关键创新。
架构组成:
- 多个共享的专家网络 (Shared Experts):模型底层不再是单个共享网络,而是并行的、多个结构相同但参数不共享的“专家”子网络。每个专家都可以被看作一个独立的特征提取器,它们从不同角度去理解输入信息。
- 多个独立的门控网络 (Gating Networks):这是MMoE最关键的创新。它为每一个任务都配备了一个独立的、轻量的门控网络。
工作流程:

- 当一个样本输入时,它会被同时送往所有的专家网络和所有的门控网络。
- 每个专家网络输出一个特征向量。
- 每个任务的专属门控网络会输出一组权重(经过Softmax函数,所以权重之和为1)。
- 对于某个特定任务(如CTR),模型会用其专属门控网络产生的权重,对所有专家的输出向量进行加权求和,形成一个为CTR任务量身定制的融合特征。
- 这个融合后的特征再被送入CTR专属的任务塔,得到最终的预测值。其他任务(如CVR)也依此类推,使用自己的门控权重进行融合。
优势:通过为每个任务分配独立的门控,MMoE可以显式地学习任务间的关系 。如果两个任务相关性高,它们的门控网络就可能学习到相似的权重分布,从而共享更多的专家信息;如果任务相关性低,它们的门控网络就可以学习到差异化的权重,有效避免不相干信息的干扰,从而缓解负迁移问题。
2.3 工程实践:用Dropout解决“门控极化”问题
在实际训练中,MMoE可能会出现一个问题,即“门控极化” (Gate Polarization)。
- 问题描述:某个任务的门控网络在训练中变得“过于自信”,其Softmax输出的权重变得非常极端,比如
[0, 0, 1, 0]。这意味着这个任务几乎只从一个专家那里学习信息,而完全忽略了其他专家。 - 后果:这使得MMoE模型退化成了一个普通的单网络模型,失去了“混合专家”的优势,可能重新引发“跷跷板效应”。
- 解决方案:对Softmax的输出使用Dropout。在训练时,随机地将门控网络输出权重向量中的某些值置为0(例如,每个权重有10%的概率被mask)。
- 作用:这种做法强迫模型不能过度依赖任何一个专家。即使模型想让权重极化成
[0, 0, 1, 0],那个唯一的1也有概率被dropout掉,从而迫使模型必须学会利用其他专家来进行“备份”,最终学习到更健壮、更多样化的专家组合策略。比如[0.1, 0.2, 0.5, 0.2]更加平滑鲁棒。
2.4 总结
- 目标:解决多任务学习中的负迁移(“跷跷板效应”)问题。
- 思想:用一种软参数共享的方式,让不同任务有选择性地共享信息。
- 机制:通过“多个共享专家网络 + 每个任务独立的门控网络”的结构,为每个任务学习一套专属的专家组合权重。
- 实践:通过在门控输出上施加Dropout来防止“门控极化”,增强模型鲁棒性。
3. PLE (Progressive Layered Extraction):MMoE的进阶版
PLE是腾讯PCG在2020年提出的,可以看作是MMoE的一个重要演进和增强版本。它针对MMoE的一些潜在局限性进行了改进,并整合了解决SSB问题的方案,使其成为一个更强大、更全面的多任务学习框架。
3.1 背景:为何需要PLE?——MMoE的局限性
我们在之前的讨论中提到,MMoE通过多个门控网络来选择性地组合一系列共享专家的输出。这里的关键在于,所有的专家都是共享的。
- MMoE的局限:如果不同任务之间的差异非常大,可能需要的特征也大相径庭。在这种情况下,仅仅依靠“重新组合”共享的特征可能是不够的。用之前图片中的比喻就是,MMoE能改变“厨师”的配方,但无法改变“菜品”本身。模型缺少为某个任务“开小灶”,学习独有特征的能力。
PLE正是为了解决这个问题而设计的。
3.2 PLE的核心思想与架构
PLE引入了两个核心的创新点,使其比MMoE更加灵活和强大。
- 核心思想:引入“任务专属专家”与“共享专家”的组合
- 这是PLE对MMoE最直接的改进。在PLE的网络结构中,专家被分成了两类:
- 共享专家 (Shared Experts):和MMoE中的专家一样,所有任务都可以使用它们,用于学习通用的模式。
- 任务专属专家 (Task-specific Experts):为每一个任务都配备一组自己私有的专家。这些专家只为当前任务服务,用于学习该任务独特的、个性化的特征。
- 这种设计使得模型既能捕捉任务间的共性,又能保留每个任务的个性,大大增强了模型的表达能力。
- 这是PLE对MMoE最直接的改进。在PLE的网络结构中,专家被分成了两类:
- 关键机制一:渐进式分层抽取结构 (Progressive Layered Extraction)
- 这是PLE名字的由来,也是其结构上的最大特点。PLE的网络不是单层的,而是多层堆叠的。
- 信息流动方式:第一层网络(包含共享专家和各任务的专属专家)的输出,并不会直接用于最终的预测。相反,它们会被汇集起来,作为第二层网络的输入。
- 逐层抽象:通过这种方式,PLE构建了一个从底层到高层、对特征进行渐进式加工和抽取的信息流。高层网络可以基于低层网络已经融合过的、更抽象的特征来做进一步的信息交互和选择,从而能学习到任务间更复杂、更深层次的关系。
3.3 PLE的关键机制二:一个模型解决两大难题
PLE的强大之处在于,它通过一个统一的框架,同时解决了多任务学习中的两个核心痛点。
- 解决负迁移:通过“专属专家+共享专家”的精巧结构,以及门控的选择机制,PLE可以非常灵活地处理任务间的关系,有效隔离冲突,促进共享,从而缓解“跷跷板效应”。
- 解决样本选择偏差 (SSB):PLE在其损失函数的设计中,明确地引入了Mask(掩码)机制。
损失函数:

机制解读:在计算任务
k的损失时,只有当样本i属于任务k的有效训练样本时,其掩码δ_i^k才为1,否则为0。例如,在计算CVR任务的loss时,只有那些被点击过的样本才会被纳入计算。效果:这个机制从根本上解决了不同任务训练样本空间不一致的问题,使得PLE可以优雅地处理像CTR-CVR预估这类存在SSB问题的序贯任务。
3.4 总结
- 定位:MMoE的进阶版,一个更强大、更全面的多任务学习框架。
- 核心改进:引入了“任务专属专家”,打破了MMoE中专家必须全部共享的限制。
- 核心架构:采用渐进式的分层结构,实现对特征的逐层抽象和抽取。
- 综合能力:通过其网络结构缓解了负迁移问题,同时通过Masked Loss解决了**样本选择偏差(SSB)**问题,是一个“一站式”的解决方案。
4. PEPNet (Parameter and Embedding Personalized Network):快手提出的个性化多任务多域模型
PEPNet是快手在2023年KDD会议上提出的一个SOTA(State-of-the-art)模型,它为解决工业界复杂的多任务、多领域推荐问题提供了一个新颖且高效的思路。
4.1 背景:为何需要PEPNet?——直面“双重跷跷板效应”
正如我们在第一部分所讨论的,工业级推荐系统面临着“任务跷跷板”和“领域跷跷板”的双重挑战。PEPNet的论文将这种复杂的现象命名为**“不完美的双重跷跷板效应” (Imperfectly Double Seesaw Phenomenon)** 。现有的模型如MMoE或PLE虽然在解决任务冲突上很有效,但在直接扩展到多领域时,仍然可能因为领域间的巨大差异而表现不佳 。PEPNet的目标就是同时缓解这两种冲突。
4.2 PEPNet的核心思想:注入个性化先验
与MMoE、PLE等模型专注于设计更精巧的主干网络结构不同,PEPNet的核心思想是作为一个**“即插即用” (plug-and-play)** 的模块,可以被注入到任何模型中 。
它的策略是,充分利用各种个性化的先验信息(如用户画像、物品属性、领域特征等),通过门控机制,对一个基础的多任务模型进行动态的、精细化的调整 。
4.3 PEPNet的关键机制:双管齐下
PEPNet通过两个子网络EPNet和PPNet,分别应对“领域”和“任务”的挑战。

机制一:EPNet (Embedding Personalized Network) —— 解决“域”问题
目标:为不同领域中的不同用户,融合具有不同重要性的特征,解决“领域跷跷板” 。
工作机制:EPNet使用领域相关的特征(如domain ID,用户在该域的交互次数等)作为其门控单元(Gate NU)的输入 。这个门控单元会生成一个与Embedding层维度相同的门控向量,然后通过
按元素相乘的方式,作用于共享的Embedding层,从而为不同的领域生成一套专属的、个性化的Embedding表示 。
机制二:PPNet (Parameter Personalized Network) —— 解决“任务”问题
目标:为不同任务中的不同用户,平衡稀疏度不同的目标,解决“任务跷跷板” 。
工作机制:PPNet使用用户/物品/作者相关的通用个性化特征(如user ID, item ID, user age等)作为其门控单元的输入 。这些门控单元会为DNN任务塔的
每一层都生成一个门控向量,然后通过按元素相乘的方式,作用于该层网络的隐层激活值上 。这相当于为每个用户的每次预测,都动态调整了DNN任务塔每一层的“神经元”的激活强度,实现了非常精细的个性化调控。
4.4 灵感来源:Gate NU与LHUC算法
您总结得非常准确,PEPNet中这种在DNN每一层进行参数调控的核心思想,其直接灵感来自于
语音识别领域的LHUC算法 (Learning Hidden Unit Contributions) 。
- 思想迁移:LHUC算法通过学习一个说话人专属的门控,来缩放(scale)声学模型中隐藏层的单元,从而提升对不同说话人语音的识别准确率 。PEPNet巧妙地将这种思想迁移过来:PPNet通过学习一个用户/物品专属的门控,来缩放推荐模型中任务塔隐藏层的单元,从而提升对不同用户在不同任务上的预测准确率 。
- Gate NU:这个基础的门控单元本身,通常采用一个**“先降维、后升维”**的两层MLP瓶颈结构,以保证高效和轻量。其输出层通常使用
γ*Sigmoid(γ常设为2)作为激活函数,使得门控既能抑制(输出<1)又能增强(输出>1)信号,比普通门控更灵活 。
4.5 总结
- 定位:快手提出的,一个用于解决复杂多任务、多领域问题的SOTA工业级解决方案。
- 核心问题:针对“不完美的双重跷跷板效应”。
- 核心策略:作为一个即插即用的模块,通过注入个性化先验信息来动态调控主干模型。
- 关键机制:
- EPNet:在Embedding层进行“领域”级别的个性化。
- PPNet:在DNN任务塔的每一层进行“任务”级别的个性化。
- 灵感来源:其核心的层层调控机制源于语音识别领域的LHUC算法。
5. STAR (Star Topology Adaptive Recommender):阿里提出的多领域CTR模型
STAR是阿里巴巴在2021年CIKM会议上提出的一个专门用于解决多领域(Multi-Domain)CTR预估问题的模型。它的核心在于如何优雅地处理不同领域之间的共性和差异性,以缓解“领域跷跷板”效应。
5.1 背景:为何需要STAR?——多领域推荐的挑战
在像淘宝这样的超级App中,存在多个推荐场景(领域),比如“猜你喜欢”、“购买后推荐”、“搜索结果页”等。这些领域的用户和物品有重叠,但用户的行为意图、物品的分布却有很大差异。STAR模型就是为了在这种复杂的环境下,构建一个统一的模型,既能利用所有领域的数据来增强学习效果,又能适应每个领域的独特特性。
5.2 STAR的核心思想:星形拓扑结构
为了平衡共性与个性,STAR模型设计了一种“中心-辐射”式的网络结构,即星形拓扑结构 (Star Topology)。
- 共享中心网络 (Shared Center Network):作为“中心”,它负责学习所有领域都通用的底层知识和特征表示。这部分网络由所有领域的数据共同训练,实现了知识的迁移和共享。
- 领域特定网络 (Domain-specific Networks):作为从中心“辐射”出去的分支,每个领域都拥有一个自己专属的网络。它负责学习该领域的个性化模式,捕捉其独有的特征。
- 优势:这种结构允许模型在共享参数的同时,也为每个领域分配了专属参数,从而能够灵活地适应不同领域的数据分布,有效缓解领域间的冲突和负迁移。
5.3 STAR的关键机制
除了宏观的星形拓扑结构,STAR还引入了两个非常精巧的关键机制来增强其领域自适应能力。
- 机制一:分区归一化 (Partitioned Normalization, PN)
- 问题:标准的批归一化(Batch Normalization, BN)假设一个批次内的数据来自同一分布,但在多领域场景下,一个批次内会混合来自不同领域、分布差异巨大的数据,这使得BN失效甚至起到反作用。
- 解决方案:PN在做归一化时,会先在批次内根据领域ID对数据进行分区。然后,它为每个分区(即每个领域)单独计算均值
μd和方差σd²,并用这些领域专属的统计量来对该领域的数据进行归一化。 - 公式:
z' = (γ · γd) * (z - μd) / sqrt(σd² + ε) + (β + βd)。- 这里的
γ和β是全局共享的缩放和偏移参数,而γd和βd是为每个领域d学习的专属缩放和偏移参数。
- 这里的
- 优势:PN能够精准地捕捉每个领域的真实数据分布,避免了不同领域统计信息的混乱,从而让模型训练更稳定,性能更好。
- 机制二:辅助网络 (Auxiliary Network)
- 问题:模型很难自动、显式地学习到不同领域间的差异。如果仅把领域ID作为一个普通特征输入,其信号在经过多层网络后很容易被削弱。
- 解决方案:STAR引入了一个独立的辅助网络,专门用来建模领域差异。
- 机制:这个网络直接将领域指示器 (domain indicator) 作为输入,学习一个领域专属的嵌入向量。它的最终输出会直接与主网络的输出相加,共同形成最终的预测值。
- 优势:这种设计相当于为主模型的预测结果提供了一个可学习的、领域专属的偏置修正项 (Bias Correction)。它保证了领域信息能直接、有力地影响最终的预测结果,让模型对领域差异更加敏感。
5.4 总结
- 定位:阿里巴巴提出的,专门解决工业级多领域CTR预估问题的SOTA模型。
- 核心架构:星形拓扑结构,通过“共享中心网络+领域专属网络”来平衡知识共享与领域个性化。
- 关键机制:
- 分区归一化 (PN):一种领域感知的归一化方法,用于精确适配不同领域的数据分布。
- 辅助网络 (Auxiliary Network):一个并行的旁路网络,用于为主模型提供一个显式的、领域专属的偏置修正。
第三部分:多任务的进阶优化策略(模型之外)
当我们确定了多任务学习的模型架构后(如MMoE或PLE),优化的过程本身也大有可为。这部分策略不改变模型结构,而是直接作用于模型的训练过程,通过更精细的手段来平衡不同任务,因此可以被看作是“模型之外”的通用优化技巧。
1. 梯度层面:直接处理梯度冲突
- 背景:为何需要在梯度层面进行优化?
- 我们之前反复提到,多任务学习的核心挑战之一是“负迁移”,其根本原因在于梯度冲突。在拥有共享参数的模型中,不同任务为了最小化各自的损失,在反向传播时可能会对同一个共享参数产生方向相反的更新需求(一个想让参数增大,另一个想让参数减小)。
- 这种“拉锯战”会导致模型训练不稳定,收敛缓慢,并最终损害整体性能。梯度层面的优化策略,就是像一个“交通警察”一样,在参数更新前,主动地对这些冲突的“指令”进行协调和处理。
1.1 梯度优化策略一:PCGrad (Projecting Conflicting Gradients)
- 核心思想:“有冲突才调解,没冲突就放行”。它是一种相对温和的、只在必要时介入的策略。
- 工作机制:
- 检测冲突:在每次参数更新前,算法会检查任意两个任务(如任务i和任务j)的梯度向量
gi和gj。它通过计算两个向量的余弦相似度(即点积)来判断方向。如果余弦相似度为负数,意味着两个梯度的夹角大于90度,方向存在明显的冲突。 - 解决冲突:一旦检测到冲突,PCGrad会进行一次“投影”操作。例如,它会将梯度
gi中与gj方向相反的分量剔除掉,只保留与gj正交(不冲突)的分量。这可以理解为,它修改了gi,告诉它:“你可以朝自己的目标更新,但不要干扰任务j”。 - 更新参数:最后,使用这些经过“调解”和修正后的梯度来更新共享参数。
- 检测冲突:在每次参数更新前,算法会检查任意两个任务(如任务i和任务j)的梯度向量
- 优势:PCGrad的逻辑清晰,实现相对简单,能有效避免任务间最直接的相互损害。
1.2 梯度优化策略二:GradVec
- 核心思想:不满足于仅仅被动地消除冲突,而是主动地去寻找一个对所有任务都尽可能公平的“共同前进”方向。
- 工作机制:
- GradVec的目标是找到一个新的梯度向量
v,这个v与所有单个任务的梯度gi都尽可能方向一致(即夹角尽可能小)。 - 它不再是简单地对梯度进行“是/否”冲突的判断和修正,而是将寻找最优更新方向本身,重新定义为一个优化问题。根据图片中的描述,它可以根据不同任务间的关系,设定一个可容忍的“最大夹角”(或最小余弦相似度),并在这个约束下找到一个最优的折衷方向。
- GradVec的目标是找到一个新的梯度向量
- 优势:相比PCGrad的“两两调解”,GradVec试图从一个更全局的视角来规划更新路径,理论上可能找到更稳定、更高效的收敛路径。
2. 损失层面:动态平衡任务权重
在多任务学习中,一个最直接的问题就是如何组合不同任务的损失函数。简单地将它们等权重相加(L_total = L_A + L_B)往往效果不佳,因为不同任务的量纲、难度、收敛速度都不同。模型很容易被“简单”或“loss值大”的任务主导,而忽略了其他任务。因此,动态平衡损失权重至关重要。
2.1 策略一:自适应加权 (Adaptive Weighting, 如DWA)
- 核心思想:像一位“因材施教”的老师,动态地给“学得慢”(即难收敛)的任务分配更多的关注(即更高的loss权重)。
- 工作机制:
- 这种方法会实时追踪每个任务的学习进度,通常用损失函数值的下降速率来衡量。
- 如果一个任务的loss在最近几轮迭代中下降得很慢,说明模型在这个任务上遇到了瓶颈。此时,算法会自动调高这个任务的loss权重,迫使模型在下一轮更新中投入更多“精力”来优化它。
- 它的目标是让所有任务的学习速度尽可能保持一致,避免出现部分任务已经过拟合、而另一部分任务还未充分学习的情况。
2.2 策略二:不确定性加权 (Uncertainty Weighting)
- 核心思想:让模型不仅要学习预测任务,还要学习评估自己对这个预测的“不确定性”。一个任务的loss权重,应该和模型对这个任务的确定性成正比。
- 工作机制:
- 该方法为每个任务
i引入一个可学习的不确定性参数σi²。总的损失函数被构造成类似(1/2σi²) * Li + log(σi)的形式。 - 为了最小化这个总损失,模型有两个选择:一是努力降低任务损失
Li;二是“承认自己能力不足”,调高不确定性σi²来降低第一项Li的影响。 log(σi)这一项作为正则项,惩罚过大的不确定性,防止模型“躺平”,直接将所有σi²设为无穷大来忽略所有任务。- 最终,模型会达到一个平衡:对于那些模型确实难以把握、噪声较大的任务,它会学习到一个较高的不确定性,从而自动降低该任务的权重。
- 该方法为每个任务
3. 业务目标层面:约束与重构
有时,多任务优化的目标并不仅仅是几个loss的加权和,而是要满足一些复杂的、非线性的业务规则。
3.1 策略一:约束优化 (Constrained Optimization)
- 适用场景:当业务有硬性指标(KPI)或约束时。例如:“在提升CTR的同时,GMV(商品交易总额)绝不能低于200万”。
- 工作机制:
- 这将多任务学习问题转化为一个标准的带约束优化问题。
- 模型的优化过程不再是无约束地寻找loss最低点,而是在一个由业务指标限定的**“可行域”**内寻找最优解。
- 这个“可行域”的边界通常由KKT条件(一种在非线性规划中找到最优解的必要条件)来定义。在训练的每次迭代中,都需要校验优化结果是否满足这些硬性约束,满足了才是一次有效的更新。
3.2 策略二:重构优化目标 (Reconstructing the Objective)
- 适用场景:当业务逻辑非常复杂,难以用简单的约束来表达时,可以尝试从根源上重新定义模型的学习目标。
- 工作机制(以广告回报模型为例):
- 定义新指标:不直接优化CTR或CVR,而是定义一个更贴近商业目标的指标,比如“单次曝光的平均收益”。
- 重构标签:计算出一个全局的“平均曝光收益”基准线。对于每一次广告曝光,如果它的实际收益(综合点击费用、转化服务费等)高于基准线,则其训练标签为正;如果低于基准线,则其标签为负。
- 带来的好处:
- 惩罚低效广告:那些高曝光但低转化、拉低平台整体收益的广告,会因为得到负向的训练信号而逐渐减少曝光机会。
- 扶持新广告:一个全新的、没有历史数据的广告,其初始收益可被认为是0,这比那些收益为负的存量广告要“好”,因此更容易获得冷启动的探索机会。
这种方法非常巧妙地将复杂的商业权衡(Exploration & Exploitation、平台长期收益)直接编码到了模型的训练信号中。


