Temporal Fusion Transformer для фінансових ринків

Ряди біржових котирувань рвуться на розривах і аномаліях — звичні моделі втрачають точність там, де рішення коштує дорого. Ми розробляємо керовані моделі прогнозу під ваш потік даних і доводимо їх до промислової експлуатації. На виході — прогноз з інтервалами та регламент, який скорочує час підготовки рішень майже вдвічі.
Часті запитання

Чому прогнозування часових рядів ламається на реальних даних

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

Модель, навчена на спокійному тренді, переносить свої припущення в період високої волатильності й систематично помиляється саме на розворотах.

Друга за частотою причина — витік майбутніх даних у навчальну вибірку.

Нормування за всією історією, лаги, пораховані із зазиранням уперед, відбір ознак на повному наборі, склейка міток часу з різних часових поясів — усе це дає гарні метрики на відкладеній вибірці й повну непридатність у роботі.

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

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

Якщо ряди не вирівняні за часом і не позначено, що було відомо на момент прогнозу, навіть акуратна архітектура на кшталт Temporal Fusion Transformer починає підганятися під шум замість сигналу.

Зміна ринкового режиму, витік і запізнілі ознаки дають один результат: правдоподібна перевірка на історії та збитковий прогноз у реальності. Розбираємо, як це закривається — від розмітки часових вікон і відбору ознак до контролю дрейфу в експлуатації.

Що дає керована модель прогнозу: точність та інтервали

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

Temporal Fusion Transformer вирішує це явно: механізм уваги вибирає, на які ділянки історії опиратися для кожного кроку горизонту, а гейти відсікають ознаки, які на цьому кроці перестають працювати.

Помилка прогнозу на дальніх точках горизонту знижується помітніше, ніж на ближніх, — саме там класичні підходи розвалюються найшвидше.

Друга частина ефекту — інтервальна оцінка замість однієї цифри. Модель, навчена на квантильних втратах, віддає не точкове значення, а діапазон: обережний сценарій, медіану й оптимістичний.

Планування починає опиратися на ширину інтервалу, а не на «магічне» число, і замовник бачить, де прогноз упевнений, а де модель чесно говорить про невизначеність.

Це напряму змінює горизонт планування: рішення, які раніше ухвалювали на два кроки вперед, стають обґрунтованими на шість-вісім.

Стійкість моделі до аномальних днів — окрема метрика. Свята, технічні збої та викиди на історії зазвичай роздувають помилку, і прогноз доводиться відкидати.

Тут квантильна функція втрат і поділ ознак на статичні та динамічні дають менший розкид помилки на «брудних» днях без ручного чищення кожного ряду.

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

Помилка прогнозу, ширина інтервалу й частка виходів за його межі потрапляють у звіт як вимірювані величини — за ними видно, деградує модель чи тримає точність.

Часові ряди фінансових ринків: порівняння підходів до прогнозу

Вибір підходу визначається трьома властивостями ряду: горизонтом прогнозу, обсягом доступної історії та тим, наскільки часто змінюється режим ринку.

Стійка сезонність на короткому горизонті закривається класичною статистикою, а різнорідні сигнали — ціни, обсяги, макропоказники, календар подій — потребують моделі, яка сама зважує їхній внесок.

Ключова різниця між родинами — як вони працюють із пам'яттю. Статистичні моделі описують ряд формулою: вони надійні на малих вибірках і добре екстраполюють тренд, але не переносять зміну режиму.

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

Підхід Коли підходить Де впирається в обмеження
Статистичні моделі (ARIMA, ETS, GARCH) Короткий горизонт, стабільна сезонність, мало історії Не тримають нелінійність і режимні зсуви, зовнішні ознаки підключаються слабо
Градієнтний бустинг на лагах Багато ознак, внутрішньоденні сигнали, табличні дані Не бачить довгих залежностей і порядку в часі
Рекурентні мережі Послідовності середньої довжини, одна-дві змінні Згасаюча пам'ять, чутливість до структурних зсувів
Моделі з увагою Різнорідні ряди, кілька горизонтів, крос-активи Потрібен великий обсяг історії, ризик перенавчання на шумі
Гібрид: статистика + увага Ряд із трендом і рідкісними сплесками Складніше підтримувати й відтворювати базову лінію

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

