推荐系统遇上深度学习(四)
今天分享的是 2017 年由 google 和 Stanford 共同发表的一篇论文《Deep & Cross Network for Ad Click Predictions》
摘要
特征工程在模型预测中至关重要。但是,经常需要人工特征工程或者暴力搜索(exhaustive searching)。DNN可以自动的学习特征交互,然而,它隐式的生成所有的特征交互,但并不是所有类型的交叉特征是有用的。本文中,我们提出了Deep&Cross Network(DCN)模型,它不仅保留了DNN模型的优势,还可以有效地捕获有限阶(bounded degrees)上的有效特征交叉。特别地,DCN显示的会在每一层都实现feature crossing,不需要人工特征工程,这相比于DNN模型增加的额外复杂度可以忽略不计。实验结果表明DCN在CTR预估数据集和稠密分类数据集上均取得了不错的效果。
#1. 引言
本文提出了DCN,可以显式进行特征交叉,避免人工特征工程。Cross Network由多个层组成,特征交互的阶数由隐层的深度决定。每一层基于当前层产生更高阶交互,并保持于先前层的交互。
#1.1 相关工作
FM将稀疏特征映射到低维稠密向量,通过向量内积学习特征交互。FFM模型更进一步,允许每个特征学习多个向量,其中每个向量与一个Field关联。遗憾的是,FM和FFM的浅层结构限制了模型的表达能力(注:模型的表达能力用来衡量参数化模型如神经网络的可以拟合的函数的复杂程度。),已经工作研究将FM扩展到更高阶,一个缺点就是大量的参数带来了不可预期的计算成本。DNN模型通过嵌入向量和非线性激活函数来实现高阶特征交互;残差网络(Residual Network)的成功使得训练更深的网络成为可能;Deep Crossing扩展了残差网络,通过叠加所有类型的输入实现自动的特征学习。
DNN是否是目前最高效的针对此类问题的建模方式成为了一个问题。在Kaggle上的很多比赛中,大部分的获胜方案都是使用的人工特征工程,构造低阶的组合特征,这些特征意义明确且高效。而DNN学习到的特征都是隐式的、高度非线性的高阶组合特征,含义非常难以解释。这揭示了一个模型能够比通用的DNN设计更能够有效地学习的有界度特征的相互作用。
针对上述问题,Wide&Deep被提出。它以交叉特征作为线性模型的输入,与DNN模型联合训练。然而,Wide&Deep的成功取决于正确的交叉特征的选择(仍依赖于人工特征工程),这是一个至今还没有明确有效的方法解决的指数问题。
(因此,希望在做提升模型精度和泛化能力的同时,降低或尽量不使用人工特征工程。)
#1.2
对于离散和连续特征都可以特征学习。
论文的主要贡献包括:
- 无需特征工程
- 网络结构简单且高效。多项式复杂度由 layer depth 决定
- 内存高效,易应用
- 实验结果表明,DCN比DNN模型有更低的logloss,而参数量少近一个数据级
#2
本章将讨论DCN的架构,DCN模型底层embedding 和 stacking 层。然后是 deep cross 层。随后是
#2.1
#2.2
8.5 - 9
#2.3
#2.4
9 - 9.5
#3.1
4.5 - 5
#3.2
#3.3
#4.1
#4.2
9 - 9.5
#4.3
#4.4
9.5 - 10
#4.5
#5
10 - 10.6