论文笔记之Deep Learning over Multi-fi

2020-05-30  本文已影响0人  小弦弦喵喵喵

Deep Learning over Multi-field Categorical Data – A Case Study on User

目标:CTR预估。
本文提出了FNN(Factorisation Machine supported Neural Network)和SNN(Sampling-based Neural Network)。

Factorisation-machine supported Neural Networks (FNN)

可以看到,最底层是field-wise one-hot的。
文中从上到下对整个模型进行了说明。最上面一层用sigmoid来输出预估的CTR值

l2的值为

需要注意的是文中激活函数用的是tanh而不是relu。
l1的值为

z为

w0(1维)是全局bias,对应FM中的w0。n是field的个数。zi(k+1维)是FM中第i个域的参数向量。(zi其实就是特征域i对应的embedding向量加上一个wi)

x[starti : endi]确定了第i个域中的所有特征。W0((k+1) * (endi-starti+1)维)为特征域i对应的所有权重。
Wi0由FM中的wi(1维实数,特征域是几维的就有几个)和FM中的vi(k维向量,特征域是几维的就有几个)来初始化。
通过训练一个FM模型完成了对z的初始化

FM中的wi是一个数,每个特征xi对应一个wi,用FM中的wi来初始化FNN中特征与w相连的权重。FM中的vi是k维向量,每个特征xi对应一个vi,用FM中的vi(k维)来初始化FNN中特征xi与该特征域中v向量相连的权重。

同时文中提出,hidden layer的权重可以用对比散度做逐层的RBM pre-training。
完成pre-training后,用back-pop做fine-tuning,目标函数为

需要注意的是,SGD的过程中,只有input不为0对应的参数需要更新。

Sampling-based Neural Networks (SNN)

SNN和FNN的不同之处在于最底层的结构和训练方法不同。SNN的最底层是全连接的,使用的是sigmoid激活函数。

初始化最底层的权重,本文采用了RBM和DAE来做预训练。对于每个field,只有1维是1,然后采样m个负单元,图中黑色的单元是没有被采样到的,因此在预训练的过程中将被忽略。
用对比散度来训练RBM,用SGD来训练DAE,然后将训练好的dense vector作为剩余网络部分的输入。做back-pop来fine-tuning模型。

Regularisation

使用L2正则化和dropout。
以FNN为例,L2正则项为

上一篇下一篇

猜你喜欢

热点阅读