CN110309193A - 使用基于上下文的相似性来比较时间序列数据 - Google Patents

使用基于上下文的相似性来比较时间序列数据 Download PDF

Info

Publication number
CN110309193A
CN110309193A CN201910182234.5A CN201910182234A CN110309193A CN 110309193 A CN110309193 A CN 110309193A CN 201910182234 A CN201910182234 A CN 201910182234A CN 110309193 A CN110309193 A CN 110309193A
Authority
CN
China
Prior art keywords
window
time series
time
watch window
time sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910182234.5A
Other languages
English (en)
Other versions
CN110309193B (zh
Inventor
R·博尔达维克尔
何天琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN110309193A publication Critical patent/CN110309193A/zh
Application granted granted Critical
Publication of CN110309193B publication Critical patent/CN110309193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • G06N5/047Pattern matching networks; Rete networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/08Feature extraction
    • G06F2218/10Feature extraction by analysing the shape of a waveform, e.g. extracting parameters relating to peaks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及使用基于上下文的相似性来比较时间序列数据。本公开涉及时间序列分析,并且更具体地涉及基于感兴趣的窗口周围的上下文进行时间序列分析。识别第一时间序列中的第一观察窗口。第一观察窗口之前是第一时间序列的第一部分。使用第一时间序列的第一部分和第一观察窗口训练神经网络,并且从神经网络的中间层提取权重。基于权重生成第一特征向量。识别第二时间序列中的第二观察窗口,其中第二观察窗口之前是第二时间序列的第一部分。确定与第二观察窗口相关联的第二特征向量。第二特征向量至少部分地基于第一组权重。基于比较第一特征向量和第二特征向量来确定第一和第二观察窗口之间的相似性。

Description

使用基于上下文的相似性来比较时间序列数据
技术领域
本公开涉及时间序列分析,并且更具体地,涉及基于感兴趣的窗口周围的上下文进行时间序列分析。
背景技术
时间序列是根据时间排序的数据序列。例如,与天气相关的时间序列可以包括关于一段时间内在特定位置的温度的数据。时间序列可以是连续的(例如,由为每个时刻提供数据值的函数表示)或离散的(例如,以离散时间间隔采样的一组数据点)。附加地,在一些情况下,使用一个或多个连续函数来近似离散化的时间序列以便使趋势可视化或预测数据中的变化或者离散化连续的时间序列是有用的。
比较各种时间序列以确定不同时间、地点和数据主题之间的相似性常常是有用的。例如,表示几周以来的温度数据的时间序列可能对于预测明天的温度是有用的。类似地,可以将包括来自物理位置的温度数据的时间序列与对于另一个位置的相似数据序列进行比较。附加地,在一些情况下,可以将关于第一主题(例如,温度)收集的时间序列数据与其他(例如,与能源使用相关的)时间序列数据进行比较,以识别数据主题之间的关系并预测每个数据主题的未来值。用于比较时间序列数据的现有解决方案是不完整的且过度受限的。
发明内容
根据本公开的一个实施例,提供了一种方法。该方法包括识别定义第一时间序列中的一段时间的第一观察窗口,其中第一观察窗口之前是第一时间序列的第一部分。该方法包括基于第一时间序列的第一部分和第一观察窗口训练第一神经网络,并且从第一神经网络的一个或多个中间层提取第一组权重。该方法还包括至少部分地基于第一组权重来为第一观察窗口生成第一特征向量。识别定义第二时间序列中的一段时间的第二观察窗口,其中第二观察窗口之前是第二时间序列的第一部分。该方法还包括确定与第二观察窗口相关联的第二特征向量,其中第二特征向量至少部分地基于第一组权重,并且至少部分地基于比较第一特征向量和第二特征向量来确定第一观察窗口和第二观察窗口之间的窗口相似性。
根据本公开的第二实施例,提供了一种系统。该系统包括一个或多个计算机处理器和包含程序的存储器,该程序在由一个或多个计算机处理器执行时执行操作。该操作包括接收第一时间序列和第二时间序列。该操作还包括识别定义第一时间序列中的一段时间的第一观察窗口,以及识别定义第二时间序列中的一段时间的第二观察窗口。附加地,通过将第一时间序列的第一部分与第二时间序列的第一部分进行比较来生成先前相似性度量,其中第一时间序列的第一部分在第一观察窗口之前并且第二时间序列的第一部分在第二观察窗口之前。最后,该操作还包括至少部分地基于所生成的先前相似性度量来确定第一观察窗口和第二观察窗口之间的窗口相似性。
根据本公开的第三实施例,提供了一种计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其实施的计算机可读程序代码,该计算机可读程序代码可由一个或多个计算机处理器执行以执行操作。该操作包括识别定义第一时间序列中的一段时间的第一观察窗口,其中第一观察窗口之前是第一时间序列的第一部分。该操作还包括基于第一时间序列的第一部分和第一观察窗口训练第一神经网络,并且从第一神经网络的一个或多个中间层提取第一组权重。该操作还包括至少部分地基于第一组权重来为第一观察窗口生成第一特征向量。识别定义第二时间序列中的一段时间的第二观察窗口,其中第二观察窗口之前是第二时间序列的第一部分。该操作还包括确定与第二观察窗口相关联的第二特征向量,其中第二特征向量至少部分地基于第一组权重,并且至少部分地基于比较第一特征向量和第二特征向量来确定第一观察窗口和第二观察窗口之间的窗口相似性。
附图说明
图1示出了能够实现本公开的一个实施例的计算设备的框图。
图2包括根据本文公开的一个实施例的将时间序列数据绘制为时间的函数的若干图。
图3示出了根据本公开的一个实施例的用于比较时间序列的神经网络。
图4是示出了根据本文公开的一个实施例的比较时间序列的方法的流程图。
图5是示出了根据本文公开的一个实施例的处理时间序列数据的方法的流程图。
图6是示出了根据本公开的一个实施例的基于周围上下文为时间序列数据中的观察窗口生成特征向量的方法的流程图。
图7是示出了根据本文公开的一个实施例的比较时间序列数据的方法的流程图。
图8是示出了根据本文公开的一个实施例的比较时间序列数据的方法的流程图。
具体实施方式
利用现有方法,基于比较来自所选择的感兴趣的窗口的数据来比较时间序列。也就是说,为了识别与所选择的时间序列相似的其他时间序列,必须首先确定要比较的数据片段。如果用户对识别与第一时间段期间收集的数据相似的时间序列数据感兴趣,则现有解决方案允许基于第一时间段内包含的数据值将该第一时间段与其他时间序列数据进行比较。这些解决方案典型地利用基于所识别的时间片段内的每个时间步长的值(例如,每五分钟采样一次的今天捕获的数据)定义的相似性函数。因此,现有解决方案基于用户感兴趣的时间窗口内的值来定义相似性,而不考虑该时间窗口的上下文。本公开的实施例基于关注的时间窗口的上下文实现时间序列分析,而不是仅基于时间窗口本身内的数据值。
例如,假设时间序列数据被收集并被描绘(delineate)成每小时的片段。当识别与特定时间片段相似的其他时间片段时,现有解决方案涉及将特定时间片段内的数据与其他识别的时间片段内的数据进行比较。然而,本公开的实施例涉及分析特定时间窗口之前的数据,而不是仅分析时间窗口内的数据。类似地,在一些实施例中,后续数据(例如,所选择的时间窗口之后的时间片段)被分析以识别相似于相关时间序列片段。以此方式,本公开的实施例利用感兴趣的窗口的上下文来识别相关的时间序列,这可以帮助识别相似的因果关系以及相关的效果。
图1示出了被配置为实现本公开的一个实施例的计算设备105的框图。所示出的计算设备105包括处理器110、存储器115、存储装置120和网络接口125。在所示出的实施例中,处理器110检索并执行存储在存储器115中的编程指令,以及存储并检索驻留在存储装置120中的应用数据。处理器110表示单个CPU、多个CPU、具有多个处理核的单个CPU等。在一些实施例中,处理器110可以附加地或可替代地包括一个或多个GPU。通常包括存储器115以表示随机存取存储器。存储装置120可以是磁盘驱动器或基于闪存的存储设备,并且可以包括固定和/或可移动存储设备,诸如固定磁盘驱动器、可移动存储卡或光存储装置、网络附属存储装置(NAS)或存储区域网络(SAN)。另外,网络接口125用于经由一个或多个网络(例如,因特网)将计算设备105通信地链接到其他设备。
如图所示,存储器115包括用于基于周围上下文比较时间序列数据的分析应用130。分析应用130包括预处理组件135、特征提取器140和比较组件145。在实施例中,预处理组件135处理时间序列数据以便于时间序列分析。例如,在一个实施例中,时间序列构成时间上的离散时刻的数值。在一些实施例中,必须将时间序列转换为符号或字符序列,以便于生成特征向量。也就是说,在一些实施例中,直到预处理组件135第一次将时间序列数据转换为一系列符号,而不是数字数据,才能为时间序列数据生成特征向量。在一些实施例中,预处理组件135可以附加地对时间序列数据执行其他操作,诸如定义时间片段、平滑操作、去除异常值或毛刺等。
在一个实施例中,将数字时间序列数据转换为符号序列涉及识别数据中的模式并为每个模式指派符号。例如,在一个实施例中,预处理组件135尝试主题搜索以找到数据中的典型主题(例如,模式),以及识别以确定每个主题(motif)在序列中发生的位置。然后可以使用固定符号集合(例如,每个主题一个符号)将该序列编码为这样的符号或字符的序列。
在一个实施例中,为了将时间序列数据转换为符号序列,预处理组件135将时间序列描绘成相等长度的片段。在一些实施例中,每个片段的长度是用户定义的。在一个实施例中,一旦创建了片段,则基于每个片段内的数据值对片段进行分簇。然后,预处理组件135可以为每个簇指派符号或字符,并且从而将原始时间序列表示为符号序列。也就是说,每个片段与指派给该片段所属于的簇的符号相关联,并且时间序列被编码为这样的符号的序列。在一些实施例中,数字时间序列数据必须被转换为符号序列,因为神经网络未被配置为处理数字数据。
在一些实施例中,预处理组件135可以将簇的数量限制为预定数量。在一些实施例中,预处理组件135可以使用不同长度的时间序列片段生成多组簇,以便找到最佳分簇。也就是说,在一个实施例中,预处理组件135可以将时间序列描绘成第一大小的片段并将这些片段分簇成第一簇集合,并且还将时间序列描绘成第二大小的片段并将这些片段分簇成第二簇集合。在这样的实施例中,预处理组件135然后可以继续选择最佳的簇集合(例如,具有最小的簇间相似性、最高的簇内相似性等的簇集合),以及基于最佳的簇集合处理时间序列。
在所示实施例中,特征提取器140用于为所选择的(一个或多个)时间窗口生成特征向量。这允许基于对应的上下文比较时间序列数据。通常,至少部分地基于窗口的上下文(例如,基于周围数据)为所选择的窗口生成特征向量。例如,在一个实施例中,时间序列用于训练神经网络,并且提取与神经网络的(一个或多个)中间层相关联的权重以便为所选择的时间窗口形成特征向量。下面将参考图3更详细地讨论此过程。
一旦创建了特征向量,比较组件145就可以将所生成的特征向量与表示其他数据序列中的时间窗口的特征向量进行比较。例如,在一个实施例中,比较组件145为特征向量计算余弦相似性,以便生成指示相关联的时间序列有多相似的相似性度量。有利地,因为特征向量基于窗口的上下文而不是仅基于窗口中的数据,所以比较组件145捕获特定时间片段(例如,时间窗口)之间的语义距离(而不是语法距离或数值差异)。在各种实施例中,可以以各种方式使用该相似性度量。例如,如果用户想要预测将在所选择的窗口之后的时间序列,则所选择的上下文可以包括后续时间序列。通过基于后续数据为窗口生成特征向量,可以识别不同时间序列中的相似时间窗口,以帮助预测所选择的时间序列的可能的未来数据,如下面将更详细地讨论的。
在所示实施例中,存储装置120包括多个时间序列150。在一个实施例中,每个时间序列150对应于已由分析应用130处理的数据序列。也就是说,在一个实施例中,每个时间序列150包括为时间序列中的至少一个所选择的感兴趣的窗口生成的特征向量。以此方式,当接收并处理新的时间序列时,分析应用130可以将所生成的特征向量与已经被处理和存储的每个其他时间序列150进行比较。这允许识别可能与当前序列相似的时间序列150。
图2包括根据本文公开的一个实施例的将各种时间序列数据绘制为时间的函数的若干图200。所绘的时间序列数据可包括随时间收集的任何类型的数据。例如,在实施例中,时间序列数据可以包括与地球物理测量结果(例如,温度、海平面,风速等)、能源使用、计算资源使用、人口、拥挤、能源水平、医疗保健数据(例如,血压、心率等)相关的数据以及可以在时间窗口上收集的任何其他数据。每个图205a-205c包括将相应时间序列210a-210c绘制为时间的函数。如图所示,时间被描绘在横轴上,并且时间序列210a-210c中的在对应时间的数据值被描绘在纵轴上。
在所示的实施例中,时间序列210a-210c被绘为连续函数。在实施例中,每个时间序列210a-210c可以替代地包括离散数据点序列(例如,每秒一次、每三十秒一次、每分钟一次、每小时一次等)。在实施例中,随着数据间隔减小以及样本数量增加,所得到的时间序列近似于平滑的连续数据序列,尽管其具有离散性质。类似地,在所示的实施例中,数据值可以取任何值(例如,数据序列可以从较低值平滑过渡到较高值)。然而,在一些实施例中,时间序列被量化为离散数据值(例如,在每个时刻观察到的数据值可以被舍入到最接近的整数)。无论时间序列数据是离散的还是连续的,并且无论数据是否被量化,都可以应用本公开的实施例。
所示的时间序列210a-210c被各自分成与各自中的所识别的感兴趣的窗口相关的三个片段。例如,在图205a中,如果选择了窗口213,则片段211和215对应于所选择的感兴趣的窗口的上下文。具体地,时间序列210a的部分211对应于先前数据,并且部分215对应于后续数据。在一个实施例中,用户可以定义要与其他时间序列比较的感兴趣的窗口。例如,在所示的实施例中,用户可以将时间212和214之间的时间段定义为应该为其检索相似时间序列的感兴趣的窗口。在一些实施例中,可以自由选择该窗口。在一些实施例中,用户从时间序列中的预定义片段中进行选择,并且时间标记212和214对应于预定义片段的边缘。例如,在这样的实施例中,片段213可以对应于一天,而片段211对应于前一天,并且片段215对应于后一天。
在一些实施例中,先前和后续的时间片段(分别为211和215)覆盖与所选择的时间窗口213相同的时间长度。在其他实施例中,先前和后续的片段211和215可以比所选择的窗口213更长或者更短。在一些实施例中,上下文的大小(例如,要考虑的窗口213之前和/或之后的时间长度)是用户可配置的。在一些实施例中,基于上下文内所包括的每个不同的时间长度生成相似性度量。例如,在这样的实施例中,可以仅利用前一小时的数据、前后一小时的数据、前两小时的数据、前后两小时的数据等来生成单独的相似性度量。以此方式,用户可以根据所选择的上下文更容易地确定每个窗口之间的相似性。
如图所示,图205b类似地包括被分成(由时间戳218和220定义的)三个片段217、219和221的时间序列210b。附加地,所示的实施例包括图205c,其示出了被分成(由时间戳224和226定义的)三个片段223、225和227的时间序列210c。假设用户希望确定窗口213是与窗口219还是窗口225更相似。如果仅考虑窗口213、219和225内的数据值,则窗口225将作为最相似的返回。也就是说,如图所示,窗口213和窗口225内的数据值遵循相似的轨迹。在窗口213和225中,数据在中间值处开始,增加到相对较高的水平,然后在以较高的值稳定(level out)之前稍微下降。相反,在窗口219中,数据值在中间值处开始并保持相对低,直到该值朝向窗口219的末端急升。
然而,如果考虑窗口213、219和225的上下文,则所得到的相似性度量不同。例如,如上文所讨论的,分析应用130可以基于先前和/或后续的片段211和215为窗口213生成特征向量。类似地,在实施例中,分析应用130可以基于它们相应的上下文为每个窗口219和225生成特征向量。通过比较对应于每个窗口213、219和225的这些所生成的特征向量(特征向量是基于与每个窗口相应的上下文生成的),分析应用130可以确定窗口219与窗口213更相似。也就是说,尽管每个窗口213和219内的数据值看上去不同,但它们周围的上下文(例如,片段211、215、217和221中的数据值)相似得多。
以此方式,分析应用130可以基于周围的上下文确定时间序列210b(或更具体地,窗口219)与所选择的窗口213更相似。在实施例中,这允许将窗口213和219分类为相同的类别,因为在每个窗口213和219内捕获的数据值可以由相同的事件(例如,如先前的片段211和217中所反映的事件)引起并且可以导致相同的结果(例如,如由后续的片段215和221所表示的)。这允许更深入地理解可以在数据中识别的时间原因和效果,而不是仅仅比较所选择的窗口内的数据。在一些实施例中,该比较可以用于生成关于未来的预测。例如,假设片段215中的数据不可用(例如,因为时间214是当前时间,并且片段215尚未发生)。利用上面讨论的比较,分析应用130可以确定在即将到来的片段中,数据值有可能将急剧下降。也就是说,因为分析应用130已经确定窗口213与窗口219非常相似(基于它们的先前的上下文),所以可以预测窗口213之后的时间片段将有可能与窗口219之后的片段相似。
在各种实施例中,分析应用130可以基于所确定的相似性采取各种动作。例如,如上文所讨论的,分析应用130可以确定由时间序列210a表示的数据值可能在下一个时间片段中显著下降。在一个实施例中,分析应用130可以向用户提供指示,使得用户可以为下降做好准备。例如,如果数据值表示温室中的温度,则用户可以抢先启用更多的加热器。类似地,如果时间序列210a对应于能源或计算资源需求,则可以通过理解即将到来的需求来更好地平衡负载。
在一些实施例中,分析应用130本身可以触发这些改变(而不是向用户指示应该进行改变)。例如,在一个实施例中,分析应用130可以为即将到来的时间片段生成并发送控制信号以自动控制计算资源,或者激活温控空间中的加热器。以此方式,分析应用130使得能够利用基于所选择的窗口的上下文生成的预测来主动控制系统,而不是基于在偏移和变化发生时对它们进行响应的反应式控制。
图3示出了根据本公开的一个实施例的用于比较时间序列的神经网络300。如上文所讨论的,在一些实施例中,利用神经网络生成用于所选择的时间窗口的特征向量。在所示的实施例中,神经网络300包括多个节点302-324(通常被称为神经元)并且被训练为在被提供输入时间序列350时生成输出时间序列355。神经网络300一般可以被逻辑地分为三个部分:输入层335、输出层345和一个或多个中间层340。在所示的实施例中,神经网络300包括两个中间层340。在其他实施例中,神经网络300可以包括任何数量的中间层340(包括单个中间层340)。在图示中,每个层被完全连接。也就是说,每个神经元都连接到先前一层和后续一层中的每个其他神经元。然而,在一些实施例中,这些层中的一个或多个层未被完全连接并且可以具有任何连接布置。
为了训练神经网络300,提供输入时间序列350作为神经网络300的输入。神经网络300通过其各个层将输入映射到输出。然后将(在输出层345处)得到的输出与目标时间序列355进行比较。使用损失函数评估该比较,并且所计算的损失通过神经网络300向后传播以调整每个层/节点处的权重。一旦完成该训练过程,则神经网络300在它接收输入序列350时可以生成与目标时间序列355高度相似的输出。具体地,通过提供每个时间窗口和对应的上下文来训练神经网络300。如上文所讨论的,在一些实施例中,时间序列在由特征提取器140处理之前首先由预处理组件135转换为字符序列。也就是说,尽管输入被示为时间序列350,但是用作输入的实际数据结构可以是字符串、或字符串的矢量化表示,如下面将更详细地讨论的。
在一个实施例中,神经网络300被训练为在被提供相关联的上下文时间序列数据350时生成对应于感兴趣的窗口的时间序列数据355。也就是说,在一个实施例中,特征提取器140将神经网络300训练为基于相关联的上下文(例如,片段211、215或两者)产生与时间序列210a中的窗口213相对应的时间序列数据片段。例如,在这样的实施例中,特征提取器140可以首先确定期望的上下文(例如,是否要基于先前片段211、后续片段215或两者,将其他时间序列与所选择的窗口213进行比较,以及要包括的上下文的量)。然后,特征提取器140可以将该确定的上下文提供给神经网络300作为输入,以及提供所选择的窗口213作为目标输出。以此方式,神经网络300被训练为在被提供窗口的相关联的上下文时生成窗口213。
在另一实施例中,神经网络300被替代地训练为在被提供所选择的窗口时生成与感兴趣的窗口的上下文对应的时间序列355。也就是说,在一个实施例中,特征提取器140将神经网络300训练为基于接收窗口213产生与时间序列210a中的窗口213周围的上下文相对应的时间序列。例如,在这样的实施例中,特征提取器140可以首先确定期望的上下文(例如,是否基于先前片段211、后续片段215或两者将其他时间序列与所选择的窗口213进行比较)。然后,特征提取器140可以将窗口213提供给神经网络300作为输入,以及提供所确定的上下文作为目标输出。以此方式,神经网络300被训练为在被提供窗口213时生成相关联的上下文。
在实施例中,(一个或多个)中间层340中的每个节点包括基于该训练过程调整的一个或多个权重,使得在给定输入序列350的情况下生成适当的时间序列355。在一个实施例中,在使用所有可用的时间序列150训练神经网络300之后,来自一个或多个中间层的权重被提取并被用于为每个时间窗口产生特征向量,如下面将更详细地讨论的。在一些实施例中,可以在创建特征向量之前操纵或处理权重(例如,权重可以被舍入、缩放等)。
在一些实施例中,为每个时间序列窗口生成的特征向量与指定大小(例如,上下文的持续时间)的指定上下文(例如,先前或后续)相对应。在一些实施例中,用于窗口的特征向量基于整个上下文(例如,先前和后续时间片段两者)。在一些实施例中,特征提取器140可以生成多个特征向量(例如,一个基于先前的上下文,一个基于后续的上下文,并且一个基于对先前和后续上下文两者的考虑)。在这样做时,分析应用130可以基于优选的上下文容易地比较时间序列150。
附加地,在一些实施例中,特征提取器140基于用于每个片段的相关联的上下文,为每个时间序列150中的所有定义的时间片段生成一个或多个特征向量。例如,除了基于上下文(片段211和/或片段215)为片段213生成一个或多个特征向量之外,特征提取器140还可以基于对应的上下文(片段213、后续片段或两者)为片段215生成一个或多个特征向量。类似地,特征提取器140可以基于与片段211对应的上下文(片段213和/或先前时间片段)为片段211生成一个或多个特征向量。在实施例中,这些特征向量中的每一个与时间序列150一起存储,因此它可以与新生成的特征向量进行比较。以此方式,当用户选择的感兴趣的窗口被接收并处理时,它可以容易地与每个时间序列150的每个片段进行比较。
图4是示出了根据本文公开的一个实施例的比较时间序列的方法400的流程图。方法400开始于框405,在框405处分析应用130接收时间序列。如上文所讨论的,时间序列包括与时间间隔相对应的一系列数据点或数据序列。在框410处,分析应用130识别感兴趣的窗口。在一些实施例中,该窗口可以由用户指定。在一些实施例中,分析应用130可以处理所接收的时间序列内的每个时间片段,以便为每个单独的时间片段生成对应的(一个或多个)特征向量。可以存储这些特征向量以供将来使用。也就是说,在一个实施例中,分析应用130可以基于时间序列中的每个单独片段的周围上下文来生成特征向量,而不是仅仅基于所识别的感兴趣的窗口。以此方式,分析应用130可以将新接收的时间序列中的用户选择的窗口与已经处理的所有其他时间序列150中的所有其他窗口进行比较。
在框415处,分析应用130确定在识别相似时间序列150时应当考虑的期望的上下文。例如,在实施例中,期望的上下文可以是先前片段、后续片段或两者。类似地,如上文所讨论的,在一些实施例中,期望的上下文可以包括在生成特征向量时应该考虑在窗口之前和/或之后多少数据的指示。在框420处,特征提取器140为所选择的窗口(或为每个窗口,如上文所讨论的)生成特征向量。在框425处,比较组件145将所生成的特征向量与每个其他时间序列150进行比较。也就是说,如上文所讨论的,在一个实施例中,存储在存储装置120中的每个时间序列150具有与其相关联的已经由特征提取器130生成的一个或多个特征向量。附加地,在实施例中,每个生成的特征向量与时间序列150中的特定片段或窗口相关联,以允许识别相关的时间序列150,以及时间序列150内的特定的相似片段。
在一个实施例中,比较组件145通过根据所确定的上下文将所接收的时间序列中的所选择的窗口与存储装置120中的每个时间序列150进行比较来生成多个相似性度量。在一些实施例中,如上文所讨论的,所生成的特征向量基于先前和后续上下文。在这样的实施例中,可以生成考虑先前和后续上下文两者的单个相似性度量。在一些实施例中,为先前和后续上下文定义单独的特征向量。在一个实施例中,比较组件145可以基于先前的上下文生成先前的相似性度量,以及基于后续的上下文生成后续的相似性度量。在实施例中,根据一个实施例,然后可以组合这些度量以生成统一的窗口相似性。
基于这些比较,在框430处,分析应用130识别相似时间序列150或时间序列150内的特定窗口或片段。例如,如果用户提供具有指示的感兴趣的窗口的时间序列,则分析应用130可以返回其他时间序列150中的时间窗口列表,这些时间窗口根据它们与所提供的窗口的相似性进行排序。在一些实施例中,分析应用130识别并提供超过预定义阈值的任何匹配。例如,在一个实施例中,相似性度量的范围从0到1,并且提供超过阈值的所有匹配。在一些实施例中,阈值是用户定义的。在一些实施例中,分析应用130返回预定数量的匹配,这些匹配根据它们的相似性度量进行排序。
在一些实施例中,所生成的相似性度量用于训练一个或多个机器学习模型以预测与输入数据序列相对应的未来数据序列。例如,在一个实施例中,可以提供对应于第一时间窗口的后续时间片段作为机器学习模型的目标输出,同时提供第一时间窗口作为输入。为了提供附加的数据点,在一个实施例中,与超过预定义阈值的所生成的相似性度量相关联的其他时间窗口的上下文也被用作目标输出,同时对应的时间窗口被用作输入。也就是说,在一个实施例中,如果确定窗口A相似于窗口B(例如,因为所生成的相似性度量超过预定义阈值),则可以使用窗口A和B的上下文(例如,后续数据)作为目标输出并且窗口A和B用作提供的输入,来训练机器学习模型。以此方式,可以部分地基于所确定的相似性度量来训练一个或多个机器学习模型,以接收作为输入的时间序列或时间窗口并生成预测输出序列。
图5是示出了根据本文公开的一个实施例的处理时间序列数据的方法500的流程图。方法500开始于框505,在框505处预处理组件135选择在处理数据时使用的分辨率。例如,在一个实施例中,用户可以指示预处理组件135将数据描绘成各自跨越预定义的时间段、包括预定义数量的度量等的时间片段。在一些实施例中,如上文所讨论的,预处理组件135可以处理具有多个不同分辨率的数据,并基于所得到的簇来选择最佳的一个。在框510处,预处理组件135通过将时间序列细分为与所确定的分辨率相对应的长度相等的片段来创建数据片段。然后,方法500前进到框515,在框515处预处理组件135基于片段的相似性来对片段分簇。在框520处,预处理组件135确定是否存在要使用的附加的分辨率。也就是说,预处理组件135可以确定用户是否已经请求使用多个分辨率,并且如果是,则确定是否还要使用附加的分辨率。当然,在一些实施例中,预处理组件135使用单个预定的分辨率。如果附加的分辨率可以使用,则方法500返回到框505。
如果没有附加的分辨率(例如,因为预处理组件135利用单个分辨率、用户已请求特定分辨率、或者已经使用所有定义的分辨率来对数据分簇),则方法500前进到框525,在框525处预处理组件135基于簇和/或用户选择来确定最佳分辨率。例如,如果用户已定义所期望的分辨率,则使用该分辨率。在一些实施例中,预处理组件135比较分辨率中的每一个以确定哪个分辨率生成具有最高的簇内相似性、最低的簇间相似性等的簇。在确定最佳分辨率之后,方法500继续到框530,在框530处预处理组件135将符号指派给每个生成的簇。每个符号可以是例如使用字母数字字符的字母或数字。然后,方法500前进到框535,在框535处预处理组件135基于所确定的簇以及他们对应的符号将时间序列转换为符号序列。例如,对于时间序列中的每个时间片段,预处理组件135确定它被指派给哪个簇,以及什么符号与该簇相关联。该符号然后被用于表示该片段,并且预处理组件135前进到下一片段。以此方式,创建符号或字符序列以表示时间序列。然后可以使用该符号序列来训练神经网络,如下面将更详细地讨论的。
图6是示出了根据本公开的一个实施例的基于周围上下文为时间序列数据中的观察窗口生成特征向量的方法600的流程图。方法600开始于框605,在框605处分析应用130选择时间序列150用于处理。在框610处,预处理组件135预处理时间序列。例如,如上文所讨论的,预处理组件135可以尝试主题搜索、将时间序列描绘成多个长度相等的片段以及对描绘的片段进行分簇等。然后可以向每个簇、主题或模式指派符号,使得时间序列可以被编码为符号序列。在框615处,特征提取器140训练神经网络。在一个实施例中,训练神经网络涉及向神经网络提供所识别的上下文(例如,在所识别的感兴趣的窗口之前或之后的一定量时间内收集的数据,或其矢量化版本)作为输入,以及所识别的感兴趣的窗口作为目标输出。如上文所讨论的,在一些实施例中,该训练可以被翻转(例如,所指示的窗口可以被用作输入,并且相关联的上下文可以被用作目标输出)。在一些实施例中,基于用户选择来确定训练方法。
为了训练神经网络,特征提取器140一般利用来自时间序列中的窗口和对应的上下文的数据对。如上文所讨论的,作为示例,假设用于编码特定时间序列的符号集合是“A”、“B”、“C”、“D”、“E”和“F”。也就是说,在该示例中,在时间序列片段中识别出六个簇或主题。还假设所识别的窗口已由预处理组件135编码为“CD”,先前上下文被编码为“AB”,并且后续上下文被编码为“EF”,使得用于时间序列数据的整个字符串是“AB|CD|EF”,其中感兴趣的窗口由垂直条描绘。当然,在实施例中,如果在各个上下文和窗口中存在相似的时间序列数据,则在上下文和窗口两者中都可以存在相同的符号。
为了使用该时间序列数据训练神经网络,特征提取器140可以基于该符号序列生成训练对集合。例如,如果使用先前的上下文,则上述示例中的训练对集合可以包括(C,A)、(C,B)、(D,A)和(D,B)。如上文所讨论的,可以提供这些对以训练神经网络以在提供窗口时生成上下文,或者在提供上下文时生成窗口。除了利用两个符号的训练对之外,在一些实施例中,特征提取器140还可以生成包括多于两个符号的训练对。继续上述示例,训练对可以包括(CD,A)、(CD,B)、(CD,AB)、(C,AB)、(D,AB)等。在一些实施例中,利用多于一个符号作为输入或目标输出可能需要输入层和输出层中的附加的复杂性,但原理保持不变。
在一些实施例中,为了将这些训练对提供给神经网络,特征提取器140将每个输入和目标转换为与输入或目标输出相对应的独热(one-hot)向量。继续上述示例,输入和输出各自可以由对应于该集合中的六个符号的六维向量表示。字符串“A”可以编码为(1,0,0,0,0,0),“B”编码为(0,1,0,0,0,0),依此类推。在利用多个符号作为输入或目标输出(例如,“AD”)的一些实施例中,对应的向量可以包括多个非零维度(例如,(1,0,0,1,0,0))。在一些实施例中,所利用的特定训练对可以取决于神经网络架构,或者可以由用户选择。也就是说,用户可以指定仅使用单符号字符串、具有两个或更少符号的字符串、任何大小的字符串等。
一旦已经针对所选择的时间序列如此训练神经网络,方法600就前进到框620,在框620处特征提取器140确定是否存在用于训练网络的附加的时间序列150。如果是,则方法600返回到框605以选择接下来的时间序列。如果不是,则方法600继续到框625,在框625处特征提取器140从神经网络的(一个或多个)中间层提取权重,如上文所讨论的。例如,特征提取器140可以从(一个或多个)中间层提取权重矩阵。最后,在框630处,特征提取器140基于那些提取的权重为一个或多个感兴趣的窗口生成特征向量。在一个实施例中,为了为特定时间窗口生成特征向量,窗口内的符号中的每一个符号被由权重矩阵指定的对应向量替换。在实施例中,所提取的权重矩阵包括与所利用的符号的数量相等的多个行。例如,如果使用N个符号来转换时间序列数据,则权重矩阵将具有N个行。在一些实施例中,权重矩阵的宽度(即,列数)可以取决于由管理员或用户选择的特定架构(例如,取决于在(一个或多个)中间层中使用的神经元的数量)而不同。
继续上述示例,如果利用六个符号,则所得到的权重矩阵将具有六个行。还假设神经网络具有300个隐藏的神经元。在这样的实施例中,所得到的权重矩阵将具有300个列,并且为每个符合生成的特征向量将具有300个维度。为了识别与给定符号相对应的向量,必须选择权重矩阵中的适当行。例如,如果在训练网络时将符号“A”编码为(1,0,0,0,0,0),则权重矩阵中的第一行是与“A”相对应的300维向量。以此方式,特征提取器140可以用与所识别的窗口中的每个符号对应的特征向量替换该符号。一旦该过程完成,就可以使用向量加法来生成表示时间窗口的单个特征向量。也就是说,如果时间窗口被编码为“CD”,用于“C”的特征向量是VC,用于“D”的特征向量是VD,则字符串“CD”的特征向量是VC+VD。以此方式,基于(如在所训练的神经网络的权重中捕获的)相关联的周围上下文,为每个指示的时间窗口生成特征向量。
在一些实施例中,当比较两个时间序列时,两个时间序列都已经被用于训练神经网络。然而,在一些实施例中,可以使用上述方法将尚未用于训练神经网络的时间序列转换为特征向量。在一些实施例中,分析应用130可以用所接收的新的时间序列数据来重新训练或改进神经网络。例如,在一个实施例中,分析应用130用新的时间序列周期性地(例如,每天一次)改进神经网络。在一些实施例中,每当用户启动该处理时,分析应用130就重新训练神经网络。在一些实施例中,如果用户请求处理特定的识别的时间序列,则分析应用130确定它是否已被用于训练神经网络,并且如果不是,则在返回特征向量或相似性度量之前用该时间序列改进神经网络。
图7是示出了根据本文公开的一个实施例的比较时间序列数据的方法700的流程图。方法700开始于框705,在框705处分析应用130接收第一时间序列和第二时间序列。在框710处,分析应用130识别定义第一时间序列中的一段时间的第一观察窗口,并且在框715处,分析应用130识别定义第二时间序列中的一段时间的第二观察窗口。在框720处,分析应用通过将第一时间序列的第一部分与第二时间序列的第一部分进行比较来生成先前相似性度量。第一时间序列的第一部分在第一观察窗口之前,并且第二时间序列的第一部分在第二观察窗口之前。最后,在框725处,分析应用130至少部分地基于所生成的先前相似性度量来确定第一观察窗口和第二观察窗口之间的窗口相似性。
图8是示出了根据本文公开的一个实施例的比较时间序列数据的方法800的流程图。方法800开始于框805,在框805处分析应用130识别定义第一时间序列中的一段时间的第一观察窗口,其中第一观察窗口之前是第一时间序列的第一部分。方法800然后继续到框810,在框810处分析应用130基于第一时间序列的第一部分和第一观察窗口训练第一神经网络。例如,如上文所讨论的,在一个实施例中,分析应用130使用第一窗口作为目标输出以及第一时间序列的第一部分作为输入,来训练神经网络。在另一实施例中,分析应用130使用第一时间序列的第一部分作为目标输出以及第一窗口作为输入,来训练神经网络。在一些实施例中,针对每个可用时间序列重复该训练过程。在框815处,分析应用130从第一神经网络的一个或多个中间层提取第一组权重,并且在框820处,分析应用130至少部分基于第一组权重为第一观察窗口生成第一特征向量。
然后,方法800前进到框825,在框825处分析应用130识别定义第二时间序列中的一段时间的第二观察窗口,其中第二观察窗口之前是第二时间序列的第一部分。例如,在一个实施例中,分析应用130可以识别第二窗口,因为用户已经指示具体地应该将第一窗口与第二窗口进行比较。在一些实施例中,分析应用130可以接收第二时间序列并执行相似操作以生成第二特征向量。在一些实施例中,分析应用130将所接收的第一时间序列与驻留在存储装置中的时间序列的所有其他窗口进行比较。在框830处,分析应用130确定与第二观察窗口相关联的第二特征向量,其中第二特征向量至少部分地基于第一组权重。例如,如上文所讨论的,分析应用130可以以与第一特征向量非常相同的方式生成第二特征向量。类似地,在一些实施例中,第二特征向量可以已(例如,在接收到第二时间序列时)被预先生成并且被存储以供以后使用。在这样的实施例中,分析应用130可以检索该第二特征向量以进行比较。最后,方法800前进到框835,在框835处分析应用1 130至少部分地基于比较第一特征向量和第二特征向量来确定第一观察窗口和第二观察窗口之间的窗口相似性。例如,如上文所讨论的,在一个实施例中,分析应用130计算特征向量之间的余弦差异或相似性。
对本公开的各种实施例的描述已经出于说明的目的而给出,但是并不旨在是详尽的或限制为所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技人员来说是明显的。选择本文使用的术语是为了最好地解释实施例的原理、对市场中发现的技术的实际应用或技术改进,或者使本领域普通技术人员能够理解本文公开的实施例。
在前文中,参考本公开中给出的实施例。然而,本公开的范围不限于具体描述的实施例。相反,前述特征和元素的任何组合,无论是否与不同的实施例相关,都被考虑为实现和实践所预期的实施例。此外,尽管本文公开的实施例可以实现优于其他可能的解决方案或优于现有技术的优点,但是否通过给定实施例实现特定优点不是对本公开的范围的限制。因此,前述方面、特征、实施例和优点仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在(一个或多个)权利要求中明确记载。同样地,对“本发明”的引用不应被解释为本文公开的任何发明主题的概括,并且除非在(一个或多个)权利要求中明确记载,否则不应认为是所附权利要求的元素或限制。
本公开的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者组合软件和硬件方面的实施例的形式,这些形式在本文中一般都可以被称为“电路”、“模块”或“系统”。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储装置(RAM)、只读存储装置(ROM)、可擦式可编程只读存储装置(EPROM或闪存)、静态随机存取存储装置(SRAM)、便携式压缩盘只读存储装置(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
可以通过云计算基础设施向终端用户提供本发明的实施例。云计算通常是指将可扩展计算资源作为服务通过网络提供。更正式地,云计算可以被定义为提供计算资源与其底层技术架构(例如,服务器、存储装置、网络)之间的抽象的计算能力,从而实现对可以通过最少的管理工作或服务提供商交互被快速提供和发布的共享的可配置计算资源池的方便、按需网络访问。因此,云计算允许用户访问“云”中的虚拟计算资源(例如,存储装置、数据、应用、甚至完整的虚拟化计算系统),而不用考虑用于提供计算资源的底层物理系统(或这些系统的位置)。
典型地,基于按使用付费的方式向用户提供云计算资源,其中仅针对实际使用的计算资源(例如,用户消耗的存储空间量或用户实例化的虚拟化系统的数量)向用户收费。用户可以随时从因特网上的任何位置访问驻留在云中的任何资源。在本发明的上下文中,用户可以访问云中可用的应用(例如,分析应用130)或相关数据。例如,分析应用130可以在云中的计算系统上执行并比较时间序列数据。在这种情况下,分析应用130可以在云中的存储位置处生成并存储特征向量和相似性度量。这样做允许用户从附接到连接到云的网络(例如,因特网)的任何计算系统访问该信息。
虽然上述内容涉及本发明的实施例,但是可以在不脱本发明的基本范围的情况下设计本发明的其他实施例和进一步的实施例,并且本发明的范围由所附权利要求确定。

Claims (17)

1.一种方法,包括:
识别定义第一时间序列中的一段时间的第一观察窗口,其中所述第一观察窗口之前是所述第一时间序列的第一部分;
基于所述第一时间序列的所述第一部分和所述第一观察窗口训练第一神经网络;
从所述第一神经网络的一个或多个中间层提取第一组权重;
至少部分地基于所述第一组权重,为所述第一观察窗口生成第一特征向量;
识别定义第二时间序列中的一段时间的第二观察窗口,其中所述第二观察窗口之前是所述第二时间序列的第一部分;
确定与所述第二观察窗口相关联的第二特征向量,其中所述第二特征向量至少部分地基于第一组权重;以及
至少部分地基于比较所述第一特征向量和所述第二特征向量来确定所述第一观察窗口和所述第二观察窗口之间的窗口相似性。
2.如权利要求1所述的方法,所述方法还包括:
基于所述第一观察窗口和所述第一时间序列的第二部分训练第二神经网络,其中所述第一时间序列的所述第二部分在所述第一观察窗之后;
从所述第二神经网络的一个或多个中间层提取第二组权重;以及
至少部分地基于所述第二组权重为所述第一观察窗口生成第三特征向量,其中所述窗口相似性还基于将所述第三特征向量和与所述第二观察窗口相关联的第四特征向量进行比较。
3.如权利要求1所述的方法,其中训练所述第一神经网络包括训练所述第一神经网络以在接收到所述第一时间序列的所述第一部分时生成所述第一观察窗口。
4.如权利要求1所述的方法,其中训练所述第一神经网络包括训练所述第一神经网络以在接收到所述第一观察窗口时生成所述第一时间序列的第一部分。
5.如权利要求3所述的方法,其中训练所述神经网络包括:
生成所述第一时间序列的第一部分的矢量化表示和所述第一观察窗口的矢量化表示;
使用所述第一时间序列的矢量化的第一部分作为所述第一神经网络的输入;以及
使用矢量化的第一观察窗口作为所述第一神经网络的目标输出。
6.如权利要求5所述的方法,其中生成所述第一时间序列的所述第一部分的矢量化表示包括:
识别所述第一时间序列中的一个或多个模式;
向每个识别的模式指派符号;
基于所识别的模式和对应的符号将所述第一时间序列的所述第一部分转换为符号序列;以及
将所述符号序列转换为向量。
7.如权利要求1所述的方法,其中所述第一观察窗口和第二观察窗口分别与所述第一时间序列和第二时间序列中的感兴趣部分相对应。
8.如权利要求1所述的方法,所述方法还包括:
至少部分地基于所确定的窗口相似性来生成控制信号,其中所述控制信号适于控制一个或多个计算机资源;以及
发送所述控制信号。
9.如权利要求1所述的方法,所述方法还包括:
至少部分地基于所确定的相似性来训练机器学习模型;
接收第三时间序列,所述第三时间序列包括定义所述第三时间序列中的一段时间的第三观察窗口;
用所训练的机器学习模型处理所述第三时间序列以生成预测的时间序列。
10.一种方法,包括:
接收第一时间序列和第二时间序列;
识别定义所述第一时间序列中的一段时间的第一观察窗口;
识别定义所述第二时间序列中的一段时间的第二观察窗口;
通过将所述第一时间序列的第一部分与所述第二时间序列的第一部分进行比较来生成先前相似性度量,其中所述第一时间序列的所述第一部分在所述第一观察窗口之前,并且所述第二时间序列的所述第一部分在所述第二观察窗口之前;以及
至少部分地基于所生成的先前相似性度量来确定所述第一观察窗口和所述第二观察窗口之间的窗口相似性。
11.如权利要求10所述的方法,其中将所述第一时间序列的所述第一部分与所述第二时间序列的所述第一部分进行比较包括:
基于所述第一时间序列生成第一特征向量以及基于所述第二时间序列生成第二特征向量。
12.如权利要求11所述的方法,其中生成所述第一特征向量包括:
训练神经网络以在接收到所述第一时间序列的所述第一部分时生成所述第一观察窗口;
从所述神经网络的一个或多个中间层中提取权重;以及
基于所提取的权重创建所述第一特征向量。
13.如权利要求12所述的方法,其中训练所述神经网络包括:
生成所述第一时间序列的所述第一部分的矢量化表示和所述第一观察窗口的矢量化表示;
使用所述第一时间序列的矢量化的第一部分作为所述神经网络的输入;以及
使用矢量化的第一观察窗口作为所述神经网络的目标输出。
14.如权利要求13所述的方法,其中生成所述第一时间序列的所述第一部分的矢量化表示包括:
识别所述第一时间序列中的一个或多个模式;
向每个识别的模式指派符号;
基于所识别的模式和对应的符号将所述第一时间序列的所述第一部分转换为符号序列;以及
将所述符号序列转换为向量。
15.一种具有计算机可读程序代码的计算机程序产品,所述计算机可读程序代码能够由一个或多个计算机处理器执行,以执行如权利要求1至14中任一项所述的方法。
16.一种计算机系统,包括:
存储装置;
处理单元,所述处理单元操作地耦合到所述存储装置,以执行如权利要求1到14中任一项所述的方法的动作。
17.一种计算机系统,包括用于执行如权利要求1至14中任一项所述的方法的步骤的模型。
CN201910182234.5A 2018-03-20 2019-03-12 使用基于上下文的相似性来比较时间序列数据 Active CN110309193B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/926,109 2018-03-20
US15/926,109 US11244224B2 (en) 2018-03-20 2018-03-20 Comparing time series data using context-based similarity

Publications (2)

Publication Number Publication Date
CN110309193A true CN110309193A (zh) 2019-10-08
CN110309193B CN110309193B (zh) 2023-09-22

Family

ID=67983639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910182234.5A Active CN110309193B (zh) 2018-03-20 2019-03-12 使用基于上下文的相似性来比较时间序列数据

Country Status (2)

Country Link
US (1) US11244224B2 (zh)
CN (1) CN110309193B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200026985A1 (en) * 2018-07-17 2020-01-23 Palo Alto Research Center Incorporated System and method for characterizing an arbitrary-length time series using pre-selected signatures
US11383612B2 (en) * 2018-10-22 2022-07-12 Oracle International Corporation Detection of electric vehicle charging at premise
US20210248463A1 (en) * 2020-02-06 2021-08-12 Socionext Inc. Neural network derivation method
CN111881950B (zh) * 2020-07-10 2024-05-21 交控科技股份有限公司 道岔转辙机电流时间序列的特征表示方法及装置
US20220237838A1 (en) * 2021-01-27 2022-07-28 Nvidia Corporation Image synthesis using one or more neural networks
US12015518B2 (en) * 2022-11-02 2024-06-18 Cisco Technology, Inc. Network-based mining approach to root cause impactful timeseries motifs

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102351A (ja) * 1997-06-05 1999-04-13 Northern Telecom Ltd データ時系列値予測方法、データ時系列入力値決定方法およびコンピュータ・システム
CN101641674A (zh) * 2006-10-05 2010-02-03 斯普兰克公司 时间序列搜索引擎
US20100332521A1 (en) * 2004-09-07 2010-12-30 Stuart Robert O More efficient search algorithm (Mesa) using prioritized search sequencing
CN102985917A (zh) * 2010-07-09 2013-03-20 国际商业机器公司 不确定时间序列之间的相似性的广义符号表示
US20140244644A1 (en) * 2011-07-06 2014-08-28 Fred Bergman Healthcare Pty Ltd Event detection algorithms
CN105069093A (zh) * 2015-08-05 2015-11-18 河海大学 一种基于嵌入式索引的水文时间序列相似性搜索方法
CN105224543A (zh) * 2014-05-30 2016-01-06 国际商业机器公司 用于处理时间序列的方法和装置
CN105976026A (zh) * 2016-04-20 2016-09-28 天津工业大学 基于联想神经网络的风速序列预测方法
US20170091615A1 (en) * 2015-09-28 2017-03-30 Siemens Aktiengesellschaft System and method for predicting power plant operational parameters utilizing artificial neural network deep learning methodologies
US20170249534A1 (en) * 2016-02-29 2017-08-31 Fujitsu Limited Method and apparatus for generating time series data sets for predictive analysis

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW342478B (en) 1996-01-08 1998-10-11 Matsushita Electric Ind Co Ltd Time series signal predicting apparatus
KR100612882B1 (ko) 2004-12-29 2006-08-14 삼성전자주식회사 시계열 신호의 패턴 인식 가능성 판단 방법 및 장치
JP4927448B2 (ja) 2006-06-09 2012-05-09 株式会社日立製作所 時系列パターン生成システム及び時系列パターン生成方法
US8738563B2 (en) 2010-03-28 2014-05-27 International Business Machines Corporation Comparing data series associated with two systems to identify hidden similarities between them
US10025773B2 (en) 2015-07-24 2018-07-17 International Business Machines Corporation System and method for natural language processing using synthetic text

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102351A (ja) * 1997-06-05 1999-04-13 Northern Telecom Ltd データ時系列値予測方法、データ時系列入力値決定方法およびコンピュータ・システム
US20100332521A1 (en) * 2004-09-07 2010-12-30 Stuart Robert O More efficient search algorithm (Mesa) using prioritized search sequencing
CN101641674A (zh) * 2006-10-05 2010-02-03 斯普兰克公司 时间序列搜索引擎
CN102985917A (zh) * 2010-07-09 2013-03-20 国际商业机器公司 不确定时间序列之间的相似性的广义符号表示
US20140244644A1 (en) * 2011-07-06 2014-08-28 Fred Bergman Healthcare Pty Ltd Event detection algorithms
CN105224543A (zh) * 2014-05-30 2016-01-06 国际商业机器公司 用于处理时间序列的方法和装置
CN105069093A (zh) * 2015-08-05 2015-11-18 河海大学 一种基于嵌入式索引的水文时间序列相似性搜索方法
US20170091615A1 (en) * 2015-09-28 2017-03-30 Siemens Aktiengesellschaft System and method for predicting power plant operational parameters utilizing artificial neural network deep learning methodologies
US20170249534A1 (en) * 2016-02-29 2017-08-31 Fujitsu Limited Method and apparatus for generating time series data sets for predictive analysis
CN105976026A (zh) * 2016-04-20 2016-09-28 天津工业大学 基于联想神经网络的风速序列预测方法

Also Published As

Publication number Publication date
US11244224B2 (en) 2022-02-08
CN110309193B (zh) 2023-09-22
US20190294953A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
CN110309193A (zh) 使用基于上下文的相似性来比较时间序列数据
US11100399B2 (en) Feature extraction using multi-task learning
US11257009B2 (en) System and method for automated detection of situational awareness
KR101966557B1 (ko) 빅데이터와 머신러닝을 이용한 수리부속수요 예측 시스템 및 방법
AU2020385264B2 (en) Fusing multimodal data using recurrent neural networks
US20190188742A1 (en) Forecasting demand across groups of skills
US20200034776A1 (en) Managing skills as clusters using machine learning and domain knowledge expert
KR20170134508A (ko) 인공 신경망들에 대한 관련성 스코어 할당
CN112819099B (zh) 网络模型的训练方法、数据处理方法、装置、介质及设备
EP3884426B1 (en) Action classification in video clips using attention-based neural networks
US20200118060A1 (en) Intelligent classification for product pedigree identification
KR20220058626A (ko) 시계열 데이터에 대한 다중 수평 예보 처리
US20180075341A1 (en) Regularization of neural networks
KR102293791B1 (ko) 반도체 소자의 시뮬레이션을 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
US11966993B2 (en) Land use planning recommendations using heterogeneous temporal datasets
CN110110372B (zh) 一种用户时序行为自动切分预测方法
KR20220127332A (ko) 다양한 텍스트의 자동 생성
CN108268629A (zh) 基于关键词的图像描述方法和装置、设备、介质、程序
Prabowo et al. Continually learning out-of-distribution spatiotemporal data for robust energy forecasting
CN117113206A (zh) 一种轻量化的大尺度多元时间序列预测模型及其训练方法
Xue et al. Prompt mining for language-based human mobility forecasting
JP2020123329A (ja) 人工ニューラルネットワークの関連性スコア割当て
Hwang et al. Large-scale training framework for video annotation
JP2023535202A (ja) コンテキスト・アウェア・アノマリ検出
KR102590753B1 (ko) 상세 기상관측 및 기상수치모델 정보 기반 고해상도온열질환 발생 확률 예측 장치 및 상세 기상관측 및 기상수치모델 정보 기반 고해상도 온열질환 발생 확률 예측 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant