推荐系统中为什么要有召回、粗排、精排

推荐系统中的召回和排序

在推荐系统中一般会分为召回和排序两个阶段:

召回

召回的目标是从千万级甚至亿级的候选中召回几千个item,召回一般由多路组成,每一路会有不同的侧重点(优化目标),如在广告中成熟期广告和冷启动广告分为两路召回(如果广告比较多,还可能分冷热广告分别召回)。在推荐系统,不同路可能代表了不同的优化目标,如喜欢、关注、观看时长、评论这些都可以分不同的路召回。

目前召回常用的方法有:协同过滤、FM、FFM、图模型、双塔模型、还有YouTube在2017年论文中提出的DNN模型、字节的Deep Retrieval算法等

在工业届,常常会用FM、双塔模型等先学习user embedding、和 item embedding,然后用ball tree、fast ball tree 等近似最近邻算法进行检索,加快效率

 

排序

排序阶段就是把召回的结果进行排序,把top k(k 一般都是个位数)结果作为推荐系统最终的输出。

排序阶段常用的算法:LR -> FM -> deepFM等

 

为什么要把排序分为精排和粗排?

把排序阶段分为粗排和精排,其实就是生成环境中成本和结果的一个平衡。进入排序阶段的候选集一般确实只有几千个,但是对于抖音、YouTube这种量级的应用来说,他们request是非常多的,依然不能上太复杂的模型和特征。

因此把排序分为粗排和精排:

粗排漏斗一般是: 几千 -> 几百

精排漏斗一般是:几百 -> 几个

这样精排可以把模型和特征做到极致,可以达到非常高的精度

 

召回和粗排的差别在哪里?

1. 建模目标不同

召回是漏斗的最上游,可以说是决定了推荐系统的上限

召回的目标是召回用户可能感兴趣的 item,会考虑多方面的因素

粗排是对召回的结果进行排序,top k 送入精排,常用的有两种建模方式:

1. 独立建模,如在在广告推荐中,粗排也是优化ecpm,在推荐中也是优化Finish、Staytime等

2. 对齐精排,用 leaning to rank 等方法去学习精排的序

 

推荐系统中为什么要有召回、粗排、精排

上一篇:Vue中常见的按键别名


下一篇:2021-09-07 刷题 119杨辉三角2