wide&deep模型
WD模型是谷歌2016年发布的回归和分类模型,它结合了wide模型的记忆能力和deep模型的泛化能力,在Google Play的应用实验中取得了很好的效果。
wide模型实际上是一个LR(logistic regression)模型。LR模型中的偏置项可以在不改变特征权重的情况下调整中心点(阈值),是的模型更灵活,权重学习更准确。如果没有偏置项,则需要通过权重变化调整中心点(阈值),会使权重学习不纯粹(同时承担着特征权重和调整阈值的任务)。
损失函数是数学优化问题中的优化目标,LR模型的损失函数是logloss,具体可看这里。其实损失函数就是衡量预测值和实际值之间误差的一种度量,任何可以合理表示这种偏差的函数都可以作为损失函数。
LR输入为什么不采用连续值
LR模型的输入不采用连续值,而是使用离散化(bucket)输入和类别型输入。这样做的好处有:
- 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。
- 稀疏向量运算速度快。
- 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。某些特征与目标值的函数并不是单调曲线,使用连续型数值与固定权重的乘积只能表达单调线性关系。
- 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。
- 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。
模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。
大概的理解:
- 计算简单
- 简化模型
- 增强模型的泛化能力,不易受噪声的影响
Reference
[1] 逻辑回归LR的特征为什么要先离散化
[2]logistic回归详解(二):损失函数(cost function)详解