Fork me on GitHub

粗排第一篇 - 你的业务需要粗排吗

图片

作者: silwer 公众号:机器学习与推荐系统 稿

最近做了一段时间粗排,也想总结下自己的心得给大家分享下,感兴趣的朋友可以一起再探讨探讨

一般在搜推方向来说,召回后往往会跟排序,那么有的排序模块有粗排,有的直接就是精排。我们在早期的时候,业务比较简单,各模块也是初步搭建,就想当然的加上了粗排这个模块,多次 AB 下来,发现这个并没有带来提升,这给我们当初带来了第一个问题,上粗排的目的是什么?

粗排的目的

其实简单的思考后,我们可以发现,就像召回和精排的关系一样,是因为受到算力和线上 rt 的限制,需要从全量库一步步缩小候选集的数量,那么如果我们上粗排,也大概率应该是受到了算力和 rt 的限制,需要进一步来让这个漏斗缩小

粗排的第一个目的应当是降低系统压力

那么为什么会有算力和 rt 的限制呢?

一般来讲有两个角度:

  1. 召回量过大,精排处理起来有些扛不住
  2. 精排模型太复杂,本身 infer 执行耗时高

这两个角度也很容易理解,一般来说,在不考虑系统压力的情况下,只要召回路数足够多,各路召回数量足够多,对最终效果肯定是正向的;同样,只要模型越来越复杂,那么效果也大多是正向的

那粗排就需要将召回量缩小到一个精排模型可以承受的数量级来

那么上了粗排的话,虽说不是为了效果上的它,可有了它就得确保它和效果之间的关系

粗排的第二个目的应当是是提高业务效果

这里我秉承这样一个思路,先想是不是问题,再想怎么解决问题

比如我们要先想粗排到底是不是有优化空间?怎么看?只需要直接扩大粗排的吐出量即可,看看对线上效果有没有影响。如果有提高,说明当前粗排还有优化空间。

这里值得注意的一个点是,如果需要扩大粗排的吐出量,一定要考虑到精排的工程能力会不会受到影响,不能盲目扩量。换个角度也可以来缩小粗排的吐出量,如果线上效果有影响,同样可以说明粗排有优化空间,但是这里也需要考量粗排的吐出量和精排的吐出量之间的数量级关系,如果缩小过于严重,甚至接近了精排的吐出量级,那么也不可取。

如果有优化空间,再思考如何解决问题。一般来讲两个思路:

  1. 精排工程扛得住,直接扩量
  2. 扛不住,优化粗排模型

再举个例子,我们考虑召回是不是到了极限,通过实验验证,扩大进入粗排的召回量,查看效果,如果有提升,那就说明召回量可以进一步扩大。然后才是解决方案怎么办,比如:

  1. 粗排工程扛得住,直接扩大进入的召回量
  2. 扛不住,简化粗排模型,或者调整特征

粗排的做法

其实和召回排序一样,粗排本质上也是三大块:样本,特征,模型

今天的文章不展开细讲了,可以给大家分享一些简单思路

样本

比如样本,核心还是来思考,粗排到底是在学什么?

主要分为几类:

  1. 像精排一样用曝光点击未点击作为正负样本,弊端是 ssb 问题严重
  2. 用精排的结果作为正负样本,需要考虑划分方式,采样还是直接划分等,很难找到 groundtruth
  3. 结合两者,正负样本选择方式分别用1,2

业界来看,也有很多种选择方式,也有考虑是否添加点击,或曝光未点击作为样本补充,后面有机会专门写一篇来与大家探讨

特征

总体来说,粗排的特征还是精排特征的一个子集,但是考虑到特征部分的时间消耗会比较多,大家在使用的时候需要慎用交叉特征,大多数使用双塔等模型时,基本都是以普通特征为主,如本身的属性特征,统计特征等

另外,我们也可以采用一些 trick 来考虑将精排的特征量级缩小

比如对精排特征集合的重要性进行分析,分布进行分析,甚至采用模型组件,比如 senet,embedding gate 等方式来获取特征重要性,再辅助筛选

模型

一般来说双塔见得多,轻量级的 mlp,包括阿里提出的 COLD 等也都可以。模型可以直接使用模型去学习自己的样本,也可以通过精排的复杂模型来蒸馏出来一个轻量级模型作为粗排模型。

总结

总体来说,粗排是一个真正需要考虑到工程和算法之间 trade off 的一个步骤,我们希望它能带来足够的效果,是一个合格的漏斗,能把真正有用的内容从这个漏斗中筛选出来。

但是其中无论是样本,特征,还是模型,都有许多值得深究的点。比如一般推荐系统中,由于样本的难以获取,我们都是用 pointwise 为主进行 ctr 或 cvr 预估,但是粗排如果是学习精排的序,那么 pairwise 甚至 listwise 就很适合这个场景,最难获取的一个 list 的 label 我们就已经有了。

再说,比如蒸馏,也仿佛天然很适合粗排的场景,用复杂的精排模型蒸馏出来一个简单模型,既能保证时效性,又在效果还不错的基础上保证了和精排的统一性,不会影响到最终业务目标(因为我是和你精排对齐的)。

对粗排有心得,或者感兴趣的同学也欢迎来一起交流。


本文地址:https://www.6aiq.com/article/1653713231120
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出