基于GTN的多元时间序列分类模型及其构建方法

文档序号:25582058发布日期:2021-06-22 16:14阅读:685来源:国知局
基于GTN的多元时间序列分类模型及其构建方法

本发明涉及一种基于gtn的多元时间序列分类模型及其构建方法。



背景技术:

深度学习经过多年的发展与研究,目前主流的神经网络有深度神经网络dnn(deepneuralnetwork)、卷积神经网络cnn(convolutionalneuralnetworks)、循环神经网rnn(recurrentneuralnetworks)和基于注意力机制的transformer模型。在大数据时代,数据的类型多种多样,常见的数据类型有视频、图像、时间序列等,而深度学习解决的任务大体上分为分类和预测两种任务。

dnn网络其实就是仅由全连接构成的前馈深度神经网络(fullyconnectedfeedforwardneuralnetworks),deep表示他的网络模型具有较多的隐藏层,整体深度较大,且完全由全连接层构成。它适用于大部分分类(classification)任务,比如数字识别等。但一般的现实场景中很少有那么大的数据量来支持dnn,所以纯粹的全连接网络应用性并不是很强。系统使用的数据集为13个多元时间序列(multivarianttimeseries),其中多数数据集并没有大量的数据,全连接层的训练需要大量的训练数据来进行迭代更新。最重要的是,dnn无法对时间序列上的变化进行建模,然而,样本出现的时间顺序对于自然语言处理、语音识别等时间序列应用非常重要。因此,使用dnn模型并不能很好的完成时间序列上的分类任务。

cnn网络是一种使用共享卷积核来对数据进行特征提取的模型。卷积运算是一种数学计算,和矩阵相乘不同,卷积运算可以实现稀疏相乘和参数共享,可以压缩输入端的维度,因此cnn可以轻松胜任高维的训练数据。共享卷积核减少了需要训练的参数的数量,减轻了反向传播(bp)参数优化的负担,图像通过共享卷积操作后仍然保留原先的位置关系。卷积核在进行特征提取时,可以关注一个多维矩阵局部的特征,实验证明它可以对矩阵数据如图片的内容进行边缘检测、斑块的检测与图片主体的提取等,卷积核拥有多个通道,不同的通道甚至能够关注图片不同的特征,即对不同的特征进行提取。

但是,cnn网络要想获得不错的参数,往往需要很深的模型,这在使用bp算法时会导致梯度消失问题使得模型入口处的参数难以得到有效的训练。其次,cnn使用三维的卷积核能够关注不同通道上的局部特征,但是时间序列数据不同特征上的时间序列取值区间与表达的含义往往有所不同,使用多维的卷积核同时关注不同特征的部分时间序列显然没有道理可言。虽然cnn可以使用矩形的卷积核只关注某一个特征上的时间序列,但是相比较于attention机制同时关注不同时间步或者不同特征时间序列上的相关程度而言,后者更加合适。最后,cnn处理的往往是高维的数据,数据量较大,深层的cnn模型往往使用池化操作,减轻需要特征提取的矩阵的大小,这往往会丢失很多有效的信息,特别是那些数据量本身就不大的时间序列,不同于图片,等间隔的删除若干元素可能对于图像的识别没有障碍,但是对于时间序列来说可能很大程度上影响特征的提取。

rnn可以处理有序列的问题,比如时间序列等,它拥有“记忆”能力,可以“模拟”数据间的依赖关系(dependency)。为了加强这种“记忆能力”,人们开发各种各样的变形体,如非常著名的longshort-termmemory(lstm),用于解决“长期及远距离的依赖关系”。同理,另一个循环网络的变种——双向循环网络(bi-directionalrnn)也是现阶段自然语言处理和语音分析中的重要模型。开发双向循环网络的原因是语言/语音的构成取决于上下文,即“现在”依托于“过去”和“未来”。单向的循环网络仅着重于从“过去”推出“现在”,而无法对“未来”的依赖性有效的建模。

