每周一文(九)google wide&deep模型

契机

将一些显式的原始以及人工构造的交叉特征放到wide侧进行类似LR模型的操作,从而完成memorization的功能,这些特征已经被专家确定是对最终的结果有很大影响;将一些复杂特征,比如数值类型或者embedding等特征统一放到deep侧来提取更加高阶的特征,从而完成generalization的功能。

模型结构

模型核心结构如下所示:
在这里插入图片描述
这个图其实并不是特别直观,甚至在实际应用中都没有严格遵循上图所画的结构。上图的意思是wide侧和deep侧之间特征是严格分开的,但实际应用中模型的结构如下图所示,可以发现"User Installed App"和"Impression App"在wide和deep侧都有出现,只不过wide侧用到的特征是这两个特征one-hot的交叉特征,deep侧用到的特征是这两个特征的embedding。
在这里插入图片描述
这里值得注意的是,wide侧梯度更新的方法是L1类型FTRL,deep侧梯度更新的方法是adagrad。这样做的原因也是根据两侧特征来考虑的,因为wide侧特征维度比较庞大而且很稀疏,这时采用L1类型FTRL能够最大程度地将绝大部分的权重都降低至0,这样能够极大节省计算量;deep侧需要更加精准地完成参数更新,因而必须要采用更精准的梯度更新方法。

核心思想

文章给出的核心思想在于有些显式的特征用deep来学习,并不能学的更好,因为有可能模型可能会学偏,理论上如果所有的交叉特征都在训练样本中出现过,deep侧的意义并不大,deep侧的任务就是用来学习更加抽象的、交叉特征捕捉不到的特征。

wide & deep还有一个极大的优点在于两侧的参数可以分开更新,因为wide侧的特征对于线上数据的分布更加敏感,可以实时地将线上数据喂到wide侧进行wide侧参数的更新,而且wide侧参数较少,更新起来也比较方便。而deep侧模型较为抽象,这时没必要更新地这么频繁。

参考

  1. wide & deep paper
  2. 王喆wide & deep详解
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值