双塔模型:正负样本
选对正负样本的作用 > 改进模型的结构
正样本
什么是正样本?答:曝光且有点击的 “用户-物品” 二元组
存在的问题:存在28法则,即少部分物品(比如热门物品)占大部分点击,导致正样本大多数是热门物品
解决方案:过采样冷门物品,或降采样热门物品
如何选择负样本
- 召回阶段没有被召回的可以当负样本
- 粗排,精排阶段被筛除的可以当负样本
- 展示给用户曝光但没有被用户点击的可以当负样本(但这类不适应于做召回的负样本)
简单负样本
简单负样本是指未被召回的物品。
未被召回的物品,大概率是用户不感兴趣的。
未被召回的物品 ≈ 全体物品 (因为几亿个物品里只召回了几千个)。
根据2,只需从全体物品中做抽样,作为负样本。
如何做抽样?均匀抽样 or 非均匀抽样
全体物品负样本
均匀随机抽样: 对冷门物品不公平。
因为少部分物品占据大部分点击,正样本大多是热门物品。
若均匀抽样,产生的负样本大多是冷门物品。
总拿热门物品做正样本,冷门物品做负样本,这对冷门物品不公平,会导致热门物品更热冷门物品更冷,故需要非均匀抽样。
非均匀随机抽样:目的是打压热门物品。
- 负样本抽样概率与热门程度(点击次数)正相关。
- 抽样概率正比于点击次数^0.75 ,0.75是一个经验值。
Batch内负样本
解决对热门物品过度打压思路
困难负样本
困难负样本是被召回但是被排序淘汰的物品。这些物品被召回说明其跟用户的兴趣多少有点关系,被排序淘汰说明用户对该物品的兴趣不够强。对正负样本做二元分类时,这些物品容易被分错集容易被误判为正样品。
训练双塔模型是个二元分类任务,让模型区分正负样本:
- 全体物品(简单)分类准确率高
- 被粗排淘汰的物品(比较困难)因跟正样本有些相似,容易分错
- 精排分数靠后的物品(非常困难)因跟正样本很相似,更容易分错
工业界常见做法——混合简单,困难负样本作为训练数据
常见错误
如果你把曝光但未被点击的物品作为负样本来训练双塔模型,那么恭喜你踩雷了。
为什么不能把已曝光未点击的物品当作召回的负样本?从选择负样本的原理出发。
召回的任务是区分用户不感兴趣的物品和可能感兴趣的物品。
排序的任务是区分比较感兴趣的和非常感兴趣的。
有曝光没点击:物品可以通过精排模型曝光给用户,说明该物品已经非常匹配用户的兴趣点了,每次给用户展示几十个物品,用户不可能每个都点击,没有点击不代表对该物品不感兴趣,可能是碰巧没有点击或者可能是用户对别的物品更感兴趣。
故有曝光没点击的物品已经算是非常匹配用户的兴趣了,只是可能不是非常感兴趣,这可以作为排序的负样本,甚至可以作为召回的正样本但不应该把这类当作召回的负样本。
小结,曝光没点击的物品只适合于训练排序模型,不适用于训练召回模型(工业界的共识,反复做实验得出的结论)。
总结
正样本:曝光且有点击
简单负样本:
- 全体物品
- batch内负样本
困难负样本:被召回,但被排序淘汰
曝光且未点击的物品不能做召回的负样本,可以做排序的负样本