# Time series related papers from NIPS 2019 and other
---
https://arxiv.org/pdf/1905.12374v2.pdf
---
https://arxiv.org/pdf/2002.06103.pdf
---
### Towards Better Forecasting by Fusing Near and Distant Future Visions
https://arxiv.org/pdf/1912.05122.pdf
Цитирований: Submitted to the ICML 2020.
Реализация: https://github.com/smallGum/MLCNN-Multivariate-Time-Series
Большинство подходов прогнозируют набор значений для одного временного рядя, игнорируя взаимодействия между предсказаниями с разным временным растоянием.
---
### ForecastNet: A Time-Variant Deep Feed-Forward Neural Network Architecture for Multi-Step-Ahead Time-Series Forecasting
https://arxiv.org/pdf/2002.04155.pdf
Цитирований: Submitted to the ICML 2020.
Реализация: https://github.com/jjdabr/forecastNet
Модели RNN и сверточных сетей являются стационарными и являются независимыми от сдвига во времени. Авторы утверждают, что такая незавимисость снижает способность сетей делать предскзания когда требуется моделирование динамики процесса в разных мастшабах и разрешений.
Авторы предлагают глубокую нейронную сеть с прямыми связями ForecastNet, которая является зависящей от момента времени. Между выходами нейронной сети находятся части сетей, которые отличаются архитектурой и параметрами во времени. В результате получается модель, которая меняется во времени.

Общая структура предсказания $\hat{x}_{t+1:t+4}$ на основе $\mathbf{x}=x_{t-n_I+1:t}$. Срытые части (квадраты) -- некая сеть с прямыми связями. Каждая скрытая часть и выход показаны разным цветом, т.к. имеют разные структуры.

Пример ForecastNet c одним полносвязным слоем в качестве скрытой составляющей. Здесь веса для каждого временного шага различны
Предлагают различные варианты реализации:
FN -- полносвязыне слои + Gaussian Mixture Model в качетсве входного
cFN -- сверточные слои + Gaussian Mixture Model в качетсве входного
FN2 -- полносвязыне слои + линейный выход
cFN2 -- сверточные слои + линейный выход
Датасеты:

Результаты MASE (SMAPE):

---
### DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks
https://arxiv.org/abs/1704.04110
Цитирований: 84
Реализация: https://github.com/zhykoties/TimeSeries
Предлагают использовать вероятностное прогнозирование, т.е. оцененивать распределение вероятности временного ряда на основе его прошлых значений. Предлагают метод DeepAR для получения точных вероятностных прогнозов, основанный на обучении авторегрессионной рекуррентной нейронной сети. Говорят, что их подход на 15% опережает предыдущие лучшие работы. Авторы адаптируют LSTM к вероятностному прогнозированию. Одна из проблем, которая существует в обработке многомерных рядом -- то, что сильно различаются сами значения и их распределения. Также, события могут происходить в разных временных мастшабах. Авторы говорят, что вероятностные прогнозы могут быть полезны для решениея определенных задач, поскольку они, в отличие от точечных прогнозов, позволяют оптимально принимать решения в условиях неопределенности, давать прогнозы в диапазоне значений с выбранной уверенностью.

Приведен пример предсказания с уверенностью в 80%.
Публичные датаеты parts, electricity, traffic.
Parts -- 1046 временны рядов, по 50 шагов с периодом в месяц. Представляющий информацию о продаже автомобольной продукции.
Electricity -- почасовая нагрузка на 370 домов.
Traffic -- загруженность дорог в Сан-Франциско.
ec и ec-sub -- продажи товаров с Amazon.

Результаты:

---
### Latent ODEs for Irregularly-Sampled Time Series
https://papers.nips.cc/paper/8773-latent-ordinary-differential-equations-for-irregularly-sampled-time-series.pdf
Цитирований: 25
Реализация: https://github.com/YuliaRubanova/latent_ode
Авторы говорят, что временные ряды с неоднородными интервалами времени тяжело моделировать с использованием стандартных RNN. Авторы добавляют в RNN непрерывную скрытую динамику, которая определяется обыкновенными дифференциальными уравнениями (ODE-RNN). Показывают, что ODE-RNN могут обрабатывать произвольные промежутки времени между наблюдениями и явно моедлировать вероятность времени наблюдения с использованием пуассоновских процессов.
Стандартные модели игнорируют временные интервалы между наблюдениями. Стандартные модели RNN работают хорошо тогда, когда нет пропущенных наблюдений, интервалы времени между наблюдениями короткие и наблюдения происходят через равные промежутки времени. Из моделей со скрытым состоянием непрерывного времени, таких как ODE-RNN или RNN-Decay, можно получить результат в любой необходимый момент времени, и он хорошо подходят для интерполяции. В таких моделях последующее скрытое состояние зависят от времени с момента последнего наблюдения, что дает преимущество при работе с нерегулярными или разреженными измерениями в течение времени. В ODE-RNN динамика времени между событиями -- обучаемая.
Датасет Physionet состоит из 8000 временных рядов, продолжительностью по 48 часов нерегулярных измерений 37 характеристик

