如何支持億級用戶分流實驗?AB實驗平臺在愛奇藝的實踐
01
背景
隨著互聯(lián)網(wǎng)公司的產(chǎn)品和業(yè)務越來越多樣,利用數(shù)據(jù)來驅動業(yè)務決策成為必然,而AB實驗正是以數(shù)據(jù)指標來判斷產(chǎn)品功能和運營策略迭代效果的方法和工具,其可以在保證樣本同時性和同質性基礎上,對比兩個或多個實驗組在同一應用場景下的效果。

以上邊的實驗為例,通常一個AB實驗可以拆解出以下幾個步驟:
(1)找出優(yōu)化指標:提升用戶的轉化率;
(2)提出假設:改變前端交互的UI;
(3)創(chuàng)建實驗;
(4)衡量實驗效果:得出A組轉化率為23%,B組用戶轉化率為11%;
(5)繼續(xù)優(yōu)化或者結束實驗:得出A組更優(yōu),上線A組策略。
愛奇藝在日常業(yè)務中,有大量AB實驗落地場景。具體包含以下幾類:
(1)算法類
算法類AB實驗廣泛的應用在搜索、推薦、廣告等場景。算法同學通過AB實驗來驗證每一個新的策略(例如召回,排序等)對業(yè)務的提升。
(2) 產(chǎn)品功能類
互聯(lián)網(wǎng)產(chǎn)品形態(tài)的改動是可以被用戶最直觀感知的部分,一個錯誤的產(chǎn)品改動會對公司帶來巨大的損失。通過AB實驗小流量試錯,驗證效果后進行全量上線,降低產(chǎn)品迭代帶來的風險。
(3)運營類
在提倡精細化運營的時代,運營團隊會進行大量的運營策略。例如用戶運營(新用戶免廣,沉默用戶召回),會員運營(到期會員復購策略),內(nèi)容運營(重點內(nèi)容位置)。以上策略均可通過AB實驗來衡量哪一類類運營策略是更有效的。
基于以上廣泛的應用場景需求,愛奇藝搭建了一個AB實驗平臺,包含了實驗管理、用戶分流和效果展示等功能。本文將對愛奇藝AB實驗平臺的落地實踐進行詳述。
02
分流模型及相關概念
Google的論文《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》是互聯(lián)網(wǎng)行業(yè)進行AB實驗的理論基石,論文中闡述的重疊實驗框架,使得可在一個APP上同時進行可以說是無限個數(shù)的實驗。整個分流的模型如下:

圖1 分流模型
模型中有幾個核心的概念:
(1)域:一部分垂直切分好的流量,一個域可以包含若干層,一個層可以包含若干實驗 。
(2)層:一個或者多個實驗集合,層中每個實驗的流量都是互斥的。層與層之間是正交的。
(3)實驗:包含流量劃分配置和指標配置。實驗會將分配的流量劃分為多個實驗組,通過對比實驗組的效果驗證自己的假設。
03
架構實現(xiàn)
AB實驗已經(jīng)在各行業(yè)中有著廣泛的應用,愛奇藝AB實驗平臺參考了業(yè)界公司成功案例結合公司技術業(yè)務現(xiàn)狀進行構建。
如下圖,根據(jù)調研,結合愛奇藝的業(yè)務特性構建了與業(yè)界常用方案的一些改進點。
第一,增加了初始化的接口。APP首頁有一些時效性要求非常高的實驗,如果通過后端服務獲取實驗配置信息,需要消耗一定的時間,通過公司的云控平臺,將時效性非常高的實驗,在APP啟動那一刻實時調用AB SDK下發(fā)至后端服務中,節(jié)約了調用SDK的時間;
第二,在對業(yè)務提供SDK服務的同時,并發(fā)的通過在線服務的模式提供API獲取AB分組。這樣做的目的:全量人群實驗為了時效性通過SDK方式獲取用戶所屬分組。精準人群實驗為了人群的精準性,通過封裝API來提供對應的服務;
第三,與業(yè)界最大的不同點是,愛奇藝的AB日志并不是在前端埋點實現(xiàn)的,而是通過日志服務+AB SDK回放的方式來獲取行為數(shù)據(jù)用戶分組。后面在數(shù)據(jù)采集章節(jié)詳細介紹這類改進的原因及帶來的收益。

如上圖所示,愛奇藝AB實驗平臺主要包含AB實驗管理平臺、AB SDK分流、效果評估三個模塊,下面分別為大家介紹這三個模塊。
3.1 實驗管理平臺
AB實驗配置平臺包含實驗管理、指標管理。
實驗管理方便業(yè)務方在平臺上管理自己的實驗配置和生命周期。
一個完整的實驗配置包含實驗人群、關聯(lián)指標、流量劃分和白名單幾個核心功能。
(1)實驗人群:針對不同業(yè)務需求選取的用戶ID,目前分為全量人群和精準人群兩種類型。
其中,全量人群是指不做任何限制的人群;精準人群是指基于用戶畫像和行為圈定的人群,例如某一城市的人群,對電影頻道有偏好的人群。
(2)關聯(lián)指標:每個實驗需要關聯(lián)好需要優(yōu)化的指標,默認會關聯(lián)該業(yè)務線的北極星指標。用戶可以根據(jù)自己的需要添加其它的指標。
(3)流量劃分:將分配給該實驗的流量劃分為多個分組,每個分組有唯一標識。業(yè)務方根據(jù)標識執(zhí)行不同的策略。
(4)白名單:將用戶ID分配到指定的分組。白名單用戶會直接命中實驗分組,方便業(yè)務方測試及特定內(nèi)部用戶可以體驗實驗分組功能。
用戶創(chuàng)建好實驗后,有可能因為人群特性等原因導致分組的實驗效果差異較大,阻礙用戶進行效果分析。
為了解決該問題,我們提供了AA分流的功能,確保實驗分組的效果指標沒有顯著性差異。整個流程如圖如下:

圖3 AA分流
3.2 分流模塊
AB系統(tǒng)提供了HTTP 服務和SDK兩種形式的分流API供業(yè)務方使用。
最初AB系統(tǒng)提供HTTP 服務進行分流,HTTP服務的優(yōu)勢是改動靈活,并且不限制客戶端的語言。但HTTP服務每次分流都需要請求后端服務,并且會因為網(wǎng)絡原因出現(xiàn)抖動,某些延遲比較敏感的業(yè)務方無法接受。
后續(xù)開發(fā)了JAVA SDK 和 C++ SDK, SDK通過從AB服務定時獲取實驗配置,實現(xiàn)客戶端分流,避免網(wǎng)絡通信,縮短分流耗時。SDK 分流的過程如下圖:

圖4 分流流程圖
3.3 效果評估
效果評估是AB實驗核心環(huán)節(jié)之一,AB實驗平臺不但需要保證用戶分流的公平性,還需對實驗數(shù)據(jù)進行采集,效果統(tǒng)計,統(tǒng)計分析,以此來衡量實驗的成敗。打造AB實驗實驗閉環(huán)。
3.3.1 數(shù)據(jù)采集
傳統(tǒng)的AB實驗數(shù)據(jù)采集均使用數(shù)據(jù)埋點的方式,公司在最初進行數(shù)據(jù)統(tǒng)計時也采取了埋點的方式進行數(shù)據(jù)統(tǒng)計。隨著實驗數(shù)量增長,埋點方式開發(fā)模式過重,容易出現(xiàn)錯埋漏埋的問題。會造成以下后果:
(1)耗費較多時間進行問題排查;
(2)一旦發(fā)現(xiàn)是埋點的問題,實驗數(shù)據(jù)難以得到及時觀測,需要發(fā)版修正,極大地降低了實驗迭代效率。
因此我們決定放棄以前端埋點的方式進行數(shù)據(jù)統(tǒng)計。從推薦系統(tǒng)的特征回訪功能得到靈感,天秤基于公司的數(shù)據(jù)中臺、天秤SDK對日志數(shù)據(jù)模擬線上調用,對日志數(shù)據(jù)進行模擬回放,打上用戶所屬的AB實驗實驗分組,減少了對于APP埋點的依賴,實驗效果數(shù)據(jù)可快速回收,及時評估實驗效果。
3.3.2 效果統(tǒng)計
前面章節(jié)中,提到了兩個重要的概念:
(1)AB實驗管理平臺對接了指標系統(tǒng)將指標都管理起來。
(2)使用了離線回放的方式,得到用戶的AB實驗實驗分組。
基于以上兩項改進,在平臺上就可支持大部分實驗效果的統(tǒng)計,無需分析師或者數(shù)據(jù)開發(fā)進行定制化的報表開發(fā)。
3.3.3 統(tǒng)計分析
在前一章節(jié),實現(xiàn)了效果數(shù)據(jù)的分析。
在實驗組與對照組之間的指標一般都會存在指標差異。
如下表格,實驗組B相對于對照組,有0.01PP的點擊率提升。這個時候能否認定為實驗是成功的,我們可以全量上線B組策略呢?顯然是不能的,因為無法判斷這個實驗波動是不是在一個合理的區(qū)間范圍內(nèi),沒有完全排除實驗一些小波動帶來的影響。
| 對照組A | 實驗組B | 變化率 | |
| CTR | 45.35 | 45.36 | 0.01PP |
因此我們需要從統(tǒng)計學的角度出發(fā)來判定實驗是否是統(tǒng)計顯著的,實驗組與對照組之間是否存在顯著差異。在介紹愛奇藝的統(tǒng)計檢驗方式之前,先給大家介紹下常用的統(tǒng)計檢驗方法。
Z檢驗:一般用于大樣本(即樣本容量大于30)平均值差異性檢驗的方法。它是用標準正態(tài)分布的理論來推斷差異發(fā)生的概率,從而比較兩個平均數(shù)的差異是否顯著。在國內(nèi)也被稱作u檢驗。
T檢驗:主要用于樣本含量較?。ɡ鏽 < 30),總體標準差σ未知的正態(tài)分布。T檢驗是用t分布理論來推論差異發(fā)生的概率,從而比較兩個平均數(shù)的差異是否顯著。
卡方檢驗:卡方檢驗是統(tǒng)計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若兩個值完全相等時,卡方值就為0,表明理論值完全符合。

