Обсуждение статьи "Нейросети в трейдинге: Сквозная многомерная модель прогнозирования временных рядов (Основные компоненты)"

 

Опубликована статья Нейросети в трейдинге: Сквозная многомерная модель прогнозирования временных рядов (Основные компоненты):

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

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

Особенность GinAR — в способности динамически перестраивать графовую структуру во время обучения. В отличие от большинства моделей на графах, где структура фиксирована заранее, здесь она формируется в процессе обучения. Это позволяет учитывать изменение рыночных условий, корреляций и скрытых факторов. Модель самостоятельно решает, какие переменные следует связать между собой, какие — ослабить, а какие — выделить в качестве ключевых для текущего контекста. Таким образом, создаётся гибкая архитектура, способная адаптироваться к рыночным режимам и динамике.

В практической части предыдущей статьи мы проделали значительный объём работы, заложив основу для вычислений на стороне OpenCL-программы. Были реализованы все ключевые функции — от локальных редукций и вычисления SoftMax до прямого и обратного прохода в модуле Interpolation Attention. Особое внимание было уделено корректной обработке локальной памяти, синхронизации потоков и числовой устойчивости, что особенно важно при работе с неполными временными рядами в условиях параллельных вычислений.

Эта подготовка открывает нам путь к следующему этапу — интеграции ядра модели в основную программу. Именно здесь алгоритм начнёт оживать: данные будут поступать из торговой среды, обрабатываться с помощью OpenCL-устройств, проходить через модель и возвращаться в виде прогнозов и торговых решений. Такой мост между высокоуровневой логикой и низкоуровневыми ускоренными вычислениями является фундаментальной частью всей нашей реализации архитектуры GinAR.

Автор: Dmitriy Gizlyk

 

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

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

В настоящее время мы работаем с мультиактивным набором инструментов, включающим валютный рынок (FX), золото, американские индексы, акции и энергетические инструменты. Исторические данные обрабатываются по конвейеру «Бронза» → «Серебро» → «Золото» с строгим контролем на определённые моменты времени. Информация, доступная на момент принятия решения, хранится отдельно от будущей информации, используемой для меток и анализа результатов.

Наш текущий обучающий контракт уровня «Gold» содержит 142 исходных признака на каждое наблюдение, состоящих из 129 числовых и 13 категориальных признаков. Набор признаков включает волатильность, тренд, импульс, структуру рынка, поведение на прорывах, контекст ценового движения, условия ликвидности, состояние сессии и другие детерминированные дескрипторы рынка.

До тестирования GinAR мы уже построили семейство моделей второго поколения с использованием логистической регрессии, XGBoost, LightGBM и CatBoost. Эти модели оценивались с помощью хронологической валидации методом «walk-forward», порогового отбора, анализа стабильности методом бутстрапа, проверок калибровки, анализа режимов и этапа тестирования на нетронутом тестовом наборе данных.

Десять инструментов прошли отбор и стали кандидатами на этап «Deep Validation PASS»:

GBPUSD, USDCHF, US500, US30, USDCAD, EURUSD, USDJPY, EURGBP, USTEC и XAUUSD.

Они стали исходной исследовательской совокупностью для нашего эксперимента с GinAR.

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

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

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

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

Может ли межактивная графовая модель в стиле GinAR предоставить дополнительную информацию за пределами выборки, выходящую за рамки наших существующих моделей GEN2 для отдельных символов?

Поэтому наша реализация представляла собой исследовательскую модель, разработанную в «чистой комнате» под вдохновением GinAR и основанную на основных архитектурных идеях:

  • интерполяционное внимание,
  • адаптивные графовые отношения,
  • граф-сверточные преобразования,
  • рекуррентное состояние графа,
  • классификация на уровне узлов.

В первом эксперименте мы использовали общую числовую часть контракта Gold feature, предоставив модели 129 числовых признаков на каждый узел.

В качестве целевой задачи в этом эксперименте использовалась 240-минутная задача классификации WHIPSAW.

Целостность меток оказалась важной методологической проблемой. Наши исторические метки содержат:

WHIPSAW

NO_WHIPSAW

AMBIGUOUS_FIRST_MOVE

и, в некоторых случаях, INCOMPLETE.

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

Поэтому мы использовали явное указание:

AMBIGUOUS_DO_NOT_GUESS

.

Двоичный целевой контракт принял следующий вид:

WHIPSAW = 1

NO_WHIPSAW = 0

в то время как AMBIGUOUS_FIRST_MOVE и INCOMPLETE были исключены из бинарных метрик потерь и оценки, вместо того чтобы принудительно относиться к одному из классов.

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

