TimeDP Learning to Generate Multi-Domain Time Series with Domain Prompts论文阅读笔记

发布于:2025-08-31 ⋅ 阅读:(19) ⋅ 点赞:(0)

TimeDP Learning to Generate Multi-Domain Time Series with Domain Prompts

摘要

在跨域时序数据生成任务中,提出使用”时间序列语义原型“模块定义时间序列原型来表示时间序列基,每个原型向量作为“词”表示一些基本的时间序列特征。应用原型分配模块提取提取域特定的原型权值,以学习域提示作为生成条件。在采样过程中,从目标域中提取少量采样的“域提示”,并以域提示为条件生成时间序列样本。

引言

跨域时间序列生成是一个非常复杂的挑战,因为它需要在不依赖现有历史记录的情况下跨各个域创建新数据

  • 一种直接方法是在训练过程中使用预定义的域标签。该方法依赖于明确的领域标签来进行条件生成。当面对不可见的领域,即领域标签没有明确可用时,则会面临巨大的挑战

  • 另一种方法通过使用自然语言描述域,将跨域时间序列生成框架为条件生成任务。特定于领域的细微差别通常难以准确地表达,从而导致嘈杂、不完整或模糊的提示。此外,对于全新的或发展中的领域,制作这些领域描述符可能是不切实际的

为了解决这些挑战,本文提出了一种无标签、无文本的方法,该方法学习时间序列原型作为基本元素来构建域提示,以生成具有扩散模型的时间序列,称为TimeDP。通过训练,原型学习表示时间序列基,作为具有时间序列语义的“文字描述”。对每个训练样本应用原型分配模块,构建生成该样本的特定“提示符”。在采样过程中,从目标域中提取少量样本的“提示符”来构造域提示符的总体,并以域提示符为条件生成时间序列样本。

主要贡献:

  • 我们提出了一种多域时间序列生成模型TimeDP,该模型通过学习一组时间序列原型和原型分配模块来构造域提示,其中域提示作为时间序列扩散模型的条件
  • 我们首先提出了一种使用无标签、无文本条件作用机制的多域时间序列生成模型
  • 实验表明,该方法具有较好的域内生成质量和较强的不可见域生成能力

相关工作与背景

时间序列生成

  • GAN:通过监督目标和对抗目标来联合优化学习嵌入空间,使得网络学习到时间动态信息
  • VAE:考虑了时间数据的趋势和季节分解,设计了特定的解码器结构。首先引入矢量量化技术和双向变压器,以更好地捕获时间一致性
  • 另一类被认为是混合型方法,将GAN、flows和ODE结合在一起
  • DDPM:去噪扩散概率模型,涉及到无条件和条件扩散模型生成数据

跨域时间序列模型

  • 两阶段模型:在大量多域数据上预训练表征学习模型,第二阶段为任务特定模型进行微调
  • 单阶段模型:使用补丁标记器对端到端变压器模型进行预训练,用于时间序列预测

这些方法采用实例规范化来基于历史数据生成预测,而不显式地处理领域差异。与这些方法相比,本文方法建议使用时间序列原型,构造域提示来明确区分域并桥接它们

去噪概率扩散模型 (DDPM)

扩散概率模型需要学习反转马尔可夫链的过程,该过程被称为反向过程。其正向过程为扩散过程,该过程逐渐向数据添加噪声,最终信号收敛到某个特定分布

具体公式见https://blog.csdn.net/weixin_45180140/article/details/150556555?spm=1001.2014.3001.5501的DDPMs部分

问题描述

DiT={x∈RT}Ni,  x=(x1,x2,...,xT)D_i^T = \{\pmb{x}\in\mathbb{R}^T\}^{N_i},\;\pmb{x}=(x_1, x_2,...,x_T)DiT={xRT}Ni,x=(x1,x2,...,xT)定义了一个有NiN_iNi个样本的时间序列数据集,且属于领域iii,其中每个样本具有TTT个序列值。

