Temporal Latent Auto-Encoder: A Method for Probabilistic Multivariate Time Series Forecasting翻译
摘要
在计算负担和分布建模方面,高维多元时间序列的概率预测是一个具有挑战性的任务。大部分先前的工作要么使用简单的分步假设或放弃建模跨时间序列的相关性。一个有希望的工作方向是利用可扩展的矩阵分解,来获得潜在空间预测,但仅限于线性嵌入,无法建模多元分布,当使用深度学习预测时,也无法进行端到端训练。我们引入了一种新的时间潜在自编码方法,它能够实现多元时间序列的非线性分解,通过使用时间深度学习潜在空间预测模型来端到端学习。通过利用一个概率潜在空间模型,输入序列的复杂分布通过解码器建模。广泛的实验表明,我们的模型在许多流行的多变量数据集中实现了最先进的性能,在几个度量指标上有时甚至超过50%。
1.介绍
预测时间序列上的未来值,是许多行业的关键组成部分。常见应用包括预测供应链和航空公司需求,金融价格和能源,交通或天气模式。这通常需要预测大量相关的时间序列,即多变量时间序列预测,而不是单变量(单时间序列)预测。例如,零售商可能需要在数千个不同的地点,预测数百万个不同产品的销售/需求,这需要数十亿个销售时间序列。
在多变量设置中,一种常用方法是利用单个模型输出多个变量,来同时预测所有序列。这包括统计方法,如矢量自回归(VAR)模型,广义自回归模型(例如,MGARCH)和多变量状态空间模型,以及包括循环神经网络(RNNS),时间卷积神经网络等深度神经网络模型 (TCNS),以及这些模型的组合。然而,随着时间序列数量的增加,这些模型都容易出现过拟合且不可扩展。
因此,另一种流行的方法是完全放弃多元预测并执行单变量预测(即,每个变量采用一个单独的模型)。对历史值使用简单参数建模的经典统计预测方法仍然是工业中最常用的技术,例如自回归AR和ARIMA模型,指数平滑(ES)和更通用的状态空间模型。此类方法一直优于机器学习方法,例如大规模预测比赛中的RNN。最近关于深度学习在时间序列预测上的成功的一个关键原因是多任务单变量预测,即在所有序列中共享深度学习模型参数,这可能使用一些特定于序列的缩放因子或参数模型组件。例如,M4预测比赛的获胜者采用混合ES-RNN模型,其中一个共享的单变量RNN模型用于预测每个序列。
然而,多任务单变量预测方法的基本限制是它们无法在许多领域中建模多变量间的相关性或影响。例如,在零售方面,各产品之间具有相关影响(例如,相关产品销售额增加/降低会导致另一个产品的销售额增加)是众所周知的。在金融时序中,一支股票的价格可能取决于其他股票的相对价格,能量时间序列可能具有空间相关性和依赖性。此外,在噪音或数据稀疏的情况下,这些方法无法利用相关变量提供的额外信息。例如,销售往往是稀疏的(例如,特定产品仅进行一个月的销售),因此无法从单一变量准确地估算销售率。
我们主要关注的一项有希望的研究,能够解决上述单任务多输出或多任务单变量建模的限制,即使用分解。多变量时间序列之间的关系能够被分解为一个低秩矩阵,即,每个时间序列能被建模为维度更小的潜在的,基础(或全局)时间序列的线性组合,因此可以在低维潜在空间中执行预测然后映射回输入(局部)空间。因此,这允许在建模大量变量序列的同时仍能捕获各变量间的关系。时间正则化矩阵分解(TRMF)对潜在时间序列施加时间正则化,因此它们是可预测的线性自回归模型。最近,DeepGLO扩展了这种方法,使得模型能进行非线性潜在空间预测。DeepGLO在线性矩阵分解和用于拟合潜在空间的TCN中迭代地选择,然后将来自该模型的预测作为协调因子带入单独训练的多任务单变量TCN模型。
但是,这种方法有几个关键限制。首先,它们无法通过转换来捕获变量之间的非线性关系,而这在许多领域中是常见的。例如,产品的销售或股票价格可能取决于相对价格(即价值比率,非线性关系)。第二,虽然DeepGLO引入了深度学习,但它不是端到端模型。由于分解被交替完成并且采用了启发式方法,因此使用了没有收敛保证的交替优化,因此该过程效率低下,可能找不到最佳解决方案。第三,他们无法提供概率输出(即,预测分布),这对于预测的实际使用至关重要。第四,它们仅限于在单个时间点使用固定线性变换来捕获变量之间的稳定关系,而变量之间的关系可能往往是不稳定的。
为了解决这些限制并扩展矩阵分解这一研究方向,我们提出了时间潜在的自编码器(TLAE)(参见图1),这使得输入序列的非线性变换能够与DNN时间潜在模型进行端到端的训练,以预测潜在时间模式,并同时隐式地推理联合预测分布。我们的主要贡献是:
- 我们使用了非线性分解,并通过用编码器和解码器神经网络替换它们,将线性映射扩展到非线性变换,即自编码器。此外,AutoEncoder可以使用时间模型(例如,RNN),因此embeddings可以随着时间的推移而发展(是非静态的)。
- 我们通过深度学习时间模型在潜在空间中引入时间正则化,该模型通过在损失函数引入潜在和输入空间的重构和预测误差,采用随机梯度下降来进行端到端训练。
- 我们通过在潜在预测解码之前注入潜在空间中的噪声来进行概率输出采样,因此该模型学会通过转换噪声来隐式建模时序列之间的联合预测分布,类似于变分自编码器(VAES)。与VAE不同,潜在平均值(潜在预测模型的输出)不受限制。
- 我们对多个多变量预测数据集进行了广泛的实验,无论是点预测还是概率预测,我们的模型与过去的全局分解方法以及其他预测方法相比,这展示了卓越的性能(第4节)。此外,我们还提供各种分析,包括超参数灵敏度的调整。
2.相关工作
神经网络在预测中具有悠久的应用历史,传统上主要集中在单变量预测的模型上。 在本节中,我们主要讨了除了在上节中提到的那些与深度学习相关工作的细节。有关传统方法的更多详情,请参阅 (Hyndman and Athanasopoulos 2018; Lutkepohl 2005; Durbin and Koopman 2012; Bauwens, Laurent, and Rombouts 2006)。我们在实验中与具有代表性的经典预测方法进行了比较,例如,VAR,ARIMA和状态空间模型(ETS)。
DNN模型预测的一种趋势是对序列序列进行归一化以解决不同的尺度和时间模式。例如,LSTNet使用具有卷积和循环层的DNN来作为线性AR模型进行拟合。一个流行的多任务单变量预测方法,DeepAR,通过其均值来缩放每个序列,并通过一个共享的RNN来拟合各种序列。另一个最近的单变量SOTA模型将TCN嵌入与Transformer架构结合起来。 虽然这些工作表现的很好,但如上所述,它们在使用中受到限制,因为它们不能建模序列间的依赖性。
TADA,DA-RNN和GeoMAN使用基于sequence-to-sequence工作的编码器 - 解码方法。然而,编码器-解码器不是自编码器,其被设计用于对外源变量进行分解,以进行多步单变量预测,无法建模多变量预测,并且不是概率化的。在 (Cirstea et al. 2018) 中使用了AutoEncoder,但仅用于在训练RNN之前进行单序列的预处理或去噪,因此没有考虑分解跨序列关系或计算概率结果,如我们的方法所示。
最近还提出了一些DNN模型来建模多元预测分布。一种低秩高斯Copula模型被提出,其使用一个多任务单变量LSTM来输出变换后的时间序列以及高斯协方差矩阵的对角和第秩因子。但是,受灵活性和其建模的分布,并且对秩的选择敏感,使其难以扩展到高维设置。一种深度因子生成式模型被提出,其使用了RNN建模全局因子以及参数化噪声建模局部序列分布。但是,这只能建模全局序列和特定噪声分布的线性组合,没有从局部到全局序列映射的简单方法,并且推理和学习的效率低下(有限的网络和可以实际使用的数据大小)。此外,一个同时期的工作使用一个标准化flow来建模概率预测:多变量RNN用于建模序列过程(单个大型多输出模型),通过标准化flow方法转换为输出联合分布。然而,flow的可逆性要求输入维度与隐藏维度相同,因此它无法缩放到大的时间序列。例如,它在所有序列中应用时间模型而不是在低维空间使用,因此对于RNN,它具有序列数量的二次复杂性,而我们的复杂度要低得多(如附录所示)。
3.问题定义及方法
Notation。一个多变量时间序列矩阵被表示为一个加粗的大写字母,单变量序列被表示为一个加粗的小写字母。给定一个向量 x \textbf x x,它的第 i i i个元素表示为 x i x_i xi。对于矩阵 X \textbf X X,我们使用 x i \textbf x_i xi作为矩阵的第 i i i列, x i , j x_{i,j} xi,j是矩阵的第 ( i , j ) (i,j) (i,j)个元素。 ∣ ∣ X ∣ ∣ l 2 ||\textbf X||_{l_2} ∣∣X∣∣l2是矩阵L2范数。 ∣ ∣ x ∣ ∣ l p ||\textbf x||_{l_p} ∣∣x∣∣lp是向量 x \textbf x x的 l p l_p lp范数,被定义为 ( ∑ i x i p ) 1 / p (\sum_ix^p_i)^{1/p} (∑ixip)1/p。给定一个矩阵 Y ∈ R n × T \textbf Y∈\mathbb R^{n×T} Y∈Rn×T, Y B \textbf Y_B YB被表示为具有列索引 B B B的 Y \textbf Y Y的一个子矩阵。对于一个集合 B \mathcal B B, ∣ B ∣ |\mathcal B| ∣B∣被视为该集合的基数。最后,给定函数 f f f和 g g g, f ∘ g f\circ g f∘g是复合函数,即 f ∘ g ( x ) = f ( g ( x ) ) f\circ g(\textbf x)= f(g(\textbf x)) f∘g(x)=f(g(x))。
Problem definition。将一系列高维多变量时间序列表示为 ( y 1 , . . . , y T ) (\textbf y_1,...,\textbf y_T) (y1,...,yT),其中在每个时间点 i i i的 y i \textbf y_i yi是一个维度 n n n的矢量。在这里,我们假设 n n n通常是很大的,例如, 1 0 3 10^3 103到 1 0 6 10^6 106数量级,甚至更多。给定一个历史观测序列 { y i } i = 1 T \{\textbf y_i\}^T_{i=1} {yi}i=1T,我们考虑预测未来 τ \tau τ个值 ( y T + 1 , . . . , y T + τ ) (\textbf y_{T+1},...,\textbf y_{T+\tau}) (yT+1,...,yT+τ)的问题。另外,一个更加困难但有趣的问题是建模高维向量的条件概率分布:
p ( y T + 1 , . . . , y T + τ ∣ y 1 : T ) = ∏ i = 1 τ ( y T + 1 ∣ y 1 : T + i − 1 ) . (1) p(\textbf y_{T+1},...,\textbf y_{T+\tau}|\textbf y_{1:T})=\prod^{\tau}_{i=1}(\textbf y_{T+1}|\textbf y_{1:T+i-1}).\tag{1} p(yT+1,...,yT+τ∣y1:T)=i=1∏τ(yT+1∣y1:T+i−1).(1)
该分解使概率预测转换为逐步预测的问题:时间 i i i的预测被输入到模型以预测时间 i + 1 i+1 i+1的值。接下来,我们描述在点预测中的关键贡献思想,然后将其扩展到概率预测。
3.1 Point prediction
3.1.1 Motivation
时间正则化矩阵分解(TRMF),将表示为矩阵 Y ∈ R n × T \textbf Y∈\mathbb R^{n×T} Y∈Rn×T的多变量时间序列分解成组件 F ∈ R n × d \textbf F\in \mathbb R^{n×d} F∈Rn×d和 X ∈ R d × T \textbf X∈\mathbb R^{d×T} X∈Rd×T,同时在 X \textbf X X上施加时间约束。矩阵 X X X用于继承原始序列的平滑性和季节性等时间结构。如果只需 X \textbf X X中的若干时间序列就可以表示 Y \textbf Y Y,则可以在更小的维度序列 X \textbf X X上执行高维序列 Y \textbf Y Y上的任务。在(yu,Rao和Dhillon 2016)中预测 Y \textbf Y Y的未来值被用预测潜在序列 X \textbf X X上的未来值这一更简单的任务替换,因此 Y \textbf Y Y的预测仅是 X \textbf X X值的加权组合,其中矩阵 F \textbf F F为定义的权重。
为了训练像RNN这样的时间DNN模型,数据按时间组成若干batch。将 Y B \textbf Y_B YB表示为包含 B B B个时间点的样本,即 Y B = [ y t , y t + 1 , . . . , y t + b − 1 ] \textbf Y_B=[\textbf y_t,\textbf y_{t+1},...,\textbf y_{t+b-1}] YB=[yt,yt+1,...,yt+b−1],其中 B = { t , . . . , t + b − 1 } B=\{t,...,t+b-1\} B={t,...,t+b−1} 是时间的索引。为了执行约束分解,(Yu, Rao, and Dhillon 2016)提出了如下解决方法:
m i n X , F , W L ( X , F , W ) = 1 ∣ B ∣ ∑ B ∈ B L B ( X B , F , W ) , (2) \mathop{min}\limits_{\textbf X,\textbf F,\textbf W}\mathcal L(\textbf X,\textbf F,\textbf W)=\frac{1}{|\mathcal B|}\sum_{B\in\mathcal B}\mathcal L_B(\textbf X_B,\textbf F,\textbf W),\tag{2} X,F,WminL(X,F,W)=∣B∣1B∈B∑LB(XB,F,W),(2)
其中 B \mathcal B B是所有数据的集合,并且损失函数 L B \mathcal L_B LB可以表示为:
L B ( X B , F , W ) = Δ 1 n b ∣ ∣ Y B − F X B ∣ ∣ l 2 2 + λ R ( X B ; W ) . (3) \mathcal L_B(\textbf X_B,\textbf F,\textbf W)\overset{\Delta}{=}\frac{1}{nb}||\textbf Y_B-\textbf F\textbf X_B||^2_{l_2}+\lambda\mathcal R(\textbf X_B;\textbf W).\tag{3} LB(XB,F,W)=Δnb1∣∣YB−FXB∣∣l22+λR(XB;W).(3)
上述式子中, R ( X B ; W ) \mathcal R(X_B;\textbf W) R(XB;W)是由 W \textbf W W参数化的对 X B \textbf X_B XB的正则化项,以强制构建潜在因子的某些属性, λ λ λ是正则化参数。为了施加时间约束,(Yu, Rao, and Dhillon 2016) 假设简单地指定 x l = ∑ j = 1 L W ( j ) x l − j \textbf x_l=\sum^L_{j=1}\textbf W^{(j)}x_{l-j} xl=∑j=1LW(j)xl−j为 X B \textbf X_B XB上的自回归模型,其中 L L L是预定义的延迟参数。然后,正则化项如下所示:
R ( X B ; W ) = Δ ∑ l = L + 1 b ∣ ∣ x l − ∑ j = 1 L W ( j ) x l − j ∣ ∣ l 2 2 . (4) \mathcal R(\textbf X_B;\textbf W)\overset{\Delta}{=}\sum^b_{l=L+1}\bigg |\bigg |\textbf x_l-\sum^L_{j=1}\textbf W^{(j)}\textbf x_{l-j}\bigg |\bigg |^2_{l_2}.\tag{4} R(XB;W)=Δl=L+1∑b∣∣∣∣∣∣∣∣xl−j=1∑LW(j)xl−j∣∣∣∣∣∣∣∣l22.(4)
通过对变量 X \textbf X X, F \textbf F F和 W \textbf W W的交替最小化来解决优化问题。
最近,(Sen, Yu, and Dhillon 2019)认为可以使用深度学习来解决同样的问题,该作者提出用时间卷积网络(TCN)取代自回归组件。他们的TCN-MF模型采用了以下正则化方式:
R ( X B ; W ) = Δ ∑ l = L + 1 b ∣ ∣ x l − T C N ( x l − L , . . . , x l − 1 ; W ) ∣ ∣ l 2 2 , (5) \mathcal R(\textbf X_B;\textbf W)\overset{\Delta}{=}\sum^b_{l=L+1}||\textbf x_l-TCN(\textbf x_{l-L},...,x_{l-1};\textbf W)||^2_{l_2},\tag{5} R(XB;W)=Δl=L+1∑b∣∣xl−TCN(xl−L,...,xl−1;W)∣∣l22,(5)
其中 W \textbf W W是TCN网络的参数集,通用执行交替最小化以进行优化。
(Sen, Yu, and Dhillon 2019) 还调查了将TCN-MF作为“全局”特征预测,进行多任务单变量时间序列预测。然而,如上所述, (Yu, Rao, and Dhillon 2016) 和 (Sen, Yu, and Dhillon 2019)的工作都有几个具有挑战的局限性。首先,由于矩阵分解的线性性质,并且模型假设各时间序列之间具有线性关系。这意味着模型将无法捕获非线性相关的序列(例如,一个序列与另一个成反比),其在实践中通常与全局时间模式分开发生。其次,这些使用交替最小化优化的实现需要充分训练,特别是当损失具有如(4)中的耦合项时。在 (Sen, Yu, and Dhillon 2019) 中,虽然简单的自回归模型被TCN取代,但该网络无法包含所有分解部件,使得反向传播无法端到端执行。因此,TCN-MF模型无法利用近期深度学习优化发展。这可以解释为什么与更简单的TRMF方法相比,TCN-MF的解有时是次优的。
3.1.2 Our model
在本文中,我们提出了一种克服这些弱点的新模型。我们观察到,如果 Y \textbf Y Y可以由 F \textbf F F和 X \textbf X X完全分解,则 X = F + Y \textbf X=\textbf F^+\textbf Y X=F+Y,其中 F + \textbf F^+ F+是 F \textbf F F的伪逆。这意味着 Y = F F + Y \textbf Y=\textbf F\textbf F^+\textbf Y Y=FF+Y。
现在,如果 F + \textbf F^+ F+可以由编码器替换, F \textbf F F可以由解码器替换,我们可以利用AutoEncoders的想法来寻求更强大的非线性分解。此时,潜在表示是输入的非线性转换,即 X = g ϕ ( Y ) \textbf X=g_{\phi}(\textbf Y) X=gϕ(Y),其中 g ϕ g_{\phi} gϕ是将y映射到 d d d维 X \textbf X X的编码器( g : R n → R d g:\mathbb R^n→\mathbb R^d g:Rn→Rd), ϕ \phi ϕ是编码器的参数集。编码器的非线性允许模型在潜在嵌入中表示数据的更复杂结构。 Y \textbf Y Y的重构输出是 Y ^ = f θ ( X ) \hat{\textbf Y}=f_θ(\textbf X) Y^=fθ(X),其中 f θ f_θ fθ是将 X \textbf X X返回到原始域的解码器( f : R d → R n f:\mathbb R^d→\mathbb R^n f:Rd→Rn), θ θ θ是与解码器相关联的参数集。
此外,我们在编码器和解码器之间引入了一个新的层,以捕获潜在表示的时间结构。主要思想如图1所示。在中间层中,使用LSTM网络来编码潜在变量的远距离依赖。该模型的流程如下:一个batch时间序列 Y B = [ y 1 , . . . , y b ] ∈ R n × b \textbf Y_B=[\textbf y_1,...,\textbf y_b]∈\mathbb R^{n×b} YB=[y1,...,yb]∈Rn×b被嵌入到潜在变量 X B = [ x 1 , . . . , x b ] ∈ R d × b X_B=[\textbf x_1,...,\textbf x_b]∈\mathbb R^{d×b} XB=[x1,...,xb]∈Rd×b,其中 d ≪ n d\ll n d≪n。这些有序序列 x i \textbf x_i xi被输入到LSTM以产生输出 x ^ l + 1 , . . . , x ^ b \hat{\textbf x}_{l+1},...,\hat{\textbf x}_b x^l+1,...,x^b,其中每个项按 x ^ i + 1 = h W ( x i − L + 1 , . . . , x i ) \hat{\textbf x}_{i+1}=h_{\textbf W}(\textbf x_{i-L+1},...,\textbf x_i) x^i+1=hW(xi−L+1,...,xi)计算,其中 h h h是映射函数,由参数为 W \textbf W W的LSTM网络构建。解码器以由变量 x 1 , . . . , x L \textbf x_1,...,\textbf x_L x1,...,xL和 x ^ L + 1 , . . . , x ^ b \hat {\textbf x}_{L+1},...,\hat{\textbf x}_b x^L+1,...,x^b组成的矩阵 X ^ B \hat {\textbf X}_B X^B作为输入,并产生矩阵 Y ^ B \hat{\textbf Y}_B Y^B。
如图所示,批量输出 Y ^ B \hat {\textbf Y}_B Y^B包含两个组件。第一个,由 i = 1 , . . . , L i=1,...,L i=1,...,L组成的序列 y ^ i \hat{\textbf y}_i y^i,是直接从编码器转移得到而不通过中间层,即 y ^ i = f θ ◦ g ϕ ( y i ) \hat {\textbf y}_i=f_θ◦g_{\phi}(\textbf y_i) y^i=fθ◦gϕ(yi),由 i = L + 1 , . . . , b i=L+1,...,b i=L+1,...,b组成的序列 y ^ i \hat{\textbf y}_i y^i,是以过去值为函数输入计算得到: y ^ i + 1 = f θ ◦ h W ◦ g ϕ ( y i − L + 1 , . . . , y i ) \hat{\textbf y}_{i+1}=f_θ◦h_{\textbf W}◦g_{\phi}(\textbf y_{i-L+1},...,\textbf y_i) y^i+1=fθ◦hW◦gϕ(yi−L+1,...,yi)。通过最小化误差 ∣ ∣ y i ^ − y i ∣ ∣ l p p ||\hat {\textbf y_i}-\textbf y_i||^p_{l_p} ∣∣yi^−yi∣∣lpp,可以第二个组件作为训练模型从观察到的历史中预测未来能力的数据,而第一组件需要忠于模型来重建数据。
因此,目标函数可以定义如下:
L B ( W , ϕ , θ ) = Δ 1 n b ∣ ∣ Y B − Y ^ B ∣ ∣ l p p + λ 1 d ( b − L ) ∑ i = L b − 1 ∣ ∣ x i + 1 − h W ( x i − L + 1 , . . . , x i ) ∣ ∣ l q q , (6) \begin{array}{cc} \mathcal L_B(\textbf W,\phi,\theta)\overset{\Delta}{=}\frac{1}{nb}||\textbf Y_B-\hat{\textbf Y}_B||^p_{l_p} \\ +\lambda\frac{1}{d(b-L)}\sum^{b-1}_{i=L}||\textbf x_{i+1}-h_{\textbf W}(\textbf x_{i-L+1},...,\textbf x_i)||^q_{l_q}, \end{array}\tag{6} LB(W,ϕ,θ)=Δnb1∣∣YB−Y^B∣∣lpp+λd(b−L)1∑i=Lb−1∣∣xi+1−hW(xi−L+1,...,xi)∣∣lqq,(6)
并且,总的损失函数为:
m i n W , ϕ , θ L ( W , ϕ , θ ) = 1 ∣ B ∣ ∑ B ∈ B L B ( W , ϕ , θ ) . (7) min_{\textbf W,\phi,\theta}\mathcal L(\textbf W,\phi,\theta)=\frac{1}{|\mathcal B|}\sum_{B\in \mathcal B}\mathcal L_{B}(\textbf W,\phi,\theta).\tag{7} minW,ϕ,θL(W,ϕ,θ)=∣B∣1B∈B∑LB(W,ϕ,θ).(7)
一方面,通过优化 Y ^ \hat {\textbf Y} Y^接近 Y \textbf Y Y,以期望模型能捕获跨时间序列的相关性,并将全局信息编码到隐藏变量 X \textbf X X中。另一方面,最小化 X ^ \hat{\textbf X} X^和 X \textbf X X之间的差异能允许模型捕获时间依存,并提供预测隐藏表示的能力。下面,我们提供了一些额外的观点:
- 虽然我们在这里使用LSTM,但是可以应用其他网络(例如,TCN或Transformer)。
- TRMF/TCN-MF与我们的方法之间的根本区别在于,在前面两种方式中,潜在变量是优化的一部分,并且被显示解决,而我们的方法中潜在变量由网络参数化,因此可以执行反向传播。
- 通过更简单的优化,我们的模型允许更灵活地选择 Y ^ \hat{\textbf Y} Y^和 X ^ \hat{\textbf X} X^上的损失类型。在实验中,我们发现在 Y ^ \hat {\textbf Y} Y^上的预测使用 L 1 L1 L1损失表现更好,而 X ^ \hat{\textbf X} X^上的预测两种损失都相差不大。由于已知 L 1 L1 L1损失对异常值更加强大,因此直接将其施加在 Y ^ \hat{\textbf Y} Y^上使模型更加适应潜在的异常值。
- 编码器/解码器本身可以使用时间DNN,因此可以捕获非静态关系。
一旦模型学习完成,就可以通过滚动窗口执行预测。给定过去的输入数据 [ y T − L + 1 , . . . , y T ] [\textbf y_{T-L+1},...,\textbf y_T] [yT−L+1,...,yT],学习好的模型生成潜在变量的预测 x ^ T + 1 = h W ( x T − L + 1 , . . . , x T ) \hat{\textbf x}_{T+1}=h_{\textbf W}(\textbf x_{T-L+1},...,\textbf x_T) x^T+1=hW(xT−L+1,...,xT),其中 x i = g ϕ ( y i ) \textbf x_i=g_{\phi}(\textbf y_i) xi=gϕ(yi)。然后从 x ^ t + 1 \hat {\textbf x}_{t+1} x^t+1解码出预测的 y ^ T + 1 \hat{\textbf y}_{T +1} y^T+1。可以顺序地重复上述过程 τ τ τ次(在潜在空间中),以预测 τ \tau τ个未来值。 请注意,与TRMF不同,该模型不需要在预测期间再次训练。
3.2 Probabilistic prediction
高维时间序列预测的一个很著名的挑战是如何基于观测历史来用概率建模未来值: p ( y T + 1 , . . . , y T + τ ∣ y 1 , . . . , y T ) p(\textbf y_{T+1},...,\textbf y_{T+\tau}|\textbf y_1,...,\textbf y_T) p(yT+1,...,yT+τ∣y1,...,yT)。大部分先前的工作要么只建模单时间序列,要么通过一个多元高斯分布来参数化高维序列的条件概率。但是,这些都是不方便的,因为可学习的参数(协方差矩阵)大小会随着数据维度的增加而呈二次增长。而最近的一些DNN方法使分布假设(例如低秩协方差)限制了灵活性或缺乏可扩展性(参见第2节)。
在本文中,与直接建模输入空间不同,我们提出将高维数据首先编码为低维嵌入,然后再在低维空间使用概率模型。通过从潜在分布中采样,并通过解码器将这些样本转换到高维来获得预测结果。如果编码器足够复杂,使得它可以捕获序列之间的非线性相关性,那么我们就可以在潜在变量上引入相当简单的概率结构,并且仍然能够通过解码器映射建模多变量数据的复杂分布。实际上,与图1中所提出的网络架构相同,我们建模:
p ( x i + 1 ∣ x 1 , . . . , x i ) = N ( x i + 1 ; µ i , σ i 2 ) , i = L , . . . , b . (8) p(\textbf x_{i+1}|\textbf x_1,...,\textbf x_i)=\mathcal N(\textbf x_{i+1};\textbf µ_i,\textbf σ^2_i),\quad i=L,...,b.\tag{8} p(xi+1∣x1,...,xi)=N(xi+1;µi,σi2),i=L,...,b.(8)
在这里,我们将潜在变量的条件分布建模成具有协方差对角矩阵且方差为 σ i 2 \textbf σ^2_i σi2的多元高斯分布。这是有意义的,因为它鼓励潜在变量捕获数据的不同正交模式,这使得模型的表示能力更强大,通用且可解释。均值 μ i \textbf μ_i μi和方差 σ i 2 \textbf σ^2_i σi2是历史观测序列 x 1 , . . . , x i \textbf x_1,...,\textbf x_i x1,...,xi的函数: μ i = h W ( 1 ) ( x 1 , . . . , x i ) \textbf μ_i=h^{(1)}_{\textbf W}(\textbf x_1,...,\textbf x_i) μi=hW(1)(x1,...,xi)和 σ i 2 = h W ( 2 ) ( x 1 , . . . , x i ) \textbf σ^2_i=h^{(2)}_{\textbf W}(\textbf x_1,...,\textbf x_i) σi2=hW(2)(x1,...,xi)。
关于数据 Y B \textbf Y_B YB的目标函数 L B ( ϕ , θ , W ) \mathcal L_B(\phi,θ,\textbf W) LB(ϕ,θ,W)被定义为重建损失和负对数似然损失的加权组合:
1 n b ∣ ∣ Y ^ B − Y B ∣ ∣ l p p − λ 1 b − L ∑ i = L + 1 b l o g N ( x i ; μ i , σ i 2 ) . (9) \frac{1}{nb}||\hat{\textbf Y}_B-\textbf Y_B||^p_{l_p}-\lambda\frac{1}{b-L}\sum^b_{i=L+1}log\mathcal N(\textbf x_i;\textbf μ_i,\textbf σ^2_i).\tag{9} nb1∣∣Y^B−YB∣∣lpp−λb−L1i=L+1∑blogN(xi;μi,σi2).(9)
这与变分自编码器(VAE)的损失相似,VAE使用数据重构损失和KL散度损失鼓励潜在分布拟合具有零均值和单位对角线协方差的标准多元高斯。与VAE不同,我们的模型在潜在空间中具有时间特征,并测量条件差异(即没有固定的均值约束)。此外,与鼓励拟合单位方差不同,我们固定潜在空间的单位方差,这有助于在训练期间帮助避免过拟合,即我们模型中设置 σ i 2 = 1 \textbf σ^2_i=1 σi2=1。与GAN一样,解码器学会将此噪声转换为任意分布(附录中的示例)。
对于从等式(8)中采样的样本 x ^ i + 1 \hat {\textbf x}_{i+1} x^i+1,过解码器后得到输出 y ^ i + 1 = f θ ( x ^ i + 1 ) \hat {\textbf y}_{i+1}=f_{\theta}(\hat {\textbf x}_{i+1}) y^i+1=fθ(x^i+1)。为了能够通过训练数据来反向传播梯度,我们利用了VAE中的重参数化技巧。即, x ^ i + 1 = μ i + 1 ϵ = h W ( 1 ) ( x 1 , . . . , x i ) + 1 ϵ , ϵ 〜 N ( 0 , 1 ) \hat{\textbf x}_{i+1}=\textbf μ_i+\textbf 1\epsilon=h^{(1)}_{\textbf W}(\textbf x_1,...,\textbf x_i)+\textbf 1\epsilon,\epsilon 〜\mathcal N(0,1) x^i+1=μi+1ϵ=hW(1)(x1,...,xi)+1ϵ,ϵ〜N(0,1)。
一旦模型学习完毕,就可以通过等式(8)得到潜在分布 x ^ T + 1 \hat {\textbf x}_{T+1} x^T+1,并解码得到预测结果 y ^ T + 1 \hat{\textbf y}_{T+1} y^T+1。以 x T − L + 1 , . . . , x T \textbf x_{T-L+1},...,\textbf x_T xT−L+1,...,xT和 x ^ T + 1 \hat{\textbf x}_{T+1} x^T+1的均值为条件,样本 x ^ T + 2 \hat{\textbf x}_{T+2} x^T+2同样可以通过等式(8)获得,并得到预测结果 y ^ T + 2 \hat{\textbf y}_{T+2} y^T+2。
Temporal Latent Auto-Encoder: A Method for Probabilistic Multivariate Time Series Forecasting翻译相关推荐
- ST-Norm: Spatial and Temporal Normalization for Multi-variate Time Series Forecasting(KDD2021)
ST-Norm: Spatial and Temporal Normalization for Multi-variate Time Series Forecasting(KDD2021) 多变量时间 ...
- Auto Encoder用于异常检测
对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...
- Masked Auto Encoder总结
Masked Auto Encoder总结 文章目录 Masked Auto Encoder总结 MAE简介 Random Mask random mask 逻辑 random mask 实现 Enc ...
- 自编码器(Auto Encoder)原理及其python实现
目录 一.原理 二.为什么要使用自编码器 三.代码实现 1.原始自编码器 2.多层(堆叠)自编码器 3.卷积自编码器 4.正则自编码器 4.1稀疏自编码器 四.降噪自编码器 五. 逐层贪婪训练堆叠自编 ...
- 2021李宏毅机器学习课程笔记——Auto Encoder
注:这个是笔者用于期末复习的一个简单笔记,因此难以做到全面详细,有疑问欢迎大家在评论区讨论 https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-d ...
- 堆叠降噪自动编码器 Stacked Denoising Auto Encoder(SDAE)
原文链接 自动编码器(Auto-Encoder,AE) 自动编码器(Auto-Encoder,AE)自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将输入复制到输出.自编码器内部有 ...
- Auto Encoder(AE),Denoising Auto Encoder(DAE), Variational Auto Encoder(VAE) 区别
文章主要内容参考李宏毅老师的机器学习课程:https://www.bilibili.com/video/BV1Wv411h7kN?p=70 Auto Encoder: 是什么?有什么用? Auto E ...
- 【人工智能概论】 变分自编码器(Variational Auto Encoder , VAE)
[人工智能概论] 变分自编码器(Variational Auto Encoder , VAE) 文章目录 [人工智能概论] 变分自编码器(Variational Auto Encoder , VAE) ...
- 【深度学习】李宏毅2021/2022春深度学习课程笔记 - Auto Encoder 自编码器 + PyTorch实战
文章目录 一.Basic Idea of Auto Encoder 1.1 Auto Encoder 结构 1.2 Auto Encoder 降维 1.3 Why Auto Encoder 1.4 D ...
最新文章
- GitHub Copilot 支持 IntelliJ IDEA啦,插件装起来!
- Android菜单—Menu
- 程序员面试题精选100题(61)-数对之差的最大值[算法]
- 鸿蒙安卓哪个app好,可以放下对华为鸿蒙的担忧了,操作和EMUI相似,能兼容安卓APP - 区块网...
- 东南亚下半年做什么产品好?解读Lazadashopee服装类热销及需求品类
- lua c语言混合编程入门
- Vue011_ 内置指令与自定义指令
- 阿里云OSS 上传文件SDK
- 用C#写 四舍五入函数(原理版)
- 谣言易碎:诺基亚为何不能投靠Android阵营?
- [转载]在instagram上面如何利用电脑来上传图片
- C Tricks(十一)—— 排除一个二维数组的边界
- 文件服务器minio
- java 200以内的素数_Java——200以内的质数
- 密度图与等高线图——Note_5
- 全球跨境电商平台有哪些?中国卖家占多少?
- 服务器心跳信号,服务器心跳线设置
- upx壳的一些简单脱壳,望大牛勿喷。
- 安卓平板倍速_推荐:安卓上本地音频播放器,可实现5秒快进快退和倍速播放...
- 我的秋招经验分享(内附校招交流群)