從數據產品經理視角,聊聊科學的AB Test

隨著ab測試在互聯網行業用戶增長方面的推廣,各家都搭建了自己的ab測試平臺(不限於BAT) 或者 購買了ab測試服務。今天就來看下AB測試的前世今生,能為企業解決什麼問題,如何標準化ab測試流程,如何搭建一個ab測試平臺。

从数据产品经理视角,聊聊科学的AB Test

36Kr曾在一篇報道中寫道:“頭條發佈一個新APP,其名字都必須打N個包放到各大應用市場進行多次A/B測試而決定,張一鳴告訴同事:哪怕你有99.9%的把握那是最好的一個名字,測一下又有神馬關係呢?”

一、追本溯源

AB測試的前身是隨機對照試驗-雙盲測試,是“醫療/生物實驗將研究對象隨機分組,對不同組實施不同的干預,對照起效果”。

雙盲測試中病人被隨機分成兩組,在不知情的情況下分別給予安慰劑和測試用藥,經過一段時間的實驗後再來比較這兩組病人的表現是否具有顯著的差異,從而決定測試用藥是否真的有效。

2000年穀歌工程師進行了第一次AB Test,試圖確定在搜索引擎結果頁面上顯示的最佳結果數量。後來AB測試不斷髮展,但基礎和基本原則通常保持不變,2011年,谷歌首次測試後11年,谷歌進行了7,000多次不同的AB測試。

12年奧巴馬競選網站的樣式,通過AB Test 找到了更能吸引募捐,幫助奧巴馬贏得了更高的募捐金額。

AB Test將不同的用戶分成不同的組,同時測試不同的方案,通過用戶反饋的真實數據來找出哪一個方案更好的過程。解決的是“多種方案需要拍腦袋確認哪一種更好的問題”。

二、特性

  • 先驗性:A/B Test 是一種“先驗體系”,屬於預測型結論(與其相對的是後驗型的經驗歸納)。同樣是一個方案是否好壞:A/B Test 通過小流量測試獲得具有代表性的實驗結論,來驗證方案好壞後再決定是否推廣到全量;後驗型則是通過發佈版本後的版本數據對比總結得到。
  • 並行性:是指支持兩個或以上的實驗同時在線,並需要保證其每個實驗所處環境一致。並行性極大的降低了多實驗的時間成本。
  • 科學性:AB Test是用科學的方式來驗證方案,科學性體現在流量分配的科學性、統計的科學性。記得在開篇提到的“AB測試的前身是隨機對照實驗,醫療/生物實驗將研究對象隨機分組,對不同組實施不同的干預,對照起效果”,這要求AB Test將相似特徵的用戶均勻的分派到實驗組別中,確保每個組別的用戶特徵相同。

三、統計學原理

3.1 抽樣

總體:“是包含所研究的全部個體(數據)的集合,它通常由所研究的一些個體組成,如由多個企業構成的集合,多個居民戶構成的集合,多個人構成的集合,等等”。對於一個app、web網站,他的所有用戶即為總體。

樣本:與總相對應,是從總體中按一定比例抽取且能代表總體的部分個體集合。例如:分別抽樣5%的app用戶,形成實驗組、對照組。

從總體到樣本的過程,即為抽樣。所以ABTest,是通過抽樣 獲取 實驗組、對照組,對比統計量均值,以衡量實驗效果。

抽樣面臨問題“如何從一個總體中按一定比例抽取一組隨機樣本?”,也就是樣本統計值是否可以代表總體參數?

3.2 參數估計

為了估計總體參數,會計算樣本的統計量,例如:某個優化指標的平均值。而樣本的統計結果為真實的總體統計結果的點估計,但由於點估計樹值與總體參數值在某種程度上存在差異。可以構造區間估計以便獲取關於點估計值與總體參數的差異大小的信息。區間估計是在點估計的基礎上,給出總體參數的一個概率範圍(點估計值 +/- 邊際誤差)。

可以利用總體標準差 或 樣本標準差 計算 邊際誤差。

(1)已知總體標準差

假設:總體標準差=20,歷史數據顯示總體符合正態分佈;抽取100個個體形成樣本,樣本均值為82。

樣本標準差=總體標準差/ 開根號(樣本個數)=20/ 開根號(100)=2

故樣本符合均值為82、標準差為2 的正態分佈

=> 查標準正態分佈表得到,任何正態分佈隨機變量都有95%的值在均值附近+/-1.96個標準差以內。

=> 當樣本均值是正態分佈時,一定有95%的樣本均值落在總體均值 +/- 3.96(1.96*2=3.96) => 總體均值=樣本均值+/- 3.96 = 82 +/-3.96

=> 有95%的把握相信區間(78.08,85.92)包括總體均值。

**95%為置信水平,(78.08,85.92)為置信區間,邊際誤差為 Z分佈(總體標準差/開根號(樣本個數))。

(2)已知樣本標準差,未知總體標準差

總體均值 = 樣本均值 +/- t分佈(樣本標準差/開根號(樣本個數))

基於以上論述,可以得到 在某種置信水平下,置信區間(78.08,85.92)包括總體均值,論證了 “樣本統計值和總體參數相似程度”

接下來,文中將介紹 如何知道一個方案是好還是壞呢?——可以通過假設檢驗來確認是否應該拒絕關於總計參數值。

3.3 假設檢驗

嘗試性的假設為原假設H0,與原假設對立的是備擇假設H1. 在AB測試中,原假設H0: 實驗組和參照組不存在差異,備擇假設是存在差異。

在假設檢驗的過程中會出現以下情況(橫向為真實情況,總想為結論):

从数据产品经理视角,聊聊科学的AB Test

我們做實驗時,期望儘可能的控制 第一/二類錯誤。

第一類錯誤:原假設為真時拒絕了原假設 首先我們容易犯的就是第一類錯誤,就是原假設為真時拒絕了原假設,說白了就是過來就是 2 個版本無差異時候,我們錯誤 的認為他們有差異。

第一類錯誤出現的概率稱之為檢驗的顯著性水平α,一般取0.05或0.01。通過指定α 從而控制出錯概率。

犯第一類的假設檢驗稱之為 顯著性檢驗,通過P值來判斷:P值為z值的概率值(查表),是樣本所提供的證據對原假設支持成都的度量,p值越小說明反對原假設的證據越多。當P值<=顯著性水平α, 則拒絕H0。

請注意此處的描述“不能拒絕H0 或 拒絕H0”,而不能描述為H1為真(如果控制 第一類 不控制 第二類,僅能如此描述)。

第二類錯誤:原假設為假時接受了原假設,也就是 “2 個版本有差異時候,我們認為他們沒有差異 ”,這個概率記為β ,不犯第二類錯誤的概率為的1- β。1- β:當H0為假時,作出拒絕H0的正確結論的概率稱之為“檢驗的功效”,通常最低的統計功效值為80%。

綜上,通常情況下 AB實驗中, 95%+的置信水平,<5%顯著性水平 , > 80%統計功效,可以被認為實驗是有效的,結果有代表性是可信的。

曾經一度也曾有大量文章由於p值無法提供一個人類期望的結論,而抨擊p值已死。p值在統計學的意義中是用來推斷,而非歸納總結。僅用p值來確認顯著性直接得到結論是不恰當的,同學的先輩們聽到都會跳起來,引入統計功效、置信區間才能科學的解釋實驗數據。

四、科學分流

4.1 分流

分流是將用戶分入AB實驗的過程。

如何知道一個用戶應該咋哪些實驗中呢?

對用戶id進行hash並取模後得到實驗。如果用戶量夠大,可以設置按1000,10000取模,得到的用戶組會變多。這種方式記為單層實驗架構,每個用戶只會分入一個組中,在同一時刻只會參與一個實驗。

這裡的用戶id,不特指user_id,由於實驗的範圍不同,用戶id可以使用user_id、device_id、cookieid,以及global_id,global_id在各家公司稱呼不同,但表達意思均為全局流量id,是基於多種id得到的唯一id。

4.2 多層重疊實驗

如果有多個大流量實驗同時在線,如何增加新的實驗呢?

Google的文章中描述了多層重疊實驗,可以解決這個問題,也是業內的主要方式,多層重疊實驗可以實現 “更多、更好、更快”做AB Test。

