Деннис Деррих, специалист по данным, Ocado Technology Barcelona
На рынках по всему миру произошел важный сдвиг в сторону онлайн-покупок продуктов, и клиенты наслаждаются удобством доставки продуктов.
В Ocado Technology мы одержимы созданием беспрепятственного и удобного опыта покупок для наших глобальных партнеров OSP и их клиентов.
Поэтому мы задались вопросом: как сделать онлайн-покупки еще удобнее?
Поскольку многие покупатели возвращаются к нам регулярно, мы хотели создать удобное решение, которое заполнило бы их корзину покупок одним щелчком мыши, экономя их время и усилия.
Для этого мы разработали инструмент машинного обучения (МО) под названием «Умный магазин».
Что такое "Умный магазин"?
Smart Shop — это функция, которая позволяет покупателям одним щелчком мыши создать онлайн-корзину с необходимыми товарами. Эта функция разблокируется после первой покупки клиента и предлагает товары, которые он может захотеть купить, на основе истории покупок.
Задача: найти «лучшую корзину»
Одной из проблем было составление «лучшей» или «идеальной» продуктовой корзины для каждого покупателя. Это потому что:
- «лучшая корзина» или выбор товаров для корзины уникален для каждого покупателя
- размер корзины отличается для каждого клиента
- предпочтения клиентов со временем меняются.
Наш подход к созданию «лучшей корзины»
Чтобы найти решение для «лучшей корзины» каждого клиента, мы разработали минимально жизнеспособный продукт (MVP).
Мы использовали двойной подход для создания корзин:
- Мы создали рейтинг всех ранее купленных продуктов для данного клиента
- Мы взяли первые N продуктов из этого списка (где мы основываем N на среднем размере потребительской корзины).
Чтобы создать рейтинг продуктов, мы просмотрели историю покупок клиента и выделили три типа функций машинного обучения (ML):
- Характеристики клиента, такие как количество заказов или средний размер корзины для каждого клиента.
- Характеристики товара, такие как популярность товара или его реклама.
- Характеристики товара-покупателя, такие как популярность товара на уровне покупателей. Эти функции обладают наибольшей предсказательной силой.
Основываясь на этих характеристиках, цель обучения и оценки эффективности в автономном режиме была простой: сравнить наши прогнозы с тем, что клиенты купили в своем следующем заказе.
С нашим 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.