一种时间序列相似性计算装置和方法与流程

文档序号:17718840发布日期:2019-05-22 02:00阅读:196来源:国知局
一种时间序列相似性计算装置和方法与流程

本申请涉及数据处理技术领域,尤其涉及一种时间序列相似性计算装置和方法。



背景技术:

时间序列是金融计算中常见的数据形式。对于时间序列处理来说,一个普遍的任务就是比较两个时间序列的相似性。在实际应用中,时间序列的长度往往并不相等,传统的欧式距离无法有效衡量不等长时间序列之间的相似性,由此引入了动态时间规整算法(dynamictimewarping,dtw)。dtw是一种基于动态规划(dynamicprogramming,dp)的序列匹配算法,它通过时间序列补齐和距离累积的方式来计算两个不等长时间序列的相似性,广泛应用于模式识别,数据挖掘和信息检索中。具体算法如下所述:

若时间序列x和时间序列y的长度分别为n和m,即

x(x(1),x(2),x(3),...,x(i),...,x(n));

y(y(1),y(2),y(3),...,y(j),...,y(m));

根据时间序列x和y可构建m*n阶矩阵:

矩阵元素d(i,j)表示时间序列x的元素值xi和时间序列y的元素值yj之间的距离。动态时间规整算法的核心思想在于寻找一条通过矩阵元素的路径,使得路径上矩阵元素d(i,j)的累加和最小,路径通过的元素即为计算两个时间序列相似性的点,路径的累积距离就是两个时间序列的相似性。

定义规整路径w(warpingpath):

w=w1,w2,…,wi,…,wkmax(m,n)≤k≤m+n-1

规整路径w将时间序列x的时间轴n非线性地映射到时间序列y的时间轴m上,并且满足式中d(n,m)为规整路径的累积距离,或称规整路径距离。规整路径需要满足以下约束条件:

(1)边界条件:w1=(1,1),wk=(m,n)

(2)单调连续条件:若wi-1=(a,b),wi=(a′,b′),则a′-a=0,1,且b′-b=0,1。

目前,基于动态时间规整算法的大规模时间序列处理往往采用通用处理器来实现,而摩尔定律的放缓使得通用处理器的性能提升有限,数据规模的与日俱增更加凸显了通用处理器计算能力的不足。因此,目前基于动态时间规整算法的大规模时间序列处理受限于硬件的运算速度,无法满足大数据实时处理的需求,同时系统的能耗也相对较高。



技术实现要素:

有鉴于此,本发明提出了一种基于滑动时间窗口的时间序列相似性计算装置和方法,以专用的数据架构实现对时间序列的高效处理,来快速计算时间序列间的相似性。

本发明的一个方面提供一种时间序列相似性计算装置,该装置包括:

序列缓冲器,用于缓存第一时间序列和作为模板序列的第二时间序列;

距离运算单元,用于计算第一时间序列的元素值和第二时间序列的元素值之间的距离,得到距离矩阵;

存储单元,用于存储第一时间序列的多个滑动窗口对应的距离矩阵;

多个累加距离运算单元,用于根据滑动窗口长度和模板序列的长度,在多个滑动窗口内复用所述距离矩阵的元素并基于动态时间规整算法并行计算第一时间序列在各个滑动窗口内的子序列与第二时间序列的规整路径距离;以及

控制逻辑,用于对所述序列缓冲器、距离运算单元和多个累加距离运算单元进行逻辑控制。

本发明的另一方面提供一种计算时间序列相似性的方法,该方法包括以下步骤:

缓存步骤,接收第一时间序列和作为模板序列的第二时间序列并对接收的第一时间序列和第二时间序列缓存至序列缓冲器;

距离运算步骤,由距离运算单元从第一序列缓冲器和第二序列缓冲器读取第一时间序列和第二时间序列,计算第一时间序列的元素值和第二时间序列的元素值之间的距离,得到距离矩阵;

存储步骤,在存储单元中存储所述距离矩阵的与第一时间序列的多个滑动窗口对应的矩阵元素;

累加距离计算步骤,利用多个累加距离运算单元在多个滑动窗口内复用存储单元存储的距离矩阵的元素并基于动态时间规整算法并行计算第一时间序列在各个滑动窗口内的子序列与第二时间序列的规整路径距离。