多層重疊實驗的幾個概念:

  • 域:域是對用戶流量的一種縱向劃分,將流量垂直的切分成多塊,多個域中的實現相互沒有干擾,保證實驗純度。
  • 層:層是對域流量的一個橫向劃分。每個層使用獨立的Hash函數對用戶進行分桶,使得多個層之間的用戶流量是正交的。如下圖所示,每個層中的實驗對其他層的影響都是正交的,,一份流量穿越每層實驗時,都會被再次隨機打散,參與第一層中實驗X的用戶,均勻的分散在層B中,使層B中的實驗也可以獨立進行分析,並得到準確的分析結果。層內實驗為互斥實驗。層內多實驗互斥關係(下圖)與域的互斥關係相同,只是表述粒度不同。該流量可以繼續以“域”劃分為層,無限嵌套,但這樣複雜度會急劇增加,是不推薦的。
从数据产品经理视角,聊聊科学的AB Test

如果實驗是相互影響的(例如 實驗A更改按鈕樣式,實驗B更改按鈕文案),兩個實驗室需要設置為互斥實驗,建議放在同一層中。如果實驗間無影響(例如在UI、搜索、廣告推薦實驗),則可以在不同層進行實驗。

此外,精細化運營、國際化時本土化產品策略中 需要面向指定流量進行AB測試,如 對巴西的用戶AB Test。驗收測試的同學,也需要將自己的id加入測試人群,但這批用戶的數據不應該參與效果分析。特殊號碼過濾:如有些用戶id在分發時做了特殊人群的投放,需要過濾該人群。

五、AB Test 系統

上文中提到的均是AB測試的原理,為提升ABTest的速度,ABTest的代碼早已被封裝為了產品,如 商業化的有Optimize、吆喝科技、testin等,BAT TMD也都有自家的AB Test系統。

TO 產品、運營、算法 同學(做實驗的人):

  1. 創建實驗,並同步實驗信息到服務端、客戶端開發,以便其寫代碼時使用實驗code;
  2. 獲取實驗結果。

TO C端用戶(不侷限於C端,這裡僅是泛指,被實驗的人),將決定該用戶在哪些實驗中。

从数据产品经理视角,聊聊科学的AB Test

AB Test系統也和其他系統一樣,有管理模塊、權限模塊等。

各家AB Test系統:

美團AB測試平臺:https://tech.meituan.com/2019/11/28/advertising-performance-experiment-configuration-platform.html

大眾點評: https://www.csdn.net/article/2015-03-24/2824303

Optimiz:http://www.googleoptimizedemos.com/

吆喝科技:http://www.appadhoc.com/

六、如何科學的做AB測試(AB測試標準化)

有了ABTest的概念,瞭解了原理,購買或者自建了系統,如何建立標準化流程讓其在團隊中完整的執行下來?

6.1 ABTest的侷限性

在討論ABTest標準化執行過程前,我們先看了解下ABTest的侷限性,莫過於將其神化。

(1)ABTest是驗證方案、想法的策略,而不是戰略。

看到知乎中的一句話無比贊同:

“你可以用A/B測試讓你在已經到達的山上越來越高,但你不能用它來發現一座新的山脈。如果你的產品真正需要的是一個完整的改造,那麼A/B測試可能做不到”。

張一鳴在清華經管學院,對問題“PM是否可以產品設計上是否更多的依賴ABtest而非直覺?”的解答:

“我們認為這和ABtest同樣重要。我們反對從邏輯到邏輯,從邏輯到邏輯,很容易失之毫厘謬以千里。有一手的體驗能幫我們遠離偏差,我們願意把用戶的感受、體會帶到公司。我們全球化的第一件事情是海外用戶反饋,提供聯繫方式,讓用戶可以直接聯繫到我們。PM是需要sense的,AB的science可以用來的降低在細節層面的精力付出。

(2)ABTest是有開發成本的

(3)ABTest的數據只有現象,沒有詳情

ABTest可以給出實驗組比對照組的效果好現象,但無法給出過程數據。測試相對複雜的方案,ABTest無法表述出具體是哪個方面呈現出了優勢。

6.2 ABTest的標準化流程

从数据产品经理视角,聊聊科学的AB Test

此外,AB測試時,需要警惕辛普森悖論。

後續:ABTest的相關知識點還會在本文中陸續補充,期望瞭解點可以在評論中@我,我會逐一回復並補充到文章中的。

題圖來自Unsplash,基於CC0協議


分享到:


相關文章: