c++矩阵连乘的动态规划算法并输出_动态时间序列精准索引(Exact indexing of dynamic time warping)...

eb3822c45281684f9b7e1f541e32d149.png

作者: James, 2020年3月10日

关键字:DTW,动态时间规整,索引

0. 序

本文是论文Exact indexing of dynamic time warping的学习笔记[1]。本文结构为:第一部分介绍背景,第二部分介绍DTW,第三部分介绍low-boundary,第四部分介绍index,第五部分致谢。

1. 背景

超大规模时间序列数据库的索引问题很重要,传统大量的索引工作都是基于欧氏距离的。需要采用动态规划、基于时间轴的弹性漂移方法去寻找相似的序列。如图1所示,两个序列具有相似的形状,但是在时间轴上并没有对齐。欧氏距离假定两个序列相同位置是对应的,DTW可以通过“漂移”实现序列的对齐。

c7219290d754d2306b475f61674299c4.png

1994年Berndt和Clifford把DTW引入了数据库领域,但是DTW在超大规模数据库上性能受限。尽管如此,DTW还是在很多领域得到了广泛应用,如bioinformatics,chemical engineering,手写体文档索引等。在这些应用中,共同需求是找到与一个时间序列最匹配的序列,这可以通过序列的扫描实现,但是序列扫描太慢了,真正有效的方法是index。基于欧式举例提出了二十多种方法进行索引,本文提出了 no-false-dismissal 的方法,优于其他方法,特别的,在number and diversity of datasets, size of datasets, range of query lengths and indexing parameters等方面超出了一到两个数量级。

2. DTW简介

注:DTW称为动态时间规整/弯曲,我喜欢称之为动态时间对齐,还请各位看官不喜勿喷。

设有两个时间序列,Q和C,长度分别为n和m,

为了用DTW对齐两个序列,构造一个n-by-m矩阵,元素

代表
两个点之间的距离
,如Fig3所示。

88676c4de881469578e51ed1e63f94aa.png

定义对齐路径(warping path)W为一系列相邻的矩阵元素,W的第k个元素为

,于是有:

4b9a5b15eac2caf3185af8081174e085.png

对齐路径(warping path)有以下三个约束:

  • Boundary conditions:
    表示两条序列收尾必须匹配。
  • Continuity: 如果
    。 这条约束表示在匹配过程中多对一和一对多的情况只能匹配相邻的一个时间步。
  • Monotonicity:
    这条约束表示 warping path 一定是单调增的。

矩阵中满足以上条件的路径是指数级的,我们需要最小对齐成本的路径,即:

2850be10c61f4f331842f67fdc8ac0db.png

该路径可以通过动态规划方法来求解[2],定义距离

作为当前的
,是算法中每次迭代得到的相邻元素的最小累积距离。

3. DTW距离的下界(lower bounding)

3.1 下界的作用

时间序列相似度的计算消耗时间和空间,可利用快速下界函数帮助去掉不可能是最佳匹配序列,算法的伪码:

算法:An algorithm that uses a lower bounding distance measure to speed up the sequential scan search for the query Q.

2a017cccc6e50632694baeb4bf121b6b.png

对下界度量有两个要求:

  1. 可以快速计算
  2. 半小时一个相对紧的下界

3.2 现有的下界度量(lower bounding measures)

适合于DTW的有两种方法,一个是LB_Kim,一个是LB_Yi.

  • LB_Kim:从序列中抽取四元组向量,分布式序列的第一个元素A,最后一个元素D、最小值B、最大值C。

8be279a2fa7513bf221aabc696cd9825.png
  • LB_Yi:考虑了一个序列中,超出另外一个序列的最大值及低于其最小值的所有点,认为这些点对于最终DTW距离的计算至少贡献了他们的平方差和最大最小值
    ,

c274f08e3bf9d859dccc51b8cb540368.png
图中阴影部分线条长度的平方和代表对DTW距离的整体贡献的最小值

