0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

算法AB實驗平臺進(jìn)化歷程和挑戰(zhàn)

OSC開源社區(qū) ? 來源: 得物技術(shù) ? 2023-09-18 09:25 ? 次閱讀

AB平臺簡介

AB實驗平臺這幾年在互聯(lián)網(wǎng)公司得到了越來越廣泛的應(yīng)用,采用AB實驗來評估產(chǎn)品和技術(shù)迭代效果也成為主流的業(yè)務(wù)新功能效果評估方式,數(shù)據(jù)驅(qū)動的文化在這幾年得到了不少公司的廣泛的認(rèn)同,通過數(shù)據(jù)和指標(biāo)來說明產(chǎn)品效果也得到了越來越多的公司的認(rèn)可和應(yīng)用。

AB實驗在其中就是一種很常見的產(chǎn)品效果數(shù)據(jù)評估工具,在各大公司的產(chǎn)品迭代過程中也得到了越來越廣泛的應(yīng)用。

1.0 時代 從無到有

在AB實驗剛開始的時候,需要解決的問題很簡單:

通過某種用戶流量分組方式,將不同的用戶劃分到不同的流量組,在不同的流量組通過控制變量的方式應(yīng)用不同的產(chǎn)品策略,隨后觀察兩個組的產(chǎn)品效果差別。

這種非常樸素的實驗思路就是最基本的AB實驗的分流,需要注意的是在過程中需要保證控制變量和穩(wěn)定的流量比例。

一個基本AB實驗實例

5f7d2476-53b8-11ee-a25d-92fbcf53809c.png

一個基本的AB實驗需要有以下要素:

實驗?zāi)繕?biāo)和實驗假設(shè)

實驗?zāi)繕?biāo)決定到達(dá)到什么樣的效果實驗才算成功,舉個例子,我希望付款率提升5%,這就是目標(biāo),其中的實驗指標(biāo)是付款率,做實驗之前一定要有實驗?zāi)繕?biāo),沒有實驗?zāi)繕?biāo)沒辦法確定實驗是否成功,實驗?zāi)繕?biāo)包含指標(biāo)和變化幅度兩個要素。

實驗假設(shè)是猜想通過控制哪些因素來達(dá)到實驗?zāi)繕?biāo),比如我們假設(shè)付款按鈕的顏色會影響用戶的付款意愿進(jìn)而影響付款率,那這里的實驗假設(shè)就是付款按鈕顏色會影響用戶付款意愿。

實驗對象(實驗對象是可以用來應(yīng)用策略的用戶或者請求或者其他對象)

實驗對象并不是僅僅指用戶,用戶的每一次請求也可以單獨做實驗,甚至每一次用戶請求的每一個曝光位置都可以看做一個實驗流量,這個對象取決于具體的業(yè)務(wù)。

對照組和實驗組(AB實驗的核心要求是控制變量做效果對照,所以至少有一個或多個對照組策略和實驗組策略)

對照組:一般是沒有任何策略的組,代表了現(xiàn)在的實驗效果。

實驗組:一般是應(yīng)用了新策略的組,代表了新策略的實驗效果。

統(tǒng)計功效:在進(jìn)行實驗組和對照組的流量分配的時候要注意,因為我們的AB實驗是從整體用戶中取一部分進(jìn)行實驗,然后采用統(tǒng)計學(xué)方式進(jìn)行效果評估,所以無論是實驗組還是對照組樣本量要滿足最基本的統(tǒng)計功效,后續(xù)的實驗才有意義,而統(tǒng)計功效無法在實驗之后計算,需要我們在實驗進(jìn)行之前就做充足的調(diào)研。

算法的AB1.0主要功能

通過控制變量的方式進(jìn)行AB分流實驗,并通過離線的模擬分流規(guī)則提供用戶實驗分組信息,使得數(shù)據(jù)分析可以計算實驗的指標(biāo)報表。

打通基本的工程實驗鏈路,可以讓算法通過實驗配置自主的控制實驗流量和實驗策略。

1.0AB實驗的策略生效流程

在早期的實驗過程有以下鏈路:

5f904e70-53b8-11ee-a25d-92fbcf53809c.png

通過配置中心配置約定好的AB實驗配置信息,線上的服務(wù)通過配置中心的變更信息,實時變更實驗配置,從下次分流開始應(yīng)用新的分流策略,同時記錄實驗日志。

報表計算方式,將實驗配置信息同步到ODPS,第二天用前一天的實驗配置對昨天的用戶進(jìn)行重新分流計算,獲得昨天的用戶實驗分流信息(之所以這樣是因為實驗變更是以天為單位,離線計算可以比較方面的支撐后續(xù)的實驗分析)。

