作者: James, 2020年3月10日
关键字:DTW,动态时间规整,索引
0. 序
本文是论文Exact indexing of dynamic time warping的学习笔记[1]。本文结构为:第一部分介绍背景,第二部分介绍DTW,第三部分介绍low-boundary,第四部分介绍index,第五部分致谢。
1. 背景
超大规模时间序列数据库的索引问题很重要,传统大量的索引工作都是基于欧氏距离的。需要采用动态规划、基于时间轴的弹性漂移方法去寻找相似的序列。如图1所示,两个序列具有相似的形状,但是在时间轴上并没有对齐。欧氏距离假定两个序列相同位置是对应的,DTW可以通过“漂移”实现序列的对齐。
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矩阵,元素
定义对齐路径(warping path)W为一系列相邻的矩阵元素,W的第k个元素为
对齐路径(warping path)有以下三个约束:
- Boundary conditions:
和表示两条序列收尾必须匹配。
- Continuity: 如果
且则且。 这条约束表示在匹配过程中多对一和一对多的情况只能匹配相邻的一个时间步。
- Monotonicity:
这条约束表示 warping path 一定是单调增的。
矩阵中满足以上条件的路径是指数级的,我们需要最小对齐成本的路径,即:
该路径可以通过动态规划方法来求解[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.
对下界度量有两个要求:
- 可以快速计算
- 半小时一个相对紧的下界
3.2 现有的下界度量(lower bounding measures)
适合于DTW的有两种方法,一个是LB_Kim,一个是LB_Yi.
- LB_Kim:从序列中抽取四元组向量,分布式序列的第一个元素A,最后一个元素D、最小值B、最大值C。
- LB_Yi:考虑了一个序列中,超出另外一个序列的最大值及低于其最小值的所有点,认为这些点对于最终DTW距离的计算至少贡献了他们的平方差和最大最小值
,。
3.3 寻找下界方法(lower bounding measure)
首先介绍一下DTW算法的一些细节。
1)时间对齐的全局约束
除了第一节中列举的关于对齐路径(warping path)的约束,实际使用中对齐路径对路径离开对角线的距离有限制。矩阵中允许齐路径访问的子集称为对齐窗口,Figure6描述了两种常用的全局约束,Sakoe-Chiba band和Itakura parallelogram,全局约束限制路径的范围在灰色区域。全局约束可以加快DTW距离计算,更重要的,防止病态对齐,即一个序列的一小部分与另外一个序列的相对比较大的部对齐。
2)时间对齐的局部约束
基本思路是在确定对齐路径时候加上局部限制,如在计算DTW的动态规划算法中 ,把原来的递归模型
3)lower bounding measure
把全局和局部约束看成是对齐路径走哪一个点的约束
下图给出了U和L的示例:
显然,
用图像描述如下,可以看出,(B) Itakura parallelogram 比(A)Sakoe-Chiba band 更“紧”。
4. Indexing DTW
欧氏空间下保证no false dismissal的时间序列索引通常是在GEMINI框架下的。其中一个是Piecewise aggregate approximation(PAA), PAA 可以调整用了对DTW索引。
4.1 PAA介绍
时间序列
给定两个序列 Q 和 C, 可以把他们转换成
4.2. Modifying PAA to index time-warped queries
下界函数 LB_Keogh的计算需要n个值,n值非常大且是多维索引结构,我们需要一个可以处理的N维结构。利用PAA对U和L进行近似,有
基于此,可以定义下界函数 LB_Keogh的:
可以用来索引的最后一步是定义 MINDIST(Q,R) 函数,用来返回Q和R的下界距离,其中R是边界矩形的最小值(MBR),
最后,给出查询算法 KNNSearch(Q,K):
算法:
算法:范围搜索算法:
5.实验(略)
6. 致谢
作者感谢贪心学院的范老师对本文进行的讲解。
参考
- ^http://www.cs.ucr.edu/~eamonn/KAIS_2004_warping.pdf
- ^具体动态规划解法可以参考编辑距离的算法