Meesho 是如何使用亚马逊 SageMaker 推断建立通用饲料排名器的

这是一篇由 Rama Badrinath、Divay Jindal 和 Utkarsh Agrawal 在 Meesho 共同撰写的客座文章。


Meesho 是印度发展最快的电子商务公司,其使命是让所有人都能实现互联网商务的民主化,并让印度的下一个十亿用户能够使用互联网。Meesho成立于2015年,如今专注于印度各地的买家和卖家。Meesho市场为微型、小型和中型企业以及个体企业家提供了访问数百万客户的渠道、30多个类别和900多个子类别的选择、泛印度物流、支付服务和客户支持能力,使他们能够在Meesho生态系统上高效地开展业务。

作为电子商务平台,Meesho旨在通过提供个性化和相关的产品推荐来改善用户体验。我们希望创建一个通用的Feed排名器,该排名可以考虑个人偏好和历史行为,以便在每个用户的Feed中有效地显示产品。通过这种方式,我们希望通过根据每位客户的独特需求量身定制购物体验并为他们提供最物有所值的服务,从而提高用户参与度、转化率和整体业务增长。

我们使用 亚马逊 S ageMaker 等的 亚马逊云科技 机器学习 (ML) 服务来开发强大的通用饲料排名器 (GFR)。在这篇文章中,我们将讨论GFR的关键组成部分,以及这种由机器学习驱动的解决方案如何简化机器学习生命周期,确保生态系统内的高效基础设施管理、可扩展性和可靠性。

解决方案概述

为了对用户的供稿进行个性化设置,我们分析了大量历史数据,从中提取了对包括浏览模式和兴趣在内的功能的见解。这些有价值的功能用于构建排名模型。GFR 会考虑地理位置、先前的购物模式、获取渠道等各种因素,实时对每个用户的提要进行个性化设置。一些基于交互的功能还用于捕捉用户对商品、物品类别或价格、评级或折扣等项目属性的亲和力。

还使用了多个与用户无关的功能和物品等级分数。其中包括物品受欢迎程度分数和物品购买倾向分数。所有这些功能都作为排名学习(LTR)模型的输入,该模型试图发出点击概率(PCTR)和购买概率(PCVR)。

为了获得多样化和相关的推荐,GFR从多个渠道寻找候选产品,包括漏洞(已知的用户偏好)、探索(新颖和可能有趣的产品)、人气(热门商品)和最新(最新新增)。

下图说明了 GFR 架构。

该架构可以分为两个不同的组件:模型训练和模型部署。在以下部分中,我们将更详细地讨论每个组件和所使用的 亚马逊云科技 服务。

模型训练

Meesho 使用 亚马逊 EMR 和 Apache Spark 来处理数亿个数据点,具体取决于模型的复杂性。主要挑战之一是大规模开展分布式训练。我们在 Amazon EMR 上使用了 DASK(一种与 Python 库本地集成的分布式数据科学计算框架),在整个集群中扩展训练任务。该模型的分布式训练有助于将训练时间从几天缩短到几小时,并使我们能够高效、经济地安排 Spark 作业。我们使用离线功能存储来维护将用于模型训练的所有特征值的历史记录。训练中的模型工件存储在 亚马逊简单存储服务 (Amazon S3) 中,提供便捷的访问和版本管理。

我们使用时间采样策略来创建用于模型训练的训练、验证和测试数据集。我们记录了各种指标来评估模型的性能——最重要的指标是 ROC 曲线下方的区域和精确召回曲线下方的面积。我们还跟踪了模型的校准,以防止在预测概率分数的同时出现过度自信和不自信的问题。

模型部署

Meesho 使用启用了自动扩展的 SageMaker 推理端点来部署经过训练的模型。SageMaker 支持各种 ML 框架,易于部署,允许以低延迟提供模型。尽管 亚马逊云科技 提供适用于大多数用例的标准推理映像,但我们构建了一个专门满足我们需求的自定义推理镜像,并将其推送到 亚马逊弹性容器注册表 (Amazon ECR)。

我们建立了一个内部 A/B 测试平台,便于实时监控 A/B 指标,使我们能够迅速做出以数据为依据的决策。我们还使用 SageMaker 的 A/B 测试 功能在终端上部署了多个生产变体。通过A/B实验,我们观察到平台的转化率提高了约3.5%,用户打开应用程序的频率也有所增加,这凸显了这种方法的有效性。

在模型部署后,我们每天多次跟踪各种偏差,例如特征偏移和先前漂移,以防止模型性能恶化。

我们使用 亚马逊云科技 L ambda 来设置模型再训练、端点更新和监控过程所需的各种自动化和触发器。

模型部署后的推荐工作流程如下所示(如解决方案架构图所示):

  1. 具有用户上下文和交互功能的输入请求在应用程序层从 Meesho 的移动和 Web 应用程序接收。
  2. 应用层从在线要素存储中获取其他功能,例如用户的历史数据,并将其附加到输入请求中。
  3. 附加的功能将发送到实时端点以生成建议。
  4. 模型预测被发送回应用层。
  5. 应用层使用这些预测来个性化移动或网络应用程序上的用户提要。

结论

Meesho 使用 SageMaker 成功实现了通用饲料排名,从而根据每位客户的偏好和历史行为为其提供高度个性化的产品推荐。这种方法显著提高了用户参与度并提高了转化率,促进了公司的整体业务增长。由于利用 亚马逊云科技 服务,我们的 ML 生命周期运行时间显著缩短,从几个月缩短到仅需几周,从而提高了我们团队的效率和生产力。

借助这种先进的Feed排名器,Meesho继续提供量身定制的购物体验,为其客户增加更多价值,并履行其为所有人实现电子商务民主化的使命。

该团队感谢Meesho数据科学总监 拉文德拉·亚达夫 和Meesho人工智能负责人 Debdoot Mukherjee 的持续支持和指导 ,他们在推动这一成功方面发挥了关键作用。

要了解有关 SageMaker 的更多信息,请参阅 亚马逊 S ageMaker 开发者指南


作者简介

Utkarsh Agrawal 目前在Meesho担任高级数据科学家。他之前曾在 Fractal Analytics 和 Trell 的多个领域工作过,包括推荐系统、时间序列、自然语言处理等。他拥有印度哈拉格布尔印度理工学院(IIT)的数学和计算硕士学位。

拉玛·巴德里纳特 目前在Meesho担任首席数据科学家。他之前曾在微软和ShareChat的多个领域合作,包括推荐系统、图像人工智能、自然语言处理等。他拥有印度科学研究院 (IiSC) 的机器学习硕士学位。他还在KDD和ECIR等知名会议上发表过论文。

Divay Jindal 目前在Meesho担任首席数据科学家。他之前曾在Bookmyshow的多个领域合作,包括推荐系统和动态定价。

Venugopal Pai 是 亚马逊云科技 的解决方案架构师。他住在印度班加罗尔,帮助数字原生客户在 亚马逊云科技 上扩展和优化其应用程序。