优选地,所述累加距离运算单元的个数等于所述滑动窗口的个数;所述存储单元的大小基于单个滑动窗口对应的单个累加距离运算单元计算规整路径距离的时钟周期数和滑动窗口数而定。

优选地,所述距离计算单元计算的第一时间序列的元素值和第二时间序列的元素值之间的距离为欧式距离;所述距离计算单元包括加法器和乘法器,其计算的距离矩阵的元素以列为单位存储到所述存储单元中。

优选地,所述累加距离运算单元包括加法器、比较器和多路选择器;所述比较器用于用于按照计算粒度比较候选路径上的多个距离值;所述多路选择器用于基于比较器的比较结果选择规整路径对应的距离值;所述加法器用于累加规整路径上的距离值。

优选地,所述序列缓冲器包括第一序列缓冲器和第二序列缓冲器,用于分别缓存第一时间序列和第二时间序列和第二序列。

优选的,计算时间序列相似性的装置还包括状态寄存器,用于指示序列缓冲器的使用状态。

本发明实施例提供的基于动态时间规整算法的时间序列相似性计算装置和方法,以专用的结构实现动态时间规整算法的加速。为动态时间规整算法设计出了专用处理架构。并且,本发明采用滑动时间窗口的方式对时间序列进行处理,采用本发明提出的结构能够灵活调整滑动窗长度和模板序列的长度,可以满足不同场景下对动态时间规整算法的要求。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

在附图及以下描述中阐明本说明书所属主题的一个或多个实施例的细节。参阅说明书、附图和权利要求,所述主题的其他特征、方面和优势将显而易见。应领会到,能够将这些方面和实施方式组合,并且一个方面或实施方式的上下文中所述的特征能够在其他方面或实施方式的上下文中实现。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例中计算时间序列相似性的装置的结构图。

图2示出了本发明实施例中计算时间序列相似性的方法的流程图。

图3示出了本发明实施例中的序列缓冲器和存储单元的示意图。

图4示出了本发明实施例中的距离运算单元的结构示意图。

图5示出了本发明实施例中累积距离运算单元的结构示意图。

图6示出了本发明实施例中存储单元存储的距离矩阵的示例。

图7示出了本发明实施例中各信号的时序图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。术语“第一”、“第二”用来修饰特征、要素、步骤或组件时,仅用于将这些特征、要素、步骤或组件相区别,而非暗示他们的次序或顺序,除非上下文有明确表示。

在此,还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。

为了解决大规模时间序列下动态时间规整算法的求解问题,即大规模时间序列的相似性计算问题,本发明实施例提出了一种基于滑动时间窗口的时间序列相似性计算方法及实现该方法的硬件结构。

本发明实施例中,针对长度不同的时间序列x和作为模板序列的时间序列y,是以多个滑动窗的形式,采用动态时间规整算法来计算每一滑动窗内x序列的子序列和模板序列y的相似性。

时间序列x和y可分别表示为:

x(x(1),x(2),x(3),...,x(i),...,x(n));

y(y(1),y(2),y(3),...,y(j),...,y(m)),本发明实施例中,模板序列长度m被示例性设置为q,即m=q。

图1所示为本发明一实施例中计算时间序列相似性的装置示意图,该装置支持任意窗口的动态时间规整算法的求解。如图1所示,计算时间序列相似性的装置包括:序列缓冲器(或称数据缓冲器)、距离运算单元、存储单元、累积距离运算单元和控制逻辑。

作为一示例,序列缓冲器可包括第一序列缓冲器和第二序列缓冲器,分别用于时间序列x(第一时间序列)和模板序列y(第二时间序列)的缓存。由于在后面将描述的距离计算过程中,距离运算单元会在当前时钟周期计算x(i)和y(1)~y(q)的距离值,并将计算寄过以列为单位写入存储矩阵中,因此第一序列缓冲器的长度可设置为1,第二序列缓冲器的长度根据系统支持的最大模板序列长度而定。

另选地,序列缓冲器可为包括不同缓冲区的单个序列缓冲器,用来在不同缓冲区中分别缓存时间序列x和模板序列y。

