Wide & Deep模型

Memorization 和 Generalization是推荐系统很常见的两个概念。

  • Memorization指的是通过用户与商品的交互信息矩阵学习规则,Generalization则是泛化规则。
  • Memorization趋向于更加保守,推荐用户之前有过行为的items。相比之下,generalization更加趋向于提高推荐系统的多样性(diversity)。
  • Memorization只需要使用一个线性模型即可实现,而Generalization需要使用DNN实现。(左边的wide部分(一个简单的线性模型),右边的deep部分(一个典型的DNN模型))
    推荐系统-task04-Wide&Deep
    wide部分是一个广义的线性模型,输入的特征主要有两部分组成,一部分是原始的部分特征,另一部分是原始特征的交互特征(cross-product transformation),对于交互特征可以定义为: ϕ k ( x ) = ∏ i = 1 d x i c k i , c k i ∈ 0 , 1 \phi_{k}(x)=\prod_{i=1}^d x_i^{c_{ki}}, c_{ki}\in {0,1} ϕk(x)=i=1dxicki,cki0,1
    Deep部分是一个DNN模型,输入的特征主要分为两大类,一类是数值特征(可直接输入DNN),一类是类别特征(需要经过Embedding之后才能输入到DNN中),Deep部分的数学形式如下: a ( l + 1 ) = f ( W l a ( l ) + b l ) a^{(l+1)} = f(W^{l}a^{(l)} + b^{l}) a(l+1)=f(Wla(l)+bl)

Wide部分与Deep部分的结合

W&D模型是将两部分输出的结果结合起来联合训练,将deep和wide部分的输出重新使用一个逻辑回归模型做最终的预测,输出概率值。联合训练的数学形式如下: P ( Y = 1 ∣ x ) = δ ( w w i d e T [ x , ϕ ( x ) ] + w d e e p T a ( l f ) + b ) P(Y=1|x)=\delta(w_{wide}^T[x,\phi(x)] + w_{deep}^T a^{(lf)} + b) P(Y=1x)=δ(wwideT[x,ϕ(x)]+wdeepTa(lf)+b)

操作流程

**Retrieval **:利用机器学习模型和一些人为定义的规则,来返回最匹配当前Query的一个小的items集合,这个集合就是最终的推荐列表的候选集。

Ranking:

收集更细致的用户特征,如:

  • User features(年龄、性别、语言、民族等)
  • Contextual features(上下文特征:设备,时间等)
  • Impression features(展示特征:app age、app的历史统计信息等)

将特征分别传入Wide和Deep一起做训练。在训练的时候,根据最终的loss计算出gradient,反向传播到Wide和Deep两部分中,分别训练自己的参数(wide组件只需要填补deep组件的不足就行了,所以需要比较少的cross-product feature transformations,而不是full-size wide Model)

  • 训练方法是用mini-batch stochastic optimization。
  • Wide组件是用FTRL(Follow-the-regularized-leader) + L1正则化学习。
  • Deep组件是用AdaGrad来学习。

训练完之后推荐TopN

相关文章:

  • 2021-06-30
  • 2021-08-04
  • 2022-12-23
  • 2021-10-16
  • 2022-12-23
  • 2021-08-25
  • 2021-09-28
猜你喜欢
  • 2021-04-04
  • 2021-08-22
  • 2021-07-30
  • 2021-05-07
  • 2021-06-28
  • 2022-01-02
  • 2021-11-01
相关资源
相似解决方案