[TOCE] 31 P4-C15-S1 加速實驗曝光:權衡速度,質量和風險

Trustworthy Online Controlled Experiments Part 4 Chap 15


成功的真正衡量標準在24小時內可以進行多少實驗。
– Thomas A. Edison

為什么重要
盡管實驗被廣泛采用以加速產品創新,但是創新的速度可能會受到實驗方式的限制。為了控制與新功能發布相關的未知風險,我們推薦斜坡實驗過程,以逐步增加新功能的流量。如果我們不按原則進行此操作,實驗新功能的過程可能會導致低效和風險,并隨著實驗規模的增加而降低產品的穩定性。有效地提高效率需要平衡三個關鍵因素:速度,質量和風險。

什么是斜坡過程?

我們經常談論使用足夠的流量來為實驗提供足夠的統計能力。在實踐中,通常會進行一個漸變過程來控制與新功能發布(即受控曝光)相關的未知風險。例如,一項新功能可能始于僅向一小部分用戶公開。如果這些指標看起來合理并且系統可以擴展,那么我們可以為更多的用戶提供該功能。逐步增加流量,直到達到實驗目的。最著名的負面例子之一是Healthcare.gov的首次啟動。該網站在第一天向全部用戶推出時便崩潰了,這時候它還沒有準備好處理大負載。如果他們按地理區域或姓A-Z推出站點,則可以緩解這種情況。堅持漸進的發布過程成為隨后軟件發布的規范(Levy 2014)。

如何確定需要哪些增量斜坡? 以及每個增量應運行多長時間?太慢會浪費時間和資源。過快可能會傷害用戶體驗,并可能導致做出次優決策。盡管我們按照第4章中所述的完全自助式平臺使實驗民主化,但我們需要有關如何逐步引導實驗的原則,理想情況下,還需要工具來實現流程自動化和大規模實施。

我們主要專注于提升的過程。當處理質量不佳時,通常會使用下降功能,在這種情況下,我們通常會非常快地將其關閉至零,以限制用戶的影響。此外,大型企業通常能夠控制自己的客戶端更新,因此在發現問題后,他們可以及時的停止實驗。

SQR (Speed, Quality, Risk)爬坡框架

在爬坡過程中, 如何在控制風險和提高決策質量的同時快速進行迭代?換句話說,我們如何平衡速度,質量和風險(SQR)?這需要,考慮為什么我們要進行受控的在線實驗:

  • 衡量干預的影響和投資回報率(ROI)(如果啟動至100%)。

  • 通過在實驗過程中(即產生負面影響時)最大程度地降低對用戶和業務的損害和成本來降低風險。

  • 要了解用戶的反應(最好按細分受眾群),以識別潛在的錯誤并為將來的計劃提供信息。這既可以作為運行任何標準實驗的一部分,也可以作為學習的一部分(請參見第5章)。

如果進行受控實驗的唯一原因是進行測量,我們可以在最大Power 斜率(MPR)下運行實驗,這通常意味著向治療提供50%的流量分配以提供最高的統計靈敏度,假設我們的目標是將該治療提升至100%。這為我們提供了最快,最精確的測量。但是,我們可能不想從MPR開始-如果出現問題怎么辦?這就是為什么我們通常從較小的風險敞口開始,目標是控制影響并減輕潛在風險。

最大Power 斜率(MPR): 如果該實驗僅用一種治療就可實現全部100%的流量,則兩次樣本t檢驗中的方差與1 / q(1- q)成正比,其中q是治療流量百分比。在這種情況下,MPR 使用50/50的流量分配。如果在一種治療和一種對照之間只有20%的流量可用于實驗,則MPR的拆分為10/10,依此類推。如果有四個變體將流量分成100%,則每個變體應獲得25%的流量。

我們可能還需要介于MPR和100%之間的中間斜坡階段。例如,出于運營原因,我們可能需要測試75%,以確保新服務或端點可以擴展以適應不斷增加的流量負載。

另一個常見的目標是學習。雖然學習應該是每個坡度的一部分,但是我們有時會運行長期的坡度實驗,其中一小部分用戶(例如5–10%)在一段時間(例如兩個月)內不接受新功能, 這主要出于學習目的。目的是了解MPR期間測得的影響是否長期可持續。請參閱第23章中的更多討論。

四個斜坡階段

image.png

圖15.1說明了在四個斜坡階段平衡速度,質量和風險的原理和技術。

為簡單起見,假設我們的目標是將單次治療的劑量提高到100%,那么MPR的治療劑量為50%。將所有部分放在一起,SQR框架將整個斜坡過程分為四個階段,每個階段都有一個主要目標。

第一階段主要是為了降低風險,因此SQR框架專注于權衡速度和風險。第二階段是精確測量,因此重點放在權衡速度和質量上。最后兩個階段是可選的,可解決其他運營問題(第三階段)和長期影響(第四階段)。

斜坡第一階段:MPR前

在此階段,主要任務是確保低風險,并迅速上升到MPR。可以使用以下方法:

  1. 創建測試人群的“環”,并逐漸將“干預”暴露于連續的環中,以降低風險。通常,最初的一環是為了獲得定性反饋,因為根本沒有足夠的流量來獲取有意義的數據。下一個環可以進行定量測量,但由于統計功效低,因此仍不受控制。可以在早期不穩定期發現許多錯誤。請注意,由于這些用戶很可能是“內部人員”,因此對早期環的測量可能會有偏差。常用的環有:

a)列入白名單的個人,例如實施新功能的團隊。可以從團隊成員那里得到逐字反饋。

b)公司員工,因為如果存在錯誤,他們通常會更寬容。

c)Beta用戶或內部人員,他們往往會愿意發生和并且比較忠誠,希望早日看到新功能,并且通常愿意提供反饋。

d)數據中心隔離可能難以識別的交互,例如內存泄漏 或其他不適當的資源使用(例如重載磁盤I / O)(請參閱第22章)。在Bing,常見的增長方式是單數據中心流量較小(例如0.5–2%)。當單個數據中心的流量增加到正常水平時,所有數據中心都可以增加流量。

  1. 自動進入的流量,直到達到所需的分配。期望的分配可以是特定的環,也可以是預設的流量分配百分比。即使所需的分配比例很小(例如5%),多花一個小時達到5%也可以在不增加太多延遲的情況下限制不良bug的影響。

3.對關鍵護欄指標進行實時或近實時測量。越早了解實驗是否有風險,就可以更快地決定進入下一階段。

斜坡第二階段:MPR

MPR是專用于測量實驗影響的斜坡階段。我們在整本書中圍繞產生可信賴的結果進行的許多討論都直接應用于此階段。我們想強調一下我們的建議,即在MPR上進行實驗一周,如果存在新鮮效應 或首要效應 (novelty or primacy effects),則建議更長的時間。

該斜坡階段必須足夠長才能捕獲與時間有關的因素。例如,一個僅運行一天的實驗將使結果偏向重度使用的用戶。同樣,在工作日訪問的用戶與在周末訪問的用戶往往會有所不同。

雖然通常在較長的實驗中會獲得較小的方差,但是當我們等待更長的時間時,收益會遞減。根據我們的經驗,如果干預效果沒有新鮮效應 或首要效應趨勢,則一周后獲得的精度往往會降低。

斜坡第三階段:MPR后

到實驗結束MPR階段時,就不必再擔心最終用戶的影響了。理想情況下,運營問題也應在較早的升級過程中解決。對于某些工程基礎架構的流量負載增加存在一些擔憂,這些流量可能需要保證在達到100%之前逐漸增加。這些爬坡只需要一天或更短的時間,通常可以在嚴密監視下覆蓋高峰流量時段。

斜坡第四階段:長期運行或復制

我們已經看到,長期運行(也稱為保留)越來越受歡迎,在這種運行模式中,某些用戶很長時間沒有接觸到Treatment。我們要警告不要在擴展過程中將長期存檔作為默認設置。除了成本外,當我們知道有出色的體驗但故意拖延其發布時,尤其是在客戶花費均等的情況下,這可能也是不道德的。僅在確實有用時才決定進行長期運行。在以下三種情況下,我們發現長期堅持很有用:

1.長期效果可能不同于短期(請參閱第23章)。這可能是因為:

a. 已知該實驗具有新穎效應或首要效應,或者
b.對關鍵指標的短期影響如此之大,以至于我們必須確保由于財務預測或其他原因,這種影響是可持續的
c.短期影響很小甚至沒有,但是團隊相信會產生延遲的影響(例如,由于采用或可發現性)

2.當早期指標度量標準顯示影響力時,但“真正”度量標準是一項長期度量標準,例如一個月的保留期。

3.當減少方差有利于持有更長的時間(請參閱第22章)。

有一個誤解,認為應始終對“干預”中的大部分流量(例如90%或95%)進行抑制。雖然這通常可能會很好地起作用,但對于此處討論的情景,這樣做會導致其短期影響很小,以至于無法在MPR上檢測到。 如果可能,我們應該繼續在MPR上進行實驗。通過運行更長的時間獲得的統計靈敏度, 通常不足以彌補將MPR設置為90%帶來的靈敏度損失。

除了實驗級別的保留之外,還有一些公司擁有較嚴格的保留,其中長期(通常為四分之一)的任何功能發布都保留了一部分流量,以衡量整個實驗的累積影響。 Bing進行了一次全球支持,以衡量實驗平臺的開銷(Kohavi等,2013),其中10%的Bing用戶無法進行任何實驗。也可以進行反向實驗:在實驗完成的幾周(或幾個月)后,將用戶重新置于“對照”中(請參閱第23章)。

當實發現驗結果令人驚訝時,一個好的法則是復制它們: 使用另一組用戶或正交重新隨機化重新運行實驗。如果結果保持不變,則可以更加放心結果是可信賴的。復制是消除虛假錯誤的簡單而有效的方法。此外,當實驗進行了多次迭代時,最終迭代的結果可能會向上偏移。復制運行減少了多次測試的顧慮,并提供了無偏估計。請參閱第17章,了解更多討論。

發布最終斜坡

我們沒有討論將實驗提高到100%后會發生什么。根據實驗的實施細節(請參見第4章),可能需要進行不同的后斜坡清理。如果實驗系統使用基于版本分配創建代碼分支的體系結構,則應在啟動后清除無效的代碼路徑。如果實驗系統使用參數系統,則清除僅意味著將新的參數值用作默認值。在快速發展的開發過程中,可能會忽略此過程,但這對于保持生產系統的健康至關重要。例如,在第一種情況下,如果意外執行了一段時間未維護的無效代碼路徑,這可能是災難性的,這可能導致實驗系統停機。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容