CN108475287A - 用于流数据的离群值检测 - Google Patents
用于流数据的离群值检测 Download PDFInfo
- Publication number
- CN108475287A CN108475287A CN201780005917.2A CN201780005917A CN108475287A CN 108475287 A CN108475287 A CN 108475287A CN 201780005917 A CN201780005917 A CN 201780005917A CN 108475287 A CN108475287 A CN 108475287A
- Authority
- CN
- China
- Prior art keywords
- record
- outlier
- node
- tree
- attribute
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Quality & Reliability (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
关于数据集的数据记录的基线集的相应样本产生随机切割树,将针对所述数据集执行离群值检测。为构造特定的随机切割树,使用迭代分割技术,其中分割给定的数据记录集所沿的属性基于所述属性的值范围来选择。关于流的最新接收的数据记录,至少部分基于表示所述数据记录的节点在特定随机切割树中的可能的插入位置来确定离群值得分,而不必修改所述随机切割树。
Description
背景技术
由于多年来数据存储的成本已降低并且由于将计算基础设施的各种元件互连的能力已改进,因此可潜在地收集并分析与多种应用程序有关的越来越多的数据。对从嵌入在飞机发动机、汽车、健康监视装置或复杂的机器内的各种位置处的传感器收集的数据进行分析可用于许多目的,例如预防维护、积极主动的与健康有关的警报、提高效率以及降低成本。从线上零售商的网站收集的流数据可用于关于应存储在不同仓库位置处的不同产品的量做出更加明智的决定,等等。所收集的关于机器服务器的数据还可经分析以防止服务器故障。
流数据的量增加已伴随有商用硬件的使用增加(且在一些情况下,可通过增加对商用硬件的使用而成为可能)。用于商用硬件的虚拟化技术的出现已就管理用于许多类型的应用程序的大规模计算资源提供益处,从而允许多个客户高效且安全地共享各种计算资源由。例如,虚拟化技术可通过将由单一物理计算机器托管的一个或多个虚拟机提供给每一用户来允许在多个用户之间共享单一物理计算机器。每一虚拟机可被认为是充当不同的逻辑计算系统的软件模拟,所述逻辑计算系统向用户提供其为给定硬件计算资源的唯一操作人员和管理员的错觉,同时也在各种虚拟机之间提供应用程序隔离和安全性。除计算平台外,一些大型组织还提供使用虚拟化技术建立的各种类型的存储服务。使用此类存储服务,可以成本有效的方式以期望的可用性和耐久性水平存储大量的流数据,其中给定的物理存储服务可能被用于保持许多不同服务客户的数据记录。
当可产生流数据的量增加时,对作用于流数据的分析工具的需求也已增加。例如,对于一些安全性相关的应用程序或健康相关的应用程序,相当快速地识别数据离群值(即,不寻常的数据记录或数据模式)的能力可为至关重要的。令人遗憾的是,多年来已针对此类任务研发出的机器学习和统计算法中的许多算法主要设计成记住静态数据集。因此,高效地识别高量流内的异常数据仍为具有挑战性的问题。
附图说明
图1图示根据至少一些实施方案的示例系统环境,其中可对流数据记录执行离群值检测。
图2提供根据至少一些实施方案的具有一对离群值的双属性观察记录的流的一般示例,和离群值检测算法的高级概述。
图3图示根据至少一些实施方案的在流观察记录属性值的分布中随时间的移位的示例,所述移位可导致改变一些观察记录的离群值状态。
图4和图5共同地图示根据至少一些实施方案的用于使用随机切割树来从数据集识别出离群值的技术的初始步骤。
图6图示根据至少一些实施方案的示例情境,其中表示观察记录的节点在随机切割树中所处的树深度可用作观察记录的离群值状态的指示。
图7图示根据至少一些实施方案的随机切割树的示例集,所述随机切割树可概率性地针对流数据集创建并更新。
图8图示根据至少一些实施方案的用于识别流数据集中的离群值的距离和稀疏性度量的使用。
图9图示根据至少一些实施方案的基于范围的分割技术,所述基于范围的分割技术可在用于流数据的离群值检测算法中被采用。
图10图示根据至少一些实施方案的随机切割树的示例,所述随机切割树可能作为将新观察记录插入到用于树的样本中的结果而产生。
图11图示根据至少一些实施方案的对随机切割树的改变的示例,所述改变由从用于树的样本删除观察记录导致。
图12图示根据至少一些实施方案的机器学习服务,在所述机器学习服务处可实施流数据以及静态数据集的分析。
图13图示根据至少一些实施方案的可经执行以实施用于流观察记录的离群值检测算法的操作的各方面。
图14是图示可在至少一些实施方案中使用的示例计算装置的方框图。
虽然在本文中通过若干实施方案和说明性附图的示例来描述各实施方案,但所属领域的技术人员应认识到,各实施方案并不限于所描述的实施方案或附图。应理解,附图及其详细描述并不意图将各实施方案限制为所公开的特定形式,而是相反,意图是覆盖落入如通过随附的权利要求书所界定的精神和范围内的所有修改、等效物以及替代方案。在本文中使用的标题是仅出于组织的目的,而非意图用于限制说明书或权利要求书的范围。如贯穿此申请案所使用,词语“可”以许可性意义使用(即,意味着具有某种可能),而非以强制性意义使用(即,意味着必须)。类似地,词语“包括”意味着包括但不限于。当用于权利要求书中时,术语“或”用作包含性或而非用作排他性或。例如,短语“x、y或z中的至少一个”意指x、y或z中的任一个以及其任何组合。
具体实施方式
本发明描述用于检测流数据集中的离群值或异常记录的方法和设备的各种实施方案。如本文中所使用,术语“流”或“流数据集”是指可通过一个或多个数据产生者产生且通过零或更多个数据消费者访问的一系列记录,其中每一记录被假设为表示一个或多个属性的值的字节的序列。流的记录在本文中还可被称为观察记录、观察结果、点或数据记录,且数据产生者可被称为流数据源。流管理和分析服务(SMAS)可提供程序设计接口(例如,应用程序设计接口(API)、网页或网站、图形用户界面,或命令行工具)以实现流的创建、配置以及删除。在一些实施方案中,程序设计接口还可实现流数据记录的提交、存储、分析、变换和/或检索。在一些此类实施方案中,动态提供的计算、存储以及联网资源的集可用于基于例如各种分区策略来实施服务,所述分区策略允许流管理工作负载以可扩展的方式在许多服务部件当中分布。
在至少一些实施方案中,SMAS的客户端可使用SMAS程序设计接口来请求在指定流中的不寻常或异常观察记录的检测。(术语“离群值”和“异常”在本文中可同义地用于指代此类记录。)响应于此请求,服务可提供应用高效的离群值检测算法的结果,所述离群值检测算法在各种实施方案中对流的观察记录使用基于随机切割森林的技术。随机切割森林可包括选定数目的随机切割树,所述随机切割树中的每一个使用关于样本的观察记录的属性值的递归随机分割技术来针对观察记录的相应样本构造。此类树可被称为范围随机切割树,因为此类树经由一系列随机切割来构造,每一轴线平行的随机切割以与所述切割在所述维度中的范围成正比的概率来选择。如下文更详细论述,所述算法可能能够产生给定的观察记录的离群值得分(观察记录异常或不寻常的程度的定量指示器),而不修改随机切割森林中的至少一些树。例如,可执行概率性“伪”插入操作以识别表示给定观察记录的节点在给定树内的可能位置,且离群值得分可基于可能位置的各种特性(例如,可能位置相对于树的根节点的深度或距离,在附近的其它节点的数目,和/或可能位置距其它树节点的距离,如下文所论述)来确定。即使在树实际上被更新(所述更新可使用如下文所论述的概率方法来进行)时,可使用通常影响仅较小子树的高效技术,使得大部分树保持不变。在一些情况下,离群值得分可在不必甚至遍历树至叶节点或确定精确的插入位置的情况下产生,例如,由于离群值得分可至少部分基于节点在树内所位于的深度,因此离群值得分可基于确定所述记录的插入深度大于某一阈值来指配给给定观察记录。注意,在此文档的其余部分中,将表示记录的节点插入到树中的动作可被简称为“将记录插入”到树中;类似地,短语从树“删除记录”可用于指代从树删除表示记录的节点的动作。
在至少一些实施方案中,树中的每一个可表示流的观察记录的动态更新样本。在各种实施方案中,可使用选定的概率流样本更新技术(例如,随机更新技术或加权更新技术)来决定是否应将新观察记录(即,针对所述新观察记录的离群值分析尚未被执行)包括在给定随机切割树的样本中。在至少一些实施方案中,如果决定更新用于特定随机切割树的样本,则可将表示新观察记录的节点添加到树,而不重新创建整个树。类似地,在此类实施方案中,表示驱逐目标观察记录的不同节点(所述节点将在样本中被表示新观察记录的节点替换)可从树去除,而不重构整个树。在一些实施方案中,可至少部分基于节点的“年龄”,也就是说,自节点被插入在树中起已经过的时间,或自所述节点被插入在树中起已添加的观察记录的数目,来选择节点以用于从树删除。
在不同的实施方案中,离群值检测算法的结果可以若干不同格式中的任何格式指示。例如,在一个实施方案中,可针对流的各种观察记录产生离群值得分,且可将针对其计算此类得分的所有记录的得分提供给客户端。给定记录的得分可基于若干因素的任何组合,如下文更详细描述,例如,基于表示观察记录的节点将会被插入(或实际上被插入,取决于概率样本更新技术的结果)在森林的各种随机切割树中的平均树深度,与观察记录相关联的稀疏性度量,与观察记录相关联的距离度量等。在其它实施方案中,所述服务可关于满足阈值报告标准的观察记录通知客户端。例如,如果离群值得分在范围0.0至1.0的范围中产生,其中1.0表示极其不寻常或异常的记录,且0.0表示正常值或典型的记录,在一个实施方案中,所述服务可仅关于离群值得分大于0.7(或某一其它选定阈值)的观察记录通知客户端。在一些实施方案中离群值得分满足选定阈值的记录可简单地被归类为离群值或异常,而其余记录可被归类为正常值或非异常记录。在此类实施方案中,替代提供解释保持为至少略开放的数值分数,所述服务可简单地提供给定观察记录的二元结果:语句“此记录为离群值”或“此记录为正常值(即,非离群值)”的等效语句可被提供给客户端,为所述等效语句执行离群值检测。针对不同的观察记录产生的离群值得分(和/或对应的二元结果)可被存储或记录,例如,以用于稍后的趋势分析。在另一实施方案中,记录可根据其离群值得分来排列(或排序)。
在一个实施方案中,至少部分基于SQL(结构化查询语言)或某一其它常用查询语言的版本的程序设计接口可通过SMAS实施以使得客户能够指定他们所希望获得的结果的细节,例如,观察记录的属性值中的一些或全部是否应与离群值得分一起被指出,对接收到的观察记录执行异常检测应处于的时间窗,等等。考虑示例情境,其中包括各人的心率信息和锻炼度量(例如每分钟走的步数)的健康传感器记录的流将针对离群值进行分析。包括类似于以下各项的类SQL语句的请求可在此情境中发出以使用基于随机切割森林的技术来获得离群值得分:
select stream sensorID,heartRate,stepsPerMinute,
random_cut_forest(sensorID,heartRate,stepsPerMinute)
as score
over w1
from healthSensorStream
window w1as(
partition by user_id range interval'20'minutes preceding
);
在此示例请求中,会将在20分钟时间窗上针对每人产生的传感器记录的离群值得分(连同针对其构造随机切割树的属性sensorID、heartrate以及stepsPerMinute的值)提供给请求者。注意,用于表达离群值检测请求的令牌、关键字等的精确集可与上文在其中支持类SQL语法的各种实施方案中示出的那些集不同。在一些实施方案中,可采用除SQL外的数据库查询语言,或可使用未必与数据库相关的查询接口。
构成观察记录的给定集中的离群值的因素的定义(记录是先前收集的记录的静态集的部分还是不可预测流的部分)可能并非总是清晰的。在至少一些实施方案中,用于确定离群值得分或用于将给定观察记录分类为离群值或非离群值的定义或公式可默认地或响应于程序设计请求而提供给客户端。如上文所提及,给定观察记录的若干特性可被认为在异常得分或二元异常定义中,包括在给定观察记录附近的其它观察记录的缺乏或稀疏性,以及给定观察记录距其它观察记录的距离(例如,欧几里得(Euclidean)距离)。给定流的观察记录的属性值的统计分布可随时间变化,例如,在时间T1处为明显的离群值的记录(基于在时间T1处分析的观察记录)基于在中间时段中到达的记录,可在稍后的时间(T1+增量1)处不再为离群值或不像之前则离群。在一些实施方案中,给定观察记录的离群值状态或得分可在不同时间处关于所存储的流记录的不同集重新评估。在一些实施方案中,如果离群值检测算法的结果以超过阈值的幅度变化,则可关于所述变化通知客户端。
在至少一个实施方案中,初始地针对离群值实时(例如,在记录变得可在SMAS处访问不久之后)检查的流的观察记录可在稍后以批处理模式针对离群值重新检查。例如,SMAS可实施为提供商网络环境的更加一般的机器学习服务的子部件。一般来说,通过例如公司或公共部门组织等实体建立以将可经由因特网和/或其它网络访问的一个或多个服务(例如各种类型的多租户和/或单租户的基于云的计算或存储装置)提供到分布式客户端的集的网络可在此文档中被称为提供商网络。提供商网络有时还可被称为“公共云”环境。给定提供商网络可包括托管实现、配置并分布由提供商提供的基础设施和服务所需的各种资源池的许多数据中心,例如物理和/或虚拟化计算机服务器、存储装置、联网设备及类似者的集合。在较大提供商网络内,一些数据中心可位于彼此不同的城市、州或国家中,且在一些实施方案中,分配到给定应用程序的资源可分布在若干此类位置当中以实现期望的可用性、故障恢复以及性能的水平。在一些实施方案中,提供商网络的机器学习服务可经设计以处理关于观察记录的静态收集的批处理工作,以及关于流数据的实时任务。给定流的记录可在所述记录被接收之后存储在存储库处。离群值检测可使用上文概述的随机切割森林技术来实时地对流执行,其中一产生相应的离群值得分,就将所述得分提供给客户端。在某一稍后的时间点处,流可被关闭,或流的至少一个分区或逻辑子集可被关闭,从而防止另外的观察结果被接收。在存储库处的所存储记录随后可使用批处理模式离群值检测算法来重新分析,且批处理模式操作的结果可被提供给客户端。在至少一个实施方案中,流可继续接收记录,同时对已被收集的流的数据的某一子集执行批处理模式处理。在一些实施方案中,批处理模式算法还可使用随机切割森林,且相同的树中较早地用于实时分析的一些树可在批处理模式算法的操作期间更新。在其它实施方案中,可将与用于实时分析的方法不同的方法用于批处理模式分析。在至少一个实施方案中,机器学习服务可支持仅关于流数据的实时分析,且可不支持对流的批处理模式操作。
在至少一个实施方案中,流的原始观察记录可在所述观察记录使用随机切割森林技术来分析之前被预处理。在不同的实施方案中可使用多个预处理技术中的任何预处理技术,包括例如正规化一个或多个属性的原始值,通过聚合某一数目的观察记录的内容来产生导出的记录,或对特定非数值属性的值应用变换函数以获得导出的数值。例如,属性的标准差可基于历史记录来计算,且所述属性在未来流记录中的值可除以标准差以便防止任一个属性过度地影响几何距离。
在另一实施方案中,单一数值属性可经预处理以产生多个数值属性。数值属性的最近值的曲线的形状可通过在过去值上滑动长度w的窗来捕获。此被称为搭叠(shingling)的过程将一维数据变换成w维数据。在搭叠空间中的异常表示不寻常的曲线。
在各种实施方案中,可必须选择离群值检测算法的多个不同参数的相应值。此类参数可包括例如,将用于产生初始随机切割森林的流的观察记录的基线集的大小,将被包括在森林中的随机切割树的数目,将用于个别的树的样本的大小等等。关于用于离群值得分计算的公式或等式,在至少一些实施方案中可必须选择树深度参数、距离参数和/或稀疏性参数。在一些实施方案中,一些属性可被设计为与其它属性不同的权重,指示例如在确定给定观察记录是否为离群值时的一个属性相对其它属性的相对重要性,且此类属性权重可被认为是算法的参数。在一个实施方案中,时间窗或类似的时间替换参数可用于更新树,例如,关于替换来自样本的观察记录,更近时间接收的观察记录可指配有比较旧观察记录更高的被包括在样本中的可能性。离群值检测算法的其它参数可包括例如,将用于确定是否将提供或产生关于任何给定离群值得分的通知的通知阈值,或指示将用于将观察记录二元归类为离群值或正常值的特定边界得分的离群值指定阈值。
在至少一些实施方案中,参数值中的一个或多个可基于SMAS或机器学习服务的知识库的条目来选择,例如,可再使用在过去已对类似的数据集有效的参数值。例如,在一个实施方案中,可为客户端提供程序设计接口以提供对一个或多个离群值得分或通过离群值检测算法在给定流上产生的其它结果的主观评估。呈原始或经处理形式的主观评估信息可存储作为知识库条目。稍后,所述知识库条目可用于调整或识别将用于针对不同流的离群值检测的参数(或甚至用于修改数据流的最近到达的记录的参数,通过客户端提供对所述数据流的评估)。在一个实施方案中,参数中的一些可通过客户端,例如,经由SMAS程序设计接口供应。尽管客户可不需要精通统计学或机器学习,但一些客户可能能够基于所述客户关于观察记录的内容的领域特定的专业知识来提供关于一个或多个算法参数(例如,样本的时间替换参数,或指示不同属性的相对重要性的权重)的指导。
示例系统环境
图1图示根据至少一些实施方案的示例系统环境,其中可对流数据记录执行离群值检测。如图所示,系统100包括流管理和分析服务(SMAS)102的各种资源,所述流管理和分析服务根据具有相应的子系统的可扩展分层架构来组织以用于接收、存储、分析流数据并提供对流数据的读访问。在所描绘的实施方案中,SMAS 102可包括摄取子系统104、存储子系统106、检索子系统108、控制平面子系统110以及分析子系统190。每一子系统的资源可独立于在所描绘的实施方案中的其它子系统来扩展或缩减,例如,如果被运行的分析算法需要另外的计算能力,则可将更多的服务器添加到分析子系统190而不修改在其它子系统处的资源。一般来说,SMAS可由多种客户端用于提供商网络环境中的相应的应用程序,而非仅用异常检测。在一些实施方案中,SMAS可用于构造具有任意复杂性的工作流的流水线式应用程序,其中例如从一个流产生的处理结果可形成第二流的输入数据记录,第二流可经处理以产生第三和第四流的输入数据,等等。每一此类流的内容可以持久性方式存储,例如,通过在许多节点处复制原始和/或经处理流记录以提供期望的可用性和数据耐久性水平。
一般来说,子系统104、106、108、110以及190中的每一个可包括一个或多个节点或部件,所述节点或部件例如使用在提供商网络的各种服务器或主机处示例化的相应的可执行线程或进程来实施。摄取子系统104的节点可经配置(例如,通过控制子系统110的节点)以从数据产生者158获得或接收特定的数据流的数据记录,且每一摄取节点160可将接收到的数据记录传递到存储子系统106的对应节点。在各种实施方案中,数据产生者158,例如158A至158C,可包括多种数据源,例如,传感器的阵列、网络应用程序的日志、安全相机及类似者。存储子系统节点161(例如,161A或161B)可根据针对流选定的持久策略来将数据记录保存在各种类型的存储装置(例如,固态驱动器(SSD)、基于旋转磁盘的装置或易失性存储器装置)中的任何存储装置上。检索子系统108的节点162(例如,162A或162B)可对来自例如165A或165B等外部数据消费者(所述外部数据消费者可包括例如,将经处理的流数据提供到其以作为输入的应用程序)和/或例如分析子系统190的分析节点194A等内部数据消费者的读请求作出响应。在各种实施方案中,分析节点194(例如194A)可被配置为执行或实施多个不同类型的统计或机器学习算法,例如,以提供对从SMAS客户端166接收到的关于指定流的请求的响应。控制子系统110可包括多个控制节点168,例如节点168A,所述控制节点共同地负责管理操作,例如创建或删除流、对流进行分区及类似者。
在一些实施方案中,给定流可被细分成分区(所述分区还可被称为碎片)。在所描绘的实施方案中,一个或多个节点的相应集可被指定用于流的每一分区,例如,至少关于摄取子系统、存储子系统以及检索子系统。例如,摄取节点160A可针对流S1的分区0设置,摄取节点160B可针对流S1的分区1设置,等等。类似地,一个或多个存储子系统节点161可针对每一分区设置,检索节点162A的相应集也可针对每一分区设置。在一些实施方案中,分析子系统190的资源的相应子集还可被指配给相应的流分区。
在图1中描绘的实施方案中,SMAS客户端166可利用管理程序设计接口164的一个或多个集来与控制平面子系统110交互。类似地,数据产生者158可使用产生者程序设计接口167来提交数据记录,且数据消费者可使用消费者程序设计接口165来读取所存储的记录。一些客户端166可使用分析接口192来提交针对所述客户端的流的数据分析请求。在各种实施方案中可用于提交流数据记录、检索存储的流数据记录、请求分析和/或请求管理操作的API(应用程序设计接口)的少量具体示例在图1中示出。例如,数据产生者158可使用“putRecord”API来将数据记录提交到指定流(或指定流的指定分区)中。在至少一些实施方案中,排序指示器(例如序列号)可与通过SMS存储的每一数据记录相关联,且给定流的记录可以序列号次序或以随机次序检索。在所描绘的实施方案中,“getIterator”API可被数据消费者用来指示在流或分区中的起始位置或起始序列号,且“getNextRecords”API可用于以顺序次序从迭代器的当前位置检索记录。在所描绘的实施方案中,还可支持“getRecord”API,例如,用于不需要建立迭代器的随机存取。控制平面或管理API可包括例如,“createStream”(用于建立新流)、“deleteStream”(用于去除现有的流),以及“describeStreams”(用于查看指定流的性质)。
关于流数据分析,可调用例如“getStatistics”API以获得关于指定流的高级统计,例如所述接收的观察记录的数目、记录到达的速率、数据的当前总大小、到现在为止接收到的观察记录的各种数值属性的均值或方差等。可调用“getOutlierScores”API以获得指示各种观察记录的异常程度的得分,而“listOutliers”API可用于获得已被归类为离群值(例如,基于通过SMAS或通过客户端确定的阈值离群值得分)的观察记录。在一些实施方案中,基于SQL的接口或某一其它常见的查询接口可用于获得在分析子系统190处实施的离群值检测算法的结果。在不同的实施方案中可采用除图1中示出的面向流的API外的其它面向流的API。注意,除API外的程序设计接口(例如,网页,例如基于网络的控制台、图形用户界面和/或命令行工具)可在至少一些实施方案中被使用。
在各种实施方案中,程序设计分析接口192中的一个的调用可用信号通知SMAS:将对给定流的观察记录执行离群值检测,所述给定流的观察记录正从一个或多个数据产生者158收集(或将要从一个或多个数据产生者收集)。在所描绘的实施方案中,作为响应,SMAS可首先从指定流数据源收集观察记录的基线集。观察记录的基线集可用于产生随机切割树的初始集合,其中每一树对应于基线集的特定样本或子集。树的叶节点可对应于相应的观察记录,其中非叶节点表示观察记录的群组(或通过非叶节点的后代节点表示的观察记录的属性值的“边界框”)。随机切割树的集合还可被称为随机切割森林。下文提供在各种实施方案中可如何构造树的细节和示例。
一般来说,由于构造树的方式,给定观察记录的节点在树中的位置或深度可指示观察记录为离群值的程度。如图6中所图示且在下文更详细论述,在至少一些实施方案中,叶节点在树中的较小深度处产生(即,较靠近树的根)的观察记录往往比叶节点在较大深度处的观察记录相对于所考虑的观察记录的群体更加异常或不寻常。因此,离群值得分(例如,在范围0至1或0至100中的实数,其中较高值表示更异常的记录)可至少部分基于树中的对应的节点的位置来计算或指配给观察记录。例如,在一个实施方案中,如果针对观察记录的给定基线集的相应样本构造十个树,且给定观察记录碰巧在十个树中的三个树中表示,则所述观察记录在那三个树上的深度和记录将伪插入在其余七个树上的深度可经平均以产生离群值得分。在其它实施方案中,当计算离群值得分时,可考虑观察记录的邻域的稀疏性(例如,如果观察记录包括N个属性,在对应于所述属性的N维空间中有多少其它观察记录在所述观察记录附近)和/或观察记录距样本的其它观察记录的距离(例如,欧几里得距离)。
在已使用记录的基线集针对给定流构造初始随机切割森林之后,分析子系统190可在新观察记录到达时可开始分析新观察记录。考虑其中森林包括T个树的示例情境。当新观察记录OR1变得可访问时,在一些实施方案中,可尝试OR1到每一树中的“伪”插入。在伪插入(下文提供所述伪插入的细节)期间,可确定将会在树中表示OR1的节点的使OR1实际地被插入的位置,且节点在T个树中的伪插入位置可共同地用于计算OR1的总离群值得分。在一些实施方案中,取决于对其执行分析的客户端166的偏好,一计算出离群值得分,就可将离群值得分提供到客户端,例如,相对于OR1的接收实时地提供。注意,由于初始离群值得分可仅基于在OR1被接收的时间处可用的信息来计算(且无法预料未来的观察记录内容),因此实时地提供到客户端的信息可表示仅在给定时间点处的最佳可用分析。如下文所论述,在一些情境中,给定观察记录的离群值状态或得分在所述离群值状态或得分在稍后的时间点处重新计算时可实际上改变,例如,基于在流的观察记录的属性值的分布中的时变趋势来重新计算。
在至少一些实施方案中,用于树的样本以及因此树自身可在新观察记录到达时概率性地更新。在一些实施方案中,可使用随机样本更新算法,其中均匀分布的随机数可用于确定给定新观察记录是否将替换具有给定样本S的先前包括的观察记录。在其它实施方案中,可使用加权随机样本更新算法,其中例如更近的观察记录一般来说比较旧的观察记录更有可能被包括在样本中(且因此表示在随机森林中),但包括给定观察记录的决定可仍概率性地做出。如果做出将观察记录OR1插入到树中的决定,则表示OR1的节点可插入在先前在“伪”插入操作中识别出的位置处,且选定节点可被去除以保持树的样本大小不变。在一些实施方案中,可使用概率流样本更新算法来做出关于是否在获得新观察记录的离群值得分之前(而非之后)插入新观察记录的决定,例如,“伪”插入可仅在先前已做出观察记录将不被插入的决定时执行。在一个实施方案中,可使用时间窗或观察记录计数窗,其中在给定时间点PT1处,仅在指定时间间隔(PT1–增量1,PT1)内接收的那些观察记录被分析以识别离群值,或仅N个最近接收的观察记录被分析以识别离群值。
离群值检测算法的高级概述
图2提供根据至少一些实施方案的具有一对离群值的双属性观察记录的流的一般示例,和离群值检测算法的高级概述。时间线200指示12个观察记录或流的点P01至P12的相对到达时间,所述观察记录或点中的每一个包括两个数值属性A1和A2的值。如图所示,流的观察记录的间隔到达时间可变化,且一些观察记录(例如P08和P09)可同时或近同时地到达。注意,示出记录的极小流以避免杂乱且以图示与离群值检测相关联的概念。
图标205示出十二个点P01至P12的A1和A2值的曲线。A1值沿着水平轴线从左到右增加,且A2值沿着竖直轴线从下到上增加。直观地,除P05和P10外的所有观察记录呈现为在其属性值中相当靠近彼此(且因此共同地标记为正常值集群210),而P05和P10呈现为离群值或异常。其高级概述在流程图250中指示的离群值检测算法的目标是在例如P01至P12中的任一点等给定观察记录的到达之后尽可能快地识别出是应将观察记录归类为正常值集群210的成员,还是将指示所述观察记录为离群值的得分指配给观察记录。
如在要素251中指示,在算法的初始阶段中,可从流收集观察记录的基线集(注意,相对于图2中的时间线200示出的观察记录的数目太小以至于无法提供有用的基线集)。可从所述基线集选择某一数目的较小样本,且可针对每一样本构造相应的随机切割树,例如,使用如下文描述的基于范围的分割属性选择而非完全随机的分割属性选择。在完成此初始阶段之后,在所描绘的实施方案中,可基于到树中的每一个中的相应“伪”插入来针对每一最近接收的观察记录产生离群值得分(要素255)。在“伪”插入中,可从根开始遍历树,直到表示观察记录的节点的可能的插入位置被找到,而不实际地修改树。观察记录的离群值得分可基于可能的插入位置的位置或深度来关于每一树(或某一选定数目的树)确定,且随后可聚合不同树的所有离群值得分(例如,通过获得平均得分)来得到所述点的总的或最后的离群值得分。此最后得分可以被可选地报告到一个或多个目的地和/或存储在持久性存储装置中,这取决于为其分析流的客户的得分持久性偏好。如要素259中示出,可通过实际地插入给定观察记录(并删除节点以保持样本大小不变)来概率性地更新零个或更多个树。在至少一些实施方案中,这些类型的插入,在本文中被称为“真”插入,通常可比用于离群值得分计算的“伪”插入更不频繁地执行。新节点到给定树中的插入可包括重新布置树的节点的子集,如下文更详细描述,而不从头重新创建树,且因此可比在每一插入需要重构整个树的情况下更加高效。对应于要素255和259的操作可针对新观察记录重复,例如,直到流在所描绘的实施方案中终止。随时间推移,树将随树的节点中的更多节点被替换而改变,且树的内容(以及因此从树导出的离群值得分)往往将表示比在更远的过去到达的观察记录更靠近的更近观察记录。
时变离群值状态
图3图示根据至少一些实施方案的在流观察记录属性值的分布中随时间的移位的示例,所述移位可导致改变一些观察记录的离群值状态。如在图2中,检查其观察记录包括两个属性A1和A2的值的流数据集的异常。图表305A示出在时间T1处的流的十二个最近观察记录的分布,而图表305B示出在某一稍后时间T2处的十二个最近观察记录的分布。在图表305A中,观察记录P05和P10可被认为是异常或离群值306A和306B,且观察记录P10、P02、Po3、P04、P06、P07、P08、P09、P11以及P12可被认为是正常值集群310A的成员。
如通过箭头325指示,在所描绘的实施方案中,在T1之后在对应于A1和A2值的二维空间中的观察记录的位置存在移位趋势。在已于T1之后接收到又十个观察记录之后,十二个最近观察记录的分布已变化为图标305B中示出的观察记录。现在,P10不再为异常;替代地,P10为包括P10、P13、P14、P15、P16、P18、P19、P20以及P21的当前正常值集群的一部分。P17呈现为新离群值306F。此外,关于当前12个观察记录的群组,P11和P12也呈现为离群值,如通过其标记306D和306E指示。因此,P11和P12的离群值状态已在时间T1与T2之间改变。另外,P10的状态也已从在时间T1处为离群值改变为在时间T2处的正常值。
在一些实施方案中,如上文所提及,各种观察记录的离群值得分实时地或近实时地提供到客户端或其它目的地,也就是说,一初始地计算出得分或在初始地计算出得分之后不久提供到客户端或其它目的地(例如,使用上文论述的基于随机切割树的技术)。因此,例如,在图3中图示的情境中可能会出现以下情况:P11的离群值得分可在时间(T1+增量1)处被发送到客户端或向客户端显示,其中增量1比(T2–T1)更小。在时间(T1+增量1)处,P11的得分可相对较低,因此P11可被认为是正常值。在图3中示出的示例中,如果离群值得分在T2之后不久的时间处针对P11重新计算,则得分可比在(T1+增量1)处高得多,指示P11的新状态为离群值。在一些实施方案中,给定观察记录的离群值得分或状态通过分析流的实体报告仅一次。在其它实施方案中,给定观察记录的离群值得分可被重新计算和/或报告若干次,例如,一次为实时地且至少一次为稍后的。在一些实施方案中,可在流的观察记录到达时针对离群值实时地分析观察记录,且将观察记录保存在存储库中以用于稍后的重新分析,所述重新分析可以批处理模式执行。对于一些应用程序,此类重复或迭代离群值检测技术可为极其有帮助的,因为捕获观察结果的来源的特性中的逐渐趋势可为重要的。
随机切割树构造的概述和示例
如上文所指示,在各种实施方案中采用的离群值检测算法可利用随机切割树的变化型式,其中对其执行分割的属性可基于属性值的范围或跨度来选择,且其中给定记录的离群值得分可基于包括邻域稀疏性和距其它点的距离的若干因素。术语“分割”和“随机切割”在本文中可互换地用于指代基于沿着观察记录的属性或维度中的一个的选定边界值来将数据记录的集划分成较小子集。在描述离群值状态的影响因素和分割属性选择的基于范围的变化型式之前,覆盖关于随机切割树和随机切割树在离群值分析中的使用的一些基础概念可为有帮助的。
图4和图5共同地图示根据至少一些实施方案的用于使用随机切割树来从数据集识别出离群值的技术的初始步骤。在所图示的示例情境中使用包括35个记录的二维数据集,且假设所述数据集在对应于初始步骤的时间段期间保持不变。每一记录包括两个数值属性Attr1和Attr2的值,且记录的分布以Attr1值在水平轴线上从左到右增加且Attr2在竖直轴线上从下到上增加绘制。Attr1和Attr2值的二维空间中的“边界框”ABCD包括所有35个点。对于给定的双属性记录的集,例如图4中示出的双属性记录的集,边界框对应于通过将(Attr1max–Attr1min)乘以(Attr2max–Attr2min)形成的面积,其中Attr1max为在记录当中的Attr1的最大值,Attr1min为在记录当中的Attr1的最小值,Attr2max为在记录当中的Attr2的最大值,且Attr2min为在记录当中的Attr2的最小值。(Attr1max–Attr1min)可被称为Attr1的“范围”或“跨度”,且(Attr2max–Attr2min)可被称为Attr2的“范围”或“跨度”。当论述与随机切割树相关联的操作时,边界框(所述边界框可扩展至任何期望数目的维度)的概念可广泛地用于本文中。
在构造记录的随机切割树的第一步骤中,特定属性可被选择(例如,在所有属性当中随机地,或基于如下文所论述的属性的值范围)为将关于其分割随机切割树的属性。在图4的分割S1中,属性Attr1被选定为第一分割属性,且Attr1的值X1(例如,随机地在Attr1的范围内选择)用于将记录细分成两个较小子集。第一子集对应于边界框GEFD,且第二子集对应于边界框HBJK。包括被分析的所有记录的边界框ABCD可被称为“0级”边界框,且可通过对应的随机切割树中的根节点表示。子边界框GEFD和HBJK可被称为“1级”边界框,且可各自通过随机切割树的根的相应的子节点表示。(对应于八个记录的集合的完整树的示例构造在图6中示出且在下文论述。)
在1级边界框已被识别出之后,可对1级边界框递归地应用随机分割的过程以产生2级边界框,如图5中示出。在所描绘的示例中,关于1级边界框GEFD,可以分割值Y1对Attr2轴线执行随机分割S2-a。因此,可产生2级边界框GLMN和OPFQ,且可将对应的节点添加到随机切割树。类似地,可对边界框HBJK执行随机分割S2-b,其中Attr2还碰巧被选择作为分割属性,但选择不同的分割值Y2。因此,可产生2级边界框HWTR和UVJZ,且可创建在树深度2(即,距根节点两跳)处的对应的节点。在各种实施方案中可重复递归地分割每一边界框的过程,直到产生包括仅单一记录(且因此无法进一步分割)的边界框。在一些实施方案中,树可仅构造至选定深度,例如,构造至与样本大小的对数或固定常量成正比的深度。在此情境中,在选定深度处的叶节点可表示边界框而非个别记录。树的此类修整可在以下假设下执行:关于将会被插入在超出选定深度的位置中的节点,对应的数据记录将不表示离群值,因此不需要将树延伸超出选定深度。在一些实施方案中,在树被构造之后,表示各种观察记录的叶节点的相应深度可被计算出并用于计算观察记录的离群值得分。如图6中所示,尽管构造随机切割树的过程为概率性的,但一般来说,异常点往往将对应于树中较高的叶节点(较靠近根)。
图6图示根据至少一些实施方案的示例情境,其中表示观察记录的节点在随机切割树中所处的树深度可用作观察记录的离群值状态的指示。示出八个观察记录P01至P07的集合的随机切割树602。每一观察结果包括两个数值属性Attr1和Attr2的相应值。在较小数目的记录包括在示例中的情况下,相对较容易确定(甚至不必构造树)关于Attr1,大部分记录群集在值范围9至11中,其中P6以85的Attr1值为离群值,且关于Attr2,大部分记录群集在值范围19至22中,其中P3以75的Attr2值为离群值。
树602的根节点对应于表示所有8个记录的边界框。Attr2以与其范围(75-19)/((75-19)+(85-9))成正比的概率被选择为第一分割属性。Attr2在根的边界框中的范围为19至75,且分割值50从所述范围内选择。因此,在树深度1处,创建两个节点:具有Attr2值小于50的7个观察结果的节点603B,和具有一个观察结果(P3)的节点603P。分割非叶节点(即,表示超过一个观察记录的节点)的过程关于节点603B和其子节点继续。Attr1碰巧为针对第二分割选定的属性,且值30被选择用于第二分割,从而导致创建表示P6的非叶节点603Q。Attr1在3级处在此被选择为分割属性,且分割值10.5从Attr1范围9至11选择,从而产生非叶节点603D和603E。最终,针对每一观察记录创建叶节点。对应于观察记录的叶节点的深度(从根到达叶节点所需的跳数)如下:P0、P2、P5以及P7各自位于深度5处,P1和P4处于深度4处,P6处于深度2处且P3处于深度1处。因此,树602提供一个示例,其中对应于离群值(P3和P6)的节点在比表示作为正常值的观察结果的节点更小的深度(更靠近根)处结束。当然,如果随机地选择分割属性,且还随机地从对应的属性的值范围内选择分割值,则有时可能会出现以下情况:一些离群值碰巧被置于比一些正常值更大的深度处。然而,如果构造足够大数目的随机切割树,则一般来说,节点的平均树深度(关于其中呈现所述节点的所有树)往往可与对应的观察记录的离群值状态负相关,也就是说,平均深度越小,观察结果更有可能为离群值。
用于流数据的高效更新的随机切割森林
如上文所指示,在至少一些实施方案中,可构造多个随机切割树,例如,从数据集的相应的样本或子集构造,且给定数据记录的离群值得分可使用超过一个树来获得(例如,从其中碰巧呈现所述观察记录的所有树获得)。图7图示根据至少一些实施方案的随机切割树的示例集,所述随机切割树可概率性地针对流数据集创建并更新。在所描绘的实施方案中,可收集观察记录的基线集,例如,在对流执行离群值检测的请求被接收之后。可从所述基线集获得相应的样本,例如Samp0、Samp1以及Samp2,例如,使用蓄水池抽样。基线集的任何给定观察结果可不必呈现在任何给定样本中;在一些情境中,可出现以下情况:某一观察记录可不呈现在样本中的任一个中。
关于每一样本,可构造随机切割树的对应的变化型式。如下文在图9的背景下论述,在这些变化树的构造期间,当选择某一属性以作为下一分割属性时,可考虑在被分割的边界框中的不同属性(可能已被正规化)的相对范围或跨度,使得具有较大范围的值的属性往往可优先地被选择为分割属性。此类树在本文中可被称为基于范围的随机切割树。RCT0、RCT1以及RCT2可使用基于范围的分割属性选择来相应地对应于Samp0、Samp1以及Samp2而产生。每一样本可表示对应的根边界框,例如,边界框BB0-0可对应于Samp0的观察记录,BB1-0可对应于Samp1的观察记录等等。在一些实施方案中,使用基于范围的分割方法,且将根节点用作将被分割的第一父节点,可递归地产生表示较小边界框的节点,直到针对样本的所有观察记录创建相应的叶节点。在其它实施方案中,树产生可在某一选定深度处终止,例如,在以下假设下:在较大深度添加的节点不太可能为离群值且因此可被计入树的节点当中,但不必被记住。针对给定流(或针对静态数据集)产生的例如RCT0、RCT1以及RCT2等随机切割树可共同地被称为随机切割森林。在一些情况下,在产生树之前,可对观察记录应用变换函数(例如,以正规化个别属性的值)。
在已从基线集产生RCT的初始版本之后,所述初始版本可用于将离群值得分指配给并非基线集的成员的新观察记录。当接收到新观察记录时,可关于每一树执行至少两种操作。在可被称为“伪”插入的操作的一个集中,将会表示新观察记录的节点在给定RCT中的位置在新观察记录将被添加到所述RCT样本时可使用下文更详细描述的插入算法来确定。在一些实施方案中,可针对森林中的每一树识别此类可能的插入位置,而不实际地修改树中的任一个。不同的树的可能的插入位置可共同地用于产生新观察记录的离群值得分。在所描绘的实施方案中,一般来说,异常观察记录往往将较靠近(一般来说)RCT的根而隔离(即,通过叶节点表示)。在一些实施方案中,离群值得分可被提供到正为其执行离群值检测客户端,和/或存储在持久存储库中。
在关于新观察记录的操作的第二集(所述操作的第二集可在伪插入中的至少一些之前、在伪插入中的至少一些之后或与伪插入中的至少一些同时执行)和给定RCT中,概率流样本更新算法可用于确定新观察记录是否应实际上插入到用于所述RCT的样本中。例如,如果已针对流创建10个RCT,则可做出关于给定观察记录是否应被插入(在“真”插入操作中,与伪插入相反)到样本中的10个独立决定,其中针对每一树做出一个决定。在一些实施方案中,可使用基于均匀随机分布的流样本更新算法,其中任何新观察记录取代样本内的先前包括的观察记录的概率为样本的大小k除以到目前为止收集的记录的总数目。此方法,被称为蓄水池抽样,确保大小k的所有记录子集具有相等的被选择机会。在其它实施方案中,可使用加权流样本更新算法,其中例如较新的观察记录关于包括在样本中指配有比较旧的观察记录更高的权重或优先级。如果且当决定将观察记录插入到对应于RCT中的一个的样本中时,在至少一些实施方案中,对应的先前插入的观察节点可被选择并从样本去除,使得样本大小不随时间变化。表示插入的观察记录的节点可置于针对伪插入识别出的插入位置处(在其中伪插入在插入决定之前执行的那些情况下)。在其它实施方案中,样本的大小可随时间变化。下文更详细描述可用于将用于新观察记录的节点插入到RCT中而不必完全重构树的高效概率技术。在至少一些实施方案中,对给定RCT执行的操作(例如,伪插入、树特定的离群值得分计算、真插入和/或删除)可与对其它RCT的操作同时执行。
造成离群值状态的因素
在不同的实施方案中,用于将观察记录指定为离群值或用于产生给定观察记录的离群值得分的精确阈值和统计性质可变化。图8图示根据至少一些实施方案的用于识别流数据集中的离群值的距离和稀疏性度量的使用。在所描绘的示例情境中,示出在二维观察分布空间801内各自相应地包括若干“类似的”(相对于其集群的其它记录)观察记录的集群840A、840B以及840C,以及不属于所述集群的两个观察记录802A和802B。
在所描绘的实施方案中可使用离群值的几何定义,所述几何定义捕获位于较大空闲空间中的较小数目的记录的精神,即,较小基数的记录的集S0,所述记录在S0外的最近邻居相距至少距离L。根据此定义,S个记录的子集S0在以下情况下可被认为是(j,L)离群值:(a)S0的基数(记录的数目)小于或等于j,且(b)在S0中的点中的任一个与在(S–S0)中的记录中的任一个之间的最小距离超过L。(符号(S–S0)指示S的不在S0中的那些记录。)这些条件中的第一个可被称为稀疏性标准,而第二个可被称为距离标准。
在图8中描绘的情境中,节点802A和802B可构成此小基数群组S0。在针对图8中示出的观察记录构造的RCT中表示802A和802B的节点可都为例如同一父节点PN1的子节点,且可因此被认为是相邻群组或共同先辈群组810的成员。如果离群值定义中的参数j设定为2,且如果表示802A和802B的节点距集群840A、840B或840C的记录中的任一个的最小距离超过某一选定L值(例如,如果欧几里得距离805A、805B以及805C全都超过L),则802A和802B可根据定义被指定为(2,L)离群值。在不同的实施方案中且对于不同的流,相应的值可被选定用于稀疏性参数j和距离参数L,例如,基于针对流收集的一些初始统计数据和/或基于知识库条目。在一些实施方案中,作为与给定观察记录相关联的伪插入操作的一部分,可针对表示观察记录的节点计算距离和稀疏性度量,且可基于两个度量来计算离群值得分。
在一个实施方案中,节点位移度量(图8中未示出)可用于计算离群值得分。在高层处,节点位移度量可意图捕获先存在的节点位置的改变的总量,所述改变将由新节点的插入引起,将针对所述新节点计算离群值得分。例如,将被插入在树的顶部附近的节点通常将引起先存在的节点的较大子集的位移(例如,通过远离根的另一跳或边),而将被插入在较靠近树的底层处的节点通常将引起先存在的节点的较小子集的位移。如先前所论述,往往被添加在较靠近根处的节点更有可能为不寻常的或异常的。因此,由伪插入导致的其它节点的总位移(在每一节点与根之间的跳或边的总另外数目的总和)可用于获得正针对其执行伪插入的节点的离群值得分。在一些实施方案中,可使用其它位移相关的度量,例如由伪插入导致的在所有先存在的节点当中的平均位移变化。在各种实施方案中,以下因素/度量中的一个或多个的任何组合可用于计算离群值得分:新观察记录的可能的插入位置的深度、可能的插入节点距其它节点的距离、可能的插入节点的邻域的稀疏性,和/或与可能的插入节点相关联的位移度量。
基于范围的分割
如先前所论述,在随机切割树的构造或修改期间可执行多个分割或随机切割。如果观察记录将沿着其在算法中的任何给定点处分割的属性完全随机地从所有属性当中选择,则这可产生一些子最佳分割(即,不对应于朝向隔离的离群值的较大前进的分割)。替代地,在至少一些实施方案中,可使用更多数据驱动的分割属性选择技术,其中考虑属性的相对范围,同时仍在分割属性选择决定中保持随机性的元素。图9图示根据至少一些实施方案的基于范围的分割技术,所述基于范围的分割技术可在用于流数据的离群值检测算法中被采用。
在所描绘的实施方案中,示出用于分割双属性观察记录910的给定集的两个替代方案。每一观察记录包括相应的属性Attr1和Attr2的值。Attr1值沿着水平轴线从左到右增加,且Attr2值从下到上增加。记录当中的最小Attr1值为0,且最大值为100;相比之下,Attr2值在0至15之间变化。记录形成关于Attr1的两个集群(具有离群值Pj),但在Attr2维度上相当均匀地分布。
如果Attr2被选择为分割属性,如在图9中的分割901(具有分割值Y1)中指示,这样做可能不如沿着Attr1的分割有助于隔离离群值Pj。事实上,如果Attr2由于纯随机的分割属性选择而连续被选定为分割属性若干次,则可需要更多的分割来产生对应于Pj的叶节点。相比之下,如果将Attr1选择为分割属性的概率增加,则创建表示Pj的叶节点所花的时间(和所产生的树层的数目)可被缩短。将此类型的只能偏差引入到分割属性的选择中的一种方式是考虑每一属性的范围(最大值减最小值),并将较高的选择概率指配给具有较高范围的那些属性。在各种实施方案中可采用此基于范围的属性选择技术,例如,以在伪插入操作期间和/或在真插入操作期间,从流的观察记录的基线集产生随机切割树的初始集。在图9中示出的示例中,由于Attr1具有0至100的范围,且Attr2具有0至15的范围,因此范围的总和为(100-0)+(15-0)或115。如果使Attr1被选择的概率与所述Attr1的范围成正比(相对于所有属性的总范围),且在0与115之间的随机数被选择以识别选定属性,则Attr1可以概率(100/115)选定为分割属性,导致例如具有分割值X1的分割S2。在至少一个实施方案中,单一随机选择可产生分割属性以及分割值的选择。例如,如果从范围0至115选择随机数45,则这可指示将使用(Attr1=45)的分割值,而如果选择随机数107,则这可指示将使用(Attr2=(107–100)=7)的分割值。类似地,在至少一些实施方案中,在分割或随机切割将在其处执行的算法的每一阶段,可考虑属性(在待分割的记录的集内)中的每一个的相对范围。
当然,有时可出现以下情况:在给定流的原始观察记录内,基于被收集的数据的语义,一些属性可具有比其它属性小得多的范围。例如,一个属性可表示个人的正规教育的年数,而另一属性可表示个人的年收入。正规教育的年数通常可具有小得多的范围(即,在0与约20之间),而收入可广泛得多地变化(例如,取决于货币,在0与约10,000,000之间)。在此类情境中,原始观察记录可在执行离群值分析之前被预处理,例如,在一个实施方案中,属性的值可通过将每一值除以某一数目的所观察的原始值的标准差来正规化。
插入和删除节点
如先前所指示,在各种实施方案中,概率算法可用于更新用于随机切割树的样本。在一些实施方案中可选择随机更新策略,其中任何给定观察记录被保留在样本中的概率等于在样本被初始地构造之后到达的任何其它观察记录的概率。在其它实施方案中,可使用时间加权的样本更新算法,其中给定观察记录被保留的概率随时间减小,也就是说,较新的观察结果一般来说更有可能并入到样本中。在一些实施方案中,可使用其它加权样本更新策略(例如,其中记录基于客户端指配的权重而非时间权重而指配有插入概率)。一旦做出将给定观察记录插入到特定样本中的决定(所述决定还可伴随有选定观察记录的删除以保持样本大小不变),在各种实施方案中,就可采用不需要从头重建样本的随机切割树的节点插入技术。替代地,一些子树在此插入期间可移动,且某一数目的非叶节点的边界框可被修改。在至少一个实施方案中,此高效更新算法可用于在伪插入操作期间且还在真插入期间识别可能的插入位置。伪插入可与真插入不同,不同之处在于对树的修改在伪插入的情况下不被保存(例如,使持久),而在真插入的情况下被保存。在各种实施方案中,如果概率样本更新算法产生不针对给定观察记录更新树的决定,则在伪插入期间对树做出的改变可被丢弃;如果所述算法产生更新树的决定,则对应于伪插入的改变将成为永久的。
在一些实施方案中使用的高效插入算法可如下描述。为插入记录或点p,我们在随机切割树的根开始并计算包括p的边界框。如果p落到旧边界框内,则边界框不变。并且,关于p的插入做出与没有p时做出的决定相同的随机分割决定(即,属性选择和分割值选择)。如果边界框随p的添加改变,则做出新随机分割决定(例如,使用如之前论述的基于范围的分割属性选择和随机分割值选择)。此新分割可关于与先前执行在相同节点处的分割所关于的属性不同的属性执行,例如,如果在具有边界框BB1的给定节点N1处,先前关于属性Attr1的值执行分割,且新节点p落到BB1外,则可执行另一随机分割计算(例如,考虑各种属性的范围),且可选择不同的分割属性Attr2。如果最近计算出的分割落到旧边界框内,则最近计算出的分割被忽略且p沿着原始树向下移动(朝向与包括p的分割一致的子节点)。如果新分割值落在旧边界框外,则我们使p为一个子节点,且另一子节点变成当前节点(所述节点被分割)。边界框随后被向上调整至根。上文概述的插入算法的步骤可更加正规地如下描述。
插入算法步骤
1.我们具有观察记录S’的集和对应的随机切割树T。每一观察记录具有d个维度或属性。新观察记录p将被插入以产生经修改的树T’。
2.如果S’为空,则我们返回包括p的单节点树作为根。
3.否则,S’具有边界框B(S’)=[x1 l,x1 h]x[x2 l,x2 h]x…[xd l,xd h],其中l和h上标指示对应的属性的低和高值。
4.对于所有维度i,令yi l=min{xi l,pi}且yi h=max{xi h,pi}
5.在0与Σi(yi h–yi l)之间选择随机数r
6.此值r对应于基于范围的分割决定。
7.如果基于r的分割将S’与p分开,则我们将所述分割用作经修改的树T’的第一分割。将新非叶节点添加到树T’;非叶节点的一个子节点为表示p的节点,且另一子节点为使用r分割的节点。
8.如果基于r的分割不将S’与p分开,则我们丢弃基于r的分割并朝下遍历树,遵循在S’处的先存在切割。此选定的子节点表示不同的边界框B(S”)。针对B(S”)重复所述步骤。
9.T’的边界框在任一情况下(即,无论基于r的分割是否将S’与p分开)按需调整。
图10图示根据至少一些实施方案的随机切割树的示例,所述随机切割树可能作为将新观察记录插入到用于树的样本中的结果而产生。在所描绘的情境中构造对应于其观察记录各自包括单一整数属性的数据集的随机切割树。在图10中,示出对应于具有属性值40的记录进入到原始树1002中的插入操作1004的一个可能结果。示出树的节点的仅一个子集,其中三角形表示低层子树St1、St2、St3以及St4。示出对应于每一树节点的边界框的相应属性范围(例如,[0,100]用于根节点),且分割值在用于通向子节点的边的标记中指示。例如,分割属性值50用于根节点处,因此来自根的一条边被标记为“<=50”且另一条边被标记为“>50”。
插入算法在树1002的根处开始,所述根具有一维边界框[0,100]。由于待插入记录具有落入在根边界框内的值40,因此关于根节点进行的随机分割可不在根处引起改变。根的子节点中的一个被选定用于遍历。在图10中,节点[0,30]被选定,因为所述节点对应于分割值范围(<=50),待插入值40落入在所述范围内。由于通过节点[0,30]表示的最大值(30)低于待插入节点的值40,因此在范围[0,40]中执行随机分割。此随机分割(在所描绘的示例中在35处,如通过边标记“<=35”和“>35”指示)碰巧在范围[30,40]中,也就是说,所述随机分割将根节点在[0,30]处的子树与新节点[40]分开。因此,新的非叶节点1030在替代性结果树1005中替换原始的[0,30]节点。此新非叶节点的一个子节点1030A为表示[40]的叶节点,而此新节点的另一子节点为原始节点[0,30],所述原始节点连同其后代节点向下传递一层。新非叶节点1030的边界框值被设定为[0,40]以指示所述节点的后代跨越范围0至40。
如在图10的示例中指示,插入算法不需要重构整个树。替代地,节点的子集可作为群组移动(例如,至树中的较低层),可将新叶节点添加到原始树,且可在每一插入中添加新非叶节点。此插入方法可比重新创建整个树便宜的多,尤其是由于大部分新节点(假设大部分节点不是离群值)将仅引起在树中的较大深度处的修改。
如先前所提及,在至少一些实施方案中,对应于基于范围的随机切割树的样本大小可在树更新时保持不变,这意味着每一插入可伴随有对应的删除。在不同的实施方案中,删除可在插入之前或之后执行。图11图示根据至少一些实施方案的对随机切割树的改变的示例,所述改变由从用于树的样本删除观察记录导致。用于删除的算法可如下概述。给出待删除的树T和记录p,找到对应于p的叶节点LN。随后,删除所述叶节点LN,且LN的兄弟节点在树中向上移动一层,替换原始为LN的父节点的节点。可调整朝向根的路径上的节点的边界框。
在原始树1202中,对应于删除操作1204的目标节点的叶节点具有父节点[40,80]和兄弟节点[70,80]。根据删除算法,叶节点[40]被删除,且兄弟节点向上移动一层。随后,遍历在兄弟节点的新位置与根之间的路径,并更新对应的边界框。例如,在原始树中具有边界框[40,100]的节点在经修改的删除后树1203中被更新为[70,100]。在图10和图11中所图示的实施方案中,插入和删除都不需要重构树;替代地,每一插入和删除操作通常可影响仅较小数目的节点。
机器学习服务
在一些实施方案中,上文描述的用于流数据的离群值检测算法可在如先前提及的提供商网络的机器学习服务处实施。图12图示根据至少一些实施方案的机器学习服务,在所述机器学习服务处可实施流数据以及静态数据集的分析。系统1300包括可扩展机器学习服务的各种部件,包括实时分析管理器1381,所述实时分析管理器可将来自服务器池1385的服务器用于上文论述的离群值检测算法的计算。在一些实施方案中机器学习服务可在提供商网络处实施,且用于机器学习服务的资源可在多个不同的数据中心当中分布。
在所描绘的实施方案中,用于各种类型的分析的输入数据可从至少两种类型的来源获得:经批处理数据存储库1330和流数据源1331。在所描绘的实施方案中,除实时分析管理器1381外,机器学习服务(MLS)还可包括请求处理程序1380、知识库1322以及产品存储库1320。知识库1322可表示代表在将离群值检测算法(以及其它算法)用于多种数据集的先前实例期间获得的洞悉的条目的不断增长的集合,且可用于指导通过实时分析管理器1381做出的决定中的一些,例如用于离群值检测的算法参数的选择。如先前所提及,针对给定离群值检测请求可必须选择多个参数值,例如将产生的随机切割树的数目、对应的样本的大小、样本更新参数等等。产品存储库1320可用于存储离群值检测操作的中间和/或最终结果、所选的参数的值等等。
在所描绘的实施方案中,一个或多个程序设计接口1361的集可在机器学习服务处实施以用于与客户端1364交互。接口可包括例如,一个或多个基于网络的控制台或网页、应用程序设计接口(API)、命令行工具、图形用户界面(GUI)或类似者。使用接口1361,客户端1364可例如提交对流的记录执行离群值检测的请求,所述流的记录可从指定流数据源1331获得。数据源可例如通过提供访问信息来识别,所述访问信息例如网络地址、数据库地址和/或存储装置地址。在一些具体实施中,基于SQL的程序设计接口可被包括在程序设计接口1361中,使得客户端能够使用熟悉且易于使用的接口来提交离群值检测请求(并查看对应于此类请求的结果)。
一般来说,流的数据记录可包括许多属性,包括数值属性和非数值属性,例如分类属性、文本属性、布尔(Boolean)属性及类似者。在一些实施方案中,离群值检测可限于包括仅数值属性的流,也就是说,MLS在流的记录包括非数值属性时可拒绝执行离群值检测的请求。在其它实施方案中,给定流的原始数据记录可在应用离群值检测算法之前被预处理(例如,在输入记录处理程序1360处和/或在特征处理器1362处),且此类预处理可包括使用分箱或其它类似方法来产生从至少一些非数值属性导出的数值属性。在此类实施方案中,可对经预处理的数据集而非对流的原始数据记录执行离群值检测。在各种实施方案中还可实施其它类型的预处理,例如正规化属性值,将数据记录的群组或序列聚合成合并记录等等。
在各种实施方案中,在客户端1364经由接口1361与MLS进行的程序设计交互中,所述客户端可指示在执行离群值检测时可考虑的多个偏好或要求。例如,客户端可指示离群值检测算法的一个或多个参数(例如待构造的随机切割树的数目、样本的大小等)的优选值,和/或将在MLS用于确定待报告的结果的阈值。一个客户端1364可希望查看产生其得分的所有数据记录的离群值得分(例如,连同属性值),而另一客户端可仅希望被告知关于具有在系统定义的或客户端指定的阈值之上的离群值得分的记录。客户端还可将权重指配给记录(例如,时间替换参数,其将用于确定较旧记录是否应被在用于树的样本中的较新记录替代以及如何替代)或指配给个别属性。在一些实施方案中,可指示从客户端的角度来看不同属性的主观重要性的属性特定的权重可用于选择分割属性(例如,除基于范围的选择外或替代基于范围的选择)。一些客户端1364可简单地指示流数据的来源并向MLS留下分析和报告决定;其它客户端可提供关于离群值检测决定的更详细指导或偏好,所述其它客户端更熟悉所涉及的统计学或精通针对其收集流记录的主题或领域。
MLS的管理或控制平面部分可包括请求处理程序1380,所述请求处理程序接受客户端请求1311,确定客户端请求是涉及实时分析还是批处理模式分析,并依据所请求的分析的性质采取不同动作。针对流数据的实时请求(例如离群值检测请求)可被传递到实时分析管理器1381。对于批处理模式操作,请求处理程序可将对应的作业对象插入到批处理作业队列1342中,如通过箭头1312指示。一般来说,MLS的控制平面可包括多个部件(包括请求处理程序、实时分析管理器、工作负载分布策略选择器、一个或多个作业调度程序、度量收集器以及充当与其它服务的接口的模块),所述部件还可被统称为MLS管理器。MLS的数据平面可包括例如,池1385中的服务器的至少一个子集、用于存储输入数据的存储装置、中间结果或最后结果(所述结果中的一些可为MLS产品存储库中的一部分),以及用于传递客户端输入数据和结果的网络路径。
给定批处理作业对象可指示将作为程序设计接口1361的调用的结果而执行的一个或多个操作,且给定作业的调度在一些情况下可依据先前产生的作业的操作的至少一个子集的成功完成。在一个实施方案中,客户端可请求以批处理模式(例如,替代实时,或除实时地执行的离群值分析外)对流的记录执行离群值检测。在此情境中,如通过箭头1332指示,流数据中的一些或全部可存储在经批处理数据存储库处。在一些情况下,给定流可在执行批处理模式离群值检测之前被关闭至另外的记录;在其它情况下,较旧的保存的流记录的批处理模式分析可与对最近到达的数据的实时分析并行地执行。在所描绘的实施方案中,每一批处理模式分析可通过对应的作业对象表示。
在至少一些具体实施中,作业队列1342可被管理为先进先出(FIFO)队列,其中另外的约束是必须满足给定作业的依赖性要求以便将所述作业从队列移除。在一些实施方案中,代表若干不同客户端创建的作业可放置在单个队列中,而在其它实施方案中,可维持多个队列(例如,使用的提供商网络的每个数据中心中的一个队列或者每MLS客户一个队列)。相对于请求1311的提交异步地,在所描绘实施方案中,可将已满足其依赖性要求的下一作业从作业队列1342移除,如通过箭头1313指示,并且可为其识别包括工作负载分布策略的处理计划。工作负载分布策略层1375(所述工作负载分布策略层也可为如前所提及的MLS控制平面的部件)可确定作业的较低级操作将分布在一个或多个计算服务器(例如,从池1385选择的服务器)当中的方式,和/或针对作业分析或操纵的数据将分布在一个或多个存储装置或服务器当中的方式。如通过箭头1335指示,在一些实施方案中,工作负载分布策略层1375还可被实时分析管理器1381利用,例如,以帮助识别将用于离群值检测算法的服务器的集。例如,在至少一个实施方案中,离群值检测算法的部分可以并行化方式实施(例如,其中并行使用的服务器的数目至少部分基于被使用的随机切割树的数目来选定,和/或基于在池1385中可用的空闲服务器的数目来选定)。在一些具体实施中,不同的树可在相应的执行平台处处理。在处理计划已被产生且将用于批处理作业或实时分析的适当的资源的集已被识别出之后,可对识别出的资源调度操作。在一些实施方案中,一些批处理作业或实时分析的结果可作为MLS产品存储在存储库1320内,如通过箭头1347指示。
在图12中示出的实施方案中,客户端1364可能能够查看存储在存储库1320中的产品的至少一个子集,例如,通过发出读请求1318。在一些实施方案中,可经由接口1361使实时流分析1395的结果(例如,各种流数据记录的离群值得分)对来自服务器池1385的客户端1364可用。在所描绘的实施方案中,条目可基于从客户端接收的输入来添加到知识库1317,且在至少一些实施方案中,知识库条目还可被客户端查看,如通过箭头1317指示。在一些实施方案中,可支持用于特征处理规范的相对较直截了当的语言,从而允许MLS客户端创建指示他们希望对数据集应用的各种特征处理步骤的“配方”。此类配方可以文本格式指定,且随后被编译成可执行格式,所述可执行格式可按需要再用于不同的资源集上的不同数据集,例如,在特征处理器1362处。算法库1363可包括除离群值检测技术外的多种机器学习、统计学以及数据分析算法,例如各种类型的回归和分类算法、神经网络算法、随机梯度下降算法及类似者。在至少一个实施方案中,MLS可被设计为可扩展的,例如,客户端可提供或注册其自己的模块(所述模块可被界定为用户界定的功能)以用于输入记录处理、特征处理,或用于实施除由MLS自然支持之外的另外机器学习算法。
注意,在一些实施方案中,上文针对离群值检测描述的基于随机切割森林的技术可应用到未必为流的一部分的数据集,例如,可识别出在任何大或小数据集内的离群值,或可使用所述技术来计算静态数据集的各种数据记录的离群值得分。此外,在各种实施方案中,所述技术不必在机器学习服务或在流分析服务处实施,替代地,所述技术可在与此类网络可访问服务无关的一个或多个计算装置处实施。在一个实施方案中,基于随机切割森林的离群值检测算法可在不利用提供商网络或基于云的资源的情况下实施。在另一实施方案中,基于随机切割森林的离群值检测算法可实施为较大监视工具的子部件,例如连续地收集与电子商务网站的操作或提供商网络的资源使用水平相关联的度量的工具。例如,在电子商务网站的情况下,度量记录,例如每分钟各种产品的查看者的数目、每分钟添加到目录的产品的数目等,可形成流数据,对所述流数据执行离群值检测。在提供商网络的资源利用率的情况下,在连续基础上收集并针对离群值进行分析的流数据可包括例如在特定存储服务处每分钟的存储写或读的数目、每分钟来自各种物理或虚拟服务器的网络请求的数目、经由选定的间隔在各种服务器处收集的CPU利用率等等度量。
用于离群值检测的方法
图13图示根据至少一些实施方案的可经执行以实施用于流观察记录的离群值检测算法的操作的各方面。如在要素1401中示出,例如,基于从客户端接收到的请求,或简单地作为由分析服务提供的对流数据的默认统计分析的一部分,可确定将对指定流的记录执行离群值分析或检测。可选择离群值检测算法的多个参数的值(要素1404),例如,基于由客户端指示的偏好、将在其处分析流的分析服务或机器学习服务的知识库条目,或使用默认设置。参数可包括例如,将被收集以构造初始的基于范围的随机切割树的记录的基线集和大小、将用于树的样本大小、用于离群值得分产生的距离和稀疏性参数、样本更新算法参数(例如,在决定应将哪些记录包括在样本中时,是否将使用未加权随机选择来替换样本成员,或一些记录是否将比其它距离更多地加权)、指配给个别属性的权重(在例如从客户端的角度来特征化记录时,从指示一些属性相对于其它属性的相对重要性)或指配给数据记录的权重、用于报告离群值得分/状态的通知阈值等。
可收集流的数据记录的基线集(要素1407),且可从基线集的相应样本产生基于范围的随机切割树(RCT)的初始集(要素1410)。概率迭代分割策略可用于构造树,其中树节点的边界框可在不同阶段处沿着选定维度或属性分割,且在给定阶段处的维度或属性可至少部分基于将在所述阶段处被分割的记录当中的属性的值的范围来选择。例如,如果在分割流记录的集合时将做出在两个属性Attr1与Attr2之间将选择,且Attr1值在集合中在100与200之间变化而Attr2在10与20之间变化,则选择Attr1作为分割属性的概率可被设定为(200-100)/((200-100)+(20-10))或100/110。在其它实施方案中,属性范围的其它函数可用于选择分割属性,例如,选择给定属性的概率可与所述属性的范围的对数成正比。在一些实施方案中,相应的离群值得分可被指配给树的初始集的节点,例如,基于树中的节点的深度、节点的相对隔离等等。
在树的初始集被构造之后,所述树可用于执行关于流的新的、先前未见的数据记录的离群值检测。当接收到流OR-new在树的当前集中未呈现的下一记录(要素1413)时,可执行两种类型的操作:(a)离群值得分计算(所述离群值得分计算可包括向一些或全部树中的“伪”插入),以及(b)样本更新,所述样本更新可包括向一些或全部树中的实际的节点插入和删除,且可根据概率树更新算法来执行。执行这两种类型的操作的次序在不同实施方案中可有所不同,或可同时执行两种类型的操作。在图13中所描绘的实施方案中,可以一次一个的方式考虑每一树,局部离群值得分可被指配给关于给定树的OR-new,可决定是否将针对所述树执行样本更新,且随后可在做出插入表示OR-new的新节点的决定时更新树。在其它实施方案中,可在计算出局部离群值得分之前决定是否更新树,因此可仅在将不执行实际或真插入时需要“伪”插入。
在选择尚未关于OR-new进行处理的下一树RCT-j(要素1416)之后,可基于如在“伪”插入中确定的表示RCT-j中的OR-new的节点的可能位置,针对RCT-j计算出OR-new的局部或单树离群值得分(要素1419)。伪插入还可包括一个或多个随机分割操作,其中分割属性至少部分基于所述属性的值范围来选择,如先前所描述。“伪”插入可与真插入不同,不同之处在于在所描绘的实施方案中由“伪”插入引起的变化可不被保存或变得永久。在一些实施方案中,局部离群值得分可基于可能的插入位置的一个或多个特性的组合,例如,对应的节点在树内的深度、邻居节点(例如,相对于可能插入的节点具有共同的父节点或先辈节点)的稀疏性,和/或其它节点距可能插入的节点的最小距离。在至少一个实施方案中,可针对OR-new产生局部或树级离群值得分,而不必遍历树一直到叶节点,或不必确定可能插入的节点的精确位置。例如,可简单地基于确定(在伪插入期间)表示OR-new的节点将被插入在大于阈值的深度处来指配得分。在一个实施方案中,例如,可使用阈值深度10,且即使已遍历树的10个层但针对其的叶节点仍尚未被插入的记录可简单地指配有低离群值得分。
概率流样本更新算法可被调用以确定是否将关于OR-new执行向RCT-j中的实际插入(要素1422),即,对应于RCT-j的样本是否将包括OR-new。如先前所提及,在一些实施方案中,例如OR-new等给定记录包括在样本中的概率可与记录的到达时间或到达顺序无关,而在其它实施方案中,较新记录可指配有比较旧记录更高的包括在样本中的概率。如果决定包括OR-new,则可识别出表示将被删除的记录的牺牲节点,且可执行真插入(所述真插入可导致节点在先前识别出的可能的插入位置处的插入)(要素1425)连同对应的删除以保持样本大小不变。在不同实施方案中,执行插入相对于删除的次序可有所不同。如果概率样本更新算法指示将不更新RCT-j(如还在对应于要素1422的操作中检测到),且另外的树仍被检查(如在要素1428中检测到),则对应于要素1416至1428的操作可针对下一树重复。在所有的树已关于OR-new进行检查之后,可从每树得分确定总离群值得分(要素1431)。例如,在一些实施方案中,每树得分的算数平均数、或几何平均数、或中位数,可用于产生总离群值得分。得分可基于客户端的报告或通知标准来存储在持久性存储库中和/或提供到客户端,为所述客户端执行离群值检测。在一些实施方案中,可从客户端获得关于所产生的离群值得分的反馈。例如,如果客户基于他们在针对其收集流数据的领域中的专业知识而不同意将高离群值得分指配给给定记录,则客户可指示其不同意(且可能提供图示)。在一些实施方案中,分析的质量的此类反馈或评估可被存储在知识库中和/或用于修改离群值检测算法的参数。在至少一个实施方案中,客户端可未必想要针对所有数据记录产生离群值得分,替代地,客户端可要求仅提供指定观察结果的离群值结果。在一个此情境中,负责离群值检测的分析服务可仍如上文所论述构造并更新随机切割树,但可仅将得分指配给针对其的特定请求已被接收到的记录。
注意,在各种实施方案中,图13中示出的操作中的一些可以与图中示出的次序不同的次序实施,或可同时而非顺序地执行。例如,在一些实施方案中,与给定树相关联的计算可与和不同树相关联的计算同时执行,假设足够的执行平台集合(例如机器学习服务器)为可用的。另外,在一个或多个实施方案中,可不需要图13中示出的操作中的一些。
使用案例
上文描述的对流数据记录快速且高效地执行离群值检测的技术可用于多种环境中。在快速到达的记录当中识别异常或不寻常数据对于诈骗检测、入侵检测、对硬件系统、器具或汽车中的可能故障的前瞻性响应及类似者可为至关重要的。零售组织可能能够使用所论述的离群值检测算法来隔离订单率中的下降并相应地做出反应。多个健康相关的应用程序还可得益于此类技术,例如,以在心脏病发作之前识别出不寻常的心脏行为、在例如糖尿病等疾病变得严重之前识别出不寻常的血液化学水平,等等。使用在其处实施机器学习服务或流分析服务的提供商网络的资源可允许较大量的计算资源以灵活的方式专用于离群值检测,且可允许从先前经历获得的知识被共享以改进在随后的离群值分析中获得的结果。在一些情况下,离群值检测算法可实施为与电子商务网站和/或提供商网络相关联的较大监视设施或工具的子部件。在此工具处检测到的离群值可例如有助于产生对可能难以解决的情况的快速(或甚至前瞻性)响应,所述情况例如资源过载或非响应服务。
说明性计算机系统
在至少一些实施方案中,实施上文针对离群值检测描述的技术中的一个或多个的服务器(包括例如实时分析管理器、执行平台以及机器学习服务的其它部件,或流管理和分析系统的各种部件)可包括通用计算机系统,所述通用计算机系统包括一个或多个计算机可访问介质或被配置为访问一个或多个计算机可访问介质。图14图示此通用计算装置9000。在所图示的实施方案中,计算装置9000包括一个或多个处理器9010,所述处理器经由输入/输出(I/O)接口9030耦合到系统存储器9020(所述系统存储器可包括非易失性和易失性存储器模块两者)。计算装置9000还包括耦合到I/O接口9030的网络接口9040。
在各种实施方案中,计算装置9000可为包括一个处理器9010的单处理器系统或包括若干个处理器9010(例如,两个、四个、八个或另一合适的数目)的多处理器系统。处理器9010可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器9010可为通用或嵌入式处理器,所述通用或嵌入式处理器实施多种指令集架构(ISA)中的任一个,例如x86、PowerPC、SPARC或MIPS ISA或者任何其它合适的ISA。在多处理器系统中,处理器9010中的每一个通常可但未必实施相同的ISA。在一些实施方案中,替代常规的处理器或除常规的处理器外,还可使用图形处理单元(GPU)。
系统存储器9020可被配置为存储可由处理器9010访问的指令和数据。在至少一些实施方案中,系统存储器9020可包括易失性和非易失性部分;在其它实施方案中,可使用仅易失性存储器。在各种实施方案中,可使用任何合适的存储器技术来实施系统存储器9020的易失性部分,所述存储器技术例如,静态随机存取存储器(SRAM)、同步动态RAM或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,所述系统存储器可包括一个或多个NVDIMM),在一些实施方案中,可使用基于闪存的存储器装置,包括NAND闪存装置。在至少一些实施方案中,系统存储器的非易失性部分可包括电源,例如超级电容器或其它电力存储装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻式随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或各种类型的相变存储器(PCM)中的任何相变存储器,可至少用于系统存储器的非易失性部分。在所图示的实施方案中,实施一个或多个期望功能的程序指令和数据,例如上文描述的那些方法、技术以及数据,被示出作为代码9025和数据9026存储在系统存储器9020内。
在一个实施方案中,I/O接口9030可被配置为在处理器9010、系统存储器9020、网络接口9040或其它外围接口(例如各种类型的持久性和/或易失性存储装置)之间协调I/O流量。在一些实施方案中,I/O接口9030可执行任何必需的协议、定时或其它数据变换以将来自一个部件(例如,系统存储器9020)的数据信号转换成适合于由另一部件(例如,处理器9010)使用的格式。在一些实施方案中,I/O接口9030可包括对通过各种类型的外围总线附接的装置的支持,所述外围总线例如,低引脚计数(LPC)总线、外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变化型式。在一些实施方案中,I/O接口9030的功能可分成两个或多于两个单独的部件,例如北桥和南桥等。并且,在一些实施方案中,I/O接口9030的功能中的一些或全部,例如到系统存储器9020的接口,可直接并入到处理器9010中。
网络接口9040可被配置为允许在计算装置9000和附接到网络9050的其它装置9060之间交换数据,所述其它装置例如如图1至图13中图示的其它计算机系统或装置等。在各种实施方案中,网络接口9040可经由任何合适的有线或无线通用数据网络(例如多种以太网络等)支持通信。另外,网络接口9040可经由例如模拟话音网络或数字光纤通信网络等电信/电话网络、经由例如光纤通道等存储区域网络SAN或经由任何其它合适类型网络和/或协议来支持通信。
在一些实施方案中,系统存储器9020可为被配置为存储如上文针对图1至图13所描述的用于实施对应方法和设备的实施方案的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其它实施方案中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问介质上。一般来说,计算机可访问介质可包括非暂时性存储介质或存储器介质,例如磁性或光学介质,例如经由I/O接口9030耦合到计算装置9000的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,例如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,所述易失性或非易失性介质在计算装置9000的一些实施方案中可被包括作为系统存储器9020或另一类型的存储器。此外,计算机可访问介质可包括经由例如网络和/或无线链路等通信介质传送的传输介质或信号,例如电信号、电磁信号或数字信号,例如可经由网络接口9040实施。多个计算装置(例如图14中图示的那些装置)中的部分或全部可用于在各种实施方案中实施所描述的功能性;例如,在多种不同的装置和服务器上运行的软件部件可协作以提供所述功能性。在一些实施方案中,除使用通用计算机系统实施外或替代使用通用计算机系统实施,所描述的功能性的各部分可使用存储装置、网络装置或专用计算机系统来实施。如本文所用的术语“计算装置”至少指代所有这些类型的装置,并且不限于这些类型的装置。
总结
本发明的实施方案可鉴于以下条款来描述:
条款1.一种系统,所述系统包括:在提供商网络处实施的网络可访问分析服务的一个或多个计算装置,其中所述一个或多个计算装置被配置为:经由程序设计接口从客户端接收请求以对流数据源的观察记录执行离群值检测,其中所述观察记录中的个别观察记录包括多个属性的值;收集所述流数据源的观察记录的基线集;产生对应于所述观察记录的基线集的相应样本的多个随机切割树,其中产生对应于特定样本的特定随机切割树包括以下操作的一次或多次迭代:至少部分基于特定属性的值范围来选择所述多个属性中的所述特定属性;且在针对所述特定属性选择的分割值上分割所述特定样本的至少一部分;响应于获得不包括在所述基线集中的特定观察记录,至少部分基于针对所述特定观察记录关于所述特定随机切割树识别出的可能的插入位置来计算所述特定观察记录的离群值得分;且响应于根据概率流样本更新算法确定对应于所述特定随机切割树的所述样本将包括所述特定观察记录,将表示所述特定观察记录的节点插入到所述特定随机切割树中;且响应于确定所述离群值得分满足结果报告标准,将所述离群值得分的指示提供给所述客户端。
条款2.根据条款1所述的系统,其中为将表示所述特定观察记录的所述节点插入到所述特定随机切割树中,所述一个或多个计算装置被配置为:响应于(a)在从所述特定随机切割树的所述根节点开始的遍历期间到达所述特定随机切割树的特定节点,其中所述特定节点表示对应于关于所述多个属性中的第一属性执行的较早随机分割计算的属性值的边界框,以及(b)确定所述特定观察记录落在所述边界框外,关于在所述边界框中呈现的所述多个属性中的选定属性执行随机分割计算;且至少部分基于所述随机分割计算的结果,确定(a)表示所述特定观察记录的节点是否被添加作为所述特定节点的新子节点或(b)所述特定随机切割树的遍历是否将沿着包括所述特定节点的不同子节点的路径继续。
条款3.根据条款1或2中任一项所述的系统,其中所述一个或多个计算装置被配置为:在确定对应于所述特定随机切割树的所述样本将包括所述特定观察记录之后,从所述特定随机切割树删除表示不同的观察记录的叶节点;用所述叶节点的兄弟节点替换所述叶节点的父节点;以及调整在所述兄弟节点的新位置与所述特定随机切割树的所述根节点之间的路径上的一个或多个节点的相应的边界框。
条款4.根据条款1至3中任一项所述的系统,其中所述一个或多个计算装置被配置为:至少部分基于以下各项中的一个或多个来计算所述离群值得分:(a)对应于所述可能的插入位置的稀疏性度量,(b)关于所述可能的插入位置和所述特定随机切割树的一个或多个其它节点计算出的相应的距离度量,或(c)对应于所述可能的插入位置的位移度量。
条款5.根据条款1至4中任一项所述的系统,其中所述执行离群值检测的请求用选定的查询语言明确表达,并且其中所述请求指示表明时间窗的参数,将关于所述时间窗执行所述离群值检测。
条款6.一种方法,所述方法包括:通过一个或多个计算装置执行:确定将对流的数据记录执行离群值检测,其中所述数据记录中的个别数据记录包括多个属性的值;产生对应于所述流的数据记录的基线集的相应样本的一个或多个随机切割树,其中产生对应于特定样本的特定的随机切割树包括以下操作的一次或多次迭代:至少部分基于特定属性的值范围来选择所述多个属性中的所述特定属性;且在针对所述特定属性选择的分割值上分割所述特定样本的至少一部分;响应于获得不包括在所述基线集中的特定数据记录,存储针对所述特定数据记录计算出的离群值得分,其中所述离群值得分至少部分基于针对所述特定数据记录关于所述特定随机切割树识别出的可能的插入位置,并且其中在不修改所述特定随机切割树的情况下计算所述离群值得分。
条款7.根据条款6所述的方法,所述方法还包括通过所述一个或多个计算装置执行:至少部分基于以下各项中的一个或多个来计算所述离群值得分:(a)对应于所述可能的插入位置的稀疏性度量,(b)关于所述可能的插入位置和所述特定随机切割树的一个或多个节点计算出的相应的距离度量,或(c)对应于所述可能的插入位置的位移度量。
条款8.根据条款6或7中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:响应于获得不包括在所述基线集中的第二数据记录,至少部分基于针对所述第二数据记录关于所述特定随机切割树识别出的可能的插入位置来计算对应于所述第二数据记录的第二离群值得分;以及根据样本更新算法,将所述第二数据记录插入到所述特定随机切割树中,且从所述特定随机切割树删除选定的数据记录。
条款9.根据条款8所述的方法,其中所述样本更新算法包括以下各项中的一个或多个:(a)随机样本更新算法,或(b)加权样本更新算法。
条款10.根据条款6至9中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:至少部分基于确定所述第二数据记录在所述特定随机切割树内的所述可能的插入位置处于大于阈值的深度,将第二离群值得分指配给第二数据记录,而不遍历所述特定随机切割树至大于所述阈值的深度。
条款11.根据条款6至10中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:确定将对第二流的数据记录执行离群值检测,其中所述第二流的所述数据记录中的个别数据记录包括第二多个属性的值;在产生对应于所述第二流的数据记录的第二基线集的一个或多个随机切割树之前,预处理所述第二基线集的至少一个子集,其中所述预处理包括以下各项中的一个或多个:(a)正规化所述第二多个属性中的一个或多个属性的原始值,(b)通过聚合所述第二基线集的多个数据记录的内容来产生导出记录,(c)使用搭叠技术以选定的滑动窗大小来从单一属性产生多维数据,或(d)对所述第二多个属性中的特定非数值属性的值应用变换函数以获得导出的数值。
条款12.根据条款6至11中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:至少部分基于知识库条目来确定以下各项中的一个或多个:(a)所述基线集的大小,(b)所述特定样本的大小,(c)将产生的随机切割树的数目,(d)将用于指配所述离群值得分的距离参数,(e)将用于指配所述离群值得分的稀疏性参数,(f)将被指配给所述特定属性的相对于其它属性的权重,其中所述离群值得分至少部分基于所述权重,(g)将用于更新所述特定随机切割树的时间替换参数,或(h)关于离群值得分的通知阈值,其中所述通知阈值用于确定关于所述离群值得分的通知是否被提供到一个或多个目的地。
条款13.根据条款6至12中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:经由程序设计接口从客户端接收以下各项中的一个或多个的指示:(a)所述基线集的大小,(b)所述特定样本的大小,(c)将产生的随机切割树的数目,(d)将用于指配所述离群值得分的距离参数,(e)将用于指配所述离群值得分的稀疏性参数,(f)将被指配给所述特定属性的相对于其它属性的权重,其中所述离群值得分至少部分基于所述权重,(g)将用于更新所述特定随机切割树的时间替换参数,或(h)关于离群值得分的通知阈值,其中所述通知阈值用于确定关于所述离群值得分的通知是否被提供到一个或多个目的地。
条款14.根据条款6至13中任一项所述的方法,其中所述一个或多个计算装置包括实施批处理模式操作和实时流操作的机器学习服务的多个执行平台,所述方法还包括通过所述一个或多个计算装置执行:在持久存储库处存储所述流的所述数据记录的至少一个子集;在接收所述流的至少一个数据记录之前,将所述流的一个或多个数据记录的相应的离群值得分提供给客户端;在所述相应的离群值得分已被提供之后,关闭所述流以停用另外的数据记录的接收,以及对所述数据记录子集执行批处理模式离群值检测操作,其中所述批处理模式离群值检测操作包括在所述相应的离群值得分已被提供给所述客户端之后更新至少一个随机切割树。
条款15.根据条款6至14中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:响应于确定所述离群值得分满足阈值标准,经由程序设计接口将指示所述离群值得分的通知提供给客户端。
条款16.根据条款6至15中任一项所述的方法,其中所述一个或多个计算装置中的至少一个计算装置包括与以下各项中的一个或多个相关联的监视工具的子部件:(a)电子商务网站或(b)提供商网络。
条款17.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:产生对应于数据集的数据记录的基线集的相应样本的一个或多个随机切割树,其中所述数据记录中的个别数据记录包括多个属性的值,其中产生对应于特定样本的特定的随机切割树包括以下操作的一次或多次迭代:至少部分基于特定属性的值范围来选择所述多个属性中的所述特定属性;且在针对所述特定属性选择的分割值上分割所述特定样本的至少一部分;获得所述数据集的特定数据记录,其中所述特定数据记录不包括在所述基线集中;且存储针对所述特定数据记录计算出的离群值得分,其中所述离群值得分的所述计算至少部分基于针对所述特定数据记录关于所述特定随机切割树识别出的可能的插入位置。
条款18.根据条款17所述的非暂时性计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:至少部分基于在所述可能的插入位置与所述特定随机切割树的根节点之间的节点的数目来计算所述离群值得分。
条款19.根据条款17或18中任一项所述的非暂时性计算机可访问存储介质,其中所述一个或多个随机切割树包括第二随机切割树,其中所述指令当在所述一个或多个处理器上执行时:响应于获得不包括在所述基线集中的第二数据记录,根据概率样本更新算法,将对应于所述第二数据记录的节点插入到所述特定随机切割树中,从所述特定随机切割树删除对应于第三数据记录的节点;且确定表示所述第二数据记录的节点将不被插入在所述第二随机切割树中。
条款20.根据条款19所述的非暂时性计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:至少部分基于以下各项中的一个或多个来选择第三数据记录以用于从所述特定随机切割树删除:(a)自对应于所述第三数据记录的所述节点被添加到所述特定随机切割树起已经过的时间段,或(b)在对应于所述第三数据记录的所述节点被添加到所述特定随机切割树之后已添加到所述特定随机切割树的节点的数目。
条款21.根据条款19所述的非暂时性计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:至少部分基于经由程序设计接口从客户端接收的输入,将指示所述客户端对所述离群值得分的评估的条目存储在知识库中;且检查所述条目以识别出将用于确定一个或多个另外的数据记录的相应离群值得分的一个或多个参数的值。
各种实施方案可还包括接收、发送或存储根据对计算机可访问介质的前述描述实施的指令和/或数据。一般来说,计算机可访问介质可包括存储介质或存储器介质,例如磁性或光学介质,例如,磁盘或DVD/CD-ROM、易失性或非易失性介质,例如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等,以及传输介质或信号,例如经由通信介质(例如网络和/或无线链路)传送的电信号、电磁信号或数字信号。
如附图中所图示且在本文中描述的各种方法表示方法的示例性实施方案。所述方法可用软件、硬件或其组合实施。可改变方法的次序,且可添加、重新排序、组合、省略、修改各种元件等。
可进行各种修改和改变,如得益于本发明的所属领域技术人员将显而易见。意图涵盖所有此类修改和改变,且因此,以上描述意图被视为说明性而非限制性意义。
Claims (15)
1.一种系统,所述系统包括:
在提供商网络处实施的网络可访问分析服务的一个或多个计算装置;
其中所述一个或多个计算装置被配置为:
产生对应于数据集的数据记录的基线集的相应样本的一个或多个随机切割树,其中所述数据记录中的个别数据记录包括多个属性的值,其中产生对应于特定样本的特定的随机切割树包括以下操作的一次或多次迭代:
至少部分基于特定属性的值范围来选择所述多个属性中的所述特定属性;以及
在针对所述特定属性选择的分割值上分割所述特定样本的至少一部分;以及
响应于获得不包括在所述基线集中的特定数据记录,存储针对所述特定数据记录计算出的离群值得分,其中所述离群值得分的所述计算至少部分基于针对所述特定数据记录关于所述特定随机切割树识别出的可能的插入位置。
2.根据权利要求1所述的系统,其中所述数据集的所述数据记录包括观察记录,并且其中所述一个或多个计算装置还被配置为:
经由程序设计接口从客户端接收对流数据源的所述观察记录执行离群值检测的请求,其中所述执行离群值检测的请求用选定的查询语言明确表达,并且其中所述请求指示表明时间窗的参数,将关于所述时间窗执行所述离群值检测;
收集所述流数据源的观察记录的基线集;
响应于根据概率流样本更新算法确定对应于所述特定随机切割树的所述样本将包括所述特定观察记录,将表示所述特定观察记录的节点插入到所述特定随机切割树中;以及
响应于确定所述离群值得分满足结果报告标准,将所述离群值得分的指示提供给所述客户端。
3.根据权利要求2所述的系统,其中为将表示所述特定观察记录的所述节点插入到所述特定随机切割树中,所述一个或多个计算装置被配置为:
响应于(a)在从所述特定随机切割树的所述根节点开始的遍历期间到达所述特定随机切割树的特定节点,其中所述特定节点表示对应于关于所述多个属性中的第一属性执行的较早随机分割计算的属性值的边界框,以及(b)确定所述特定观察记录落在所述边界框外,
关于在所述边界框中呈现的所述多个属性中的选定属性执行随机分割计算;以及
至少部分基于所述随机分割计算的结果,确定(a)表示所述特定观察记录的节点是否被添加作为所述特定节点的新子节点或(b)所述特定随机切割树的遍历是否将沿着包括所述特定节点的不同子节点的路径继续。
4.根据权利要求2或3所述的系统,其中所述一个或多个计算装置被配置为:
在确定对应于所述特定随机切割树的所述样本将包括所述特定观察记录之后,
从所述特定随机切割树删除表示不同的观察记录的叶节点;
用所述叶节点的兄弟节点替换所述叶节点的父节点;以及
调整在所述兄弟节点的新位置与所述特定随机切割树的所述根节点之间的路径上的一个或多个节点的相应的边界框。
5.根据权利要求2至4中任一项所述的系统,其中所述一个或多个计算装置被配置为:
至少部分基于以下各项中的一个或多个来计算所述离群值得分:(a)对应于所述可能的插入位置的稀疏性度量,(b)关于所述可能的插入位置和所述特定随机切割树的一个或多个其它节点计算出的相应的距离度量,或(c)对应于所述可能的插入位置的位移度量。
6.一种方法,所述方法包括:
通过一个或多个计算装置执行:
确定将对流的数据记录执行离群值检测,其中所述数据记录中的个别数据记录包括多个属性的值;
产生对应于所述流的数据记录的基线集的相应样本的一个或多个随机切割树,其中产生对应于特定样本的特定的随机切割树包括以下操作的一次或多次迭代:
至少部分基于特定属性的值范围来选择所述多个属性中的所述特定属性;以及
在针对所述特定属性选择的分割值上分割所述特定样本的至少一部分;
响应于获得不包括在所述基线集中的特定数据记录,
存储针对所述特定数据记录计算出的离群值得分,其中所述离群值得分至少部分基于针对所述特定数据记录关于所述特定随机切割树识别出的可能的插入位置,并且其中在不修改所述特定随机切割树的情况下计算所述离群值得分。
7.根据权利要求6所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
至少部分基于以下各项中的一个或多个来计算所述离群值得分:(a)对应于所述可能的插入位置的稀疏性度量,(b)关于所述可能的插入位置和所述特定随机切割树的一个或多个节点计算出的相应的距离度量,或(c)对应于所述可能的插入位置的位移度量。
8.根据权利要求6或7所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
响应于获得不包括在所述基线集中的第二数据记录,至少部分基于针对所述第二数据记录关于所述特定随机切割树识别出的可能的插入位置来计算对应于所述第二数据记录的第二离群值得分;以及
根据样本更新算法,其中所述样本更新算法包括以下各项中的一个或多个:(a)随机样本更新算法,或(b)加权样本更新算法,
将所述第二数据记录插入到所述特定随机切割树中,以及
从所述特定随机切割树删除选定的数据记录。
9.根据权利要求6至8中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
至少部分基于确定所述第二数据记录在所述特定随机切割树内的所述可能的插入位置处于大于阈值的深度,将第二离群值得分指配给第二数据记录,而不遍历所述特定随机切割树至大于所述阈值的深度。
10.根据权利要求6至9中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
确定将对第二流的数据记录执行离群值检测,其中所述第二流的所述数据记录中的个别数据记录包括第二多个属性的值;
在产生对应于所述第二流的数据记录的第二基线集的一个或多个随机切割树之前,预处理所述第二基线集的至少一个子集,其中所述预处理包括以下各项中的一个或多个:(a)正规化所述第二多个属性中的一个或多个属性的原始值,(b)通过聚合所述第二基线集的多个数据记录的内容来产生导出的记录,(c)使用搭叠技术以选定的滑动窗大小来从单一属性产生多维数据,或(d)对所述第二多个属性中的特定非数值属性的值应用变换函数以获得导出的数值。
11.根据权利要求6至10中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
至少部分基于知识库条目来确定以下各项中的一个或多个:(a)所述基线集的大小,(b)所述特定样本的大小,(c)将产生的随机切割树的数目,(d)将用于指配所述离群值得分的距离参数,(e)将用于指配所述离群值得分的稀疏性参数,(f)将被指配给所述特定属性的相对于其它属性的权重,其中所述离群值得分至少部分基于所述权重,(g)将用于更新所述特定随机切割树的时间替换参数,或(h)关于离群值得分的通知阈值,其中所述通知阈值用于确定关于所述离群值得分的通知是否被提供到一个或多个目的地。
12.根据权利要求6至11中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
经由程序设计接口从客户端接收以下各项中的一个或多个的指示:(a)所述基线集的大小,(b)所述特定样本的大小,(c)将产生的随机切割树的数目,(d)将用于指配所述离群值得分的距离参数,(e)将用于指配所述离群值得分的稀疏性参数,(f)将被指配给所述特定属性的相对于其它属性的权重,其中所述离群值得分至少部分基于所述权重,(g)将用于更新所述特定随机切割树的时间替换参数,或(h)关于离群值得分的通知阈值,其中所述通知阈值用于确定关于所述离群值得分的通知是否被提供到一个或多个目的地。
13.根据权利要求6至12中任一项所述的方法,其中所述一个或多个计算装置包括实施批处理模式操作和实时流操作的机器学习服务的多个执行平台,所述方法还包括通过所述一个或多个计算装置执行:
在持久存储库处存储所述流的所述数据记录的至少一个子集;
在接收所述流的至少一个数据记录之前,将所述流的一个或多个数据记录的相应的离群值得分提供给客户端;
在所述相应的离群值得分已被提供之后,关闭所述流以停用另外的数据记录的接收,以及
对所述数据记录子集执行批处理模式离群值检测操作,其中所述批处理模式离群值检测操作包括在所述相应的离群值得分已被提供给所述客户端之后更新至少一个随机切割树。
14.根据权利要求6至13中任一项所述的方法,所述方法还包括通过所述一个或多个计算装置执行:
响应于确定所述离群值得分满足阈值标准,经由程序设计接口将指示所述离群值得分的通知提供给客户端。
15.根据权利要求6至14中任一项所述的方法,其中所述一个或多个计算装置中的至少一个计算装置包括与以下各项中的一个或多个相关联的监视工具的子部件:(a)电子商务网站或(b)提供商网络。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/990,175 | 2016-01-07 | ||
US14/990,175 US11232085B2 (en) | 2016-01-07 | 2016-01-07 | Outlier detection for streaming data |
PCT/US2017/012602 WO2017120519A1 (en) | 2016-01-07 | 2017-01-06 | Outlier detection for streaming data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108475287A true CN108475287A (zh) | 2018-08-31 |
CN108475287B CN108475287B (zh) | 2022-05-13 |
Family
ID=57890928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780005917.2A Active CN108475287B (zh) | 2016-01-07 | 2017-01-06 | 用于流数据的离群值检测 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11232085B2 (zh) |
EP (1) | EP3400543A1 (zh) |
JP (1) | JP6782782B2 (zh) |
CN (1) | CN108475287B (zh) |
WO (1) | WO2017120519A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022017098A1 (en) * | 2020-07-21 | 2022-01-27 | International Business Machines Corporation | Method for proactive trouble-shooting of provisioning workflows for efficient cloud operations |
CN114424195A (zh) * | 2019-09-20 | 2022-04-29 | 国际商业机器公司 | 对同态加密数据的有效无监督异常检测 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886670B2 (en) * | 2014-06-30 | 2018-02-06 | Amazon Technologies, Inc. | Feature processing recipes for machine learning |
US11232085B2 (en) * | 2016-01-07 | 2022-01-25 | Amazon Technologies, Inc. | Outlier detection for streaming data |
US10917324B2 (en) | 2016-09-28 | 2021-02-09 | Amazon Technologies, Inc. | Network health data aggregation service |
US10685293B1 (en) * | 2017-01-20 | 2020-06-16 | Cybraics, Inc. | Methods and systems for analyzing cybersecurity threats |
WO2018188765A1 (en) * | 2017-04-12 | 2018-10-18 | Barcelona Supercomputing Center - Centro Nacional De Supercomputación | Distributed data structures for sliding window aggregation or similar applications |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
US11243949B2 (en) | 2017-04-21 | 2022-02-08 | Microsoft Technology Licensing, Llc | Query execution across multiple graphs |
US10644962B2 (en) * | 2017-11-15 | 2020-05-05 | APImetrics Inc. | Continuous monitoring for performance evaluation of service interfaces |
US11775540B2 (en) * | 2018-03-01 | 2023-10-03 | Microsoft Technology Licensing, Llc | Mining patterns in a high-dimensional sparse feature space |
JP7206603B2 (ja) * | 2018-03-16 | 2023-01-18 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置、情報処理システムおよびプログラム |
WO2019240020A1 (ja) * | 2018-06-13 | 2019-12-19 | パナソニックIpマネジメント株式会社 | 不正通信検知装置、不正通信検知方法及び製造システム |
US11188865B2 (en) * | 2018-07-13 | 2021-11-30 | Dimensional Insight Incorporated | Assisted analytics |
US11818204B2 (en) * | 2018-08-29 | 2023-11-14 | Credit Suisse Securities (Usa) Llc | Systems and methods for calculating consensus data on a decentralized peer-to-peer network using distributed ledger |
CN111046892A (zh) * | 2018-10-12 | 2020-04-21 | 北京京东尚科信息技术有限公司 | 异常识别方法和装置 |
JP7306446B2 (ja) * | 2019-02-22 | 2023-07-11 | 日本電気株式会社 | 異常検知装置、異常検知方法、及びプログラム |
US11444964B2 (en) | 2019-06-04 | 2022-09-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for detecting anomalies in network data traffic |
US11941502B2 (en) | 2019-09-04 | 2024-03-26 | Optum Services (Ireland) Limited | Manifold-anomaly detection with axis parallel |
US11347718B2 (en) | 2019-09-04 | 2022-05-31 | Optum Services (Ireland) Limited | Manifold-anomaly detection with axis parallel explanations |
US11620157B2 (en) * | 2019-10-18 | 2023-04-04 | Splunk Inc. | Data ingestion pipeline anomaly detection |
US11615102B2 (en) | 2019-10-18 | 2023-03-28 | Splunk Inc. | Swappable online machine learning algorithms implemented in a data intake and query system |
CN113495849A (zh) * | 2020-04-08 | 2021-10-12 | 慧荣科技股份有限公司 | 物理层的数据流切割装置及方法 |
US11657122B2 (en) * | 2020-07-16 | 2023-05-23 | Applied Materials, Inc. | Anomaly detection from aggregate statistics using neural networks |
US11704490B2 (en) | 2020-07-31 | 2023-07-18 | Splunk Inc. | Log sourcetype inference model training for a data intake and query system |
US11663176B2 (en) | 2020-07-31 | 2023-05-30 | Splunk Inc. | Data field extraction model training for a data intake and query system |
CN112559571B (zh) * | 2020-12-21 | 2024-05-24 | 国家电网公司东北分部 | 一种面向数值型流数据的近似离群点计算方法和系统 |
US11687438B1 (en) | 2021-01-29 | 2023-06-27 | Splunk Inc. | Adaptive thresholding of data streamed to a data processing pipeline |
CN113765734A (zh) * | 2021-03-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 网络访问量的检测方法及装置 |
US11640388B2 (en) | 2021-04-30 | 2023-05-02 | International Business Machines Corporation | Cognitive data outlier pre-check based on data lineage |
CN114925196B (zh) * | 2022-03-01 | 2024-05-21 | 健康云(上海)数字科技有限公司 | 多层感知网络下糖尿病血检异常值辅助剔除方法 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0261769A (ja) * | 1988-08-29 | 1990-03-01 | Fujitsu Ltd | 分類決定木生成装置 |
US20020154118A1 (en) * | 2001-02-28 | 2002-10-24 | Mccarthy Dennis John | Sorting data based on data attributes for display in multiple display windows |
US20030229641A1 (en) * | 2002-06-11 | 2003-12-11 | The Regents Of The University Of California | Using histograms to introduce randomization in the generation of ensembles of decision trees |
US6889218B1 (en) * | 1999-05-17 | 2005-05-03 | International Business Machines Corporation | Anomaly detection method |
US20080118124A1 (en) * | 2006-10-18 | 2008-05-22 | Anant Madabhushi | Systems and methods for classification of biological datasets |
US7565335B2 (en) * | 2006-03-15 | 2009-07-21 | Microsoft Corporation | Transform for outlier detection in extract, transfer, load environment |
US20100175124A1 (en) * | 2009-01-07 | 2010-07-08 | Symbol Technologies, Inc. | Methods and apparatus for implementing a search tree |
CN101802869A (zh) * | 2007-07-26 | 2010-08-11 | 3M创新有限公司 | 图像检测系统的多单元加工空间同步 |
US20110113009A1 (en) * | 2009-11-08 | 2011-05-12 | Chetan Kumar Gupta | Outlier data point detection |
CN102066980A (zh) * | 2008-05-22 | 2011-05-18 | 埃克森美孚上游研究公司 | 地震层位骨架化 |
US20120054184A1 (en) * | 2010-08-24 | 2012-03-01 | Board Of Regents, The University Of Texas System | Systems and Methods for Detecting a Novel Data Class |
CN102729664A (zh) * | 2011-03-29 | 2012-10-17 | 富士胶片株式会社 | 不良记录元件检测装置及方法、图像形成装置及方法、程序 |
CN103020222A (zh) * | 2012-12-13 | 2013-04-03 | 广州市香港科大霍英东研究院 | 用于车辆gps数据分析与异常监测的可视挖掘方法 |
US20140143186A1 (en) * | 2012-11-19 | 2014-05-22 | Rationalwave Analytics, Inc. | Hybrid clustering for data analytics |
US20140156649A1 (en) * | 2012-12-03 | 2014-06-05 | Sap Ag | Automatic Detection of Patterns and Inference in a Dataset |
US20150261886A1 (en) * | 2014-03-13 | 2015-09-17 | International Business Machines Corporation | Adaptive sampling schemes for clustering streaming graphs |
US20150379430A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Efficient duplicate detection for machine learning data sets |
US20150379429A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Interactive interfaces for machine learning model evaluations |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523019B1 (en) * | 1999-09-21 | 2003-02-18 | Choicemaker Technologies, Inc. | Probabilistic record linkage model derived from training data |
US7050932B2 (en) | 2002-08-23 | 2006-05-23 | International Business Machines Corporation | Method, system, and computer program product for outlier detection |
US20040181501A1 (en) * | 2003-03-11 | 2004-09-16 | Lockheed Martin Corporation | Parallelizable system for concise representation of data |
JP2004349846A (ja) | 2003-05-20 | 2004-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 外れ値検出方法 |
US7296018B2 (en) | 2004-01-02 | 2007-11-13 | International Business Machines Corporation | Resource-light method and apparatus for outlier detection |
US8688614B2 (en) * | 2007-01-26 | 2014-04-01 | Raytheon Company | Information processing system |
US8140421B1 (en) * | 2008-01-09 | 2012-03-20 | Zillow, Inc. | Automatically determining a current value for a home |
US8949158B2 (en) * | 2010-10-25 | 2015-02-03 | Intelius Inc. | Cost-sensitive alternating decision trees for record linkage |
US8463811B2 (en) * | 2011-04-11 | 2013-06-11 | International Business Machines Corporation | Automated correlation discovery for semi-structured processes |
US8924444B2 (en) * | 2011-09-13 | 2014-12-30 | Responsys, Inc. | System and method for analyzing database records using sampling and probability |
CN102360378A (zh) | 2011-10-10 | 2012-02-22 | 南京大学 | 一种时序数据离群点检测方法 |
US8843492B2 (en) * | 2012-02-13 | 2014-09-23 | Microsoft Corporation | Record linkage based on a trained blocking scheme |
US10635644B2 (en) * | 2013-11-11 | 2020-04-28 | Amazon Technologies, Inc. | Partition-based data stream processing framework |
US11487732B2 (en) * | 2014-01-16 | 2022-11-01 | Ab Initio Technology Llc | Database key identification |
US10339465B2 (en) * | 2014-06-30 | 2019-07-02 | Amazon Technologies, Inc. | Optimized decision tree based models |
US10417201B2 (en) * | 2014-08-13 | 2019-09-17 | Finca International, Inc | Systems and methods for adaptively identifying and mitigating statistical outliers in aggregated data |
US9699205B2 (en) * | 2015-08-31 | 2017-07-04 | Splunk Inc. | Network security system |
US11232085B2 (en) * | 2016-01-07 | 2022-01-25 | Amazon Technologies, Inc. | Outlier detection for streaming data |
-
2016
- 2016-01-07 US US14/990,175 patent/US11232085B2/en active Active
-
2017
- 2017-01-06 JP JP2018535351A patent/JP6782782B2/ja active Active
- 2017-01-06 CN CN201780005917.2A patent/CN108475287B/zh active Active
- 2017-01-06 WO PCT/US2017/012602 patent/WO2017120519A1/en active Application Filing
- 2017-01-06 EP EP17701625.0A patent/EP3400543A1/en not_active Withdrawn
-
2021
- 2021-12-13 US US17/549,395 patent/US20220100721A1/en active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0261769A (ja) * | 1988-08-29 | 1990-03-01 | Fujitsu Ltd | 分類決定木生成装置 |
US6889218B1 (en) * | 1999-05-17 | 2005-05-03 | International Business Machines Corporation | Anomaly detection method |
US20020154118A1 (en) * | 2001-02-28 | 2002-10-24 | Mccarthy Dennis John | Sorting data based on data attributes for display in multiple display windows |
US20030229641A1 (en) * | 2002-06-11 | 2003-12-11 | The Regents Of The University Of California | Using histograms to introduce randomization in the generation of ensembles of decision trees |
US7565335B2 (en) * | 2006-03-15 | 2009-07-21 | Microsoft Corporation | Transform for outlier detection in extract, transfer, load environment |
US20080118124A1 (en) * | 2006-10-18 | 2008-05-22 | Anant Madabhushi | Systems and methods for classification of biological datasets |
CN101802869A (zh) * | 2007-07-26 | 2010-08-11 | 3M创新有限公司 | 图像检测系统的多单元加工空间同步 |
CN102066980A (zh) * | 2008-05-22 | 2011-05-18 | 埃克森美孚上游研究公司 | 地震层位骨架化 |
US20100175124A1 (en) * | 2009-01-07 | 2010-07-08 | Symbol Technologies, Inc. | Methods and apparatus for implementing a search tree |
US20110113009A1 (en) * | 2009-11-08 | 2011-05-12 | Chetan Kumar Gupta | Outlier data point detection |
US20120054184A1 (en) * | 2010-08-24 | 2012-03-01 | Board Of Regents, The University Of Texas System | Systems and Methods for Detecting a Novel Data Class |
CN102729664A (zh) * | 2011-03-29 | 2012-10-17 | 富士胶片株式会社 | 不良记录元件检测装置及方法、图像形成装置及方法、程序 |
US20140143186A1 (en) * | 2012-11-19 | 2014-05-22 | Rationalwave Analytics, Inc. | Hybrid clustering for data analytics |
US20140156649A1 (en) * | 2012-12-03 | 2014-06-05 | Sap Ag | Automatic Detection of Patterns and Inference in a Dataset |
CN103020222A (zh) * | 2012-12-13 | 2013-04-03 | 广州市香港科大霍英东研究院 | 用于车辆gps数据分析与异常监测的可视挖掘方法 |
US20150261886A1 (en) * | 2014-03-13 | 2015-09-17 | International Business Machines Corporation | Adaptive sampling schemes for clustering streaming graphs |
US20150379430A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Efficient duplicate detection for machine learning data sets |
US20150379429A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Interactive interfaces for machine learning model evaluations |
Non-Patent Citations (4)
Title |
---|
ARTICOLO DI S. RAMASWAMY 等: "Efficient algorithms for mining outliers from large data sets", 《SIGMOD RECORD, ACM》 * |
FEI TONY LIU 等: "Isolation Forest", 《2008 EIGHTH IEEE INTERNATIONAL CONFERENCE ON DATA MINING》 * |
MATTHIAS REIF 等: "Anomaly detection by combining decision trees and parametric densities", 《19TH INTERNATIONAL CONFERENCE ON RECOGNITION》 * |
VICTORIA J. HODGE 等: "A Survey of Outlier Detection Methodologies", 《ARTIFICIAL INTELLIGENCE REVIEW》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114424195A (zh) * | 2019-09-20 | 2022-04-29 | 国际商业机器公司 | 对同态加密数据的有效无监督异常检测 |
WO2022017098A1 (en) * | 2020-07-21 | 2022-01-27 | International Business Machines Corporation | Method for proactive trouble-shooting of provisioning workflows for efficient cloud operations |
US11243986B1 (en) | 2020-07-21 | 2022-02-08 | International Business Machines Corporation | Method for proactive trouble-shooting of provisioning workflows for efficient cloud operations |
GB2612516A (en) * | 2020-07-21 | 2023-05-03 | Ibm | Method for proactive trouble-shooting of provisioning workflows for efficient cloud operations |
Also Published As
Publication number | Publication date |
---|---|
JP6782782B2 (ja) | 2020-11-11 |
CN108475287B (zh) | 2022-05-13 |
US11232085B2 (en) | 2022-01-25 |
US20170199902A1 (en) | 2017-07-13 |
JP2019505912A (ja) | 2019-02-28 |
WO2017120519A1 (en) | 2017-07-13 |
EP3400543A1 (en) | 2018-11-14 |
US20220100721A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475287A (zh) | 用于流数据的离群值检测 | |
US10719301B1 (en) | Development environment for machine learning media models | |
US20230195845A1 (en) | Fast annotation of samples for machine learning model development | |
US11687786B2 (en) | Pre-processing for data-driven model creation | |
US20200050968A1 (en) | Interactive interfaces for machine learning model evaluations | |
US11100403B2 (en) | Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation | |
US9292797B2 (en) | Semi-supervised data integration model for named entity classification | |
CN106663038B (zh) | 用于机器学习的特征处理配方 | |
CN106575246B (zh) | 机器学习服务 | |
TWI689871B (zh) | 梯度提升決策樹(gbdt)模型的特徵解釋方法和裝置 | |
US20190391863A1 (en) | Artificial Creation Of Dominant Sequences That Are Representative Of Logged Events | |
US10621492B2 (en) | Multiple record linkage algorithm selector | |
US10318882B2 (en) | Optimized training of linear machine learning models | |
JP2020522794A (ja) | ニューラルネットワーク分類 | |
JP2021518024A (ja) | 機械学習アルゴリズムのためのデータを生成する方法、システム | |
US20150379430A1 (en) | Efficient duplicate detection for machine learning data sets | |
Dormann et al. | Package ‘bipartite’ | |
US10963802B1 (en) | Distributed decision variable tuning system for machine learning | |
CN114168608A (zh) | 一种用于更新知识图谱的数据处理系统 | |
Fung et al. | Automation of QIIME2 metagenomic analysis platform | |
JP2022542920A (ja) | データ・マッチングのための能動学習 | |
CN115408189A (zh) | 人工智能与大数据结合的异常检测方法及服务系统 | |
JP2023014025A (ja) | 方法、コンピュータプログラム、及びコンピュータシステム(文字列類似度決定) | |
US20240012859A1 (en) | Data cataloging based on classification models | |
US20240061867A1 (en) | Cluster-based dataset evolution |
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 |