但是正如前面所说的,神经网络中一个单元的前向传播依赖于前一个单元的输出,因此rnn更加适合预测任务,且由于这一点,rnn网络不能很好的利用gpu的并行性,计算效率不高。

综上,attention机制更能够胜任时间序列上的分类任务。

在大数据时代,任何时刻均会产生时间序列数据,例如医疗保健中的生理数据、财务记录或传感器捕获的各种信号。与单变量时间序列不同,多变量时间序列在每个时间步长的不同通道中具有更丰富的相关信息。单变量时间序列的分类任务已经得到了社会各界的广泛研究,而多变量时间序列分类在实际应用中显示出巨大的潜力。多元时间序列的学习表示和分类仍然受到越来越多的关注。

时间序列分类问题作为序列分类任务的一个分支,已经在时间序列挖掘领域引起了广泛的关注。时间序列分类的目标是首先从标定类标的训练集中学习到能够区分不同序列的鉴别性特征;然后,当一条未标定的时间序列到来时,它能够自动决定该时间序列的类标。它与传统分类问题之间的差别在于,对于后者而言,属性次序是不重要的,并且变量之间的相互关系独立于它们的相对位置;而对于时间序列数据而言,变量的次序在寻找最佳的辨别性特征时起着至关重要的作用,因此,时间序列分类已经成为数据挖掘中十分重要且特殊的挑战。

时间序列分类问题作为数据挖掘领域所关注的研究内容,具有重要的研究意义及应用价值。在一系列分类模型中,传统的基于统计学知识提出的时间序列分类模型准确率相对较低;基于机器学习方法所提出的分类模型,已较难适应当今数据规模巨大的现实需求;基于深度学习提出的rnn和lstm模型虽然能够达到不错的准确率,但是由于模型本身是顺序输入的,难以实现并行处理,从而导致运行效率低,并且rnn和lstm模型都无法解决长程依赖问题。



技术实现要素:

本发明提供一种基于gtn的多元时间序列分类模型及其构建方法,用于解决基于现有的网络模型提出的时间序列分类模型的准确率较低的技术问题。

一种基于gtn的多元时间序列分类模型的构建方法,包括:

构建embedding层;

构建two-towertransformer层,所述two-towertransformer层包括实现并行处理的时间特征编码器和时间步编码器,所述时间特征编码器用于对时间特征进行编码,所述时间步编码器用于对时间步进行编码;

构建gating层,所述gating层用于根据每个tower的输出,得到非线性激活,将所述非线性激活处理成对应的向量,接着根据所述向量得到线性关系,然后通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量;

构建线性层,所述线性层用于将gating层得到的结果维度转换成最终分类结果维度;

构建softmax函数层,所述softmax函数层用于将线性层的输出映射到[0,1]区间内,使得所有输出值的累加和为1,在最后选取输出结点时,选取概率最大的结点。

在一个具体实施方式中,所述构建embedding层,包括:

构建embedding层,通过非线性激活函数,将所述embedding层更改为全连接层来代替线性投影。

在一个具体实施方式中,所述时间步编码器中设置有位置编码和mask机制。

在一个具体实施方式中,所述将所述非线性激活处理成对应的向量,包括:

得到的非线性激活为c和s,将所述非线性激活进行串联,得到的向量为concat(c,s);

所述根据所述向量得到线性关系,包括:

得到的线性关系如下:

h=w·concat(c,s)+b

其中,h为所述线性关系,w和b为预设参数;

所述通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量,包括:

将所述线性关系通过softmax函数的计算之后得到每个tower的门控权重为g1和g2,计算公式如下:

g1,g2=softmax(h)

所述最终的特征向量的计算公式如下:

y=concat(c·g1,s·g2)

其中,y为所述最终的特征向量。

在一个具体实施方式中,所述将线性层的输出映射到[0,1]区间内,包括:

其中,zi为第i个节点的输出值,c为输出节点的个数,即分类的类别个数;

