整體配置概述
為了降低Recommendation Engine的使用門檻,我們通過全面且細緻的配置化來表達推薦召回、過濾、排序和重排的流程。允許使用者在無需編寫一行代碼的前提下,通過設定檔描述整個推薦的流程,包括從什麼儲存去讀取要推薦的候選物品,完成曝光過濾,指定用某種模型來排序,最後再重排。在推薦系統中需要為演算法工程師、策略工程師完成多種實驗,我們還提供了a/b testing服務,協助使用者配置AB測試服務。
由於阿里雲提供多樣的儲存選項,我們支援將資料存放區於Hologres、BE、OTS和Redis中。具體選擇哪一種儲存方式,後續文檔將進行詳細介紹。
當推薦情境每天有很多新物品的時候,我們還支援冷啟動的配置。
PAI-Rec 引擎支援熱載入,所以我們只需要更改配置,重新發布配置即可。
整個配置主要由以下構成:
{
"RunMode": "",
"ListenConf": {},
"RecallConfs": [],
"SceneConfs": {},
"FilterConfs": [],
"FilterNames": {},
"BeFilterConfs": {},
"GeneralRankConfs": {},
"AlgoConfs": [],
"RankConf": {},
"ColdStartGeneralRankConfs": {},
"ColdStartRankConfs": {},
"SortConfs": {},
"DPPConf": {},
"SortNames": {},
"FeatureConfs": {},
"UserFeatureConfs": {},
"HologresConfs": {},
"KafkaConfs": {},
"RedisConfs": {},
"MysqlConfs": {},
"GraphConfs": {},
"FeatureStoreConfs": {},
"KafkaConfs": {},
"SlsConfs": {},
"DatahubConfs": {},
"BEConfs": {},
"TableStoreConfs": {},
"PrometheusConfig": {},
"LogConf": {},
"DebugConfs": {},
"CallBackConfs": {},
"PipelineConfs": {},
"UserDefineConfs": {}
}參數名稱 | 描述 | 是否支援熱載入 |
RunMode | 引擎運行環境,枚舉值:
| 否 |
ListenConf | 監聽資訊的配置 | 是 |
RecallConfs | 召回的配置 | 是 |
SceneConfs | 根據不同情境,可以引用在 RecallConfs 中配置好的召回 | 是 |
FilterConfs | 過濾的配置 | 是 |
FilterNames | 根據不同情境,可以引用在 FilterConfs 中配置好的過濾 | 是 |
BeFilterConfs | BE 過濾的配置 | 是 |
AlgoConfs | 精排模型的配置 | 是 |
GeneralRankConfs | 根據不同情境,可以引用在 AlgoConfs 中配置好的粗排模型資訊 | 是 |
RankConf | 根據不同情境,可以引用在 AlgoConfs 中配置好的精排模型資訊 | 是 |
ColdStartGeneralRankConfs | 根據不同情境,可以引用在 AlgoConfs 中配置好的冷啟動粗排模型資訊 | 是 |
ColdStartRankConfs | 根據不同情境,可以選擇在 AlgoConfs 中配置好的冷啟動模型 | 是 |
SortConfs | 重排的配置 | 是 |
DPPConf | 多樣性打散的配置 | 是 |
SortNames | 根據不同情境,可以引用在 SortConfs 中配置好的重排 | 是 |
FeatureConfs | 根據不同情境,可以使用不同的特徵載入 | 是 |
UserFeatureConfs | 根據不同情境,可以使用不同的 user 特徵載入,這個是 user 側特徵預先載入 | 是 |
HologresConfs | holo 串連資訊的配置 | 否 |
KafkaConfs | kafka 串連資訊的配置 | 否 |
RedisConfs | redis 串連資訊的配置 | 否 |
MysqlConfs | mysql 串連資訊的配置 | 否 |
GraphConfs | graph 串連資訊的配置 | 否 |
FeatureStoreConfs | feature store 串連資訊的配置 | 否 |
SlsConfs | sls 串連資訊的配置 | 否 |
DatahubConfs | datahub 串連資訊的配置 | 否 |
BEConfs | be 串連資訊的配置 | 否 |
TableStoreConfs | tablestore 串連資訊的配置 | 否 |
PrometheusConfig | prometheus 串連資訊的配置 | 否 |
LogConf | log 輸出的配置 | 是 |
DebugConfs | debug 資訊的配置 | 是 |
CallBackConfs | callback 的配置, 參考Callback 回調介面 | 是 |
PipelineConfs | pipeline 的配置 | 是 |
UserDefineConfs | 自訂的配置 | 否 |