2.3.3 排序模块:粗排与精排

经过了召回模块对内容的多路召回截断后,内容数量从百万量级降低到了十万量级,这时需要用到推荐系统中最重要的模块——排序模块。我们接下来看一下排序模块是如何进一步对内容进行过滤的。

排序模块通常分为粗排精排两部分。粗排环节存在的原因是召回后的视频数量太多,需要在粗排环节利用简单的模型与少量用户、内容特征来对召回结果进行粗略的排序,在保证一定精准度的前提下减少视频数量,并输送到精排环节;而在精排环节,可以利用大量特征使用复杂的模型,尽可能地精准排序。可以这么说,粗排的最高优先级是快,精排的最高优先级是准确。

由于精排环节对模型精准度的要求较高,而机器学习模型本身是通用技术,那么各家短视频社区平台为什么还有推荐性能上的差异呢?这就涉及训练模型的样本选择与特征提取了,我们接下来介绍样本与特征的作用,并介绍当前主流的排序模型与各家通用的排序效果评估方案。

1.样本与特征

通常一个机器学习模型的学习路径是:首先在全局真实数据中选取一部分数据作为样本,在这个样本集上训练得出模型后,再应用到全局数据中去。从该路径可以看出,一个模型训练得怎么样,基本上是由挑选的样本质量决定的,样本如果是真实全局数据的无偏采样,那么训练出的模型则是靠谱的,但如果样本采集时本身就有一定的偏差,那么训练出的模型也很难“以偏概全”,去准确预测结果。

合适的样本选取是紧贴业务逻辑的,这非常考验技术人员对业务的理解能力,例如如果希望构建一个用户实时反馈模型,就不能拿用户前一天的浏览行为与相隔一天后的点击行为来进行组合,作为实时反馈的训练样本,这完全违背了“实时”的定义。所以对于样本的选择一定要符合业务逻辑,选取到合适的样本往往能够事半功倍。

特征是样本在各个评价维度上的指标,打个比方,我们要预测全校同学对某电影的喜好程度,我们选取了某个班级作为样本,而这个班级里各个同学的年龄、性别、身高、历史喜好影片等就是特征。具体选取样本的哪些特征也非常依赖于技术人员对业务的深刻理解,对用户行为的细致研究。针对特征的提取与选取,甚至发展出了“特征工程”这样的专业技术,虽然机器学习技术的发展带来了特征提取的自动化,但是对于推荐特征较多的复杂场景,还是需要人工参与进来选取出合适的特征。

对于短视频社区这样的业务形态,常见的基础特征包括:

□用户特征,如用户的年龄、地域、性别、商圈、家庭收入等;

□内容特征,如内容分类、标题、标签、创作者粉丝量等;

□环境特征,如LBS定位、手机型号、网络环境等;

□行为特征,如用户浏览、点击、收藏、转发等;

□交叉特征,如用户特征与内容特征的交叉等。

2.排序常见模型

在了解了样本与特征的基本概念后,接下来介绍排序的常见模型,最早是“线性模型+人工提取特征”,后期是“非线性模型+自动提取特征”,直到现在用的深度学习模型。这里重点介绍两类主流的排序模型,一类是当前在各平台应用时间最久,也是最简单的LR(Linear Regression)模型;另一类是目前应用较多,代表前沿技术趋势的深度学习模型。我们尽量避免出现复杂的数学公式,用图形与逻辑讲清楚模型的原理。

(1)LR模型类

1)LR即线性回归。LR是一种简单的线性模型,通过学习用户的点击行为来构建点击率预估模型,其原理如图2-12所示。

图2-12 LR原理图

图2-12中,正样本用圆圈表示,负样本用叉号表示,在遍历完所有样本结果后在坐标轴中标记正负样本结果,然后系统会尽量找出一条线性边界y=k1*x+b1来区分正负样本,使得在边界一侧都是正样本,另一侧都是负样本,那么这条线性边界便是由该样本集训练出的线性模型,其中k1与b1的具体值便是训练得出的结果,我们把这一过程形容为LR。在有了y=k1*x+b1这一线性模型以后,对于测试样本x0,我们将其代入线性模型公式,便能够得出预测结果到底是归属于正样本还是负样本。

将以上抽象模型套用到实际业务场景中,以预测用户A对某搞笑视频的点击率为例,“浏览并点击”标记为正样本,“浏览未点击”标记为负样本,通过分析用户A对其他搞笑视频的历史点击行为,得到预测模型后,便可预测用户A对当前搞笑视频的点击概率。

2)GBDT(Gradient Boosting Decision Tree,梯度提升决策树)+LR。GBDT+LR是对LR模型在特征环节上的升级,LR的特征都是彼此独立的,并不能反映特征彼此之间的联系,而特征的组合却可能是蕴含着一定信息含量的;GBDT能够处理特征之间的联系,原理是将特征彼此之间分组,通过迭代决策树的方法,将所有树的结论累加起来作为答案,然后将这些通过GBDT处理过后的特征再输送给LR模型,以期拥有更精准的分类。

(2)深度学习模型类

1)wide&deep。我们介绍一种通用的深度学习模型类型wide&deep,如图2-13所示,图形左侧是wide部分,其主要作用是从历史数据中挖掘特征之间的相关性,记住用户的历史兴趣,起到记忆作用;图形右侧是deep部分,其主要作用是发掘历史数据中没出现过的特征组合,寻找用户可能的新喜好,起到探索作用。通过将wide与deep两部分结合到一起,相当于既能够记住用户的历史兴趣,又能够探索到用户可能的新兴趣,且在两者之间做到平衡,该模型在工业界应用得比较广泛。

图2-13 wide&deep原理示意图

2)DeepFM。DeepFM模型是在wide&deep模型基础之上的优化,之前wide部分大多数时候采用的是LR模型,该模型只能解析互相独立的特征;而DeepFM在wide部分采用了FM模型,该模型能够自动构造二阶特征的叉乘,不仅能够保留特征与特征之间的关联信息,还能够挖掘出更多隐性特征,提高模型效果。

3.排序效果评估

模型排序结果的评估分以下三个步骤。

(1)离线评估

一般选取样本训练出排序模型后,会找到离线验证集,将模型输出结果与离线结果进行比较。这一过程需要技术人员和业务人员共同去把握,业务人员基于业务场景的需要去评估最相关的几个指标是否符合预期,技术人员要根据样本集选取的偏差情况来预估该模型是否可以拿到线上去做实验。

(2)线上小流量实验

离线评估通过后,会拿排序模型到线上进行AB测试,但初期为了不影响大盘,只会切一部分小流量,并采用控制变量法进行实验,一般观察1~2周(分策略优先级来定,影响较小的策略可以缩短实验时间),到时间后验证实验组和对照组的数据情况。

(3)线上扩量实验

线上小流量实验的实验组数据验证为正向后,就可以进行线上扩量实验,扩量实验一般按照5%→20%→50%→100%这样的节奏去推进。