通过softmax函数能够将多分类的输出值转换为范围在[0,1]和为1的概率分布。

一种基于gtn的多元时间序列分类模型,包括:

embedding层;

two-towertransformer层,所述two-towertransformer层包括实现并行处理的时间特征编码器和时间步编码器,所述时间特征编码器用于对时间特征进行编码,所述时间步编码器用于对时间步进行编码;

gating层,所述gating层用于根据每个tower的输出,得到非线性激活,将所述非线性激活处理成对应的向量,接着根据所述向量得到线性关系,然后通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量;

线性层,所述线性层用于将gating层得到的结果维度转换成最终分类结果维度;

softmax函数层,所述softmax函数层用于将线性层的输出映射到[0,1]区间内,使得所有输出值的累加和为1,在最后选取输出结点时,选取概率最大的结点。

在一个具体实施方式中,所述embedding层中,通过非线性激活函数,将所述embedding层更改为全连接层来代替线性投影。

在一个具体实施方式中,所述时间步编码器中设置有位置编码和mask机制。

在一个具体实施方式中,所述将所述非线性激活处理成对应的向量,包括:

得到的非线性激活为c和s,将所述非线性激活进行串联,得到的向量为concat(c,s);

所述根据所述向量得到线性关系,包括:

得到的线性关系如下:

h=w·concat(c,s)+b

其中,h为所述线性关系,w和b为预设参数;

所述通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量,包括:

将所述线性关系通过softmax函数的计算之后得到每个tower的门控权重为g1和g2,计算公式如下:

g1,g2=softmax(h)

所述最终的特征向量的计算公式如下:

y=concat(c·g1,s·g2)

其中,y为所述最终的特征向量。

在一个具体实施方式中,所述将线性层的输出映射到[0,1]区间内,包括:

其中,zi为第i个节点的输出值,c为输出节点的个数,即分类的类别个数;

通过softmax函数能够将多分类的输出值转换为范围在[0,1]和为1的概率分布。

本发明提供的一种基于gtn的多元时间序列分类模型及其构建方法中,构建two-towertransformer层,two-towertransformer层包括实现并行处理的时间特征编码器和时间步编码器,时间特征编码器用于对时间特征进行编码,时间步编码器用于对时间步进行编码,通过合并多维时间序列在时间特征维度与时间步维度的编码器,能更好的适用于后续的多维时间序列分类,解决时间序列分类问题,又可以并行处理提高模型的效率,而且,在得到每个tower的输出之后,将非线性激活处理成对应的向量,然后得到线性关系,通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量,即为时间特征编码器与时间步编码器分配对应的权重,并结合时间特征编码器和时间步编码器的输出,得到最终的特征向量,线性层用于将gating层得到的结果维度转换成最终分类结果维度,用于后续分类,softmax函数层用于将线性层的输出映射到[0,1]区间内,保证所有输出值的累加和为1,在最后选取输出结点时,选取概率最大、即值对应最大的结点。与其他机器学习和深度学习网络相比,本发明提供的多元时间序列分类模型可以实现更高的分类准确率,为以后的时间序列分类任务开辟了新的思路。

附图说明

图1是本发明提供的基于gtn的多元时间序列分类模型的构建方法的流程图;

图2是本发明提供的基于gtn的多元时间序列分类模型的一种具体数据执行流程图;

图3是本发明提供的基于gtn的多元时间序列分类模型的整体结构示意图;

图4是本发明提供给的基于gtn的多元时间序列分类模型的一种具体网络结构图。

具体实施方式

基于gtn的多元时间序列分类模型的构建方法实施例:

本实施例提供一种基于gtn的多元时间序列分类模型的构建方法,该构建方法的硬件执行主体可以为台式电脑、笔记本电脑、服务器设备、智能移动终端(平板电脑、智能手机等)等等,本实施例不做限定。

如图1所示,该构建方法包括:

步骤1:构建embedding层:

