一、结论
- 使用id类特征效果很好,很重要
- dropout对模型性能影响较大
- dnn层数对模型性能影响大
- 同样数据特征的情况下,deepfm比lr在AUC(ROC)的效果好0.02~0.03
- 只使用id类特征(用户id,物品id)比使用全部特征(包含用户id,物品id)的AUC值差0.005左右,但是训练速度和预测速度大幅度提升。
二、应用场景
2.1 指标选择
应用deepfm和lr模型的目的是给召回阶段的候选集合排序,故选择AUC为模型离线评测的指标。同时关注loss的变化情况。
2.2 数据情况
- 此实验对数据集是推荐领域对用户曝光和点击的数据。
- 模型的训练集是前2天到n天的数据(n可以调整)
- 模型的验证集是前1天的数据
三、实验数据
默认参数:epoch=1;optimizer=adam;loss=cross entropy;batch=256;
实验id | 特征 | embedding(隐向量) | dnn结构 | dropout | AUC | loss |
---|---|---|---|---|---|---|
1 | uid,itemid | 10 | dnn=(128,128) | 0 | AUC=0.731 | loss=1.18 |
2 | uid,itemid | 2 | dnn=(128,128) | 0 | AUC=0.733 | loss=1.12 |
3 | uid,itemid | 4 | dnn=(128,128) | 0 | AUC=0.731 | loss=1.08 |
4 | uid,itemid | 3 | dnn=(128,128) | 0.85 | AUC=0.746 | loss=1.17 |
5 | uid,itemid | 3 | dnn=(128,128) | 0.65 | AUC=0.736 | loss=1.11 |
6 | uid,itemid | 3 | dnn=(256,256) | 0.85 | AUC=0.744 | loss=1.07 |
7 | uid,itemid | 3 | dnn=(64,64) | 0.85 | AUC=0.745 | loss=1.24 |
8 | uid,itemid | 3 | dnn=(64,64,64) | 0.85 | AUC=0.770 | loss=0.667 |
9 | uid,itemid | 3 | dnn=(128,128,128) | 0.85 | AUC=0.772 | loss=0.800 |
结合训练时间,性能等实际情况,最优等参数如下:
特征: uid,itemid
embedding:3
dnn结构:(128,128,128)
dropout:0.85
四、实验思考
- 不同等应用场景,模型的性能指标应该有所差异
- 数据分布不一致对模型有怎样对影响
- 在推荐场景中,训练和验证数据是否应该排除top数据
- 还有哪些特征对排序模型有较大的用处(统计类特征)
- 为什么仅仅使用id类特征能够有较好的效果?
- 怎样在深度学习网络中快速调参(正好看到一篇论文)
https://arxiv.org/pdf/2006.06863.pdf