算法和普通業(yè)務(wù)的AB分流由于業(yè)務(wù)特性原因有較多的需求不同的地方,針對兩者區(qū)別我們也進(jìn)行了一些特殊的算法實驗優(yōu)化設(shè)計。具體如下:

5fa5375e-53b8-11ee-a25d-92fbcf53809c.png

早期的AB實驗設(shè)計解決了基本的實驗分流問題也提供了一套配套的實驗指標(biāo)和實驗置信度計算方案,支撐了早期的簡單業(yè)務(wù)可以通過AB實驗的方式比較科學(xué)的觀測算法模型效果。

2.0 時代 從有到全,支持復(fù)雜業(yè)務(wù)功能

新的業(yè)務(wù)需求

隨著公司業(yè)務(wù)發(fā)展和各個系統(tǒng)迭代優(yōu)化,用戶對于基礎(chǔ)的AB實驗系統(tǒng)開始衍生出了一些新的,更細(xì)化更復(fù)雜的業(yè)務(wù)需求,用戶也希望AB系統(tǒng)可以幫助支撐更高效的實驗迭代。

流量饑渴,更豐富的流量需求:在1.0版本的AB實驗中已經(jīng)解決了基本的實驗分流和配置的問題,但是由于一個場景中總用戶流量有限,可能會有多種業(yè)務(wù)實驗同時進(jìn)行,實際實驗運(yùn)行時需要在同時運(yùn)行的實驗數(shù)量和每個實驗的流量大小之間做一個取舍,業(yè)務(wù)高速發(fā)展時期經(jīng)常會有用戶希望提高同時運(yùn)行的實驗數(shù)量,同時保證每個實驗有充足的流量,于是我們擴(kuò)展了原來的實驗流量分流模型設(shè)計,采用分層分域的正交的業(yè)務(wù)實驗劃分方式來支撐上述的流量需求。

更實時更準(zhǔn)確的實驗報表:在早期的實驗中通過第二天的配置重算的方式得到前一天的用戶實驗分組數(shù)據(jù),這種方法可以支撐非常巨大的用戶和實驗數(shù)量,但是時效性上比較難以保證。隨著業(yè)務(wù)快速迭代,算法的實時實驗效果監(jiān)控的需求也逐漸增加,離線的實驗報表計算反饋需要等到至少1天后才能觀測,實驗反饋周期太長。于是我們調(diào)整了實驗分流和報表的計算鏈路,采用實時實驗日志埋點通過flink等實時計算平臺實時計算實驗效果,這種做法可以實時捕捉實驗流量的變化情況,對于驗證實驗分流效果有較大的效率提升。

復(fù)雜實驗形式:聯(lián)合實,多集群實驗, 指定用戶實驗需求:隨著算法工程鏈路的規(guī)范化,業(yè)務(wù)鏈路中的一些業(yè)務(wù)層之間開始進(jìn)行聯(lián)合調(diào)優(yōu)實驗,催生出了多參數(shù)跨層聯(lián)合實驗的需求,需要在分層實驗的基礎(chǔ)上支持聯(lián)合參數(shù)的生效機(jī)制,這在一般的分層實驗設(shè)計中是很難支撐的。隨著工程鏈路穩(wěn)定性項目的進(jìn)展,大部分業(yè)務(wù)同時都具有多個不同集群,此時又需要AB系統(tǒng)也可以針對不同集群提供同場景不同實驗配置的功能支撐。還有隨著精細(xì)化運(yùn)營的展開,越來越多的實驗只針對更精準(zhǔn)的特定用戶群才能生效,這給原來的實驗分流和實驗分析都帶來了不小的需求和挑戰(zhàn)。

更強(qiáng)大更通用的分流模型

為了滿足更豐富的流量分配需求,我們設(shè)計了一套比較靈活通用的實驗分流模型, 這套模型經(jīng)過多個公司的業(yè)務(wù)驗證,可以確保在未來較長的一段時間內(nèi),充分支撐我們所有業(yè)務(wù)的個各種AB實驗分流需求。同時根據(jù)我們自己的業(yè)務(wù)發(fā)展需求,也支持了條件層,自定義分流機(jī)制等為更復(fù)雜業(yè)務(wù)設(shè)計的一些分流機(jī)制。

多層正交的實驗流量模型

5fd99d3c-53b8-11ee-a25d-92fbcf53809c.png

上述的分流模型將一個場景流量分為層和域兩種嵌套結(jié)構(gòu),通過層來隔離不同業(yè)務(wù)配置,通過域來隔離不同用戶群。用戶在該模型進(jìn)行分流的過程采用從外到內(nèi),從上到下的逐步命中,每一次進(jìn)入一個業(yè)務(wù)層都會觸發(fā)一次選桶邏輯,命中桶以后,讀取桶上的配置,如果桶內(nèi)還有層配置繼續(xù)依次命中層,觸發(fā)內(nèi)部的選桶邏輯。