构建embedding层(嵌入层),通过非线性激活tanh函数,将embedding层更改为全连接层来代替线性投影。

由于难以使用自注意力(self-attention)来确定时间步长的顺序相关性,那么,添加位置编码与非线性变换的时间序列数据,以对时间信息进行编码。

全连接层:a=wb

tanh函数:

位置编码:

其中,pos指的是一句话中某个字的位置,取值范围是[0,max_sequence_length),i指的是字向量的维度序号,取值范围是[0,embedding_dimension/2),embedding_dimension指的是字向量维度的值,dmodel指的是embedding_dimension的值。

步骤2:构建two-towertransformer层,所述two-towertransformer层包括实现并行处理的时间特征编码器和时间步编码器,所述时间特征编码器用于对时间特征进行编码,所述时间步编码器用于对时间步进行编码:

多元时间序列具有多个维度,其中每个维度都是单变量时间序列,不同通道之间存在隐藏的相关性。捕获时间步(时间)和时间特征(空间)信息是多元时间序列研究的关键。本实施例设计了two-towertransformer框架,其中每个tower中的编码器都明确捕获了以下步骤:通过自注意力和mask机制进行时间步和通道相关的关联。

q=x·wq

k=x·wk

v=x·wv

其中q、k、v分别表示每个序列的query向量、key向量和value向量。

自注意力机制:

mask机制:由于每个mini-batch的时间序列长度可能不同,需要按照最长的序列对其他序列进行补齐,一般使用0填充,这个过程叫做padding。但是这样在使用softmax时就会产生问题。softmax函数e0是1,是有值的,这样的话softmax中被padding的部分就参与了运算,相当于让无效的部分参与了运算,这可能会产生很大的隐患。因此需要做一个mask操作,让这些无效的区域不参与运算,一般是给无效区域加一个很大的负数偏置,即

zillegal=zillegal+biasillegal

biasillegal→-∞

构建two-towertransformer层,two-towertransformer层包括实现并行处理的时间特征编码器(channel-wiseencoder)和时间步编码器(step-wiseencoder),时间特征编码器用于对时间特征进行编码,时间步编码器用于对时间步进行编码,其中:

时间步编码器(step-wiseencoder):

为了对时间特征进行编码,通过计算所有时间步长中的成对注意权重,使用带掩码的自注意来关注所有通道上的每个点。在多头自注意层中,标度的点积注意在所有时间步长上形成注意力矩阵。像最初的transformer架构一样,每个多头注意力层后跟着前馈层,以增强特征提取。两个子层之间使用残差连接,随后是层归一化。

如图2所示,为时间步编码器的一种具体数据处理流程图,根据原始时间序列(时间步维度)得到向量化原始时间序列,然后为时间序列添加位置编码,生成时间步q、k、v矩阵,采用注意力机制计算时间步之间相关性,采用mask机制屏蔽后面时间步的影响,使用层归一化方法对注意力权重矩阵进行归一化,对注意力权重矩阵进行空间变换,使用层归一化方法对注意力权重矩阵进行归一化。

时间特征编码器(channel-wiseencoder):

channel-wiseencoder会在所有时间步长中计算不同特征之间的注意力权重。时间特征在多元时间序列没有相对或绝对相关,就好像切换特征的顺序,时间序列应该没有变化。因此,仅在时间步编码器中添加位置编码。对所有特征进行掩蔽的注意力层应能明确捕捉所有时间步长内特征之间的相关性。应当理解,在为每个编码器提供时间序列时,通过简单地转置时间特征和时间步来实现两个编码器是非常简单的。

如图2所示,为时间特征编码器的一种具体数据处理流程图,根据转置的原始时间序列(时间特征维度)得到向量化转置时间序列,然后生成时间特征q、k、v矩阵,采用注意力机制计算时间特征之间相关性,使用层归一化方法对注意力权重矩阵进行归一化,对注意力权重矩阵进行空间变换,使用层归一化方法对注意力权重矩阵进行归一化。

