1.DNN 与 DeepFM 之间的区别
DNN 是 DeepFM 中的一个部分,DeepFM 多一次特征,多一个 FM 层的二次交叉特征
2.FM:FM算法是一个特征组合以及降维的工具,它能够将原本因为one-hot编码产生的稀疏特征,进行两两组合后还能做一个降维!!降到多少维呢?就是FM中隐因子的个数k
2.在使用 deepFM 的时候是如何处理欠拟合和过拟合问题的
l 欠拟合:增加 deep 部分的层数,增加 epoch 的轮数,增加 learning rate,减少正则化力度
l 过拟合:在 deep 层直接增加 dropout 的率,减少 epoch 轮数,增加更多的数据,增 加正则化力度,shuffle 数据
一、什么是Embedding
简单来说,Embedding 就是用一个数值向量“表示”一个对象(Object)的方法,这里说的对象可以是一个词、一个物品,也可以是一部电影等等。一个物品能被向量表示,是因为这个向量跟其他物品向量之间的距离反映了这些物品的相似性。
3.deepfm 的 embedding 初始化有什么值得注意的地方吗
l 常规的是 Xavier,输出和输出可以保持正态分布且方差相近:np.random.rand(layer[n-1],layer[n])*np.sqrt(1/layer[n-1])
l relu 的情况下通常是 HE,保证半数神经元失活的情况下对输出方差影响最小::np.random.rand(layer[n-1],layer[n])*np.sqrt(2/layer[n-1])
l 文本项目上也可以用预训练好的特征
4.YoutubeNet 变长数据如何处理的
input 数据中只拿了近 20 次的点击,部分用户是没有 20 次的历史行为的,所以我们记录了每一个用户实际点击的次数,在做 embedding 的时候,我们除以的是真实的 historylength
20 次点击过去一周内的行为,曾经尝试扩大历史点击次数到 40,60 没有很明显的效果提升
ü 点击行为是处理过的,停留时间过短的 click 不要
ü 点击行为是处理过的,连续多次的重复点击会去重
ü 点击行为是处理过的,session 内的点击次数需要在约定范围内
5.YouTubeNet 如何避免百万量级的 softmax 问题的
使用负采样方法
6.推荐系统有哪些常见的评测指标?
按照推荐任务的不同,最常用的推荐质量度量方法可以划分为三类:
i. 对预测的评分进行评估,适用于评分预测任务。
ii. 对预测的 item 集合进行评估,适用于 Top-N 推荐任务。
iii. 按排名列表对推荐效果加权进行评估,既可以适用于评分预测任务也可以用于 Top-N 推荐任务。
1) 评分预测指标:如准确度指标:平均绝对误差(MAE)、均方误差根(RMSE)、标准化平均误差(NMAE);以及覆盖率(Coverage)
2) 集合推荐指标:如精密度(Precision)、召回(Recall)、 ROC 和 AUC
3) 排名推荐指标:如 half-life 和 discounted cumulative gain 等
7.MLR 的原理是什么?做了哪些优化?
MLR 可以看做是对 LR 的一个自然推广,它采用分而治之的思路,用分片线性的模式来拟合高维空间的非线性分类面,其形式化表达如下:
这里面超参数分片数 m 可以较好地平衡模型的拟合与推广能力。
MLR 算法适合于工业级的大规模稀疏数据场景问题,如广告 CTR 预估。
优势体现在两个方面:
1)端到端的非线性学习:从模型端自动挖掘数据中蕴藏的非线性模式,省去了大量的人 工特征设计,这 使得 MLR 算法可以端到端地完成训练,在不同场景中的迁移和应用非常轻松。
2)稀疏性:MLR 在建模时引入了 L1 和 L2,1 范数正则,可以使得最终训练出来的模型具 有较高的稀疏度, 模型的学习和在线预测性能更好。
2.3 MLR 算法高级特性
1)结构先验。基于领域知识先验,灵活地设定空间划分与线性拟合使用的不同特征结 构。例如精准定向 广告中验证有效的先验为:以 user 特征空间划分、以 ad 特征为线性拟合。
2)线性偏置。这个特性提供了一个较好的方法解决 CTR 预估问题中的 bias 特征,如位 置、资源位等。
3)模型级联。MLR 支持与 LR 模型的级联式联合训练,这有点类似于 wide&deeplearning。在我们的实践经验中,一些强 feature 配置成级联模式有助于提高模型的收敛性。
4)增量训练。实践证明,MLR 通过结构先验进行 pretrain,然后再增量进行全空间参数寻优训练,会获得进一步的效果提升。同时增量训练模式下模型达到收敛的步数更小,收敛更为稳定。
MLR 中使用的优化算法是从 OWLQN 改进过来的,主要有三个地方的变化:
MLR 使用方向导数来优化目标函数,而不是 OWLQN 的次梯度MLR
对更新方向 p 进行了象限约束:非正定时直接用方向导数作为搜索方向,否则要进行象限约束在方向导数所在象限内。
线性搜索的象限约束不同,当 MLR 参数不在零点时,line search 保持在参数所在象限内搜索,在零点时,参数在方向导数约束的象限内进行 line search,给定更新方向,MLR使用了 backtracking line search 方法找到合适的步长α