对于在具有目标变量和外生变量的时间序列上训练的循环神经网络,除了准确预测之外,还期望能提供对数据的可解释性见解。
本文探索长短期记忆(LSTM)循环神经网络的结构以学习变量层面的隐藏状态,旨在捕捉多变量时间序列中的不同动态,并区分变量对预测的贡献。
利用这些变量层面的隐藏状态,提出了一种混合注意力attention机制来对目标的生成过程进行建模。
随后开发了相关训练方法,以联合学习网络参数、变量重要性和与目标变量预测相关的时间重要性。
在真实数据集上的大量实验表明,通过捕捉不同变量的动态可提高预测性能。同时,对解释结果进行了定性和定量评估,展示了其作为多变量数据预测和知识提取的端到端框架的前景。
引言
近年来,循环神经网络(RNNs),特别是长短期记忆(LSTM)(Hochreiter & Schmidhuber, 1997)和门控循环单元(GRU)(Cho et al., 2014),已在各种任务中被证明是强大的序列建模工具,例如语言建模、机器翻译、健康信息学、时间序列和语音(Ke et al., 2018; Lin et al., 2017; Guo et al., 2016; Lipton et al., 2015; Sutskever et al., 2014; Bahdanau et al., 2014)。在本文中,我们专注于由目标变量和外生变量组成的多变量时间序列上的 RNNs。在这样的多变量数据上训练的 RNNs 捕捉目标变量和外生变量的历史值与未来目标值的非线性相关性。
除了预测之外,可解释的 RNNs 对于深入了解数据中对 RNNs 获得良好预测性能的重要部分是非常理想的(Hu et al., 2018; Foerster et al., 2017; Lipton, 2016)。在本文中,我们关注两种类型的重要性解释:变量重要性和变量层面的时间重要性。首先,在 RNNs 中,变量对目标的预测能力不同,因此对预测的贡献也不同(Feng et al., 2018; Riemer et al., 2016)。其次,变量与目标变量也呈现不同的时间相关性(Kirchgässner et al., 2012)。例如,对于与目标瞬间相关的变量,其短期历史数据对预测的贡献更大。获取这些知识的能力能够实现更多的应用,例如变量选择。然而,由于当前 RNNs 的隐藏状态不透明,对于多变量数据缺乏上述可解释性。具体而言,当输入目标变量和外生变量的多变量观测值时,RNNs 盲目地将所有变量的信息混合到用于预测的隐藏状态中。通过隐藏状态序列难以区分单个变量对预测的贡献(Zhang et al., 2017)。同时,单个变量通常呈现不同的动态。这种信息被混合多变量数据的隐藏状态隐含地忽略,从而可能阻碍预测性能。
网络架构
多变量- LSTM 的思想是利用隐藏状态矩阵并开发相关的更新方案,使得隐藏矩阵的每个元素(例如行)仅封装来自输入的某个变量的信息。为了与标准 LSTM 中的隐藏状态向量和门向量区分开来,多变量- LSTM 中的隐藏状态矩阵和门矩阵用波浪线表示。具体而言,我们将时间步 (t) 的隐藏状态矩阵定义为 (\tilde{h}t = [h{1t}, \cdots, h_{Nt}]^T),其中 (\tilde{h}t \in R^{N\times d}),(h{nt} \in R^{d})。该层的总大小推导为 (D = N\cdot d)。(\tilde{h}t) 的元素 (h{nt}) 是特定于第 (n) 个输入变量的隐藏状态向量。
作者
Kaizong Ye
可下载资源
然后,我们将输入到隐藏的转换定义为 (U_j = [U_{1j}, \cdots, U_{Nj}]^T),其中 (U_j \in R^{N\times d\times d_0}),(U_{nj} \in R^{d\times d_0}),(d_0) 是每个时间步单个变量的维度。隐藏到隐藏的转换定义为:(W_j = [W_{1j} \cdots W_{Nj}]),其中 (W_j \in R^{N\times d\times d}),(W_{nj} \in R^{d\times d})。与标准 LSTM 神经网络(Hochreiter & Schmidhuber, 1997)一样,多变量- LSTM 在更新过程中有输入门 (i_t)、遗忘门 (f_t)、输出门 (o_t) 和记忆单元 (c_t)。给定时间 (t) 新输入的 (x_t) 和隐藏状态矩阵 (\tilde{h}_{t – 1}),隐藏状态更新定义为:
其中 (\tilde{j}t = [j{1t}, \cdots, j_{Nt}]^T) 与隐藏状态矩阵 (R^{N\times d}) 具有相同的形状。每个元素 (j_{nt} \in R^{d}) 对应于关于输入变量 (n) 的隐藏状态更新。项 (W_j \tilde{h}{t – 1}) 和 (U_j \tilde{x}t) 分别捕获来自上一步隐藏状态和新输入的更新。张量点积运算 (\tilde{}) 定义为沿 (N) 轴的两个张量的乘积,例如,(W_j \tilde{h}{t – 1} = [W{1j}h_{1t – 1}, \cdots, W_{Nj}h_{Nt – 1}]^T),其中 (W_{nj}h_{nt – 1} \in R^{d})。根据门和记忆单元的不同更新方案,我们提出了 多变量- LSTM 的两种实现,即方程集中的 多变量- Full 和方程集中的 多变量- Tensor。在这两组方程中,vec(·) 指的是向量化操作,它将矩阵的列连接成一个向量。连接操作表示为 (\oplus),逐元素乘法表示为 (\odot)。算子 matricization(·) 将 (R^{D}) 中的向量重塑为 (R^{N\times d}) 中的矩阵。
方程集 1:多变量- Full
h_tilda_t = torch.zeros(x.shape[0], self.input_dim, self.n_units).cuda()
c_t = torch.zeros(x.shape[0], self.input_dim*self.n_units).cuda()
outputs = torch.jit.annotate(List[Tensor], [])
for t in range(x.shape[1]):
# eq 1
j_tilda_t = torch.tanh(torch.einsum("bij,ijk->bik", h_tilda_t, self.W_j) + \
torch.einsum("bij,jik->bjk", x[:,t,:].unsqueeze(1), self.U_j) + self.b_j)
inp = torch.cat([x[:, t, :], h_tilda_t.view(h_tilda_t.shape[0], -1)], dim=1)
# eq 2
视频
LSTM神经网络架构和原理及其在Python中的预测应用
视频
LSTM模型原理及其进行股票收盘价的时间序列预测讲解
视频
【视频讲解】Python深度学习股价预测、量化交易策略:LSTM、GRU深度门控循环神经网络附代码数据
视频
【讲解】ARIMA、XGBOOST、PROPHET和LSTM预测比特币价格
视频
【视频讲解】LSTM模型在中文文本评论情感分析预测应用附代码数据
方程集 2:多变量- Tensor
h_tilda_t = torch.zeros(x.shape[0], self.input_dim, self.n_units).cuda()
c_tilda_t = torch.zeros(x.shape[0], self.input_dim, self.n_units).cuda()
outputs = torch.jit.annotate(List[Tensor], [])
for t in range(x.shape[1]):
# eq 1
j_tilda_t = torch.tanh(torch.einsum("bij,ijk->bik", h_tilda_t, self.W_j) + \
torch.einsum("bij,jik->bjk", x[:,t,:].unsqueeze(1), self.U_j) + self.b_j)
# eq 5
i_tilda_t = torch.sigmoid(torch.einsum("bij,ijk->bik", h_tilda_t, self.W_i) + \
torch.einsum("bij,jik->bjk", x[:,t,:].unsqueeze(1), self.U_i) + self.b_i)
多变量- Full:通过方程(2)和(3)中的向量化,多变量- Full 不考虑其中的变量层面数据,使用完整的 (\tilde{h}_{t – 1}) 和 (\tilde{j}_t) 更新门和记忆。通过用 (\tilde{j}_t) 简单替换标准 LSTM 中的隐藏更新,多变量- Full 的行为与标准 LSTM 相同,同时具有如下所示的可解释性。(W) 和 (U) 与方程(1)中的 (W_j) 和 (U_j) 具有相同的形状。在 多变量- Full 和 多变量- Tensor 中,门仅缩放 (\tilde{j}t) 和 (\tilde{c}{t – 1}),从而保留了 (\tilde{h}_t) 中的变量层面数据组织。通过混合注意力在时间和变量层面上聚合每个变量的派生隐藏状态。
学习解释与预测
在学习阶段,神经网络和混合注意力中的参数集表示为 (\Theta)。给定一组 (M) 个训练序列 ({X_T}^M) 和 ({y_{T + 1}}^M),我们旨在学习 (\Theta) 以及重要性向量 (I) 和 ({T_n}^N),以进行预测和深入了解数据。接下来,我们首先说明直接解释注意力值的困难,然后提出结合参数和重要性向量学习的训练方法,无需事后分析。重要性向量 (I) 和 ({T_n}^N) 反映变量中的全局关系,而上述得出的注意力值特定于数据实例。此外,从注意力中解读变量和时间重要性并非易事。例如,在实验部分使用的 PLANT 数据集的训练过程中,我们收集训练实例的变量和变量层面的时间注意力值。
在实验过程中,在其他变量和数据集中也观察到了类似现象。在下文中,我们基于具有潜在变量的概率模型的期望最大化(EM)框架开发训练过程,即本文中的方程。以下索引 (m) 对应于训练数据实例。为了简单起见,在 (h_{nT}) 和 (g_{n}) 中省略。要最小化的损失函数推导为:
实验
数据集
- PM2.5:包含中国北京的每小时 PM2.5 数据及相关气象数据。PM2.5 测量值为目标序列。外生时间序列包括露点、温度、气压、合成风向、累计风速、降雪小时数和降雨小时数。总共有 41,700 个多变量序列。
- PLANT:记录了意大利一家光伏电站的发电量时间序列(Ceci et al., 2017)。外生数据由 9 个天气状况变量(如温度、云量等)组成。发电量为目标。它提供了 20842 个序列,分为训练集(70%)、验证集(10%)和测试集(20%)。
- SML:是一个用于室内温度预测的公共数据集。与(Qin et al., 2017)相同,将室内温度作为目标序列,另外 16 个时间序列作为外生序列。数据每分钟采样一次。前 3200、后 400 和最后 537 个数据点分别用于训练、验证和测试。由于篇幅限制,其他数据集的实验结果在补充材料中。
基线与评估设置
- 第一类统计基线:
- STRX:具有外生变量的结构时间序列模型(Scott & Varian, 2014; Radinsky et al., 2012)。它由通过状态空间模型的未观测成分组成。
- ARIMAX:具有外生变量回归项的自回归移动平均模型(Hyndman & Athanasopoulos, 2014)。在这种情况下,它是向量自回归的一种特殊情况。
- 第二类机器学习基线:
- RF:随机森林,一种由多个决策树组成的集成学习方法(Liaw et al., 2002),并用于时间序列预测(Patel et al., 2015)。
- XGT:极端梯度提升(Chen & Guestrin, 2016)。它是提升方法在回归树中的应用(Friedman, 2001)。
- ENET:弹性网络,一种结合了套索和岭方法的 L1 和 L2 惩罚的正则化回归方法(Zou & Hastie, 2005),并用于时间序列分析(Liu et al., 2010; Bai & Ng, 2008)。
- 第三类深度学习基线:
- RETAIN:使用 RNNs 分别学习输入数据的权重以进行预测(Choi et al., 2016)。它定义了注意力的贡献系数来表示特征重要性。
- DUAL:一种编码器 – 解码器架构,使用编码器学习注意力,并将预加权的输入数据输入解码器进行预测(Qin et al., 2017)。它使用时间变量注意力来反映变量重要性。
在 ARIMAX 中,自回归和移动平均项的阶数设置为训练数据的窗口大小。对于 RF 和 XGT,超参数树深度和迭代次数通过网格搜索从[3, 10]和[2, 200]中选择。对于 XGT,通过在{0.0001, 0.001, 0.01, 0.1, 1, 10}中搜索添加 L2 正则化。对于 ENET,L2 和 L1 惩罚的系数从{0, 0.1, 0.3, 0.5, 0.7, 0.9, 1, 2}中选择。对于机器学习基线,多变量输入序列被扁平化为特征向量。
我们使用 Tensorflow 实现 多变量- LSTM 和深度学习基线。使用 Adam 优化器,小批量大小为 64(Kingma & Ba, 2014)。对于基线中的循环层和密集层的大小,我们在{16, 32, 64, 128, 256, 512}上进行网格搜索。多变量- LSTM 层的大小由每个变量的神经元数量设置,从{10, 15, 20, 25}中选择。丢弃率从{0, 0.2, 0.5}中选择。学习率从{0.0005, 0.001, 0.005, 0.01, 0.05}中搜索。添加 L2 正则化,系数从{0.0001, 0.001, 0.01, 0.1, 1.0}中选择。我们对每种方法训练 5 次并报告平均性能。PM2.5 和 SML 的窗口大小(即 (T))根据(Qin et al., 2017)设置为 10,而对于 PLANT 设置为 20 以测试长依赖关系。 - 预测性能
- 我们在表中报告预测误差,每个单元格显示平均均方根误差(RMSE)和平均绝对误差(MAE)及其标准误差。特别是,多变量- LSTM 家族最多比基线方法性能高出约 80%。深度学习基线大多优于其他基线。提升方法 XGT 在 PLANT 和 SML 数据集中表现出与深度学习基线相当的性能。
- 见解:对于携带不同模式的多变量数据,正确地对单个变量及其相互作用进行建模对于预测性能很重要。多变量- Full 在门更新中保留了变量相互作用。多变量- Tensor 独立地维护变量层面的隐藏状态,并且仅通过混合注意力捕获它们的相互作用。实验中,多变量- Full 和 多变量- Tensor 表现出相当的性能,尽管 多变量- Tensor 中独立变量层面隐藏状态的混合导致了最佳性能。请注意,多变量- Full 和 多变量- Tensor 是单一网络结构。与基线中的复合网络架构不同,多变量- LSTM 中良好维护的变量层面隐藏状态的混合也提高了预测性能并增强了如下所示的可解释性。
model = MVLSTM(X_train_t.shape[2], 1, 128).cuda()
opt = torch.optim.Adam(model.parameters(), lr=0.001)
epoch_scheduler = torch.optim.lr_scheduler.StepLR(opt, 20, gamma=0.9)
PM2.5
PLANT
随时关注您喜欢的主题
SML
解释
在这部分,我们定性地分析变量和时间重要性的意义。图分别展示了在最佳超参数下训练期间的变量和时间重要性值。多变量- Full 和 多变量- Tensor 学习到的重要性值可能略有不同,因为在 多变量- Tensor 中,门和记忆更新方案是独立演化的,从而导致与 多变量- Full 不同的隐藏状态。与基线 RETAIN 和 DUAL 相比,多变量- LSTM 更容易理解。
h_tilda_t = torch.zeros(x.shape[0], self.input_dim, self.n_units).cuda()
c_tilda_t = torch.zeros(x.shape[0], self.input_dim, self.n_units).cuda()
outputs = torch.jit.annotate(List[Tensor], [])
for t in range(x.shape[1]):
# eq 1
j_tilda_t = torch.tanh(torch.einsum("bij,ijk->bik", h_tilda_t, self.W_j) + \
torch.einsum("bij,jik->bjk", x[:,t,:].unsqueeze(1), self.U_j) + self.b_j)
# eq 5
i_tilda_t = torch.sigmoid(torch.einsum("bij,ijk->bik", h_tilda_t, self.W_i) + \
torch.einsum("bij,jik->bjk", x[:,t,:].unsqueeze(1), self.U_i) + self.b_i)
- 变量重要性:在图中,每个子图的顶部和底部面板分别显示了来自 多变量- Full 和 多变量- Tensor 的关于训练时期的变量重要性值。总体而言,变量重要性值在训练期间收敛,并且在训练结束时确定变量重要性的排名。具有高重要性值的变量对 多变量- LSTM 的预测贡献更大。对于 PM2.5 数据集,变量“风速”、“气压”、“降雪”、“降雨”被 多变量- LSTM 排在较高位置。根据最近一项研究空气污染的工作(Liang et al., 2015),“露点”和“气压”都与 PM2.5 相关且相互关联。一个“气压”变量足以学习准确的预测,因此具有高重要性值。强风可以带来干燥和新鲜的空气。“降雪”和“降雨”量也与空气质量有关。对 多变量- LSTM 重要的变量与(Liang et al., 2015)中的领域知识一致。在 PLANT 数据集中,除了“辐照度”和“云量”,“风速”、“湿度”以及“温度”也排在较高位置,并且在 多变量- LSTM 中相对更多地用于提供准确的预测。正如(Mekhilef et al., 2012; Ghazi & Ip, 2014)所讨论的,湿度会导致灰尘沉积并因此降低太阳能电池效率。增加的风可以从电池表面带走热量,从而提高效率。图 表明,变量“室内湿度”、“室内二氧化碳”和“室内照明”对 多变量- LSTM 相对更重要(“Humid.”表示湿度)。正如(Nguyen et al., 2014; Höppe, 1993)所建议的,湿度与室内温度相关。
-
- PM2.5
PLANT
SML
-
时间重要性
图 展示了训练结束时每个变量的时间重要性值。颜色越浅,相应的数据对预测的贡献越大。具体而言,在图中,变量“降雪”和“风速”的短期历史对预测贡献更大。PM2.5 本身具有相对较长的自相关性,即大约 5 小时。图 显示,上述重要变量“风”和“温度”的近期数据在预测中被高度使用,而“云量”与目标具有长期相关性,即大约 13 小时。在图中,时间重要性值大多较为均匀,尽管“餐厅湿度”具有短期相关性,“室外温度”和“餐厅照明”与目标具有相对较长的相关性。
-
PM2.5
PLANT
SML
- 变量层面的时间重要性解释:左图和右图分别对应 多变量- Full 和 多变量- Tensor。观察到变量的时间重要性的不同衰减模式,这为每个变量的动态提供了额外的解释。
变量选择
在这组实验中,我们通过预测任务的视角定量评估变量重要性的有效性。我们关注 多变量- LSTM 家族和 RNN 基线,即 DUAL 和 RETAIN。具体而言,对于每种方法,我们首先根据 多变量- LSTM 中的变量重要性、DUAL 中的变量注意力和 RETAIN 中的贡献系数分别对变量进行排名。同时,我们添加另一组基线,表示为 多变量- Full – P 和 多变量- Tensor – P。标签“-P”表示使用皮尔逊相关系数对与目标具有最高(绝对)相关值的变量进行排名,并将所选数据输入到 多变量- LSTM。然后,我们仅使用各自方法排名前 50%的变量重建数据集,使用这些新数据集重新训练每个模型,并获得表 中的误差。
见解:理想情况下,有效的变量选择应使相应的重新训练模型与表 中在完整数据上训练的对应模型具有可比的误差。多变量- Full 和 多变量- Tensor 在表 中表现出相当甚至更低的误差,而 DUAL 和 RETAIN 大多具有更高的误差。皮尔逊相关系数衡量线性关系。基于它选择变量忽略了非线性相关性,并且不适合 LSTM 获得最佳性能。变量选择的另一个优点是训练效率,例如,多变量- Tensor 中每个时期的训练时间从约 16 秒减少到约 11 秒。
综上所述,本文提出的 多变量- LSTM 网络架构在多变量时间序列预测任务中表现出良好的性能和可解释性。通过独特的隐藏状态矩阵设计和相关的更新方案,能够有效地捕捉变量层面的信息和动态,在变量重要性分析、时间重要性分析以及变量选择等方面都展现出了优势,为多变量时间序列的分析与预测提供了一种有效的方法和工具,在相关领域具有一定的应用潜力和研究价值,未来还可进一步探索其在更多复杂场景和大规模数据中的应用效果,以及与其他先进技术的结合使用等方向。
结论与讨论
在本文中,我们探索了长短期记忆网络(LSTMs)在多变量时间序列可解释性预测方面的内部结构。大量实验为实现 LSTM 的卓越预测性能和重要性解释提供了深刻见解。关于高阶效应,例如数据中的变量相互作用,可以通过在隐藏状态矩阵中添加额外的行以及在重要性向量中相应地添加元素来捕获。这将是未来的工作。
参考文献
Ancona, M., Ceolini, E., Oztireli, C., and Gross, M. 《Towards better understanding of gradient – based attribution methods for deep neural networks》. 第六届国际学习表征会议(ICLR 2018), 2018.
Arras, L., Montavon, G., Müller, K. – R., and Samek, W. 《Explaining recurrent neural network predictions in sentiment analysis》. arXiv 预印本 arXiv:1706.07206, 2017.
Bahdanau, D., Cho, K., and Bengio, Y. 《Neural machine translation by jointly learning to align and translate》. 国际学习表征会议,2014.
Bai, J. and Ng, S. 《Forecasting economic time series using targeted predictors》. 《计量经济学杂志》, 146 (2): 304–317, 2008.
Bishop, C. M. 《Mixture density networks》. 1994.
Ceci, M., Corizzo, R., Fumarola, F., Malerba, D., and Rashkovska, A. 《Predictive modeling of pv energy production: How to set up the learning task for a better prediction?》. 《IEEE 工业信息技术学报》, 13 (3):956–966, 2017.
Che, Z., Purushotham, S., Khemani, R., and Liu, Y. 《Interpretable deep models for icu outcome prediction》. 《美国医学信息学协会年会论文集》, 卷 2016, 第 371 页。美国医学信息学协会,2016.
每日分享最新报告和数据资料至会员群
关于会员群
- 会员群主要以数据研究、报告分享、数据工具讨论为主;
- 加入后免费阅读、下载相关数据内容,并同步海内外优质数据文档;
- 老用户可九折续费。
- 提供报告PDF代找服务
非常感谢您阅读本文,如需帮助请联系我们!