感觉自己对CTR的论文读的太少,因此后续会在专栏记录一下阅读论文的笔记和心得。

2016年Google发表了文章《Wide & Deep Learning for Recommender Systems》,本文主要记录了在读论文时的笔记和一些心得。

一、论文笔记

1、目的:同时解决Memorization和Generalization问题。

Memorization:根据人工经验和业务背景,选择可能对label有较大影响的原始特征和组合特征输入到模型,让模型通过训练记忆数据中重要的特征。典型代表是LR,使用大量的原始特征和交叉特征作为输入。优点是可解释性高、实现快速高效。缺点是人工设计较多,输入过于细粒度的特征交叉会导致过拟合,模型记忆的只有部分通过训练得到高权重的组合特征而已,对于输入中未添加过的组合特征以及添加过的但是由于训练数据中共现频次为0的组合特征,模型的权重都为0,即没有记忆,无法“扩展”。

Generalization:为高维稀疏的输入特征学习低维稠密的Embedding向量表示,然后将Embedding向量输入到神经网络做深层交互。正如NLP里的词向量一样,通过Embedding将特征向量化,显示特征之间相关性,使模型具备了“扩展”的能力。Generalization的代表是FM、DNN。其优点是人工设计少,可以“扩展”。缺点是存在过度扩展的可能,例如在推荐系统中,用户评分矩阵极度稀疏,大部分的user和item应该是没有关联的,但是经过Embedding向量表示,大部分的user和item之间的评分预测并不为0。

2、模型结构图:

3、预测公式:

其中

是sigmoid函数,
是原始特征,
是组合特征,
是wide part的权重参数,
是deep part最后一层激活值
的权重参数。

在具体实现时,wide侧的输入是一些原始特征尤其是类别特征以及组合特征,数值型特征如年龄也会分桶转化为类别输入,分桶的目的在于CTR问题label与数值型特征并不会是线性关系,往往与分段有关。比如年龄对是否下载腾讯动漫APP的影响,20岁与22岁无差别,但是20岁与30岁差别就挺大的。deep侧主要是输入原始的数值型特征、类别特征(类别多的做Embedding),然后在深层神经网络做隐式深层交互。

4、具体实现:

TensorFlow官方有实现的类tf.estimator.DNNLinearCombinedClassifier。但是我运行官方的TensorFlow Wide & Deep Learning Tutorial总是出错,所以我换了其他的教程

TensorFlow Wide & Deep Learning Tutorial(广泛深入的学习教程)​cloud.tencent.com

还有不使用TensorFlow的numpy实现:

石塔西:用NumPy手工打造 Wide & Deep​zhuanlan.zhihu.com

二、心得:

这里主要记录了在阅读论文之前和阅读过程中产生的一些问题以及自己的理解。

问题1:为啥wide侧是记忆,deep侧是扩展?

答:wide侧输入特征固定,后续并没有再进行特征交叉,且历史上未出现的特征对则对应权重会是0,因此是记忆。deep侧由于使用低维稠密向量表示特征,特征之间的相关性就可以由向量之间计算得到,如计算向量的余弦夹角。由于向量是低维稠密的,因此任意两个特征之间的相关性基本不为0,甚至会有想不到的特征之间相关性很高,这样就具备了良好的扩展能力。PS:我也不知道当初为什么明白NLP里的词向量原理以及推荐系统的矩阵分解,却不明白deep侧可以扩展,就像初中高中有些数学题答案里面有显然二字,当时想不通,最后弄明白了再一想可不就是显然嘛,但是当时为什么想不到就不知道了。可能是当时没有这样的思维方式吧。

三、总结:

Wide&Deep论文的原理并不复杂,我的时间主要耗在那个numpy实现上。建议阅读论文原文

https://arxiv.org/abs/1606.07792​arxiv.org

,然后看看一些详解即可。

石塔西:看Google如何实现Wide & Deep模型(1)​zhuanlan.zhihu.com

刺猬:详解 Wide & Deep 结构背后的动机​zhuanlan.zhihu.com

