CTR预估任务在推荐系统中至关重要,在过去几年间,CTR相关的神经网络文章不下于百篇,但是很多时候我们尝试着去复现这些文章的思路并尝试着运用到自己的生产环境时,却时常无法取得和论文中类似的效果。这些论文中有非常多的实验没有公开源码,也没有公开数据预处理的策略,所以我们复现的时候经常会因为实验设定的不一样或者其他原因,得到与论文中相反的结论,而且大多数时候我们没法保证其在我们自己的场景中也可以达到如文中所述的类似的效果。
本篇文章复现了最新最流行的20多种CTR网络(受限于数据集自身的原因,主要是特征交叉相关的网络),为了方便后续工作的比较,作者运行了4600+的实验,超过12000 GPU hours. 并且在Kaggle的两个竞赛数据集Criteo和Avazu数据集上进行了比较。实验的结论还是令人十分惊讶的,很多网络的复现结论和论文中存在一些细微的差别,但还有一些实验结果和论文中所展示的有较大的不一致,复现效果最好的工作并不是2020年的最新工作,而是早期的工作。
本篇文章并没有提出新的算法,更多的是对过往的算法进行复现&对比,希望成为CTR界的Benchmark。从本文海量的实验数据来看,本文的实验结论90%和我自己实践中的效果是类似,所以非常建议读一下。
这篇文章我们简单分两块进行介绍:
- 目前CTR算法中一些经典算法的开源情况;
- 在Criteo以及Avazu两大数据集上各大模型的表现情况 & 小结;
目前几乎没有一个算法是同时满足下面7个条件的:
- 数据分割;
- 数据预处理;
- 开源模型代码;
- 训练代码;
- 模型超参;
- Baseline的模型超参;
- Baseline的代码。
此处实验是对比20多个经典算法在现在数据集上的表现
在Criteo数据集合上的复现情况
在Avazu数据集合上的复现情况
最新算法方案对比
1.在Criteo数据集上的表现
- xDeepFM平均排名第一
- DeepFM,DCN,FiGNN,ONN分别位列2,3,4,5位
2.在Avazu数据集上的表现
- FiBiNET平均排名第一
- ONN,HFM+,FGCNN,xDeepFM分别位列2,3,4,5位
从上面的实验中,我们可以得到如下的结论:
- 之前很多论文中的实验因为设置,初始化等诸多细节都没有公布,但是很多论文中展示的结果复现效果一般;
- 最新的很多论文的实验复现效果一半都比不上18年的两篇经典工作(xDeepFM,ONN等,而且最新的19,20年的工作在数据集上并没有表现出应有的优势);
- xDeepFM和ONN在两个数据集上都展示了不错的效果(Top5),这和非常多的数据竞赛中的结论几乎是一致的;
本文的实践参考价值非常大,对于像我一样的初学者非常有参考价值和帮助,目前来看,xDeepFM,ONN还有一些卷积相关的网络效果都表现不错,这是非常值得思考的。