因此,本实施例中,在时间步编码器中设置有位置编码和mask机制,可以使分类效果更佳。

步骤3:构建gating层,所述gating层用于根据每个tower的输出,得到非线性激活,将所述非线性激活处理成对应的向量,接着根据所述向量得到线性关系,然后通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量:

为了合并两个tower的特征,对时间步和时间特征相关性进行编码,一个简单的方法是连接两个塔的所有特征,但是这会损害两个tower的性能。因此,本实施例提出了一种简单的gate机制来学习每个tower的权重。那么,构建gating层,得到每个tower的输出之后,即时间特征编码器和时间步编码器的输出之后,根据每个tower的输出,得到非线性激活c和s,将非线性激活c和s进行串联,打包成向量,得到的向量为concat(c,s)。

接着,根据得到的向量concat(c,s)得到对应的线性关系,得到的线性关系h如下:

h=w·concat(c,s)+b

其中,w和b为预设参数,为上述中全连接层的参数。

然后,通过softmax函数的计算之后得到每个tower的门控权重g1和g2,计算公式如下:

g1,g2=softmax(h)

最后,将得到的门控权重g1和g2,加入到相应tower的输出中,连接成最终的特征向量,最终的特征向量y的计算公式如下:

y=concat(c·g1,s·g2)

步骤4:构建线性层,所述线性层用于将gating层得到的结果维度转换成最终分类结果维度:

构建线性层,使用线性层将gating层得到的结果维度dgating转换成最终分类结果维度doutput,用于后续分类。

a=wb

步骤5:构建softmax函数层,所述softmax函数层用于将线性层的输出映射到[0,1]区间内,使得所有输出值的累加和为1,在最后选取输出结点时,选取概率最大的结点:

构建softmax函数层,softmax函数层用于将线性层的输出,即多个神经元的输出映射到[0,1]区间内,保证所有输出值的累加和为1,在最后选取输出结点时,选取概率最大,即值对应最大的结点。其中,

其中,zi为第i个节点的输出值,c为输出节点的个数,即分类的类别个数。

通过softmax函数能够将多分类的输出值转换为范围在[0,1]和为1的概率分布。

本发明提供的模型既能解决长程依赖问题,又可以并行处理提高模型的效率。在多维时间序列的分类问题上,和其他机器学习和深度学习网络相比,可以实现更高的分类准确率,为以后的时间序列分类任务开辟了新的思路。

基于gtn的多元时间序列分类模型实施例:

本实施例提供一种基于gtn的多元时间序列分类模型,与上述基于gtn的多元时间序列分类模型的构建方法相对应,如图3所示,基于gtn的多元时间序列分类模型包括:

embedding层;

two-towertransformer层,所述two-towertransformer层包括实现并行处理的时间特征编码器和时间步编码器,所述时间特征编码器用于对时间特征进行编码,所述时间步编码器用于对时间步进行编码;

gating层,所述gating层用于根据每个tower的输出,得到非线性激活,将所述非线性激活处理成对应的向量,接着根据所述向量得到线性关系,然后通过softmax函数得到每个tower的门控权重,最后将得到的门控权重加入到相应tower的输出中,连接成最终的特征向量;

线性层,所述线性层用于将gating层得到的结果维度转换成最终分类结果维度;

softmax函数层,所述softmax函数层用于将线性层的输出映射到[0,1]区间内,使得所有输出值的累加和为1,在最后选取输出结点时,选取概率最大的结点。

对于各个处理层的具体实现方式参见上述基于gtn的多元时间序列分类模型的构建方法实施例,不再赘述。

图4为基于gtn的多元时间序列分类模型的一种具体网络结构图。

上述实施例仅以一种具体的实施方式说明本发明的技术方案,任何对本发明进行的等同替换及不脱离本发明精神和范围的修改或局部替换,其均应涵盖在本发明权利要求保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1