«Вы прибыли!»: как участники онлайн-хакатона разрабатывали для Ситимобил модели прогноза ожидаемого времени поездки
Мы предложили эту задачу нескольким десяткам команд на онлайн-хакатоне MIPT.Hack, организованном командой Phystech.Genesis. И теперь расскажем о том, какие решения придумали и презентовали команды-победительницы за 30 часов хакинга, и почему для экономики агрегатора такси жизненно важно как можно более точно прогнозировать время «в пути».
Для начала: почему онлайн-хакатон?
Мы решили не отказываться от хакатона из-за пандемии и режима самоизоляции, но перевести его в онлайн-формат. Онлайн прекрасен тем, что позволяет организовать хакатон без потери качества и «той самой» атмосферы кодинга с единомышленниками. При этом сохраняются все фишки офлайна: чек-поинты, Q&A с экспертами из индустрии, презентации и награждение.
Хакатоны в онлайне — это не новость, но большая их часть по отзывам участников обычно сильно проигрывает офлайну по атмосфере и интенсивности. Мы это учли и исправили. Из нашего опыта проведения хакатонов мы четко поняли, что участникам крайне важно общение с экспертами и интенсивность процесса хакинга. Именно на эти две ценности мы ставили упор при переносе хакатона в онлайн-формат: каждая команда держала связь в Zoom со специалистами из компаний-партнеров и имела возможность задавать вопросы в чате на протяжении всех 30 часов интенсивного кодинга.
Итого: 30 часов, реальная задача из бизнеса и приз в 100 тысяч рублей на трек. Бонусом участники MIPT.Hack получили мерч и промокоды на доставку еды, чтобы кодить, не отвлекаясь на готовку.
В треке Ситимобил командам нужно было предложить свою методику корректировки расчетного времени поездки.
Первичный пул задач для хакатона был достаточно большим: туда входили вопросы, связанные с предсказанием поведения пассажиров и водителей, задачи маршрутизации, распределения заказов и прочие. Для выбора финальной задачи мы руководствовались следующими критериями:
— актуальная и важная для решения проблема;
— хороший датасет, чтобы было пространство для творчества в поиске инсайтов и фичер-инжиниринга;
— задача, решаемая в течение хакатона;
— результат, который можно оценить объективным критерием.
Но обо всем по порядку.
Чем опасен неточный прогноз времени «в пути»
Итак, откуда вообще берется необходимость корректировать ожидаемое время поездки.
Агрегатор такси — это сложный организм, он связывает на своей платформе пассажира, который хочет уехать, и водителя, который готов принять этот заказ.
Чтобы рынок работал, нужно балансировать спрос и предложение. Для этого нужно искать такую цену, которая будет справедливой для обеих сторон: и для пассажира, и для водителя. Эти цены динамические: они зависят от множества факторов в данной точке и в данный момент времени. И одной из важнейшей составляющих в процессе ценообразования является оценка времени в пути.
В тот момент, когда пользователь создает заказ, гео-поставщик (сервис маршрутизации) оценивает ожидаемое время этой поездки. Но дорожная ситуация — вещь крайне нестабильная. Поэтому прогнозируемое время «в пути» будет смещаться. А между тем, точность этого прогноза — одна из составляющих, на которых строится экономика агрегатора такси.
При этом каждый город отличается от любого другого плотностью заказов, видом дорожного графа и качеством работы гео-поставщика. На расчет базовой цены поездки для клиента (и, как следствие, на заработок водителя) влияет и множество других факторов: кроме пиковых часов, это еще и день недели, сезонные изменения и другие.
Задача с предсказанием времени важна для обеих сторон агрегатора. Если время в пути будет занижено по сравнению с реальным, то для клиента это может обернуться, например, опозданием на важную встречу, а для водителя — снижением его заработка в единицу времени на линии. С другой стороны, если время будет завышено, то вслед за этим возрастет и стоимость поездки, на которую согласятся меньше клиентов, что приведет к снижению числа заказов на водителя и увеличит его простой.
Сложность этой задачи по большому счету сводится к предсказанию пробок на дорожном графе. Часть случаев возникновения пробок могут быть объяснены системными причинами, такими как: структура дорожного графа (а именно — количество перекрестков), количеством левых поворотов или сезонными характеристиками в виде пиковых часов загрузки дорог утром и вечером. Но существуют и менее системные, сложно прогнозируемые причины, например ДТП.
А теперь к задаче:
Мы попросили участников на основе анализа исторических и географических данных предложить методику корректировки расчетного времени поездки.
Датасет, который мы предложили командам, содержал параметры поездок по четырем городам присутствия сервиса: здесь ссылка на соревнование на Kaggle.
А дальше на основе тех данных, которые доступны на момент создания заказа, необходимо было скорректировать ожидаемое время поездки. Чем точнее эта корректировка, тем лучше сервис избавляется от вариативности цены из-за ошибок маршрутизации. И, в конечном счете, это позволяет сделать цену для клиента и водителя справедливой.
Решения команд
В треке Ситимобил победителями стали 4 команды. Мы оценивали MAPE модели, код-ревью, количество и качество найденных инсайтов в данных и презентацию решения.
Команда «На результат» — победители
Модель команды стала первой на лидерборде с наименьшей ошибкой по MAPE. Также ребята подчеркнули возможное влияние на бизнес и нашли хорошие инсайты в данных. Команда успела за время хакатона написать хорошо структурированный код и упаковать свой пайплайн обучения в докер, чтобы мы смогли быстро проверить и воспроизвести результат.
Виталий Минаев: «Для нашей команды хакатон MIPT.Hack стал отличной возможностью провести время с друзьями в работе над интересным проектом, разобраться в технологиях и алгоритмах, до которых раньше не доходили руки, а также узнать больше о задачах, которые решают в Ситимобил».
Максим Филин: «Задача была не только интересной, но и понятной, с точки зрения бизнеса. Оказалось, что для решения задачи можно применять многие подходы, алгоритмы и использовать различные источники данных. Удалось проверить множество гипотез и предположений и углубиться в новое направление».
Сергей Арефьев: «Отличный датасет: много данных, чистый таргет, приятно было решать. Наличие работающего лидерборда — это сразу плюс 10 баллов к хакатону по пятибальной шкале :) Сразу виден твой настоящий результат, ибо на презентациях можно сказать все что угодно, и без лидерборда все принимается на веру».
Сергей Полежаев: «Было очень интересно, задача была сложная, но метрики улучшать было возможно. И борьба была не за тысячные доли процента, это тоже очень порадовало».
Роман Александров: «Задача очень классическая для «data science», но было интересно поработать над маршрутами. Оперативной памяти на их обработку еле хватало, это было «challenging»). Мы с командой в течение хакатона практически без остановки сидели в Skype. Нехилый вышел марафон».
Олег Черемсин: «Хотелось чего-то менее похожего на повседневную работу, поэтому взялись за задачу от Ситимобил. И не пожалели, с предоставленными данными было очень интересно работать, уровень соперников был на высоте, и из их решений узнали новые подходы и инструменты, которые планируем применять в дальнейшем. Организация — на высоте, чувствуется большой опыт, в плане соблюдения графика и отсутствия технических проблем — все отлично».
Какой итог?
Спасибо всем участникам, организаторам и моим коллегам Алексею Павлову и Илье Браславскому, которые выступили в качестве экспертов с нашей стороны. Задачи по увеличению эффективности работы Ситимобил, конечно, не заканчиваются. Они лежат в плоскости развития сервисов маршрутизации, ценообразования и распределения заказов. Сейчас это одно из тех мест, где создаваемые математические модели могут и должны повышать качество сервиса для наших пользователей: а это десятки тысяч водителей и сотни тысяч клиентов.
Задачи, которые Ситимобил хотел решить участием в хакатоне — это поиск талантливых ребят и команд, свежие идеи, неожиданный подход к решению. Рынок получил сигнал, что Ситимобил нужны талантливые ребята для работы над нашим продуктом. И хотя эффект от участия в хакатоне как правило отложенный, мы уже получили несколько интересных резюме от участников. Надеемся, что вскоре они станут частью нашей команды :)