天天看點

聊聊A/B實驗那些事兒

作者:人人都是産品經理
編輯導語:作為一個大部分業務都依賴的重要引擎,在實際使用過程中卻發現會遇到各種各樣的問題。這篇文章詳細介紹了資料驅動的核心引擎——A/B實驗,分别從過程、節奏以及結果進行闡述,推薦想要了解A/B實驗的童鞋閱讀。
聊聊A/B實驗那些事兒

A/B實驗是資料驅動的核心引擎,目前大部分業務都依賴它進行決策,但在實際運作過程中會遇到各種各樣問題。

下面讓我一起聊聊A/B實驗那些事兒。

一、AB實驗設計過程

首先聊聊實驗設計過程,實驗設計過程包含4個核心問題:

問題1:随機分桶單元是什麼?

大部分随機分桶是按使用者次元,使用者次元有登入id、裝置id、匿名使用者id(cookie),除cookie在時間縱向上不穩定,登入id和裝置id均是長期穩定的。

分桶方法:目前有很多A/B實驗平台都可以支援分桶,主要通過裝置id和層級id使用Hash函數進行分桶,同樣也存在按尾号分桶情況,若是尾号分桶需要考慮各個尾号樣本資料是否均衡,例如是否會存在某個尾号經常做實驗,造成樣本不均衡。

問題2:我們的目标群體是什麼?

思考實驗的目标群體是什麼,實驗的背景和目标是什麼,是實驗設計的核心問題,若實驗是一個以特定群體為目标意味着你隻想對具有某一特征下的特定使用者運作實驗,那麼觸發條件變得尤為重要,因實驗觸發條件不同可能會導緻幸存者偏差等各類問題,進而導緻實驗結果不可信。

問題3:實驗需要多大的樣本量?

實驗需要多大樣本量,涉及到實驗功效是否充足情況,對結果的精确度有直接影響。樣本量越大,樣本的功效越好,實驗結果越可信,但同時耗費的資源也越多,如果樣本量太小,實驗功效不足,結果不可信,那麼如何計算最小樣本量,可以參考下面公式:

聊聊A/B實驗那些事兒

問題4:實驗需要運作多久?

對于線上實驗,使用者随之時間進入實驗,時間越長,使用者數越多,統計功效通常也會随之提高,考慮到使用者會反複通路,使用者随時間的累計可能是次線性的,即第1天來N人,第2天累計進入實驗使用者<2N,是以實驗運作僅運作1天,則更側重在高頻活躍使用者。

同樣因周末與工作日使用者群體不同,也會有周末效應,季節性也同理。

有些實驗在初始階段有較大或較小的新奇效應,也會影響資料名額,是以建議實驗至少運作一周。

二、A/B實驗放量節奏

通過逐漸放量的流程來控制新功能釋出帶來的未知風險是很普遍的,我們需要衡量速度、品質和風險。

聊聊A/B實驗那些事兒

第一階段目标降低風險:可以建立測試人群,測試實驗運作風險,觀察實時或近實時結果,盡早了解實驗是否有風險,如遇問題可快速復原。

第二階段目标保證明驗品質,我們建議最後保持一周,如有初始或新奇效應,則需要更長時間,若僅運作一天的實驗,其結果将傾向于重度使用者,根據經驗,如果沒有發現初始或新奇效應,則一周之後每多運作一天帶來的額外收益都會越來越小。

第三階段目标通過實驗進行決策,通過分析實驗核心名額,确定實驗是全量或者放棄。

若實驗期間提前達到統計顯著,根據經驗,是不建議提前全量,通常使用的統計學假設是在實驗結束時進行統計測試,而提前提前結束實驗違反了假設,會導緻一些虛假的成功。

三、A/B實驗結果分析

陷阱1:樣本量不均衡

實驗分析第一步檢驗實驗組與對照組樣本是否均衡,實驗組UV/對照組UV=1代表均衡,如果實驗組和對照組樣本量不均衡,那可能在實驗階段發生漏洞導緻的,那麼我們不應該相信任何其他名額。産生樣本量不均衡有多種原因,主要是以下原因:

  • 浏覽器跳轉,一種常見的ab實驗機制是實驗組跳轉到另一個頁面,這通常會導緻樣本比率不均衡,主要原因:a、性能差異:實驗組使用者需要接受額外的跳轉,跳轉過程性能可能快可能慢。b、跳轉不對稱:實驗組跳轉新頁面後,可以進行收藏、轉發、傳回等各種動作,而對照組均沒有;是以對照組和實驗組都需要有跳轉頁面,讓實驗組和對照組有相同待遇。
  • 殘留或滞留效應,新的實驗通常會涉及新的代碼,是以錯誤率會比較高,新實驗會引發一些意想不到的問題導緻實驗中止并快速修複上線,重新随機化會打破使用者的連貫性,會讓使用者從一個使用者組轉到另一個使用者組,進而影響樣本均衡。
  • 使用者随機分桶過程有漏洞,有可能在放量過程中出現bug導緻實驗組和對照組樣本不均衡
  • 糟糕的觸發條件,觸發條件應該包含任何可能被影響的使用者,觸發條件基于可能被實驗影響的屬性也會讓實驗樣本不均衡

