(5)工业界推荐系统-小红书推荐场景及内部实践【线上召回和模型更新】

系列文章传送门

(1)工业界推荐系统-小红书推荐场景及内部实践【业务指标、链路、ItemCF】
(2)工业界推荐系统-小红书推荐场景及内部实践【UserCF、离线特征处理】
(3)工业界推荐系统-小红书推荐场景及内部实践【矩阵补充、双塔模型】
(4)工业界推荐系统-小红书推荐场景及内部实践【正负样本选择】
(5)工业界推荐系统-小红书推荐场景及内部实践【线上召回和模型更新】
(6)工业界推荐系统-小红书推荐场景及内部实践【其他召回通道】

该系列文章根据小红书搜推算法工程师、团队负责人王树森B站上主讲的《工业界的推荐系统》之小红书业务场景及内部实践整理而得。感谢大佬分享工业界前沿的推荐系统实战技术!

双塔模型:线上召回和更新

线上召回

将物品的 representation 向量离线存储到向量数据库中:
在这里插入图片描述
离线存储

  1. 完成训练之后,用物品塔计算每个物品的特征向量 𝐛 。
  2. 把几亿个物品向量 𝐛 存入向量数据库(比如 Milvus、 Faiss、HnswLib )。
  3. 向量数据库建索引,以便加速最近邻查找。

线上召回

  1. 给定用户ID和画像,线上用神经网络算用户向量 𝐚。
  2. 最近邻查找:
    • 把向量 𝐚 作为 query,调用向量数据库做最近邻查找。
    • 返回余弦相似度最大的 k 个物品,作为召回结果。

事先存储物品向量 𝐛,线上现算用户向量 𝐚,why?

  • 每做一次召回,用到一个用户向量 𝐚 ,几亿物品向量 𝐛 。
    (线上算物品向量的代价过大。)
  • 用户兴趣动态变化【需要实时更新用户特征】,而物品特征相对稳定。(可以离线 存储用户向量,但不利于推荐效果。)

模型更新

全量更新:今天凌晨,用昨天全天的数据训练模型

  • 在昨天模型参数的基础上做训练。(不是随机初始化)
  • 用昨天的数据,训练 1 epoch,即每天数据只用一遍。
  • 发布新的用户塔神经网络和物品向量,供线上召回使用。
  • 全量更新对数据流、系统的要求比较低。

增量更新:做 online learning 更新模型参数

  • 用户兴趣会随时发生变化。
  • 实时收集线上数据,做流式处理,生成 TFRecord 文件。
  • 对模型做 online learning,增量更新 ID Embedding 参数。 (不更新神经网络其他部分的参数。)
  • 发布用户 ID Embedding,供用户塔在线上计算用户向量。(增量模型通常不更新物品塔

在这里插入图片描述
增量更新:是在当天全量模型更新的基础上更新的,到下一天全量模型上线后,自动废止。

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

  • 小时级数据有偏;分钟级数据偏差更大。
  • 全量更新:random shuffle 一天的数据,做 1 epoch 训练。
  • 增量更新:按照数据从早到晚的顺序,做 1 epoch 训练。
  • 随机打乱优于按顺序排列数据全量训练优于增量训练
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP_wendi

谢谢您的支持。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值