第3章 中台技术之在线算法系统
在线算法系统为搜索、推荐、广告等各种产品和服务提供了智能化的计算能力, 它在整个线上服务流程中占据着核心的地位。一个大型的在线算法系统需要面临如下技术挑战。
● 海量的数据:系统需要处理的物料候选集可以达到十亿甚至百亿规模,机器学习模型参数可以达到千亿级别,而效果统计指标数据点可以达到万亿级别。
● 实时的响应:系统需要在有限的时间内完成全部环节并响应用户请求,服务集群还需要有负载均衡、动态伸缩和服务降级的能力来面对突发流量。
● 复杂的策略:系统需要有足够的灵活性来支持诸如架构、机制、产品、运营等各类策略的高效迭代。
图 3-1 展示了在线算法系统的整体架构,它通常包括物料检索系统、模型预估服务、策略机制引擎、集群管理平台和效果评估系统这几个核心模块。
● 物料检索系统:该模块负责依据服务请求和系统配置从海量候选集中快速筛选出与业务目标具有较高匹配度的候选集,为后续的模型预估、精确排序和策略机制框定了一个具备计算可行性的工作范围。该模块通常涉及倒排检索、相似性检索、模型粗排等环节。
● 模型预估服务:该模块承载着各类机器学习模型,对诸如点击率、评论率、转化率和观看时长等核心业务指标进行在线预估,这些指标会作为关键数据而被后续的策略机制所利用。该环节是整个系统中最耗时和最具挑战性的部分,如何在高并发环境下提供低延迟、高吞吐、高可用的在线预估服务一直都是颇具挑战性的技术难题。
● 策略机制引擎:该模块需要支持如竞价排序、多样性约束、冷启动机制以及各类产品运营策略的高效迭代。该模块除了需要满足研发人员的需求,还需要考虑产品人员、运营人员以及数据分析师的使用习惯。
● 集群管理平台:该模块通常存在于大型分布式系统中,它通过对计算资源的有效管理来实现集群资源的最优化配置。此外,它也会对服务、模型、配置等数据进行平台化管理来提高系统的稳定性和健壮性。
● 效果评估系统:该模块为业务方提供了数据采集、数据分析、实验对比和决策辅助等功能。它通常需要利用大数据平台来完成海量指标数据的存储、计算和分析,并以可视化形式呈现给使用者。
图3-1 在线算法系统的整体架构