1 什么是粗排
粗排英文叫pre-ranking,即在排序之前的部分,主要是通过召回获取了足够多的候选物料集,这时候虽然可以一股脑的全堆给后面的排序,但是假如候选集过大,排序模型过于复杂,那么排序阶段会耗时过长;这时候可以增加一个粗排,用来做进一步的筛选,将数据量进一步降下去。
粗排的进展还是较慢的,因为也不是每个推荐系统都有粗排这一步,下面是随便从知乎找的:
在当下这个时间点(2022年),一个默认的粗排基线大概是双塔模型。user和item侧多层mlp,得到各自emb后,cosine->蒸馏->sigmoid->logloss;serving时item侧缓存,user侧实时计算,大致如此,无需赘言。在此基础上我们进一步讨论几个业界的优化方向。1)精排蒸馏2)数据增强3)突破双塔4)模型剪枝5)多样性
2 粗排的结构
可以看出,粗排领域的模型还是没有和精排领域一样百花齐放的,不过如下图所示
从上图中可以看出,我们可以从多种角度去划分粗排的结构,并进行优化,可分为样本,特征,模型三部分:
其训练样本类似于精排,选取曝光点击为正样本,曝光未点击为负样本。但由于粗排一般面向上万的候选集,而精排只有几百上千,其解空间大很多。只使用曝光样本作为训练,但却要对曝光和非曝光同时预测,存在严重的样本选择偏差(SSB问题),导致训练与预测不一致。相比精排,显然粗排的SSB问题更严重。
2.1 粗排的原则
- 粗排延迟要求高,一般只有10ms~20ms,远低于精排的要求
- SSB问题:粗排解空间比精排大很多,和精排一样只使用曝光样本,导致严重的样本选择偏差问题。
3 粗排的历史发展
如上图所示,到2021年可分为4个阶段,当然现在增加了诸如AutoFAS等自动化机器学习的更新的模型阶段
3.1 早期
第一代:
人工规则策略,可以基于后验统计,构建一个人工规则。比如融合item的历史CTR、CVR、类目价格档、销量等比较核心的因子。人工规则准确率低,也没有个性化,也不可能实时更新。
第二代:
- 早期的则是逻辑回归(Logistics Regression,LR),因为其模型简单和有一定的模型表达能力,可以进行在线的更新和模型打分,因此应用十分广泛。
- 后期则是演变到了以GBDT为代表的树模型,相比LR,其个性化表达能力更加突出,结构简单,成为了各大公司的排序宠儿。
- 再往后则是GBDT的演进版,XGB、Light GBM、GBDT+LR等技术,但其都是属于机器学习模型时代的优秀产物,其都是先在精排侧取得了不错的效果之后,过渡到粗排模型的。
3.2 基于向量内机的深度学习模型
这也是第三代,DSSM双塔内积深度模型,也是目前应用最广泛的粗排模型。它将user和item进行解耦合,分别通过两个Tower独立构建。从而可以实现item向量离线存储,降低线上predict延迟。
- item和user均离线存储。这个方案只需要计算user和item的内积即可,计算延迟低。由于user是离线存储的,故可以使用复杂的模型,提升表达能力。但user侧的实时性较差,对于用户行为不能实时捕捉。
- item离线,user实时。item相对user,实时性要求没那么高。由于一次打分是针对同一个用户的,故user侧只需要实时计算一次即可,速度也很快。目前这个方案使用较多
经典的DSSM模型优点很多,目前在粗排上广泛应用,其最核心的缺点就是缺乏特征交叉能力。正所谓成也萧何败萧何,正是由于user和item分离,使得DSSM性能很高。但反过来也是由于二者缺乏交叉,导致模型表达能力不足,精度下降。典型的精度和性能之间的trade-off。
3.3 交叉特征的深度学习模型
第四代,即考虑怎么交叉特征:
item和user隔离,导致二者没有特征交叉能力,模型表达能力弱。故又提出了以COLD为代表的第四代模型,轻量级MLP粗排模型。它通过SE block实现特征裁剪,并配合网络剪枝和工程优化,可以实现精度和性能之间的trade-off
参考文献:
推荐算法架构2:粗排
工业界(搜索 推荐)粗排模型一般怎么做?
工业界粗排扮演的角色和算法发展历程
[COLD]COLD: Towards the Next Generation of Pre-Ranking System
[FSCD-PreRank]Towards a Better Tradeoff between Effectiveness and Efficiency in Pre-Ranking: A Learnable Feature Selection based Approach
On Ranking Consistency of Pre-ranking Stage
[AutoFAS]AutoFAS: Automatic Feature and Architecture Selection for Pre-Ranking System