Як будується впровадження: аудит, навчання, приймання

Прогнозна модель — це не одне навчання на історії, а послідовність, де кожен крок опирається на попередній. Якщо ознака в реальному часі недоступна, точність на тесті виявиться фікцією. Тому ведемо роботу в сім етапів.

  1. Аудит історичних даних: повнота, пропуски, зміна режимів ринку, корпоративні події. Перевіряємо, що кожна ознака була відома на момент прогнозу, а не дописана заднім числом.
  2. Схема ознак: які ряди, лаги й календарні фактори входять у модель, для яких горизонтів і з якою гранулярністю рахуємо прогноз.
  3. Розбиття вибірки: навчальна частина — минуле, перевірна — відкладений період, якого модель не бачила. Перемішування за часом не допускаємо.
  4. Навчання моделі: Temporal Fusion Transformer із квантильними втратами — на виході не лише точковий прогноз, а й інтервал невизначеності.
  5. Перевірка на відкладеному періоді: метрики за кожним горизонтом, порівняння з базовими моделями й розбір випадків із максимальною помилкою.
  6. Приймання рішення: фіксуємо досягнуті метрики, пороги деградації, регламент перенавчання і порядок дій у разі збою.
  7. Передача в експлуатацію: розрахунок прогнозу на нових даних, звірка прогнозу з фактом, документація й навчання вашої команди.

Порядок етапів невипадковий: пропущений аудит даних повертається помилкою вже в експлуатації, коли модель упевнено помиляється на кожному кроці.

Що передаємо на руки: конфігурації, схеми, регламенти

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

Тому передача — це не звіт, а пакет артефактів, кожен із яких закриває конкретний ризик експлуатації.

  • Конфігурація моделі — архітектура, гіперпараметри, вікно навчання, фіксовані зерна генератора: навчання відтворюється на тій самій історії й дає той самий результат.
  • Паспорт ознак — за кожним входом джерело, вікно, затримка появи, обробка пропусків і викидів, допустимий зсув розподілу.
  • Схема потоків даних — шлях від джерел до вітрин, точки контролю якості, зони відповідальності та поведінка в разі недоступності джерела.
  • Правила доступу — ролі, сервісні облікові записи, розділення середовищ; розрахунок прогнозів не має прав змінювати навчальні дані.
  • Регламент моніторингу — метрики якості та стабільності, пороги спрацювання, порядок сповіщень і розбору відхилень.
  • Регламент перенавчання — розклад і тригери, порядок вибору версії, перевірка на історичних періодах, відкат на попередню версію.
  • Регламент дій у разі збою — падіння якості, зсув вхідних даних, зникнення джерела: точки зупинки розрахунку та порядок відновлення.

Пакет передаємо у ваш репозиторій і розбираємо з командою — після цього модель супроводжується всередині, без зовнішньої залежності.

Кейс: як зросла точність прогнозу на біржових даних

Команда замовника збирала прогноз за біржовими даними з кількох джерел: котирування, обсяги торгів, макроекономічні публікації, календар подій.

Під кожен горизонт була своя модель, а розриви й викиди закривалися ручними припущеннями аналітиків — коли їх переглядали, історія прогнозів змінювалася заднім числом, і порівняти дві версії не було чим.

Ми звели це в єдиний контур: одна модель замість набору точкових прогнозів, явний поділ ознак за групами й перевірка якості вхідних даних до розрахунку.

Ядром став Temporal Fusion Transformer: архітектура сама зважує внесок ознак і віддає не лише точку, а й межі інтервалу — прогноз читається як діапазон із рівнем довіри, а не як число, яке не можна перевірити.

Метрики до і після

Що вимірювали До Після
Помилка на денному горизонті вище базової на 12–18% нижче базової на 9%
Покриття інтервалу не рахувалося 90% інтервалів накривають факт
Підготовка прогнозу 2 дні ручного збирання 40 хвилин за регламентом
Відновлення після збою даних до тижня вручну за ніч автоматично

Не менш важлива частина — регламент оновлення. Перенавчання іде за розкладом на ковзному вікні, дрейф ознак перевіряється до випуску, а версія моделі пов'язана з версією даних, тому будь-яку вигрузку можна відтворити.

Якщо нова версія на контрольному періоді програє попередній, випуск блокується й залишається робоче складання — прогноз не деградує мовчки.

