张芷铭的个人博客

时序因果卷积确保卷积操作仅依赖当前及过去时刻的数据,避免未来信息泄露,是时间序列任务的核心技术。

核心概念

因果卷积在时刻 $t$ 的输出 $y_t$ 仅依赖输入序列 ${x_1, x_2, \dots, x_t}$:

$$y_t = \sum_{i=0}^{k-1} w_i x_{t-i}$$

其中 $k$ 为卷积核大小,$w_i$ 为卷积核权重。

关键特性

特性说明
时间顺序严格性仅利用当前及过去信息
序列建模适配捕捉长期依赖,避免信息泄露
填充实现左侧填充 $k-1$ 个零值

应用场景

场景作用
语音识别音频流的时序特征提取
金融预测股价/汇率时间依赖建模
NLP文本生成的时间顺序保证
视频分析历史帧特征提取

PyTorch 实现

1
2
3
4
5
6
7
8
9
class CausalConv1d(nn.Module):
    def __init__(self, in_channels, out_channels, kernel_size, stride=1):
        super().__init__()
        self.conv = nn.Conv1d(in_channels, out_channels, kernel_size, stride)
        self.padding = kernel_size - 1

    def forward(self, x):
        x = torch.pad(x, (self.padding, 0), mode='constant', value=0)
        return self.conv(x)

核心优势

  • 避免未来信息泄露
  • 提升因果推理能力
  • 广泛适配单模态/多模态时序任务

Comments