為了協助使用者瞭解怎麼配置實驗,本文以召回實驗,以及演算法為例,介紹實驗的建立及配置過程。
召回實驗案例
第一步:建立實驗室
實驗室是一組流量的集合,既可以只建立一個實驗室,也可以建立多個實驗室。當只有一個實驗室的時候,這個實驗室必須是Base實驗室(作為兜底的實驗室),並且Base實驗室是必需的。流量會優先匹配非 Base 實驗室,當推薦請求沒有匹配到非Base實驗室時會進入 Base實驗室。因此,我們可以只建立一個兜底的實驗室。
在實驗導覽頁面,單擊建立實驗室標籤頁,建立一個Base實驗室。配置分桶類型為UID HASH,分桶數量為100。
第二步:設定實驗層
層和層之間的流量是正交的。我們可以把實驗室看作一個容器,實驗層可以看作是這種容器中的一層層網,每經過一層,會把流量重新打亂,進入下一層,所以這裡我們可以認為,在較大的資料量下,每一層實驗的效果是互不干擾的。
在實驗層設定頁面,分桶方式選擇UID HASH,分桶數量設定為100,流量分配範圍設定為0-99。在分層設定中添加一個層,層名稱為recall,層介紹為召回層。
第三步:設定實驗組
每個層上,可以有多個實驗組,每個實驗組可以劃分層上的流量,這裡我們只設定一個實驗組作為舉例。
在實驗組配置頁面,設定實驗組名,選擇實驗群組類型,關聯層組配置為mix_recall_group,填寫實驗組的介紹資訊。下方可配置實驗ID和實驗配置參數。
第四步:設定實驗
實驗組下可以配置多個實驗,多個實驗之間互為對照,每一個實驗要有一份不同的配置。
建立基準實驗
配置基準實驗:實驗名稱為hot_group_recall,介紹為分桶熱門召回,流量分配為50%。實驗配置中設定召回策略為 {"default.RecallNames":["GroupHotRecall"]}。
建立對比實驗
配置對比實驗:實驗名稱為hot_global_recall,介紹為全域熱門召回,流量分配同樣為50%。實驗配置中設定召回策略為 {"default.RecallNames":["GlobalHotRecall"]}。
基準實驗和對比實驗配置中的 GroupHotRecall 和 GlobalHotRecall 需要預先在引擎配置的RecallConfs中定義好。
第五步:調試與觀察
這一步,我們可以把實驗室、實驗組、實驗都上線,然後對Recommendation Engine打請求,觀察引擎返回結果中的exp_id是否有值。
如果exp_id的值一直為空白,則需要檢查實驗室、實驗組、實驗是否是已上線狀態,在實驗導覽頁面,已上線的狀態是綠色,未上線是灰色。
如果exp_id的值為ER1_L1#EG1#E1,則表示本次請求,經過了1號實驗,會採用1號實驗的配置,後面再配置相關指標,我們就可以觀察實驗的效果啦。
演算法配置實驗
演算法配置的相關實驗和召回類似,為了防止實驗的相互作用,我們可以建立一個演算法層,如 rank。其他實驗組、實驗的配置基本相同,我們只需要更改實驗的配置即可。
如基準實驗的配置可以為:
{
"rankconf": {
"RankAlgoList": [
"dbmtl_v1"
],
"RankScore": "${dbmtl_v1_prob}",
"BatchCount":100,
"Processor": "EasyRec"
}
}
對比實驗的配置可以為
{
"rankconf": {
"RankAlgoList": [
"dbmtl_v2"
],
"RankScore": "${dbmtl_v2_prob}",
"BatchCount":100,
"Processor": "EasyRec"
}
}
dbmtl_v1 和 dbmtl_v2 為不同的打分模型,需要預先在引擎配置的AlgoConfs中定義好。