Чим Temporal Fusion Transformer відрізняється від класичних моделей?

Класичні моделі — ARIMA, експоненційне згладжування, бустинг на лагах — дають точковий прогноз і виходять з однорідного ряду. Зовнішні фактори заводяться вручну сконструйованими ознаками, і на різнорідних даних якість тримається на підборі лагів, який важко пояснити.

Модель із механізмом уваги влаштована інакше: вхід ділиться на три групи — статичні характеристики об'єкта, ознаки, відомі заздалегідь на всьому горизонті, і ті, що спостерігаються лише в минулому.

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

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

Друга відмінність — інтервальний прогноз. На виході не одне число, а набір квантилів, тому рішення ухвалюється за розподілом: наскільки широкий розкид і як часто факт виходить за межі. Там, де потрібен запас міцності, а не точне влучання, це змінює постановку задачі цілком.

Плата за це — складність моделі: навчання довше, результат чутливий до обсягу історії та якості розмітки подій, а підбір параметрів потребує окремої валідації за часовими зрізами. На коротких рядах або за двох-трьох ознак виграш не окупається — там залишається бустинг на лагах.

Тому порівнювати підходи має сенс на конкретній структурі даних і вимогах до прогнозу, а не за назвою архітектури.

Обмеження та часті сумніви щодо моделі прогнозу

Прогнозування часових рядів не закінчується навчанням моделі: за межами історичної ділянки результат залежить від підготовки даних і контролю. Нижче — сумніви, які підіймають до старту, і як ми їх закриваємо.

Скільки історії потрібно моделі?

Потрібен ряд, що покриває повний ринковий цикл — зростання, корекцію й боковик. На однорідній ділянці модель запам'ятовує режим, а не залежність, тому за короткої історії ми звужуємо горизонт прогнозу.

Що робити з пропусками?

Середнім пропуски не заповнюємо — це викривляє волатильність. Для кожного ряду вибираємо правило: календарне вирівнювання, інтерполяція з обмеженням за довжиною розриву або ознака «даних немає» як окремий сигнал.

Як захищаються дані?

Навчання іде на вашому контурі: вигрузки не залишають інфраструктуру, доступ розмежований за ролями. Зовнішні джерела підключаємо знеособлено — модель бачить агрегати й похідні ознаки, а не вихідні записи.

Що при розвороті ринку?

На зміні режиму деградує будь-яка модель — це обмеження підходу, а не дефект реалізації. Стежимо за помилкою й дрейфом розподілів: у разі виходу за пороги прогноз переводиться в обережний режим і йде перенавчання.

Що входить у супровід?

Передаємо відтворюваний контур навчання, регламент перенавчання й панель контролю якості. Далі — планове оновлення моделі, розбір сигналів і коригування ознак у разі зміни даних.

Обговоримо задачу: підберемо конфігурацію під ваш потік даних

Для предметної розмови не потрібне готове ТЗ. Достатньо вигрузки ряду з фактичними значеннями, календаря подій, що впливають на поведінку, та опису частоти, горизонту прогнозу й допустимої затримки реакції.

Якщо зберігся журнал минулих моделей з їхніми помилками — надсилайте, він економить нам коло гіпотез.

Розбір даних іде раніше за будь-які обіцянки щодо якості. Дивимося розподіл, пропуски, зміну режимів і те, чи відділяється сигнал від шуму на вашому горизонті. Підбір рішення після цього — питання обґрунтування, а не смаку.

За підсумком розбору повертаємося з конкретикою:

  • розбір даних: частота, пропуски, аномалії, зміна режимів ринку;
  • підбір рішення: від базових моделей до ансамблю з Temporal Fusion Transformer — з обґрунтуванням, чому саме цей клас;
  • схема валідації: ковзне вікно, відкладений період, метрика під вашу задачу;
  • оцінка та план робіт: етапи, склад команди, точки контролю якості;
  • порядок співпраці: ролі, доступи до даних, формат звітності та приймання;
  • межі застосовності: на якому горизонті модель надійна, а де потрібен ручний контроль.

Опишіть задачу й надішліть те, що є. Повернемося з оцінкою та планом робіт, де видно, за що ми відповідаємо і в якій точці ви можете зупинитися.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142