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

双塔模型2之如何选择正确的正负样本

双塔模型:正负样本

选对正负样本的作用 > 改进模型的结构

正样本

什么是正样本?答:曝光且有点击的 “用户-物品” 二元组

  • 存在的问题:存在28法则,即少部分物品(比如热门物品)占大部分点击,导致正样本大多数是热门物品

  • 解决方案:过采样冷门物品,或降采样热门物品

如何选择负样本

  1. 召回阶段没有被召回的可以当负样本
  2. 粗排,精排阶段被筛除的可以当负样本
  3. 展示给用户曝光但没有被用户点击的可以当负样本(但这类不适应于做召回的负样本)

image-20250326083242570

简单负样本

简单负样本是指未被召回的物品。

  1. 未被召回的物品,大概率是用户不感兴趣的。

  2. 未被召回的物品 ≈ 全体物品 (因为几亿个物品里只召回了几千个)。

  3. 根据2,只需从全体物品中做抽样,作为负样本。

  4. 如何做抽样?均匀抽样 or 非均匀抽样

全体物品负样本

均匀随机抽样: 对冷门物品不公平。

  • 因为少部分物品占据大部分点击,正样本大多是热门物品。

  • 若均匀抽样,产生的负样本大多是冷门物品。

总拿热门物品做正样本,冷门物品做负样本,这对冷门物品不公平,会导致热门物品更热冷门物品更冷,故需要非均匀抽样。

非均匀随机抽样:目的是打压热门物品。

  • 负样本抽样概率与热门程度(点击次数)正相关。
  • 抽样概率正比于点击次数^0.75 ,0.75是一个经验值。

Batch内负样本

image-20250326084811752

image-20250326085257077

解决对热门物品过度打压思路

image-20250326085618898

困难负样本

困难负样本是被召回但是被排序淘汰的物品。这些物品被召回说明其跟用户的兴趣多少有点关系,被排序淘汰说明用户对该物品的兴趣不够强。对正负样本做二元分类时,这些物品容易被分错集容易被误判为正样品。

训练双塔模型是个二元分类任务,让模型区分正负样本:

  • 全体物品(简单)分类准确率高
  • 被粗排淘汰的物品(比较困难)因跟正样本有些相似,容易分错
  • 精排分数靠后的物品(非常困难)因跟正样本很相似,更容易分错

工业界常见做法——混合简单,困难负样本作为训练数据

image-20250327082105555

常见错误

如果你把曝光但未被点击的物品作为负样本来训练双塔模型,那么恭喜你踩雷了。

为什么不能把已曝光未点击的物品当作召回的负样本?从选择负样本的原理出发。

image-20250327083256905

召回的任务是区分用户不感兴趣的物品和可能感兴趣的物品。

排序的任务是区分比较感兴趣的和非常感兴趣的。

有曝光没点击:物品可以通过精排模型曝光给用户,说明该物品已经非常匹配用户的兴趣点了,每次给用户展示几十个物品,用户不可能每个都点击,没有点击不代表对该物品不感兴趣,可能是碰巧没有点击或者可能是用户对别的物品更感兴趣。

故有曝光没点击的物品已经算是非常匹配用户的兴趣了,只是可能不是非常感兴趣,这可以作为排序的负样本,甚至可以作为召回的正样本但不应该把这类当作召回的负样本。

小结,曝光没点击的物品只适合于训练排序模型,不适用于训练召回模型(工业界的共识,反复做实验得出的结论)。

总结

  1. 正样本:曝光且有点击

  2. 简单负样本:

    • 全体物品
    • batch内负样本
  3. 困难负样本:被召回,但被排序淘汰

  4. 曝光且未点击的物品不能做召回的负样本,可以做排序的负样本


http://www.kler.cn/a/612009.html

相关文章:

  • iOS 在collectionView顶部无缝插入数据效果
  • Pydantic Schema生成指南:自定义JSON Schema
  • Kubernetes网络插件选择与区别之Calico网络插件详解 上集
  • 《Python实战进阶》第30集:Scikit-learn 入门:分类与回归模型
  • flutter-第1章-配置环境
  • 我的世界模组开发进阶教程——生物群系
  • python深度评测:5大中文长度计算方案终极对决(你的选择可能一直是错的)
  • 【区块链 + 文化版权】慧形AI 知识分身 | FISCO BCOS 应用案例
  • ubuntu20.04安装nvidia-docker(解决有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源错误)
  • 树莓派(4B)使用教程-小白之路(NO.1)
  • Rust从入门到精通之精通篇:25.过程宏高级应用
  • MySQL 设置允许远程连接完整指南:安全与效率并重
  • 《Python实战进阶》No37: 强化学习入门:Q-Learning 与 DQN-加餐版1 Q-Learning算法可视化
  • 【前端vue】理解VUE前端框架中src下的api文件夹与views文件夹
  • 蓝桥杯(电子类)嵌入式第十一届设计与开发科目模拟试题
  • AI辅助下基于ArcGIS Pro的SWAT模型全流程高效建模实践与深度进阶应用
  • 面试题:RocketMQ 如何保证消息的顺序性
  • 04 单目标定实战示例
  • HarmonyOS之深入解析如何根据url下载pdf文件并且在本地显示和预览
  • ubuntu24 部署vnc server 使用VNC Viewer连接