论文标题丨Topological Attention for Time Series Forecasting
论文来源丨NIPS 2021
论文链接丨https://arxiv.org/pdf/2107.09031v1.pdf
源码链接丨https://github.com/plus-rkwitt/TAN

TL;DR

目前大部分基于统计或神经网络的单变量时序预测方法通常直接在原始观测序列上进行预测,而这篇论文研究了通过持久同源性(persistent homology)捕获的局部拓扑属性(local topology properties)是否可以提高时间序列预测的准确性。论文中提出了拓扑注意力(topological attention)模块,可以在现有的模型(文中选用 N-BEATS)中融入局部拓扑特征且即插即用。实验部分在大规模时间序列数据集 M4 中验证了 topological attention + N-BEATS 可以达到 SOTA 性能,而且系列消融实验证实了通过注意力机制表达的局部拓扑特征是有效的。

Algorithm/Model

模型的整体架构如下图所示

模型架构

主要包含以下四步:

  1. 获取局部拓扑属性 barcode
  2. Barcode 向量化
  3. 多头注意力机制
  4. N-BEATS 序列预测模型

Local topological summaries

给定长度为TT 的时间序列x\boldsymbol{x},为了分析拓扑属性考虑 1 维 simplicial complex 形式,

K={{1},{T},{1,2},,{T1,T}}\mathcal{K}=\{\{1\}, \ldots\{T\},\{1,2\}, \ldots,\{T-1, T\}\}

其中K\mathcal{K}{i}\{i\} 表示节点,{i,j}\{i,j\} 表示边,那么K\mathcal{K} 表示一条直线。好奇下为什么将时间序列表示成这种形式 ⁉️

持久同源性 Persistent homology 就是获取时间序列拓扑表示的一种技术。给定序列x\boldsymbol{x} 及其值排序a1aTa_{1} \leq \cdots \leq a_{T},考虑集合

Kx0=,Kxj={σK:iσ:xiaj} for j[T]\mathcal{K}_{\boldsymbol{x}}^{0}=\emptyset, \quad \mathcal{K}_{\boldsymbol{x}}^{j}=\left\{\sigma \in \mathcal{K}: \forall i \in \sigma: x_{i} \leq a_{j}\right\} \quad \text { for } \quad j \in[T]

那么=Kx0Kx1KxT=K\emptyset=\mathcal{K}_{\boldsymbol{x}}^{0} \subseteq \mathcal{K}_{\boldsymbol{x}}^{1} \subseteq \cdots \subseteq \mathcal{K}_{\boldsymbol{x}}^{T}=\mathcal{K} 为递增序列,持久同源性跟踪整个序列的拓扑特征的进化,并以持久 barcode 的形式总结这些信息。每个 barcode 的计算方式如下图所示,

持久同源性计算

对于论文中的 connected component 转为 barcode 有点疑问,目前认为 barcode 记录序列变化的点。

当然论文不会仅考虑 1 个 barcode,对于WW 个长度为nn 的时间窗口计算得到WW 个 barcodesB1,,BW\mathcal{B}_{1}, \ldots, \mathcal{B}_{W},这些 barcodes 就表示了事件序列随时间变化的局部拓扑特征。

🤔 个人感觉 Persistent homology 表示的并不是理解的拓扑图特征,而是一种序列波动特征。

Barcode vectorization

对于得到的BW\mathbb{B}^{W} 需要转化为特征向量才能用于学习模型中,因此论文中再对 barcodes 进行转化。

 TopVec : BWRW×e,(B1,,BW)(a1,,aW)=(VΘ(B1),,VΘ(BW))\text { TopVec : } \mathbb{B}^{W} \rightarrow \mathbb{R}^{W \times e}, \quad\left(\mathcal{B}_{1}, \ldots, \mathcal{B}_{W}\right) \mapsto\left(\boldsymbol{a}_{1}, \ldots, \boldsymbol{a}_{W}\right)^{\top}=\left(\mathcal{V}_{\Theta}\left(\mathcal{B}_{1}\right), \ldots, \mathcal{V}_{\Theta}\left(\mathcal{B}_{W}\right)\right)^{\top}

其中sθs_{\theta} 论文中称为 barcode coordinate function

VΘ:BRe,Ba=(Vθ1(B),,Vθe(B))\mathcal{V}_{\Theta}: \mathbb{B} \rightarrow \mathbb{R}^{e}, \quad \mathcal{B} \mapsto \mathbf{a}=\left(\mathcal{V}_{\theta_{1}}(\mathcal{B}), \ldots, \mathcal{V}_{\theta_{e}}(\mathcal{B})\right)^{\top}

Vθ:BR,B(b,d)Bsθ(b,d)\mathcal{V}_{\theta}: \mathbb{B} \rightarrow \mathbb{R}, \quad \mathcal{B} \mapsto \sum_{(b, d) \in \mathcal{B}} s_{\theta}(b, d)

以上就将 barcode 转为RW×e\mathbb{R}^{W \times e} 矩阵。

Attention mechanism

为了使模型中能融入上述编码的局部拓扑性质,论文中使用多头注意力机制 Transformer 将上述矩阵转为注意力值,再经过 MLP 转为长度为TT 的序列。

 TopAttn :BWRT(B1,,BW)MLP(vec(TransformerEncoderTopVec(B1,,BW)))\begin{aligned} \text { TopAttn }: & \mathbb{B}^{W} \rightarrow \mathbb{R}^{T} \\ &\left(\mathcal{B}_{1}, \ldots, \mathcal{B}_{W}\right) \mapsto \operatorname{MLP}\left(\operatorname{vec}\left(\operatorname{TransformerEncoder} \circ \operatorname{TopVec}\left(\mathcal{B}_{1}, \ldots, \mathcal{B}_{W}\right)\right)\right) \end{aligned}

Forecasting model

最后将得到的拓扑注意力值作为输入,利用 N-BEATS 模型进行序列预测,主要改进点图示如下

其中v=TopAttn(B1,,BW)\boldsymbol{v}=\operatorname{TopAttn}\left(\mathcal{B}_{1}, \ldots, \mathcal{B}_{W}\right)

N-BEATS+TopAttn

Experiments

在大规模序列中实验结果如下所示,整体而言优于其它 baselines。

实验结果

消融实验如下

实验结果

Thoughts

  • 论文整体想法新颖,在拓扑属性的基础上融合了 Transformer。
  • 论文中提到的拓扑个人感觉而言意义不大仅是表示一种变化,换了个概念而已。
  • 实验结果上其实提升并不大,甚至加了 topology 还导致了模型性能下降。