推荐系统——排序

1. 概念

排序是推荐系统的第二阶段,从召回阶段获得少量的商品交给排序阶段,到排序阶段时,已经有了召回阶段生成的候选对象,通常是多路召回结果组合最终形成的候选库。排序阶段可以融入较多特征,从召回的商品中做进一步精细化的选择。

排序结算强调的是快和准,快指的是高效的反馈结果,准指的是推荐结果准确性高。

2. 排序阶段的建模目标

根据业务目标不断变化。

  • 早期,由于业务目标简单,通常聚焦于某一个指标来进行优化
  • 中期,会发现单一指标对整体的提升已经非常有限,并出现很多问题,此时会引入多目标排序。

3. 特征工程

基本思路(从前往后依次推进):

  1. 人工预判有效特征
  2. 离线评估重要性和覆盖率
  3. 训练模型离线评估
  4. 在线实验

常见基础特征:

  • 用户侧特征:性别、年龄、地域、购买力…
  • 商品侧特征:描述信息、价格、标签…
  • 上下文和场景信息:位置、页面、是否处于周末或节假日…
  • 交叉特征:用户侧特征和商品侧特征的交叉…
  • 用户行为特征:点击、收藏、购买、观看…

4. 算法框架

分类:

  • pointwise,按照单个样本进行学习,样本格式为:$$(x_i, y_k)$$
  • pairwise,按照有序对的方式进行学习,样本格式为:$$(, y_{ij})$$
  • listwise,按照有序序列的方式进行学习,样本格式为:$$(, s_m)$$

通常使用pointwise来做排序,因为更加直观、易于理解而且更加简单,如果预测目标是实数值就是一个回归问题,如果是概率值则是一个分类问题。pairwise, listwise则会考虑得更加精细。

常见模型

  • LR。通过学习用户点击行为
  • GBDT+LR。使用GBDT做自动特征工程
  • Wide&Deep。Wide层负责记忆,通常就使用LR,Deep层负责泛化,使用DNN
  • DeepFM。采取Wide&Deep框架,但将LR换成FM,从而构造二阶特征交叉组合

模型评估

主要是两个步骤:

  1. 离线评估。在事先准备好的验证集上进行数据验证,如果表现优于先前模型,则进行第二步。效果包含多个指标:准确率、覆盖率、多样性等
  2. 线上实验。直接对线上用户进行AB分桶测试,先小流量实验一段时间,一般在10天半月,对比实验组和对照组数据。如果在实验组上效果更好,则推到更多的用户;如果效果持续稳定,则推到全部用户。

5. 排序学习