Мы также соблюдали строгий контроль за запретом на «заглядывание вперед».

Протокол валидации был следующим:

180 дней обучения

30 дней валидации

60-дневный шаг прогона вперед

240-минутный период очистки/пробела

60-дневный окончательный нетронутый тестовый набор

Финальный тестовый набор данных оставался закрытым на протяжении первоначального эксперимента с GinAR.

Мы сознательно избегали случайного разделения на обучающую и тестовую группы.

Еще один важный момент касается отсутствующих переменных. Механизм «Интерполяционного внимания» GinAR потенциально очень полезен для торговой среды с множеством активов, где инструменты могут быть временно недоступны из-за разницы в торговых сессиях.

Однако мы не использовали модель для генерации исторических наблюдений.

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

Затем мы обучили исследовательскую модель GinAR на 6 хронологических сгибах методом «walk-forward».

Количество действительных целевых наблюдений было большим и относительно стабильным во всех складках. В результате оценки OOF было получено примерно 114 558 прогнозов «out-of-fold».

Значения PR-AUC по шести сгибам составили:

Фолд 1: 0,6894

Складка 2: 0,6910

Складка 3: 0,6833

Складка 4: 0,6866

Фолд 5: 0,6584

Складка 6: 0,6999

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

Следующим шагом стала часть, которую мы считали наиболее важной: прямое сравнение с нашими существующими лучшими моделями GEN2.

Мы сопоставили прогнозы GinAR OOF с соответствующими прогнозами GEN2 на одном и том же пересечении символа и временной метки.

Сравнение включало 90 122 совпадающих наблюдений «out-of-fold».

Результат:

Дельта PR-AUC: -0,0161

Дельта LogLoss: +0,0059

Поскольку более высокие значения PR-AUC и более низкие значения LogLoss являются предпочтительными, текущий результат явно свидетельствовал в пользу существующих моделей GEN2.

Другими словами, в нашем первом эксперименте GinAR не превзошёл наше существующее семейство моделей на основе логистической регрессии / XGBoost / LightGBM / CatBoost в качестве автономного классификатора WHIPSAW.

Поэтому мы не стали продвигать GinAR в качестве замены GEN2.

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

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

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

По этой причине мы сохраняем GinAR в качестве исследовательского кодировщика и изменяем следующий исследовательский вопрос с:

«Может ли GinAR заменить GEN2?»

на:

«Может ли GinAR предоставлять информацию, дополняющую данные GEN2, для различных классов данных?»

Таким образом, наш следующий запланированный эксперимент:

базовый вариант GEN2

против

GEN2 + GinAR с межактивными вложениями

с использованием метода «fold-safe stacking», анализа расхождений вероятностей, анализа режимов, анализа стабильности графов и тестирования абляции.

Нас особенно интересует изучение случаев, когда лидер GEN2 даёт неверный результат, а GinAR — верный, и наоборот. Если эти наборы ошибок достаточно различаются, представление GinAR может по-прежнему быть полезным в качестве дополнительного слоя признаков, даже несмотря на то, что его автономный показатель PR-AUC ниже.

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

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

Например, значимость таких взаимосвязей, как:

Золото ↔ доллар США,

валюта ↔ американские индексы,

USDCAD ↔ энергоносители,

или USTEC ↔ акции крупных технологических компаний

не обязательно оставаться постоянной с течением времени.

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

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

Для нас такое сравнение имеет решающее значение.

Новую модель не следует считать полезной только потому, что она дает приемлемые показатели. Она должна продемонстрировать либо:

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

Поэтому на данном этапе наш вывод таков:

GinAR в настоящее время не является более эффективным автономным классификатором по сравнению с нашими моделями GEN2, но остаётся многообещающим кандидатом в качестве слоя представления различных активов и генерации признаков.

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

Мне было бы очень интересно увидеть предстоящие эксперименты автора на реальных рыночных данных, в частности:

  • как GinAR ведет себя при валидации методом «walk-forward»,
  • как обрабатываются отсутствующие переменные в разных торговых сессиях,
  • сохраняется ли обученная структура графа стабильной в различных режимах,
  • является ли данная архитектура более эффективной для прогнозирования или классификации,
  • и приносят ли графовые вложения дополнительную ценность при сочетании с более мощными моделями на основе деревьев.

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

Несмотря на то что наше первое независимое сравнение не показало явного преимущества перед GEN2, этот эксперимент открыл для нас новое и потенциально более полезное направление исследований: использование GinAR в качестве межклассового интеллектуального слоя, а не просто как еще одного классификатора.

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