Прогнозирование: какие методы использует Uber

forecasting uber machine learning

Первая статья в серии, посвященной объяснению того, как Uber использует прогнозирование для улучшения своих продуктов. В дополнение к стандартным статистическим алгоритмам Uber строит прогнозы с использованием трех методов: машинное обучение, глубокое обучение и вероятностное программирование.

Прогнозирование

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

Прогнозирование рынка uber
Рисунок 1. Прогнозирование рынка в Калифорнийском заливе позволяет направлять водителей в районы с высоким спросом.

Неудивительно, что Убер применяет прогнозирование для разных целей, в том числе:

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

Что делает прогнозирование (в Uber) сложной задачей?

Uber работает в реальном, физическом мире с его изменчивыми факторами, такими как поведение и интересы людей, физические ограничения и непредсказуемость. Физические ограничения, например, географическое расстояние и пропускная способность дороги, переводят прогнозирование из временных в пространственно-временные области.

Несмотря на то что Uber является относительно молодой компанией (восемь лет), ее быстрый рост предполагает, что модели прогнозирования идут в ногу со скоростью и масштабами заказов.

Рис. 2 демонстрирует пример данных о поездках Uber в городе за более чем 14 месяцев. Как видно, график сильно изменчив, но видна положительная тенденция и сезонность (например, декабрь часто имеет больше пиковых дат из-за большого количества праздников, разбросанных в течение месяца).

Используя сумму поездок Uber в городе за каждый день, мы можем лучше прогнозировать количество и частоту будущих поездок.
Рисунок 2. Используя сумму поездок Uber в городе за каждый день, мы можем лучше прогнозировать количество и частоту будущих поездок.

Если мы увеличим масштаб (рис. 3) и перейдем к почасовым данным за июль 2017 года, вы заметите как дневную, так и недельную (7 * 24) сезонности. В выходные водители обычно более загружены заказами.

Рисунок 3. Почасовой график поездок Uber за месяц (июль 2017 года)

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

Известные подходы к прогнозированию

Количественные методы прогнозирования можно сгруппировать следующим образом:

  • базирующиеся на модели или причинные;
  • статистические методы и подходы, основанные на компьютерном обучении.

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

Когда лежащие в основе механизмы неизвестны или слишком сложны для понимания, как на фондовом рынке, или известны не полностью (розничные продажи), обычно лучше применять простую статистическую модель. Популярными классическими методам, относящимися к этой категории, являются ARIMA (авторегрессионное интегрированное скользящее среднее), методы экспоненциального сглаживания, такие как Holt-Winters, и метод Theta, который используется менее широко, но работает очень хорошо. На самом деле, метод Theta выиграл M3 Forecasting Competition, и мы также выяснили, что он хорошо работает для динамики Uber (более того, он дешевле для вычислений).

В последние годы подходы к компьютерному обучению, в том числе леса с квантильной регрессией (QRF), кузена известного случайного леса (Random forest), стали частью инструментария прогнозиста. Было показано, что рекуррентные нейронные сети (RNN) очень полезны, если в наличии достаточно данных, особенно экзогенных регрессоров. Как правило, эти модели машинного обучения имеют тип черного ящика и используются, когда не требуется интерпретируемость. Ниже мы предлагаем общий обзор популярных методов прогнозирования классического и машинного обучения.

Классические статистичекие методы:

  • Авторегрессионное интегрированное скользящее среднее — ARIMA
  • Методы экспоненциального сглаживания — Holt-Winters
  • Theta

Методы машинного обучения:

  • Рекуррентные нейронные сети (RNN)
  • Леса с квантильной регрессией (QRF)
  • Gradient boosting trees (GBM)
  • Метод опорных веркторов (SVR)
  • Распределение гауссовского процесса (GP)

Интересно отметить, что победивший на конкурсе проект прогнозирования M4 был гибридной моделью, которая включала как закодированные вручную формулы сглаживания, основанные на хорошо известном методе Холта-Уинтерса, так и стек расширенной долгой краткосрочной памяти (LSTM).

На практике классические и ML-методы не отличаются друг от друга, но одни из них более простые и интерпретируемые, а другие более сложные и гибкие. Классические статистические алгоритмы, как правило, считают быстрее, и они проще в использовании.

В Uber выбор правильного метода прогнозирования для данного варианта — это функция из многих факторов, включая количество исторических данных, если важную роль играют экзогенные переменные (например, погода, концерты и т. д.) и бизнес-потребности (например, нужно ли интерпретировать модель?). Мы не можем заранее знать, какой подход приведет к оптимальной производительности.

Сравнение методов прогнозирования

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

Два основных подхода к тестированию моделей прогнозирования
Рисунок 4: Два основных подхода к тестированию моделей прогнозирования — подход скользящего окна (слева) и подход расширяющегося окна (справа)

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

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

Также возможно и даже часто полезно объединять эти два метода: начните с расширяющегося окна и когда окно станет достаточно большим, переключитесь на метод скользящего окна.

Оценка прогноза

Оценочные показатели, включая абсолютные ошибки и процентные ошибки, имеют несколько недостатков. Один особенно полезный подход — сравнить производительность модели с простым прогнозом (naive forecast). Для несезонной серии простой прогноз — это когда последнее значение считается равным следующему значению. Для периодического временного ряда прогнозная оценка равна предыдущей сезонной переменной (например, для ежечасного временного ряда с недельной периодичностью простой прогноз предполагает, что следующее значение равно значению данного часа недельной давности).

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

Важность оценки неопределенности

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

Рисунок 5: Интервалы прогнозирования имеют решающее значение при принятии решений. Хоть точечные прогнозы могут быть одинаковыми, их интервалы предсказания могут существенно отличаться.

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

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

Движение вперед

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

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt