2018年12月17日 星期一

AB Test 的限制與陷阱與多變量最佳化問題

Source: 網路
大數據不是萬靈丹,然後沒有統計基礎的 AB Test 都是假的

為什麼很多 AB Test 不可靠?

A/B Test ?

接續上一個故事: 敏捷開發與數據科學的故事,接下來我們遇到的坑是什麼呢?怎樣做的A/B Test 是有效的?A/B Test 單純透過字面意義推想就是把兩種方案同時上線,然後收集一段時間後加以比較,我們這麼做了,也做了一陣子,但是收集到了上面這張圖,但是...有誰可以告訴我哪條線的成效(如:點擊率)比較好嗎?這就是A/B test 嗎? 並不是這樣的,不過我們一開始就犯了這樣的錯誤Orz...

所謂的A/B Test 想要透過實驗解決最佳化問題,從兩種方案中找出比較好的,作法就是分別讓兩組近似的用戶群體使用方案A 和方案B,經過一定的測試時間,根據收集到兩方樣本的觀測數據,根據"顯著性檢驗"選取一個最好的方案,而影響方案的因素可能有很多,比如說系統參數,圖片的差異,位置的差異...等。

深入研究下去才發現一個看似簡單的A/B Test 的水居然那麼深,只好回去努力翻統計學課本....



AB Test 的陷阱


一個"有效的" A/B Test  實驗必須依照統計學的原理去設計,不然非常容易做出一個失敗且沒有意義的實驗,在Why Are Most A/B Test Results A Lie? 這篇文章列出了許多失敗A/B Test 的原因:
  • 驗證偏誤(Confirmation Bias)
  • 倖存者偏誤(Survey Bias)
  • 統計功效(Statistical Power)
  • 辛普森悖論 (Simpson’s Paradox)
  • 未驗證你的AB Test 軟體
  • 均值回歸 (Regression To The Mean)
  • 基於會話指標的謬誤 (The Fallacy Of Session Based Metrics)

有興趣瞭解詳細內容的,可以看中文翻譯版:為什麼那麼多AB Test 都不靠譜

AB Test 的窘境

扣除掉A/B Test 的陷阱和誤區,在現代世界 AB Test 最大的問題就時間成本,因為網站的流量大小就影響一個實驗要做多少時間才能收即到足夠的資料來驗證成效是否顯著,如果每次只能變動一個變量,又有許多等待被驗證的變量,那可想而知這個實驗得花上很多時間,才能知道什麼東西有效,什麼東西沒效,而這也是我們最常遇到的問題。




多變量最佳化問題

為了解決這個問題,就有科學家開始研究多變量最佳化的問題, Amazon 在 2017 KDDI 提的一篇論文:An efficient bandit algorithm for realtime multivariate optimization 就是為了解決這個問題,在這篇論文提出的方法可以一次變動多個項目,如下圖所示。




這個研究方向蠻有趣的,不過跟我們的情境還是有些差距,所以我們只能想其它辦法來解決這個問題~





張貼留言