当前位置: 首页 > ds >正文

推荐系统中如果有一个上古精排模型,后续如何优化?

问题就是这么个问题
主要就着几篇知乎文章做一个笔记小结


文章目录

  • 1 上古模型的定义与特点
  • 2 上古模型的优化方案
    • 2.1 模型热启动(Warm-up)
    • 2.2 样本全部从零开始训练
    • 2.3 模型蒸馏(Knowledge Distillation)
    • 2.4 渐进式结构调整
    • 2.5 多目标融合优化
    • 2.6 偏差纠正技术
      • 2.6.1 小模型人群纠偏
    • 2.7 系统级优化


1 上古模型的定义与特点

上古模型是推荐系统精排阶段长期增量更新的超强排序模型,类似“老火慢炖的汤”,通过持续吸收海量样本(如数十万亿数据)优化而成。其核心特点包括:

  1. 海量参数与样本依赖

    • 参数规模庞大(未压缩时达数百TB),主要集中在商品ID、Query等细粒度特征Embedding上。
    • 依赖全人群历史样本训练,导致模型对头部用户(高活、高购买力)打分偏倚,对低活用户或新品打分不公平。
    • 好处是吸收了远超新模型的样本量,参数充分收敛,对历史模式捕捉能力强
  2. 继承性强,优化受限

    • 热启(加载历史参数)效果好,但从零训练效果暴跌。
    • 模型结构可能已过时(如未引入Attention、多任务学习等新技术),但因其数据优势,新模型难以在短期训练中超越
    • 结构改动风险高(如替换Attention/DNN层),易破坏原有能力。
  3. 特征学习固化

    • 统计特征(如商品30天曝光量)基于全人群数据计算,对子人群(如低活用户)或新品适用性差。
  4. 迭代成本高

    • 训练需数周,上线需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,减少内存占用和计算量。
  • 缓存机制:缓存高频用户特征或中间结果,减少重复计算。
  • 异步处理:拆分推理流程,并行处理非关键路径任务。

优劣

  • 优点:显著降低推理延迟,兼容老旧模型。
  • 缺点:属临时方案,未解决模型能力瓶颈。
http://www.xdnf.cn/news/14959.html

相关文章:

  • 遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
  • github在线图床
  • PostgreSQL中的rank()窗口函数:实用指南与示例
  • 浏览器原生控件上传PDF导致hash值不同
  • 制作一款打飞机游戏76:分数显示
  • 微软广告推出新的精细资产级别审核
  • 无代码自动化测试工具介绍
  • SpringBoot控制反转
  • CentOS 6操作系统安装
  • 05.SpringBoot拦截器的使用详解
  • 玄机——某学校系统中挖矿病毒应急排查
  • 人脸活体识别3:C/C++实现人脸眨眼 张嘴 点头 摇头识别(可实时检测)
  • lerobot 工程笔记(一)——使用smolvla控制so101
  • 【AI落地应用实战】AIGC赋能职场PPT汇报:从效率工具到辅助优化
  • Docker Compose 基础——AI教你学Docker
  • 链表的实现
  • Flink-1.19.0源码详解5-JobGraph生成-前篇
  • Node.js-http模块
  • Appium 简介
  • 大语言模型:是逐字生成还是一次多词?
  • GO Web 框架 Gin 完全解析与实践
  • 【NLP第二期中文分词技术:规则、统计与混合方法全解】
  • 笨方法学python-习题12
  • Disruptor架构哲学
  • 结构体实战:用Rust编写矩形面积计算器
  • MySQL 中 InnoDB 存储引擎与 MyISAM 存储引擎的区别是什么?
  • 8.Docker镜像讲解
  • 阿里巴巴 Qwen 系列大模型发展时间线与主要特性
  • 数字图像处理学习笔记
  • C#.Net筑基-优雅LINQ的查询艺术