深度推荐模型--笔记二--Wide & Deep

深度推荐模型--笔记二--Wide & Deep

  • Wide & Deep的地位
  • 什么是Wide & Deep
  • 思考题
  • 参考

Wide & Deep的地位

深度推荐模型--笔记二--Wide & Deep_第1张图片
Wide & Deep处于一个居中的位置,一些模型都是根据它演化出来的,可以看到对wide部分进行改进出现了DCN和DeepFM;对Deep部分进行改进产生了AFM和NFM模型。

什么是Wide & Deep

顾名思义,模型就是由两部分组成:
Wide部分是线性模型,我理解为Y=wX+b。X特征部分包括原有特征和交叉特征。交叉特征(cross-product transformation)在wide部分很重要,可以起到添加非线性的作用。交叉特征可表示为:
深度推荐模型--笔记二--Wide & Deep_第2张图片
Cki非0则1,每个这样的连乘式,每组cki都至多只有两个为1,其余全为0,每个连乘式最多两个特征相乘。如此一来Wide增强了模型的 记忆性 Memorization。

Deep部分就是一个DNN前馈神经网络,这里的输入也是包括两部分,一部分是数值特征,一部分是类别特征(需要进行embedding操作),Deep部分可以通过学习稠密向量提高模型的泛化能力。如此一来Deep部分增强了模型的泛化性 Generalization。

思考题

  1. 在你的应用场景中,哪些特征适合放在Wide侧,哪些特征适合放在Deep侧,为什么呢?
    Wide:item id,user id
    Deep:年龄、性别、语言、民族、item的历史统计信息
  2. 为什么Wide部分要用L1 FTRL训练?
    模型中Deep的DNN部分使用的优化器是比较常规的AdaGrad。
    而Wide部分的优化算法(相当于优化器)则是使用了L1正则的FTRL(Follow-the-regularized-leader)L1 FTRL会让Wide部分的大部分权重都为0,这压缩了模型权重,也压缩了特征向量的维度。Google的应用场景会产生海量的权重,L1 FTRL能有效的过滤其中的稀疏特征。
  3. 为什么Deep部分不特别考虑稀疏性的问题?
    从源头开始Deep部分的数据就不会是稀疏的,Deep部分的输入是数值类特征和已经降维并稠密化的Embedding向量,所以Deep部分不存在严重的特征稀疏问题。

参考

①datawhale组队学习-DeepRecommendationModel:
https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecommendationModel

②一文搞懂Wide&deep:https://zhuanlan.zhihu.com/p/147054851

③Wide & Deep算法介绍:https://blog.csdn.net/suspend2014/article/details/104344475

④详解 Wide&Deep 推荐框架:https://zhuanlan.zhihu.com/p/57247478

⑤见微知著,你真的搞懂Google的Wide&Deep模型了吗?:https://zhuanlan.zhihu.com/p/142958834

你可能感兴趣的:(深度学习)