4 METHODOLOGY
图解
Mambaformer模型结合了Mamba和Transformer的元素,旨在进行时间序列预测。以下是Mambaformer模型的各个组成部分和流程的详细说明:
嵌入层(Embedding Layer)
- Token Encoding(令牌编码): 这个部分将输入数据编码成向量表示,以捕捉输入特征的语义含义或特征。
- Temporal Encoding(时间编码): 这部分加入时间信息,例如Transformer中的位置编码,帮助模型理解序列的顺序和时间依赖关系。
Mamba预处理块(Mamba Pre-Processing Block)
这个块包含Mamba块,用于处理编码后的输入。输出经过加法和归一化层,以稳定和标准化数据,为下一个阶段做准备。
Mambaformer层(Mambaformer Layer)
- 掩码多头注意力(Masked Multi-Head Attention): 这一机制允许模型关注输入序列的不同部分,通过关注不同位置来考虑输入和其时间上下文。"掩码"部分通常意味着模型在给定预测时只考虑之前的时间步,以防止未来时间步的信息泄露。
- Mamba块(Mamba Block): 这个块包含Mamba模型的关键组件:
- 状态空间模型(SSM): 捕捉序列数据的结构和时间上的依赖关系。
- 卷积层(Conv): 处理状态表示,可能捕捉数据中的局部依赖和模式。
- 线性层和激活函数(σ): 调整数据的维度,并对数据进行非线性转换。
每个Mamba块输出其处理后的信息,这些信息经过另一个加法和归一化步骤,以确保数据在网络层之间的稳定传递。
预测层(Forecasting Layer)
从叠加的Mambaformer层输出的数据传递到预测层,在此进行实际的预测。该层可能包括附加的转换和最终输出函数,根据处理后的序列信息提供预测值。
总结
Mambaformer模型通过结合Mamba块和多头注意力机制,利用状态空间建模和注意力机制捕捉时间序列数据中的长短期依赖关系。这种架构允许高效处理和预测,融合了Mamba和Transformer模型的优势。
4.1 Overview of Mambaformer
4.1 Mambaformer概述
受混合架构在语言建模中优势的启发【23】,我们提出利用Mambaformer来整合Mamba和Transformer,以捕捉时间序列数据中的长短期依赖,从而提升性能。Mambaformer采用类似GPT系列【5, 25, 26】的仅解码器(decoder-only)架构。
Mambaformer的关键特点:
-
混合架构优势: Mambaformer结合了Mamba和Transformer的优势。Mamba模型擅长处理长时间序列数据中的依赖关系,而Transformer尤其在捕捉复杂的上下文关系上表现出色。通过整合这两者,Mambaformer能够更好地建模长短期依赖关系。
-
仅解码器结构: 类似于GPT系列,Mambaformer使用仅解码器的结构。这种结构专注于生成输出,而不需要完整的编码器-解码器对。这种设计使得Mambaformer在处理生成任务和序列预测任务时更加高效,减少了计算复杂度。
-
增强的性能: 通过结合Mamba的状态空间模型能力和Transformer的自注意力机制,Mambaformer能够处理更广泛的依赖范围,从而在时间序列预测任务中表现出更好的性能。这种混合模型能够在捕捉数据的全局和局部特征时提供更精确的预测。
总结
Mambaformer模型的设计灵感来自语言建模中的混合架构,其采用的仅解码器结构使得它在生成和预测任务中非常有效。通过整合Mamba和Transformer的优势,Mambaformer能够在时间序列数据中捕捉复杂的长短期依赖关系,从而提高预测的精度和效果。
4.2 Embedding Layer
4.2 嵌入层(Embedding Layer)
我们使用嵌入层将低维时间序列数据映射到高维空间中,这包括令牌嵌入(token embedding)和时间嵌入(temporal embedding)。
令牌嵌入(Token Embedding)
为了将原始时间序列数据转换为高维的令牌,我们使用一维卷积层作为令牌嵌入模块。因为一维卷积层能够保留时间序列数据中的局部语义信息【7】。这种方法确保模型能够捕捉到数据中的局部特征和模式,有助于后续的序列建模。
时间嵌入(Temporal Embedding)
除了序列中的数值信息外,时间上下文信息也提供了有用的线索,例如层级时间戳(如周、月、年)和不依赖于具体日期的时间标记(如节假日和事件)【41】。我们使用线性层来嵌入这些时间上下文信息。这些信息有助于模型理解数据中潜在的时间模式和事件影响。
嵌入层的公式表示
令 X ∈ R B × L × M X \in \mathbb{R}^{B \times L \times M} X∈RB×L×M表示输入序列,其中 B B B为批大小, L L L为序列长度, M M M为特征维度。令 C ∈ R B × L × C C \in \mathbb{R}^{B \times L \times C} C∈RB×L×C表示关联的时间上下文。嵌入层的输出可以表示为:
E = E t o k e n ( X ) + E t e m ( C ) E = E_{token}(X) + E_{tem}(C) E=Etoken(X)+Etem(C)
其中, E ∈ R B × L × D E \in \mathbb{R}^{B \times L \times D} E∈RB×L×D是输出嵌入, D D D为嵌入维度, E t o k e n E_{token} Etoken