DNN 与 DeepFM 之间的区别
DNN 是 DeepFM 中的一个部分,DeepFM 多一次特征,多一个 FM 层的二次交叉特征
2.你在使用 deepFM 的时候是如何处理欠拟合和过拟合问题的
欠拟合:增加deep部分的层数,增加epoch的轮数,增加learning rate,减少正则化力度
过拟合:在deep层直接增加dropout的率,减少epoch轮数,增加更多的数据,增 加正则化力度,shuffle 数据
3.deepfm 的 embedding 初始化有什么值得注意的地方吗
常规的是Xavier,输出和输出可以保持正态分布且方差相近: np.random.rand(layer[n-1],layer[n])*np.sqrt(1/layer[n-1])
relu的情况下通常是HE,保证半数神经元失活的情况下对输出方差影响最小:: np.random.rand(layer[n-1],layer[n])*np.sqrt(2/layer[n-1])
文本项目上也可以用预训练好的特征
MLR 的原理是什么? 做了哪些优化?
MLR 可以看做是对 LR 的一个自然推广,它采用分而治之的思路,用分片线性的模式来拟 合高维空间的非线性分类面,其形式化表达如下:
这里面超参数分片数 m 可以较好地平衡模型的拟合与推广能力。
MLR 算法适合于工业级的大规模稀疏数据场景问题,如广告 CTR 预估。
优势体现在两个方面:
1)端到端的非线性学习:从模型端自动挖掘数据中蕴藏的非线性模式,省去了大量的人 工特征设计, 使得 MLR 算法可以端到端地完成训练,在不同场景中的迁移和应用非常 轻松。
2)稀疏性:MLR 在建模时引入了 L1 和 L2,1 范数正则,可以使得最终训练出来的模型具 有较高的稀疏度, 模型的学习和在线预测性能更好。
MLR 算法高级特性
1)结构先验。基于领域知识先验,灵活地设定空间划分与线性拟合使用的不同特征结构。例如精准定向 广告中验证有效的先验为:以 user 特征空间划分、以 ad 特征为线性 拟合。
2)线性偏置。这个特性提供了一个较好的方法解决 CTR 预估问题中的 bias 特征,如位 置、资源位等。
3)模型级联。MLR 支持与 LR 模型的级联式联合训练,这有点类似于 wide&deep learning。在我们的实践经验中,一些强 feature 配置成级联模式有助于提高模型的收敛 性。
4)增量训练。实践证明,MLR 通过结构先验进行 pretrain,然后再增量进行全空间参数 寻优训练,会获得进一步的效果提升。同时增量训练模式下模型达到收敛的步数更小,收 敛更为稳定。
MLR 中使用的优化算法是从 OWLQN 改进过来的,主要有三个地方的变化:
MLR 使用方向导数来优化目标函数,而不是 OWLQN 的次梯度
MLR 对更新方向 p 进行了象限约束:非正定时直接用方向导数作为搜索方向,否则要进行 象限约束在方向导数所在象限内。
线性搜索的象限约束不同,当 MLR 参数不在零点时,line search 保持在参数所在象限内 搜索,在零点时,参数在方向导数约束的象限内进行 line search,给定更新方向,MLR 使用了 backtracking line search 方法找到合适的步长 α