注意,你所做的 A/B 實驗,可能是錯的!

位元組跳動資料平臺發表於2022-01-10

對於 A/B 實驗原理認知的缺失,致使許多企業在業務增長的道路上始終在操作一批“錯誤的 A/B 實驗”。這些實驗並不能指導產品的優化和迭代,甚至有可能與我們的初衷背道而馳,導致“負增長”。

在 A/B 實驗不斷走紅的今天,越來越多的企業開始意識到 A/B 實驗的重要意義,並試圖通過 A/B 實驗,前置性地量化決策收益,從而實現增長。然而,當你和其他業務夥伴談及 A/B 實驗時,你總能聽到這樣的論調:

“這事兒很簡單,做個實驗就行了。準備兩個版本,在不同渠道里發版,然後看看資料。”

“把使用者按照 did(device_id)尾號奇偶分流進實驗組和對照組,然後看看資料表現。”

不可否認,這部分企業的確走在前沿,初步擁有了 A/B 實驗的思維。然而令人遺憾的是,他們操作的所謂“A/B 實驗”,其實並不具備 A/B 實驗應有的功效。

更令人遺憾的是,他們似乎對此並不知曉。

對於 A/B 實驗原理認知的缺失,致使許多企業在業務增長的道路上始終在操作一批“錯誤的 A/B 實驗”。這些實驗並不能指導產品的優化和迭代,甚至有可能與我們的初衷背道而馳,導致“負增長”。

因此,為了能夠更好地明白什麼是 A/B 實驗,我們不妨先來了解幾種錯誤的 A/B 實驗。

No1:使用者抽樣不科學

典型表現

“使用者抽樣不科學”是錯誤 A/B 實驗的第一宗罪。操作這種錯誤 A/B 實驗的企業常採取以下做法:

實驗中,在不同的渠道/應用市場中,釋出不同版本的 APP/頁面,並把使用者資料進行對比;

簡單地從總體流量中抽取 n%用於實驗,不考慮流量分佈,不做分流處理(例如:簡單地從總體流量中任意取出 n%,按照 ID 尾號單雙號把使用者分成兩組)。

錯在哪兒

不同應用市場/渠道的使用者常常帶有自己的典型特徵,使用者分佈具有明顯區別。對總流量進行“簡單粗暴”地抽樣也有著同樣的問題——分流到實驗組和對照組的流量可能存在很大的分佈差異。

實際上,A/B 實驗要求我們,儘可能地保持實驗組和對照組流量分佈一致(與總體流量也需保持分佈一致),否則得出的實驗資料並不具有可信性。

為什麼要保持分佈一致呢?我們不妨來看一個問題:

某大學由兩個學院組成。

  • 1 號學院的男生錄取率是 75%,女生錄取率 49%,男生錄取率高於女生;

  • 2 號學院男生錄取率 10%,女生錄取率 5%,男生錄取率同樣高於女生。問:綜合兩個學院來看,這所大學的總體錄取率是否男生高於女生?

直覺上來說,許多人會覺得,男生錄取率總體上會高於女生。然而事實並不是這樣,讓我們來看看實際數字:

從上表可以看出,儘管兩個學院男生錄取率都高於女生,但綜合考慮兩個學院的情況時,男生的總體錄取率卻要低於女生。這種現象在統計學中被稱為辛普森悖論。

辛普森悖論由英國統計學家 E.H 辛普森於 1951 年提出。其主要內容是:幾組不同的資料中均存在一種趨勢,但當這些資料組合在一起後,這種趨勢消失或反轉。其產生的原因主要是資料中存在多個變數。這些變數通常難以識別,被稱為“潛伏變數”。潛伏變數可能是由於取樣錯誤造成的。

在 A/B 實驗中,如果實驗組和對照組的樣本流量分佈不一致,就可能產生辛普森悖論,得到不可靠的實驗結果。

分流是 A/B 實驗成功與否的關鍵點,在早期企業還不具備過硬研發能力情況下,想要真正做對 A/B 實驗,最佳方法是藉助第三方實驗工具中成熟的分流服務。

火山引擎 A/B 測試長期服務於抖音、今日頭條等頭部網際網路產品,分流服務科學可靠,並且能夠支撐億級 DAU 產品進行 Push 實驗,在高併發場景下保持穩定,幫助我們從總體流量中更加均勻地分流樣本,使實驗更科學。

No2:互斥層選擇錯誤

典型表現

接入了實驗工具,A/B 實驗就能做對了嗎?也不盡然。許多實驗者在進行實驗操作時,將有關聯性的實驗放置在不同的實驗互斥層上,導致實驗結果不可信。

何謂“互斥層”?在火山引擎 A/B 測試中,“互斥層”技術是為了讓多個實驗能夠並行,不相互干擾,且都獲得足夠的流量而研發的流量分層技術。

假設我現在有 4 個實驗要進行,每一個實驗要取用 30%的流量才能夠得出可信的實驗結果。此時為了同時執行這 4 個實驗就需要 4*30%=120%的流量,這意味著 100%的流量不夠同時分配給這 4 個實驗。那麼此時我只能選擇給實驗排序,讓幾個實驗先後完成。但這會造成實驗效率低下。試想一下,抖音每天有上千個實驗要進行,如果只能排隊挨號,抖音的實驗 schedule 恐怕要排個 10 年。

那麼有沒有辦法可以解決這個問題呢?

有,就是使用互斥層技術,把總體流量“複製”無數遍,形成無數個互斥層,讓總體流量可以被無數次複用,從而提高實驗效率。

各互斥層之間的流量是正交的,你可以簡單理解為:在互斥層選擇正確的前提下,流量經過科學的分配,可保證各實驗的結果不會受到其他互斥層的干擾。

在選擇互斥層的時候,實驗者應當要遵循的規則是:假如實驗之間有相關性,那麼實驗必須置於同一互斥層;假如實驗之間沒有相關性,那麼實驗可以置於不同互斥層。如果不遵循這一原則,那麼 A/B 實驗就會出問題。

錯在哪兒

那麼,問題究竟是出在了哪兒呢?

對於實驗需求旺盛的企業來說,互斥層技術完美解決了多個實驗並行時流量不夠用的問題。然而,亂選互斥層會導致實驗結果不可信。為什麼?舉個例子,現在我們想對購買頁面的購買按鈕進行實驗。

我們作出兩個假設:

  • 假設 1:將購買按鈕的顏色從藍色改為紅色,使用者購買率可以提高 3%;

  • 假設 2:將購買按鈕的形狀從方形改為圓形,使用者購買率可以提高 1.5%。

針對上述兩個假設,我們需要開設兩個實驗:一個針對按鈕顏色,一個針對按鈕形狀。兩個實驗均與購買按鈕有關係,具有明顯的關聯性。這兩組實驗是否可以放在不同互斥層上呢?

**情況 1:相關實驗置於不同層 **
如下圖,我們把兩個實驗分別放置在兩層上,同時開啟兩個實驗。此時使用者 A 開啟了我們的購買頁面,進入到總體流量之中。在互斥層 1 裡,使用者被測試按鈕顏色的實驗命中,進入實驗組 Red;在互斥層 2 裡,使用者被測試按鈕形狀的實驗命中,進入實驗組 Round。

由圖可知,使用者 A 將受到“按鈕顏色 Red”以及“按鈕形狀 Round”兩個策略影響,我們無法判斷究竟是哪個策略影響了該使用者的行為。換句話說,由於兩個實驗存在關聯,使用者重複被實驗命中,實驗結果實際受到了多個策略的影響。這種情況下,兩個實驗的結果便不再可信了。

**情況 2:相關實驗置於同一層 **
換個思路,如果將上面的兩個實驗放置在同一層上,那麼使用者在進入實驗後便只會被一個實驗命中。兩個實驗組均只受到一個策略影響,實驗結果可信。

企業在進行 A/B 實驗時,工具是基礎設施,在實際業務,我們還需要結合具體的實驗場景,進行正確的實驗設計。

No3:不考慮是否顯著

典型表現

實驗結束後,只簡單地觀測實驗資料的漲跌,不考慮實驗結果是否顯著。

錯在哪兒

“顯著”是一個統計學用詞,為什麼我們需要在評估實驗結果時引入統計學呢?

我們已經知道,A/B 實驗是一種小流量實驗,我們需要從總體流量中抽取一定量的樣本來驗證新策略是否有效。然而抽樣過程中,樣本並不能完全代表整體,雖然我們竭盡全力地進行隨機抽樣,但最終仍無法避免樣本和總體之間的差異。

瞭解了這一前提我們就能明白,在 A/B 實驗中,如果只對資料進行簡單的計算,我們對於實驗結果的判斷很可能會“出錯”(畢竟我們通過實驗觀測得到的是樣本資料,而不是整體資料)。

那麼,有什麼辦法去量化樣本與總體之間的差異對資料指標造成的影響呢?這就需要結合統計學的方法,在評估實驗結果時加入相應的統計學指標,如置信度、置信區間、統計功效等。

原則上,如果實驗結果不顯著(或說不置信),我們便不能判斷資料的漲/跌,是否是由實驗中採取的策略造成的(可能由抽樣誤差造成),我們也不能盲目地全量釋出新策略/否定新策略。

A/B 實驗中的統計學原理是一個較為龐大複雜的課題,介於篇幅,我們在此暫不做展開解釋。對這部分內容感興趣的讀者也可持續關注「位元組跳動資料平臺」,我們在後期會推出相應內容來為大家進行講解。需要明確的一點是:評估 A/B 實驗,絕不僅僅是比較下實驗組和對照組的資料高低這麼簡單。

在實驗結果評估方面,好的實驗平臺需要具備兩個特點:第一是可靠的統計策略,第二是清晰、完善的實驗報告。相較於市面上其他實驗工具,這兩個特點正是火山引擎 A/B 測試的優勢所在。

在統計策略方面,火山引擎 A/B 測試的統計策略長期服務於抖音、今日頭條等產品,歷經打磨,科學可靠;在實驗報告方面,從概覽至指標詳情,火山引擎 A/B 測試依託於經典統計學的假設檢驗方法,結合置信度、置信區間,幫助實驗者全方位的判斷實驗策略收益。

作為網際網路公司的新寵,A/B 實驗確有其獨到之處,但淺顯的實驗認知、錯誤的實驗方法,可能會致使企業在增長的道路上“反向前行”。此處讓我們借用一句經典的影視臺詞吧:“發生這種事,大家都不想的。”

事實上,本文中所提及的“錯誤的 A/B 實驗”,只是最淺顯的 3 種,在產品增長的道路上,潛伏在一旁埋伏著實驗者的“大坑”還有很多,我們也會陸續教給大家如何“避坑”。

關聯產品
火山引擎 a/b 測試
擺脫猜測,用科學的實驗衡量決策收益打造更好的產品,讓業務的每一步都通往增長。

​歡迎關注位元組跳動資料平臺同名公眾號

相關文章