AB測試不足

背景

AB Test時,除了保證算法不同外,其餘條件都須要保證不變。可是每每你們可能忽視了保證用戶分佈的不變。好比一個算法A除了能夠召回付費用戶外,還能夠召回不少潛在付費用戶,而算法B只能召回常常付費的用戶,若是直接拿兩個算法做用全部用戶比較,此時顯然用戶的分佈不一致,比較最終的統計指標意義不大。算法

兩種算法比較

假設有兩個算法A,B。因爲算法對數據的要求不一樣,致使分別召回了UAUA和UBUB兩批用戶,因此總體用戶爲U=UA∪UBU=UA∪UB。兩個算法的交集爲I=UA∩UB≠∅I=UA∩UB≠∅。算法上線時,I中的用戶不能同時被兩個算法影響,因此必須在算法A和B中選擇一個算法上線。此時能夠等權重隨機在A和B中選擇一個算法,隨機選取能夠確保算法A和B影響的用戶分佈相同,而且能夠保證A,B算法影響I中的用戶量級相同。若是根據經驗知道A的算法比B的好,能夠將A的隨機選取權重適調高,這樣能夠在確保總體線上效果的同時,仍然能夠保證A,B算影響的用戶分佈相同,可是量級會有所不一樣。可是,只要I中的用戶足夠多,量級對最終的評估影響不會太大。測試

線上真實狀況

上面的兩種算法比較中說明了,若是咱們要作AB測試,就須要AB兩個分桶流量中的用戶分佈是一致的,可是這種狀況很可貴到保證,及時在實驗開始以前咱們可以準確的劃出2個等分佈的桶出來,在實驗過程當中也仍是可能會致使用戶的分佈產生變化。排序

在線上真實的狀況是可能一個召回,排序或者重排序的改動策略的效果在0.5%之內,這個時候其實就很難說清楚這個波動是分桶自己的不均勻致使的仍是策略帶來的正向影響,如何在實驗迭代的過程當中清晰的說明0.5%的正向究竟是不是真實有效一直是個問題。統計

ps:瞭解到頭條的作法是開AABB四個分桶進行實驗,交叉進行驗證。經驗

相關文章
相關標籤/搜索