Кейс Delivery Club: мы сделали свой ИИ, который прогнозирует спрос на доставку еды
Большой брат следит за тем, что, когда и где вы заказываете.
На прошлой неделе мы анонсировали «Алан» — «умную» систему, которая может прогнозировать спрос на доставку еды и автоматически формировать расписание курьеров в разных районах города. Мы назвали её в честь Алана Тьюринга. Его книга «Может ли машина мыслить?» — мастрид нашего отдела аналитики.
В основе «Алана» — алгоритм, состоящий из ансамбля моделей различного типа: нейросети, деревья решений, линейные модели. В качестве обучающих признаков модели используются как исторические данные по отдельным ресторанам, так и множество других признаков, в том числе погода, инфраструктура района, предстоящие спортивные события и праздники.
К примеру, старые метрики говорят нам о том, что в районе Южного Бутова в дождливые дни большой спрос на доставку из суши-баров: теперь «Алан» автоматически посчитает и распределит по ресторанам-партнёрам Бутова такое количество курьеров, которое поможет сделать доставку быстрой и эффективной в плохую погоду. Никакой магии — только математика.
Зачем нам «Алан»
Ключевая задача логистов Delivery Club — назначение курьеров на точки. До «Алана» курьерское расписание формировалось вручную: в Москве этим занималась одна команда, в Петербурге — другая, в регионах — третья.
Ни одна из команд в работе не опиралась на сложные исторические или внешние данные вроде спортивных событий или атмосферного давления. Это приводило к тому, что иногда в каком-то районе курьеры простаивали, а в другом их было слишком мало. При этом сами диспетчеры сильно перегружались и теряли эффективность. Внутренний запрос на что-то вроде «Алана» был у нас давно, и систему мы создавали с тремя целями:
- Повысить эффективность курьеров. У нас есть «рейтинг загруженности»: это количество заказов в единицу времени, которое курьер может доставлять. Чем меньше простой между доставкой одного заказа и получением нового, тем лучше. В этом заинтересованы и курьеры (больше заказов — больше денег), и сам сервис. Система поможет сотрудникам быть эффективнее и больше зарабатывать.
- Удовлетворить спрос на доставку. Тут всё ясно: когда в зоне достаточно курьеров, еда приезжает быстрее. Скорость — один из ключевых параметров, над которым мы сейчас работаем. В последние три-четыре года именно повышение скорости позволило изменить отношение к доставке от «еда на праздник» до «еда на обед».
- Упростить работу диспетчеров. Каждую неделю курьеры скидывали в чат с нашим ботом свои пожелания относительно расписания: где они хотят работать, в какое время и в каких зонах. Диспетчер обрабатывал информацию и формировал рабочие интервалы. На то, чтобы спланировать расписание курьеров на день вперёд, у него уходило около восьми часов.
Теперь диспетчеру остаётся только промодерировать результаты «Алана» — даже самые сложные логистические системы не могут работать без человеческого участия. Модерация расписания курьеров на всю следующую неделю занимает не более двух-трёх часов.
Если всё хорошо, диспетчер утверждает посчитанную по модели информацию, а следом данные уходят курьерам. Более того: мы сделали интерфейс системы таким, чтобы курьеры могли дать обратную связь по своему назначению и одной кнопкой выбрать график и нужные им зоны. Система рассчитывает всё так, чтобы угодить и курьерам, и нашим маркетинговым задачам.
Раньше для диспетчеров и курьеров было два разных рабочих интерфейса. «Алан» помог их унифицировать. Можно сказать, что отныне эта система — «мозг» Delivery Club.
Как она работает
Главных задач у «Алана» три: почасовое прогнозирование спроса на доставку в разных районах, расчёт нужного количества курьеров и автоматическое формирование индивидуального расписания.
Они выполняются с помощью модели, которую аналитики написали на основе наших собственных исторических метрик по ресторанам-партнерам. Это не только количество курьеров в том или ином районе, но и метрики по силе бренда ресторана (частота упоминаний в сети), по доставке в праздники, при разных погодных условиях, временах года, во время городских и транспортных коллапсов, митингов. Таких показателей сейчас более 100.
Обучаясь на признаках с учетом определенных заранее метрик, модель прогнозирует ежедневный спрос на доставку и формирует расписание для каждой логистической зоны. Если углубляться в технологическую сторону, то в основе предсказания количества заказов в логистических зонах лежит ансамбль моделей градиентного бустинга, нейросетей и несколько линейных моделей.
Важно: кроме исторических данных, при формировании расписания «Алан» учитывает тот самый «рейтинг загруженности». Система помогает сделать все зоны доставки сбалансированными — мы стараемся, чтобы новичков и опытных курьеров везде было поровну.
Вся разработка заняла у нас около 4 месяцев. Первоначальная версия была написана быстро: идейный вдохновитель «Алана», наш главный аналитик Константин Измайлов, сделал ее за три недели. После к работе подключились еще два аналитика — они взяли на себя работу с данными и поиск оптимальных решений. В целом над «Аланом» трудились примерно 15 человек: руководитель проекта Антон Сокольников, аналитик Костя Измайлов, команда бэкенд-разработки, дизайнеры, фронтенд-разработчики. А со стороны отдела логистики — я.
Итоги
Система постоянно совершенствуется. Мы делаем ретроспективный анализ каждую неделю: добавляем какие-то новые фичи, смотрим на бизнес-метрики, фиксим баги. А когда к Delivery Club подключается новый ресторан, прогноз спроса и количества курьеров для него делается просто: «Алан» автоматически ищет в системе похожие рестораны (так называемых «ближайших соседей») и копирует расчеты.
Пока что к «Алану» подключен только Санкт-Петербург, но в апреле мы запустим систему в остальных городах присутствия компании.