摘要
My recent work has mainly focused on studying the reaction processes inside that particular equipment, and I now have a good understanding of those processes. Currently, I have been dedicating my efforts to learning how to integrate that knowledge with deep learning techniques. As a result, I have been searching for research papers related to the combination of deep learning and sensors. Although I haven’t fully grasped the content of one particular paper related to sensors and deep learning, it has still been a rewarding experience.
论文阅读
**论文题目:**Graph Neural Network-Based Anomaly Detection in Multivariate Time Series
论文链接:https://arxiv.org/abs/2106.06947
**论文作者:**Ailin Deng, Bryan Hooi
摘要
对于给定高维时间序列数据(例如,传感器数据),如何检测异常事件,例如系统故障和攻击?难度更大的是,如何能捕获复杂的传感器间关系,并检测和解释偏离这些关系的异常情况?最近深度学习方法已经改善了高维数据集的异常检测;然而现有的方法并没有明确地学习变量之间现有关系的结构,或者使用它们来预测时间序列的预期行为。论文中提出一种基于 GNN 的结构学习模型 GDN(Graph Deviation Network)来解决多变量时间序列异常检测的问题,此外还利用 GAT 学习到的注意力权重来解释检测到的异常。
背景介绍
随着传感器数据的复杂性和维度的增加,人类越来越难以手动监控这些数据,这就需要自动异常监测方法来快速监测高维数据中的异常,并具备可解释性,使操作员能够尽快对异常作出诊断和响应。最近,基于深度学习技术的高维数据异常检测取得了一定进展,如:自编码器(Autoencoders)、生成对抗网络(GANs)和基于LSTM的方法等。然而大多数方法不能明确了解哪些传感器之间是相关的,因此在建模具有许多潜在相互关系的高维传感器数据时面临困难,也限制了他们在异常检测检测到异常事件发生时的解释能力和对模型误差的解释能力。
当前研究存在的问题
如何充分利用多变量时间序列中传感器之间的复杂关系?——图神经网络(GNN),包括:图卷积神经网络(GCN)、图注意神经网络(GATs)、多关系方法等。将其应用于时间序列的异常检测主要有两个挑战:
(1) 不同传感器有非常不同的行为(difference sensors have very different behaviors)。如经典GNN对测量水压的传感器和测量流量的传感器使用相同的模型参数对节点进行建模。
(2) 在我们的设置(setting)中,图的边(graph edges)——传感器之间的关系(the lationships between sensors)是未知的,而模型却需要图和图的边作为输入去学习。
提出问题
(1)对于高维时间序列数据(high-dimensional time series data),我们如何监测异常事件(detect anomalous events),如系统的故障和攻击?
(2)如何捕捉复杂的传感器之间的关系(captures complex inter-sensor relationships),并监测和解释偏离(deviate)这些关系的异常情况?
作者的解决方法
结合结构学习方法和图神经网络,并使用注意力权重来为监测到的异常提供解释。
方法的优越性在于能更准确监测异常,准确捕捉传感器之间的相关性,并允许用户推断检测到异常的根本原因。
作者提出图偏差网络(Graph Deviation Network, GDN)以学习表示传感器之间关系的图,并检测偏差。该方法主要包括四个部分:
(1) 传感器嵌入(Sensor Embedding),利用嵌入向量灵活捕捉每个传感器的独特特征;
(2) 图结构学习(Graph Structure Learning),图结构学习传感器之间的关系(权重);
(3) 基于图注意的预测学习(Graph Attention-Based Forecasing),基于途中相邻传感器的注意函数来预测传感器的未来行为
(4) 图偏差得分(Graph Deviation Scoring),识别并解释从图中学习的传感器的关系的偏差。
文章贡献
(1) 提出了图偏差学习(GDN)——一种新的基于注意力的图神经网络学习方法,以学习传感器之间依赖关系的图,并识别和解释这些关系的偏差;
(2) 对所提出方法进行实验,证明了方法的优越性;
(3) 展示了GDN通过嵌入层和学习到的图提供的可解释模型,并证明该方法有助于解释异常,通过图偏差和注意权重比较传感器的预测和实际行为。
模型框架介绍
GDN 模型框架
主要包括四部分:
(1) 传感器嵌入(Sensor Embedding),利用嵌入向量灵活捕捉每个传感器的独特特征,学习到每个 sensor 的特征向量表示;
(2) 图结构学习(Graph Structure Learning),图结构学习传感器之间的关系(权重),学习 sensors 间依赖关系的图结构表示;
(3) 基于图注意的预测学习(Graph Attention-Based Forecasing),基于途中相邻传感器的注意函数来预测传感器的未来行为,能基于图注意力机制预测每个 sensor 下个时刻的值
(4) 图偏差得分(Graph Deviation Scoring),识别并解释从图中学习的传感器的关系的偏差,从学习到的关系中确认偏差并且定位和解释偏差。
传感器嵌入部分
在许多传感器数据设置中,不同的传感器可能具有非常不同的特性,并且这些特性可以以复杂的方式关联起来。因此,理想情况下,我们希望以一种灵活的方式表示每个传感器,以多维(multidimensional)的方式捕捉其行为下的不同“因素(factors)”。
因此,作者通过为每个传感器引入一个表示特征(相似性)的嵌入向量来实现:
embedding vector 首先是实际初始化然后进行训练,论文将每个 sensor 的 embedding 用于两方面:
-
结构学习:判断 sensor 间的相关性;
-
注意力系数学习:考虑不同种类 sensor 间的异质影响程度;
图结构学习部分
这部分的基本原理:
若使用有可能依赖关系的节点集表示,则没有先验信息的情况下,传感器i的候选关系传感器(candidate relation, 代表有可能有依赖关系的传感器)是所有传感器的集合;而有先验关系时,就是可能有依赖关系的传感器的集合。
为了从候选节点中选择真正有依赖关系的传感器,作者首先计算传感器i的嵌入向量与候选关系传感器的归一化点积,然后选择前k个这样的归一化点积,来计算节点i的嵌入向量与其他候选节点的嵌入向量之间的相似性,如下式所示。
这里的Aij是用来表示sensor间关系的有向图对应的邻接矩阵。
基于图预测部分
Graph Attention-Based Forecasting目的
(1) 哪些传感器偏离了正常行为?
(2) 这些传感器在哪些方面偏离了正常行为?
为了实现上述目标,作者根据过去的数据预测每个传感器在每个时间的预期行为,使得用户能容易识别出与预期行为(the expected behavior)有很大偏差(deviate greatly)的传感器,并根据比较每个传感器的预期和观察到的行为理解为什么模型认为传感器是异常的。
基本原理
在t时刻,基于历史时间序列数据上大小为w的滑动窗口(sliding window)定义模型输入,如下式所示。
图偏差评分部分
为了检测和解释 sensor 的异常,论文中的模型首先针对每个 sensor 计算一个异常值,然后再合并得到一个组合分数。
对于 t时刻 sensor 的异常值为:
由于不同 sensor 的偏差值有不同的量纲,因此需要标准化
取所有 sensor 最大的异常值为异常分数
实验
作者主要进行了以下四部分实验:
精度(Accuracy)实验——比较突显方法的优越性
消融(Ablation)实验——模型的各组成部分如何影响模型性能
通过实验进行可解释性解释(Interpretability of Model)。
异常定位实验——能否定位异常、识别受影响传感器,了解异常如何偏离预期行为。
总结
今天跟老师今天聊了后感觉了解了很多。考虑了一下我可以从一下几个方向上继续深入学习:
-
首先是把整个工艺梳理一遍,对整个工艺掌握清楚,之前一直在纠结那个设备结构,开口比怎么来的,还去看了不少CFD的东西
-
考虑如何根据过去的入水BOD,氨氮等计算当前的溶解氧需求量(这部分我感觉可以搭起来时序模型,过去的入水BOD,氨氮的含量也有对应的溶解氧需求量可以作为输入数据)
-
考虑如何实时获得溶解氧的含量情况(这部分我找强哥要了数据,可能有溶解氧的数据情况不需要搭传感器之类的)