推荐系统排序阶段核心要点:多目标排序模型详解
在推荐系统中,排序阶段分为粗排和精排,二者原理相似,粗排旨在快速筛选,减轻精排计算负担。本部分聚焦多目标排序模型,深入剖析其关键内容。
- 排序依据与多目标模型基础:推荐系统排序主要依据用户对物品的兴趣,通过用户与物品的交互数据计算消费指标来衡量,如点击率、点赞率、收藏率和转发率等。多目标排序模型以此为基础,输入用户、物品、统计和场景等多种特征,输出对多个指标的预估值。
- 多目标排序模型结构与训练
- 模型架构:多目标排序模型(MTL)输入多种特征,输出多个目标预估值。它通过神经网络进行特征处理,利用全连接层和 Sigmoid 函数得到点击率、点赞率等指标的预估值。
- 训练策略:采用交叉熵损失函数,将多个任务的交叉熵损失相加作为总损失函数,通过梯度下降更新模型参数。然而,训练面临类别不平衡问题,负样本远多于正样本,通常采取负样本降采样策略解决,但这又会导致新问题。
- 预估值校准的必要性与方法:负样本降采样后,点击率会被高估,且多目标模型需要统一量纲,在广告系统中,精确的 CTR 对于计费至关重要,因此需要进行预估值校准。通过推导真实点击率和预估点击率的关系,得出校准公式,校准后的点击率可作为排序依据。
- MMoE 模型解析
- 模型原理与结构:MMoE 是一种多目标排序模型,通过多个独立的 expert 塔提取特征,利用门控网络对多塔输出向量加权平均后送入多头。expert 网络数量和门控网络数量根据任务确定,门控网络由神经网络和 softmax 激活函数组成,输出概率值作为 expert 网络输出向量的权重。
- 极化问题及解决:训练 MMoE 时,softmax 易出现极化现象,导致部分 expert 网络未被有效利用,模型退化为简单多目标模型。为解决此问题,训练时对 softmax 输出使用 dropout,降低极化发生的可能性。
- 预估分数融合策略:工业界常用多种融分公式融合点击率、点赞率等预估分数,如简单加权和、点击率乘以其他项的加权和等。不同公式适用于不同业务场景,如电商场景会考虑点击、加购物车、付款等环节的转化率,短视频平台则会关注播放时长等指标。
- 视频播放建模要点:视频排序与图文排序不同,除用户交互行为外,播放时长和完播率是关键指标。
- 播放时长建模:直接用回归拟合播放时长效果不佳,YouTube 的时长建模方式是将最后全连接层输出经 sigmoid 处理,通过最小化交叉熵损失进行训练,推理时将 exp (z) 作为播放时长预估,并融入融分公式。
- 完播率建模:完播率建模可采用回归方法,让预估播放率拟合实际播放率;也可采用二元分类方法,但直接使用预估完播率对长视频不公平,需通过与视频时长相关的函数调整后,再融入融分公式。