Деннис Деррих, специалист по данным, Ocado Technology Barcelona

На рынках по всему миру произошел важный сдвиг в сторону онлайн-покупок продуктов, и клиенты наслаждаются удобством доставки продуктов.

В Ocado Technology мы одержимы созданием беспрепятственного и удобного опыта покупок для наших глобальных партнеров OSP и их клиентов.

Поэтому мы задались вопросом: как сделать онлайн-покупки еще удобнее?

Поскольку многие покупатели возвращаются к нам регулярно, мы хотели создать удобное решение, которое заполнило бы их корзину покупок одним щелчком мыши, экономя их время и усилия.

Для этого мы разработали инструмент машинного обучения (МО) под названием «Умный магазин».

Что такое "Умный магазин"?

Smart Shop — это функция, которая позволяет покупателям одним щелчком мыши создать онлайн-корзину с необходимыми товарами. Эта функция разблокируется после первой покупки клиента и предлагает товары, которые он может захотеть купить, на основе истории покупок.

Задача: найти «лучшую корзину»

Одной из проблем было составление «лучшей» или «идеальной» продуктовой корзины для каждого покупателя. Это потому что:

  • «лучшая корзина» или выбор товаров для корзины уникален для каждого покупателя
  • размер корзины отличается для каждого клиента
  • предпочтения клиентов со временем меняются.

Наш подход к созданию «лучшей корзины»

Чтобы найти решение для «лучшей корзины» каждого клиента, мы разработали минимально жизнеспособный продукт (MVP).

Мы использовали двойной подход для создания корзин:

  1. Мы создали рейтинг всех ранее купленных продуктов для данного клиента
  2. Мы взяли первые N продуктов из этого списка (где мы основываем N на среднем размере потребительской корзины).

Чтобы создать рейтинг продуктов, мы просмотрели историю покупок клиента и выделили три типа функций машинного обучения (ML):

  1. Характеристики клиента, такие как количество заказов или средний размер корзины для каждого клиента.
  2. Характеристики товара, такие как популярность товара или его реклама.
  3. Характеристики товара-покупателя, такие как популярность товара на уровне покупателей. Эти функции обладают наибольшей предсказательной силой.

Основываясь на этих характеристиках, цель обучения и оценки эффективности в автономном режиме была простой: сравнить наши прогнозы с тем, что клиенты купили в своем следующем заказе.

С нашим MVP — мы быстро запустили производство.

Быстрый запуск в производство

Мы использовали подход, ориентированный на данные, а не на модель. Если вы думаете о решении машинного обучения как о данных + коде + гиперпараметрах, то сосредоточение внимания на части данных — это то, где наибольший потенциал кроется с наименьшим объемом работы.

Мы использовали Google BigQuery ML (BQML). Поскольку часть моделирования была простой, мы могли сосредоточиться на создании функций, таких как:

  • фильтрация дубликатов товаров с помощью совпадений
  • использование данных об акциях
  • уделение большего внимания функциям кратковременной памяти (придание большего значения недавно купленным продуктам)
  • улавливание сезонности

Весь наш конвейер машинного обучения, от приема данных до вывода прогнозов, по сути находится в BigQuery. Этот подход помог нам создать базовую модель с использованием логистической регрессии (а позже и усиленных деревьев) и быстро развернуть ее в рабочей среде. Это видение, которое признает модель и является лишь небольшой частью всего конвейера, упростило достижение того, что Google называет уровень 2 MLOps с первого эксперимента.

«Эта автоматизированная система непрерывной интеграции и непрерывного развертывания позволяет вашим специалистам по обработке и анализу данных быстро изучать новые идеи, связанные с проектированием функций, архитектурой моделей и гиперпараметрами. Они могут реализовать эти идеи и автоматически создавать, тестировать и развертывать новые компоненты конвейера в целевой среде».

