1. 程式人生 > >如何省時省力驗證模型效果?達觀資料線上分層實驗平臺給你支招

如何省時省力驗證模型效果?達觀資料線上分層實驗平臺給你支招

背景

隨著大資料和人工智慧時代的到來,資料的驅動使得企業經營決策和精細化運營的效果指標的量化評估成為可能,企業的決策和運營也越來越離不開資料的支援。尤其是朝夕萬變的網際網路行業,產品創新和決策都需要快速得到使用者反饋的資料去不斷的迭代更新。 產品的新特性是否會受到使用者的歡迎?新優化的模型和策略的線上效果如何?如何低成本的進行快速且量化的效果驗證? 答案是A/B test實驗

事實上,一個高效的A/B test線上實驗平臺已經成為各大網際網路公司進行產品迭代和策略優化的標配工具。A/B測試是網際網路公司實現資料驅動的基礎,Microsoft、Google, Amazon、Facebook都在這方面做了大量的工作,騰訊、阿里、百度等國內主流網際網路公司也紛紛各自構建了一套支援產品迭代和策略優化的A/B test線上實驗平臺。

達觀資料的演算法和工程團隊每天都在持續不斷地嘗試各種演算法模型的升級和策略優化,而這些演算法模型和策略有的相互獨立,有的相互影響。為了對這些模型和策略進行有效的量化效果評估,我們借鑑了谷歌的 ”Overlapping Experiment Infrastructure”中的思想搭建了達觀資料線上分層實驗平臺。該實驗平臺可以支援同時執行多個並行實驗,支援多種分流模式,支援自動灰度釋出,支援實驗效果的實時反饋和視覺化(達觀資料桂洪冠)。

 

分層實驗模型

達觀資料線上分層實驗平臺的設計借鑑了谷歌2010年在KDD上公佈的分層實驗框架,並在其基礎上根據我們的應用特點進行了大量的裁剪。谷歌分層實驗框架對實驗空間進行了縱向

橫向兩個維度的劃分,其中縱向的劃分是對應的概念,橫向的劃分對應的概念。是指流量的一個劃分(指對一部分流量的獨佔),是指系統引數的一個子集,而實驗是指在一個流量劃分上,進行零個或多個引數的修改,並最後改變請求處理的過程。概念還是比較抽象,我們來看一個栗子:

如上圖,流量先被分成兩個域,左邊是一個只有單一層的非重疊域,右邊是一個三層的重疊域。在這種情況下,每個請求要麼被分到非重疊域要麼被分到重疊域。如果請求在非重疊域(上圖左側),那麼請求最多在一個實驗中(這個實驗可以改變引數集合中的任意引數的值),如果請求在重疊域(上圖右側),那麼請求可以通過三個實驗層總共九個實驗中。每個實驗層可以根據不同的流量劃分策略把流量分配到相應引數集的實驗中。

下圖是一個更具體的栗子,左側是非重疊域,右側分為3層,分別是UI層搜尋結果層廣告結果層

根據我們的實踐經驗,一般每一層劃定一個批次實驗,這個批次試驗中有一個是基準實驗,其它的屬於對比實驗,基準實驗以及每個對比試驗都對應一個試驗引數集(達觀資料桂洪冠)。

 

分層實驗模型特性

分層實驗模型具備如下一些特性:

特性1:縱向域劃分,橫向層劃分。

特性2:相互關聯的策略引數位於相同實驗層,相互獨立的策略引數位於不同實驗層。

特性3:流量在不同實驗層之間根據不同的分流策略被重新分配,不同層的實驗流量是正交的。

特性4:不同實驗層之間的實驗相互獨立。

特性5:模型的釋出層(Launch Layers)可以實現實驗流量的灰度釋出直至全流量釋出。

 

流量分配策略

分層實驗模型常見的流量分配策略:

策略1:隨機分配

優點是簡單自然,缺點是使用者的請求會在不同引數集的實驗中“穿梭”,造成使用者體驗上的不一致性。

策略2:按照cookie或使用者id取模進行分配

此種流量劃分方式可以確保使用者的請求被分配到固定的實驗中,不會造成使用者體驗的不一致。

策略3:按照cookie+日期取模進行分配

這種方式是綜合了cookie和日期的資訊後再取模,採用這種方式的話,一個實驗一天內圈定的cookie是固定的,但隨著日期的變更會圈定不同的cookie。

策略4:按照業務欄位進行分配

這種方式可以滿足特定的實驗流量要求,比如可以按照使用者的地域來源取特定城市的使用者流量,或者按照使用者年齡取特定年齡段的使用者流量。

策略5:hash查詢串取模進行分配

這種方式使得相同的查詢串請求可以分流到確定的實驗上。

 

為了保證層與層之間實驗流量的相互獨立,上述基於取模的流量分配策略需要考慮實驗所在層layerid的資訊, 假設當前層有20個bucket分桶(實驗引數),則當前流量在當前層的bucket = (f(cookieid, layerid) % 20),f是某個hash函式。

 

流量分流條件

在通過上述流量分配策略選擇一部分流量後,分流條件(condition)通過僅分配特定條件的流量給實驗或域,以達到更高效利用流量的目的。比如,一個實驗僅僅改變來自日語的查詢,那麼實驗配置中只抽取日語的流量。我們可以基於地區,語言,瀏覽器等資訊設定流量抽樣條件。有了分流條件,一個只使用“日語”流量的實驗,和一個只使用英語流量的實驗,可以使用相同的cookie取模。

 

灰度釋出策略

灰度釋出是一種常用的釋出流量控制策略,是指在實驗的過程中根據實驗的效果逐步加大實驗流量同時持續跟蹤實驗效果直至最終全量一個實驗。分層實驗模型是如何實現灰度釋出策略的呢? 谷歌提出一個釋出層的概念(Launch Layers)。在這個架構下,一個特性的評估和釋出過程是類似如下過程的:

1)建立一個實驗或是一組實驗來評估特性。注意配置實驗涉及指定分配型別和相關的分配引數(比如:cookie取模),分配條件,和特性相關的引數。

2)評估實驗指標。根據實驗結果,判斷是否要進行新一輪的實驗,即通過修改或建立新的實驗,或甚至修改程式碼從根本上改變特性。

3)如果特性可以釋出,就進入釋出過程:建立一個新的釋出層和釋出層實驗,逐步的放量這個實驗,並最終刪除釋出完的釋出層,然後將釋出層實驗的相關引數設為系統預設引數。

 

 

達觀分層實驗平臺架構

達觀分層實驗平臺主要由實驗配置管理中心實驗分析與展示中心以及線上服務系統三部分組成。

 

實驗配置管理中心

實驗人員可以在實驗配置管理中心進行實驗的建立啟動暫停刪除等操作。

實驗建立:實驗資料主要包括(但不限於)實驗的名稱(比如搜尋Reranking實驗)、實驗的起始時間、實驗owner、實驗引數集、實驗作用模組、流量分配等。其中實驗起始時間定義了實驗生效發生作用的時間範圍,超過此時間實驗自動結束並停止。實驗引數集定義了需要測試的不同實驗引數資料,每個實驗引數對應實驗的一個bucket分桶(比如rank_strategy=5, rank_strategy=6, rank_strategy=7分別對應實驗的三個bucket)。每個實驗都有一個唯一的實驗ID。

實驗流量分配:對實驗選擇流量劃分策略(見前文介紹)。

實驗啟動:建立好的時間在達到實驗設定的開始時間後自動啟動,實驗人員也可以對暫停的實驗重新執行啟動操作。

實驗暫停:實驗人員可以對執行中的實驗執行暫停操作。

實驗刪除:實驗人員可以刪除已經停止的實驗,正在執行的實驗無法直接刪除(需要先執行停止操作)

實驗許可權控制:實驗的owner(建立者)對實驗有啟動、暫停、刪除等許可權,也即只能操作自己建立的實驗。實驗配置管理中心直接控制線上服務的模型和策略的執行,安全性就顯得尤為重要。

實驗持久化:實驗的資料被儲存到MySQL資料庫中進行持久化。

 

實驗分析與效果展示中心

實驗分析和視覺化效果展示是實驗平臺不可或缺的組成部分。在資料實時採集模組,實驗ID以及實驗引數資料(比如策略和模型引數)連同系統的業務日誌資料一起被記錄和採集。在這裡可以實時檢視到每個執行中實驗(實驗ID區分)的統計分析和效果對比資料,既可以對一個實驗的不同引數集(實驗bucket分桶)的結果資料進行橫向對比(通常與基準實驗作對比),也可以對實驗基於時間維度的縱向效果作對比。 

上圖是達觀資料推薦演算法和某客戶推薦演算法時間維度縱向效果(點選率)對比。

在我們的實踐中,通過對實驗日誌資料的實時採集和分析,可以實現對實驗效果(比如CTR指標)進行準實時的對比分析和監控。如果發現實驗(新演算法策略)的效果指標出現異常,可以在實驗配置管理中心及時調整實驗引數或調整實驗流程或停止實驗(達觀資料桂洪冠)。

 

線上服務系統(實驗執行環境)

線上服務系統是實驗執行的環境。線上服務系統載入了一個實驗平臺客戶端元件,該元件主要有2個職責:

職責1:定時從資料庫中同步實驗資料資訊

職責2:實驗流量決策。對每個請求流量,根據實驗的流量劃分策略進行bucket分桶計算,獲取對應bucket的實驗引數資料(策略和模型引數)。請求攜帶被分配的實驗引數資料流入線上服務模組。

各線上服務模組從請求中獲取自己關心的實驗引數資料進行相應的實驗,並在記錄日誌時把實驗ID和引數資料一同寫入。

 

總結

本文以谷歌2010年釋出的分層實驗框架為參考,闡述了分層實驗模型的域、層、實驗等基本概念,進一步分析了分層模型的基本特性、實驗流量劃分策略、分流條件以及灰度釋出方法等內容。然後,重點介紹了達觀資料分層實驗平臺架構的實驗配置中心、效果分析與展示中心、線上服務系統(實驗執行環境)等主要模組,描述了從實驗建立到實驗執行再到實驗結果分析的全過程。

達觀資料分層實驗平臺同時執行著數十個面向不同客戶的多個系統應用的策略和模型迭代優化實驗,已經成為公司基礎平臺體系架構中非常重要的組成部分。
 

未來展望

未來我們希望把達觀資料分層實驗平臺做成開放的一站式實驗服務平臺,把我們的平臺實驗能力輸出給更多的客戶和合作夥伴,大家基於這個平臺相互學習合作共贏。

 

參考文獻

1.Diane Tang, Ashish Agarwal, Deirdre O’Brien, Mike Meyer   Overlapping Experiment Infrastructure: More, Better, Faster Experimentation

2.阿里媽媽大規模線上分層實驗實踐http://www.infoq.com/cn/articles/alimama-large-scale-online-hierarchical-experiment/

 

關於作者 

桂洪冠,達觀資料聯合創始人,中國計算機學會CCF會員,自然語言處理技術專家。在參與創辦達觀資料前,曾在騰訊文學、阿里巴巴、新浪微博等知名企業擔任資料探勘高階技術管理工作。桂洪冠在資料技術領域擁有6項國家發明專利,中國科學技術大學計算機碩士學位。在大資料架構與核心演算法以及文字智慧處理等領域有深厚的積累和豐富的實戰經驗。