【PyTorch基础教程30】DSSM双塔模型(线上召回 | 模型更新)

本文介绍了召回模型的基础知识,包括point-wise、pair-wise、list-wise三种训练方式及其损失函数。重点讨论了DSSM模型,包括微软和百度版本的特点,以及其在推荐系统中的应用。模型训练和评估过程中的关键步骤如特征预处理、模型定义、模型训练和embedding召回评估也进行了详细阐述。此外,文中还探讨了双塔模型在业界的部署策略,如离线存储和在线召回,并讨论了模型更新的全量和增量方法。
摘要由CSDN通过智能技术生成

内容总结

在这里插入图片描述

  • 召回中,一般的训练方式分为三种:point-wise、pair-wise、list-wise。RecHub中用参数mode来指定训练方式,每一种不同的训练方式也对应不同的Loss。对应的三种训练方式可以参考下图,其中a表示user的embedding,b+表示正样本的embedding,b-表示负样本的embedding。
    • 前面两行是指pointwise即图例看待每个正负样本,使用二分类交叉熵
    • pairwise:每次选择一个正样本和一个负样本,使用Hinge loss或者BPR loss损失函数
    • listwise:每次选择一个正样本和多个负样本,使用softmax loss函数,其实就是多分类问题(如下图最下面的CrossEntropyLoss函数)
      在这里插入图片描述
  • 召回中样本的选择:
    • 正样本:用户点击的物品
    • 负样本:没有被召回的;召回但是被排序淘汰的;曝光但是未点击的
  • 微软DSSM奠定的基本思想:
    • 离线使用cosine优化相似度
    • 在线使用ANN向量化召回
    • 首次提出随机负采样
  • YouTube双塔的思想:
    • In-batch sampled softmax:首次提出in-batch负采样,在batch中除了item以外的所有item作为负样本
    • Sample-Bias Corrected:
      • Batch内出现的是随机采样的结果,热门物品被采样概率大,造成热门惩罚过高
      • 流式纠偏模块:通过采样频率估计采样概率(简单trick:可他通过全局被采频率代替)
  • 排序看特征,召回看样本。

在这里插入图片描述

  • 向量召回:Annoy或者Faiss向量搜索库
  • 召回的难点:
    • 样本构造不容易,比如负样本比例,负样本采样规则
    • 缺乏置信度高的离线评估指标:
      • AUC只能参考
      • Facebook:拿topk召回结果与用户实际点击做交集并计算precision、recall
      • Airbnb:看用户“实际点击”在召回结果中的平均位置
      • 多样性
    • Pytorch中没有sampled softmax:手动提前负采样一些负样本,和本次的1个正样本计算

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

山顶夕景

小哥哥给我买个零食可好

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

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

打赏作者

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

抵扣说明:

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

余额充值