论文部分内容阅读
时间序列数据是一类重要的具有时序特征的数据对象。时间序列数据可以通过科学应用以及其他商业应用(例如,金融领域)方便的获取得到。一个时间序列是一组按照时间先后顺序排列好的数据采样观察值。具体地,时间序列数据的性质包括:数据规模大(大数据),高维度以及流数据特性(数据更新连续)。此外,时间序列数据采样点具有连续性和数值特性,整个时间序列可以被看成是一个整体的数据对象而非每个单独具体的数值采样点。由于时间序列可以方便的采集得到,大量的时间序列数据可以用于科学研究和深入的数据挖掘。在过去十年中,大量的科学工作者致力于时间序列数据挖掘工作,并取得了很多有效的成果。与此同时,由于时间序列数据的复杂特性,实际应用中时间序列数据挖掘面临了很多挑战。时间序列数据挖掘的目的之一是从时序数据形状角度,尝试抽取所有有意义的知识。整体上来看,时间序列数据挖掘同更一般的数据挖掘任务类似,同样是为了更好的挖掘、抽取得到可以用于进一步分析和应用的知识表示。尽管人类可以很直观的、很自然的通过时间序列数据“形状”上的特性获知每个时间序列的潜在知识,诸如:类别,是否相似,是否是反转点等。然而,对于任何一部计算机,它都只能完成基本的机械式的计算任务。任何包括类似人的这种感知、理解、识别的能力,计算机都无法直接获得。因此,包括数据挖掘、机器学习在内的领域,其根本任务均为设计相应的模型和算法,从某种程度上通过程序使得计算机获得这种智能的感知、理解和识别等能力。本文着重探索时间序列数据挖掘的若干问题。具体而言,本论文从时间序列数据分类、时间序列数据检索以及时间序列表示和建模等方面入手,结合现实生活中的若干具体问题提出了相应的模型和方法,并通过大量实验验证了这些方法的有效性和其在性能上的优势。本篇论文的主要目的之一是通过机器学习和数据挖掘的方法,结合具体工业、科学领域的具体问题,设计并提出解决相应问题的模型和方法,从而更好的解决现实世界中对应的时间序列数据的问题。我们希望本篇论文能够提供一种新的看待时间序列数据的视角给相关时间序列研究人员,从而使该工作获得更广泛的关注并被扩展、引申出更多深入的研究工作。本文的研究内容分为四个部分,分别探索时间序列表示方法,多元时间序列分类问题,时间序列快速检索以及时间序列分段表示以及建模问题。针对以上四个具体的时间序列数据挖掘问题,结合现实世界中四个具体的问题,我们相应的提出了四个具体的模型方法来解决这些问题。在过去十几年里,时间序列数据挖掘中的序列分类问题引起了学术界大量的关注。相应地,以往学者提出了许多有关时间序列分类的方法,并且认为基于最近邻(k-Neartest Neighbor,特别是1-NN)的方法是目前效果最好的分类方法。对于给定的具体分类问题,由于基于最近邻方法的分类效果主要依赖于距离度量的选择,因此,如何对给定问题选择一个合适的距离度量成为了时间序列数据挖掘中的一个热门的研究问题。目前,针对时间序列数据,已经存在许多基于不同角度设计的距离度量方法。其中,应用最为广泛的两个距离度量方法是欧式距离(Euclidean distance)和动态时间反转(Dynamic Time Warping)。欧氏距离是一种简单有效的度量方法,在一些实际的时间序列数据分类中,它可以获得比较好的分类效果。相对地,动态时间反转引入了两个序列对齐的概念,从而允许两个时间序列不同时间点的数据进行对齐。这种序列对齐的方法使得动态时间反转在一些分类场景下获得了比欧式距离好的效果。然而,动态时间反转主要的一个缺点是它需要更多的计算开销,并且,尽管结合1-NN方法,在许多场景下,它可以获得最好的分类效果,但是对于其他一些实际应用问题,它的分类效果没有明显优于其他度量方法。目前的研究结果表明,没有一种时间度量方法能够在所有时间序列数据上都可以获得最好的分类效果。另一方面,一般来说距离度量的选择需要人为的经验选择,因此,这需要大量的人力成本和时间开销。因此,对于时间序列数据如何自动的选择一个合适的距离度量是目前时间序列数据挖掘领域的一个挑战。借鉴特征学习的方法,我们探索距离度量学习方法在时间序列数据上的应用。具体地,通过距离度量的学习,针对不同的数据,我们可以自动的学习得到更好地距离度量方法,从而可以提升时间序列分类的准确率。过去几年,许多距离度量学习方法已经被提出。其中,一种通过线性变换的模型名为近邻成分分析(Neighborhood Components Analysis, NCA)的方法,通过学习得到的原始数据的低维表示方法,结合k-NN分类器,从而提升了分类的准确率。然而,这种简单的线性变换的局限在于它不能够对原始数据高阶的相关性进行建模,从而影响了分类的效果。因此,基于NCA方法,另一种称为非线性近邻成分分析(Nonlinear NCA)的距离度量学习方法被提出。这种方法能够学习获得原始数据更好的低维空间表示,从而可以获得比线性近邻成分分析方法更好的分类的准确率。遗憾的是,对于时间序列数据,以上两种距离度量学习方法不能够捕捉到时间序列的本质特性,即时间轴上的偏移(time shift)。为了能够捕捉时间轴上偏移的特性,我们结合卷积神经网络的优点,即时空不变形,针对时间序列数据,提出了一种全新的距离度量学习方法。具体地,我们基于非线性近邻成分分析方法(NNCA),设计了一种名为卷积非线性近邻成分分析的距离度量学习方法(CNNCA)。该方法不仅能够学习得到低维空间的非线性数据映射,并且可以捕捉到时间序列在时间轴上的偏移。通过学习得到数据的低维空间表示,结合1-NN分类器,我们通过大量实验证明了,对于许多数据集,这种基于卷积非线性近邻分析方法学习得到的距离表示可以获得比传统欧式距离,动态时间反转,基于窗口约束的DTW更好的分类效果。特别对于每个类别都含有大量充足训练数据的数据集,这种方法的优势更明显。另一方面,我们通过比较不同方法的效率,发现CNNCA对于大数据集和长时间序列具有效率上的优势。该项研究内容的主要贡献分为如下三个方面:·尽管目前已经存在若干关于时间序列距离度量学习方法的研究,但是就我们所知,过去的工作在学习距离度量过程中,基本上没有考虑时间轴上的偏移问题,而我们主要考虑时间序列的这个特性。·进而,我们针对时间序列数据提出了一种全新的距离度量学习方法(CNNCA).该方法能够通过卷积神经网络和多层感知机学习得到时间序列的组合特征表示,进而利用随机近邻分类的方法学习得到低维的距离度量表示。·通过在大量公开数据集上的实验对比,我们发现相比传统的时间序列距离度量(如欧式距离、动态时间反转等)以及提及的两种距离度量学习方法(LNCA和NNCA), CNNCA方法学习得到的距离度量都能够在某种程度上提升分类的准确率,特别对于相对较大规模的数据集。随着信息技术的发展和进步,传感器的价格越来越低廉,这使得近些年传感器的使用越来越普及。因此,大量的来自不同领域(例如,生物信息领域,金融领域,移动互联网以及医疗领域)的时间序列数据可以被容易的采集得到。于是,诸如一元时间序列分类问题、多元时间序列分类问题这些时间序列数据挖掘的研究问题得到了很多学者的关注。特别地,较比一元时间序列,多元时间序列数据对于潜在的特征模式能够提供更多的信息(通过不同的维度提供更多的视角),从而,多种角度的信息可以帮助提升时间序列分类的准确率。因此,多元时间序列分类任务在许多实际应用问题中变得越来越重要。在本项研究中,我们着重考虑多元时间序列分类问题。在过去十几年,已经有许多时间序列分类算法被提出。并且,许多以往的工作声称,在这些分类方法中,基于距离度量方法的k最近邻方法(k-NN)能够获得最好的分类效果。另一方面,更多的证据也表明,对于许多不同领域的时间序列数据,动态时间反转度量是目前效果最好的序列距离度量方法。因此,采用动态时间反转(DTW)度量的k-NN方法在大部分场景下可以获得最好的分类准确率。相对基于距离度量的方法,传统的基于特征的分类方法也可以应用于时间序列数据。然而,这种方法的分类准确率严重依赖于人工构造的特征质量。不同于其他数据类型,对于时间序列数据,我们很难直观的人为构造出很好的、能够捕捉到时间序列本质特性的特征表示,因此,基于特征的分类方法的分类效果一般没有基于距离度量的方法的分类效果好,特别对于1-NN和DTW方法。回顾之前提到的1-NN和DTW的不足,我们得到了如下的研究动机。针对基于特征的分类方法,是否可以提高其分类准确率?使得基于特征的分类方法不仅能够在计算效率上有优势并且在分类准确率上也有一定的竞争能力?受到深度学习应用在图像分类任务中的启发,我们设计并提出了一种应用于多元时间序列数据的深度学习框架。深度学习技术不需要人工构造特征表示,相对地,它可以通过原始数据自动的学习得到层次化的特征表示。具体地,我们提出了一种有效的多通道深度卷积神经网络(MC-DCNN)模型用于多元时间序列分类问题。该模型中,每一个通道的输入是相应多元时间序列中某个一元时间序列数据,每个通道独自的学习该一元时间序列的层次化的特征表示。并且,每个通道学习得到的特征表示再通过多层感知机进行特征的融合并进行分类。基于梯度的方法被用于模型的训练。我们通过几个真实世界的数据集对MC-DCNN方法以及对比方法进行评测。实验结果表明MC-DCNN方法的分类效果优于其他的对比方法并且具有更好的泛化能力(特别对于弱标注的数据)。此外,我们还对比了几种不同的激发函数和池化策略(pooling strategy),并且比较了不同激发函数和池化策略组合在训练过程中的收敛速率。为了进一步的提升分类效果,我们采用了一种无监督的预训练卷积神经网络的方法,并且提出了基于预训练的多通道卷积深度神经网络模型。同时,为了更好的感知模型学习得到的特征,我们对卷积层学习得到的局部特征进行了有效的可视化展示。地震学界对于实时的报告地震信息的进行大量的努力和研究。最近几年,这些研究和努力集中在地震预警系统的开发工作中。这些预警系统可以在地震发生后几秒到几分钟之内对公众发出预警消息。目前在世界范围内存在若干个地震预警系统,包括日本的REIS,墨西哥的SAS,台湾的VSN以及土耳其的IERREWS系统。美国的研究人员致力于开发针对加利福尼亚地区的ElarmS早期预警系统,然而该系统的效果不明显。目前已经存在若干鲁棒的算法用于自动的估计地震震源信息。例如,日本的REIS系统能够在P波(P-wave)到达之后5秒钟之内,利用密集的地震监测台站网络数据,得到地震的位置和震级信息。然而,尽管采用新近提出的基于格林函数以及矩张量反演方法,该系统仍然需要若干分钟甚至更多的时间来推断震源机制解信息。同样地,基于GPS数据的方法也需要若干分钟才能够得到大地震矩张量的几何中心。探索实时的推断地震震源机制、震源位置和震级有着非常重大的意义。以海啸预测为例,海啸预测需要使用全部的震源参数,包括震源深度,震级,滑动(slip)以及断层的走向(strike和dip)。例如,2010年10月25日发生在苏门答腊岛西部海域的震级为Mω7.7的浅层地震,引起了局部地区的海啸并且在几分钟之内到达该岛,使得400多人意外丧生。震源机制解的研究表明这次地震是由逆断层机制引起海水运动造成的。另一个相对的例子是在2012年4月11日发生的震级为Mω8.6的印度洋大地震之后大约两小时的震级Mω8.2的余震,该余震并没有引起海啸,尽管已经发布了预警信息。震源机制解的研究表明这两次地震都是由于走向滑动引起的。然而,相对较少的海水移动不太可能会引发海啸。实时的震源机制解估计对于监测地质断层的活动具有很重要的作用。通过分析1999年震级Mω7.6的伊兹米特地震,发现一系列前阵的震源机制解显示出相似的断层滑动方式。局部地区一组地震的震源机制解能够有助于刻画出该地区地质断层的活动。从而有利于实时的描绘出地震活跃区域的断层移动方式。估计震源机制解最大的挑战在于如何在获得地震数据后数秒钟之内更加快速自动化的得出结果。在本研究中,我们借鉴传统Web搜索引擎的思想,设计了一种基于图像的地震图搜索引擎(SeisE),用以在一秒钟之内完成对地震震源参数的估计。具体地,我们事先通过相应的地震模型构造得到大规模的地震图数据库并且用于后续的检索问题。类似于语音数据,每一个地震图数据可以认为是一个一元的时间序列数据,并通过地震监测台站记录得到地震引起的地表运动。每一个地震图即时间序列,包含有地震震源信息以及该地震波传播媒介的信息。假设我们采用的地球速度模型已知,我们采用前向建模方法(forward modeling)来模拟生成地震图并构建地震图数据库。通过设定每个参数的集合构建参数网格来完成地震图数据库的生成。地震搜索引擎的目的是查找得到输入地震记录在地震数据库中最相似的若干个地震图,即传统的时间序列检索问题。整个地震图搜索以及后续震源参数估计过程都可以自动的完成,而不需要人为的干预。因此,该地震搜索引擎可以用于日常自动化的地震震源参数的推断任务。我们通过若干具体的地震事件来验证我们方法的有效性以及效率。特别地,我们的方法可以在少于一秒钟时间内完成对输入地震事件的震源参数估计,同时对于发生在地震数据库之外区域的以及多个重叠地震事件(发生时间相近),我们的系统能够有效的区分出这些情况并且通过设定初始阈值进行过滤。过去二十年,股票收益或者股票指数预测吸引了许多研究者的关注。很长一段时间,为了预测股票市场的变化,主要存在两类预测方法。一种是基于基本面分析的方法,另一种是基于技术分析的方法。前者主要侧重于分析影响上市公司股票价格的各种因素,比如整体经济情况以及公司的经营状况等。目的是判断得出公司未来股票价格的长期走势。相对于基本面分析,技术分析方法也称为图表法,通过分析上市公司股票价格的历史数据,包括股票价格以及股票交易量等信息。至今,许多有效的基于曲线图模式的方法已经被用于预测股票价格的走势,比如,head and shoulder, cup and handle等基于形状的模式。此外,存在许多技术指标(technical indicator),例如,Moving Average, Relative strength index (RSI)等指标用于估计股票价格的反转点。技术分析方法主要采用曲线图模式以及领先的技术指标来预测股票价格走势,并且利用滞后的技术指标来确认预测得到的股票价格反转点。无论是基本面分析还是技术分析方法,两种方法都需要大量的人工分析并且强烈依赖于分析人员的经验和能力才能获得最后的决策。这样使得投资者花费大量时间在分析股市上和决策判断上。随着计算机相关领域的快速发展,科技技术的进步使得很多研究人员尝试采用数据挖掘或者机器学习的方法进行股票市场的预测。在过去二十年,许多有关股票市场预测方法被提出,包括基于机器学习的方法,比如基于神经网络的方法、基于支持向量机(SVM)的方法、基于模糊系统的方法和基于演化算法的方法等,以及基于统计模型的方法,比如基于GARCH (Generalized AutoRegressive Conditional Heteroskedasticity)模型的方法。这些研究的结果指出,定量分析(即技术分析)和定性分析(即基本面分析)对于股票价格的预测都是有帮助的。从基本面分析的角度看,社会上的公开信息,例如新闻,微博用户的整体情感以及有关上市公司股票的分析文章都会影响或者反应出整个股票市场的趋势。Web可以认为是金融信息最大的信息源(例如新闻文章和个体用户的观点等),并且,许多研究人员指出可以基于社会大众的情感分析从而预测股票市场的走势。股票市场被认为是一个高度复杂的系统,它包含了大量的噪声信息,并且是混沌的和非稳定的。已知很多研究人员曾经指出它们的方法(或者基于神经网络的,或者基于模糊逻辑的,或者基于任何其他的数据挖掘和机器学习方法)能够在某种程度上用来预测未来股票价格或者股票价格走势。然而,我相信大部分人员对此都这些方法的可靠性持怀疑的态度。另一方面,纵然我们相信这些方法可以在一定的准确率条件下预测股票市场,例如,55%,那么,对于这些预测的结果,我们怎么用来指导我们进行决策呢?直观地,在进行股票交易的过程中,我们最期望知道的信息是何时是短期时间内该股票的最低价格,并且,更好的情况是我们还可以获知何时是股票价格的最高值。为了简化说法,我们将这些局部时间的最低股价和最高股价合称为股票价格的反转点(turning points),具体地,将最低股价称为“山谷点(valley)”,将最高股价称为“山峰点(peak)”。股票价格反转点可以认为是股票价格序列的一种高等级的抽象表示。任何股票价格序列都可以用一个反转点的序列来表示(山谷点和山峰点交替出现)。如果我们能够相对准确的预测反转点的出现,那么理想的交易决策应该是在山谷点买入股票并且在山峰点卖出股票。基于这种交易策略,我们最终的收益将会增加。然而,如何才能知道何时是反转点呢?如果我们将这个问题考虑为分类问题,并且期望通过数据挖掘方法或者机器学习方法来预测反转点的出现,那么这个问题主要包括两个挑战。第一是怎样获得训练数据,即如何获得已知反转点的股票价格序列数据。第二是如何在已知训练数据的情况下,构造有效地特征从而用来进行反转点的预测。本研究内容主要尝试探索以上两个问题。具体地,我们通过设计得到一种股票反转点预测的方法,最终得到基于预测反转点的股票交易决策支持系统。该系统主要包括两部分内容,一是通过逐端重要点(PIP)识别方法以及逻辑规则方法得到反转点的训练数据。二是通过大量丰富的技术指标(technical indicator)作为反转点的特征进行反转点的预测任务。该项研究目的之一是探索技术指标是否对股票反转点的预测有帮助,另一个目的是通过预测的反转点可以对股票交易人员提供更好的决策支持。