Predict, Refine, Synthesize: Self-Guiding Diffusion Models for Probabilistic Time Series Forecasting
**作者:**Marcel Kollovieh, Abdul Fatir Ansari, Michael Bohlke-Schneider, Jasper Zschiegner, Hao Wang, Yuyang Wang
**机构:**AWS AI Labs, 慕尼黑理工大学
**会议/期刊:**NIPS’ 23
链接:
摘要
在当前研究中,时序Diffusion Model主要集中在为特定预测或插补任务定制的条件模型上。本文将探索任务不可知的(Task-agnostic)无条件Diffusion Model在一些时序应用上的潜力。本文提出了TSDiff,一种无条件训练的时序Diffusion Model。该模型通过自引导机制,使得TSDiff能够在推理时为下游任务调节TSDiff,从而不需要辅助网络或更改训练过程。
本文在三个不同的时序任务上展示了方法的有效性:预测、细化(插值)、数据合成。首先,TSDiff在预测任务上能够与一些特定任务的条件预测模型匹敌。其次,TSDiff通过学习到的隐含概率密度来迭代式地对预测值进行Refine,从而减少了逆向过程的开销。最后,该模型的生成性能能够保持;下游预测其在TSDiff的合成数据上训练结果优于其使用SOTA的时序数据生成模型,甚至比在真实数据上训练要好。
简介
当前基于Diffusion Model的插补和预测模型都是条件生成模型,如预测模型是Condition到历史信息,生成未来数据,其忽略或者放弃了Diffusion Model的无条件生成能力。因此,本文提出使用无条件Diffusion Model处理多个、甚至是有条件的下游任务。本文提出了TSDiff,并采用两种推断模式来进行预测。TSDiff采用自引导方式进行Condition,不需要辅助网络。
首先,TSDiff在多个数据集和多个预测场景下,相对于针对特定任务的模型具有竞争力。
此外,通过将TSDiff学习的隐概率密度作为能量模型的先验,提出了一种迭代式细化预测结果的方法,以逆向扩散过程相比,能够有效降低开销。
最后,测试了生成能力,在下游预测器上训练并测试生成数据,结果比VAE及GAN好,甚至可能优于真实数据。为了评估生成能力,提出了LPS,其被定义为线性岭回归模型在合成样本上训练后的测试预测性能。TSDiff在LPS上优于其他生成模型。
本文贡献:
- 提出了TSDiff,一种无条件Diffusion Model,并且采用自引导机制在任意预测任务中对TSDiff进行调节。
- 提出了一种迭代模式,通过学习隐概率密度,用于细化基础预测器的预测结果。
- 实验显示在多种Benchmark和预测场景中,自引导与特定任务的条件模型有竞争力。
- 提出了LPS(Linear Predictive Score)指标,用于评估模拟数据的预测质量。
Diffusion
省略。
TSDiff
本文提出了两种TSDiff的推理模式:
- 自引导(Self-Guidance):通过对逆向过程中任意的时间步长进行Condition。
- 细化(Refine):使用TSDiff学习到的隐概率密度,迭代式地细化任意基础预测器的预测结果。
问题定义
设 y ∈ R L y\in\mathbb{R}^L y∈RL是长为 L L L的时间序列。 o b s ⊂ { 1 , … , L } obs\subset\{1,\dots,L\} obs⊂{1,…,L}是可观测的时间步, t a ta ta是目标时间步的补集。本文的目标是在给定 y o b s y_{obs} yobs的情况下,恢复整条时间序列 y y y,其中 y o b s y_{obs} yobs可能不连续,即对概率 p θ ( y t a ∣ y o b s ) p_\theta(y_{ta}|y_{obs}) pθ(yta∣yobs)进行建模。该设置将预测任务(包含或不包含缺失值)作为特殊情况包含在内。
本文的目标是训练一个无条件Diffusion Model, p θ ( y ) p_\theta(y) pθ(y),在推理时加入条件从任意分布 p θ ( y t a ∣ y o b s ) p_\theta(y_{ta}|y_{obs}) pθ(yta∣yobs)中获得样本。
生成式模型结构
首先,利用TSDiff对边缘概率 p θ ( y ) p_\theta(y) pθ(y)进行建模。其中TSDiff的模型结构如上。
TSDiff用于处理长度为 L L L的单变量数据并在通道维增加滞后时间序列。故输入模型的噪声为 x t ∈ R L × C x^t\in\mathbb{R}^{L\times C} xt∈RL×C,其中 C − 1 C-1 C−1为滞后数。S4层在时间维度上进行处理,Conv1×1在通道维度进行处理,从而促进两个维度的信息流。在经典的无条件Diffusion Model中,输出维度需要与输入维度一致。虽然本工作中关注的是单变量,但是TSDiff可以通过增加附加层来处理多变量时间序列任务,比如在S4层后再增加一个跨特征维的Transformer层。
自引导
设
t
≥
0
t\ge0
t≥0为任意扩散步,根据贝叶斯定理有:
p
θ
(
x
t
∣
y
o
b
s
)
∝
p
θ
(
y
o
b
s
∣
x
t
)
p
θ
(
x
t
)
p_\theta(x^t|y_{obs})\propto p_\theta(y_{obs}|x^t)p_\theta(x^t)
pθ(xt∣yobs)∝pθ(yobs∣xt)pθ(xt)
根据上式,则有:
∇
x
t
log
p
θ
(
x
t
∣
y
o
b
s
)
=
∇
x
t
log
p
θ
(
y
o
b
s
∣
x
t
)
+
∇
x
t
log
p
θ
(
x
t
)
\nabla_{x^t}\log p_\theta(x^t|y_{obs})=\nabla_{x^t}\log p_\theta(y_{obs}|x^t)+\nabla_{x^t}\log p_\theta(x^t)
∇xtlogpθ(xt∣yobs)=∇xtlogpθ(yobs∣xt)+∇xtlogpθ(xt)
在给定
p
θ
(
y
o
b
s
∣
x
t
)
p_\theta(y_{obs}|x^t)
pθ(yobs∣xt)的条件下,能够通过Diffusion逆向过程获得
p
θ
(
y
t
a
∣
y
o
b
s
)
p_\theta(y_{ta}|y_{obs})
pθ(yta∣yobs):
p
θ
(
x
t
−
1
∣
x
t
,
y
o
b
s
)
=
N
(
x
t
−
1
;
μ
θ
(
x
t
,
t
)
+
s
σ
t
2
∇
x
t
log
p
θ
(
y
o
b
s
∣
x
t
)
,
σ
t
2
I
)
p_\theta(x^{t-1}|x^t,y_{obs})=\mathcal{N}(x^{t-1};\mu_\theta(x^t,t)+s\sigma^2_t\nabla_{x^t}\log p_\theta(y_{obs}|x^t),\sigma^2_t\mathbf{I})
pθ(xt−1∣xt,yobs)=N(xt−1;μθ(xt,t)+sσt2∇xtlogpθ(yobs∣xt),σt2I)
其中参数
s
s
s用于控制
y
o
b
s
y_{obs}
yobs的强度与扩散时间序列中的相应时间步对齐。此处不使用辅助网络,转而使用两种不同的自引导机制,来引导分布。自引导的直觉来源是完整的序列应该近似符合部分序列。
均方自引导
将
p
θ
(
y
o
b
s
∣
x
t
)
p_\theta(y_{obs}|x^t)
pθ(yobs∣xt)建模为一个多变量高斯分布:
p
θ
(
y
o
b
s
∣
x
t
)
=
N
(
y
o
b
s
∣
f
θ
(
x
t
,
t
)
,
I
)
p_\theta(y_{obs}|x^t)=\mathcal{N}(y_{obs}|f_\theta(x^t,t),\mathbf{I})
pθ(yobs∣xt)=N(yobs∣fθ(xt,t),I)
其中,
f
θ
f_\theta
fθ需要给定时间序列
x
t
x^t
xt的条件下估计
y
y
y。通过去噪网络
ϵ
θ
\epsilon_\theta
ϵθ来估计
y
y
y:
y
^
=
f
θ
(
x
t
,
t
)
=
x
t
−
(
1
−
α
ˉ
t
)
ϵ
(
x
t
,
t
)
α
ˉ
t
\hat{y}=f_\theta(x^t,t)=\frac{x^t-\sqrt{(1-\bar{\alpha}_t)}\epsilon(x^t,t)}{\sqrt{\bar{\alpha}_t}}
y^=fθ(xt,t)=αˉtxt−(1−αˉt)ϵ(xt,t)
由于,该过程不需要辅助网络,最后使用MSE作为loss。
分位数自引导
概率预测通常使用基于分位数的指标来进行判断, 如CRPS。MSE只能确定平均均方差,而CRPS能够通过0到1的积分,将整个分布的分位数都考虑进去。这使得作者使用贝叶斯回归研究的非对称拉普拉斯分布取代高斯分布。非对称拉普拉斯分布的概率密度函数为:
p
θ
(
y
o
b
s
∣
x
t
)
=
1
Z
⋅
exp
(
−
1
b
max
{
κ
⋅
(
y
o
b
s
−
f
θ
(
x
t
,
t
)
)
,
(
κ
−
1
)
⋅
(
y
o
b
s
−
f
θ
(
x
t
,
t
)
)
}
)
p_\theta(y_{obs}|x^t)=\frac{1}{Z}\cdot \exp(-\frac{1}{b}\max\{\kappa\cdot(y_{obs}-f_\theta(x^t,t)),(\kappa-1)\cdot(y_{obs}-f_\theta(x^t,t))\})
pθ(yobs∣xt)=Z1⋅exp(−b1max{κ⋅(yobs−fθ(xt,t)),(κ−1)⋅(yobs−fθ(xt,t))})
其中,
Z
Z
Z是归一化常数,
b
>
0
b>0
b>0是缩放参数,
κ
∈
(
0
,
1
)
\kappa\in(0,1)
κ∈(0,1)是不对称参数。当设置
b
=
1
b=1
b=1时,有:
∇
x
t
log
p
θ
(
y
o
b
s
∣
x
t
)
=
∇
x
t
max
{
κ
⋅
(
y
o
b
s
−
f
θ
(
x
t
,
t
)
)
,
(
κ
−
1
)
⋅
(
y
o
b
s
−
f
θ
(
x
t
,
t
)
)
}
\nabla_{x^t}\log p_\theta(y_{obs}|x^t)=\nabla_{x^t}\max\{\kappa\cdot(y_{obs}-f_\theta(x^t,t)),(\kappa-1)\cdot(y_{obs}-f_\theta(x^t,t))\}
∇xtlogpθ(yobs∣xt)=∇xtmax{κ⋅(yobs−fθ(xt,t)),(κ−1)⋅(yobs−fθ(xt,t))}
κ
\kappa
κ是分位数级别。通过将上式代入贝叶斯公式求梯度后的结果,可以引导逆向过程到特定的分位数级别。实际使用时,采用多个分位数进行引导,生成更加多样化的预测结果(拟合多峰分布)。
预测细化
该部分介绍另一种用途,以完善基础预测器的预测结果。该方法与基础预测器的类型无关,仅假定有权访问其生成的预测。
与逆向扩散过程需要对所有隐变量进行顺序采样不同,细化直接在数据空间中进行。其能够在不修改预测的核心流程情况下,提高预测预测准确性。
基于能量函数的采样
该部分目标是对
p
(
y
t
a
∣
y
o
b
s
)
p(y_{ta}|y_{obs})
p(yta∣yobs)进行采样。
g
g
g是任意的基础预测器,
g
(
y
o
b
s
)
g(y_{obs})
g(yobs)是
g
g
g预测结果,其作为
p
(
y
t
a
∣
y
o
b
s
)
p(y_{ta}|y_{obs})
p(yta∣yobs)的初始样本。为了改善该初始样本,本文将预测细化问题建模为正则化能量模型EBM:
E
θ
(
y
;
y
~
)
=
−
log
p
θ
(
y
)
+
λ
R
(
y
,
y
~
)
E_\theta(y;\tilde{y})=-\log p_\theta(y)+\lambda\mathcal{R}(y,\tilde{y})
Eθ(y;y~)=−logpθ(y)+λR(y,y~)
其中
y
~
\tilde{y}
y~是
g
(
y
o
b
s
)
g(y_{obs})
g(yobs)预测的时间序列,
R
\mathcal{R}
R是正则化器,如MSE或分位数Loss。本文设计的能量函数使低能量被分配给Diffusion Model产生的样本
p
θ
(
y
)
p_\theta(y)
pθ(y),并通过log似然和正则化项使得其接近
y
~
\tilde{y}
y~。其中拉格朗日乘子
λ
\lambda
λ被用于控制正则化强度,实验中设置为1。
本文使用郎之万蒙特卡洛从EBM中进行采样。
y
(
0
)
y_{(0)}
y(0)被初始化为
y
~
\tilde{y}
y~并将被按照以下式子细化:
y
(
i
+
1
)
=
y
(
i
)
−
η
∇
y
(
i
)
E
θ
(
y
(
i
)
;
y
~
)
+
2
η
γ
ξ
i
a
n
d
ξ
i
∼
N
(
0
,
I
)
y_{(i+1)}=y_{(i)}-\eta\nabla_{y_{(i)}}E_\theta(y_{(i)};\tilde{y})+\sqrt{2\eta\gamma}\xi_i\ \ and\ \ \xi_i\sim\mathcal{N}(0,\mathbf{I})
y(i+1)=y(i)−η∇y(i)Eθ(y(i);y~)+2ηγξi and ξi∼N(0,I)
其中,
η
\eta
η和
γ
\gamma
γ分别是步长和噪声缩放参数。
与自引导相比,细化直接从数据空间中细化了时间序列,该过程中需要一个来自基础预测器的初始预测。而与自引导相同的是,这个方法不需要对训练过程进行任何修改就能应用到任何已经训练过的Diffusion Model中。
最大化似然
EBM的定义式还可以视为一个正则最优化问题,其目标是在可观测时间步上,寻找满足约束的最可能的时间序列:
arg
min
y
[
−
log
p
θ
(
y
)
+
γ
R
(
y
,
y
~
)
]
\arg\min_y[-\log p_\theta(y)+\gamma\mathcal{R}(y,\tilde{y})]
argymin[−logpθ(y)+γR(y,y~)]
由于该目标的非凸性,不能保证其能够收敛到全局最优。因此,起始的
y
(
0
)
y_{(0)}
y(0)会影响结果序列。
log p θ ( y ) \log p_\theta(y) logpθ(y)的近似
为了近似对数似然
log
p
θ
(
y
)
\log p_\theta(y)
logpθ(y),本文使用了以下目标用于训练Diffusion Model:
log
p
θ
(
y
)
≈
−
E
ϵ
,
t
[
∣
∣
ϵ
θ
(
x
t
,
t
)
−
ϵ
∣
∣
2
]
\log p_\theta(y)\approx -\mathbb{E}_{\epsilon,t}[||\epsilon_\theta(x^t,t)-\epsilon||^2]
logpθ(y)≈−Eϵ,t[∣∣ϵθ(xt,t)−ϵ∣∣2]
其是对ELBO的简化。但是一个好的估计需要许多的扩散步采样,从而导致计算量的增加和推理速度的下降。为了加速推理,本文仅使用一个扩散步近似上式。本文没有对
t
t
t进行随机采样,二十使用代表性的时间步
τ
\tau
τ来提升细化的稳定性。其公式如下:
KaTeX parse error: Got function '\tilde' with no arguments as subscript at position 16: \tau=\arg\min_\̲t̲i̲l̲d̲e̲{t}(\mathbb{E}_…
代表性时间步每个数据集仅计算一次即可。通过随机采样并计算各扩散时间步上的损失,找到最接近平均损失的扩散步即可。或者,也可以在训练时保存每个扩散时间步的平均loss,用这些平均loss选择具有代表性的扩散步。这样做更加高效,因为用于获得
τ
\tau
τ的loss也是Diffusion Model的训练loss。
实验
本文目标是评估无条件时间序列扩散模型能否用于需要条件的下游任务。
数据与指标
本文在不同领域的八个单变量数据集进行了实验,包括Solar、Electricity、Traffic、Exchange、M4、UberTLC、KDDCup、Wikipedia。
实验使用的指标为CRPS,采用100个样本路径的归一化平均分位数损失来估计CRPS,通过独立的三轮获得均值和方差。
基于自引导的预测
该实验在所提出的两种自引导变体上进行了性能测试,包括MSE引导和分位数引导。本实验并未寻求获得SOTA,而是展现无条件Diffusion Model与特定任务条件模型的性能比较。
结果显示TSDiff-Q与已有的SOTA条件模型具有竞争性,并且不需要针对任务进行特定训练,就能在5/8的数据集上获得最低或次低的CRPS。
此外,引导条件的选择也是重要的。在使用高斯分布(TSDiff-MS)生成合理结果的同时,用非对称的拉普拉斯分布(TSDiff-Q)进一步降低CPRS。本文假设考虑使用不同的分位数水平能够改善CRPS结果。由于自引导仅对观测到的时间步进行软约束,因此无法保证所得扩散值与这些时间步的观测相匹配。预测和观测间的对齐可通过调整 s s s在进行。实际中,观测到的扩散值与选择的 s s s值接近。
缺失值下的预测
实验还评估了推理过程中历史序列存在缺失值的情况。包括三种缺失模式:
- 随机缺失(Random missing, RM)
- 起始块缺失(Blockout Missing at the beginning of the context window, BM-B)
- 终止块缺失(Blockout Missing at the end of the context window, BM-E)
推理过程中,mask了各缺失模式下50%的上下文窗口并保持预测长度不变。其对各数据集训练一次且不对目标函数进行修改。为了对比,训练了针对目标缺失场景下的条件模型TSDiff-Cond。
上表结果表明TSDiff-Q与特定任务的条件模型相比具有竞争力。这使得TSDiff-Q在真实世界的应用中特别有用,在这些应用中,丢失值很常见,但丢失情况事先并不知道。
细化预测结果
本文评估了TSDiff通过学习到的隐概率密度来细化基础预测器的预测结果。本文考虑了两种点预测器(Seasonal Naive、Linear)、两种概率预测器(DeepAR、Transformer)作为基础。本文采用20个扩散步来从获得预测结果中进行细化。与自引导相同,将高斯和非对称拉普拉斯负对数似然作为正则化项 R \mathcal{R} R进行细化,此外,还使用了基于最大化似然的方法进行了细化。
其中至少有一种方法降低了基础预测器的CRPS
EBM方法在点预测器中,基本优于基于最大化似然的方法。这可能优于LMC中的加性噪音激励了对能量的瘫坐,从而改善了对初始点预测的扩散。而ML-Q细化方法则在概率预测模型中优于EBM方法,可能是由于初始预测的概率性质,对这些模型不是必须的。
细化的开销虽然比自引导低,但其表现取决于所选择基础预测器,能够极大提高简单点预测器及概率预测器的性能。
生成数据训练下游模型
本文通过在下游模型上使用生成样本数据进行训练,评估了生成样本的质量。实验在合成样本上训练下游模型,并在真实数据上进行评估。由于结果取决于模型结构、初始化,甚至是深度学习库,故本文提出了线性预测评分(LPS)来解决这些问题。
LPS被定义为在合成样本上训练线性岭回归模型的测试CRPS。岭回归模型是标准机器学习库(如SCRICIT-LEARN)中提供的一种简单的标准模型,可以有效地衡量合成样本的预测质量。此外,岭回归模型的拟合成本很低,它可以获得解析解,消除了初始化和训练带来的方差。
实验比较了TSDiff、TimeGAN和TimeVAE生成的样本,并训练了Linear、DeepAR和Transformer几种下游模型。结果显示,TSDiff在LPS指标下显著优于TimeVAE和TimeGAN,展示了出色的预测质量。DeepAR中TSDiff也在大多数数据集中取得最优。值得注意的是,在真实数据集上训练的预测器具有访问时间特征和滞后项的优势,这些特征和滞后项远远超出TSDiff建模的序列长度。