此外,可选地,本发明的计算时间序列相似性的装置还可包括状态寄存器(未示出),用于指示序列缓冲器的使用情况,当序列缓冲器中的时间序列值有效时,其对应地址上的状态寄存器值为1;当该时间序列值运算完毕后,其对应地址上的状态寄存器值为0(为初始状态),状态寄存器可省略。

距离运算单元用于计算时间序列x的元素和时间序列y的元素值之间的距离,得到距离矩阵d,即距离运算单元实现了矩阵元素d(i,j)的求解,其中d(i,j)为时间序列x的元素x(i)的值xi和时间序列y的元素y(j)的值yj之间的距离,该距离例如可以是欧式距离d(i,j)=(xi-yj)2,用于衡量两个序列的元素的相似性。距离运算单元的输入数据为时间序列x和时间序列y,运算结果以列为单位写入存储单元中。图4所示为本发明一实施例中距离运算单元的结构示意图,如图4所示,距离运算单元包括加法器和乘法器,其接收从序列缓冲器输入的模板序列数据y(y(1),y(2),y(3),...,y(j),...,y(q)),以及时间序列x的数据x(i),计算得到距离矩阵的1列(d(i,1),d(i,2),d(i,3),…,d(i,q-1),d(i,q)),该列数据运算完毕后可以列为单位将结果写入至存储单元中。

存储单元用于多个时间滑动窗口下距离矩阵的存储,矩阵元素d(i,j)为时间序列x的元素值xi和模板序列y的元素值yj之间的距离。在本发明实施例中,滑动窗口的长度可以基于具体的应用场景进行灵活设定。如下文将详细描述的,本发明基于滑动时间窗口的动态时间规整算法中存在大量的数据复用,存储单元的存储多个时间滑动窗口下距离矩阵的存储方式为动态时间规整算法提供了可复用数据,能有效减小存储资源的消耗。在本发明一实施例中,存储单元的大小至少取决于单个时间窗下dtw算法求解所需的时钟周期数。

累积距离运算单元用于规整路径距离d(n,m)的求解,该单元实现了规整路径下矩阵元素d(i,j)的累加,最终的累加结果即为时间序列x在个滑动窗口下的子序列和模板序列y的相似性。本发明实施例中,采用多个累加距离运算单元在多个滑动窗口内基于动态时间规整算法进行并行计算,以计算出第一时间序列在各个滑动窗口内的子序列与第二时间序列的规整路径距离。在并行计算过程中,对存储单元存储的距离矩阵的元素进行复用,大大降低了计算时间,并减少了存储资源的消耗。

本发明实施例中,控制逻辑用于控制时间序列的读取和对诸如上述诸如序列缓冲器、距离运算单元、存储单元、累积距离运算单元等各功能单元的调度,实现对序列缓冲器、距离运算单元和多个累加距离运算单元的逻辑控制。

本发明的如上实现动态时间规整算法的硬件结构由于采用多个滑动窗口,通过数据复用在各滑动窗口内实现规整路径距离的并行计算,不仅大大提高了时间序列的处理速度,实现了对时间序列的高效处理,而且降低了存储资源的消耗。并且,本发明提出的硬件结构能够灵活调整滑动窗长度和模板序列的长度,可以满足不同场景下对动态时间规整算法的要求。

下面详细描述利用如上硬件结构实现的计算时间序列相似性的方法,如图2所示,本方法包括以下步骤:

步骤s10,参数读取步骤,控制逻辑的内部逻辑采样相似性计算所需参数,即滑动窗口长度p(通过tsdtw_para0信号采集)和模板序列长度q(通过tsdtw_para1信号采集)。作为一示例,滑动窗长度p=5,模板序列长度为q=6,但本发明并不限于此,可灵活调整滑动窗长度和模板序列的长度,以满足不同场景下对动态时间规整算法的要求。

在本步骤之前,通常还包括系统复位步骤(图2中未示出),控制逻辑的内部逻辑和状态寄存器基于复位信号tsdtw_rstn恢复至初始状态,以等待时间序列x和y写入。

步骤s20,缓存步骤,接收第一时间序列x(以tsdtw_tsin0信号的形式)和作为模板序列的第二时间序列y(以tsdtw_tsin1信号的形式)并对接收的时间序列x和y缓存至序列缓冲器。