該模型可以支持如下主要特點:

分層分域,互相嵌套的流量設(shè)計,支持業(yè)務(wù)域分層的正交流量,每一層都是一個單獨的業(yè)務(wù),解決流量饑渴問題,同時支持自由的流量域劃分,流量域和流量層可以互相嵌套,實現(xiàn)極其靈活的流量劃分方式。

每一個流量層采用hash模板+流量槽,層內(nèi)實驗通過圈槽的形式?jīng)Q定實驗在該層的流量比例,允許算法用戶自定義實驗分流的規(guī)則,支持根據(jù)用戶的用戶特征信息進(jìn)行分流,同時支持靈活的跨層流量對齊機(jī)制。這種方式可以實現(xiàn)極為靈活的分流方式,支持各種對象和分流方式(比如用戶分流,請求分流,設(shè)備分流,作者分流,按地區(qū)分流等)。

支持白名單,允許用戶繞開分流機(jī)制,指定用戶的固定實驗鏈路,用于在線上進(jìn)行特殊用戶的實驗驗證。

支持條件層,允許符合某種條件的用戶單獨進(jìn)行特定實驗,比如只針對新用戶進(jìn)行的實驗。

從該模型上線以來,2年多的時間內(nèi)已經(jīng)完美支撐了算法300多個場景的AB流量分配需求,經(jīng)過了充分的業(yè)務(wù)驗證,從分流層面解決了許多有特殊需求的分流業(yè)務(wù)遇到的問題。

具體層中的分流規(guī)則如下:

5ff128a8-53b8-11ee-a25d-92fbcf53809c.png

每一個流量層根據(jù)層中的分流配置信息和用戶信息計算命中的流量槽,然后根據(jù)流量槽命中圈選了流量槽的實驗,實驗通過擁有的流量槽數(shù)量決定實驗流量比例。

標(biāo)準(zhǔn)的實驗工程鏈路

60015818-53b8-11ee-a25d-92fbcf53809c.png

通過AB實驗的后臺改造,我們重新思考并調(diào)整了整個實驗鏈路的工程設(shè)計,在新的工程設(shè)計中,相對于上一個版本主要有以下幾個方面需要改進(jìn):

采用實驗分流日志而不是離線的實驗配置來計算用戶的實驗分組信息。

實驗日志可以捕獲每一個時刻的用戶的實驗分流情況,可以較為敏感的捕捉到實驗變更的情況。

實驗日志可觀測性強(qiáng),用戶配置完實驗以后可以立刻通過日志觀測實驗的命中情況。

可以在日志中附加更多的實驗環(huán)境相關(guān)信息,做更豐富的實驗分析,可以簡化離線的實驗分組計算邏輯。

線上應(yīng)用增加實驗信息的具體埋點信息, 埋點分為兩部分:

一部分透傳給客戶端,其中包含用戶命中的實驗信息,稱之為ACM埋點,客戶端在用戶進(jìn)行點擊曝光等操作時上報信息中回傳服務(wù)端下發(fā)的ACM字段,這樣我們可以通過神策上報的行為日志,清楚的知道每個實驗曝光幾次,被點擊幾次,可以及時得到實驗的線上表現(xiàn),這部分行為日志還可以幫助我們實時的計算實驗策略效果報表。

另一部分作為應(yīng)用的后臺日志記錄,記錄了每一次請求中用戶命中的實驗相關(guān)信息,用于計算實驗分組信息。

設(shè)計了AB實驗的后臺操作管理界面,不用再通過手動修改配置中心的配置來進(jìn)行實驗配置。并將實驗發(fā)布,實驗修改,實驗配置回滾等功能做成具體的按鈕功能,極大地提高了用戶的實驗操作使用體驗。

拆分了實驗參數(shù)和代碼執(zhí)行鏈路,抽象出了AB參數(shù)和代碼鏈路運(yùn)行方案兩種概念,將AB變成一個弱依賴,降低實驗參數(shù)配置錯誤對線上業(yè)務(wù)的影響。

Ps: 為什么要同時采用兩種實驗信息反饋鏈路,原因是第一種ACM上報的用戶實驗信息依賴于用戶上報,如果用戶遇到應(yīng)用crash或者延遲上報,或者網(wǎng)絡(luò)情況突然不好,我們沒辦法獲得未上報的這部分信息,第二種很明顯,沒辦法知道發(fā)放下來的帶有實驗信息的內(nèi)容的后續(xù)反饋情況。兩種鏈路都沒辦法完全的覆蓋全部用戶,只有互相配合才能完整的覆蓋全量用戶,至于為什么采用離線日志來做實驗報表,ACM來做實時報表純粹是工程效率方面的考慮。

