4 нейросетевых трансформера для прогнозирования временных рядов

нейросети, машинное обучение, анализ и прогнозирование временных рядов

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

Проблемы прогнозирования временных рядов и их нейросетевые решения

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

Прогнозы временного ряда нужны для определения нужного количества ресурсов и инвестиций в производственную инфраструктуру, а также ценообразования товаров и услуг. Однако, точность прогнозов была невысока, на уровне 50-60% в середине 2010-х годов. Современные технологии позволяют улучшить эту ситуацию благодаря использованию ИИ в предсказании следующих значений в числовой последовательности.

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

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

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

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

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

4 трансформера для прогнозирования временных рядов

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

ML-специалисты Google Research предлагаю свою альтернативу – TimesFM. Эта модель с открытым исходным кодом предварительно обучена на более чем 100 миллиардах реальных точек временных рядов. В отличие от Chronos, TimesFM включает некоторые механизмы, специфичные для временных рядов, которые позволяют пользователю осуществлять детальный контроль над организацией входов и выходов. Это позволяет хорошо обнаруживать сезонные закономерности, а также сокращать время вычислений. TimesFM зарекомендовал себя как очень мощный и гибкий инструмент прогнозирования временных рядов.

Разработчики Salesforce AI Research предлагают Moirai. Эта модель с открытым исходным кодом для прогнозирования временных рядов обучена на 27 миллиардах наблюдений из 9 отдельных доменов. Moirai позиционируется ​​как универсальный прогнозист, способный поддерживать как пропущенные значения, так и внешние переменные. Переменные размеры участков позволяют настраивать модель на сезонные закономерности в наборах данных, демонстрируя довольно высокую точность прогнозирования.

TimeGPT от Nixtla учитывает влияние внешних (экзогенных) переменных, но не пропущенных значений. Ориентированная на простые сценарии использования, TimeGPT имеет публичный API, который позволяет генерировать прогнозы с помощью всего лишь одной строки кода. При сравнительном тестировании модели с 300 000 уникальных рядов на разных уровнях временной детализации она дает впечатляющие результаты с очень небольшой задержкой прогнозирования.

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

Узнайте больше про нейросети и машинное обучение для аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://www.databricks.com/blog/introduction-time-series-forecasting-generative-ai
  2. https://www.amazon.science/blog/adapting-language-model-architectures-for-time-series-forecasting
  3. https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting/
  4. https://blog.salesforceairesearch.com/moirai/
  5. https://docs.nixtla.io/
Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.
Поиск по сайту