簡單策略解決CTR模型訓練一輪過擬合問題
今天這篇文章給大家介紹一下推薦系統中預估模型的one-epoch問題,以及相應的解法。主要來源于兩項工作,一個是由阿里發表的論文Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Prediction Models(2022)中提出的one-epoch問題這一現象,另一是由快手發表的論文Multi-Epoch learning with Data Augmentation for Deep Click-Through Rate Prediction(2024)中提出的one-epoch問題的解法。
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解決方法
快手近期發表的文章Multi-Epoch learning with Data Augmentation for Deep Click-Through Rate Prediction(2024)中,提出了一種解決one-epoch問題的方法,核心是削弱Embedding和數據之間信息的相關性。
本文承接上一篇文章的分析,認為ID Embedding在推薦系統中的稀疏性是導致one-epoch現象的原因。推薦系統中的ID都很稀疏,比如user id,量級很大,但是每個id只有少量數據,這樣相同的數據重復更新,很容易導致過擬合問題。
為了突破該問題,本文提出一個假設:這種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上會有效果提升,表明了過擬合問題,而引入本文方法后過擬合現象明顯緩解。