ACM通用埋點標(biāo)準(zhǔn)

為了解決實驗的實時效果觀測問題, 我們需要想辦法將后臺的實驗命中標(biāo)識信息傳遞給客戶端??紤]到其他業(yè)務(wù)場景也會有類似的埋點需求,為了埋點通用性考慮,我們規(guī)劃了一個算法的埋點標(biāo)準(zhǔn),主要想簡化算法埋點流程和對算法的埋點信息進(jìn)行統(tǒng)一的治理。

ACM埋點主要是通過算法與客戶端約定一個固定的埋點內(nèi)容字段ACM,后端算法在開發(fā)時候,通過提供的SDK工具,將需要埋點的信息和內(nèi)容通過SDK采用特定的規(guī)范形成一串可識別的字符串內(nèi)容,客戶端同學(xué)對ACM這個約定好的字段進(jìn)行事件(曝光,點擊等)上報,后端就可以根據(jù)上報的用戶行為日志通過實時計算工具快速的獲得某個實驗的后續(xù)用戶反饋信息。

ACM埋點規(guī)范例子:


版本.業(yè)務(wù)域.內(nèi)容資源類型.資源位.實驗.自定義值

版本:標(biāo)記本條ACM的遵循的規(guī)范版本,不同版本具有不同的解析規(guī)則,方便udf解析。

業(yè)務(wù)域:業(yè)務(wù)系統(tǒng)代稱,盡量簡短,比如 搜索srh。

內(nèi)容資源類型:內(nèi)容類型或資源,比如 user_10098, cspu_1020,spu_771等。

資源位:廣告位,榜單位。

實驗:資源本次采用的AB實驗策略,多個實驗用-隔開。

自定義值:

允許應(yīng)用方進(jìn)行擴(kuò)展的字段,比如 chan_latest-pos_3 代表channel為latest,pos為3。

特殊要求:自定義字段中不能出現(xiàn) ".","-","_"等字段,其他部分無此要求。

埋點示例:


acm: 1.srh.spu_1009.sh.kka3b.10089-1929-100.channel_hot-position_2
acm: 2.srh.spu:1009.sh.kka3b.10089;1929;100.channel:hot;position:2

埋點場景:

request維度,覆蓋所有搜索和推薦場景

埋點動作:

request維度

下面是一個帶有acm信息的后端返回示例:


{
    "code": 200,
    "data": {
        "total": 3730,
        "start": 0,
        "hits": 10,
        "searchId": "161113175619737242413163",
        "searchTime": 0.024447,
        "items":[
            {
                "spuId":"xxx",
                "acm": "1.ms.prd-10092.v1ss.exp-1.kka.12",
            }
        ],
        "facet":[],
        "cache": false
    },
    "requestId": "f2ca7c08693acd54",
    "cost": 0,
    "time": 1611131759
}

實時的實驗指標(biāo)監(jiān)控

實時實驗指標(biāo)的計算流程

后臺服務(wù)日志實驗分流信息需要透傳給客戶端;

客戶端用戶行為及時上報;

行為日志被flink等實時計算平臺及時處理;

制定明確且可計算的實時指標(biāo)規(guī)范。

有了上面四個基礎(chǔ)流程,就可以計算實時的實驗反饋指標(biāo),但是要注意實時的指標(biāo)計算往往只能反映一段時間的實驗趨勢變化,在部分復(fù)雜指標(biāo)上很難實現(xiàn)精確的實驗指標(biāo)計算,所以一般用來觀察實驗指標(biāo)變化趨勢,不作為最終決策依據(jù)。

實時數(shù)據(jù)處理鏈路

打通了數(shù)據(jù)鏈路并且在用戶的行為日志中包含了ACM埋點以后,算法就可以基于行為日志,通過flink等工具實時算計算用戶的各種指標(biāo)信息。

具體的監(jiān)控鏈路流程如下圖綠色鏈路所示:

602b6162-53b8-11ee-a25d-92fbcf53809c.png

具體實時實驗監(jiān)控效果

最終可以達(dá)到秒級的實驗效果反饋,極大的加快了算法對實驗策略的反饋效率,具體效果如下圖,用戶可以自己選擇關(guān)注的實驗信息對比不同實驗在同一時間區(qū)間內(nèi)的指標(biāo)變化情況。可以非常迅速的得到線上的新實驗的效果反饋信息,極大地縮短了算法對實驗指標(biāo)的策略調(diào)整反饋周期。

6053fe1a-53b8-11ee-a25d-92fbcf53809c.png

3.0 時代 從全到優(yōu),提升用戶體驗和實驗效率

