BLOG

个人博客,记录学习与生活

Wide&Deep

Published Oct. 27, 2020, 2:36 p.m. by kkk

1. CTR问题

CTR(Click Throght Rate),也称点击率预测问题,尤其是在广告方面,指的是每次对广告的点击情况预测,输出就是点击或者不点击,是一个二分类问题

1.1 CTR需要做什么

CTR是一个二分类问题,对于输入,需要产生一个概率值输出,作为对该广告的点击率预测。

1.2 与TopN推荐区别

CTR: CTR是为了得到某个用户或者某类用户对于一堆广告(商品)的点击率预测,然后结合广告(商品)的出价用于广告(商品)排序

TopN推荐: TopN推荐是通过预测用户对一类商品的相似性(评分、感兴趣程度),然后得出包含$N$个商品的推荐商品表

2. Wide&Deep

Wide&Deep是Google于2016提出的用于推荐系统的算法,可用于CTR、TopN推荐1

首先提一下推荐系统中两个常见概念:MemorizationGeneralization。Memorization指记忆能力,通过用户、商品交互信息矩阵学习规则的效果;Generalization指泛化能力,模型对于未学习样本的泛化能力。

Wide&Deep模型中,从名字很好看出,包括Wide和Deep两部分,其中Wide是一个广义线性模型Deep是一个DNN模型,前者用于Memorization,后者用于Generalization。通过将两个模型的输出作为输入,通过一个Dense层处理,产生最后的输出。一个示例如下图(论文中的图):

在推荐系统中,Wide&Deep用于排序层,对于召回的若干候选集,通过引入更多的特征,将候选集中的商品进行排序、筛选、推荐

其实提供的更是一种框架和思路,比如具有Wide和Deep层的设置并不是固定的,可以使用更加高级、复杂的结构,或者更加贴合特征、业务的结构。

具体介绍见论文

Wide&Deep通过联合训练,模型最终输出为: $$ P(Y=1\vert x) = \sigma(w_{wide}^T[x, \phi(x)] + w_{deep}^Ta^{(l_f)} + b) $$ 解释

  • $[x, \phi(x)]$是原始特征和交叉特征,
  • $w_{wide}, w_{deep}$分别是Wide和Deep模型(最后一层)的权重
  • $\sigma$是激活函数,$b$偏置,由于联合训练,Wide层不需要单独再加偏置
  • $\sigma$中第一部分是Wide层,第二部分是Deep层
  • $a^{(l_f)}$是Deep层最后一层的输出

3. 代码实践

见本人Github页面Deep&Wide

模型可视化图如下(上述代码中生成):



  1. Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems[C]//Proceedings of the 1st workshop on deep learning for recommender systems. 2016: 7-10. 


Share this post
< Pre: 矩阵分解和因子分解机 Pos: GBDT+LR >
4 comments
Similar posts
Add a new comment