Что дает рознице машинное обучение: пример проекта

У розницы очень разнообразный круг покупателей. Их много — всевозможных профессий и уровней дохода, от молодёжи до пенсионеров. Такое разнообразие не получится корректно описать двумя-тремя бизнес-правилами, потому что вы просто не сможете охватить все сочетания критериев и неизбежно потеряете часть клиентов. Поэтому для розницы очень важно как можно точнее сегментировать свою аудиторию, но это неизбежно усложняет модели. Здесь на помощь приходят технологии Machine Learning, дающие бизнесу более точные прогнозы и ответы на важные вопросы.

ea667841756018dbb26706d514bd57cf.png

99d578665c336fe6ac87f03cc37965eb.png
Какие вопросы имеются в виду? Например: уйдёт ли клиент? Нередко клиенты уходят, если в магазине нет нужного товара. Например, женщина каждый месяц покупает особый крем за 10 тысяч рублей и может выбирать из двух магазинов косметики. В одном из них часто отсутствует нужный товар, а во втором проблем с наличием нет. Скорее всего, она станет постоянно покупать во втором, пусть и чуть дороже.

Другой актуальный вопрос: как оптимизировать работу персонала? Например, нужно спланировать рабочие смены кассиров и продавцов-консультантов. Один способ подразумевает использование статистического анализа. Аналитик оценивает активность клиентов в зависимости от дня недели и видит, что в субботу покупают больше всего, а в пятницу и в воскресенье чуть меньше. Эту гипотезу проверяют статистическими тестами, а выводы передают руководству.

Но такой анализ может не учитывать многих сочетаний факторов. Например, если 7 марта приходится на среду — купят ли в этот день больше, чем в пятницу (ведь в обычное время пятница — более популярный день, чем остальные будни)? А выпускные? Или местные праздники? Чем больше факторов, тем труднее их все учесть с помощью простых правил. И вместо того, чтобы бесконечно усложнять правила, можно построить модель, которая спрогнозирует спрос на конкретный день.

bedf7a444b99f29d2d240d49323ff2b6.png

Наш проект в non-food ритейле


В данном случае нужно было проанализировать базу покупателей (примерно 2,5 млн человек) и предсказать, кто из них вернётся в магазин в ближайшие две недели. Мы взяли два метода библиотеки CatBoost — CatBoostClassifier и CatBoostRegressor, первая — для прогнозирования состава аудитории, вторая — для выбора самых востребованных товаров в ближайшие 2 недели. CatBoost вышел в самом начале нашего проекта, это был свежий подход к работе с категориальными признаками. А поскольку номенклатура товаров нашего заказчика содержит очень много категориальных фич, мы с удовольствием попробовали новинку в работе. После подбора параметров модель сразу же оправдала наши надежды точным прогнозированием. Не зря CatBoost — одна из самых популярных сегодня моделей градиентного бустинга.

Для модели взяли статистику за 2017 год:

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


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

Агрегировали данные для моделей и запустили расчёты. Первая модель предсказала, кто из покупателей придёт в ближайшие две недели, а вторая выдавала рекомендации: какие товары (до уровня артикула) купит конкретный человек. Кстати, требование прогнозировать популярность конкретных артикулов значительно усложняло задачу (обычно бизнесу достаточно прогнозов по категориям и наименованиям товаров, а не позициям).

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

dbbf2ac19e8dc8769727e5d7496ad991.png

В итоге после рассылки около 30% клиентов приобрели хотя бы один товар из трех, предсказанных моделью.

Теперь компания может точнее прогнозировать продажи: ритейлер знает, кто придет к нему в ближайшее время и что купит. Это помогает не только оптимизировать логистику, но и снизить сопутствующие расходы. Например, если конкретный клиент обычно ничего не покупает зимой, то не нужно отправлять ему SMS в январе. Модели также оптимизируют рассылки: специалист на основе прогноза сразу понимает, кому отправить e-mail, а кому — срочное SMS.

Подводные камни


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

  1. Контрольная — рассылку не получали.
  2. Группа с напоминаниями — получали общий текст от магазина.
  3. Группа с рекомендациями — получали SMS с тремя конкретными товарами, предсказанными моделью.


Оказалось, что люди, получившие рекомендации, покупали меньше, чем клиенты, не получавшие рассылок. Меньше был и средний чек, и количество приобретенных товаров. T-тест показал, что различия были статистически значимы (pvalue=0,017).

4d424783da3796061bd1df0dac8df57e.png

Мягко говоря, такие результаты всех обескуражили. Стали искать причину и выяснили, что магазины отправляли клиентам сообщения в определенный мессенджер, а его пользователи в нашем сегменте изначально покупали меньше по сравнению с другими клиентами. Об этом не знали даже маркетологи заказчика. Так что эксперимент получился некорректным, но по его результатам мы добавили в модель параметр «пользователь мессенджера». Этот случай демонстрирует, как тщательно нужно выбирать каналы для общения с клиентами.
Какие ещё можно сделать выводы?

  • Данных много не бывает.
  • Иногда взгляд аналитика со стороны приводит к свежей идее.


Сегментация клиентов


Анализ данных позволяет обнаружить закономерности, которые были скрыты в ранее доступной информации. Хорошим примером служит сравнение групп клиентов с помощью RFM-сегментации (Recency Frequency Monetary) и сегментации с использованием алгоритмов ML.

В RFM-сегментации используются три основных показателя:

  • давность последней покупки,
  • частота покупок за период,
  • сумма, потраченная клиентом.


На основании этих данных выделяют основные группы: «транжиры», «лояльные клиенты», «почти потерянные клиенты» и т.п. А маркетологи уже включают нужную целевую группу в определенную рассылку или делают предложение именно для этой группы.

Например, с помощью RFM-сегментации можно выделить сегменты покупателей и представить их как точки в трехмерном пространстве:

ece78146f710fe1881de79e167c7028f.png

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

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

Даже в таких данных алгоритм машинного обучения находит дополнительные возможности: разбивает клиентов на новые большие группы. Можно проанализировать это разбиение, чтобы выяснить, почему алгоритм именно так разделил клиентов. Например, некоторые высокодоходные клиенты — эксперты, которые сопровождают своих заказчикаов на шоппинге и используют свои скидочные карты; некоторые активно делятся своими карточками с друзьями и знакомыми. То есть после первого применения ML можно получить дополнительную информацию о своих клиентах на основе всё тех же данных.

c9a82a7d4780b13acd275218d1ecc180.png

Давайте расширим набор характеристик клиентов: добавим пол, возраст, особенности поведения и прочее. Как теперь алгоритм распределит покупателей?

Например, есть группа, которая охватывает как лучших клиентов (самых прибыльных), так и их «соседей», приносящих меньшую прибыль. Почему алгоритм выделил эту группу — вопрос для аналитика. Быть может, эти клиенты при дополнительном стимулировании покажут большую доходность. Или, напротив, эти клиенты не особо перспективны и повышение доходности было случайным отклонением, — стимулировать их дополнительно бессмысленно. Можно выдвинуть различные теории, но проверять их приходится экспериментально.

20aabe6db74a2d6d9afe50f53beddc1d.png

Планирование складов — прогнозирование продаж


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

Анализ покупок в конкретной торговой точке поможет сформировать и выкладку товаров на витринах. К примеру, если в магазин приходит много покупателей-мужчин, отдел с мужской продукцией не стоит размещать в дальнем углу.

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

***

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

Аналитики Дирекции по разработке и внедрению ПО, «Инфосистемы Джет»

© Habrahabr.ru