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编码的输入向量 xRn\mathbf x\in R^n,

y^NFM(x)=w0+wx+f(x)\hat{y}_{N F M}(\overrightarrow{\mathbf{x}})=w_{0}+\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}+f(\overrightarrow{\mathbf{x}})

第二项为一阶特征。
与FM不同, NFM的第三项对交叉特征进行建模, 它是一个多层前馈神经网络, 包含Embedding层,Bi-Interaction层,Hidden层,输出层。
CTR模型:NFM
(1)Embedding层
全连接层,把特征映射到稠密的向量表示,此外,对于0值的 xix_i 进行忽略。
CTR模型:NFM
这里,Embedding向量和输入的特征值相乘,可以统一处理实值特征。

其中, viRkv_i\in R^k.

(2)Bi-Interaction 层
CTR模型:NFM
将一组Embedding向量(即一个矩阵)转换成一个向量。\odot是逐元素乘法,

CTR模型:NFM
Bi-Interaction 层并没有引入任何额外的模型参数;
Bi-Interaction层可以在线性时间有效计算:
CTR模型:NFM
由于,输入 x 的稀疏性, 可以在O(knx)O(kn_x)的时间内计算Bi-Interaction pooling , nxn_x 表示输入的非零项的数量。

求导运算:
CTR模型:NFM
(3)隐层
CTR模型:NFM
(4)输出层
CTR模型:NFM
(5)最终模型
CTR模型:NFM

模型比较
如果把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 。

CTR模型:NFM
BN的影响:
CTR模型:NFM
采用了 BN 之后:

训练误差更快的收敛,且收敛到更低的水平;

验证误差稍微改进,但是改进幅度没有训练误差改进幅度大;

学习过程更加不稳定,如:蓝色线的波动更大。这是由于 dropout 和 BN 一起使用的原因。

由于 dropout 随机丢弃神经元,这导致 BN 的输入不断的随机被改变。

评估dropout:
CTR模型:NFM

评估模型结构:
每个隐层都采用 ReLU **函数,维度为 embedding 维度相同。
CTR模型:NFM
只有1层隐层的NFM效果最好。
其他模型结构:如塔形(隐层维度递减)、残差单元,结果模型的表现仍然没有提高。

(2)预训练
参数初始化能够极大的影响DNN 的收敛和性能,因为基于梯度的优化算法只能为 DNN 提供局部最优解。如:使用 FM 学习的 embedding 向量来初始化模型能够显著提升 Wide&Deep 和 DeepCross 模型的收敛速度和模型性能。
CTR模型:NFM
结论:
预训练的 NFM-1 的模型训练很快收敛,仅仅 5个epoch 就能达到随机初始化NFM-1 的40个 epoch (启用 BN )的效果
预训练并不能改善 NFM 的验证误差,且随机初始化效果更好。


参考:

  1. Neural Factorization Machines for Sparse Predictive Analytics∗;
  2. CTR模型汇总