开发者生态
morning
Swiggy通过实时机器学习排序提升搜索自动补全效果
2026-06-15
1 阅读
作者:Leela Kumili
Swiggy详细介绍了该公司用于 自动补全搜索建议的实时机器学习排序系统 "架构,说明平台如何在严格延迟的要求下,将OpenSearch检索、特征存储和learning-to-rank模型结合起来。该系统以直接运行在OpenSearch内部的学习排序模型,替代了过去手工调优的启发式排序方案,在避免引入额外服务和网络跳转的同时,提高了自动补全结果的相关性。 据该公司介绍,自动补全请求对延迟尤其敏感,因为用户每输入一个字符,都可能触发一次新的搜索查询。因此,传统自动补全系统通常依赖词法匹配与静态排序规则,以优先保证速度。Swiggy的新方案则将整个流程拆分为两个阶段:候选生成和排序。 当用户开始输入时,系统首先借助OpenSearch的词法检索,并结合基于嵌入式向量的相似度搜索,生成一组更宽泛的候选建议。该检索层对召回率和响应速度进行了优化。随后,这些候选建议会被送入排序层,由机器学习模型根据预测相关性重新排序。 该排序系统引入了实时信号,例如,用户交互历史、点击行为、查询上下文和条目热度。这些特征会与离线训练好的模型结合,并在线上进行推理。系统使用了一个特征存储同时服务于预计算特征和流式特征,从而在避免高成本实时计算的同时,仍然能够对最新用户行为做出响应。排序层采用与OpenSearch集成的学习排序方法进行构建,通常可通过像 OpenSearch LTR "这样的框架来实现,并使用 RankLib "等模型家族以及 XGBoost "这类梯度提升树(gradient boosted tree)方法来完成排序和重排序任务。 该自动补全平台还包含一个持续反馈的闭环,利用实时用户交互数据持续重训排序模型。点击率、转化率以及下单行为会被流式写入离线训练流水线,在那里生成更新后的排序模型,并先存入模型注册表,再部署到线上排序服务中。 典型机器学习排序服务与OpenSearch LTR延迟的对比(来源: Swiggy博客 ") 该架构的设计目标是满足严格的性能要求。自动补全请求具有高度的交互性,因此必须提供低延迟响应,这也使系统在设计上更偏向轻量模型和优化后的推理路径。系统并没有在线上链路中依赖复杂的深度模型,而是在模型复杂度与服务效率之间取得了平衡,以在大规模场景下维持响应能力。 基于OpenSearch LTR的自动补全机器学习模型训练与部署流程(来源: Swiggy博客 ") 该系统还包含一个反馈闭环,持续收集用户交互并用于改进排序模型。点击率和转化信号会被送入离线训练流水线,使模型能够适应不断变化的用户行为和新出现的查询模式。这使自动补全系统可以在无需手工更新规则的情况下适应新趋势。 Swiggy工程师表示,该设计将机器学习整合进了一个传统上以规则和检索为主的组件中,同时没有牺牲延迟表现。候选生成与排序的分离,使每个阶段都可以独立优化;而特征存储与流式流水线的使用,则确保了训练环境与服务环境之间的一致性。 查看英文原文: Swiggy Improves Search Autocomplete Using Real Time Machine Learning Ranking "