Также, модель использовали в качестве бинарного классификатора для прогнозирования смертности

Human Activity dataset
Обучили модель для классификации движений людей. Датасет содержит 6554 последовательности из 211 измерений положений 5 человек.

---
### Think Globally, Act Locally: A Deep Neural Network Approach to High-Dimensional Time Series Forecasting
https://papers.nips.cc/paper/8730-think-globally-act-locally-a-deep-neural-network-approach-to-high-dimensional-time-series-forecasting.pdf
Цитирований: 6
Реализация: https://github.com/rajatsen91/deepglo
Авторы утверждают, что одна из проблем прогнозирования долгосрочных зависимостей связана с тем, что прогнозы основываются на прошлых значениях того же временного измерения. Говорят, что существует необходимость использвоания глобальных зависимостей и их последующего объединения для локальной калибровки предсказаний. Предлагают модель DeepGLO, которая представляет из себя модель факторизации глобальной матрицы, которая регуляризируется временной сверточной сетью вместе с другой временной сетью, которая может фиксировать локальные свойства для каждого временного ряда. Говорят, что модель может эффективно обучаться на многомерных и разнообразных временных рядах, где разные временные ряды могут иметь разные мастшабы времени. DeepGLO на 25% по метрике WAPE опережает другие методы на датасете, который содержит более 100-мерных временных рядов.
Предлагают схему инициализации LeveledInit для временных сверточных сетей (TCN), которая позволяет обучать без нормализации.
Представляют матричную модель факторизации, регуляризированную TCN (TCN-MF), котоая способна выражать временные ряды как линейную комбинацию $k$ базовых временных рядов, где $k$ намного меньше чем количество временных рядов
Также представляют гибридную модель, где выход из TCN-MF подается на вход другой TCN, что позволяет конечной модели изучать как глобальные так и локальные зависимости.
Датасет electricity, почасовая нагрузка на 370 домов, размерность данных 25 968 значений. Прогнозировали значения для следующих 7 дней, по 24 значения за раз.
Датасет traffic -- загруженность дорог в Сан-Франциско, предсказывали следующие 7 дней по 24 значения
за раз.
Датасет wiki -- ежедненый трафик для 115 084 статей из Википедии, предсказывают трафик на 86 дней по 14 дней за раз.
Использовался датасет PeMSD7, который содержит 228 временных рядов, с интервалом 5 минут. Предсказывают следующие 1440 значений, по 9 значений за раз.
MAE/MAPE/RMSE

---
### Shape and Time Distortion Loss for Training Deep
https://papers.nips.cc/paper/8672-shape-and-time-distortion-loss-for-training-deep-time-series-forecasting-models.pdf
Цитирований: 3
Реализация: https://github.com/vincent-leguen/DILATE
#### DILATE
Рассматривается проблема прогнозирования нестационарных систем и прогнозирования вектора будущих значений. Предлагают использовать новую целевую функцию DILATE, главный смысл которой прогнозирования резких изменений и состоит из двух частей: поддержание траектории и обнаружение временных изменений. Показывают на нескольких датасетах преимущество по сранвению с MSE.

При обучении рассматривается набор из $N$ временных рядов $A = \{x_i\}_{i∈\{1:N\}}$, каждая последовательность имеет длину $n$, т.е $x_i = (x_i^1,...,x_i^n) \in \mathbb{R}^{p \times n}$. Модель предсказывает на следующие $k-$шагов вперед: $\hat{y}_i= (\hat{y}_i^1,...,\hat{y}_i^k) \in \mathbb{R}^{d \times k}$. Целевая функция сравнивает предсказания сети с ground truth $\dot{y}_i= (\dot{y}_i^1,...,\dot{y}_i^k)$и и состоит из двух взвешанных с помощью $\alpha \in [0, 1]$ частей:
$$\mathcal{L}_{DILATE}(\hat{y}_i, \dot{y}_i) = \alpha \mathcal{L}_{shape}(\hat{y}_i, \dot{y}_i)+ (1-\alpha) \mathcal{L}_{temporal}(\hat{y}_i, \dot{y}_i)$$
Как $\mathcal{L}_{shape}(\hat{y}_i, \dot{y}_i)$ так и $\mathcal{L}_{temporal}(\hat{y}_i, \dot{y}_i)$ условия искажения основаны на выравнивании между $\hat{y}_i \in \mathbb{R}^{d \times k}$ и ground truth
$\dot{y}_i \in \mathbb{R}^{d \times k}$. Путь трансформации определяется как двоичная матрица $\mathbf{A} \subset \{0,1\}^{k \times k}$, где $A_{h,j} = 1$ если $\hat{y}_i^h$ связан с $\dot{y}_i^j$ и 0 в противном случае. Множество всех путей трансформации, соединяющий конечные точки $(1,1)$ c $(k,k)$ с разрешенными ходами $\rightarrow \searrow \downarrow$ обозначается как $\mathcal{A}_{k,k}$ [DTW](https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D1%88%D0%BA%D0%B0%D0%BB%D1%8B)
Пусть $\Delta(\hat{y}_i, \dot{y}_i) := [\delta (\hat{y}_i^h, \dot{y}_i^j)]_{h,j}$ будет попарной матрицей стоимости, где $\delta$ -- расстояние между $\hat{y}_i^h$ и $\dot{y}_i^j$, например Евклидово.
#### Shape term
Целевая функция траектории основана на DTW, и оптимизирует $DTW(\hat{y}_i, \dot{y}_i) = \min_{\mathbf{A} \in \mathcal{A}_{k,k}}\langle \mathbf{A}, \Delta(\hat{y}_i, \dot{y}_i)\rangle$
$\mathbf{A}^* = \argmin_{\mathbf{A} \in \mathcal{A}_{k,k}}\langle \mathbf{A}, \Delta(\hat{y}_i, \dot{y}_i)\rangle$ -- оптимальный путь между $\hat{y}_i$ и $\dot{y}_i$. Другими словами, путем временного выравнивания, предсказываемая $\hat{y}_i$ и истинная $\dot{y}_i$ фокусируется на несоотвествии форм сигнала. Но эта функция не является дифференцируемой. Поэтому используется оператор $\min_{\gamma}(a_1,...,a_n)= -\gamma \log(\sum_i^n\exp(-\alpha_i/\gamma))$, где $\gamma > 0$. Тогда целевая функция $\mathcal{L}_{shape}$ приобретает вид:
$$\mathcal{L}_{shape}(\hat{y}_i, \dot{y}_i) = DTW_{\gamma}(\hat{y}_i, \dot{y}_i) := -\gamma\log(\sum_{\mathbf{A} \in \mathcal{A}_{k,k}}\exp-(\frac{\langle\mathbf{A},\Delta(\hat{y}_i, \dot{y}_i)\rangle}{\gamma})$$
#### Temporal term
Вторая составляющая целевой функции $\mathcal{L}_{temporal}$ направлена на устарнение временных искажений между $\hat{y}_i$ и $\dot{y}_i$.
Подход основан на оптимальном DTW пути $\mathbf{A}^*$ между $\hat{y}_i$ и $\dot{y}_i$. $\mathcal{L}_{temporal}$ используется для учета обоих временых рядов и обеспечения инвариантности ошибки по отношению ко времени. Целевая функция основана на вычислении индека искажении времени $TDI$ для оценки временного смещения, в основе которой лежит вычисление отклонения между оптимальным DTW путем $\mathbf{A}^*$ и главной диаганалью матрицы.
$$TDI(\hat{y}_i, \dot{y}_i) = \langle\mathbf{A}^*, \mathbf{\Omega}\rangle = \langle \argmin_{\mathbf{A} \in \mathcal{A}_{k,k}}\langle \mathbf{A}, \Delta(\hat{y}_i, \dot{y}_i)\rangle, \Omega \rangle$$,
где $\Omega$ -- квдратная матрица размерностью $k \times k$ штраф для каждого элемента $\hat{y}_i^h$, связанного с $\dot{y}_i^j$ при $h != j$. В экспериментах было выбрано $\Omega(h,j)=\frac{1}{k^2}(h-j)^2$. Но это значение может быть разным, например, если мы хотим наказывать поздние прогнозы сильнее, или наоборот ранние.
TDI функция по-прежнему не дифференцируема. И здесь не получается использовать ту же технику, и в $DTW_{\gamma}$, т.к. при функция минимизации включает в себя две разных величины $\Omega$ и $\Delta$. Поскольку $\mathbf{A}^*$ само по себе не дифференцируемо, используется $\mathbf{A}^* = \nabla_{\Delta}DTW(\hat{y}_i, \dot{y}_i)$ для определения приближения $\mathbf{A}_{\gamma}^*$, т.е. $\mathbf{A}_{\gamma}^* = \nabla_{\Delta}DTW_{\gamma}(\hat{y}_i, \dot{y}_i) = \frac{1}{Z} \mathbf{A} \sum_{\mathbf{A} \in \mathcal{A}_{k,k}} \exp-(\frac{\langle\mathbf{A},\Delta(\hat{y}_i, \dot{y}_i)\rangle}{\gamma})$ c $Z=\sum_{\mathbf{A} \in \mathcal{A}_{k,k}} \exp-(\frac{\langle\mathbf{A},\Delta(\hat{y}_i, \dot{y}_i)\rangle}{\gamma})$ В итоге получаем:
$$\mathcal{L}_{temporal}(\hat{y}_i, \dot{y}_i) :=\langle\mathbf{A}_{\gamma}^*, \mathbf{\Omega}\rangle = \frac{1}{Z} \sum_{\mathbf{A} \in \mathcal{A}_{k,k}} \langle\mathbf{A}, \mathbf{\Omega}\rangle \exp-(\frac{\langle\mathbf{A},\Delta(\hat{y}_i, \dot{y}_i)\rangle}{\gamma})$$

...
Есть трудности с реализацией прямого и обратного распространений.
...
#### Датасеты
Результаты экспериментов: использовались как искуссвенные так и реальные данные, обладающие нестационарностю, предсказывали на k шагов вперед.
Для синтетического набора k=20 и он представлял из себя изменяющуюся во времени функцию с двумя пиками
Набор данных ECG5000, k=56, состоит 5000 электрокардиограмм длиной 140, взят из UCR Time Series Classification Archive
Traffic, k=24, датасет с информацией загруженности дорог для калифорнии, 48 месяцев ежечастных измерений, 24 значения прогнозируются на основе 168 предыдущих значений.

---
### Legendre Memory Units: Continuous-Time Representation in Recurrent Neural Networks
https://papers.nips.cc/paper/9689-legendre-memory-units-continuous-time-representation-in-recurrent-neural-networks.pdf
Цитирований: 7
Реализация: https://github.com/abr/neurips2019
Авторы предлагают новую ячейку памяти для рекуррентных сетей, которая способна динамически хранить информацию в течение длительных периодов времени. LMU могут эффективно обрабатывать временные зависимости длиной до 100 000 временных шагов, быстро сходиться и использовать несколько внутренних состояний для изучения сложных функций, охватывающих большие промежутки времени. Также, преимуществом явлется способность изучать инвариантные к масштабу характеристики независимо от размера шага.
#### Динамика ячейки памяти
Основным компонентом LMU является ячейка памяти, которая ортогонализирует непрерывную историю входного сигнала $u(t) \in\mathbb{R}$ посредсвом скользящего окна размером $\theta \in \mathbb{R}_{>0}$. Ячейка выводится из линейной передаточной функции для непрерывной задержки $F(s)=\exp^{-\theta s}$, которая лучшим способом апроксимируется d-связными дифференциальными уравнениями:
$$\theta \dot{m}= \mathbf{A}\mathbf{m}(t) + \mathbf{B}u(t),$$
где $\mathbf{m}(t) \in\mathbb{R}^d$ вектор состояния размерности d. Идеальные матрицы состояний $(\mathbf{A},\mathbf{B})$ получены с использованием апроксимации Падэ:
\begin{equation}
\mathbf{A}=[a]_{ij} \in\mathbb{R}^{d \times d}, a_{ij} = (2i+1) \begin{cases}
-1, & \text{$i<j$}\\
(-1)^{i-j+1}, & \text{$i<=j$}
\end{cases}
\end{equation}
\begin{equation}
\mathbf{B}=[b]_{i} \in\mathbb{R}^{d \times 1}, b_{i} = (2i+1)(-1)^i, i,j \in [0, d-1].
\end{equation}
Ключевым свойством этой динамической системы является то, что $\mathbf{m}$ представляют собой скользящие окна по входному сигналу $u$ через полиномы лежандра до степени $d-1$:
$$u(t-\theta') \approx \sum_{i=0}^{d-1} \mathcal{P}_i(\frac{\theta'}{\theta})m_i(t), 0 \leq \theta'\leq \theta, \mathcal{P}_i(r)=(-1)^i \sum_{j=0}^i \begin{pmatrix}
i \\
j \\
\end{pmatrix}
\begin{pmatrix}
i+j \\
j \\
\end{pmatrix}(-r)^j,$$
где $\mathcal{P}_i(r)$ -- $i$-ый полином Лежандра. Это позвояет получить уникальные и оптимальные разложения, в которых фукнции $\mathbf{m}$ соответсвуют вычислениям по окнам длины $\theta$, спроецированых на $d$ ортогональных базисных функций.