2.0 時代主要是從各種機(jī)制和功能方面盡量滿足業(yè)務(wù)需要,業(yè)務(wù)功能滿足以后,我們進(jìn)行了業(yè)務(wù)與擴(kuò)展,將算法的推薦業(yè)務(wù)場景也囊括進(jìn)來,推薦業(yè)務(wù)接入以后,雖然在基本功能上也可以滿足需求,但是推薦和搜索的業(yè)務(wù)特點還是有點不同,于是我們針對實驗平臺的實驗操作用戶體驗和穩(wěn)定性方面進(jìn)行了較多的優(yōu)化。

實驗操作易用性的建設(shè)

業(yè)務(wù)場景鋪開以后,使用的業(yè)務(wù)團(tuán)隊和人員也變得更為復(fù)雜,于是我們在針對特定場景的使用和業(yè)務(wù)人員使用習(xí)慣方面做了不少的功能改進(jìn)和優(yōu)化。根據(jù)我們收集的算法人員的參數(shù)配置,白名單配置,流量調(diào)整等功能使用痛點,我們進(jìn)行了針對性的優(yōu)化。

實驗參數(shù)的易用性工具

實驗參數(shù)配置是AB實驗的最主要的功能,為了優(yōu)化用戶體驗在實驗參數(shù)使用方面的體驗,我們收集了一些常見的用戶在使用參數(shù)配置時候經(jīng)常遇到的問題,并針對性做了功能和體驗的優(yōu)化。

場景1:隨著業(yè)務(wù)發(fā)展,算法配置的業(yè)務(wù)層越來越多,由于約定的參數(shù)規(guī)范是同一層的可配置實驗參數(shù)應(yīng)該一致,同一個實驗參數(shù)配置也應(yīng)該出現(xiàn)在同一層,但是隨著層數(shù)增多和部分參數(shù)使用不規(guī)范,估算某個實驗參數(shù)的實際生效流量就變得很困難(參數(shù)有后覆蓋前面的規(guī)則)。有可能出現(xiàn)你給a實驗配置了 10%流量的 recallSize = 20 但是后續(xù)該參數(shù)被別人的同名參數(shù)覆蓋導(dǎo)致實際參數(shù)生效流量不符合預(yù)期的情況。

60775540-53b8-11ee-a25d-92fbcf53809c.png

參數(shù)流量著色分析:使用參數(shù)流量的著色分析可以清楚的知道某個實驗參數(shù)都在哪些實驗中有配置,這些實驗如果同屬于一個業(yè)務(wù)層則無流量覆蓋,如果有些實驗不屬于同一個業(yè)務(wù)層,有可能出現(xiàn)參數(shù)覆蓋的情況。流量著色就是通過程序,一鍵計算某個參數(shù)最終的流量結(jié)果分布情況,可以方便的看到某個參數(shù)最終的線上真實流量比例。

包含某參數(shù)配置的所有實驗查詢:

609fb968-53b8-11ee-a25d-92fbcf53809c.png

某參數(shù)的實際生效流量分布:

60c5d63e-53b8-11ee-a25d-92fbcf53809c.png

場景2:實驗參數(shù)越來越復(fù)雜,同一個參數(shù)往往有多個不同的版本需要同時觀測實驗的效果,這種時候可能由于時間久遠(yuǎn)或者實驗變更頻繁,或者參數(shù)過多,很多時候在進(jìn)行實驗觀測和調(diào)整的時候需要確認(rèn)實驗中的參數(shù)配置信息,特地為這些需要對比參數(shù)的場景制作了便捷的實驗參數(shù)對比的功能。

實驗參數(shù)對比:可以比較清晰的對比同一個實驗參數(shù)在同一層其他實驗中分別是什么值,可以大幅度提高實驗流量調(diào)整期間需要進(jìn)行的實驗信息核對工作效率。

60da94f2-53b8-11ee-a25d-92fbcf53809c.png

實驗布局的操作和展示優(yōu)化

為了滿足靈活的實驗流量劃分,我們設(shè)計了一套通用的實驗流量模型,但是該流量模型的可視化方面一直是一個不小的難題,最基本的我們希望能直觀的展示層與層,層與桶(用戶域)之間的布局結(jié)構(gòu)和用戶流量的命中順序關(guān)系。

我們進(jìn)行了一些更能直觀體現(xiàn)實驗布局的探索,目前我們采用一個標(biāo)準(zhǔn)的樹狀結(jié)構(gòu)來表示個實驗分流模型。實驗?zāi)P椭械臉I(yè)務(wù)層和用戶桶我們都會用圖標(biāo)進(jìn)行區(qū)分,由于層桶結(jié)構(gòu)可以嵌套多次,我們通過將結(jié)構(gòu)關(guān)系進(jìn)行拆分,將桶頁面主視圖和層頁面主視圖進(jìn)行了分別設(shè)計。

層頁面主視圖:可以便捷的觀察到當(dāng)前層內(nèi)的不同流量桶和子桶內(nèi)的其他子業(yè)務(wù)層,主要是用于尋找自己的業(yè)務(wù)層位于某一個用戶桶內(nèi),觀察某些桶的流量比例和參數(shù)等。子業(yè)務(wù)層內(nèi)的流量桶信息不予顯示。

60eacf2a-53b8-11ee-a25d-92fbcf53809c.png

桶頁面主視圖:桶頁面的主視圖可以同時觀察到該桶內(nèi)的各個子業(yè)務(wù)層和業(yè)務(wù)層內(nèi)部的子實驗桶信息,可以用來直觀的對照具體的實驗命中鏈路從上往下核對實驗命中路徑。

界面顯示如下(測試數(shù)據(jù)):

60f2eb4c-53b8-11ee-a25d-92fbcf53809c.png

通過將層桶結(jié)構(gòu)進(jìn)行主要的功能拆分,可以在復(fù)雜場景的視圖布局清晰度和易用性上達(dá)到一個比較好的平衡。

實驗信息的完善

算法的實驗在進(jìn)行實驗分析報表的時候往往需要對比多個指標(biāo)綜合觀察實驗效果,之前都是算法人員跟分析人工對齊某個實驗什么時候開始什么時候結(jié)束,需要觀察哪些指標(biāo)等信息。為了方便后續(xù)自動化的進(jìn)行實驗效果分析,我們完善了實驗的實驗時長,核心指標(biāo),輔助指標(biāo)等功能,方便用戶進(jìn)行實驗的分析信息管理,后續(xù)通過自動化功能依賴這種信息可以實現(xiàn)實驗報表指標(biāo)流程的自動化計算。

611e0818-53b8-11ee-a25d-92fbcf53809c.png

服務(wù)穩(wěn)定性的改進(jìn)

動態(tài)白名單功能優(yōu)化

白名單操作是一個使用頻次較高的AB實驗操作功能, 實驗參數(shù)配置好以后往往需要通過白名單來小范圍的驗證策略效果。但是早期的白名單設(shè)計時候考慮到白名單會影響用戶的分流,所以白名單信息和實驗布局配置信息一起被用戶感知,這也導(dǎo)致每一次的白名單變更都需要重新發(fā)布實驗配置,給線上的配置穩(wěn)定性造成了威脅。

解決方案:

基于白名單的設(shè)計和生效流程,我們嘗試通過流程和配置格式改進(jìn)優(yōu)化,使得白名單的配置可以實時生效同時又不影響原來的實驗配置,如下圖所示:

6137db94-53b8-11ee-a25d-92fbcf53809c.png

動態(tài)白名單功能改動相當(dāng)于將白名單的配置信息獨立出來,在白名單有修改的時候獨立加載,同時不觸發(fā)配置信息本身的更新。但是考慮到兼容性問題,我們每次配置信息改動也會額外觸發(fā)白名單的重新更新,描述配置更新相當(dāng)于一次全量更新,配置和白名單都會更新。白名單更新相當(dāng)于實時只更新新增的白名單信息。

并發(fā)操作Ark發(fā)布實驗的優(yōu)化

由于AB實驗的配置下發(fā)方式是通過Ark配置中心提供的配置通知功能實現(xiàn)的,目前后臺操作Ark進(jìn)行配置發(fā)布的時候是通過http接口進(jìn)行了,使用接口同時操作同一個Ark配置集的時候,大量操作容易產(chǎn)生并發(fā),并發(fā)問題會導(dǎo)致Ark操作直接失敗,這種情況極大地阻礙了實驗配置發(fā)布過程的流暢性。

解決的辦法有如下方案:

615eb8e0-53b8-11ee-a25d-92fbcf53809c.png

經(jīng)過仔細(xì)評估和方案選擇,我們決定方案2,3,4同步進(jìn)行,最終完全解決了實驗操作時候的并發(fā)問題。

實驗效果分析的探索和優(yōu)化

在過去2年的AB實驗的實踐和改進(jìn)過程中,我們也十分注重實驗效果方面的分析和問題歸因,根據(jù)遇到的實際實驗分析問題和情況,總結(jié)了一部分常見的實驗分析相關(guān)經(jīng)驗文檔,其中涉及實驗流程標(biāo)準(zhǔn)化,實驗指標(biāo)選取,實驗指標(biāo)的統(tǒng)計功效分析,實驗指標(biāo)的p值和置信度分析,以及常見的實驗中遇到的問題等。

常見的實驗分析問題

我們總結(jié)了一些實驗效果分析中常見的問題和可能的原因,可以幫助排查AB實驗中遇到的常見問題。具體如下表:

61811282-53b8-11ee-a25d-92fbcf53809c.png

實驗中的辛普森悖論

辛普森悖論(英語:Simpson's paradox),是概率和統(tǒng)計中的一種現(xiàn)象,其中趨勢出現(xiàn)在幾組數(shù)據(jù)中,但當(dāng)這些組被合并后趨勢消失或反轉(zhuǎn)。這個結(jié)果在社會科學(xué)和醫(yī)學(xué)科學(xué)統(tǒng)計中經(jīng)常遇到,當(dāng)頻率數(shù)據(jù)被不恰當(dāng)?shù)亟o出因果解釋時尤其成問題。當(dāng)干擾變量和因果關(guān)系在統(tǒng)計建模中得到適當(dāng)處理時,這個悖論就可以得到解決。辛普森悖論已被用來說明統(tǒng)計誤用可能產(chǎn)生的誤導(dǎo)性結(jié)果。

落實到我們的AB實驗中就是如果一個實驗A在一個較長的實驗周期內(nèi)每天指標(biāo)都高于實驗B,實驗A的整體周期指標(biāo)未必高于實驗B。

61d1eb80-53b8-11ee-a25d-92fbcf53809c.png

本圖想說明一個問題,如果一個實驗周期跨很多天,每天觀測實驗效果的情況下,如果某個實驗組用戶數(shù)量(或者某個指標(biāo))長期每天穩(wěn)定高于另一個實驗組,不能說明分流不均勻。

第一天 因為剛剛重新分流,所以所有用戶對實驗來說都是新用戶,a組 505萬,b組 495萬 ,1%的正常誤差。

第二天 因為老用戶要保持分流一致,組內(nèi)用戶=新用戶+次留老用戶, 新用戶會重新分組,老用戶沿用之前的分組,此時有兩種情況:

情況1 (合理) 老用戶按原來的分流, 新用戶分流誤差 1%。

情況2 (不合理) 老用戶按原來的分流,新用戶必須要保證誤差 2%,才能逆轉(zhuǎn)第二天的分組誤差情況,但是此種情況下第二天的新老用戶比例會嚴(yán)重不均勻,同時沒辦法保持分流策略的一致性,理論上不可能實現(xiàn)。

未來的改進(jìn)方向

未來我們會希望借助數(shù)倉部門的AB平臺的指標(biāo)計算和可視化通用能力,希望可以逐步增強(qiáng)AB平臺的數(shù)據(jù)可視化能力,在實驗分流情況的可視化分析,實驗的用戶特征的分布可視化分析,實驗的指標(biāo)變化原因排查等方面與分析同學(xué)一起合作,提升AB實驗的指標(biāo)報表問題分析效率。

在AB實驗平臺本身的實驗信息操作和性能,穩(wěn)定性方面我們也有一些新的想法,希望將來可以打通開發(fā)環(huán)境,測試環(huán)境,生產(chǎn)環(huán)境,實現(xiàn)一個界面可以跨環(huán)境操作,降低算法同學(xué)使用不同環(huán)境AB需要在不同系統(tǒng)切換的問題,同時在將來還希望借助sidecard的形式增強(qiáng)AB實驗的分流能力和分流穩(wěn)定性,兼顧分流性能和分流平臺功能迭代效率。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    54

    文章

    11037

    瀏覽量

    102442
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4575

    瀏覽量

    92337
  • 實驗平臺
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2599

原文標(biāo)題:算法AB實驗平臺進(jìn)化歷程和挑戰(zhàn)

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    遺傳算法及其進(jìn)化硬件設(shè)計研究

    遺傳算法(Genetic Algorithms,GAs)是進(jìn)化計算中的重要領(lǐng)域,也是人工智能迅速發(fā)展的重要領(lǐng)域,它是一類模擬自然進(jìn)化過程和達(dá)爾文“適者生存”的算法。這一
    發(fā)表于 07-10 13:28 ?16次下載

    差分進(jìn)化算法研究進(jìn)展

    針對一種新興的進(jìn)化算法— —差分進(jìn)化算法,介紹該算法的基本原理、算法流程、
    發(fā)表于 01-08 18:16 ?11次下載

    什么是進(jìn)化算法

    進(jìn)化算法包括遺傳算法、進(jìn)化程序設(shè)計、進(jìn)化規(guī)劃和進(jìn)化策略等等,
    發(fā)表于 08-03 15:31 ?2519次閱讀

    進(jìn)化算法

    進(jìn)化算法-2000-5-冶金工業(yè)出版社-云慶夏。
    發(fā)表于 04-12 10:48 ?0次下載

    基于演化硬件的多目標(biāo)進(jìn)化算法的研究

    基于演化硬件的多目標(biāo)進(jìn)化算法的研究
    發(fā)表于 01-08 14:47 ?0次下載

    基于種群進(jìn)化速度的動態(tài)煙花算法

    基于種群進(jìn)化速度的動態(tài)煙花算法_杜振鑫
    發(fā)表于 01-07 21:28 ?3次下載

    基于模糊高斯學(xué)習(xí)策略的粒子群進(jìn)化融合算法

    針對粒子群優(yōu)化(PSO)算法存在的開發(fā)能力不足,導(dǎo)致算法精度不高、收斂速度慢以及微分進(jìn)化算法具有的探索能力偏弱,易陷入局部極值的問題,提出一種基于模糊高斯學(xué)習(xí)策略的粒子群一
    發(fā)表于 11-27 17:35 ?1次下載

    基于差分進(jìn)化算法的改進(jìn)

    針對差分進(jìn)化(DE)算法存在的尋優(yōu)精度低、收斂速度慢等問題,借鑒混沌分散策略、反向?qū)W習(xí)策略(OBL)以及跨種群并行機(jī)制,提出一種基于反向?qū)W習(xí)的跨種群差分進(jìn)化算法(OLCPDE)。采用混
    發(fā)表于 12-04 16:30 ?0次下載
    基于差分<b class='flag-5'>進(jìn)化</b><b class='flag-5'>算法</b>的改進(jìn)

    約束優(yōu)化進(jìn)化算法研究

    約束優(yōu)化進(jìn)化算法主要研究如何利用進(jìn)化計算方法求解約束優(yōu)化問題,是進(jìn)化計算領(lǐng)城的一個重要研究課題.約束優(yōu)化問題求解存在約束區(qū)域離散、等式約束、非線性約束等
    發(fā)表于 12-28 11:45 ?0次下載

    混合多種約束的并行約束差分進(jìn)化算法

    針對約束差分進(jìn)化算法中單一約束處理技術(shù)無法適合所有優(yōu)化問題的情況,提出了一種混合多種約束處理技術(shù)的并行約束差分進(jìn)化算法。該算法將種群分成多個
    發(fā)表于 01-02 16:40 ?0次下載

    流水車間調(diào)度量子差分進(jìn)化算法

    針對阻塞流水車間調(diào)度問題( BFSP),提出了一種新穎的量子差分進(jìn)化(NQDE)算法,用于最小化最大完工時間。該算法將量子進(jìn)化算法(QEA)
    發(fā)表于 01-14 16:17 ?0次下載

    自學(xué)習(xí)差異進(jìn)化算法

    速度,引入隨機(jī)個體遷入機(jī)制增加群體多樣性。實驗以周期動態(tài)函數(shù)為測試對象,比較自學(xué)習(xí)差異進(jìn)化算法與部分智能優(yōu)化算法的性能,結(jié)果表明,新算法有更
    發(fā)表于 03-13 16:46 ?0次下載

    基于反向?qū)W習(xí)的自適應(yīng)差分進(jìn)化算法

    個體;同時,采用高斯分布隨機(jī)性提高單個個體的開發(fā)能力,通過擴(kuò)充種群的多樣性,避免算法過早收斂,整體上平衡全局搜索與局部尋優(yōu)的能力。采用CEC 2014中的6個測試函數(shù)進(jìn)行仿真實驗,并與其他差分進(jìn)化
    發(fā)表于 03-29 17:44 ?1次下載

    進(jìn)化算法為搜索策略實現(xiàn)神經(jīng)架構(gòu)搜索的方法

    神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程,分類介紹以進(jìn)化算法為搜索策略實現(xiàn)神經(jīng)架構(gòu)搜索的方法和過程,并比較基于進(jìn)化算法的不同神經(jīng)架構(gòu)搜索
    發(fā)表于 03-22 14:37 ?15次下載
    以<b class='flag-5'>進(jìn)化</b><b class='flag-5'>算法</b>為搜索策略實現(xiàn)神經(jīng)架構(gòu)搜索的方法

    求解動態(tài)優(yōu)化問題的鄰域搜索差分進(jìn)化算法

    候選解,選取候選解集合中的最優(yōu)解并對種群最優(yōu)個體進(jìn)行迭代,增強(qiáng)算法局部搜索能力。在傳統(tǒng)基于距離的排斥方案中,引人 hill-valley函數(shù)追蹤?quán)徑?,提?b class='flag-5'>算法尋優(yōu)精度。實驗結(jié)果表明,與SADE、人工免疫網(wǎng)絡(luò)動態(tài)優(yōu)化、多種群競爭
    發(fā)表于 04-27 11:32 ?3次下載
    求解動態(tài)優(yōu)化問題的鄰域搜索差分<b class='flag-5'>進(jìn)化</b><b class='flag-5'>算法</b>