Microsoft Fabric 中的多变量异常情况检测 - 概述
什么是时序的多变量异常情况检测? 单变量异常情况检测由 KQL 函数 series_decompose_anomalies() 实现,可用于监视和检测一段时间内单个变量分布中的异常情况。 相比之下,多变量异常情况检测是检测多个变量的联合分布中随时间推移发生的异常情况的方法。 当变量相关时,此方法非常有用,因此,它们的值在特定时间的组合可能是异常的,而每个变量的值本身都是正常的。 可在各种应用中使用多变量异常情况检测,例如监视复杂 IoT 系统的运行状况、检测金融交易中的欺诈以及识别网络流量中的异常模式。
例如,考虑一个监视车队的性能的系统。 系统收集有关各种指标的数据,例如速度、燃油消耗和发动机温度。 通过将这些指标一起分析,系统可以通过单独分析每个指标来检测不明显的异常情况。 燃油消耗增加本身可能是由于各种可接受的原因。 但是,燃油消耗的突然增加加上发动机温度的下降可能表明发动机存在问题,即使每个指标本身都在正常范围内。
如何在 Microsoft Fabric 中检测多变量异常情况?
Fabric 中的多变量异常情况检测利用在共享持久存储层之上的强大 Spark 和 Eventhouse 引擎。 初始数据可以引入到 Eventhouse 中,并在 OneLake 中公开。 然后,可以使用 Spark 引擎训练异常情况检测模型,并使用 Eventhouse 引擎实时预测新流式处理数据的异常情况。 这些引擎的互连可以处理共享存储中的相同数据,从而允许数据从引入,通过模型训练,到异常情况预测的无缝流。 此工作流简单而强大,可用于实时监视和检测复杂系统中的异常情况。
解决方案构成
此解决方案依赖于以下组件:
- Eventhouse:数据最初引入到 Eventhouse 中,该组件是一个实时数据处理引擎,可以处理高吞吐量数据流。
- OneLake:Eventhouse 中的数据在 OneLake 中公开,该组件是一个共享的持久存储层,提供数据的统一视图。
- 多变量异常情况检测包:该解决方案使用 time-series-anomaly-detector python 包,实施基于图形关注网络 (GAT) 的高级算法,该算法捕获不同时序之间的相关性,并实时检测异常情况。 GAT 模型基于历史数据进行训练,以了解不同时序之间的关系。 训练的模型可以应用于预测新的流式处理数据的异常情况。 请注意,此算法是在即将停用的 AI 异常情况检测器服务中使用的算法。 有关算法的详细信息,请参阅博客和论文。
- Spark Notebook:用于脱机训练历史数据的异常情况检测模型,并将训练的模型存储在 Fabric 的 MLflow 模型注册表中
- KQL 查询集:用于实时预测传入数据的异常情况。