为了降低推荐引擎的门槛,我们通过全面、细致的配置化来表达推荐召回、过滤、排序、重排的流程。让用户在不用写一行代码的前提条件下,通过配置文件描述整个推荐的流程,包括从什么存储去读取要推荐的候选物品,完成曝光过滤,指定用某种模型来排序,最后再重排。在推荐系统中需要为算法工程师、策略工程师完成多种实验,我们还准备了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 | 引擎运行环境,枚举值: ●daily:日常 ●prepub:预发 ●product:生产 | 否 |
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 | 自定义的配置 | 否 |