«Вы прибыли!»: как участники онлайн-хакатона разрабатывали для Ситимобил модели прогноза ожидаемого времени поездки

Мы предложили эту задачу нескольким десяткам команд на онлайн-хакатоне MIPT.Hack, организованном командой Phystech.Genesis. И теперь расскажем о том, какие решения придумали и презентовали команды-победительницы за 30 часов хакинга, и почему для экономики агрегатора такси жизненно важно как можно более точно прогнозировать время «в пути».

«Вы прибыли!»: как участники онлайн-хакатона разрабатывали для Ситимобил модели прогноза ожидаемого времени поездки

Для начала: почему онлайн-хакатон?

Мы решили не отказываться от хакатона из-за пандемии и режима самоизоляции, но перевести его в онлайн-формат. Онлайн прекрасен тем, что позволяет организовать хакатон без потери качества и «той самой» атмосферы кодинга с единомышленниками. При этом сохраняются все фишки офлайна: чек-поинты, Q&A с экспертами из индустрии, презентации и награждение.

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

Алексей Марахин

Итого: 30 часов, реальная задача из бизнеса и приз в 100 тысяч рублей на трек. Бонусом участники MIPT.Hack получили мерч и промокоды на доставку еды, чтобы кодить, не отвлекаясь на готовку.

В треке Ситимобил командам нужно было предложить свою методику корректировки расчетного времени поездки.

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

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

Андрей Павлов

Но обо всем по порядку.

Чем опасен неточный прогноз времени «в пути»

Итак, откуда вообще берется необходимость корректировать ожидаемое время поездки.

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

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

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

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

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

Сложность этой задачи по большому счету сводится к предсказанию пробок на дорожном графе. Часть случаев возникновения пробок могут быть объяснены системными причинами, такими как: структура дорожного графа (а именно — количество перекрестков), количеством левых поворотов или сезонными характеристиками в виде пиковых часов загрузки дорог утром и вечером. Но существуют и менее системные, сложно прогнозируемые причины, например ДТП.

Андрей Павлов

А теперь к задаче:

Мы попросили участников на основе анализа исторических и географических данных предложить методику корректировки расчетного времени поездки.

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

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

Решения команд

В треке Ситимобил победителями стали 4 команды. Мы оценивали MAPE модели, код-ревью, количество и качество найденных инсайтов в данных и презентацию решения.

Полная запись эфира со всеми финальными презентациями участников.

Команда «На результат» — победители

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

Виталий Минаев: «Для нашей команды хакатон MIPT.Hack стал отличной возможностью провести время с друзьями в работе над интересным проектом, разобраться в технологиях и алгоритмах, до которых раньше не доходили руки, а также узнать больше о задачах, которые решают в Ситимобил».

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

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

Сергей Полежаев: «Было очень интересно, задача была сложная, но метрики улучшать было возможно. И борьба была не за тысячные доли процента, это тоже очень порадовало».

Роман Александров: «Задача очень классическая для «data science», но было интересно поработать над маршрутами. Оперативной памяти на их обработку еле хватало, это было «challenging»). Мы с командой в течение хакатона практически без остановки сидели в Skype. Нехилый вышел марафон».

Олег Черемсин: «Хотелось чего-то менее похожего на повседневную работу, поэтому взялись за задачу от Ситимобил. И не пожалели, с предоставленными данными было очень интересно работать, уровень соперников был на высоте, и из их решений узнали новые подходы и инструменты, которые планируем применять в дальнейшем. Организация — на высоте, чувствуется большой опыт, в плане соблюдения графика и отсутствия технических проблем — все отлично».

Какой итог?

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

Андрей Павлов

Задачи, которые Ситимобил хотел решить участием в хакатоне — это поиск талантливых ребят и команд, свежие идеи, неожиданный подход к решению. Рынок получил сигнал, что Ситимобил нужны талантливые ребята для работы над нашим продуктом. И хотя эффект от участия в хакатоне как правило отложенный, мы уже получили несколько интересных резюме от участников. Надеемся, что вскоре они станут частью нашей команды :)

Анна Глумова
4
1 комментарий