Перейти к содержимому

Глава 245: ALBERT для трейдинга

Введение

ALBERT (A Lite BERT for Self-supervised Learning of Language Representations) — это оптимизированный вариант языковой модели BERT, который достигает сопоставимой производительности при значительно меньшем количестве параметров. Представленный Lan et al. (2019), ALBERT решает проблемы ограничений памяти и скорости обучения BERT с помощью двух ключевых техник сокращения параметров: факторизованной параметризации эмбеддингов и межслойного разделения параметров.

Для финансовых NLP-приложений ALBERT предлагает привлекательный компромисс. Анализ финансовых текстов — извлечение тональности из отчётов о доходах, классификация новостей, интерпретация документов SEC — требует моделей, способных понимать нюансы языка, но производственные торговые системы также требуют низкой задержки и эффективного использования ресурсов. Компактная архитектура ALBERT делает практичным одновременное развёртывание нескольких специализированных моделей: одной для тональности, одной для обнаружения событий, одной для распознавания сущностей — всё в рамках бюджета памяти одного GPU или даже на CPU.

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

Ключевые концепции

Факторизованная параметризация эмбеддингов

В стандартном BERT размер эмбеддинга $E$ привязан к размеру скрытого слоя $H$, что означает, что матрица эмбеддингов имеет $V \times H$ параметров, где $V$ — размер словаря. Это расточительно, поскольку эмбеддинги изучают контекстно-независимые представления, тогда как скрытые слои изучают контекстно-зависимые.

ALBERT разделяет эти два измерения, сначала проецируя one-hot векторы словаря в пространство эмбеддингов меньшей размерности $E$, а затем проецируя в скрытое пространство:

$$\text{Эмбеддинг: } V \times E + E \times H \quad \text{вместо} \quad V \times H$$

Для типичных значений ($V = 30000$, $H = 768$, $E = 128$) это сокращает параметры эмбеддингов с 23M до 3.9M — сокращение на 83%. Интуиция заключается в том, что эмбеддинги на уровне слов не нуждаются в такой же репрезентативной мощности, как контекстуализированные скрытые состояния.

Межслойное разделение параметров

BERT укладывает $L$ идентичных трансформерных слоёв, каждый со своими параметрами внимания и прямого прохода. ALBERT разделяет параметры между всеми слоями, поэтому модель изучает единый трансформерный блок, который применяется рекурсивно:

$$\mathbf{h}^{(l)} = \text{TransformerBlock}(\mathbf{h}^{(l-1)}; \Theta) \quad \text{для } l = 1, \ldots, L$$

где $\Theta$ — один и тот же набор параметров для каждого слоя. Это сокращает количество параметров трансформера в $L$ раз (обычно 12 или 24). Исследования показывают, что скрытые представления ALBERT осциллируют, а не сходятся, что указывает на то, что общие параметры изучают универсальную функцию уточнения признаков.

Существуют три стратегии разделения:

  • Полное разделение: разделяются и параметры внимания, и прямого прохода (стандартный ALBERT)
  • Разделение только внимания: разделяются только веса многоголового внимания
  • Разделение только FFN: разделяются только веса сети прямого прохода

Предсказание порядка предложений (SOP)

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

ALBERT заменяет NSP на предсказание порядка предложений (SOP), которое использует последовательные предложения из одного документа как положительные примеры и те же предложения в обратном порядке как отрицательные:

$$\mathcal{L}_{SOP} = -\left[ y \log P(\text{правильный порядок}) + (1 - y) \log P(\text{обратный порядок}) \right]$$

SOP заставляет модель изучать детальные дискурсивные связи, что особенно ценно для финансовых текстов, где логический поток информации имеет значение — например, понимание того, что “выручка выросла”, за которым следует “но маржа сократилась”, несёт иной смысл, чем обратный порядок.

Механизм самовнимания

Как и BERT, ALBERT использует многоголовое самовнимание. Для входной последовательности $\mathbf{X} \in \mathbb{R}^{n \times d}$ внимание вычисляется как:

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V$$

где $Q = \mathbf{X}W_Q$, $K = \mathbf{X}W_K$, $V = \mathbf{X}W_V$ — проекции запроса, ключа и значения, а $d_k$ — размерность каждой головы внимания.

Многоголовое внимание позволяет модели обращать внимание на информацию из различных подпространств представлений:

$$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W_O$$

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

Конфигурации ALBERT

КонфигурацияСлоиСкрытыйЭмбеддингГоловыПараметры
ALBERT-base127681281212M
ALBERT-large2410241281618M
ALBERT-xlarge2420481281660M
ALBERT-xxlarge12409612864235M

Сравните с BERT-base (110M параметров) и BERT-large (340M параметров). ALBERT-base достигает 89% производительности BERT-base при всего 11% параметров.

Применения финансового NLP

Анализ тональности

Анализ финансовой тональности классифицирует текст на категории: бычий, медвежий или нейтральный. ALBERT обрабатывает финансовый текст через свои трансформерные слои и выдаёт классификацию:

$$P(\text{тональность} | \text{текст}) = \text{softmax}(W_c \cdot \mathbf{h}_{[CLS]} + b_c)$$

где $\mathbf{h}_{[CLS]}$ — скрытое представление специального токена классификации. Для финансовых текстов тональность более нюансирована, чем простое положительное/отрицательное:

  • Бычьи сигналы: “выручка превысила ожидания”, “сильный прогноз”, “рост доли рынка”
  • Медвежьи сигналы: “не оправдала ожидания”, “давление на маржу”, “регуляторные препятствия”
  • Нейтральные/Сложные: “выручка выросла, но маржа снизилась”, “превысили по EPS, но не дотянули по выручке”

Классификация влияния новостей

Помимо тональности, ALBERT может классифицировать ожидаемое влияние финансовых новостей на рынок:

  1. Высокое влияние: сюрпризы в отчётах, объявления о слияниях и поглощениях, регуляторные действия, смена CEO
  2. Среднее влияние: повышения/понижения рейтингов аналитиками, запуски продуктов, объявления о партнёрствах
  3. Низкое влияние: участие в конференциях, рутинные отчётности, незначительные операционные обновления

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

Распознавание именованных сущностей для финансов

ALBERT можно тонко настроить для классификации на уровне токенов для извлечения финансовых сущностей:

  • Организации: названия компаний, бирж, регулирующих органов
  • Финансовые метрики: выручка, EPS, EBITDA, маржа
  • Денежные значения: суммы в долларах, проценты, коэффициенты
  • Временные выражения: квартальные результаты, ссылки на финансовый год
  • События: слияния, поглощения, IPO, банкротства

Подходы машинного обучения

Тонкая настройка для классификации

Стандартный подход для адаптации ALBERT к финансовым задачам включает:

  1. Загрузку предобученных весов ALBERT
  2. Добавление задачно-специфичной классификационной головы поверх представления токена [CLS]
  3. Тонкую настройку всей модели на размеченных финансовых данных с пониженной скоростью обучения

Функция потерь классификации:

$$\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log \hat{y}_{i,c}$$

где $C$ — количество классов и $\hat{y}_{i,c} = P(c | \mathbf{x}_i)$.

Ключевые гиперпараметры для финансовой тонкой настройки:

  • Скорость обучения: $2 \times 10^{-5}$ (ниже, чем при предобучении, для сохранения изученных представлений)
  • Размер батча: 16-32 (меньшие батчи добавляют регуляризирующий шум)
  • Эпохи: 3-5 (финансовые датасеты обычно малы; больше эпох рискует переобучением)
  • Максимальная длина последовательности: 128-256 токенов (большинство финансовых заголовков и твитов помещаются в 128)

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

Вместо сквозной классификации эмбеддинги ALBERT могут служить признаками для последующих торговых моделей:

  1. Извлечь эмбеддинг [CLS] из ALBERT для каждого текста
  2. Агрегировать эмбеддинги за временное окно (например, все новости за последний час)
  3. Подать агрегированные признаки в торговую модель (логистическая регрессия, градиентный бустинг или нейронная сеть)

Функция агрегации может быть:

$$\mathbf{f}_t = \frac{1}{|\mathcal{D}t|} \sum{d \in \mathcal{D}t} \mathbf{h}{[CLS]}^{(d)}$$

где $\mathcal{D}_t$ — набор документов во временном окне, заканчивающемся в момент $t$.

Преобразование оценки тональности в торговый сигнал

Преобразование оценок тональности в исполняемые торговые сигналы требует тщательной калибровки:

$$\text{signal}_t = \alpha \cdot \text{sentiment}t + (1 - \alpha) \cdot \text{signal}{t-1}$$

где $\alpha$ — параметр экспоненциального сглаживания, контролирующий скорость реакции сигнала на новую информацию. Более высокий $\alpha$ делает сигнал более отзывчивым, но и более шумным.

Размер позиции может учитывать уверенность тональности:

$$\text{position}_t = \text{sign}(\text{signal}_t) \cdot \min\left(|\text{signal}_t| \cdot \text{leverage}, \text{max_position}\right)$$

Инженерия признаков

Предобработка текста для финансовых данных

Финансовый текст имеет уникальные требования к предобработке:

  • Нормализация тикеров: сопоставление “$AAPL”, “Apple Inc.”, “Apple” в каноническую форму
  • Обработка чисел: замена конкретных чисел токенами масштаба (“[NUM_M]” для миллионов, “[NUM_B]” для миллиардов)
  • Расшифровка финансовых аббревиатур: “EPS” → “прибыль на акцию”, “P/E” → “цена к прибыли”
  • Временной контекст: аннотация временных ссылок относительно торговых часов (“до рынка”, “после закрытия”)

Инженерия признаков тональности

Помимо сырых оценок тональности, производные признаки улучшают торговую эффективность:

  • Моментум тональности: $\Delta S_t = S_t - S_{t-k}$, показывающий, улучшается или ухудшается тональность
  • Дисперсия тональности: стандартное отклонение тональности по нескольким источникам, указывающее на разногласия
  • Взаимодействие тональности и объёма: высокое изменение тональности с высоким торговым объёмом подтверждает сигнал
  • Кросс-активная тональность: перетекание тональности от связанных активов (например, от сектора-аналога, партнёров по цепочке поставок)

Признаки на основе эмбеддингов

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

  • Косинусное сходство с эталонными текстами: измерение сходства текущих новостей с исторически бычьими/медвежьими периодами
  • Расстояние до кластера эмбеддингов: определение, к какому “режиму” принадлежит текущая текстовая среда
  • Временной дрейф эмбеддингов: отслеживание сдвигов пространства эмбеддингов для обнаружения смены режимов

Применения

Генерация альфы на основе тональности

Сигналы тональности на основе ALBERT могут генерировать альфу через:

  1. Моментум новостей: агрегирование тональности из недавних новостей и торговля в направлении тренда тональности. Положительное ускорение тональности запускает длинные позиции; отрицательное замедление — выходы.
  2. Контрарианские сигналы: когда тональность достигает экстремальных уровней, возврат к среднему становится более вероятным. ALBERT может обнаружить, когда консенсусная тональность противоречит фундаментальным показателям.
  3. Арбитраж событий: быстрая классификация влияния свежих новостей и открытие позиций до полной реакции рынка.

Управление рисками

Анализ тональности улучшает управление рисками через:

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

Применение на крипторынке

Криптовалютные рынки особенно подходят для NLP-трейдинга, поскольку:

  • Рынки 24/7: новости могут влиять на цены в любое время, создавая возможности для автоматизированных систем тональности
  • Влияние социальных сетей: цены криптовалют сильно зависят от тональности в Twitter, Reddit и Telegram
  • Меньшее институциональное покрытие: меньше аналитического покрытия означает, что NLP-модели сталкиваются с меньшей конкуренцией от аналитиков-людей
  • Высокая волатильность: большие ценовые движения означают больший потенциал альфы от сигналов тональности

Реализация на Rust

Наша реализация на Rust предоставляет полный набор инструментов для классификации текстов в стиле ALBERT со следующими компонентами:

ALBERTTokenizer

ALBERTTokenizer реализует упрощённый конвейер токенизации для финансовых текстов. Он обрабатывает приведение к нижнему регистру, вставку специальных токенов ([CLS] и [SEP]) и поиск по словарю. Неизвестные токены сопоставляются с токеном [UNK]. Токенизатор поддерживает словарное отображение, которое может быть расширено доменно-специфичными финансовыми терминами.

EmbeddingLayer

EmbeddingLayer реализует факторизованную параметризацию эмбеддингов ALBERT. Он проецирует идентификаторы токенов через пространство эмбеддингов низкой размерности ($E = 128$), прежде чем отображать в полную скрытую размерность ($H$). Эта двухэтапная проекция значительно сокращает количество параметров по сравнению с прямым эмбеддингом.

TransformerBlock

TransformerBlock реализует единый трансформерный слой с подслоями самовнимания и прямого прохода. В ALBERT этот единый блок разделяется между всеми слоями — одни и те же параметры применяются $L$ раз. Реализация включает нормализацию слоя и остаточные связи.

ALBERTClassifier

ALBERTClassifier объединяет токенизацию, эмбеддинг, разделяемые трансформерные слои и классификационную голову. Он поддерживает многоклассовую классификацию (бычий/медвежий/нейтральный) с выходом softmax. Обучение использует кросс-энтропийные потери со стохастическим градиентным спуском.

SentimentAggregator

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

BybitClient

Структура BybitClient обеспечивает асинхронный HTTP-доступ к Bybit V5 API. Она получает данные kline (свечей) из эндпоинта /v5/market/kline для ценовых данных, используемых в бэктестинге сигналов тональности.

Интеграция с Bybit API

Реализация подключается к REST API Bybit V5 для получения рыночных данных для валидации торговых сигналов на основе тональности:

  • Эндпоинт Kline (/v5/market/kline): предоставляет OHLCV-данные свечей с настраиваемыми интервалами. Используется для вычисления доходностей, служащих метками для обучения модели тональности, и для бэктестинга стратегий тональности.
  • Эндпоинт Ticker (/v5/market/tickers): предоставляет текущую цену и статистику за 24 часа. Используется для генерации сигналов в реальном времени и управления позициями.

Ссылки

  1. Lan, Z., Chen, M., Goodman, S., Gimpel, K., Sharma, P., & Soricut, R. (2019). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv preprint arXiv:1909.11942.
  2. Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL-HLT.
  3. Araci, D. (2019). FinBERT: Financial Sentiment Analysis with Pre-trained Language Models. arXiv preprint arXiv:1908.10063.
  4. Malo, P., Sinha, A., Korhonen, P., Wallenius, J., & Takala, P. (2014). Good debt or bad debt: Detecting semantic orientations in economic texts. Journal of the Association for Information Science and Technology, 65(4), 782-796.
  5. Loughran, T., & McDonald, B. (2011). When is a liability not a liability? Textual analysis, dictionaries, and 10-Ks. The Journal of Finance, 66(1), 35-65.