4. Transformer核心原理

在金融多变量时序预测中,我们往往同时面对利率、汇率、成交量、波动率、行业指数等多个变量,它们之间存在跨变量的联动关系,也存在跨时间步的滞后影响。传统RNN类模型在长序列上容易出现梯度消失与并行效率低的问题,而Transformer通过自注意力机制直接建模任意两个时间步、任意两个变量之间的关系,成为多变量时序建模的重要骨干。本节围绕四个核心部件展开:自注意力、多头注意力、位置编码、残差连接与层归一化。

一、自注意力机制:让每个时间步“看见”全局

自注意力的本质是一次可学习的加权检索。给定输入序列矩阵 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 加权求和。对金融时序而言,这意味着预测某日收益率时,模型可以自动关注此前的关键事件窗口,例如财报发布日、政策调整日,而不必依赖固定窗口。

在时序预测中通常使用因果掩码(causal mask),将未来时间步的注意力权重置为 -inf,保证模型只能看到当前及历史信息,避免信息泄露。

二、多头注意力:从不同子空间捕捉金融规律

单头注意力只能学习一种关联模式,而金融数据中同时存在趋势、周期、波动聚集、跨市场传导等多种结构。多头注意力将 d_model 拆分为 h 个子空间,每个头独立计算注意力,再拼接并线性映射:

head_i = Attention(Q W_Q_i, K W_K_i, V W_V_i)
MultiHead = Concat(head_1, ..., head_h) W_O

例如 d_model=64, h=4 时,每个头维度为16。不同头可以分别关注短期反转、长期趋势、变量间同步性等模式。下表给出常见配置与金融场景的对应关系:

配置项典型取值金融时序中的影响
d_model64 / 128 / 256过小欠拟合,过大在小样本上易过拟合
头数 h4 / 8头数过多会稀释每个头的表达能力
注意力 dropout0.1 ~ 0.3抑制对噪声交易日的过度关注
因果掩码开启防止未来信息泄露,保证回测可信

三、位置编码:为无序注意力注入时间顺序

自注意力本身对序列顺序不敏感,若不加位置编码,打乱时间步后输出几乎不变。位置编码通过为每个时间步注入位置信息解决该问题。常见方案有两类:正弦位置编码和可学习位置编码。

  • 正弦位置编码:使用不同频率的 sin/cos 函数生成固定向量,可外推到训练时未见过的更长序列,适合长度变化较大的金融数据。
  • 可学习位置编码:将位置向量作为参数训练,灵活但受最大长度限制,外推能力较弱。
PE(pos, 2i)   = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

在金融场景中,位置不仅代表顺序,还可编码交易日历信息,例如星期几、是否月末、是否财报季,从而让模型区分普通交易日与特殊交易日。

四、残差连接与层归一化:让深层网络稳定训练

Transformer通常堆叠多层编码器,深层网络容易出现梯度消失或训练不稳定。残差连接将输入直接加到子层输出上,层归一化则对特征维度做归一化:

# Post-LN(原始Transformer)
x = LayerNorm(x + Sublayer(x))

# Pre-LN(更易训练,常用于时序模型)
x = x + Sublayer(LayerNorm(x))

残差连接保证梯度可以沿捷径回传,层归一化稳定每层输入分布。在金融小样本、高噪声场景下,Pre-LN 通常比 Post-LN 更易收敛,且对学习率不敏感。

常见误区:将层归一化与批归一化混用。时序预测中批次内样本可能来自不同市场阶段,批归一化会引入跨样本统计泄露,层归一化按单样本特征归一化,更适合金融时序。

五、案例:多变量收益率预测中的注意力可视化

假设输入为过去60个交易日的5个变量:沪深300收益率、成交量、北向资金、波动率、国债收益率。模型配置 d_model=64, h=4, layers=2。训练后观察注意力权重,可发现某些头集中关注波动率突变日,另一些头关注成交量放大日。这说明多头注意力确实学到了不同的金融模式,而位置编码帮助模型区分事件发生的时间距离。

Transformer编码器:多变量时序输入到预测输出 多变量输入 L×5 特征矩阵 位置编码 sin / cos 注入 多头自注意力 h=4 子空间并行 因果掩码 残差 + 层归一化 Pre-LN 稳定训练 梯度捷径回传 前馈网络 非线性变换 预测输出 下一期收益率 残差捷径

六、复盘:四个部件的协同与常见陷阱

  1. 自注意力不是万能的:当序列很长时计算复杂度为 O(L^2),金融高频数据需考虑稀疏注意力或分块策略。
  2. 多头不是越多越好:头数过多会导致每个头维度太小,反而降低表达能力,建议从4头起步。
  3. 位置编码要匹配数据节奏:若使用可学习位置编码,训练集长度必须覆盖推理长度,否则外推失效。
  4. Pre-LN 与 Post-LN 的选择:小样本金融数据优先 Pre-LN,并配合 warmup 学习率调度。