Машинное обучение за Farecast

Прогнозирование черного ящика цен на авиабилеты

Несколько лет назад я наткнулся на эту исследовательскую работу «Покупать или не покупать: добыча данных о стоимости авиабилетов для минимизации покупной цены билета», когда я работал в UCL над проектом, который исследовал, как помочь людям лучше ориентироваться в городах, используя данные. Я только что получил большой набор данных об операциях с картами Oyster от Transport for London. Этот документ, в котором рассматриваются рекомендации о том, стоит ли покупать билет на самолет, вдохновил нас на применение аналогичной концепции, чтобы помочь людям решить, какую путевку купить, с системой рекомендаций, которая будет извлекать уроки из их схем поездок. Это исследование привело к появлению этой статьи «Данные о горнодобывающей мобильности для минимизации расходов путешественников на общественный транспорт» и этой новости BBC.

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

Создание продукта из прогнозирования цен

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

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

В этом сценарии машинное обучение может прийти на помощь. Используя единственное предположение, что будет существовать некоторое сходство между историческими и будущими ценами на маршруты, авторы создают модель, основанную только на данных, которые им легко доступны в Интернете: маршрут (например, Сиэтл-Вашингтон), дни до отправление (например, 10) и исторические цены. Эта модель пытается ответить на вопрос: учитывая маршрут, дату отправления и текущую цену, я должен купить билет, или я должен ждать?

Авторы используют ряд известных методов машинного обучения, таких как обучение с подкреплением и прогнозирование временных рядов, и комбинированную модель, которая (что неудивительно) оказывается наиболее точной. Документ, тем не менее, сдерживает ряд направлений: он дает нам результаты только для небольшого набора выбранных вручную маршрутов, только за 21 день до даты отъезда (это означает, что 75% их пользователей не будут способен найти любые более дешевые варианты) и не учитывает никаких долгосрочных эффектов, таких как сезонность (чтобы быть справедливым, это было до эры больших данных, поэтому масштабируемость была проблемой для них).

Несмотря на это, в этой статье есть несколько ключевых моментов:

  1. Точность прогнозирования <Пользовательская утилита. Когда мы сталкиваемся с такой проблемой, как «прогнозирование значения X», мы часто склонны измерять, насколько точно мы прогнозируем это значение. Вместо этого эти авторы измеряют, насколько хорошо такой прогноз может поддерживать действие пользователя, в данном случае «ждать» или «купить».
  2. Прогнозирование - это не то же самое, что информирование. Недавние объявления от Google показывают, что они реализовали нечто подобное в своих поисках рейсов. Тем не менее, они информируют пользователей на основе исторических тенденций («этот тариф может увеличиться», а не «мы прогнозируем, что этот тариф будет равен x»).
  3. Упорядоченные по времени данные не означают проблему временных рядов. Поскольку данные упорядочены по времени, один из «естественных» подходов, который можно было использовать, - это модель, которая предсказывает, будет ли цена повышаться или понижаться на основе ее недавнего поведения. Однако авторы обнаружили, что цены на перелеты имеют тенденцию к скачку - вверх или вниз - и поэтому прогнозирование следующей цены на основе того, что произошло за последние несколько часов, было одним из худших подходов.

Авторы этой статьи позже основали Farecast, который в конечном итоге был приобретен Microsoft. В конечном итоге Bing отказался от функции прогнозирования Farecast, но другие мета-поисковые системы разработали аналогичные продукты; У Kayak был инструмент прогнозирования цен более 3 лет (см. Их сообщение в блоге, анонсирующее эту функцию), и Google только что запустил инструмент прогнозирования в своем недавнем сообщении в блоге.

Заключение

Если вас интересует техническая сторона этой работы, ознакомьтесь с документом, свяжитесь с нами в Твиттере или подпишитесь на меня на Среднем уровне - готовятся новые краткие обзоры групп чтения!