赶上最新的AI论文

真实世界时间序列数据的生成模型

生成对抗网络(GAN)

三个要点
✔️提出一个时间序列数据的生成模型
✔️该模型不需要对AE-GAN进行微调
✔️即使存在缺失的数据,也可以通过解码器中的观察嵌入和决策及生成算法来生成数据。

Towards Generating Real-World Time Series Data
written by Hengzhi PeiKan RenYuqing YangChang LiuTao QinDongsheng Li
(Submitted on 16 Nov 2021)
Comments: 
Accepted in 21th IEEE International Conference on Data Mining (ICDM 2021)
Subjects: Machine Learning (cs.LG); Artificial Intelligence (cs.AI)

code:  

本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的 。

简介

由传感器记录的时间序列数据将在医疗保健、农业、制造业和许多其他部门变得无处不在。 然而,这些数据大部分是敏感的,在使用时可能会引起隐私和可访问性问题,例如在病人记录中。 最近,为后续机器学习任务等应用生成合成数据已成为有前途的解决方案之一。 虽然没有理论上的保证,但最近的研究表明,生成的数据对成员推理攻击、病人的重新识别等具有弹性。更重要的是,生成的数据往往比匿名/扰乱的方法更有用。

真实的时间序列数据的生成是一个具有挑战性的问题。 一个好的生成模型不仅应该捕捉每个时间点上的多维分布,而且还应该捕捉随时间变化的时间动态。 此外,合成时间序列需要反映相应的全局特征,如年龄等静态特征,或感兴趣的标签,如临床数据的死亡率。 随着生成对抗网络(GANs)及其变体最近的成功,通过应用循环神经网络(RNNs)来扩展生成时间序列数据的GAN框架是很自然的。 生成器和判别器,按照这个范式,已经提出了几个作品来解决生成时间序列数据的问题。 然而,这些工作通常针对的是生成简单和正确格式化的时间序列数据,可能并不适用于生成真实的时间序列数据,这一点在经验研究中得到了证明。

不完整的现实世界时间序列数据给数据生成算法带来了新的挑战。 1) 长度可变的长序列:现实世界的时间序列数据很长,长度可变,在某些情况下可能很重要。例如,生存分析。然而,许多现有的方法只在短的固定长度的时间序列上进行了评估,它们在长的可变长度的时间序列上的性能仍然没有得到探索。 2)缺失值:缺失值在实际时间序列数据中非常常见。图1显示了一个用于预测死亡率的临床数据的例子。这些缺失的数值可能是有信息的。例如,临床数据的缺失值可能反映了病人的情况和医生的决定。而且,越来越多的研究集中在利用缺失模式来提高预测性能。然而,据我们所知,现有的研究都没有研究过使用信息性缺失值来生成时间序列。

在本文中,我们提出了一个新颖的生成框架,即真实世界时间序列生成对抗网络(RTSGAN),以解决上述挑战。 RTSGAN由两个主要部分组成:1)编码器-解码器模块,将每个时间序列实例编码为一个固定维度的潜向量,并通过自动编码器学习从潜向量重建整个时间序列。 (2) 生成器模块:WassersteinGAN(WGAN),它被训练成在与上述自动编码器相同的潜伏空间中生成向量。通过使用一个生成器和一个解码器,RTSGAN能够生成真实世界的时间序列数据,尊重原始特征分布和时间动态。为了更充分地处理有益的遗漏问题,RTSGAN被扩展为RTSGAN-M。提出了观察嵌入来丰富每个时间步骤的信息,还提出了一个新的决策和生成解码器,首先确定时间和缺失模式。在下一步中,根据局部和全局的依赖关系,产生相应的功能值。 对四个真实世界的时间序列数据集的实证研究表明,所提出的框架产生的合成数据不仅看起来更 "真实",而且对下游机器学习任务的 "训练合成,测试真实世界 "更有用。

本文的主要贡献有以下几点

-为了解决现实世界时间序列数据带来的挑战,我们提出了一个新的时间序列数据生成框架,名为RTSGAN。

-据我们所知,这是第一个研究具有缺失值的时间序列生成问题的研究,并提出了RTSGAN-M观测嵌入和新的决策和生成解码器,以实现更好的生成性能。

-在四个真实世界的数据集上进行了详细的实验,这些数据集包含完整的固定长度和不完整的可变长度的时间序列,并使用RTSGAN来执行下游分类和预测任务在使用合成数据方面,RTSGAN比SOTA的方法要好。

问题设置

一般来说,时间序列数据的每个实例都是由两种主要的特征值组成。动态特征值(随时间变化,如单个病人的心率)和全局特征值(包括静态特征,如年龄,和全局属性的观察序列,例如,我们感兴趣的标签)。动态和全局特征值都是连续值或分类变量。我们用(X,y)表示时间序列训练集D的一个实例。其中$ X =(x1, ...(x1, ...,xl) ∈R^{l×d}_x $代表一个维度为dx的多变量时间序列,包含l个观测变量。 y∈$ R^{d_y} $代表时间序列的全局特征。在实践中,时间序列数据可能是不完整的。也就是说,时间序列数据中的缺失值一般都可能发生在动态和全局特征值上,如图1所示。为了表述这个问题,我们把每个实例表示为$(X, y, M^{(x)}, m^{(y)}) $。 引入一个M(x)∈Rl×K的掩码矩阵来表示K个动态特征的缺失值。这里,$M^{(x)}_{i, j}=1$,如果第j个特征在第i个观测中被观测到,则为0。同样地,$M(y)代表缺失的全局特征值。这项工作的目的是利用训练集D来学习数据分布,并生成一个具有真实外观和高实用性的合成数据集$ hat{D} $。下游的机器学习任务,如分类和序列预测,可以在合成数据集$ hat{D} $上进行,所得的下游模型与在D上训练的模型相比,性能相似。

RTSGAN方法

RTSGAN的架构如图2所示,由两个关键模块组成

编码器-解码器模块

时间序列数据首先用自动编码器进行训练,然后在一个固定长度的潜空间中进行编码。这些尺寸是序列长度的不变量。

生成模块

训练完编码器-解码器模块后,WGAN (WassersteinGAN)框架被应用于对潜在空间进行生成式建模。生成器输出一个合成的潜意识表征。

为了生成一个时间序列,合成潜伏向量只需要从发生器输入到解码器。

以前基于GAN的方法需要在特征值空间或潜在空间中识别一个向量序列。另一方面,RTSGAN只识别一个潜在的向量。随着时间序列数据的复杂性增加,RTSGAN使人们更容易理解原始数据结构。

A. 具有完整时间序列的RTSGAN

编码器-解码器模块

该模块由一个将输入序列编码为潜伏向量的编码器和一个从潜伏向量重建输入序列的解码器组成。 在输入到自动编码器之前,所有的函数都被转换为[0, 1],连续函数使用最小-最大比例,分类函数使用一热编码。

编码器

与TimeGAN编码器不同的是,它将每个时间序列编码为一个潜在向量序列,这里的编码器旨在将每个时间序列编码为一个紧凑的表示,其尺寸与序列的长度无关。首先,在每一步,全局特征值y与动态特征值xi串联为ei =[xi, y],然后将其送入N层门控回归单元(GRU),其隐藏维度为DAE,并且每个GRU层中的步骤i n获得每个人的隐藏状态$ h^n_i $。

为了更好地理解时间序列的时间动态和全球属性,来自GRU最后一层的隐藏状态$ h^N_i $以进一步应用池化操作来增强表示,如下所示

这里,FC表示完全耦合层,它将汇集的结果汇总到空间$R^{dAE}$,其中LeakyReLU被用作激活函数。接下来,全局信息s和最后一个隐藏状态被串联起来,得到潜在的表示r∈R。

解码器

解码器旨在从潜伏表示r中重建整个时间序列。这包括两个步骤

1) 首先,通过一个全连接层,全局特征值$ hat{y} $被重构了。(2) 接下来,我们通过GRU重构动态特征值$ h^n_l $。全局特征值$ hat{y} $的重建方法如下

在Act函数中,softmax被用于分类特征值和对于连续的特征值,它应用一个sigmoid为连续特征值。接下来,我们重构动态特征值。动态特征值的解码器是另一个具有隐藏维度DAE的N层GRU,将$h^n_l $作为初始隐藏状态$hˆn_0 $。重建过程是每个p(xi | x1...i-1, y)如下所示自回归的目的是为了建立模型

自回归过程开始时的初始输入是$ /hat{e}ˆ1 $ = [0, s]。为了处理可变长度的时间序列,我们将序列长度l作为全局特征值之一。因此,在全局特征被重建后,动态特征值的重建可以由$ \hat{l}$精确控制。

自回归递归网络可以使用监督胁迫法进行训练,其中真实数据xi-1总是作为下一步的输入,或者通过对之前的预测$ hat{x}_{i-1} $和真实数据xi-1进行采样。总体损失函数是全局特征值和动态特征值的重建损失的线性组合。

