论文笔记:CSDI: Conditional Score-based Diffusion Models for Probabilistic Time Series Imputation
1. 利用CSDI进行时间序列插补的过程
条件扩散模型的逆过程
p
θ
p_θ
pθ以观测值
x
0
c
o
x^{co}_0
x0co作为条件输入(不同于现有的基于分数的扩散模型,允许模型利用观测值中的信息进行去噪),从图上最左边的随机噪声开始填充,逐步将噪声转化为似真的时间序列。在每一步
t
t
t中,逆过程从上一步(即
t
+
1
t+1
t+1)的输出中去除噪声。图中每个方框里的虚线表示观测值,实线表示生成的填充,观测值不包含在每个
x
t
t
a
x^{ta}_t
xtta中。
训练条件扩散模型需要观测值(即条件信息)和缺失值的真值(即填充目标)。但在实际应用中,我们并不知道真实的缺失值,或者训练数据可能根本不包含缺失值。受屏蔽语言建模的启发,作者开发了一种自监督训练方法,将观测值分离为条件信息和填充目标。
注意:CSDI是针对一般填补任务制定的,并不局限于时间序列的填补。
2. 背景知识
2.1 多元时间序列的插补
概率时间序列插补是利用X的观测值来估计X的缺失值分布的任务。这种填补的定义包括其他相关的任务,例如插值,它填补目标时间点上的所有特征,以及预测,它填补未来时间点上的所有特征。
2.3 使用扩散模型的插补
注:这里关注的是一般的插补任务,而不局限于时间序列插补。
给定一个包含缺失值的样本 x 0 x_0 x0,利用条件观测值 x 0 c o ∈ χ c o x^{co}_0∈\chi^{co} x0co∈χco生成填补目标 x 0 t a ∈ χ t a x^{ta}_0∈\chi^{ta} x0ta∈χta,其中 χ t a \chi^{ta} χta和 χ c o \chi^{co} χco是样本空间 χ \chi χ的一部分,且每个样本都不同。
这样,概率填补的目标变为用模型分布
p
θ
(
x
0
t
a
∣
x
0
c
o
)
p_θ (x^{ta}_0|x^{co}_0)
pθ(x0ta∣x0co)来估计真实的条件数据分布
q
(
x
0
t
a
∣
x
0
c
o
)
q( x^{ta}_0|x^{co}_0)
q(x0ta∣x0co)。使用扩散模型建模
p
θ
(
x
0
t
a
∣
x
0
c
o
)
p_θ (x^{ta}_0|x^{co}_0)
pθ(x0ta∣x0co)的公式为:
以前的研究用普通的反向过程近似条件反向过程
p
θ
(
x
t
−
1
t
a
∣
x
t
t
a
,
x
0
c
o
)
p_θ (x^{ta}_{t-1}|x^{ta}_t,x^{co}_0)
pθ(xt−1ta∣xtta,x0co),它们在反向过程中会同时给目标和条件观测值
x
0
c
o
x^{co}_0
x0co添加噪声。这种方法虽然能填补缺失值,但增加的噪声会损害观测值中的有用信息。
对 p θ ( x t − 1 t a ∣ x t t a , x 0 c o ) p_θ (x^{ta}_{t-1}|x^{ta}_t,x^{co}_0) pθ(xt−1ta∣xtta,x0co)进行无近似建模可以提高插补质量!
3. CSDI
3.1 基于CSDI的插补——条件反向过程
将DDPM反向过程中使用的参数扩展到条件反向过程:
-
定义以条件观测值 x 0 c o x^{co}_0 x0co做输入的条件去噪函数:
-
然后定义:
这样给定 ϵ θ \epsilon_\theta ϵθ和 x 0 x_0 x0,即可使用条件反向过程采样 x 0 t a x_0^{ta} x0ta。
3.2 CSDI的训练
除函数
ϵ
θ
\epsilon_\theta
ϵθ的形式不同外,条件反向过程中
μ
θ
\mu_\theta
μθ和
σ
θ
\sigma_\theta
σθ的定义与DDPM反向过程中的完全一致。这样CSDI的训练过程可仿照DDPM的训练过程设置:
但在实际应用中一般不知道缺失值的真实值,因此训练时怎样从样本
x
0
x_0
x0中选出要给定的
x
0
c
o
x^{co}_0
x0co和
x
0
t
a
x^{ta}_0
x0ta并不清楚。为解决这个问题,作者提出了一种受屏蔽语言建模启发的自监督学习方法,训练过程如下:
-
给定一个样本 x 0 x_0 x0,通过一个目标选择策略从 x 0 x_0 x0的观测值(矩形绿色部分)中选出一部分作为填补目标 x 0 t a x^{ta}_0 x0ta(矩形红条纹部分),另一部分作为条件观测值 x 0 c o x^{co}_0 x0co(矩形蓝色部分)。
-
然后,对含噪目标 x t t a x^{ta}_t xtta进行采样,并通过求解方程(7)训练函数 ϵ θ \epsilon_\theta ϵθ。
最后,训练和采样过程中 x 0 c o x^{co}_0 x0co和 x 0 t a x^{ta}_0 x0ta的设置总结如下:
- 训练过程中,条件观测值 x 0 c o x^{co}_0 x0co和填补目标 x 0 t a x^{ta}_0 x0ta均来自 x 0 x_0 x0的观测值且二者互补,即训练中所用到的数据均为 x 0 x_0 x0中可知的数据,不涉及它的缺失部分
- 采样过程中,将
x
0
x_0
x0的所有观测值设为条件观测值
x
0
c
o
x^{co}_0
x0co,所有缺失值设为填补目标
x
0
t
a
x^{ta}_0
x0ta
CSDI的训练和采样算法:
3.3 自监督学习方法中的目标选择策略
根据对测试集中缺失模式的了解情况,提供了四种目标选择策略:
-
随机策略:用于不知道缺失模式的情况,随机选择一定比例的观测值作为填补目标。该比例从[0%,100%]中选取,以适应测试集中的各种缺失比例。
-
历史策略:利用训练集中的缺失模式:给定一个训练样本 x 0 x_0 x0,从训练集中随机抽取另一个样本 x ~ 0 \tilde{x}_0 x~0。然后将 x 0 x_0 x0的观测项与 x ~ 0 \tilde{x}_0 x~0的缺失项的交集作为填补目标。
3. 混合策略:是随机策略和历史策略的混合。历史策略可能会导致对训练集中缺失模式的过拟合;混合策略可以从随机策略的泛化和历史策略的结构化缺失模式中获益。
-
测试模式策略:当知道测试集中缺失的模式时,只把这些模式作为填充目标。例如,该策略用于时间序列预测,因为测试集中的缺失模式被固定为给定的未来时间点。
4. 用于时间序列插补的CSDI模型实现
4.1 将时间序列数据处理为CSDI的输入
一个时间序列记为 { X , M , s } \{\mathbf{X},\mathbf{M},\mathbf{s}\} {X,M,s}, X \mathbf{X} X的样本空间 χ \chi χ是 R K × L \mathbb{R}^{K×L} RK×L。我们希望在样本空间 R K × L \mathbb{R}^{K×L} RK×L中处理 X \mathbf{X} X,但条件去噪函数 ϵ θ \epsilon_\theta ϵθ会在不同的样本空间中取得输入 x 0 c o x^{co}_0 x0co和 x t t a x^{ta}_t xtta,这些样本空间是 χ \chi χ的一部分。
为解决这个问题,实现中会将
ϵ
θ
\epsilon_\theta
ϵθ的输入固定到样本空间
R
K
×
L
\mathbb{R}^{K×L}
RK×L中,即通过对输入
x
0
c
o
x^{co}_0
x0co和
x
t
t
a
x^{ta}_t
xtta进行补零操作(将图上
x
0
c
o
x^{co}_0
x0co和
x
t
t
a
x^{ta}_t
xtta中的白色区域的对应值置0)来固定其形状为
(
K
×
L
)
(K × L)
(K×L)。
为说明哪些项是填充的,需要引入**与条件观测
x
0
c
o
x^{co}_0
x0co对应的条件掩码
m
c
o
∈
{
0
,
1
}
K
×
L
\mathbf{m}^{co}∈\{0,1\}^{K × L}
mco∈{0,1}K×L**作为
ϵ
θ
\epsilon_\theta
ϵθ的一个额外输入。 同时为了便于处理,我们也会通过补零操作将输出形状固定到样本空间
R
K
×
L
\mathbb{R}^{K×L}
RK×L中。
这样,条件去噪函数
ϵ
θ
(
x
t
t
a
,
t
∣
x
0
c
o
,
m
c
o
)
\epsilon_\theta(x^{ta}_t,t|x^{co}_0,\mathbf{m}^{co})
ϵθ(xtta,t∣x0co,mco)可以写为:
在此调整下,我们按照Table 1设置条件观测值 x 0 c o x^{co}_0 x0co和插补目标 x 0 t a x^{ta}_0 x0ta进行时间序列插补:
- 采样时,由于条件观测值 x 0 c o x^{co}_0 x0co是全部的观测值,所以令 m c o = M , x 0 c o = m c o ⊙ X \mathbf{m}^{co}=\mathbf{M}, x^{co}_0=\mathbf{m}^{co}\odot\mathbf{X} mco=M,x0co=mco⊙X
- 训练过程中,我们通过目标选择策略从样本观测值中得到
x
0
c
o
x^{co}_0
x0co和
x
0
t
a
x^{ta}_0
x0ta,并构造条件掩码
m
c
o
\mathbf{m}^{co}
mco,令
m
c
o
\mathbf{m}^{co}
mco中与
x
0
c
o
x^{co}_0
x0co位置对应的项为1,其余项为0;然后令
x
0
c
o
=
m
c
o
⊙
X
,
x
0
t
a
=
(
M
−
m
c
o
)
⊙
X
x^{co}_0=\mathbf{m}^{co}\odot\mathbf{X},x^{ta}_0=(\mathbf{M}-\mathbf{m}^{co})\odot\mathbf{X}
x0co=mco⊙X,x0ta=(M−mco)⊙X
4.2 CSDI中的条件去噪模型 ϵ θ \epsilon_\theta ϵθ
条件去噪模型 ϵ θ \epsilon_\theta ϵθ以DiffWave架构为基础(可参见论文笔记:DiffWave),设定扩散步长T = 50。
模型会对output额外乘以
(
1
−
m
c
o
)
(1-\mathbf{m}^{co})
(1−mco),来屏蔽output中条件观测值
x
0
c
o
x^{co}_0
x0co对应的项(图右下方)。
4.2.1 Side information
除了函数 ϵ θ \epsilon_\theta ϵθ的必要参数外,作者还提供了一些Side information作为模型的额外输入。
- 使用
s
=
{
s
1
:
L
}
\mathbf{s}=\{s_{1:L}\}
s={s1:L}的时间嵌入学习时间依赖关系,沿用前人的研究采用128维的时间嵌入,其中
τ
=
10000
\tau=10000
τ=10000
- 对K个特征进行分类特征嵌入,维度为16。
模型对每个Side information进行了扩展,并将所有Side information进行了拼接(图右上方)。
4.2.2 注意力机制
为捕获多元时间序列的时间依赖和特征依赖,模型在每个残差层使用了二维注意力机制,而不是卷积结构。
模型引入了时序Transformer层和特征Transformer层,它们是1层的Transformer编码器,由多头注意力层、全连接层和层归一化组成。
-
时序Transformer层将每个特征的张量作为输入学习时序依赖关系
-
特征Transformer层将每个时间点的张量作为输入学习时序依赖关系。
5. 实验
5.1 时间序列填补
- 与现有的概率填补方法相比,CSDI在医疗和环境数据上将连续排序概率得分(CRPS)提高了40-65%。
- 与现有的确定性填补方法相比,基于CSDI的确定性填补方法将平均绝对误差(MAE)降低了5-20%。
5.2 时间序列插值和概率预测
CSDI也可以应用于时间序列插值和概率预测,并且相比于为这些任务设计的现有基线具有竞争力。
6. 展望
-
可尝试利用ODE求解器来提升计算效率
-
可尝试将CSDI扩展到分类等下游任务
条件扩散模型可以学习具有不确定性的时间和特征依赖关系,使用条件扩散模型对填充和下游任务进行联合训练将有助于提高下游任务的性能。
-
可以将CSDI作为其他模态的填补技术进行探讨。