На рисунке показаны смещенные полиномы Лежандра $d=12$
Память LMU представляет скользящие окна входной истории как линейную комбинацию мастшабно-инвариантных полиномов. Увеличение $d$ увеличивет возможность хранение высокочастотных входов относительно шкалы времени
#### Дискретизация
Отображение этих уравнений на память рекуррентных нейронных сетей $\mathbf{m}_t \in \mathbb{R}^d$ для некторого входа $u_t \in \mathbb{R}$ в момент времени $t \in \mathbb{N}$:
$$\mathbf{m}_t = \overline{\mathbf{A}}\mathbf{m}_{t-1}+ \overline{\mathbf{B}}_{u_t},$$
где $(\overline{\mathbf{A}}, \overline{\mathbf{B}})$ -- дискретизированные матрицы для некоторого временного шага $\Delta(t)$, относительно длины окна $\theta$. Например, метод Эйлера предполагает, что $\Delta(t)$ достаточно мало:
$$\overline{\mathbf{A}}=\frac{\Delta(t)}{\theta}\mathbf{A}+\mathbf{I}, \overline{\mathbf{B}}=\frac{\Delta(t)}{\theta}\mathbf{B}$$
Также рассматриваются такие методы как экстраполятор нулевого порядка и методы, которые могут адаптировать своии временные шаги.
#### Ошибка приближения
При $d=1$ ячейка аналогична ячейке LSTM, при этом {\theta} является константой. с увеличением d увеличивается и объем памяти по отношению к частотным составляющим, таким образом ошибка в полиномах Лежандра будет составлять $\mathcal{O}(\theta \omega/d)$, где $\omega$ частота входа $u$, который должен быть зафиксирован в памяти ечейки.
#### Дизайн ячейки
LMU принимает на вход вектор $x_t$ и на его основе получает скрытое состояние $h_t \in \mathbb{R}^n$.Каждый слой содержит свое скрытое состояние я вектор памяти. Скрытое состояние взаимодейсвует с памятью $\mathbf{m}_t \in \mathbb{R}^d$ для вычисления нелинейных во времени функций при динамической записи в память. Таким образом, текущее скрытое состояние рассчитывается на основе входа, предыдущего скрытого состояния и текущей памяти:
$$h_t=f(\mathbf{W}_x\mathbf{x}_t+\mathbf{W}_h\mathbf{h}_{t-1}+\mathbf{W}_m\mathbf{m}_t)$$, где $f$ -- любая нелинейная функция, а $\mathbf{W}{x,h,m}$ -- обучаемы.
При этом, размерность скрытого состояния $n$, а размерность памяти $d$, требуется хранить $n+d$ переменных между временными шагами. Входной сигнал записывается в память как:
$$u_t=\mathbf{e_x}^\top\mathbf{x}_t+\mathbf{e_h}^\top\mathbf{h}_{t-1}+\mathbf{e_m}^\top\mathbf{m}_{t-1},$$
где $\mathbf{e_{x,h,m}}$ -- обучаемые энкодинг вектора. Можно сказать, что матрицы $\mathbf(W)$ изучают зависимости, а $\mathbf{e}$ изучают процеирование информации в память.

#### Датасеты
Для psMNIST решалась задача классификации изображений 28 на 28.

Mackey-Glass -- набор данных для задачи прогнозирования временных рядов, которой проверяет способность сети моделировать хаотические динамические системы.
