DeepCrossing
DeepCrossing模型的应用场景
DeepCrossing模型的应用场景是微软搜索引擎Bing中的搜索广告推荐场景。用户在搜索引擎中输入搜索词之后,搜索引擎除了会返回相关结果,还会返回与搜索词相关的广告,这也是大多数搜索引擎的主要盈利模式。尽可能地增加搜索广告的点击率,准确的预测广告点击率,这也是DeepCrossing模型的优化目标。
针对该使用场景,微软使用的特征可以分为三类:
一类是可以被处理成one-hot或者multi-hot向量的类别型特征,包括用户搜索词、广告关键词、广告标题、落地页、匹配类型;
一类是数值型特征,包括点击率、预估点击率;
一类是需要进一步处理的特征,包括广告计划、曝光样例、点击样例等。严格地说,这些都不是独立的特征,而是一个特征的组别,需要进一步处理。例如,可以将广告计划中的预算作为数值型特征,而广告计划中的id作为类别型特征。
DeepCrossing模型的网络结构
为了完成端到端的训练,DeepCrossing模型需要解决以下问题。
- 离散类特征编码后过于稀疏,不利于直接输入神经网络进行训练,如何解决稀疏特征向量稠密化的问题
- 特征自动交叉组合的问题
- 在输出层中达成问题设定的优化目标
DeepCrossing模型分别设置了不同的神经网络层来解决以上的问题。
DeepCrossing模型结构如图所示,其网络结构主要包括4层:Embedding层、Stacking层、Multiple Residual Units层和Scoring层。
Embedding层:Embedding层的作用是将稀疏的类别型特征(one-hot向量)转换成稠密的Embedding向量。图中,Feature#2表示的是数值型特征,无需经过Embedding层直接进入Stacking层。
Stacking层:Stacking层的作用比较简单,就是把不同的Embedding特征和数值型特征拼接到一起,形成新的包含全部特征的特征向量。
Multiple Residual Units层:该层的主要结构是多层感知机,相比标准的以感知机为基本单元的神经网络,DeepCrossing模型采用了多层残差网络作为多层感知机的具体实现。通过多层残差网络对特征向量各个维度进行充分的交叉组合,使模型能够抓取到更多的非线性特征和组合特征的信息,进而使深度学习模型在表达能力上较传统的机器学习模型大为增强。
Scoring层:Scoring层作为输出层,就是为了拟合优化目标而存在的。对于CTR模型预估这类二分类问题,Scoring层往往使用的是逻辑回归模型,而对于图像分类等多分类问题,Scoring层往往采用softmax模型。
以上便是DeepCrossing的模型结构,在此基础上采用梯度反向传播的方法进行训练,最终得到基于DeepCrossing的CTR预估模型。
DeepCrossing模型对特征交叉方法的革命
DeepCrossing模型中没有任何人工特征工程的参与,原始特征经Embedding后输入神经网络层,将全部特征交叉的任务交给模型。相比之前的FM、FFM模型只具备二阶特征交叉的能力,DeepCrossing模型可以通过调整神经网络的深度进行特征之间的“深度交叉”,这也是DeepCrossing名称的由来。