Это гостевой пост, написанный в соавторстве Рамой Бадринатхом, Диваем Джиндалом и Уткаршем Агравалом из Meesho.
Мишо — самая быстрорастущая компания электронной коммерции в Индии, миссией которой является демократизация интернет-торговли для всех и сделать ее доступной для следующего миллиарда пользователей Индии. Meesho была основана в 2015 году и сегодня ориентирована на покупателей и продавцов по всей Индии. Торговая площадка Meesho предоставляет микро-, малому и среднему бизнесу и индивидуальным предпринимателям доступ к миллионам клиентов, выбор из более чем 30 категорий и более 900 подкатегорий, общеиндийскую логистику, платежные услуги и возможности поддержки клиентов для эффективного ведения бизнеса. бизнеса в экосистеме Meesho.
Как платформа электронной коммерции, Meesho стремится улучшить взаимодействие с пользователем, предлагая персонализированные и актуальные рекомендации по продуктам. Мы хотели создать обобщенную систему ранжирования каналов, которая учитывает индивидуальные предпочтения и историческое поведение, чтобы эффективно отображать продукты в ленте каждого пользователя. Благодаря этому мы хотели повысить вовлеченность пользователей, коэффициенты конверсии и общий рост бизнеса, адаптируя опыт покупок к уникальным требованиям каждого клиента и обеспечивая наилучшее соотношение цены и качества.
Мы использовали сервисы машинного обучения (ML) AWS, такие как Amazon SageMaker, для разработки мощного универсального средства ранжирования каналов (GFR). В этом посте мы обсуждаем ключевые компоненты GFR и то, как это решение на основе машинного обучения упростило жизненный цикл машинного обучения, обеспечив эффективное управление инфраструктурой, масштабируемость и надежность в экосистеме.
Обзор решения
Чтобы персонализировать каналы пользователей, мы проанализировали обширные исторические данные, извлекая информацию о функциях, включая модели просмотра и интересы. Эти ценные функции используются для построения моделей ранжирования. GFR персонализирует ленту каждого пользователя в режиме реального времени, учитывая различные факторы, такие как география, предыдущие модели покупок, каналы привлечения и многое другое. Некоторые функции, основанные на взаимодействии, также используются для определения привязанности пользователя к товару, категории товара или свойствам товара, таким как цена, рейтинг или скидка.
Также используются некоторые независимые от пользователя функции и оценки на уровне элемента. К ним относятся показатель популярности предмета и показатель склонности к покупке предмета. Все эти функции используются в качестве входных данных для модели обучения ранжированию (LTR), которая пытается определить вероятность клика (PCTR) и вероятность покупки (PCVR).
Для получения разнообразных и актуальных рекомендаций GFR выбирает продукты-кандидаты из нескольких каналов, включая эксплойты (известные предпочтения пользователей), исследования (новые и потенциально интересные продукты), популярность (трендовые элементы) и недавние (последние дополнения).
Следующая диаграмма иллюстрирует архитектуру GFR.
Архитектуру можно разделить на два компонента: обучение модели и развертывание модели. В следующих разделах мы более подробно обсудим каждый компонент и используемые сервисы AWS.
Модельное обучение
Мишо использовал Amazon EMR с Apache Spark для обработки сотен миллионов точек данных, в зависимости от сложности модели. Одной из основных задач было масштабное проведение распределенного обучения. Мы использовали Dask — распределенную среду обработки данных, которая изначально интегрируется с библиотеками Python — в Amazon EMR, чтобы масштабировать задания по обучению в кластере. Распределенное обучение модели помогло сократить время обучения с дней до часов и позволило нам эффективно и экономично планировать задания Spark. Мы использовали автономное хранилище функций для ведения истории всех значений функций, которые будут использоваться для обучения модели. Артефакты моделей, полученные в результате обучения, хранятся в Amazon Simple Storage Service (Amazon S3), что обеспечивает удобный доступ и управление версиями.
Мы использовали стратегию выборки по времени для создания обучающих, проверочных и тестовых наборов данных для обучения модели. Мы отслеживали различные показатели, чтобы оценить производительность модели, наиболее важными из которых являются площадь под кривой ROC и область под кривой точного отзыва. Мы также отслеживали калибровку модели, чтобы предотвратить проблемы чрезмерной и недостаточной уверенности при прогнозировании оценок вероятности.
Развертывание модели
Мишо использовал конечные точки вывода SageMaker с включенным автоматическим масштабированием для развертывания обученной модели. SageMaker обеспечивает простоту развертывания и поддержку различных платформ машинного обучения, что позволяет обслуживать модели с низкой задержкой. Хотя AWS предлагает стандартные образы вывода, подходящие для большинства случаев использования, мы создали собственный образ вывода, который специально соответствует нашим потребностям, и отправили его в реестр Amazon Elastic Container Registry (Amazon ECR).
Мы создали собственную платформу A/B-тестирования, которая облегчает мониторинг показателей A/B в реальном времени и позволяет нам оперативно принимать решения на основе данных. Мы также использовали функцию A/B-тестирования SageMaker для развертывания нескольких рабочих вариантов на конечной точке. В ходе экспериментов A/B мы наблюдали повышение коэффициента конверсии платформы примерно на 3,5 % и увеличение частоты открытия приложений пользователями, что подчеркивает эффективность этого подхода.
Мы отслеживали различные отклонения, такие как смещение функций и предыдущее смещение, несколько раз в день после развертывания модели, чтобы предотвратить ухудшение производительности модели.
Мы использовали AWS Lambda для настройки различных средств автоматизации и триггеров, которые необходимы во время переобучения модели, обновления конечных точек и процессов мониторинга.
Рабочий процесс рекомендаций после развертывания модели работает следующим образом (как указано на схеме архитектуры решения):
- Запросы ввода с пользовательским контекстом и функциями взаимодействия принимаются на уровне приложения из мобильного и веб-приложения Meesho.
- Уровень приложения извлекает дополнительные функции, такие как исторические данные пользователя, из онлайн-хранилища функций и добавляет их к входным запросам.
- Добавленные функции отправляются на конечные точки в режиме реального времени для формирования рекомендаций.
- Прогнозы модели отправляются обратно на прикладной уровень.
- Уровень приложения использует эти прогнозы для персонализации пользовательских каналов в мобильном или веб-приложении.
Заключение
Meesho успешно реализовал обобщенный рейтинг каналов с помощью SageMaker, в результате чего каждому клиенту были предложены персонализированные рекомендации по продуктам на основе их предпочтений и исторического поведения. Такой подход значительно улучшил вовлеченность пользователей и привел к более высоким показателям конверсии, что способствовало общему росту бизнеса компании. В результате использования сервисов AWS продолжительность жизненного цикла машинного обучения значительно сократилась: с нескольких месяцев до нескольких недель, что привело к повышению эффективности и производительности нашей команды.
С помощью этого усовершенствованного средства ранжирования каналов Meesho продолжает предоставлять индивидуальный подход к покупкам, повышая ценность своих клиентов и выполняя свою миссию по демократизации электронной коммерции для всех.
Команда благодарна за постоянную поддержку и руководство со стороны Равиндра Ядавдиректор по науке о данных Meesho и Дебдут Мукерджируководитель отдела искусственного интеллекта в Meesho, сыгравший ключевую роль в обеспечении этого успеха.
Дополнительную информацию о SageMaker см. в Руководстве разработчика Amazon SageMaker.
Об авторах
Уткарш Агравал в настоящее время работает старшим специалистом по данным в Meesho. Ранее он работал с Fractal Analytics и Trell в различных областях, включая рекомендательные системы, временные ряды, НЛП и многое другое. Он получил степень магистра математики и информатики Индийского технологического института Харагпура (IIT), Индия.
Рама Бадринатх в настоящее время работает главным специалистом по данным в Meesho. Ранее он работал с Microsoft и ShareChat в различных областях, включая рекомендательные системы, искусственный интеллект изображений, НЛП и многое другое. Он имеет степень магистра машинного обучения Индийского института науки (IISc), Индия. Он также публиковал статьи на известных конференциях, таких как KDD и ECIR.
Дивай Джиндал в настоящее время работает ведущим специалистом по данным в Meesho. Ранее он работал с Bookmyshow в различных областях, включая рекомендательные системы и динамическое ценообразование.
Венугопал Пай — архитектор решений в AWS. Он живет в Бангалоре, Индия, и помогает клиентам, использующим цифровые технологии, масштабировать и оптимизировать свои приложения на AWS.