讨论了为什么在绝大部分的基于DNN的CTR模型训练过程中,第一个epoch之后效果最好,从第二个epoch开始反而效果开始下降。
充满了很多实验的一篇文章,直接说结论:
- 与该现象有关的因素
- 模型结构:DNN会有该现象,而LR就不会;
- 优化算法:收敛速度越快的算法越会出现该现象;
- 特征的稀疏性:特征越稀疏(w/ 长尾),越容易出现该现象。
- 与该现象无关的因素
- 模型参数量:把模型embed层减到只有一个float值,此时DNN模型的参数和LR很相似,但DNN还是会有过拟合现象;
- 激活函数;
- batch size;
- weight decay;
- dropout;
最后,作者提出了一个假设:在CTR模型训练过程中出现过拟合现象,是因为未训练的样本(包括一个epoch都没训练的样本,或者测试集的样本),分布与已训练的样本非常不一样。这里的分布指的是embedding向量与其样本标签的联合分布,随后通过实验验证了这个假设。