Изучение ценного представления встраивания для последовательностей временных рядов

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

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

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

ДАННЫЕ

Финансовые данные легко доступны из различных источников. Для нашей задачи достаточно полного набора данных с собранными ценами на различные акции. Набор данных, который удовлетворяет эти потребности, можно найти на Kaggle. Данные о запасах за 2000–2018 гг. - это очищенная коллекция цен на акции с 2000 по 2018 г., включающая около 39 различных акций. Более точно сообщаются объемы, цены открытия, максимума, минимума и закрытия ежедневно.

МОДЕЛЬ

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

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

Для тех, кто знаком с Word2Vec, наш ручной Corr2Vec аналогично изучает внутреннее скрытое представление. Word2Vec создает и обучает вложения, используя метод skip-gram, чтобы различать, являются ли слова «близкими». Мы используем индекс корреляции, чтобы определить, являются ли блоки наших временных рядов «подобными». Индекс корреляции сравнивает два источника данных (в нашем случае временные ряды) одновременно. Это требует грамотной организации тренировочного процесса, чтобы уловить множественные отношения. На практике это выполняется с использованием нескольких независимых выходов. Еще одним дополнительным преимуществом нашей структуры является возможность объединения различных источников данных.

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

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

Для нашего эксперимента мы используем три разных ложи. Мы выбираем AAPL, AMZN и MSFT. Мы обучаем нашу сеть работе с первой частью нашего набора данных, а вторую оставляем для визуальной проверки результатов. Кодировщик WaveNet извлекается и используется для получения одномерных эмбеддингов из трехмерных последовательностей объектов. Три результирующих вложения (по одному для каждой заготовки) затем объединяются по горизонтали и готовы к использованию. На них мы наносим TSNE для уменьшения габаритов и визуального контроля результатов. Также на этом этапе мы поддерживаем разделение между поездами и невидимыми данными.

На приведенном выше графике каждая точка представляет собой встроенную последовательность функций, спроецированных в 2D-пространство. Цвета используются для представления измерения времени, чтобы проверить, являются ли последовательности «рядом» в пространстве также близкими во времени друг к другу.

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

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

РЕЗЮМЕ

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

ПРОВЕРИТЬ РЕПО НА GITHUB

Оставайтесь на связи: Linkedin