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)
来源:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/10711225.html