单领域时间序列预测模型对每一个数据集独立的利用参数θi\theta_iθi拟合时间步的联合分布p(x1,x2,...,xT)p(x_1, x_2,...,x_T)p(x1,x2,...,xT),定义为pθ(x1,x2,...,xT)p_\theta(x_1, x_2,...,x_T)pθ(x1,x2,...,xT)

在本文中,作者探索了一个域统一设置,其中MMM个序列长度为TTT的域数据集的混合表示为DT=⋃i=1MDiD^T=\bigcup_{i=1}^MD_iDT=i=1MDi。且作者的目标是利用一组参数来表示多个领域的联合分布pθ(x1,x2,...,xT∣i)p_\theta(x_1, x_2,...,x_T|i)pθ(x1,x2,...,xTi)

方法

在训练过程中,由于来自所有数据域的序列混合在一起,潜在表示中的所有时间序列特征都是纠缠在一起的,没有明确的方法来区分特定的时间序列数据域。虽然利用领域标签作为训练时间序列生成模型的类标签可以为识别特定领域提供指导,但这种方法隐含了一个假设,即所有领域都是相互独立的,忽略了领域对之间的不同相似程度。因此,在考虑各领域之间的相互关系的同时,使模型具备在所选领域内生成时间序列的能力是一项挑战。为了克服这一挑战,关键是建立跨域时间序列模型的触发机制,控制模型从特定域生成时间序列数据。受提示技术在可控内容生成方面最新进展的启发,本文提出构建域提示来控制跨域模型。

在这里插入图片描述

域提示词

与文本和图像模态不同,文本和图像模态的生成目标可以用自然语言表达或分类为离散类,而时间序列很难用单词或类标签来明确表示。受到广泛采用的提取“基”技术的启发,“基”是时间序列的基本特征,这些基可以作为不同域之间的共享“字典”,每个域对时间序列编码不同的语义特征。

语义“基”模块

每个基代表时间序列数据样本中可能存在的某些基本时间序列特征,如趋势和季节性。假设不同的个体时间序列样本共享相同的基集合,但反映集合的不同子集。因此,每个时间序列得到这些底层特征的唯一实现,类似于对所有基进行可变加权分配。基于这一假设,引入一组潜在阵列作为时间序列原型P∈RNp×d\mathcal{P}\in\mathbb{R}^{N_p\times d}PRNp×d,用于表示跨域时间序列的共同知识。其中,每个原型向量P∈R1×d\mathcal{P}\in\mathbb{R}^{1\times d}PR1×d作为时间序列基的表示。在实践中,时间序列原型P\mathcal{P}P是用随机正交向量初始化,然后冻结。

“基”分配模块

假设每个时间序列样本对应于所有基的一个不同的分配,需要建立从时间序列样本到分配的映射,以便明确地识别每个时间序列实例的重要原型以及区分域。本文提出为每个时间序列实例提取一个原型分配作为每个时间序列对每个原型的重要权重,然后将原型分配作为生成模型的条件。

具体来说,每个输入序列x\pmb{x}x被映射到一个权重向量,其维度等于使用权重提取器ϕ\phiϕ的原型数量,这是一个神经网络。向量ϕ(x)\phi(\pmb{x})ϕ(x)定义了在PPP中每个向量的权重,其该权重被用来模拟跨域机制中的注意力权重,因此预测的噪声仅以指定的原型为条件。因此,来自不同域的序列由共享的同一组时间序列原型的不同mmm加权组合来表示。为了保证原型分配的稀疏性,在进行原型分配时,所有的负权都被丢弃。形式上,原型赋值mmm用以下公式提取:

m=ϕ(x0)−Iϕ(x0)≤0⋅∞ m=\phi(x_0)-\pmb{I}_{\phi(x_0)\leq0}\cdot\infty m=ϕ(x0)Iϕ(x0)0
其中,I.≤0\pmb{I}_{.\leq0}I.0为负元素的指示函数

域统一训练

我们不是为每个特定数据集训练单个模型,而是同时使用来自多个数据集的数据训练一个模型,以生成不同的领域数据。在这里,我们将每个数据集视为一个单独的域。虽然来自每个领域的数据仅代表可能数据分布的有限部分,但利用来自其他领域的数据可以帮助模型捕获更多样化的时间序列数据分布。

