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

双塔模型3之线上召回与模型更新

双塔模型3之线上召回与模型更新

在训练好双塔模型之后,就可以部署到线上做召回,以及根据线上的数据对模型进行更新。

双塔模型的召回

离线存储

在训练好模型之后,开始线上服务之前,将<物品特征向量b,物品ID>这样的二元组保存到向量数据库进行离线存储,方便最近邻查找

image-20250328081915622

线上召回

用户塔,不需要事先计算和离线存储用户向量(注意这里的计算是指训练好神经网络之后不存储推理结果)。

而是当用户发起推荐请求的时候调用神经网络在线上算一个用户特征向量a。

image-20250328082756251

把a当作query去存储物品特征的向量数据库中做检索查找最近邻,也就是查找跟向量a最相似的k个红色向量。每个红色向量对应一个物品。

双塔模型召回小结

  1. 离线存储:把物品向量b存入向量数据库。

    • 完成训练之后,用物品塔神经网络计算每个物品的特征向量 b 。
    • 把几亿个物品向量 b 存入向量数据库(比如 Milvus、Faiss、HnswLib)。
    • 向量数据库建索引,以便加速最近邻查找
  2. 线上召回:查找用户最感兴趣的k个物品

    • 给定用户ID和画像,输入用户塔神经网络算出用户特征向量 a。

    • 在向量数据库中根据 a向量做最近邻查找:

      1)把向量 a 作为query,调用向量数据库做最近邻查找。

      2) 返回余弦相似度最大的 k 个物品,作为双塔模型召回结果。然后本次召回结果会跟ItemCF, Swing,UseCF等召回通道的召回结果融合 ——> 排序 ——>展示给用户

思考 为何实现存储物品向量b,线上现算用户向量 a ?

image-20250328083832998

双塔模型更新

在实践中,会涉及到模型的全量更新和增量更新。

全量更新

每次用前一天的数据生成TFRecord文件 再做random shuffle打乱 然后做随机梯度下降 只训练1epoch即每条数据只过一遍。

image-20250328084208711

增量更新

做 online learning 更新模型参数,每几十分钟就发布新的模型,刷新线上用户塔 embedding层参数。

用梯度下降,来更新 的参数。注意增量更新只更新Embedding层的参数,做全量更新时才会更新全连接层参数。(why? 主要是出于工程实践的考虑)

image-20250328085714618

发布用户 ID Embedding 的目标是为了线上计算用户特征向量。

最新的 ID Embedding 可以捕捉到用户最新的兴趣点,对推荐很有帮助。

发布用户 ID Embedding 这个过程会有延迟,通过对系统做优化可以降至几十分钟甚至更短。

全量更新 vs 增量更新

image-20250328091057287

问题:能否只做增量更新,不做全量更新?如下图

image-20250328091446603

答:只做增量效果不好。不如上面全量更新和增量更新相结合的方式(全量更新效果更好,增量更新可实时捕捉用户兴趣)。

双塔模型总结

image-20250328091703138

召回总结

image-20250328091745679

模型更新总结

image-20250328091844476

相关文章:

  • MySQL基础语法DDLDML
  • 嵌入式开发场景中Shell脚本执行方式的对比
  • [ComfyUI] ComfyUI-Custom-Scripts 插件介绍与优化功能解析
  • Nginx多域名HTTPS配置全攻略:从证书生成到客户端安装
  • 什么是项目可行性研究中的辅助(功能)研究?
  • MySQL高级语句深度解析与应用实践
  • 时尚界正在试图用AI,创造更多冲击力
  • C语言基础:第10天笔记
  • LeetCode 2711.对角线上不同值的数量差:O(mn)时间O(1)空间 - 位运算优化 - C++/Go双百版本 - 三种方法(一步步优化)
  • Axios核心原理
  • Python与文件——保存文件
  • 微软Copilot与向量数据库:智能化办公的技术架构与实现路径
  • 李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念
  • 软件工程面试题(六)
  • 解决linux centos ubuntu等无法启动谷歌chrome浏览器问题
  • HarmonyOS NEXT——【鸿蒙相册图片以及文件上传Picker封装】
  • Stereolabs ZED Box Mini:NVIDIA Orin™驱动,双GMSL2输入,智能机器视觉AI新选择”
  • android studio调试aosp手机userdebug版本无法查看局部变量和参数问题如何解决?
  • 【从零实现Json-Rpc框架】- 项目实现 -抽象消息类实现篇
  • Uni-app入门到精通:subPackages节点为小程序的分包加载配置
  • 国防部:赖清德歪曲二战历史,背叛民族令人不齿
  • 兰州大学教授安成邦加盟复旦大学中国历史地理研究所
  • 王毅会见巴西外长维埃拉、总统首席特别顾问阿莫林
  • 2025年上海科技节5月17日启动,56家重点实验室和大科学设施将向公众开放
  • 苹果或将于2027年推出由玻璃制成的曲面iPhone
  • 外交部:愿同拉美国家共同维护多边贸易体制