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


小结
从最早的人工规则排序 , 发展到人工进行特征组合的LR模型 , 再发展到自动进行二阶特征组合的FM模型 , 到后面高阶特征自动组合的LR+GBDT , 这基本就是早期推荐系统排序模型的主脉络 。
再往后 , DNN模型的引入 , 标志着以深度学习为主的排序模型的崛起 。 纯粹的简单DNN模型本质上其实是在FM模型的特征Embedding化基础上 , 添加MLP隐层来进行隐式、特征非线性自动组合 。
下面我们将重点介绍近年来独领风骚的深度学习模型 。
二、深度模型
2015年之后 , 以DNN为代表的一系列深度学习模型逐渐出现 , 个人认为他们可以归结为两类:

  • 以Wide&Deep为代表的一系列模型 , 它们的共同特点是自动学习从原始特征交叉组合新的高阶特征 , 它们的区别在于wide部分或者deep进行了部分改动 。
  • 以多任务学习为基础的联合训练模型 , 以ESMM、MMOE等模型为代表 。
1. Wide&Deep类模型
这类模型的特点是双塔结构 , 即一边是以LR为代表的浅层模型(wide部分)用以学习低阶特征的表达 , 强调的是“记忆性”;另一边是以MLP为代表深层模型(deep部分) , 强调的是“泛化性” , deep部分的结构也大多可以分为下面几个模块:
  • raw input->embedding: 把稀疏特征映射为低维稠密的embedding向量的过程 。
  • input_layer:在这一层通常会对各特征的embedding会做一些聚合操作 。
  • input_layer->output: 通常会用几层MLP的全连接框架连接到softmax作为输出层 。
大多数模型在deep部分的区别只在于input_layer这一块 , 不同的模型在交叉方式(隐式/显式 , 元素级/向量级) , 或者特征之间的连接方式(concatenate/weighted sum/product/BI-interaction/attention 等)或显示特征交叉的阶数(二阶/高阶)之间会有所不同 , 以Wide&Deep、(x)DeepFM、DCN、DIN为例 , 下面会简要介绍这几种模型 。
这里先简单介绍下特征交互的方式:
  • 一种是类似于MLP的方式 , 因其特殊的结构天然就具有学习高阶特征组合的能力 , 并且引入了一定的非线性;但至于怎么发生交互组合的 , 发生了多少阶的交叉 , 我们并不清楚 , 而且这种建模是元素级的(bit-wise) , 也就是说同一个域对应的embedding向量中的元素也会相互影响 。 因此我们说这种特征交叉方式是“隐式的、元素级的” 。
  • 另一种与之对应的是类似于DeepFM, xDeepFM的方式 , 在模型结构中 , 明确设计一些子网络或者子结构 , 可以对任意高阶的特征组合进行表征 。 以FM为例 , 就是向量级的方式明确对特征二阶组合进行建模 , 这种我们称之为“显式的、向量级的” 。
Wide&Deep
「」一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用
本文插图
  • 模型wide部分长处在于学习样本中的高频部分 , “记忆性”好 , 对于样本中出现过的高频低阶特征能够用少量参数学习 。 但因为是LR模型 , 仍需人工进行特征交叉组合 。
  • 模型deep部分用于学习特征之间的高阶交叉组合关系 , 引入了“泛化性” 。 是一种隐式、元素级的特征交叉 。
  • 这种双塔框架结构的提出极大的促进了后续模型的发展
DeepFM

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