概述
本文介绍Deep Learning over Multi-field Categorical Data– A Case Study on User Response Prediction,包含Factorisation NN
和Sampling based NN,原文Paper链接;
摘要:
预测用户回应(user response),例如CTR、CVR(转化率)在网页搜索、个性化推荐、在在线广告起着至关重要的作用;不同于图像和音频领域,网页空间的输入特征通常是离散和类别型的,并且依赖性也基本未知;原来要预测用户响应:线性模型(欠拟合)或手工设计高阶交互特征(计算量大);文章提出通过DNN来自动学习有效的类别特征交互模式,为了使DNN有效工作,利用三个特征转换方法:FM(factorisation machines)、RBM(限制波尔兹曼机)、DAE(降噪自编码器);
一、介绍
一堆balabala,就是讲线性模型不能有效的学习出不明显的模式;FM和GBDT虽然能做特征组合,但是不能利用全部不同特征的组合;许多模型需要依靠特征工程和手工设计特征,并且大多数模型是浅层结构,泛化性能不好;
然后文章提出深度学习在图像、文本等的广泛应用,可以学习出局部特征并进而学习出高阶特征筛。但是对于CTR问题,存在多个领域并且都是类别特征(如城市、设备类型、广告类型),他们的局部依赖性是未知的,通过DNN来学习特征表示是很有前景的;文中提出方法Factorisation Machine supported Neural Network (FNN) 和 Sampling-based Neural Network (SNN)。 其中FNN通过监督学习Embedding并用FM来将稀疏特征变成Dense特征,减少维度;SNN通过负采样方式,基于RBM或者DAE。
二、DNNs for CTR Estimation given Categorical Features
如图所示是一个4层的FNN结构:
输入类别特征是field-wise 的One-hot编码形式,只有一个值为1,其他为0;
2.1 Factorisation-machine supported Neural Networks (FNN)
FNN以FM为底层,如上图所示,从上到下描述这个网络:输出是一个sigmoid函数,然后接上两个全连接网络(使用tanh激活函数),这里解释一下Dense层z,
z
=
(
w
0
,
z
1
,
z
2
,
.
.
.
,
x
i
,
.
.
.
,
z
n
)
z=(w_0,z_1,z_2,...,x_i,...,z_n)
z=(w0,z1,z2,...,xi,...,zn),,其中
w
0
w_0
w0是全局标量参数,n是域field的个数,其中
z
i
∈
R
k
+
1
{{rm{z}}_i} in {R^{k + 1}}
zi∈Rk+1是第i个域的参数向量;且
z
i
=
W
0
i
⋅
x
[
s
t
a
r
t
:
e
n
d
i
]
=
(
w
i
,
v
i
1
,
.
.
.
,
v
i
k
)
{{rm{z}}_i} = {W_0}^i cdot x[start:en{d_i}] = ({w_i},{v_i}^1,...,{v_i}^k)
zi=W0i⋅x[start:endi]=(wi,vi1,...,vik)其中start和end分别代表域的开始和结束位置,x是上面描述的one-hot编码向量;本文Z向量通过FM训练完成;
除了FM层,其他层都使用RBM做权重预训练,FM权重通过SGD训练,最后使用交叉熵损失来最小化损失(这里有一个注意的地方:因为输入数据大部分为0,所以只有当输入为1的时候才会梯度更新,加快了训练速度);
2.2 Sampling-based Neural Networks (SNN)
基于采样的NN如下图所示:
SNN和FNN不同的地方在于最底层是不一样的,FNN是基于FM,而SNN是全连接网络,使用sigmoid函数,但由于输入是稀疏的,所以直接训练效果不行,使用上图右边所示的两种方法:基于采样的RBM和基于采样的DAE;
三、实验
原文基于iPinYou数据集,特征全部是类别型的,如city、user、user tags等,选取广告主为1458, 2259, 2261, 2997, 3386以及整个广告主,LR、FM、FNN、SNN做对比,AUC评估结果如下:
从图中可以看出,在全量数据上,相比于LR和FM,FNN提升还是很大的;
调参部分: 1、学习率选取从1, 0.1, 0.01, 0.001到0.0001;2、使用earlystoping,就是验证集误差上升时停下训练;3、负采样部分,每个field采样的数量从1,2,4等尝试,最后选取数量为2; 4、激活函数在线性激活、tanh、sigmoid中选取(没有尝试Relu吗?)
网络结构部分: 如下图所示的4种网络结构,
最终证明Diamond结构最好,比如3层且总共选取600个神经元,那么可以设置为(200,300,100)等,神经元的数量应该根据训练集大小来定,否则容易过拟合;Diamond结构好的原因:文章解释是因为这种结构具有某种限制神经网络的能力,然后泛化能力好(呃呃呃,不明白);
正则化部分: L2和Dropout,如下图:
从上图能够看出Dropout优于L2,因为dropout会随机排除每个隐藏单元,所以每个训练样例可以看作是一个新的模型,并且这些模型最终取平均,是一个bagging的特例;
最后
以上就是飞快火车为你收集整理的推荐系统笔记7-Deep Learning over Multi-field Categorical Data的全部内容,希望文章能够帮你解决推荐系统笔记7-Deep Learning over Multi-field Categorical Data所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复