這里愛奇藝最終選用了T檢驗的方法。為什么會選用T檢驗呢?主要出于以下幾個方面的考慮:
(1)通過前一章節(jié),AB實驗平臺已經(jīng)計算出了實驗關心的各項指標,例如人均觀影時常,對應場景的CTR,UCTR等日均指標;
(2)基于以上指標,以至少7天實驗為一個周期(文娛類APP有周末效應),可快速的計算出實驗組與對照組是否有顯著差異。
由于篇幅原因,具體T檢驗的算法不在此贅述。
04
實踐介紹
目前愛奇藝AB實驗系統(tǒng)已經(jīng)服務于公司多個業(yè)務線,線上實驗個數(shù)1300+,真正實現(xiàn)了“通過數(shù)據(jù)驅動業(yè)務”。
下圖是公司產(chǎn)品團隊在愛奇藝APP 電視劇頻道頁進行的頁面UI改版AB實驗。提升用戶使用時長是愛奇藝APP核心目標之一,基于AB實驗步驟,產(chǎn)品通過對到訪過電視劇頻道頁的用戶畫像分析特點,從產(chǎn)品的角度出發(fā),將頻道頁的UI交互設計進行相應調整如下圖:

A:電視劇頻道頁(舊)

B:電視劇頻道頁(新)
A組為對照組——舊版頻道頁樣式,B組為實驗組——新版頻道頁。
最后通過AB實驗衡量效果,新版頻道頁的人均正片時長提升了17.85%,如趨勢圖,有著顯著的提升。從數(shù)據(jù)上佐證新版頻道頁是要顯著優(yōu)于舊版頻道頁,佐證了產(chǎn)品優(yōu)化是成功的,為產(chǎn)品優(yōu)化提供了決策依據(jù)。

目前平臺還在快速迭代中,未來有以下幾個方向的改進點:
(1)效果評估集中統(tǒng)計顯著的算法上,急需將功效算法納入考慮;
(2)部分實驗由于樣本量不足,難以得到準確的實驗結論。后續(xù)會基于實驗目標提示值給業(yè)務樣本量預估功能。
— 完 —
點這里??關注我,記得標星呀~
前線推出學習交流一定要備注:研究/工作方向+地點+學校/公司+昵稱(如JAVA+上海 掃碼加小編微信,進群和大佬們零距離
END 后臺回復“電子書” “資料” 領取一份干貨,數(shù)百面試手冊等 歷史推薦
面試官:"遇到過死鎖問題嗎?怎么發(fā)生的?如何解決呢?"
好文點個在看吧!