google bigtable论文原文_CTR论文笔记[1]:Wideamp;Deep相关推荐

  1. Linguistically Regularized LSTM for Sentiment Classification 论文原文、代码实现以及翻译

    论文原文地址 论文代码 摘要 本文主要讨论句子级情感分类.虽然近来已经有多种神经网络模型被提出,但是,以往的模型要么依赖于昂贵的短语级标注,大多数模型在仅用句子级标注训练时性能明显下降:要么没有充分运 ...

  2. 【论文阅读】Neural Transformation Learning for Deep Anomaly Detection Beyond Images 异常检测,可学习变换,时间序列,表格数据

    本博客系博主阅读论文之后根据自己理解所写,非逐字逐句翻译,预知详情,请参阅论文原文. 论文标题:Neural Transformation Learning for Deep Anomaly Dete ...

  3. 大数据三篇论文—Google Bigtable中文版

    Google Bigtable 中文版 Abstract 1 Introduction 2 Data Model 3 API 4 Building Blocks 5 Implementation 5. ...

  4. Google三驾马车论文原文

    Google File System中文版 英文版 https://static.googleusercontent.com/media/research.google.com/zh-CN//arch ...

  5. Google学术搜索 学术论文搜索的利器

    Google学术搜索网址  http://scholar.google.com/ 这是一个英文网址,而不是下面文章所说的中文网址.但如果你在搜索框中输入中文,将有中文搜索结果出现. 百度无法具备的优势 ...

  6. R-CNN论文解读/总结 详细笔记

    此篇为目标检测经典论文 R-CNN系列论文:R-CNN (Rich feature hierarchies for accurate object detection and semantic seg ...

  7. 由粗到精学习LVI-SAM:论文原文解析

    作者丨Alvin一路向东@知乎 来源丨https://zhuanlan.zhihu.com/p/463778905 编辑丨3D视觉工坊 前言 本文是LVI-SAM学习系列的第三部分,在深入分析LVI- ...

  8. DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理)

    DL之CNN:关于CNN(卷积神经网络)经典论文原文(1950~2018)简介总结框架结构图(非常有价值)之持续更新(吐血整理) 导读       关于CNN,迄今为止已经提出了各种网络结构.其中特别 ...

  9. 论文原文解读汇总(持续更新中)

    以下是自己对一些论文原文的解读: 机器学习: <XGBoost: A Scalable Tree Boosting System> <CatBoost:gradient boosti ...

最新文章

  1. mysql 5.7 编译_Mysql5.7版本编译安装及配置
  2. 通过抓包获取服务器的IP地址
  3. docker 自定义网桥
  4. 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. c++ 可视化界面_这些算法可视化网站助你轻松学算法
  6. ADO 连接数据库的几种方式
  7. 鸿蒙智慧屏桌面,全球首发国产鸿蒙操作系统,荣耀智慧屏现场亲测
  8. MySQL数据库学习资料(七)
  9. 自动驾驶的“第三眼美女“什么时候才能出现?
  10. 这次把怎么做好一个PPT讲清-画图篇
  11. English Reading - Thai cave rescue boys relive 'moment of miracle'
  12. UOS服务器操作系统部署EKL
  13. CSS实现当鼠标移入或者移出时实现动画过渡效果
  14. 房贷利息怎么算, 千万别被砖家叫兽误导
  15. vue3组合式api基础(常用)
  16. C语言switch为什么不执行,求解,为什么switch中的语句不执行?
  17. 女生学计算机类还是电子信息类好,电子信息类专业的女生即将面临大二专业分流,电子信息、通信和光电信息科学与工程选哪个好?为什么?...
  18. Chrome 夜间模式扩展-Change Colors
  19. 物联网感知层的IPv6协议标准化动态
  20. mysql数据库双向实时同步

热门文章

  1. leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
  2. 【EasyUI tree】Python 异步菜单树的实现
  3. 使用Docker容器的十大误区
  4. 【Servlet】总结 JSP的四大域对象、Servlet的四个作用域:pageContext、request、session、application
  5. netty系列之:channelHandlerContext详解
  6. 在Spring Boot中配置web app
  7. 全局中断_实时性迷思(3)——80%时间屏蔽了中断,实时性还有救么?
  8. MySQL(十一)视图及存储过程
  9. 使用飞书webhook发送图片消息
  10. Matlab之logspace