Instacart利用机器学习和事件处理构建实时商品可用性架构

Instacart 的实时商品可用性架构

Instacart 结合机器学习和基于事件的处理技术,构建了一种新的架构,旨在为用户提供近乎实时的商品可用性信息。这一解决方案通过减少因缺货导致的订单取消,显著提升了用户满意度和留存率。同时,团队还开发了一个多模型实验框架,以进一步优化模型质量。

背景与挑战

多年来,Instacart 一直面临准确预测商品可用性的挑战。COVID-19 疫情和供应链问题使得这一功能变得尤为重要。Instacart 需要在超过 8 万个零售点的数百万种商品中,确保用户能够获得最新的库存信息。Instacart 工程总监 Viswa Mani Kiran Peddinti 强调,提高订单质量(包括商品可用性)对于客户满意度至关重要。

架构设计

为了提供实时且准确的商品可用性数据,Instacart 设计了一种新的架构,通过以下两种方式将商品可用性评分传递给客户应用:

  1. 全量同步:使用 Snowflake 数据仓库和数据库(DB)摄入工作器,将机器学习模型计算的可用性评分定期同步到 SQL 事务数据库中。
  2. 按需刷新:对于频繁搜索的商品,使用 AWS Kinesis 和 S3 进行按需刷新,确保这些商品的可用性评分能够更频繁地更新到数据库中。

机器学习模型改进

Instacart 对其机器学习模型进行了全面升级,以提高可解释性、适应不断增长的产品目录,并应对用户购物习惯的变化。新模型包含三个组件:

  1. 通用评分:描述商品的典型可用性模式,每周重新计算一次。
  2. 趋势评分:量化短期内的可用性变化,每天或每小时重新计算一次。
  3. 实时评分:基于最新的观察数据,通过事件驱动的流式架构(使用 Apache Kafka 和 Flink)获取来自客户应用和零售商系统的信号。

新模型显著降低了计算成本,与之前的方法相比,减少了约 80% 的运算量。此外,模型还充分利用了 Instacart 新的 MLOps 平台 Griffin,支持模型版本控制和基于用例的模型变体,以获得最适合的商品可用性评分。

实验框架

为了更好地实施机器学习模型改进,Instacart 创建了多模型实验框架,减少了并行运行模型实验的工程负担。此外,Delta Framework 提供了一种机制,可以根据特定产品、零售商或地理区域的需求,临时调整可用性评分。该框架还支持多段优化功能,持续监控向客户展示的可用性评分、找到率和订单留存率,并能够推荐段级评分调整。

总结

Instacart 通过结合机器学习与事件驱动的架构,成功构建了一个实时商品可用性系统,显著提升了用户体验和公司运营效率。新的架构和模型不仅适应了大规模数据处理的挑战,还通过优化计算成本和实验框架,进一步推动了技术创新的步伐。

阅读 46
0 条评论