作为一示例,时间序列x和y分别缓存至第一序列缓冲器和第二序列缓冲器。

步骤s30,距离运算步骤,由距离运算单元从序列缓冲器读取时间序列x和时间序列y,计算时间序列x的元素值和时间序列y的元素值之间的距离,得到距离矩阵的矩阵元素d(i,j),并以列为单位存储到存储单元中,即更新存储单元。

步骤s40,累加距离计算(dtw求解)步骤,利用多个累加距离运算单元在多个滑动窗口内复用存储单元存储的距离矩阵的元素,并基于动态时间规整算法并行计算时间序列x在各个滑动窗口内的子序列与时间序列y的规整路径距离,并输出计算结果(tsdtw_tsout信号)。

根据滑动窗口长度p和模板序列长度q将存储单元中的数据送入与多个滑动窗口对应的多个累积距离运算单元中,由多个累积距离运算单元进行多个滑动窗口内的并行计算。本发明实施例中,累积距离运算单元与滑动窗口一一对应,即滑动窗口的数量与累积距离运算单元的数量一致。

在本发明实施例中,序列缓冲器缓存的数据和存储单元存储的距离矩阵如图3所示,存储单元中存放了l个滑动窗下的距离矩阵dq×(l+p-1),距离矩阵dq×(l+p-1)的矩阵元素d(i,j)包括了时间序列x在l个滑动窗口下的子序列和模板序列y相应元素的距离值。如图3可知,滑动窗长度为p=5,模板序列长度为q=6,相邻滑动窗口间能够复用的矩阵元素数量为(p-1)*q=24。在l个累积距离运算单元分别计算x时间序列在l个滑动时间窗口内的子序列与模板序列y的规整路径距离的过程中,累积距离运算单元通过存储单元中数据复用的方式有效减少存储资源的消耗,并且能够同时进行多个滑动窗口下基于dtw算法对规整路径距离的求解(简称dtw算法求解)。

本发明实施例中,存储单元的大小可基于单个滑动窗口下求解规整路径距离所需的最长时钟周期数而定。例如,假设本次计算的参数为p=5,q=6(附图3),此时p(滑动时间窗口长度),q(模板序列长度)为系统支持的最大值,若单个时间窗下规整路径距离求解所需的最长时钟周期为50个时钟周期,那么存储单元的大小设置为q*50即可,第51个时钟周期到来的数据可以重新写回第一个时间窗占用的存储单元中,此时的窗口数为50-p+1=46。因此在具体实现中,存储单元的大小取决于单个时间窗下(此时p,q为系统支持的最大值)求解规整路径距离所需的最长时钟周期数。但本发明并与限于此,将存储单元设置地更大也同样适用本发明。

当第1滑动窗口的dtw算法求解完毕后,其对应的存储单元将被释放,第l+1个滑动窗口中的最后1列矩阵元素数据将重新从存储单元的初始地址写入,替代第1滑动窗口中的第1列矩阵元素数据。当第2滑动窗口的dtw算法求解完毕后,其对应的存储单元将被释放,第l+2个滑动窗口中的最后1列矩阵元素数据将重新从存储单元的初始地址写入,替代第2滑动窗口中的第1列矩阵元素数据。后续滑动窗口中dtw算法求解及存储单元的更新以此类推。

在本发明的一个实施例中,累积距离运算单元与滑动窗口一一对应,即滑动窗口的数量决定了该累积距离运算单元的数量。累积距离运算单元如附图5所示。累积距离运算单元实现了规整路径下距离的累加,该累积距离运算单元由加法器、比较器和多路选择器组成。累积距离运算单元的计算粒度为存储单元中四个相邻距离值,如图5中的d(i-1,j-1),d(i-1,j),d(i,j-1),d(i,j)。累积距离运算单元根据2*d(i,j),d(i-1,j),d(i,j-1)中的最小值决定规整路径,使得通过规整路径的距离值d(i,j)的累加和最小,其中2*d(i,j)是用权重值2调整后的距离值,该权重值也可以设置为1,但本发明并不限于此,也可以将各距离值的权重设置为其他合理值。如图5所示,比较器用于按照计算粒度比较候选路径上的多个距离值d(i-1,j),d(i,j-1),2d(i,j)。更具体地,一个比较器用于比较距离,d(i-1,j-1),d(i-1,j),通过一多路选择器选择较小的值,并进一步通过另一比较器与2*d(i,j)相比较(2d(i,j)通过图5中加法器获得),并通过另一多路选择器选择较小的距离值,从而确定出规整路径。加法器用于累加规整路径上的距离值,即使得规整路径距离d(wk′)=d(wk′-1)+minimum(2d(i,j),d(i,j-1),d(i-1,j))。d(wk′),即为图5所示的窗口下x序列与模板序列y的相似性。

