CTR模型:NFM
1. 简介
FM模型可以捕捉二阶特征,但只能线性组合,无法学习非线性关系。
DNN虽然可以学习非线性特征交互,但深度网络难于训练。
NFM(Neural Factorization Machines for Sparse Predictive Analytics∗)模型在2017年被提出。
该模型结果FM二阶特征交互的线性,以及DNN高阶特征交互的非线性。
FM 是NFM的特例,和Wide & Deep, Deep Crossing相比, NFM网络结构更浅,预测能力更强。
NFM模型引入了二阶交叉池化层,在二阶交叉池化层上方堆叠非线性全连接层。
和FM方法相比,NFM可以视为深层的FM,它在FM的基础上提升了高阶特征交叉和非线性特征交叉建模的能力,提升模型的能力。
与传统DNN方法,仅将底层Embedding向量拼接或者取均值相比, 二阶交叉池化层对交叉信息进行编码,为后续的全连接层提供更有意义的信息。
2. NFM模型
经过one-hot编码的输入向量 ,
第二项为一阶特征。
与FM不同, NFM的第三项对交叉特征进行建模, 它是一个多层前馈神经网络, 包含Embedding层,Bi-Interaction层,Hidden层,输出层。
(1)Embedding层
全连接层,把特征映射到稠密的向量表示,此外,对于0值的 进行忽略。
这里,Embedding向量和输入的特征值相乘,可以统一处理实值特征。
其中, .
(2)Bi-Interaction 层
将一组Embedding向量(即一个矩阵)转换成一个向量。是逐元素乘法,
Bi-Interaction 层并没有引入任何额外的模型参数;
Bi-Interaction层可以在线性时间有效计算:
由于,输入 x 的稀疏性, 可以在的时间内计算Bi-Interaction pooling , 表示输入的非零项的数量。
求导运算:
(3)隐层
(4)输出层
(5)最终模型
模型比较
如果把Bi-Interaction层替换成拼接成,NFM退化成 Wide & Deep 模型,拼接操作的不足:无法处理特征交互关系,wide&deep仅仅依赖后续的更高层来捕获特征交互,而深层网络难于优化和训练。
因此,Bi-Interaction层在底层捕获的二阶特征交互,使得后续层学习更高阶特征交互时容易。
3. 实验结果
(1)数据集
Frappe 数据集:给出了不同上下文时用户的 app 使用日志记录,一共包含 96203 个 app 。
除了 userID, appID 之外,每条日志还包含8个上下文特征:天气、城市、daytime(如:早晨、上午、下午) 等。
采用 one-hot 编码之后,特征有 5382 维;label = 1 表示用户使用了 app 。
BN的影响:
采用了 BN 之后:
训练误差更快的收敛,且收敛到更低的水平;
验证误差稍微改进,但是改进幅度没有训练误差改进幅度大;
学习过程更加不稳定,如:蓝色线的波动更大。这是由于 dropout 和 BN 一起使用的原因。
由于 dropout 随机丢弃神经元,这导致 BN 的输入不断的随机被改变。
评估dropout:
评估模型结构:
每个隐层都采用 ReLU **函数,维度为 embedding 维度相同。
只有1层隐层的NFM效果最好。
其他模型结构:如塔形(隐层维度递减)、残差单元,结果模型的表现仍然没有提高。
(2)预训练
参数初始化能够极大的影响DNN 的收敛和性能,因为基于梯度的优化算法只能为 DNN 提供局部最优解。如:使用 FM 学习的 embedding 向量来初始化模型能够显著提升 Wide&Deep 和 DeepCross 模型的收敛速度和模型性能。
结论:
预训练的 NFM-1 的模型训练很快收敛,仅仅 5个epoch 就能达到随机初始化NFM-1 的40个 epoch (启用 BN )的效果
预训练并不能改善 NFM 的验证误差,且随机初始化效果更好。
参考: