1. 概述

Deep Crossing[1]是微软在2016年提出的用于计算CTR问题的深度神经网络模型,Deep Crossing的网络结构对传统的FNN(Feedforward Neural Network)网络结构做了一些优化,使得其能够更适合处理CTR问题。文章距离现在已经比较久远,但是其思想在深度网络的发展过程中有着重要的指导意义。由LR模型中的特征工程,以及FM的成功经验来看,组合特征对于CTR问题有着重要作用,Deep Crossing网络围绕着特征组合,可通过网络自动进行特征组合,而无需大量的特征工程的工作。在Deep Crossing网络模型中,主要的优化点为:在Deep Crossing网络中增加Multiple Residual Units层,便于构建更深的网络。

2. 算法原理

2.1. Deep Crossing的网络结构

Deep Crossing的网络结构如下图所示:

从Deep Crossing的网络结构上看,整个网络由四种类型的层组成,分别为:第一种层为特征Embedding层,第二种层为Stacking层, 第三种层为Residual Unit层,第四种层为Scoring层。其中Embedding层用于将原始的稀疏特征转化为低维稠密特征;Stacking层将多个Embedding层的特征连接起来;Residual Unit层用于构建深层的网络;最后的Scoring层用于完成CTR的计算。

2.2. Deep Crossing网络的计算过程

Embedding层是由单层神经网络构成,假设第 j j j个输入特征 X j I ∈ R n j X_j^I\in \mathbb{R}^{n_j} XjIRnj,其中, n j n_j nj表示的是特征 X j X_j Xj的维度,此时,Embedding层的输出为:

X j O = m a x ( 0 , W j X j I + b j ) X_j^O=max\left ( \mathbf{0},\mathbf{W}_jX_j^I+\mathbf{b}_j \right ) XjO=max(0,WjXjI+bj)

其中, W j \mathbf{W}_j Wj事一个 m j × n j m_j\times n_j mj×nj的矩阵, b j ∈ R n j \mathbf{b}_j \in \mathbb{R}^{n_j} bjRnjX j O X_j^O XjO为第 j j j个特征的Embedding输出。当输入特征通过Embedding层后,进入到Stacking层,其输出为:

X O = [ X 0 O , X 1 O , … , X K O ] X^O=\left [ X_0^O,X_1^O,\dots ,X_K^O \right ] XO=[X0O,X1O,,XKO]

其中, K K K表示的是输入特征的个数。经过Stacking层后便是Multiple Residual Unit层,其结构图如下所示:

Residual Unit层最初是在ResNet[2]中提出的用于构建深层CNN的方法,也称为残差网络,在Deep Crossing对其做了修改,用MLP代替了原来的卷积核。对于上图中的结构可以表示为:

X O = F ( X I , { W 0 , W 1 } , { b 0 , b 1 } ) + X I X^O=\mathcal{F}\left ( X^I,\left \{ \mathbf{W}_0,\mathbf{W}_1 \right \},\left \{ \mathbf{b}_0,\mathbf{b}_1 \right \} \right )+X^I XO=F(XI,{W0,W1},{b0,b1})+XI

其中, W 0 , 1 \mathbf{W}_{0,1} W0,1b 0 , 1 \mathbf{b}_{0,1} b0,1是两层MLP的参数, F \mathcal{F} F表示的是一个映射函数,用于计算Residual Unit层的输出 X O X^O XO和输入 X I X^I XI之间的残差 X O − X I X^O-X^I XOXI。在ResNet中,残差网络的优点主要有:

  1. 通过残差网络可以构建深层网络。在传统的MLP,当网络加深之后,往往存在过拟合现象。而通过残差网络构建深层网络,可以减少过拟合现象的发生。
  2. 残差网络使用了ReLU激活函数取代Sigmoid激活函数可以有效防止梯度弥散,使得网络更容易收敛。

总的来说,就是通过Residual Unit可以构建更深的网络,同时网络的训练也会更容易收敛。经过Residual Unit层后便是Scoring层,Scoring层作为输出层,就是为了拟合最终的优化目标。最终的损失函数为:

l o g l o s s = − 1 N ∑ i = 1 N ( y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ) logloss=-\frac{1}{N}\sum_{i=1}^{N}\left ( y_ilog\left ( p_i \right )+\left ( 1-y_i \right )log\left ( 1-p_i \right ) \right ) logloss=N1i=1N(yilog(pi)+(1yi)log(1pi))

其中, i i i表示第 i i i个样本, N N N表示训练样本的个数, p i p_i pi表示的是网络的预测值。

3. 总结

Deep Crossing网络的两个特点是Deep和Crossing,首先,对于Deep,得益于残差网络的优点,Deep Crossing网络通过Multiple Residual Unit层构建足够深的深层网络;其次,对于Crossing,通过多层网络,可以自动学习到特征之间的交叉关系,而无需人工的参与。

