🎯
type
status
date
slug
summary
tags
category
icon
password
1. 召回技术的发展历程
关于召回技术的发展大体可以分为 4 个阶段:
1.1 第一代召回技术
第一代以启发式规则为代表,大体可分为基于用户的协同过滤、 基于物品的协同过滤,基于模型的协同过滤(比如 MF 矩阵分解等),以基于 item 的协同过滤思想为例,根据两个item 被同时点击的频率来计算这两个 item 之间的相似度,然后推荐用户历史行为中各个 item的相似相关 item。这一类方法的优点是简单、性能较高,因此在实际的推荐场景中用途十分广泛,缺点是不能面向全量商品库来做检索,系统只能在用户历史行为过的商品里面找到侯选的相似商品来做召回,并且难以结合候选 item 的 Side Information(比如 brand,品类一些 id 信息),使得整个推荐结果的多样性差、对长尾商品的效果差,容易导致推荐系统出现“越推越窄”的问题,即系统总是给你推荐看过的或者买过的商品。
1.2 第二代召回技术
🎯
type
status
date
slug
summary
tags
category
icon
password
本文介绍了几种对样本流进行采样的方法,采样后可以减少参与训练的样本量,提升训练速度,同时尽可能保证效果。
1. 均匀采样和纠偏
这是最常见的采样方法,一般对负样本进行概率为
的均匀采样,这样可以减少的负样本量,大大提升训练的速度。同时,均匀负采样会让正负样本的差异变小,特别是长尾样本,因此会降低模型对这部分样本的区分度,所以在模型的泛化能力不足的情况下,这样做可以减少这些样本对模型的影响,优化一部分模型的泛化能力,当模型的泛化能力足够好的时候,均匀负采样就是纯粹的提升训练效率。由于采样后改变了正负样本的分布,因此需要对结果进行纠偏,通常有两种纠偏方法:
(1) serving 阶段纠偏,即用采样后的数据正常 training,在 serving 的时候进行纠偏。但这种方法非常不灵活,比如数据流在不同时间段的采样率不一样,或者构成数据流的不同路数据采样率不一样的时候,就无法在 serving 阶段进行纠偏。因此业界一般都是在 training 阶段进行纠偏;
(2) training 阶段纠偏,即在训练时,对模型的输出进行校正后再计算 loss 和梯度,保证模型的输出直接就是无偏的,在 serving 阶段无需再进行处理。这样可以非常灵活地根据时间或者不同路的数据流进行采样率的设计。