Журнал · Rit.work

CTLite отделяет историю временного ряда от прогноза

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

Rit.work
Студия разработки
20 октября 2026 г.4 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

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

Как сводка сохраняет уровни, тренды и пропуски

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

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

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

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

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

Компактный предиктор сохранил точность и сократил задержку

CTLite проверяли на HumanActivity, USHCN, PhysioNet и MIMIC. Это задачи точечного прогноза по разреженным многомерным наблюдениям: модель выдаёт конкретное значение, а не распределение возможных исходов. Для качества использовали среднеквадратичную и среднюю абсолютную ошибки.

В зависимости от набора CTLite содержал от 88 до 2 537 обучаемых параметров и занял первое или второе место по средним значениям обеих ошибок среди проверенных методов. Малый предиктор, таким образом, не свёл задачу к простому повторению последнего значения: фиксированной сводки хватило, чтобы извлечь полезную динамику и связи между переменными.

При одинаковой нагрузке на GPU и пакете из 32 записей полное предсказание вместе с обработкой истории работало на 18,6–87,3% быстрее последних моделей из сравнения. Основные замеры не использовали кэш, поэтому этот результат относится к архитектуре целиком, а не только к повторным запросам.

Когда одну историю использовали для 16 вызовов, сохранённая сводка сократила общее время примерно на 52%. В расчёт включили её первоначальное построение. Предсказания и градиенты совпали с полным выполнением, поскольку кодировщик не содержит обучаемых параметров.

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

Когда схема меняет архитектуру сервиса

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

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

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

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

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

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу