數(shù)據(jù)不平衡問題都怎么解?

作者?|?Chilia????
整理?|?NewBeeNLP
本文主要討論兩種不平衡問題。
- 一是數(shù)據(jù)的類別本來就不平衡,比如在廣告CTR預估中,可能90%的廣告都不會被點擊,只有一少部分被點擊;
- 二是由于誤分類cost的不對稱性(asymmetric cost),例如把non-spam 分成spam的代價要遠大于把spam分成non-spam。
在這篇文章中,我將介紹兩大類方法:一是通過采樣而改變數(shù)據(jù)集,二是修改訓練策略。
1. 從數(shù)據(jù)層面解決 – 重采樣 (Resampling)
1.1 隨機欠采樣(Random Under-Sampling)
通過隨機刪除多數(shù)類別的樣本來平衡類別分布。
好處:
- 當訓練數(shù)據(jù)集很大時,可以通過減少訓練數(shù)據(jù)樣本的數(shù)量來幫助改善運行時間和存儲問題
缺點:
- 丟棄可能有用的信息
- 隨機欠采樣選擇的樣本可能是有偏差的樣本, 它不會是整體分布的準確代表。因此,可能導致實際在測試集上的結(jié)果不準確
1.2 隨機重采樣(Random Over-Sampling)
通過「隨機重復取少數(shù)類別的樣本」來平衡類別分布。
好處
- 與欠采樣不同,此方法不會導致信息丟失。此方法優(yōu)于隨機欠采樣
缺點
- 重復取少數(shù)類別的樣本,因此增加了過擬合的可能性。
1.3 Ensemble 采樣
類似bagging的思想,有多個基學習器,每個基學習器都抽取一部分majority class,并且使用全部的minority class。這樣,每個majority樣本都能夠被利用上,不會有信息的損失。
1.4 合成少數(shù)類過采樣技術 (Synthetic Minority Over-sampling Technique, SMOTE)
此方法用來解決直接復制少數(shù)類樣本導致的過擬合問題。SMOTE算法的基本思想是對少數(shù)類樣本進行分析并根據(jù)少數(shù)類樣本人工合成新樣本添加到數(shù)據(jù)集中。
該算法的模擬過程采用了KNN技術,模擬生成新樣本的步驟如下:
- 計算出每個少數(shù)類樣本的K個近鄰;
- 從K個近鄰中隨機挑選N個樣本進行隨機線性插值,從而構造新的少數(shù)類樣本;
- 將新樣本與原數(shù)據(jù)合成,產(chǎn)生新的訓練集;

黃色點:minority;藍色點:majority2 從算法層面解決
2.1 改變loss的權重
重采樣方法改變了數(shù)據(jù)集,可能導致數(shù)據(jù)集變得太大,或者丟棄了一些信息。所以,有沒有一種方法能夠從算法層面解決類別不平衡問題呢?
實際上,可以通過改變loss的方法來實現(xiàn)。對分類器的小類樣本數(shù)據(jù)增加loss權值,降低大類樣本的權值,從而使得分類器將重點集中在小類樣本身上。具體做法就是,在訓練分類器時,若分類器將小類樣本分錯時額外增加分類器一個小類樣本分錯代價,這個額外的代價可以使得分類器更加“關心”小類樣本。
可以讓majority的權重為1,minority權重為3
樹模型2.2 boosting 方法
在boosting方法中,分類器每一步會關心上一步分錯的那些樣本,這樣分類器就會越來越關心少數(shù)類樣本,把它們的權值提高。久而久之,就能夠?qū)⑸贁?shù)樣本正確分類了。
三句話不離本行
在搜索、推薦、廣告的實際場景下,怎么選擇正負樣本也是大有講究。
對于召回階段,一般初始的訓練集是只有正樣本的。什么樣的樣本被選作正樣本,這個標準在每個公司都不一樣。
例如,facebook在其最新的文章 Que2Search: Fast and Accurate Query and Document Understanding for Search at Facebook中提到,他們選擇正樣本標準十分嚴格:對于一個query,只有當用戶點擊了一個product,進去和賣家聊天,賣家還回復了,這才算一個正樣本。
但是在其另外一篇文章Embedding-based Retrieval in Facebook Search中卻提到,其實可以把用戶點擊的商品都算作正樣本。這是因為其實召回可以看作排序階段的一個近似,我們只需要快速的把和query相關的物品都拿出來。
那么召回階段的負樣本怎么來呢?在實際的數(shù)據(jù)流場景中,一般是用in-batch采樣,但是這樣有一個問題:越熱門的商品,越容易出現(xiàn)在batch中,所以越容易成為負樣本。這樣,就對熱門商品施加了不必要的懲罰。
為了解決這個問題,Google在Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations一文中提出streaming frequency estimation方法。其實還有一些負采樣方法,比如難負例采樣。還可以把in-batch采樣與隨機負采樣相結(jié)合。這里的門道很多,之后會專門出專題介紹。
對于排序階段,一般都是多目標預測,目標有是否點擊、是否關注、是否購買、觀看時長、評分等等(engagement & satisfaction),負樣本就是那些曝光未點擊的,由于曝光的商品本來就比較少了(相對召回階段而言),所以數(shù)據(jù)不平衡沒有那么嚴重。
一起交流想和你一起學習進步!『NewBeeNLP』目前已經(jīng)建立了多個不同方向交流群(機器學習 / 深度學習 / 自然語言處理 / 搜索推薦 / 圖網(wǎng)絡 / 面試交流 /?等),名額有限,趕緊添加下方微信加入一起討論交流吧!(注意一定o要備注信息才能通過)
本文參考:
- 哥倫比亞大學2021fall COMS 4995課件
-?END?-


Don't stop pretraining,繼續(xù)預訓練!
