Глава 234: Торговля с Beta-VAE
1. Введение
Вариационные автокодировщики (VAE) стали фундаментальным инструментом в генеративном моделировании, но их стандартная формулировка часто порождает запутанные латентные представления, в которых отдельные измерения не имеют ясного интерпретируемого смысла. На финансовых рынках, где понимание движущих факторов ценовых изменений столь же важно, как и само прогнозирование, эта непрозрачность является серьёзным ограничением.
Beta-VAE решает эту проблему, вводя единственный гиперпараметр — бета, который контролирует степень разделённости (disentanglement) в обученном латентном пространстве. Увеличивая бета выше 1, модель побуждается находить представления, в которых каждое латентное измерение захватывает независимый, интерпретируемый фактор вариации. В применении к торговле это означает, что мы можем обучать латентные пространства, в которых отдельные измерения соответствуют узнаваемым рыночным силам: направление тренда, волатильность, динамика объёма или сигналы моментума.
Ключевая идея beta-VAE элегантно проста: усиливая давление на латентное распределение для соответствия изотропному гауссовскому приору, мы заставляем модель использовать каждое измерение эффективно и независимо. Это давление, контролируемое бета, создаёт настраиваемый компромисс между точностью реконструкции и качеством представления. Для торговых приложений этот компромисс непосредственно переводится в выбор между захватом каждого нюанса рыночной микроструктуры и получением чистых, пригодных для действий факторных разложений.
В этой главе мы исследуем, как beta-VAE может быть развёрнут в качестве инструмента обнаружения факторов и генерации для систематической торговли. Мы разработаем математические основы, обсудим практические соображения для финансовых данных, реализуем полную систему на Rust и продемонстрируем её применение на криптовалютных рынках с использованием данных биржи Bybit.
2. Математическое основание
Стандартная целевая функция VAE
Стандартный VAE оптимизирует нижнюю границу свидетельства (ELBO):
L_VAE = E_q(z|x)[log p(x|z)] - KL(q(z|x) || p(z))Первый член — правдоподобие реконструкции, побуждающее декодер точно воспроизводить вход. Второй член — дивергенция Кульбака-Лейблера, регуляризирующая приближённую апостериорную вероятность q(z|x) к приору p(z), обычно стандартному нормальному N(0, I).
Модификация Beta-VAE
Beta-VAE модифицирует эту целевую функцию, вводя весовой коэффициент для KL-члена:
L_beta-VAE = E_q(z|x)[log p(x|z)] - beta * KL(q(z|x) || p(z))При beta = 1 мы получаем стандартный VAE. При beta > 1 модель испытывает более сильное давление для соответствия приору, что поощряет статистическую независимость между латентными измерениями. При beta < 1 модель ослабляет ограничение приора, допуская более богатые, но потенциально запутанные представления.
Перспектива информационного узкого места
Параметр бета можно понять через призму теории информации. Член KL-дивергенции ограничивает взаимную информацию между входом x и латентным кодом z:
I(x; z) <= KL(q(z|x) || p(z))Увеличивая бета, мы сужаем это информационное узкое место, заставляя модель передавать только наиболее существенную информацию через латентный канал. Каждое измерение должно оправдать свою информационную ёмкость, что естественно ведёт к разложению, где каждое измерение несёт отдельный, неизбыточный сигнал.
Декомпозиция полной корреляции
KL-дивергенция в целевой функции VAE может быть разложена на три члена:
KL(q(z|x) || p(z)) = I(x; z) + KL(q(z) || prod_j q(z_j)) + sum_j KL(q(z_j) || p(z_j))Средний член, известный как полная корреляция (TC), измеряет статистическую зависимость между латентными измерениями. Эффективность beta-VAE частично обусловлена неявным штрафованием полной корреляции. Варианты, такие как beta-TC-VAE, явно нацелены на этот член, но оригинальная формулировка beta-VAE остаётся практичной и эффективной, особенно при тщательном выборе бета.
Репараметризация и оценка градиента
Кодировщик выдаёт параметры mu и log_var для гауссовской апостериорной вероятности. Выборка использует трюк репараметризации:
z = mu + exp(0.5 * log_var) * epsilon, где epsilon ~ N(0, I)Это позволяет градиентам проходить через операцию выборки, обеспечивая сквозное обучение. KL-дивергенция для гауссовских апостериорных распределений имеет замкнутую форму:
KL = -0.5 * sum(1 + log_var - mu^2 - exp(log_var))3. Разделённость для финансов
Почему разделённость важна в торговле
Финансовые рынки движимы множеством перекрывающихся факторов: макроэкономические тренды, секторные ротации, режимы волатильности, условия ликвидности и эффекты моментума. Стандартные методы снижения размерности, такие как PCA, дают ортогональные факторы, но им не хватает нелинейной выразительности для захвата сложной рыночной динамики. Стандартные VAE могут захватить эту динамику, но порождают латентные пространства, где факторы безнадёжно запутаны.
Beta-VAE предлагает средний путь: нелинейное обнаружение факторов с интерпретируемостью. Каждое латентное измерение можно исследовать независимо через латентные обходы, где мы варьируем одно измерение, удерживая другие фиксированными, и наблюдаем эффект на реконструированных рыночных данных.
Интерпретируемые рыночные факторы
На практике beta-VAE, применённый к финансовым данным OHLCV (Open, High, Low, Close, Volume), обнаруживает латентные измерения, соответствующие узнаваемым рыночным концепциям:
- Измерение тренда: Изменение этого измерения сдвигает общее направление ценового движения от медвежьего через нейтральное к бычьему.
- Измерение волатильности: Контролирует спред между высокой и низкой ценами, захватывая переходы между спокойными и турбулентными рынками.
- Измерение объёма: Захватывает уровни торговой активности, различая движения с высокой убеждённостью и дрейф с низким участием.
- Измерение моментума: Кодирует тенденцию сохранения или возврата к среднему недавнего ценового движения.
- Измерение спреда/диапазона: Контролирует типичный размер тела свечи относительно общего диапазона.
Точные обнаруженные факторы зависят от данных, латентной размерности и, что критично, от значения бета. Более высокие значения бета обычно дают более чистое разделение, но могут упустить тонкие взаимодействия между факторами.
Измерение разделённости
Несколько метрик количественно оценивают, насколько хорошо представление разделено:
- Разрыв взаимной информации (MIG): Для каждого истинного генеративного фактора вычисляется взаимная информация со всеми латентными измерениями. Разрыв между двумя наибольшими значениями — это оценка MIG. Чем выше, тем лучше.
- DCI Disentanglement: Использует матрицу важности признаков при предсказании истинных факторов из латентных кодов. Измеряет как разделённость (каждое измерение кода предсказывает только один фактор), так и полноту (каждый фактор захвачен только одним измерением кода).
- Метрика Factor VAE: Обучает простой классификатор для идентификации, какой фактор был изменён в обходе. Точность измеряет качество разделённости.
В финансах, где истинные факторы недоступны, мы используем косвенные меры: корреляцию латентных измерений с известными индикаторами (RSI, ATR, OBV, скользящие средние), стабильность интерпретаций обходов во времени и прогнозную производительность отдельных измерений для будущих доходностей.
4. Торговые приложения
Интерпретируемые факторные модели
Beta-VAE предоставляет управляемую данными альтернативу ручным факторным моделям. Вместо того чтобы задавать факторы заранее (стоимость, моментум, качество и т.д.), модель обнаруживает факторы из необработанных рыночных данных. При достаточной разделённости каждый фактор может быть проанализирован, протестирован на исторических данных и торговаться независимо.
Типичный рабочий процесс включает обучение beta-VAE на скользящих окнах мультиактивных данных OHLCV, выполнение латентных обходов для интерпретации каждого измерения, затем построение факторных портфелей путём покупки активов с высокими значениями по данному измерению и продажи активов с низкими значениями.
Контролируемая генерация
Генеративная природа beta-VAE позволяет проводить анализ сценариев. Манипулируя определёнными латентными измерениями, трейдеры могут генерировать синтетические рыночные сценарии, варьирующиеся по одному фактору при фиксации остальных. Это поддерживает стресс-тестирование: «Что произойдёт с моим портфелем, если волатильность удвоится, но направление тренда останется неизменным?»
Факторно-специфическое хеджирование
После идентификации факторов хеджирование становится более целенаправленным. Вместо хеджирования от широких рыночных движений трейдер может определить, какой латентный фактор представляет наибольший риск для портфеля, и построить хеджи, специально нейтрализующие эту экспозицию. Например, если портфель в основном подвержен измерению фактора волатильности, хедж должен быть направлен на инструменты волатильности, а не на направленные.
Обнаружение режимов
Латентное пространство естественно сегментируется на области, соответствующие различным рыночным режимам. Кластеризация в разделённом латентном пространстве даёт метки режимов, которые более стабильны и интерпретируемы, чем полученные из кластеризации необработанных признаков. Переходы между режимами можно отслеживать в реальном времени, наблюдая за положением портфеля в латентном пространстве.
5. Выбор бета
Компромисс реконструкция-разделённость
Выбор бета фундаментально контролирует напряжение между двумя целями:
- Низкая бета (около 1): Лучшая реконструкция, богатые представления, но запутанные факторы. Подходит, когда точность предсказания важнее интерпретируемости.
- Высокая бета (например, 4-10): Более сильная разделённость, чистые факторы, но худшая реконструкция. Подходит, когда понимание рыночных движущих сил важнее точного предсказания.
- Очень высокая бета (>10): Может вызвать коллапс апостериорного распределения, когда модель игнорирует вход и производит выходы, близкие к приору. Латентные измерения становятся бессмысленными.
Стратегии отжига
Вместо фиксации бета с самого начала стратегии отжига постепенно увеличивают бета в ходе обучения:
- Линейный отжиг: бета линейно возрастает от 0 до целевого значения за указанное число шагов обучения. Это позволяет модели сначала выучить хорошую реконструкцию, затем постепенно наложить разделённость.
- Циклический отжиг: бета колеблется между 0 и целевым значением циклами. Это неоднократно позволяет модели «дышать» и реорганизовывать латентное пространство.
- Монотонный с прогревом: бета остаётся на 0 в течение начального периода прогрева, затем нарастает. Это обеспечивает хорошую инициализацию кодировщика и декодера до применения давления разделённости.
На практике линейный отжиг с периодом прогрева около 20% от общего числа шагов обучения хорошо работает для финансовых данных. Целевое значение бета следует валидировать, изучая качество обходов и последующую торговую производительность.
Практический выбор бета для торговли
Прагматичный подход к выбору бета включает обучение моделей при нескольких значениях бета (например, 1, 2, 4, 8, 16), вычисление как ошибки реконструкции, так и метрик разделённости, и выбор бета в «локте» кривой компромисса. Для торговых приложений также следует оценивать прогнозную силу отдельных латентных измерений для будущих доходностей, поскольку конечная цель — практически применимые инсайты, а не абстрактная разделённость.
6. Описание реализации
Наша реализация на Rust состоит из нескольких ключевых компонентов:
Сеть кодировщика
Кодировщик отображает входные рыночные данные (признаки OHLCV за окно наблюдения) в параметры гауссовской апостериорной вероятности. Мы используем многослойную архитектуру с настраиваемыми размерами скрытых слоёв. Последний слой разделяется на две головы: одна для средних (mu) и одна для логарифмов дисперсий (log_var).
Сеть декодера
Декодер отображает выбранные латентные коды обратно в реконструированные рыночные данные. Он зеркально повторяет архитектуру кодировщика, но в обратном порядке. Выходной слой использует линейную активацию для реконструкции произвольных ценовых значений.
ELBO с весом бета
Функция потерь вычисляет стандартную ошибку реконструкции (MSE для непрерывных финансовых данных) и KL-дивергенцию, применяя весовой коэффициент бета к KL-члену. Во время отжига бета варьируется согласно выбранному расписанию.
Латентные обходы
Для интерпретации обученных факторов мы кодируем эталонный вход, затем систематически варьируем каждое латентное измерение от -3 до +3 стандартных отклонений, удерживая остальные фиксированными. Декодированные выходы показывают, как каждое измерение влияет на реконструированные рыночные данные.
Интеграция с Bybit
Реализация включает полный клиент API Bybit для получения исторических данных kline (свечных данных). Это обеспечивает реальные рыночные данные для обучения и оценки без необходимости внешних конвейеров данных.
Смотрите rust/src/lib.rs для полной реализации и rust/examples/trading_example.rs для рабочей демонстрации.
7. Интеграция с Bybit
Биржа Bybit предоставляет полноценный REST API для доступа к историческим рыночным данным. Наша реализация использует публичный эндпоинт kline для получения данных OHLCV с настраиваемыми интервалами.
Конвейер данных
- Получение: Запрос данных kline для указанных символов (например, BTCUSDT, ETHUSDT) и таймфреймов (1m, 5m, 1h, 1d).
- Парсинг: Десериализация JSON-ответа в структурированные данные свечей с полями open, high, low, close и volume.
- Нормализация: Масштабирование признаков в диапазон [0, 1] с использованием скользящей мин-макс нормализации для поддержания временной валидности.
- Окна: Создание перекрывающихся окон последовательных свечей как входных образцов для beta-VAE.
Соображения по API
- Публичный API Bybit имеет ограничения по частоте запросов; реализация включает соответствующие задержки между запросами.
- Исторические данные могут содержать пробелы; конвейер корректно обрабатывает отсутствующие свечи.
- Данные получаются в обратном хронологическом порядке и разворачиваются для временной согласованности.
8. Ключевые выводы
-
Beta-VAE расширяет стандартные VAE, вводя единственный гиперпараметр — бета, который контролирует компромисс между качеством реконструкции и разделённостью латентного пространства.
-
Разделённые представления ценны для торговли, поскольку предоставляют интерпретируемые, независимо управляемые рыночные факторы без необходимости ручной инженерии факторов.
-
Математическое основание сосредоточено на усилении информационного узкого места в целевой функции VAE, которое неявно штрафует статистическую зависимость (полную корреляцию) между латентными измерениями.
-
Практические торговые приложения включают интерпретируемые факторные модели, контролируемую генерацию сценариев, факторно-специфическое хеджирование и обнаружение режимов.
-
Выбор бета требует баланса между точностью реконструкции и интерпретируемостью факторов. Стратегии отжига помогают модели сойтись к лучшим решениям, чем обучение с фиксированной бета.
-
Реализация на Rust обеспечивает характеристики производительности, необходимые для обработки больших объёмов финансовых данных, и позволяет интеграцию в торговые системы с низкой задержкой.
-
Метрики разделённости, такие как MIG и DCI, обеспечивают количественную оценку качества представления, хотя в финансах их следует дополнять доменно-специфическими оценками, такими как прогнозная сила факторов и интерпретируемость обходов.
-
Реальные рыночные данные с Bybit позволяют непосредственное применение к торговле криптовалютами, где круглосуточные рынки и высокая волатильность обеспечивают богатые обучающие сигналы для обнаружения факторов.