自动化时间序列数据异常检测
作者:Jason Myers / 产品, 用例
2022 年 9 月 8 日
导航至
本文最初发表在 The New Stack,并经许可在此处转载。
每天有数千亿个传感器产生大量的时间序列数据。
公司收集的大量数据使得分析和收集见解具有挑战性。机器学习极大地加速了时间序列数据分析,使公司能够理解和利用其时间序列数据来推动重大创新和改进。
目前的估计预测,到 2025 年将有超过 1 万亿个传感器可用,产生时间序列数据。为了帮助公司处理所有这些数据,法国技术公司 Ezako 专门从事人工智能 (AI) 和时间序列数据,创建了 Upalgo 平台。Upalgo 是一个 SaaS 平台,它将机器学习应用于时间序列数据,通过自动化异常检测和标记过程,然后迭代这些过程以改进数据模型,使其更有用和高性能。
该公司主要服务于航空航天、汽车和电信行业,但可以服务于任何处理大量传感器、遥测和物联网 (IoT) 数据的垂直行业。
架构
Upalgo 平台依赖 InfluxDB 作为其数据存储。该公司在发现 InfluxDB 之前尝试了几种选择,包括关系数据库、NoSQL 数据库以及 Hadoop 和 OpenTSDB 的组合,后者本质上是一个 NoSQL 数据库,针对时间序列数据进行了一些调整。
这些解决方案都无法提供 Upalgo 处理时间序列数据所需的速度和能力。关键的决策因素包括 InfluxDB 的窗口功能及其活跃的开发者社区。Ezako 团队将此视为一个关键资源,可以从在同一领域工作的人那里获得针对时间序列特定问题的帮助。使用 InfluxDB 使 Ezako 的数据科学家能够专注于数据科学和机器学习,而不是时间序列存储。
作为高级概述,Upalgo 平台从数据收集 API 开始,该 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) 算法需要学习原始数据的特征,这意味着在学习阶段需要 5 到 10 百万个数据点。
异常检测的一个重大挑战是数据缺乏基线真值。因此,可能会发生误报和漏报。为了减轻这些类型的异常,机器学习算法需要更多关于数据的信息。这就是标签发挥作用的地方。
使用机器学习标记数据
标签是数据集上的额外信息。标签帮助算法更多地了解数据,这使用户能够使用它做更好的事情。标签可以帮助机器学习的一种方式是从数据集中删除异常。这有助于为数据建立更真实的基线。
标记大型数据集是一项巨大的时间投入。这也是训练机器学习算法的一个关键方面,因此数据科学家花费大量时间标记数据。Upalgo 自动识别异常,使数据科学家可以更快更轻松地找到他们需要标记的内容。
该平台的标记功能还允许用户手动识别数据集中的多个标签。然后,它使用 AI 来检查序列的其余部分并找到相似的模式。这会生成更多标签,从而产生关于序列的更多信息和更准确的数据模型。
让时间序列数据发挥作用
在整个异常检测和标记过程中,Upalgo 使用 InfluxQL 从 InfluxDB 查询数据,为用户生成数据可视化,因为它可以快速返回大型数据集。
Ezako 致力于改进时间序列数据的机器学习,这显着加速了机器学习数据科学家面临的关键流程。InfluxDB 提供了后端功能,使 Ezako 团队能够专注于数据科学,而不是基础设施,并提供客户想要的最终用户体验。