Что делают алгоритмы, пока мы заказываем такси?

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

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

Шестиугольники вместо районов

После того, как вы заказываете машину, агрегатор (Яндекс.Такси, Ситимобил, Uber и любой другой) начинает поиск водителя внутри вашего шестиугольника. Если обычный житель видит город сочетанием районов, административных округов и прочих территориальных единиц, агрегаторы смотрят на мир сеткой из правильных геометрических форм, которые покрывают карту. Почему шестиугольник? Потому что в отличие от, например, квадрата, в нем расстояние от центра до каждой соседней клетки одинаковое. В Яндекс.Такси площадь такой клетки равна примерно двум квадратным километрам. Каждый шестиугольник агрегаторы рассматривают как отдельную информационную единицу. Внутри нее назначают свои цены и ищут водителей для пользователя, заказавшего такси в этой клетке. В аналитике географических единиц агрегаторам помогает открытая библиотека H3, разработанная Uber.

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

Цены

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

Важно понимать, что агрегаторы — это не только диспетчерские службы, но и полноценные регуляторы рынка. Если не влиять на цены, то с повышением спроса может возникнуть ситуация под названием wild goose chase (преследование дикого гуся, английская идиома, означающая бесполезный и долгий поиск с неоправданной целью). В зоне высокого спроса заканчиваются водители — в этот момент заказы распределяются между водителями из соседних или более отдаленных зон. Время, которое водители тратят на дорогу к пассажиру, не оплачивается. Поэтому при состоянии wild goose chase таксисты могут исколесить весь город ради нескольких заказов, а пассажиры просто не дождутся своей поездки. При повторении ситуации это оттолкнет от агрегаторов как водителей, так и пользователей. В особенности водителей, поскольку отказ от заказов влечет за собой понижение рейтинга в системе. Поэтому одна из задач, которую стремятся решить все агрегаторы, это динамическое выравнивание спроса и предложения. Делается это в том числе с помощью коэффициентов высокого спроса.

Пример

Пусть k — коэффициент спроса, а базовая цена поездки по маршруту — 200 рублей.

При k = 1 (нормальный спрос) цена за поездку составит k х 200 = 200 рублей. При этой цене условно восемь пользователей будут искать поездку, но доступных машин будет всего три.

При k = 1.5 (повышенный спрос) цена за поездку составит k х 200 = 300 рублей. Эта цена отпугнет трех пассажиров, но привлечет из других зон двоих водителей. Таким образом, спрос и предложение уравняются. 

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

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

Пример

Пусть s — добавочная сумма, а базовая цена поездки по маршруту — 200 рублей.

При s = 0 цена за поездку составит 200 + s = 200 рублей. При этой цене условно восемь пользователей будут искать поездку, но доступных машин будет всего три.

При s = 150 (повышенный спрос) цена за поездку составит 200 + s = 350 рублей. Эта цена отпугнет трех пассажиров, но привлечет из других зон двоих водителей. Таким образом, спрос и предложение уравняются. 

Для выравнивания цен в зависимости от погоды Яндекс.Такси использует сервисы своей экосистемы, в частности Яндекс.Погоду. Ситимобил применяет машинное обучение, основанное на данных, полученных в соответствующих шестиугольниках при различных погодных условиях.

Сколько ехать?

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

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

Будущее

В наше время Uber позволяет заказывать не просто поездки, а полеты на вертолете. За этим активно следят другие компании, а Яндекс.Такси даже готовятся к введению чего-то похожего

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

Есть и более насущные проблемы, которые предстоит решить на уровне алгоритмов еще современным агрегаторам. Например, сервисы пока не умеют прогнозировать и учитывать наличие в шестиугольниках машин своих конкурентов, чтобы подстраиваться под эти данные, более оптимально распределять водителей и назначать цены. А значит, поле для будущих разработок все еще обширно, а количество вакантных мест для дата-аналитиков будет только увеличиваться.

Автор: Богдан Сиротич

Поделиться:
Опубликовано в рубрике UncategorizedTagged , , ,

SkillFactory.Рассылка