RS Meet DL(65)-負取樣點擊率修正的那些事

  • 2019 年 10 月 10 日
  • 筆記

本來想寫螞蟻金服運用強化學習做推薦的文章《Generative Adversarial User Model for Reinforcement Learning Based Recommendation System》,但這不快放假了嘛,思考再三還是決定寫點簡單的吧。這次來談談負取樣點擊率修正的那些事。

1、負取樣點擊率修正

在廣告點擊率預估中,正負樣本的比例是很不平衡的,所以有時候需要進行一定程度的負取樣,即對負樣本進行一定比例的取樣,降低正負樣本不平衡的程度,一定程度上提高模型預估的精度。

假設整體樣本中的正負樣本比例為1:3(當然實際上會比這更不平衡的多,此處僅僅是舉個例子),由於假設訓練集和測試集中的樣本是獨立同分布的,那麼由不取樣的數據訓練得到的模型,在測試集上的點擊率平均值約為0.25。

再假設樣本中存在三種廣告的樣本A、B和C,其比例為50:30:20,而各自的正樣本分別佔30%、20%和20%,如下圖所示:

這樣,在測試集中,對三種廣告的點擊率預估值的平均值也接近0.3、0.2和0.2。此時我們對負樣本進行一定程度的取樣,假設取樣率為1/3,這樣能使整體上正負樣本比例保持在1:1,但是具體到A、B和C三種類型的廣告,其比例就不確定了,咱們具體來算一下,結果如下:

要注意上圖中,我們僅僅是將負樣本佔比除以3。這樣算出的A、B和C三種類型的廣告的點擊率的平均值仍滿足A>B=C。這樣是保序的,我們會把A廣告排在最前面。但是在廣告場景中,不僅僅要考慮點擊率,還要考慮每次點擊帶來的收益,假設A、B、C三種廣告的收益CPC(cost per click,每次點擊收益)分別是6、8、3,那麼三種廣告每次曝光帶來的期望收益是1.8、1.6和0.6,排序順序為A、B、C:

而在取樣後,三種廣告每次曝光帶來的期望收益是3.38、3.43和1.29,排序變為了B、A、C。

因此樣本取樣雖然可能帶來更好的模型精度,但是在廣告場景中,需要對點擊率進行修正,修正公式如下:

上圖中,q是修正後的點擊率,p是取樣後的預測點擊率、w是取樣率,推導過程如下:

再來看剛才的結果,使用修正公式後點擊率和取樣前相同: