今天这篇文章给大家介绍一下推荐系统中预估模型的one-epoch问题,以及相应的解法。主要来源于两项工作,一个是由阿里发表的论文Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Prediction Models(2022)中提出的one-epoch问题这一现象,另一是由快手发表的论文Multi-Epoch learning with>1.One-epoch现象
工业界的CTR预估模型存在一种one-epoch现象,即模型只能训练一轮,超过一轮就会出现过拟合现象,导致预测效果大幅下降。在Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Prediction Models(2022)中第一次将这个现象整理成论文发表出来,引起了工业界推荐系统领域的关注。
下图是该文进行的实验,通过观察模型训练过程测试集上的auc可以发现,模型在第一轮训练结束达到最优效果,第二轮开始效果马上剧烈下跌。文中在多个数据集上进行了实验,都是相类似的现象。
文中为了验证one-epoch现象产生的原因,从模型参数量、激活函数类型、优化算法等多个维度进行对比实验分析。最终,验证了one-epoch现象出现的原因主要是特征稀疏性导致的。特征稀疏性指的是,某个特征的id数量很多,导致每个id对应的数据量比较少。文中通过减小特征稀疏性来做对比实验,发现特征稀疏性是导致one-epoch现象的重要原因。通过对稀疏id替换成默认值、减小hash表(导致一些id映射到同一个embedding)等方式,减小数据集的特征稀疏问题,对比训练过程中的测试集auc。如下图,当数据中特征稀疏性问题减小时,one-epoch现象逐渐消失了。
2.One-epoch解决方法
为了突破该问题,本文提出一个假设:这种ID特征稀疏性造成过拟合更进一步的原因,是Embedding经过一轮的训练,其参数包含的信息和数据集太接近了。如果能让Embedding表征和数据集分布差异拉大,就能缓解这个问题。因此,文中提出了一种简单的策略:每轮训练时,都将Embedding随机初始化一次。详细的算法如下表:
这个做法中,一个疑问是Embedding每轮都随机初始化,那MLP网络不是白训练了吗?文中通过实验验证表明,MLP参数是可以很快适应新的Embedding参数的,即使每轮训练时Embedding变化很大,也不会影响MLP的能力。这里将Embedding和MLP的关系,理解为Embedding是输入数据,MLP网络是模型,每次重新随机初始化Embedding再训练,相当于是在做数据增强,进而提升MLP网络的泛化性。
上述方法适用于非连续训练的情况,即单个数据集训练多轮。文中也对多个数据集连续训练的场景,设计了类似的Embedding初始化策略,其核心都是用某种方式削弱Embedding参数和当前数据集的相关性。
3.实验效果
对比一般的多轮训练,和本文提出的随机初始化Embedding训练方法,可以看出,多轮训练的test auc在第二轮很快过拟合,而引入本文的训练方式,随着训练轮数的增加,test auc会逐渐提升,验证了本文提出方法的有效性。
从train和test的auc和loss来看,一般的多轮训练在train auc和loss上会有效果提升,表明了过拟合问题,而引入本文方法后过拟合现象明显缓解。
本文转载自,作者: