当前位置: 首页 > 科技观察

插图!推荐算法架构——RoughSorting_2

时间:2023-03-16 21:18:23 科技观察

1.整体架构RoughSorting是介于Recall和FineSorting之间的一个模块。它从recall中得到几万个候选item,输出成百上千个item进行finesorting,是accuracy和performance之间trade-off的典型产物。对于推荐池不大的场景,粗排序是可选的。粗排序的整体结构如下:2.粗排序的基本框架:样本、特征、模型。目前粗排序一般都是建模,基本框架也包括数据样本、特征工程、深度模型三部分。1.数据样本目前建模为粗排序。训练样本类似于精细排序。曝光点击被选为正样本,未被点击的曝光被选为负样本。但是,由于粗排序一般要面对几万个候选集,而精排序只有几百个候选集,解空间要大得多。仅使用曝光样本进行训练,但同时预测曝光和非曝光。存在严重的样本选择偏差(SSB问题),导致训练和预测不一致。与精排序相比,粗排序的SSB问题明显更为严重。2.特征工程中粗排序的特点也可以类似于精排序。由于其对计算延迟的要求很高,只有10ms~20ms,一般可以大致分为两类:共同特点:类似于精细排序,user,context,item三部分。特征是什么,如何处理,可以参考精细布局的特征工程部分。交叉特征:user和item之间的交叉特征对提高模型的准确率很有帮助。但由于交叉特征枚举过多,难以离线计算和存储。在实时评分中,不像用户特征只需要计算一次,延迟很高。因此,请谨慎使用交叉特征。3、深度模型粗排序目前已经基本建模,其发展过程主要分为四个阶段:第一代:人工规则策略,可以基于后验统计构建人工规则。例如,整合商品的历史CTR、CVR、品类价格区间、销量等核心因素。人工规则准确性低,不个性化,不能实时更新。第二代:LR线性模型具有一定的个性化和实时性,但模型过于简单,表达能力较弱。第三代:DSSM双塔内积深度模型。将user和item解耦,通过两个Tower独立构建。这样可以离线存储i??temvector,减少在线预测延迟。有两种主要范例:项目和用户都离线存储。该方案只需要计算user和item的内积,计算延迟低。由于用户是离线存储的,因此可以使用复杂的模型来提高表达能力。但用户端实时性较差,无法实时捕捉用户行为。物品是离线的,用户是实时的。与用户相比,项目对实时性的要求较低。由于一次打分是针对同一个用户的,所以用户端实时计算一次即可,速度也非常快。这种方案目前使用较多。第四代:item和user是隔离的,导致两者之间没有特征交叉能力,模型表达能力弱。因此,提出了以轻量级MLP粗排序模型COLD为代表的第四代模型。它通过SEblock实现特征裁剪,配合网络剪枝和工程优化,实现精度和性能的折衷。3.粗排序优化粗排序的几个主要问题:精度和特征交叉问题:经典的DSSM模型有很多优点,目前广泛应用于粗排序。它的核心缺点是缺乏特征交叉能力。俗话说,成功就是成功,失败就是失败。正是因为user和item的分离,DSSM的性能非常高。但反过来,也是由于两者缺乏交叉,导致模型表达能力不足,精度下降。准确性和性能之间的典型权衡。低时延要求:粗排序的时延要求高,一般只有10ms~20ms,远低于精排序的要求。SSB问题:粗排序的解空间远大于精排序。和finesorting一样,只使用exposuresamples,这会导致严重的样本选择偏差。1.精度提升精度提升的解决方案主要有精馏和特征交叉,主要问题是优化特征交叉问题。FinesortingDistillation以精排序模型为老师,对粗排序模型进行蒸馏学习,以提高粗排序效果。这已经成为当前粗分类训练的基本范式。FeatureCross特征交叉可以在特征层面实现,也可以在模型层面实现。特征层是手动构建交叉特征,可以作为模型的底层输入,仍然可以在一个独立的Tower中。在模型层面,使用FM或者MLP来实现自动交叉。主要方法有:特征蒸馏:教师和学生使用相同的网络结构,教师模型使用共同特征和交叉特征,学生只使用共同特征。学生可以从老师那里学到交叉特征的高级信息。添加交叉特征:在特征层手动构建交叉特征,并在独立的Towers中使用。由于交叉特征很难离线存储,实时计算空间也很大,所以这个独立的Tower不能太复杂。然后我们马上想到了wide&deep模型。深部依旧采用DSSM双塔,宽部采用交叉特征。轻量级MLP:特征交集在模型层面实现,无需独立细分。例如,COLD通过特征裁剪、网络剪枝和工程优化等方式来降低延迟,而不是依赖于独立的子塔。2.延迟降低准确性和性能一直是一个权衡,很多解决方案都是在两者之间找到平衡。粗排序的性能要求较高,其延时必须控制在10ms~20ms以内。有许多常见的性能优化方法。主要有以下几种方法:Featureclipping:比如COLD,先过滤掉不重要的特征,自然降低了整体的延迟。该层可以在模型内完成,以便可以对其进行个性化和实时更新。量化和定点:比如32bit减少到8bit,可以提升计算和存储性能。网络剪枝:网络剪枝包括突触剪枝、神经元剪枝、权重矩阵剪枝等方法,不再展开。Modeldistillation:modeldistillation,上面已经讲过了,不再展开。网络结构搜索NAS:使用更轻的型号,效果更好。您可以尝试在网络结构中搜索NAS。3.SSB问题粗排序的解空间远大于精排序。和finesorting一样,只使用exposuresamples,这会导致严重的样本选择偏差。您可以使用未曝光样本的精细评分来缓解SSB问题。作者简介谢阳仪,腾讯应用算法研究员。腾讯应用算法研究员。毕业于中科院,目前在腾讯从事视频推荐算法方面的工作。在自然语言处理和搜索推荐算法方面有丰富的经验。