「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用


「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用
本文插图
本文经授权转载自公众号: 花椒技术
关于作者
王洋 , 南洋理工大学硕士毕业 。 现于花椒智能工程组担任算法工程师 。 主要负责直播推荐算法研发 , 直播图像识别算法研发等工作 。 对推荐排序算法有很深的理解 。
排序算法概述
现代推荐系统一般分为召回和排序两个阶段 。 召回阶段一般会用一些成本低、速度快的模型从十万、百万量级的候选集中初步筛选 , 留下千、百个;然后在排序阶段用更加精细的特征和复杂的模型来进行精排 , 最终留下topK个 。
近十年间 , 业界排序模型的发展可以说是一日千里 , 从千篇一律的LR , 到2010年FM的提出 , 再到2014年Facebook提出的树模型GBDT , 这几年可以看成是现代推荐系统的上半场;
而2015年至今可以看成是飞速发展的下半场 , 几年之间 , 以DNN等模型为代表的深度学习网络 , 如雨后春笋般出现 , 各种模型架构、特征交叉方式层出不穷 , 各种新的idea、trick令人眼花缭乱 , 而深度学习也逐渐成为了CTR、推荐领域的主流方法 。
本文将沿着这一路线 , 对这些排序模型进行简单的介绍、梳理和总结 。
「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用
本文插图
一、传统模型
1. LR
在深度学习崛起之前 , LR以其简单、速度快、可解释性强的优势 , 几乎垄断了早期的CTR、推荐领域 。
「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用
本文插图

  • 直观来讲 , LR模型目标函数的形式就是各特征的加权和 , 再通过sigmoid函数将结果映射到0-1之间来表达用户点击某个物品的概率 , 简单易懂 , 而且实现时可以并行 , 速度快 。
  • 此外 , 通过观察学习到的各特征权重 , 我们可以轻易得知哪些特征比较“重要” , 在预测出现偏差的时候 , 也可以很容易看出哪些因素影响了结果 , 这就是为什么说它可解释性强的原因 。
  • 然而LR的缺点也很明显:由于它是简单的线性模型 , 就不能处理特征和目标之间的非线性关系 , 而且特征之间并不是完全独立的 , 有些特征交叉使用会有特别的效果 。 因此为了让模型有一定的非线性 , 当时的数据科学家需要手工做很大量的特征工程 , 比如连续特征离散化、特征之间的交叉等 。 但想要提取出高效的交叉特征 , 需要充分了解数据和场景 , 人力成本较高 , 而且再有经验的工程师也难以穷尽所有的特征交叉组合 。
既然手工很难 , 能不能自动寻找特征交叉组合或者借助模型进行呢?后几年中出现了以FM、GBDT为代表的两种自动特征交叉方法 。
2. FM/FFM
针对LR中特征交叉的问题 , 有人提出了下面的多项式模型:
「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用
本文插图
从公式可以看出 , 模型对所有特征进行了两两交叉 , 并对所有的特征组合赋予了权重 。
但这种暴力的方法存在着下面两个问题:
  • 现代推荐系统中往往包含大量稀疏的特征(如id类) , 而交叉特征的维度是原始特征维度的乘积 , 并且当且仅当两个特征值都为非0时 , 其对应的组合权重才会被更新到 , 这会使得大部分交叉特征的权重缺乏有效的数据进行训练 , 无法收敛 , 而且权重参数的数量直接上升 , 极大增加了训练复杂度 。
  • 无法泛化到未曾在训练样本中出现过的特征组合中
针对上面两个问题 , 2010年德国康斯坦茨大学的Steffen Rendle提出了FM(Factorization Machine)