https://www.infoq.cn/article/XA055tpFrprUy*0UBdCb

 

1、Wide & Deep 模型

https://arxiv.org/abs/1606.07792 

https://blog.csdn.net/google19890102/article/details/78171283

计算广告中常用深度学习网络

在Wide & Deep模型中包括两个部分,分别为Wide部分和Deep部分,Wide部分如上图中的左图所示,Deep部分如上图中的右图所示。

wide模型:实际上,Wide模型就是一个广义线性模型, $y = w^T x+b$

deep模型:Deep模型是一个前馈神经网络

联合训练:同时训练Wide模型和Deep模型,并将两个模型的结果的加权和作为最终的预测结果:$P(Y = 1 | x) = \sigma(W^T_{wide}[x, \phi(x)] + W^T_{deep}a^{l_f} + b)$

优化方法:

wide模型:FTRL

deep模型:AdaGrad 

keras:http://www.atyun.com/18823.html

 

2、DeepFM模型

https://ask.hellobi.com/blog/wenwen/11840

https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7340413.html

https://github.com/ChenglongChen/tensorflow-DeepFM

计算广告中常用深度学习网络

FM部分:

$y_{FM} = <w, x> + \sum^d_{j_1 = 1}\sum^d_{j_2 = j_1 + 1}<V_i, V_j>x_{j_1} . x_{j_2}$

深度部分:

...

keras实现: https://blog.csdn.net/songbinxu/article/details/80151814

https://github.com/Hanszhuang/CTR_DeepModel_Keras/blob/master/model/DeepFM.ipynb

 

3、PNN模型

https://arxiv.org/pdf/1611.00144.pdf 

https://ask.hellobi.com/blog/wenwen/11934 

PNN,全称为Product-based Neural Network,认为在embedding输入到MLP之后学习的交叉特征表达并不充分,提出了一种product layer的思想,既基于乘法的运算来体现体征交叉的DNN网络结构,如下图:

计算广告中常用深度学习网络

Product Layer:

product思想来源于,在ctr预估中,认为特征之间的关系更多是一种and“且”的关系,而非add"加”的关系。例如,性别为男且喜欢游戏的人群,比起性别男和喜欢游戏的人群,前者的组合比后者更能体现特征交叉的意义。

product layer可以分成两个部分,一部分是线性部分lz,一部分是非线性部分lp。

z是线性信号向量,因此我们直接用embedding层得到,可以认为z就是embedding层的复制。 

有两种PNN的计算方法,一种叫做Inner PNN,简称IPNN,一种叫做Outer PNN,简称OPNN。定义Embedding的大小为M,field的大小为N,而lz和lp的长度为D1。

 

keras实现:https://github.com/Hanszhuang/CTR_DeepModel_Keras/blob/master/model/PNN.ipynb

 

4、Deep & Cross模型

https://arxiv.org/pdf/1708.05123.pdf 

https://nirvanada.github.io/2017/12/14/DCN/

 

 

 


多值离散特征的embedding解决方案:SparseTensor  (https://www.jianshu.com/p/4a7525c018b2