自动化时间序列数据的异常检测

导航至

本文最初发表在The New Stack,经许可在此重发。

每天有数百亿个传感器产生大量时间序列数据。

公司收集的数据量巨大,分析难度大,难以提取见解。机器学习极大地加快了时间序列数据分析的速度,使公司能够理解和行动,以推动重大创新和改进。

目前的估计预测到2025年将有超过1000亿个传感器产生时间序列数据。为了帮助公司处理所有这些数据,法国一家专注于人工智能(AI)和时间序列数据的技术公司Ezako创建了Upalgo平台。Upalgo是一个SaaS平台,通过应用机器学习对时间序列数据进行自动化异常检测和标记的过程,使数据更有用、更高效,并通过迭代这些过程来改进数据模型。

该公司主要服务于航空航天、汽车和电信行业,但也可以为处理大量传感器、遥测和物联网(IoT)数据的任何垂直行业提供服务。

架构

Upalgo平台依赖于InfluxDB作为其数据存储库。在发现InfluxDB之前,公司尝试了多种选项,包括关系型数据库、NoSQL数据库以及Hadoop和OpenTSDB的组合,后者本质上是一个带有一些针对时间序列数据适配的NoSQL数据库。

这些解决方案中没有哪一个能提供Upalgo处理时间序列数据所需的速度和能力。关键决策因素包括InfluxDB的窗口功能以及其活跃的开发者社区。Ezako团队认为这是从同一领域的人那里获得针对时间序列特定问题的帮助的关键资源。使用InfluxDB使得Ezako的数据科学家能够专注于数据科学和机器学习,而不是时间序列存储。

Architecture

作为一个高层次概述,Upalgo平台从数据收集API开始,将数据发送到InfluxDB。由于Upalgo需要与许多不同的系统交互,Ezako团队构建了一个REST API,它作为一个通用层,可以轻松连接到其他技术栈。通过这个API层,Upalgo UI可以从InfluxDB查询数据用于可视化。机器学习处理层可以访问相同的数据进行分析,并将处理后的数据写入InfluxDB存储桶以进行更深入的分析和微调数据模型。

机器学习挑战

尽管InfluxDB是Upalgo平台的核心,但在将机器学习应用于时间序列数据时,仍存在一些固有的挑战。

一个挑战是连续数据摄取。系统全天候收集数据,这在非常基本的层面上,会消耗一定量的处理资源。机器学习实践者需要意识到这种资源消耗,并将其纳入其他将同时运行的过程,以便优化连续和非连续工作负载,以提供预期的用户体验。

与第一个挑战相关的是读取密集型的学习过程。建立数据模型需要大量数据,这意味着非常大的读取操作。此外,学习过程需要快速同时与其他进程共享资源。这就是REST API发挥作用的地方,因为它将任何读取问题都集中在一个技术层,无论其上运行的是哪些进程或系统。

异常检测

Upalgo平台的关键特性之一是异常检测。该平台提供多种不同的建模和异常检测算法,因此用户可以选择最适合其数据和业务目标的最佳选项。

然而,无论算法如何,机器学习都需要大量数据。例如,要开始使用One Class SVM或Isolation Forest算法构建异常检测模型,您至少需要100万个数据点。在60点窗口上计算特征,这是秒或小时的标准,会产生15,000个窗口供算法学习。实际上,这并不多,这仅仅是一个系列的因素。

包含多个系列的模型需要为每个额外的系列额外一百万个数据点。因此,包含三个系列的模型仅为了生成基本模型就需要300万个数据点。某些算法需要更多的数据。长期短期记忆(LSTM)算法需要学习原始数据的特征,这意味着在学习阶段需要500万到1000万个数据点。

anomaly detection

异常检测的一个重大挑战是缺乏数据的基本真实基准。因此,可能会出现误报和漏报。为了减轻这些异常,机器学习算法需要更多关于数据的信息。这就是标签的作用所在。

使用机器学习进行数据标注

标签是数据集上的额外信息。标签帮助算法更多地了解数据,使用户能够更好地使用它。标签帮助机器学习的一种方式是去除数据集中的异常,这有助于为数据建立更真实的基本基准。

标注大型数据集需要大量的时间投入。这也是训练机器学习算法的关键环节,因此数据科学家在标注数据上花费了大量时间。Upalgo自动识别异常,使数据科学家更快、更容易地找到需要标注的内容。

平台上的标注功能还允许用户手动在数据集中识别多个标签。然后,它使用AI检查其余序列并找到相似的模式。这产生了更多的标签,为序列提供了更多信息,并生成了更准确的数据模型。

让时间序列数据发挥作用

在整个异常检测和标注过程中,Upalgo使用InfluxQL查询InfluxDB中的数据来为用户生成数据可视化,因为它可以快速返回大型数据集。

Ezako致力于改进时间序列数据的机器学习,显著加速了机器学习数据科学家面临的关键过程。InfluxDB提供了后端能力,使Ezako团队能够专注于数据科学而不是基础设施,并提供客户期望的最终用户体验。