Мы постоянно отслеживали наши прогнозы относительно нашего базового уровня без машинного обучения на протяжении всего процесса, который просто повторял последний заказ клиента.

Мы измеряли результаты с помощью двух тестовых фреймворков: 1) перед производством, используя метрики науки о данных — чтобы мы могли выбрать лучшего кандидата из наших экспериментов, и 2) в производстве — измеряя бизнес-метрики с помощью AB-тестирования.

1) Измерение перед производством с использованием показателей науки о данных

Метрики машинного обучения, на которых мы сосредоточились, — это точность и полнота. Мы могли бы измерить эти показатели на исторических данных, прежде чем переходить к производству.

Точность, или коэффициент конверсии, относится к количеству предложенных продуктов, которые попали в конечную корзину.

Напомним, измеряет, какая часть конечной корзины приходится на Smart Shop.

Возможно, вы слышали о печально известном компромиссе между точностью и отзывом. В нашем случае мы устанавливаем наш компромисс в размере предлагаемой нами корзины. Если мы предложим небольшие корзины, покупателю, вероятно, придется добавить больше товаров и потратить на это больше времени. В то время как если мы предоставим большую корзину товаров, клиент, вероятно, захочет удалить больше товаров. Задача состояла в том, чтобы найти правильный баланс.

Чтобы найти правильный компромисс, наш подход к быстрому запуску в производство был ключевым. Это означало, что мы могли запускать тесты A-B для изменений, которые можно было измерить только в производственной среде. Например:

Глядя только на производительность в автономном режиме (по историческим данным), мы можем ожидать, что точность и полнота будут зависеть от размера корзины следующим образом:

Однако предложение очень маленьких или очень больших корзин, скорее всего, приведет к ситуации компромисса, упомянутой ранее.

2) Измерение в процессе производства с использованием бизнес-показателей и AB-тестирования

Рассмотрение только точности и полноты — типичный пример разрыва между показателями машинного обучения и тем, что представляет интерес для бизнеса.

100% отзыв не имеет большого значения, если никто не использует эту функцию!

Коммуникация и совместная работа были ключевыми факторами в совершенствовании решения. Пообщавшись со всеми вовлеченными сторонами, мы установили соответствующую бизнес-метрику, которую будем измерять в AB-тесте. В нашем случае это была стоимость корзины и взаимодействие с умным магазином (покупатели используют его снова после использования умного магазина?).

Благодаря хорошему общению и четкому согласованию с командой разработчиков программного обеспечения мы согласовали точные требования к тому, что нам, специалистам по данным, потребуется от приложения для запуска AB-теста. Этот подход означал контроль разделения клиентов и отслеживание того, какая модель использовалась для каждого клиента.

Экономия времени и усилий клиентов благодаря нашему подходу

Использование простого MVP и подхода, ориентированного на данные, позволило нам быстро реализовать проект. Благодаря преимуществам быстрой обратной связи мы могли сосредоточиться на насущной проблеме — компромиссе размера корзины.

И, постоянно улучшая и тестируя, мы разработали часто используемую функцию, которая экономит время и усилия клиентов.

Что дальше для Smart Shop?

Глядя в будущее, мы хотим повысить ценность для покупателей.

Вместо того, чтобы рассматривать каждый продукт по отдельности, мы будем использовать сходство и совпадение продуктов, чтобы удалить повторяющиеся продукты и определить приоритеты продуктов, которые хорошо сочетаются друг с другом.

Мы также предложим продукты, которые могут понравиться покупателям, даже если они не покупали их раньше.

Используя этот основанный на данных итеративный подход, мы сможем постоянно улучшать функции и делать онлайн-покупки более удобными.

Вклад в подготовку этой статьи внесли: Ярослав Марчук, специалист по данным / Лоран Кандилье, старший специалист по данным / Ралука Симона Раду, менеджер по продукту / Ксавье Форнс, руководитель группы инженеров, Ocado Technology

Первоначально опубликовано на https://www.ocadogroup.com.