滴滴資料驅動利器 AB實驗之分組提效

2021-10-06 15:06:47 字數 3765 閱讀 9856

網際網路公司中,當使用者規模達到一定的量級之後,資料驅動能夠幫助公司更好的決策和發展。在滴滴各個團隊中,我們經常會面臨不同的產品設計方案的選擇或者多個演算法方案的決策,比如頂部導航欄的排序方案一二三,派單演算法一二三等等。傳統的解決方法通常是由該領域經驗豐富的專家來決定,或者由團隊成員討論決定,有時候甚至是隨機選擇乙個方案上線。雖然在某些情況下傳統解決辦法也是有效的,但是讓ab實驗後的資料說話,會讓方案選擇更加有信服力。

一次完整的ab實驗可以分為以下幾步:

第一步: 設計實驗方案,包括確定實驗物件,劃分實驗組,確定實驗提公升目標等。

第二步: 進行人群分組,一般是乙個空白組加乙個或多個實驗組

第三步: 將需要實驗的策略,方案或者功能施加到各個組,收集資料

第四步: 對實驗關心的指標進行分析觀察

本文主要討論其中第二步的實現。業界在進行實驗物件分組的時候,最常用的是隨機分組方式。這也是滴滴諸多實驗中佔比最大的分組方式。隨機分組的做法可以實現為對實驗物件的某個id欄位進行雜湊後對100取模,根據結果值進入不同的桶,多個不同的組分別占有一定比例的桶。實驗物件在雜湊取模之後,會得到0 ~ 99的乙個數,即為該實驗物件落入的桶。這個桶所屬的組就是該實驗物件的組。

上述的這種分組方式稱為cr(complete randomization)完全隨機分組。進行一次cr,能將一批實驗物件分成對應比例的組。但是由於完全隨機的不確定性,分完組後,各個組的實驗物件在某些指標特性上可能天然就分布不均。均值,標準差等差異較大。如果分組不均,則將會影響到第四步的實驗效果分析的進行,可能遮蓋或者誇大實驗的效果。

待分流的個體具備一定的內在特點,比如就gmv這個指標來說,人群中會存在高gmv,中等gmv,低gmv等不同層次的使用者。如下圖所示,對於實驗人群進行完全隨機分流的方式,存在一定概率的不均勻,比如高gmv人群在某個組中的分配比例偏高,導致兩個組的gmv相對差異較大。比如一次實驗中,希望提公升北京市的gmv 1%,在進行分組之後,實驗組的人群gmv天然就比對照組的人群gmv高2%。這樣實驗進行的結果就變的無法比較。如果沒有注意到實驗前的組間不均情況,甚至可能驗證出錯誤的結論。

基於cr的風險較大的情況,一般會對cr進行簡單的一步優化,即進行rr(rerandomization)。rr是在每次跑cr之後,驗證cr的分組結果組間的差異是否小於實驗設定的閾值。當各組的觀察指標小於閾值或者重新分組次數大於最大允許分組次數後,停止分組。

相比於cr,rr通過犧牲計算時間,能在一定概率上得到符合要求的分組。重分組次數與輸入的實驗物件樣本大小相關。樣本量越大,需要進行重分的次數一般較少。但是rr分組能得到符合要求的分組有一定的概率,且需要花更多的時間。所以,我們希望通過對分組演算法的改進,在一次分組過程中分出觀察指標均勻的分組結果,如下圖所示。

apollo實驗平台實現了滴滴ai lab團隊設計的adaptive(自適應)分組演算法。adaptive分組方法可以在只分組一次的情況下,讓選定的觀測指標在分組後每組分布基本一致,可以極大的縮小相對誤差。相比於傳統的cr分組,adaptive分組的演算法更加複雜,在遍歷人群進行分組的同時,每個組都需要記錄目前為止已經分配的樣本數,以及已經分配的樣本在選定的觀測指標上的分布情況。從分流人群中拿到下乙個要分的物件後。會對實驗的各個組進行計算,計算該物件如果分配到本組。本組的觀測指標分布得分情況。然後綜合各個組的預分配得分情況,得到最終各個組對於該實驗物件的分配概率。

系統互動流程如下:

adaptive分組方案的設計與實現復用了apollo ab實驗已有離線分組架構的能力。使用者在實驗平台通過api介面或者頁面建立完adaptive實驗之後,實驗平台會將分組需求傳送到分組任務管理系統,生成分組任務存入資料庫中。adaptive分組執行分為以下幾個步驟:

首先分組任務管理系統從資料庫中獲取需要進行分組的任務。然後根據任務型別呼叫不同的分組服務。adaptive分組服務從資料庫中獲取實驗對應的計算資訊。根據實驗計算資訊中的觀察指標,從hive中獲取指標資料,根據人群資訊的位址獲取人群資料。執行完分組演算法之後,將分組結果寫入hdfs。

將人群shuffle打亂之後,對於人群的前2 * k(k是組數)的人進行隨機分組,保證每個組中至少有兩個樣本之後再開始進行adaptive分組。

根據實驗的組以及每個組的人群比例計算出各個組的直接分配概率和間接分配概率。每個組上的直接分配概率和間接分配概率,分別表示了在直接分配以及間接分配情況下,選中該組後,樣本分配到各個組的概率。根據已經分配的樣本資料,初始化觀測指標分布情況。

計算各組已分配樣本數和組所佔比例之間的關係,得到各個組的平衡係數bs,如果各個組的比例平衡係數相差較大,則進行直接分配。選用bs最小的組的直接分配概率來分配接下來的乙個樣本。通過直接分配來粗粒度的調整各組的分配比例。如果平衡係數相差不大,則走接下來的指標分布計算,來決定使用哪個組的間接分配概率。

計算將要分配的乙個樣本,如果分配到組k後,組k的指標分布得分ms k,ms是根據anova模型計算出來的每個組在各個觀察指標上的均值,方差情況。通過比較各組的ms,選出向下偏離平均水平的組,以該組的間接分配概率作為各個組本樣本的分配概率。

通過上述的流程,無論使用直接分配還是間接分配,最終得到乙個樣本的實際分組後。用這個樣本在各個觀測指標上的資料更新分配到的組的指標分布資料。如此遍歷,直到分配完所有樣本。

使用adaptive分組之後,1次分組得到符合要求的分組概率超過95%。

而不同演算法間對於組間差異的實際優化情況不僅是與演算法有關,也和進行分組的人群的大小,人群的分布特性相關。一般來說,人群大小越大,分布越均勻,使用隨機分組的分組結果就會越好。組間差異會越小。下面進行測試的資料人群規模不大,所以直接隨機分組的差異會顯得比較大,並不代表所有情況。

每種方式均執行了400次,統計指標的組間最大差異。cr方式的差異最大,最大差異可能達到14%以上。rr在cr的基礎上,通過時間換準確性,較大的降低了組間差異,最大組間差異能在2.7%以下,但是這個差異依然在實驗中不能被接受。car通過演算法的優化,進一步降低了組間的差異。95%的情況下能把差異控制在0.8%以下。

滴滴工程效能團隊肩負通過工程技術持續提公升組織效能的使命,致力於建設世界一流的工程能力體系。為工程師提供極致的工作體驗,打造高效能研發組織。

2023年北郵碩士畢業加入滴滴。在工程效能團隊apollo ab實驗專案組,從事實驗效果評估相關工作,負責實驗科學性相關的研究。

本文由部落格**一文多發等運營工具平台 openwrite 發布

Android驅動除錯利器Busybox之初體驗

工欲善其事必先利其器,之前做wince開發時,經常寫一些小工具以提高開發除錯的效率,如wince驅動除錯助手 wince串列埠除錯助手 wince6.0暫存器訪問工具 wince遠端桌面助手和s3c2410 iic除錯助手等,雖然有些功能不算完善,但在實際工作中還是發揮了一些作用。現在搞androi...

leetcode 滴滴 滴滴出行招資料分析實習生

滴滴出行 小桔車服平台招募商業分析實習生 你可能承擔的工作職責 1 支援相關專案的經營分析工作,週期性更新監控報表,對專案經營狀況進行分析,發現並定位業務問題 2 基於業務分析的發現,參與相關策略制定,解決業務中存在的問題 3 全流程參與專案,協助團隊推進專案的試點及在全國範圍的落地 4 支援部門其...

如何用 A B 測試驅動產品增長?

產品轉化率不高怎麼優化?獲客成本居高不下怎麼破?怎樣優化產品才能提公升使用者留存?有什麼方法能獲得更高的使用者增長?a b 測試是什麼?如何用 a b 測試引爆使用者增長?如果你關注產品 運營和使用者增長,相信你一定對這些問題感興趣。來自 testin 的 ab 測試資深專家為您分享 camera ...