推荐是什么意思?互联网上的电商系统之推荐系统
竹子
•
•
好文推荐 •
阅读 185
服务API调用统一投放接口获取推荐数据,投放接口解析请求参数,组装成下游推荐策略参数,对返回的推荐结果,拼装打点参数。为了实现推荐算法的在线对比,接口实现中接入了AB实验系统,它根据指定策略将上游请求按指定比例进行分流,通过实验配置,灵活控制不同流量的实验策略,算法工程师在线试验多个算法效果,极大的提升了推荐算法的迭代速度,优化推荐效果。
推荐策略模板是整个推荐投放服务实施的核心,监听动态配置服务,通过配置参数变更来驱动各类模板更新,迭代业务。推荐策略流程:入参补全 -> 数据召回 -> 精排 -> 格式化 -> 推荐数据补全。入参扩展模板,对入参做补充、修改,简化业务逻辑实现;业务模板,实现推荐策略主逻辑,由各类召回组件模板和精排调用组成(可选),一个业务模板中可以包含多个召回组件模板,组成数据召回链(实时点击偏好 -> 离线偏好 -> 店铺偏好 -> 类目偏好 -> …);数据组件模板,通过配置从不同的数据源召回和过滤数据;数据补全模板,按业务模板召回的推荐数据项ID补全详细的字段值;格式化模板,根据展现层样式需求,将推荐结果封装成展现层可加载渲染的数据格式。对于已实现的推荐策略和能够使用现有模板组装的推荐策略,都可以在动态配置服务平台上通过配置发布快速实现业务迭代和新增,一定程度上实现了代码简化,提高业务开发迭代效率。
推荐策略
推荐策略是整个推荐逻辑的核心,比如猜你喜欢场景,有用户实时特征做相关性的召回策略,也有用户离线特征的相关性召回策略。并且按照一定的配比merge出结果集,再调用排序系统的lr模型做点击率预估,这些都是需要写在策略脚本里。
推荐存储
主要承载了用户特征以及离线推荐结果集,存储系统对读写性能要求非常高。
1. 整条推荐链路希望在50ms-100ms内完成。一次复杂的推荐请求会请求上百次(以存储中的key为单位)存储数据,存储需要在1ms内返回。
2. 对时延要求比较高,比如需要收集用户的曝光行为数据做降权,同时曝光数据的量非常大,对内存有挑战。
排序系统
排序系统的职责是对候选集进行排序,其中核心点在于模型和特征,理想情况下系统尽可能支持多的模型和特征,但是在线计算需要较小的时延,这就要求系统要平衡效果和性能,前期推荐系统可以支持LR和GBDT两种排序模型。
线性模型公式
x是特征,θ是权重,一个模型通常有几十维特征,这些特征的计算和存储就成为系统最大的挑战。
1. 控制候选集数量在千级别,候选集增长整体计算就比较慢,rt也会上升。
2. 实体(商品)特征本地存储,每次需要排序特定数量商品,本地存储可以极大缓解网络压。
3. 针对内存瓶颈,将用户相关特征迁移到远程,考虑每次查询只会查几次用户特征数据,开销不大。
4. 并行计算,复杂模型下,组装特征和计算还是比较费时,为了提升rt系统进行并行计算,充分利用cpu的资源,在系统容量不变的情况下提升rt。
总结
个性化推荐所取得的成就是一个“意料之外却情理之中”的结果。个性化用户体验将是大势所趋,从搜索走向发现(推荐),通过搜索满足用户主动表达的需求,通过推荐挖掘满足用户的潜在需求。市场营销的核心是用户体验,而用户体验的极致是个性化,满足每一位用户的不同需求,以人为本的电子商务才能够真正获得用户的青睐。
在线服务
系统分成推荐投放系统、排序系统、推荐引擎、abtest、字段补全服务等。