下面结合附图6中的存储单元示例说明累积距离运算单元的计算原理。

步骤1:初始化i=j=0,d(0,0)=d2(0,0)=1;从存储单元读取与d(0,0)相邻的三个距离值d(1,1),d(1,0),d(0,1),取2*d(1,1),d(1,0),d(0,1)中的最小值与d(0,0)相加,并将最小值对应的下标更新为累加距离值的下标,图6中,2*d(1,1),d(1,0),d(0,1)分别为4,5,4,在对角线上的元素d(1,1)对应的距离值2*d(1,1)与非对角线上的元素d(0,1)对应的距离值相等的情况下,为了使规整路径最短,优先选择对角线上的元素,于是,最小值2*d(1,1)对应的下标(1,1)更新为累加距离值的下标,即

d(1,1)=d(0,0)+minimum(2d(1,1),d(1,0),d(0,1))=5.

步骤2:更新i=j=1,d(1,1)=5;从存储单元读取与d(1,1)相邻的三个距离值d(2,2),d(2,1),d(1,2),取2*d(2,2),d(2,1),d(1,2)中的最小值与d(1,1)相加,并将最小值对应的下标更新为累加距离值的下标,图6中,2*d(2,2),d(2,1),d(1,2)分别为8,3,5,此时,d(2,1)最小,于是,最小值对应的下标(2,1)更新为累加距离值的下标,

d(2,1)=d(1,1)+minimum(2d(2,2),d(1,2),d(2,1))=8.

步骤3:重复上述步骤,直至完成整个规整路径下距离的累加,得到d(wk).

此时,d(wk)即为该窗口下x子序列与模板序列y的相似性,d(wk)需优先满足边界条件wk=(p,q)。

针对图6所示的存储单元中距离矩阵,步骤3中的计算分别得到:

d(2,2)=d(2,1)+minimum(2d(3,2),d(3,1),d(2,2))=12.

d(3,3)=d(2,2)+d(3,3)=17.

基于如上所述的基于dtw的时间序列相似性算法,各累积距离运算单元可在如图3所示的各滑动窗口中并行计算出时间序列x在各滑动窗口下的各个子序列与模板序列间的动态规整距离,各滑动窗口下的规整路径如图3中箭头所示。

附图7为本发明的时序图,1表示复位信号tsdtw_rstn有效,基于复位信号,控制逻辑的所有内部逻辑和部分端口信号恢复至事先约定的状态,一切逻辑准备就绪等待新的计算开启。2表示使能信号tsdtw_enable置位,正式开启新计算。3表示时钟上升沿tsdtw_clk来临,内部逻辑采样计算所需要的参数,即滑动窗口大小p(tsdtw_para0)和模板序列长度q(tsdtw_para1)。4表示时钟上升沿来临,内部逻辑开始采样两个输入时间序列x和y的数据元素,之后每个时钟数据更新一次,并对模板序列y的所有输入数据进行缓存。5表示模板序列y全部采集并缓存完毕。6表示第一个计算结果tsdtw_tsout输出,之后在输入数据连续的情况下可保证每个时钟输出一个结果。

利用如上所述的基于滑动窗口和dtw算法进行时间序列相似性计算的专用装置和方法,通过多个滑动时间窗下多个累积距离运算单元对各滑动窗口下子序列与模板序列的规整路径距离的并行计算,本发明大大提高了时间序列处理的速度,使得每个时钟都可以输出结果。此外,本发明的专用装置和方法通过数据复用降低了系统的消耗,提高了系统性能。

利用如上所述的基于滑动窗口和dtw算法进行时间序列相似性计算的专用装置和方法,可以应用于时间序列处理相关的各个领域,如语音识别,手势识别,数据挖掘和信息检索等等。

上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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