交叉熵(CE)损失和平均平方误差(MSE)损失分别用于分类和连续特征值。

生成模块

如上所示,由于全局特征值和动态特征值都是在同一个潜空间中编码的,所以r自然包含了时间序列中的不同关系,而自回归解码器本身也保留了时间序列的时间动态性。 因此,与其在潜伏空间中合成一个表征,然后对其进行自回归解码,直接从特征空间中产生一个合成输出,我们可以产生整个时间序列。

由于潜伏空间的维度与序列的长度l无关,生成模块更容易合成潜伏表示。 在这里,我们采用了WGAN的改进版本。 WGAN生成器的目的是在迭代训练的1-Lipschitz判别器的帮助下,使实际分布和合成数据分布之间的1-Wasserstein距离W(Pr, Pg)最小。 WGAN的优化目标定义如下

这里,G和D分别表示发生器和1-Lipschitz判别器。 LeakyReLU被用作G和D的激活函数。在训练完WGAN后,我们可以生成时间序列数据,如下所示

传统的基于AE-GAN的生成模型需要在GAN训练过程中调整解码器参数,以便在特征值空间中区分真实数据和合成数据,而在RTSGAN方法中,鉴别数据在潜在空间中,无需微调即可获得良好的生成性能。RTSGAN方法的特点是,判别数据在潜伏空间中,无需微调就能获得良好的生成性能。由于这个原因,编码器-解码器模块和生成模块是分开训练的。

B. 具有不完整时间序列的RTSGAN

在这里,我们扩展了RTSGAN以生成不完整的时间序列。 其主要思想是在每个时间步骤中同时生成缺失向量和特征向量,并根据生成的缺失向量屏蔽相应的特征值。 实现这一目标的一个简单方法是将每个特征的缺失信息作为一个额外的二进制特征,并将其生成为一个完整的时间序列。 然而,在实际的时间序列数据中,高比例的缺失值会导致传统的GAN训练出现灾难性的崩溃。这是因为直接识别一个不完整的时间序列可能不会给发生器提供有用的信号。

为此,我们提出了一个名为RTSGAN-M的RTSGAN变体。这个变体使用相同的AE-GAN框架,但在编码器-解码器模块中应用了两种技术,以提高具有缺失值的时间序列数据的生成性能:1)观测嵌入:这可以丰富每个观测中的信息;2)决策和生成解码器:首先,在编码器-解码器模块中嵌入下一个观测的时间和缺失模式。 2)决策和生成解码器:它首先确定下一个观测的时间和缺失模式,然后根据局部和全局的依赖关系生成相应的特征值。 在RTSGAN-M中,生成模块没有被修改。

观察嵌入

在将时间序列送入编码器-解码器模块之前,增加了一个观察嵌入层,以加强每一步的时间序列的表示。

首先,考虑每一步的最后一次有效观测是很自然的,因为一些不经常测量的特征可能是稳定的。其次,应强调每个观测点的时间点ti,特别是对于不规则采样时间序列。这是因为观察的时间点往往与缺失率有关,而时间间隔往往反映了以前观察的影响。尽管RNN有能力捕捉序列顺序,但它可能对捕捉时间间隔的信息不够敏感。 与Transformer中使用的位置编码一样,需要一个时间点的嵌入层来充分地利用时间信息。

因此,我们使用特征值、缺失模式和时间点来构建观察嵌入,如下所示

其中prei表示第i个观测点之前的动态特征的最后一个观测点。 φ(ti)是可学习的时间表示。

这样一来,编码器-解码器模块可以很容易地理解时间点、缺失值和观察值之间的关系。 整个观察嵌入的参数在编码器和解码器之间共享。

解码器的确定和生成

许多现实世界的应用,有用的缺失值可能与采样决定有关例如,医生可以根据病人的情况决定下一步要测量哪个动态特征。 因此,通过以下条件分布$ p(x_i, M^{(x)}_i | 信息_{i-1})以美元为模型更为合理。

其中$ info_i := {x_{1...i}, M^{(x)_{1...i}, y, m^{(y)}}$ 表示到第i个观测点为止的所有信息。$ p(x_i|M^{(x)}_i, info_{i-1}) $是一个以其他信息为条件的动态特征值分布模型。$ p(M^{(x)}_i|infor_{i-1}) $是一个以先前信息为条件的缺失数据的分布模型。

按照上述思路,我们将动态重建分为两个步骤决定和生成。 决策步骤由Ndec层的GRU组成,它产生的时间点和下一个观测的掩码如下

使用特定的阈值,可以根据$hat{M}(x)_i$来确定第i个观测点产生的特征值。

在决定了$ hat{t}_i $和$ hat{M}(x)_i $之后,我们需要采取生成步骤,建立&p(x_i|M^{(x)}_i, infor_{i-1})$模型。这里我们引入了时间延迟的概念(一个特征值的两个连续有效观测之间的时间间隔)。时间延迟δ可按以下方式计算

以前的工作表明,可修改的时间延迟是很重要的,如果一些特征缺失了很长时间,就需要减少以前的观察结果的影响。 在这个想法的基础上,我们还引入了可训练的衰变,具体如下

qi是在下一个时间点估计的本地信息,$ hat{t}_i $。

这与全局信息s一起,被用来在(N-Ndec)层GRU中产生动态特征值。

s来自于整个时间序列的汇集操作,后来被全局特征所监控。qi和s可以用来同时探索局部和全局的依赖关系,以重建特征值。

缺失值处理和损失函数

这里我们提出了一个在不完整的时间序列数据设置下训练编码器-解码器模块的损失函数。 它包括特征值重构的损失和缺失重构的损失。 对于不完整时间序列的特征重建,只计算有效观测值的损失。 在重建缺失的情况下,我们使用二元交叉熵(BCE)作为损失函数。 由于某些特征的缺失值可能经常出现,我们应该尽量保持对每个时间序列中很少观察到的动态特征的观察。 因此,我们根据第j个动态特征的总体缺失率ρj,设置动态特征xi,j的重构权重,如下所示


动态特征值的新损失函数看起来像这样

全局特征值$ prime{L}_y $的损失也是如此分为两个部分这可以分解为两个部分。然后可以得出整体损失函数,如公式6。

实验

我们从以下方面对RTSGAN进行评估:1)现实数据 2)高实用性。

A. 完整的固定长度时间序列数据

评估中使用的数据集是谷歌股票价格和UCI家电能源消耗预测数据。从每个数据集中,我们从股票价格中提取3,773个长度为24的时间序列,从能源预测中提取19,711个时间序列。比较的方法有COT-GAN、TimeGAN、RCGAN、C-RNN-GAN、WaveNet和WaveGAN。识别分数和预测分数被用作评价指标,t-SNE和PCA被用于定性评价,以评估真实数据与生成数据的接近程度。

结果显示在表1,图3中,我们可以看到RTSGAN的得分最好,生成的数据(蓝色)最好地再现了t-SNE和PCA的原始(红色)RTSGAN分布。

 

B. 不完整的变长时间序列数据

然后我们对有缺失数据的变长时间序列数据进行评估。这些数据集是PhysioNet挑战数据集(来自ICU的多变量医疗数据)和MIMIC-IIL(来自重症监护室医疗信息市场的数据),详见表二。

与TimeGAN和DoppelGANger进行了比较。AUC的比较是在通过下游分类模型zeroRNN和lastRNN后进行的。缩放比例有最小-最大和标准两种。对于定性评价,我们使用二维图形表示法和皮尔逊相关热图。

表三和表四显示了MIMIC-III和PhysioNet数据的比较结果,RTSGAN和RTSGAN-M显示了最佳结果。 图四显示了MIMIC-III数据的Pearson相关热图。图5显示了t-SNE和PCA图示的比较。图5显示了t-SNE和PCA图的比较,显示RTSGAN热图在生成的数据(蓝色)中最好地再现了原始(红色)分布。

 

C. 分割评价

表五和表六显示,嵌入和两步解码器都对改进有贡献,但两步(解码和生成)解码器的贡献更强。可以看出,两步法(决定和生成)解码器的贡献更强。

摘要

一个新的时间序列生成框架RTSGAN已经被提出来,用于生成现实的时间序列数据,对下游任务具有很高的效用。 除了生成可变长度的时间序列数据外,据我们所知,这是第一个探索生成具有缺失值的时间序列的工作。 此外,带有观察嵌入和决策及生成解码器的RTSGANM的扩展版本可以有效地处理缺失值,并产生非常有用的合成数据。 在完整和不完整的实词时间序列数据集上的实验显示了所提方法的优越性。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!
友安 昌幸 (Masayuki Tomoyasu) avatar
JDLA G检定2020#2,E资格2021#1 数据科学家协会 DS检定 日本创新融合学会 DX检定专家 联合公司Amico咨询 CEO

如果您对文章内容有任何改进建议等,请通过 "联系我们 "表格与爱学网编辑部联系。
如果您能通过咨询表与我们联系,我们将非常感激。

联系我们