4. Transformer基础回顾

在进入 PatchTST 之前,我们必须先把 Transformer 的“地基”重新夯实。很多同学在金融时序任务中直接套用 Transformer,却忽略了它最初是为离散符号序列(如机器翻译)设计的。理解自注意力的计算本质、位置编码的注入方式以及编码器-解码器的信息流,才能明白 PatchTST 为什么要“打补丁”、为什么要做通道独立。本节将围绕四个核心问题展开:注意力如何计算、位置信息如何注入、编码解码如何分工、长序列为何成为瓶颈。

一、自注意力机制:从“查字典”到加权求和

自注意力的本质是一次可学习的软性检索。给定输入序列的嵌入矩阵 X ∈ R^(L×d),通过三个线性变换得到查询 Q、键 K、值 V:

Q = X W_Q,  K = X W_K,  V = X W_V
Attention(Q, K, V) = softmax(Q K^T / sqrt(d_k)) V

其中 Q K^T 计算任意两个时间步之间的相似度,除以 sqrt(d_k) 防止点积过大导致 softmax 梯度消失,softmax 归一化后对 V 加权求和。多头注意力则把 d 维空间切成 h 个子空间并行计算,再拼接投影,使模型能同时关注不同时间尺度与不同模式。

在金融预测中,这意味着模型可以自动学习“昨天收盘价与今天开盘价强相关”“成交量突增对后续波动有滞后影响”等关系。但要注意:标准自注意力对序列长度 L 是二次复杂度,这正是长序列瓶颈的根源。

二、位置编码:让无序的注意力感知时间

自注意力本身是置换不变的——打乱输入顺序,输出只是跟着换位置,模型无法感知“谁在前谁在后”。因此必须注入位置信息。常见方案有两类:

  • 正弦位置编码:用不同频率的 sin/cos 函数生成固定向量,与词嵌入相加。优点是无需训练、可外推到更长序列,但对金融中非平稳的周期结构未必最优。
  • 可学习位置编码:为每个位置分配一个可训练向量。灵活但受限于最大训练长度,超出后无法直接外推。

金融时序的位置含义与 NLP 不同:时间步之间存在不等间隔、交易日缺失、周期(日/周/月)叠加。PatchTST 的做法是把连续时间步切成 patch,再对 patch 加位置编码,既缩短了有效序列长度,又保留了局部时序结构。

位置编码不是“锦上添花”,而是 Transformer 能处理时序的必要条件。去掉位置编码后,模型对时间顺序完全无感,预测能力会显著下降。

三、编码器-解码器结构:信息如何流动

原始 Transformer 采用编码器-解码器架构。编码器由多层自注意力加前馈网络组成,负责把输入序列压缩成上下文表示;解码器在自注意力基础上增加交叉注意力,用编码器输出作为键和值,逐步生成目标序列。金融预测中常见三种用法:

  1. 仅编码器:如 PatchTST、Informer,直接对历史窗口编码后接预测头,适合单步或多步直接预测。
  2. 仅解码器:如 类自回归模型,逐点生成未来值,适合概率预测但推理慢。
  3. 完整编码解码:适合输入与输出长度差异大、需要显式对齐的任务,金融中较少直接使用。

理解这一分工后,就能明白 PatchTST 为何选择仅编码器结构:金融预测通常给定固定历史窗口,直接映射到未来窗口,不需要自回归解码,编码器足够且更高效。

自注意力计算流程与长序列瓶颈 输入 X (L×d) 线性投影 Q K V QKᵀ / √d_k softmax 加权 输出 (L×d) 长序列瓶颈:注意力矩阵随 L 二次增长 L=512 → 矩阵 512×512 ≈ 26 万;L=4096 → 约 1677 万 显存与计算量 O(L²) 成为金融高频/长窗口预测的主要障碍 PatchTST 思路:切 patch 缩短 L,通道独立降低维度耦合

四、计算复杂度与长序列瓶颈:为什么必须改造

标准自注意力的时间与空间复杂度均为 O(L² · d)。当 L 从 512 增长到 4096,注意力矩阵元素数量增长 64 倍。金融场景中,长历史窗口往往包含更多周期与 regime 信息,但直接拉长序列会带来三个问题:

瓶颈具体表现对金融预测的影响
显存占用注意力矩阵随 L² 增长无法使用长窗口,batch size 被迫缩小
计算延迟训练与推理时间急剧上升高频策略无法满足实时性要求
过拟合风险参数量与序列长度同时增大金融信噪比低,长序列更易记住噪声
位置外推固定位置编码无法覆盖更长序列跨周期泛化能力下降

常见缓解思路包括稀疏注意力、局部窗口注意力、低秩近似、以及 PatchTST 采用的 patch 化与通道独立。patch 化把 L 个时间步压缩为 L/P 个 patch,注意力复杂度降为 O((L/P)²);通道独立则把多变量序列拆成单变量分别建模,避免通道间虚假相关干扰。

误区复盘:不少同学认为“序列越长信息越多,效果一定越好”。在金融数据中,长序列往往引入更多噪声与非平稳段,若不做 patch 化或正则化,模型反而会退化。正确做法是先评估信噪比与周期结构,再决定窗口长度与 patch 大小。

五、案例场景:从原始 Transformer 到 PatchTST 的改造路径

假设我们要预测某只股票未来 5 个交易日的收益率,历史窗口 512 天,包含开盘、收盘、成交量、换手率等 8 个通道。若直接使用原始 Transformer 编码器:

输入: (batch, 512, 8)
注意力矩阵: 512 × 512 × 8 heads
显存占用高,且 8 个通道被混合建模
位置编码: 可学习,最大长度 512,无法外推

PatchTST 的改造路径是:先把每个通道的 512 步切成 16 个 patch(每 patch 32 步),序列长度降为 16;再对每个通道独立做自注意力,最后拼接或融合输出。这样注意力矩阵从 512×512 降到 16×16,显存与计算量大幅下降,同时保留了局部时序模式。

核心结论:Transformer 的自注意力提供了强大的关系建模能力,但原始形式对长序列不友好。位置编码解决顺序感知,编码器-解码器解决信息压缩与生成,而 patch 化与通道独立是 PatchTST 针对金融长序列瓶颈的关键工程改造。理解这些基础,才能在后续章节中正确调参与排障。