在条件去噪概率扩散模型中,通过空间注意将这些条件纳入到噪声预测网络的中间层:
Q(i)=z(i−1)⋅WQ(i)K(i)=P⋅WK(i)V(i)=P⋅Wv(i)z(i)=FF(softmax(Q(i)K(i)Td)⋅V(i)) \pmb{Q}^{(i)}=z^{(i-1)}\cdot\pmb{W}^{(i)}_{Q}\\ \pmb{K}^{(i)}=\pmb{P}\cdot\pmb{W}^{(i)}_{K}\\ \pmb{V}^{(i)}=\pmb{P}\cdot\pmb{W}^{(i)}_{v}\\ z^{(i)} = FF(softmax(\frac{\pmb{Q}^{(i)}\pmb{K}^{(i)T}}{\sqrt{d}})\cdot\pmb{V}^{(i)}) Q(i)=z(i1)WQ(i)K(i)=PWK(i)V(i)=PWv(i)z(i)=FF(softmax(d Q(i)K(i)T)V(i))
FF为前向传播网络,注意力输出zfinalz^{final}zfinal是通过另一个前向传播网络获取ϵ^=FF(zfinal)\hat{\epsilon}=FF(z^{final})ϵ^=FF(zfinal)

利用上述的条件去噪机制,使用ϵ−parameterization\epsilon-parameterizationϵparameterization去噪目标可以写成并简化为:
Lcond=E[∣∣ϵ−ϵ^∣∣2]=Ex0∈DT,ϵ∼N(0,I),n[∣∣ϵ−ϵθ,P(xn,n,m∣∣2] L_{cond} = \mathbb{E}[||\pmb{\epsilon}-\hat{\pmb{\epsilon}}||^2]\\ =\mathbb{E}_{\pmb{x}_0\in D^T,\pmb{\epsilon}\sim\mathcal{N}(\pmb{0},\pmb{I}),n}[||\pmb{\epsilon}-\pmb{\epsilon}_\theta,\pmb{P}(x_n,n,\pmb{m}||^2] Lcond=E[∣∣ϵϵ^2]=Ex0DT,ϵN(0,I),n[∣∣ϵϵθ,P(xn,n,m2]
由于跨域的训练样本数量不平衡,本文采用重权采样的方法,使每个域的样本训练的概率相等。设NiN_iNi表示数据集i中样本序列的个数,将该数据集每个样本的采样权值设为wi=1Ni×∣D∣w_i=\frac{1}{N_i\times|D|}wi=Ni×D1,使得每个数据集的采样序列的概率是平衡的。训练算法的伪代码见算法1。

在这里插入图片描述

基于域提示的生成过程

为了在多个数据集上进行领域统一训练后生成所选领域的时间序列样本,我们首先在选择的域中抽取一小部分随机训练样本的领域特定原型赋值,然后将它们分组到表示所选域的域提示符分布中。设KKK表示从数据集iii中选择的样本个数,域提示符用mDi={m1i,...,mKi}\pmb{m}^{D_i}=\{\pmb{m}^i_1,...,\pmb{m}^i_K\}mDi={m1i,...,mKi}​。通过构造条件输入,该模型生成符合所选域的样本,而不受所选样本中显示的一般时间模式的约束。当期望生成的样本数量大于KKK时,我们在KKK个样本中使用每次分配重复生成的策略,直到期望样本数量满足。采样算法描述为算法2。

在这里插入图片描述

未见领域的生成

由于原型提供了基于时间序列的表示,因此它们的表示能力不局限于训练集中的域。因此,它们可以用来表示未见过的域或数据集。对于相对于训练集的任何未知数据集或域DjD_jDj,我们可以使用提取的“少量”样本x1i,...,xKi\pmb{x}^i_1,...,\pmb{x}^i_Kx1i,...,xKi,构造域提示mDj={m1j,...,mKi}\pmb{m}^{D_j} = \{\pmb{m}^j_1,...,\pmb{m}^i_K\}mDj={m1j,...,mKi},然后将它们作为条件输送到模型中,以生成所需数据集的新样本。

实验

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述