Loading...
Navigation
Table of Contents

召回模型的负例Data

负样本为王:评Facebook的向量化召回算法
有人的地方就会有江湖,就会有鄙视链存在,推荐系统中也不例外。排序、召回,尽管只是革命分工不同,但是我感觉待遇还是相差蛮大的 排序 排序,特别是精排,处于整个链条的最后一环,方便直接对业务指标发力。比如…
阿里ESAM:用迁移学习解决召回中的样本偏差
题外话我为什么要将我的论文笔记发出来?现在绝大多数论文都能够免费下载,既然人家能够读到原文,又为什么要花时间看你的读书笔记这种“二手货”? 打个比方,除了相声,我也非常爱听郭德纲的评书。以前,大家喜…

样本角度:为什么要随机负例?

排序其目标是“从用户可能喜欢的当中挑选出用户最喜欢的”,是为了优中选优。与召回相比,排序面对的数据环境,简直就是温室里的花朵

召回是“是将用户可能喜欢的,和海量对用户根本不靠谱的,分隔开”,所以召回在线上所面对的数据环境,就是鱼龙混杂、良莠不齐

从样本角度来看,我们把样本池子分成三类:

  • 常年当正例的,比如高热item
  • 常年当负例的,这部分例子虽然是负例,但是至少被系统推出来了(在多目标公式下),说明他们至少有一些优秀点,比如share率高/是明星发布的
  • 从没有被系统推荐出来过的,大概率是垃圾item。

考虑一个finish精排模型,注意这个目标是看用户是否finish,这个模型对于没见过的item是如何预测的?答案是根据初始化的embedding进行预测,所以这部分是0 + user_bias + 一些噪声。但这里有一个关键一点,它们虽然预测分数不会太高,但是应该会比常年混迹于真实负例的items分数高。

而这就可能有问题了。因为真实负例里的gid,虽然finish率不如未见过的样本,但他们在其他方面(如share率高/是明星发布的)是肯定比未见过的样本要好的,finish召回选择去召回未见过的样本,而不是真实负例,这样是片面的。

理论上,没有被系统排出来的item,大概率是负例,所以我们可以均匀采样一些负例。

个性化角度:怎么采样随机负例?

但是均匀采样也会引入另一个问题,召回模型会永远召回并推荐头部的,然后形成信息茧房/system bias;

如果普遍增加一些随机负例,那么未被展现的视频也有可能出来?

但是文章中没有说明随机抽样的概率,千万不要以为是在整个候选库里等概率抽样

  • 在任何一个推荐系统中,“八二定律”都是不可避免的,也就是少数热门物料占据了绝大多数的曝光与点击
  • 这样一来,正样本被少数热门物料所绑架,导致所有人的召回结果都集中于少数热门物料,完全失去了个性化。
  • 因此,当热门物料做正样本时,要降采样,减少对正样本集的绑架。
  • 比如,某物料成为正样本的概率$P_{pos}=(\sqrt{\frac{z(w_i)}{0.001}}+1)\frac{0.001}{z(w_i)}$,其中$z(w_i)$是第i个物料的曝光或点击占比。
  • 当热门物料做负样本时,要适当过采样,抵销热门物料对正样本集的绑架;同时,也要保证冷门物料在负样本集中有出现的机会。
  • 比如,某物料成为负样本的概率$P_{neg}=\frac{n(w_i)^\alpha}{\sum_j{n(w_j)}^\alpha}$。其中n(w)是第i个物料的出现次数,而$\alpha$一般取0.75

Last updated on Mar 04, 2021.