推荐系统中如果有一个上古精排模型,后续如何优化?
问题就是这么个问题
主要就着几篇知乎文章做一个笔记小结
文章目录
- 1 上古模型的定义与特点
- 2 上古模型的优化方案
- 2.1 模型热启动(Warm-up)
- 2.2 样本全部从零开始训练
- 2.3 模型蒸馏(Knowledge Distillation)
- 2.4 渐进式结构调整
- 2.5 多目标融合优化
- 2.6 偏差纠正技术
- 2.6.1 小模型人群纠偏
- 2.7 系统级优化
1 上古模型的定义与特点
上古模型是推荐系统精排阶段长期增量更新的超强排序模型,类似“老火慢炖的汤”,通过持续吸收海量样本(如数十万亿数据)优化而成。其核心特点包括:
-
海量参数与样本依赖:
- 参数规模庞大(未压缩时达数百TB),主要集中在商品ID、Query等细粒度特征Embedding上。
- 依赖全人群历史样本训练,导致模型对头部用户(高活、高购买力)打分偏倚,对低活用户或新品打分不公平。
- 好处是吸收了远超新模型的样本量,参数充分收敛,对历史模式捕捉能力强
-
继承性强,优化受限:
- 热启(加载历史参数)效果好,但从零训练效果暴跌。
- 模型结构可能已过时(如未引入Attention、多任务学习等新技术),但因其数据优势,新模型难以在短期训练中超越
- 结构改动风险高(如替换Attention/DNN层),易破坏原有能力。
-
特征学习固化:
- 统计特征(如商品30天曝光量)基于全人群数据计算,对子人群(如低活用户)或新品适用性差。
-
迭代成本高:
- 训练需数周,上线需AB测试验证,ROI低。
2 上古模型的优化方案
针对上古模型的偏差和滞后问题,优化核心思路是 “继承能力,针对性纠偏”,避免结构大改。以下是所有可行方案,原理、过程与优劣对比如下:
2.1 模型热启动(Warm-up)
原理:将是哪个古模型的参数作为新模型的初始化权重,而非随机初始化,使新模型继承历史知识。
过程:
- 加载老模型的Embedding层参数(稀疏特征权重),Dense层可部分复用或随机初始化[2]。
- 用近期数据微调全部参数,逐步适应新结构。
优劣:
- ✅ 优点:加速收敛,减少训练资源需求;保留历史信息。
- ❌ 缺点:结构改动受限(如新增网络层需随机初始化);若改动过大,迁移效果减弱。
2.2 样本全部从零开始训练
原理:通过回滚历史数据重新训练新模型,消除因样本量差异导致的评估偏差。
过程:
- 存储长期历史样本(如3个月),新模型从零训练,与上古模型使用相同数据量和分布。
优劣:
- ✅ 优点:评估公平,模型潜力充分释放。
- ❌ 缺点:存储与计算成本极高,实际中难以实现(尤其大数据场景)
2.3 模型蒸馏(Knowledge Distillation)
原理:用上古模型作为Teacher模型指导轻量化Student模型训练,压缩模型复杂度并继承知识。
过程:
- Teacher模型生成软标签(Soft Targets),Student模型学习其输出分布。
- 结合真实标签设计损失函数:
Loss = α * KL散度(Teacher输出, Student输出) + β * 交叉熵(真实标签, Student输出)
。
优劣:
- ✅ 优点:降低推理延迟(如50ms→30ms),适合端上部署;缓解上古模型的结构冗余。
- ❌ 缺点:Teacher模型的偏差可能被继承;训练需额外计算资源。
2.4 渐进式结构调整
原理:仅修改局部结构并随机初始化该部分参数,其余部分复用老模型权重。
过程:
- 例如保留Embedding层和底层MLP,仅新增Attention模块并随机初始化。
- 用增量数据训练新结构,逐步迭代。
优劣:
- ✅ 优点:改动风险小,训练速度快。
- ❌ 缺点:创新受限,性能提升有限(“小步迭代”困境)。
2.5 多目标融合优化
原理:在不改动模型结构的前提下,通过优化多目标分数融合策略提升效果。
过程:
- 上古模型输出多任务分数(如点击率、时长、点赞率),设计动态加权公式:
Score = Σ w_i * (α_i * Score_i)^β_i
调整权重w_i
和灵敏度参数α_i, β_i
。 - 引入帕累托最优解搜索,平衡多目标冲突。
优劣:
- ✅ 优点:无需模型重训,快速实验;适合目标新增场景。
- ❌ 缺点:依赖手工调参,可能触及性能天花板。
2.6 偏差纠正技术
原理:针对上古模型积累的偏差(如流行度偏差、位置偏差),设计纠偏模块。
过程:
- 小模型人群纠偏(如https://zhuanlan.zhihu.com/p/700583067):
训练独立的小模型校正特定人群的推荐结果,例如对低活用户进行兴趣增强。 - 对抗学习:
添加对抗网络约束敏感属性(如性别)与预测结果的相关性。 - 位置偏差解耦:
使用Shallow Tower或PAL框架分离位置因素与用户真实兴趣。
优劣:
- ✅ 优点:提升公平性和长尾覆盖率。
- ❌ 缺点:可能牺牲短期指标(如点击率)。
2.6.1 小模型人群纠偏
主要参考:在老汤模型上分人群微调
- 方案描述:将精排大模型(老汤模型)的打分输出作为一个特征,与User/Query/Item侧的一些简单特征(如粗粒度ID类特征和简单统计特征)拼接(Concat),然后输入到一个轻量级DNN(称为“小模型”)中。这个小模型仅使用子人群样本从头训练(subpopulation-specific training)。
- 初始化与特征处理:无需复杂初始化,直接从小样本开始训练。精排大模型的打分特征可以不分桶离散化(实测对效果影响不大)。
优点:
- 迭代速度快:子人群样本少,小模型特征简单,训练和上线只需几个小时(相比大模型需数周)。
- 线上开销小:去除细粒度ID类特征(如商品ID),模型参数量大幅下降,经量化压缩后仅几个G大小,部署时依赖大模型打分但线上RT仅增加5-6毫秒。
- 可扩展性强:每个子人群独立训练一个小模型,便于添加子人群特色特征(如行业特定特征),且连续特征分桶不受全人群分布影响。
- 可继承性好:大模型的打分为小模型兜底,确保效果不下降;小模型收敛快,仅需2-3天样本即可追平大模型,并进行偏差纠正(如减少对高价商品的偏好)。
效果:
小模型依赖大模型分进行纠偏,线上全量后取得明显效果(如提升低活用户的CTR/CVR),后续迭代也基于此框架。
解决小模型过度依赖大模型分的问题(限制纠偏天花板):
直接优化老汤模型本身,通过权重调整区分人群样本。这包括两种版本:
- 规则版本(简单加权):
方法:在训练老汤模型时,对子人群样本和主人群样本设置不同权重(如10:1),然后在Batch内归一化权重。梯度优化方向主要由子人群样本主导。
示例:如果Batch中有100条样本(80条主人群、20条子人群),设子人群权重为10,主人群为1,归一化后子人群样本的loss贡献更大。 - 模型版本(判别器加权):
方法:在老汤模型上添加一个判别器模型(discriminator),用于学习每条样本属于子人群的概率(domain probability)。基于该概率计算样本权重,并作用于CTR/CVR任务的交叉熵损失(CE Loss)。
2.7 系统级优化
原理:通过工程手段弥补上古模型的计算效率缺陷。
过程:
- 量化推理:将FP32权重转为INT8,减少内存占用和计算量。
- 缓存机制:缓存高频用户特征或中间结果,减少重复计算。
- 异步处理:拆分推理流程,并行处理非关键路径任务。
优劣:
- ✅ 优点:显著降低推理延迟,兼容老旧模型。
- ❌ 缺点:属临时方案,未解决模型能力瓶颈。