那如何識别樣本不均衡呢?

  • 驗證分桶時機點或觸發時機點的上遊有沒有差異;
  • 驗證明驗樣本的分桶設定是否正确;
  • 順着資料漏鬥路徑排查是否有任何環節導緻樣本不均衡;
  • 檢視使用者細分群體樣本比例
  • 檢視與其他實驗的交集

陷阱2:分析單元不一樣

在分析頁面跳轉時,有個核心名額CTR,CTR有兩種常見計算方法,二者的分析單元是不一樣的。

第一種CTR1=總點選數/總曝光數。

第二種CTR2,先計算每個使用者的CTR然後平均所有使用者的CTR。

如果随機分桶單元是使用者層面,那麼第一種方法使用了一個與分桶單元不同的分析樣本,違背獨立性假設,并且讓方差計算變得複雜。

例如下面例子,有1W使用者,假設每1K人有相同曝光和點選, CTR1=7.4%,CTR2=30.4%,顯然CTR1受到了離群點影響。

聊聊A/B實驗那些事兒

這兩種定義沒有對錯之分,都是CTR的有用定義。但使用不同的定義會得到不同的結果。一般兩個名額都會做成看闆。

陷阱3:稀釋效應陷阱

計算對觸發人群的實驗效應時,需要将效應稀釋到整個使用者群,如果在10%的使用者上增加3%的收入,那麼整體收入是否将提升10%*3%=0.3%?一般并沒有,總體效應可能是0–>3%之間任意值!

如果改動針對站使用者總體10%的低花費人群(花費為普通使用者的10%),且該改動将這部分使用者的營收提高3%,那麼對整體營收将提高=3%*10%*10%=0.03%。

聊聊A/B實驗那些事兒

陷阱4:樣本間資訊幹擾

我們假設實驗中每一個實驗個體是獨立的,不會互相影響,但使用者個體會因為社交網絡,對同一内容的互動資訊等導緻互相影響。

例如對社交類app有個政策“你可能認識的人”這個功能,實驗組更好的推薦政策,會促使使用者發送更多的邀請。然而接收到這些邀請的使用者可能在對照組,如果評估名額是總邀請量,那麼實驗組和對照組的邀請都會增加,是以測量出來的實驗組和對照組的差異會偏小。同樣一個人可能認識的人是有限的,是以新算法在一開始可能會表現更好,但由于供推薦的供應量限制,長期來看可能會達到較低的均衡。

那要如何應對上述問題呢,首先不是所有使用者行為都會出現網絡效應,我們可以界定特殊行為會造成影響,隻有這些行為被影響時,我們觀察特殊行為是否影響下遊的名額,同時重點分析該行為帶來的生态價值,根據行為對生态系統的價值和貢獻來考量最終決策。

陷阱5:混雜因素誤導

混雜因素是指與研究因素(暴露因素)和研究結果(結局因素)均有關、若在比較的人群組中分布不勻,可以歪曲(掩蓋或誇大)暴露因素與結局因素的真正聯系的因素。

聊聊A/B實驗那些事兒

例如:很多産品有一個現象:看到更多錯誤的使用者通常更少流失!

聊聊A/B實驗那些事兒

是以,可以嘗試顯示更多的錯誤以啟迪可以減少使用者流失嗎?當然是不可以,這種相關性是由一個共同願意造成的:使用度。重度使用者會看到更多錯誤,同時流失率更低。

如果發現某個新功能可以減少使用者流失,需要分析是新功能在起作用,還是因為高活躍使用者流失率低,同時更可能使用更多功能?

這種實驗就要拆分活躍度進行實驗。AB實驗是需要控制變量的,但控制的東西過多了,實驗變得束手束腳,具體控制哪些變量是非常值得思考的,有時候最終控制你真正想要測量的東西,那樣功虧一篑。

有些時候實驗結果給不了清晰的答案,但仍然要做出決策。對于這種情況,我們需要明确需要考慮的因素,尤其是這些因素如何影響實驗顯著和統計顯著的邊界設定。這些考慮會為為了決策提供基礎,而非局限于目前的單一決策。

本文由@李誓傑 原創釋出于人人都是産品經理,未經許可,禁止轉載。

題圖來自 Unsplash,基于CC0協定

繼續閱讀