3.3 寻找下界方法(lower bounding measure)

首先介绍一下DTW算法的一些细节。

1)时间对齐的全局约束

除了第一节中列举的关于对齐路径(warping path)的约束,实际使用中对齐路径对路径离开对角线的距离有限制。矩阵中允许齐路径访问的子集称为对齐窗口,Figure6描述了两种常用的全局约束,Sakoe-Chiba band和Itakura parallelogram,全局约束限制路径的范围在灰色区域。全局约束可以加快DTW距离计算,更重要的,防止病态对齐,即一个序列的一小部分与另外一个序列的相对比较大的部对齐。

69a628b4d5e88919d5723e9c6d26b7b6.png

2)时间对齐的局部约束

基本思路是在确定对齐路径时候加上局部限制,如在计算DTW的动态规划算法中 ,把原来的递归模型

,改为:
如下图的中的C所示。实际使用可以采取不同的方式。

4cdf1cd5125f5a92b82aa332a84badb9.png

3)lower bounding measure

把全局和局部约束看成是对齐路径走哪一个点的约束

,则
,r定义了可达的点,或者说运行对齐的范围。在Sakoe-Chiba band中, r独立于i,在Itakura parallelogram在 r 是i的函数。利用定义两个序列上界U和和下界L:

下图给出了U和L的示例:

a7b30123dfa7b6aa04ec0bc026ef5acf.png

显然,

,根据U和L,可以定义下界算法:

用图像描述如下,可以看出,(B) Itakura parallelogram 比(A)Sakoe-Chiba band 更“紧”。

db57dc1c4c162283597fc6357e23e388.png

4. Indexing DTW

欧氏空间下保证no false dismissal的时间序列索引通常是在GEMINI框架下的。其中一个是Piecewise aggregate approximation(PAA), PAA 可以调整用了对DTW索引。

4.1 PAA介绍

时间序列

,假定每个序列的长度为n,
是索引空间的维度,为了简便,假定N是n的因子,长度为n的时间序列可以表示为N维向量,
第i个元素为:
.相当于把n维的向量减少到N维,数据被分成相等的N份,每份用对应的平均值代替。

f357ffa4072a4a220e4a4b14a9381cbb.png

给定两个序列 Q 和 C, 可以把他们转换成

,他们之间的欧氏距离为:

89213a8eb15bfdaecb4806d22ba365c1.png

4.2. Modifying PAA to index time-warped queries

下界函数 LB_Keogh的计算需要n个值,n值非常大且是多维索引结构,我们需要一个可以处理的N维结构。利用PAA对U和L进行近似,有

3de080ae25faeda8acdaeafa33c37719.png

9230e948d10d6d441736fad2827039c4.png

基于此,可以定义下界函数 LB_Keogh的:

ccd8256275a99e5fa9443e10e205b5bb.png

可以用来索引的最后一步是定义 MINDIST(Q,R) 函数,用来返回Q和R的下界距离,其中R是边界矩形的最小值(MBR),

是与U相关的 MBR,其中,
是R的低点和高点,R包含C的每一个PAA点的最小矩形,
,MINDIST(Q,R) 定义为:

0b689b586d61c5462fb8fd7413b303d4.png

0325a3c4cc232619b0b78ce686c78e37.png

最后,给出查询算法 KNNSearch(Q,K):

baaccd51a79549aa3bf05d99fc822043.png

算法:

52df57425d4e1b03f4790fabb14e2d57.png

算法:范围搜索算法:

8a60cc3bb1376d938573d1c0985f1abc.png

defc6ac58a4d2da9e2e157f59b331759.png

5.实验(略)

6. 致谢

作者感谢贪心学院的范老师对本文进行的讲解。

参考

  1. ^http://www.cs.ucr.edu/~eamonn/KAIS_2004_warping.pdf
  2. ^具体动态规划解法可以参考编辑距离的算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值