## 论文学习—用一个可接受的的剪枝策略来加速动态时间规整聚类的算法
论文学习—用一个可接受的的剪枝策略来加速动态时间规整聚类的算法
“Accelerating Dynamic Time Warping Clustering with a Novel Admissible Pruning Strategy”
ABSTRACT
对时间序列的聚类在其本身是一个很有用的操作,对很多高级别的数据挖掘分析也是很重要的子工作,包括分类、摘要以及异常检测的数据编辑。
然而,有研究指出,基于欧式距离的相似性搜索的动态时间规整的一般优先性上消逝了,尤其是对我们展示的大的数据集,聚类的基础性作用不见了。因此,在DTW条件下对时间序列进行聚类仍然在计算上是一个挑战。
在本文中,我们下面两个方面来解决这个问题:
1.我们提出了一个新颖的策略,探索了上界和下界,避免了大碎片的昂贵的距离计算。这个剪枝策略是兼容性的,给了我们可证明的真实的结果来针对强力算法,这个方法至少将算法提高了一个数量级。
2.对数据集而言,这个级别的加速还是不适合的,我们证明我们可以用一个简单的启发式的算法来对不可避免的计算排序成一个最有效优先的顺序,这样将聚类问题转化成一个任意时间的问题。
[Note]本文中的我们指的是作者
INTRODUCTION
具体的时间序列的例子:
(图一:自2009年6月12日起,共有四个Twitter主题标签超过6天使用时间序列(统一标准收集)。 (最好观察的颜色))
它说明了我们在社交媒体数据集中发现集群中的一个子集,这种聚类允许我们至少部分地解决两个问题:
Synonym Discovery(同义词发现)
在这个例子中,我们有主题标签#Michael。我们并不清楚这是指的MichaelPhelps还是MichaelCaine?。然而,通过注意到这个集群还包含#MichaelJackson,这个歧义被解决了。
Association Discovery(关联发现)
这里我们看到#kanyewest和#taylorswift具有高度相似的时间序列表示,但显然不是同义词。我们测试看看这个关系是否存在于所示时间框架之前,但是我们发现它不是。这表明存在导致这种临时关联的事件,并且通过一些工作,我们发现在2009年视频音乐奖上着名的“I’mma let you finish”活动导致的。
在这个例子中,收集的知识显然是微不足道的; 请注意,当我们发现这个例子使用DTW的时,可能已经发现了具有计算效率的欧氏距离。然而,在某些情况下,事件之间可能存在偶然的关系(而不仅仅是关联),造成了峰值之间的局部滞后。DTW是捕获/保持不变的这种不同步关系的理想方式。
我们首先表明我们计划解决的问题,在以前的工作中还没有解决的,对不相关数据不变性的大时间序列数据集的鲁棒聚类,。
对于大多数时间序列数据挖掘算法,输出的质量几乎完全取决于所使用的距离度量。目前已经出现了一个共识:动态时间规整距离测量在大多数领域是最好的,几乎总是优于欧氏距离。
具体的例子:
考虑图2所示的三个随机选择的哺乳动物的两个聚类。输入数据是将线粒体DNA转换为时间序列表示(将DNA转换为时间序列是常用操作)。两种类型的DNA突变,插入和缺失都具有“扭曲”时间序列的作用。至少在这种情况下,我们可以看到,DTW对这些突变是不变的,并且正确地将Bos taurus (cattle) 、Hyperoodon ampullatus (bottlenose whale)、Talpa europaea (mole)组合在一起。
1.1 Why This Problem Is Hard
- DTW和欧氏距离的收敛导致数据量的增加
- 对于日益增长的数据集的下限修剪越来越有效,但是这没能对在DTW下聚类有所帮助。
1.2 Why Existing Work Is Not the Answer
作者举了一个家徽聚类的例子(图4):
这个例子中 在做着从这个数据集中尚未插入异常对象(对象13)时,使用k-means和DP进行聚类,都提供了完美的Rand Index。但是在作者插入异常对象(对象13)并重新排列算法后,从图4.bottom.left可以看出,k-means分配对象8-12到异常值对象的集群。除此之外,k-means是将伪对象1和2作为与对象集群3-6分开的集群。相反,从图4.bottom.right),我们可以看到DP只聚集在异常对象的集群中的对象8,但没有更改数据集的其余部分的集群标签。
2 RELATED WORK
来界定大多数文献有两个重要的和相互关联的选择:距离度量的选择和聚类算法的选择。在这里,作者只对基于时间序列形状的聚类感兴趣。
大量的基于形状的聚类算法可以在最高层划分为那些坚持解释(即聚类)所有数据与具有代表性权力的数据,以使某些数据不被聚集(少数)。一些研究工作尝试通过将DTW群集投放到anytime框架来缓解DTW群集性能的低落。大多数这样的努力减少到以下几点:直到有一个用户中断,这些框架不断地用真实的(慢计算的)DTW距离代替(快速计算)近似的DTW距离。如果没有用户中断,这样的框架将计算全距离矩阵(通常在一些聪明的“最有可能有用”的顺序),并返回精确的聚类。我们提出的算法在几个方面超越了这一点。最重要的是,我们表明在一般情况下不需要计算全距离矩阵。通过利用DTW的上限和下限,更关键的是通过利用这些边界之间的关系,我们可以计算精确的聚类,而只计算全距离矩阵的一小部分。
3 BACKGROUND
还有一些对于一些要聚类的数据集太大而无法适应主内存。这个问题设的置通常假设价格便宜的距离测量,但昂贵的磁盘访问。然而,我们希望解决的问题是利用DTW,它本身是一个非常昂贵的距离测量。因此,在甚至可以将数据存储在主存储器中的情况下,进行聚类所需的时间可能是几天/几个星期。因此,我们感兴趣的问题是CPU受限,而不是I / O约束。
3.1 Anytime Algorithms
Anytime Algorithms的解释:一个动态问题可能在这个条件下用A算法,另一条件下用B算法,A和B都可以叫做既定算法,用这些既定算法构造出来的能够随机应变的算法,就叫做AnytimeAlgorithm。
Using Anytime Algorithms in Intelligent Systems.
4 ALGORITHM
4.1 Density Peaks Algorithm Overview
我们提出的解决方案来自DP,最近在[24]中提出的基于密度的聚类算法。我们选择增加DP框架来解决大型时间序列聚类问题,原因如下:
- 时间序列的成功聚类需要有忽略一些数据对象的能力。它不仅仅是异常的对象本身是不可融合的,而是这些对象的存在可以以不可预测的方式影响可聚集对象的标签。DP算法已被证明能够忽略异常数据点。
- DP算法能够处理数据集使他的分类可以形成任意形状。假设这些聚类在空间中是“球”,这与k-means和相关算法均相反。这个观察对于DTW来说特别重要,这不是一个度量。虽然我们无法在度量空间中完全可视化DTW群集,但很明显,DTW下的某些类别对象会在DTW“空间”中形成复流形。
- 许多聚类算法需要用户设置很多参数。相比之下,DP算法只需要两个。此外,它们是相对直观的,而不是特别的对用户的选择敏感。
- 最后,DP算法恰好是优化和转换成任何时间算法的情况。
为了具体化,我们将花时间来解释我们在框架中适应和扩充的聚类算法。DP算法假设聚类中心被较低的局部密度邻域包围,并且距离具有较高局部密度的任何点处于相对较高的距离。因此,对于数据集中的每个点 i,DP算法计算两个量:
- 局部密度(ρi);
- 距离具有较高局部密度(δi)的点。
我们可以正式定义这两个数量:
- 点i的局部密度ρi是比一些截断距离dc更接近的点的数;
- 距离高密度点的距离是从点i到所有高密度点的最小距离δi。对于最高密度点的特殊情况,这个距离是所有点距离其较高密度点的距离的最大值。
Table 1 给出计算ρi的算法,Table 2 给出计算δi的算法。
给定所有对的距离矩阵D和截断距离dc,对于数据集中的每个点i,ρi以表1的1-3行计算。在表2中,使用表1的局部密度ρ,对于每个点i,计算具有较高密度的点的列表(行2)。在第4行中,此列表按降序排列。 从行5-7,对于排序顺序的每个点,计算与其较高密度点的距离。对于最高密度点(根据定义不具有较高密度邻域)的特殊情况,该距离在第8行中计算。给定每个对象的ρi和δi,DP算法计算聚类中心χ,并且基于这些中心执行聚类分配。
使用简单的启发式选择聚类中心:具有较高值(ρi×δi)的点更有可能成为中心。我们给出了聚类中心选择算法在表3中。
给定(ρi×δi)的排序值按降序排列,选择最顶部的k作为聚类中心(第1行)。k的值可以由用户指定,或者使用“换向”类型的算法自动发现。
DP算法的最后一步是聚类分配。每个数据项从本地密度较高的点列表中获取其最近邻(NN)的集群标签。我们给出表4中的聚类分配算法。
在第1-3行中,分配了中心的聚类标签。在初始化之后,数据集(中心本身除外)中的每一个点都按照局部密度(4-8行)的降序从较高密度列表中获取最近邻居的聚类标签,重要的是要注意,该算法允许聚类具有任意的,可能有非凸的形状,不同于k-means及其变量,它们仅限于输入空间的Voronoi分区。
4.2 TADPole: Our Proposed Algorithm(用空间换时间)
作者将他们提出的算法称为TADPole(Time-series Anytime DP)。为了使原始DP算法聚类数据集,需要知道所有对之间的距离。但是对于DTW的二次时间距离测量,计算所有对距离所需的时间变得不可行。为了减轻这一复杂度,作者增加了DP聚类框架,并利用DTW的上限和下限来修剪不必要的距离计算,从而产生至少一个数量级的加速。对于即使这种加速不足的数据集,也可以使用简单的启发式以最有用的顺序排列不可避免的计算。因此,作者所提出的的算法可以转换为Anytime聚类框架,快速产生一个很好的答案,并快速完善,直到它收敛到确切的答案。
TADPole算法的输入是数据集所有对象的真实DTW距离的下限和上限矩阵。请注意,计算这些数据所需的时间相对于整体聚类时间无关紧要(<1%)。
我们需要的唯一参数是截断距离(dc)和可选择的聚类数(k),如果用户希望指定此值,而不是使用[24]中提出的knee-finding启发式。请注意,我们使用这两个额外的上限和下限矩阵将算法的空间复杂度提高了200%。但是,这不是一个问题,因为:
- DP算法(特别是当使用DTW或其他昂贵的测量)是CPU限制,而不是空间限制。
- 如果真的有必要,我们可以大大减轻这个空间高架。下限矩阵将具有许多0元素,因此可以很好地编码为稀疏矩阵。
在4.2.1至4.2.4节中,作者展示了如何通过计算局部密度(ρ)和在所有局部密度大于i的数据点中,与i距离最小的那个数据点与i之间的距离(δ)期间可靠地修剪距离计算来加速TADPole算法。在第4.2.5节中,作者展示了如何重新排序这些计算,以使Anytime算法的回报率下降。
4.2.1 Pruning during Local Density Calculation
考虑图6所示的四种情况。
在TADPole算法的这个步骤中,输入是全部计算的下限(LB矩阵)和上限(UB矩阵)矩阵。对于每个对象对(i,j),在计算它们的局部密度(表1中的第1至3行)时,根据图6所示的以下四种情况,修剪它们的距离(Dij)计算:
Case A:对象i和j是相同的:
两个相同物体i和j的DTW距离等于它们的ED距离。它是在上限距离矩阵中的简单查找,并且不需要实际的DTW距离计算。这种情况在逻辑上是可能的,但非常罕见(图6.A))。
Case B: UBMatrix(i,j) < d:
如果物体i和j之间的上限距离小于截断距离(dc),则i和j绝对在dc距离内(图6.B))。因此,我们可以修剪这两个对象的DTW距离计算。
Case C: LBMatrix(i,j) > dc
如果i和j的下限距离大于截断距离,则这两个对象绝对不在dc距离内(图6.C))。因此,我们可以接受修改他们DTW距离的计算。
Case D: LBMatrix(i,j) < dc and UBMatrix(i,j) > dc
在这种情况下,我们无法判断i和j之间的实际DTW距离是否在dc之内。因此,只有在这种情况下,我们需要计算Dij(图6.D))。
考虑到这种情况,在表5中局部密度计算中我们指定正式的距离的剪枝算法。从表5可以看出,在第5至21行中,对于数据中的所有对象对,TADPole算法检查四种情况中的哪一种适用,以确定这些对象是否在截断距离内。情况B的发生告诉我们,所讨论的对象对绝对在dc(行10 -11)内,而不必计算昂贵的真实DTW距离。情况A(行8-9)和C(行12 -13)指定对象对不在dc内。只有情况D的出现迫使算法计算所讨论的对象对的真实DTW距离(行14 -19)。
4.2.2 Pruning during NN Distance Calculation from Higher Density List
在这一部分,作者的修剪策略有两个阶段。首先,对于每个项目,在较高密度列表中找到一个NN距离的上限;在第二阶段,基于这些上限执行实际的修剪。当TADPole的距离计算终止于数据集中的所有对象时,完成了从各自的较高密度列表中找到实际的NN距离。
- Phase 1: Upper bound calculation
给定每个对象i的DSparse和ρi,将其距离其较高密度列表ubi的NN距离的上限初始化为inf(无穷大)。对于i的较高密度列表中的每个对象j,要么有已经计算的实际DTW距离(Dij)要么可以访问上限(UBMatrix(i,j))得到该距离。
扫描项目i的较高密度列表,如果当前的ubi> Dij或ubi> UBMatrix(i,j),我们将当前的ubi更新为Dij(如果已经可用),否则更新为UBMatrix(i,j)。因此,就可以保证项目i的高密度列表的NN距离不能大于ubi。见图7。
在图7中,对象i的高密度列表中的元素是j1 -j4。假设只知道从对象i到对象j1和j3的DTW距离(分别为D1和D3,以蓝色显示)。因为不知道D2和D4,故在图7中将这些距离显示为灰色。当阶段1启动时,ubi被初始化为inf。现在TADPole算法扫描对象j1并将ubi更新为D1。因为UBMatrix(i,j2)和D3都大于ubi,所以不需要更新ubi。在最后一步,由于UBMatrix(i,j4)小于ubi,故将ubi更新为UBMatrix(i,j4)。这个ubi是距离对象i的更高密度列表的NN距离的上限。
表6给出了较高密度列表中NN距离计算的上限计算算法。
将对象的NN距离的上限向量从其较高密度列表初始化为inf(行1)。接下来,考虑对象i的较高密度列表中的每个项目δ_listi(j),检查当前上限是否可以收紧(行5 -13)。在第5-8行中,可知i和δ_listi(j)之间的实际距离是否已经被计算了,那么这个距离是否可以收紧ubi。如果还没有计算出距离,那么在第10-12行中,我们检查是否可以用i和δ_listi(j)之间的上限距离替换ubi。
在TADPole的这个阶段结束时,得到了ub,NN距离较高密度点的上限向量,的计算。我们现在描述在计算较高密度列表时利用ub修剪距离计算。
- Phase 2: Pruning
作者首先再一次地扫描每个对象的较高密度列表。 在表7的第5行中,对于对象i,测试LBMatrix(i,δ_listi(j))是否大于在表6中计算的ubi。如果是这样,修剪δ_listi(j)的距离计算(第6行)。 否则,如果已经计算了i和δ_listi(j)之间的真实距离,那么将该距离视为距离i的较高密度列表(第9行)的潜在NN距离之一。如果真正的距离还不知道,那么只需要计算它(第11-12行)。 最后,从其较高密度列表(第17行)计算所有对象的NN距离向量。
在图7中,可以看到LBMatrix(i,j2)和LBMatrix(i,j3)都大于ubi。因此,就可以修剪D2和D3。 在这个例子中,因为假设是知道D1的; 故在第二阶段完成修剪之后,只需要计算D4。
在这个TADPole阶段之后,对于每个对象,我们得到距离具有较高局部密度(δi)的点的NN距离。在这一点上,给定每个对象的ρi和δi,TADPole算法使用表3中的算法计算聚类中心χ,并根据表4中的算法执行基于这些中心的聚类分配。
4.2.3 Multidimensional Time Series Clustering
作者将TADPole扩展到多维案例需要更改一行代码,并且强调表5和表7的多维聚类的这些变化分别在表8和表9中。
4.2.4How Effective Is Our Pruning?
- 最坏情况
brute force DP algorithm:计算的全对距离矩阵 - 最好情况
the oracle variant of DP:只考虑那些有助于物体的实际密度的距离计算。除此之外,在从对象的较高密度列表计算NN距离期间,仅考虑实际的NN距离。
TADPole与这两种情况的比较见图8、9
4.2.5 Distance Computation-Ordering Heuristic
DP算法可以被认为是两步算法; 首先计算局部密度(表1),然后从对象的较高密度列表(表2)中找到NN距离。只有后一步可以任意排序; 前一步可能被视为setup time。
在尝试创建任何时间的排序功能之前,考虑两个基准是有启发性的:what is the best we could possibly do, and what would we have to do in order to claim we are beating the most obvious strawmen?
- 我们考虑的最好的排序启发式是一个oracle排序。我们可以通过允许算法作弊计算。在算法的每个步骤中,此顺序选择最大化当前RandIndex的对象。
- 将随机排序视为我们希望改进的基准。
作者所采用的数据集需要用DTW。在最初转坏的随机排列线性(逐步地)收敛于真正的聚类。相比之下,oracle算法在为仅仅五个对象的NN列表计算真实的DTW距离后,实现了完美的Rand Index。
像oracle的表现的那样,实际上可以非常接近它,就如图10中的蓝色曲线所示。序列启发式TADPole利用是从对象的较高密度列表中的局部密度(ρ)×上限距离(ub)的降序。
with a little introspection,很容易看出为什么距离计算 - 启发式算法与oracle排序一样接近。从4.1节回顾,较高的ρ×δ值的点更有可能成为聚类中心。直到从每个对象的高密度列表中计算出所有NN,是都无法访问它们的δ。然而,却可以通过紧的ub到δ的上限估计δ。距离计算 - 顺序启发式利用ub优先考虑更有可能成为中心的项目的距离计算。因为这些中心早先被选中,可以通过很少的实际距离计算实现了更高的RandIndex。
从图10.top),结合4.2.1和4.2.2节中描述的所有修剪策略,TADPole在完成所有可能的距离计算的约6%之后,实现了完美的RandIndex。 当然,它不会“实现”这一点,并且必须在可接受终止之前计算所有可能的距离计算的10%。