参考文献

[1] Shan Y, Hoens T R, Jiao J, et al. Deep crossing: Web-scale modeling without manually crafted combinatorial features[C]//Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining. 2016: 255-262.
[2] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

Deep Crossing相关推荐

  1. 【搜索/推荐排序】NCF,DeepCross,Deep Crossing

    文章目录 1.NCF 1.1 问题:基于FM的问题 问题 动机:神经网络替代点积 1.2 NCF模型图 1.3代码 2. Deep Crossing:微软:ResNet 3.Deep&Cros ...

  2. 【推荐系统】:Deep Crossing模型解析以及代码实现

    Deep Crossing模型是由微软提出,在微软的搜索引擎bing的搜索广告场景当中,用户除了会返回相关的结果,还会返回相应的广告,因此尽可能的增加广告的点击率,是微软所考虑的重中之重. 因此才设计 ...

  3. 【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features

    文章目录 一.摘要 二.介绍 三.相关工作 四.搜索广告 五.特征表示 5.1 独立特征 5.2 组合特征 六.模型架构 6.1 Embedding层 6.2 Stacking层 6.3 Residu ...

  4. 2.Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features论文核心解读以及代码实现

    一.背景 微软于2016年提出的Deep Crossing可以说是深度学习CTR模型的最典型和基础性的模型.它涵盖了深度CTR模型最典型的要素,即通过加入embedding层将稀疏特征转化为低维稠密特 ...

  5. Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features【论文记录】

    交叉特征有很好的效果,但人工组合发现有意义的特征很难 深度学习可以不用人工挖掘特征,还可以挖掘到专家都没找到的高阶特征 特色在于残差单元的使用,特征的表示 1 摘要 automatically com ...

  6. Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features(2016)

    文章目录 Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features(2016) (0)个人小结 ...

  7. Deep Crossing——经典的深度学习架构

    Deep Crossing--经典的深度学习架构 论文地址 基本原理 网络结构图 代码实现 总结归纳 参考文献 论文地址 Deep Crossing: Web-Scale Modeling witho ...

  8. 推荐系统-Deep Crossing理论与python实现

    简介 2016年,微软提出Deep Crossing模型,旨在解决特征工程中特征组合的难题,降低人力特征组合的时间开销,通过模型自动学习特征的组合方式,也能达到不错的效果,且在各种任务中表现出较好的稳 ...

  9. 推荐系统4--AutoRec与Deep Crossing(改变神经网络的复杂程度)

    一,绪论 本篇是深度学习推荐系统第一篇,介绍Autorec和DeepCrossing 两个模型.前者是将深度学习的思想应用于推荐系统的初步尝试,后者是将深度学习框架在推荐系统中的完整应用. Autor ...

最新文章

  1. OMAP-L138核心板
  2. LUA GC 简单测试
  3. 北京通州拟3年培训技能人才5万人次 服务城市副中心行政办公区等
  4. 10个对Web开发者最有用的Python包
  5. css黑色字白色描边,css怎么设置字体白色描边
  6. mini2440烧写nor flash
  7. 去年购房者平均年龄为29.5岁 80后家庭人均居住面积最小
  8. C. Molly's Chemicals
  9. jQuery中eq与get的区别(整理)
  10. 2021年国内好用的可视化工具
  11. 域渗透——获取用户明文密码
  12. 用类描述计算机中cpu的速度和硬盘容量,用类描述计算机中CPU的速度和硬盘的容量。要求Java的应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。...
  13. 一个26岁女生的软件测试自学之路,从4k到月入过万
  14. LeetCode-55. 跳跃游戏
  15. android studio连接雷电模拟器调试
  16. scrapy_redis实现分布式爬取京东图书数据
  17. 2021年,微博打了一手好牌?
  18. 【互联网寒冬】经历裁员,拿20W被迫去大厂
  19. xdebug(32) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
  20. K8s工作总结(了解)

热门文章

  1. Linux常用命令(penguin)
  2. GitHub 热榜:天才黑客开源新项目,不到 1000 行代码,1400 Star!
  3. Keras基础自学二十(图像旋转,图像剪切,图像移动)
  4. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程(第二版)》江红 余青松 课后代码题详解...
  5. 第十五周翻译-《Pro SQL Server Internals, 2nd edition》
  6. java 字符 加密_Java 字符串的加密与解密
  7. dva的使用,附带一个Demo
  8. 深入浅出Linux操作系统指令与目录结构(二)
  9. 华为语音解锁设置_华为手机语音转文字怎么设置,如何完成音频在线转换
  10. Fintech趣店总部(厦门)技术招聘