AAAI 2021 | 基于图神经网络的多变量时间序列异常检测 | xxxAAAI 2021 | 基于图神经网络的多变量时间序列异常检测 – xxx
菜单

AAAI 2021 | 基于图神经网络的多变量时间序列异常检测

七月 9, 2021 - 安全维基

论文标题 | Graph Neural Network-Based Anomaly Detection in Multivariate Time Series

论文来源 | AAAI 2021

论文链接 | https://arxiv.org/abs/2106.06947

源码链接 | https://github.com/d-ailin/GDN

TL;DR

论文中提出一种基于 GNN 的结构学习模型 GDN(Graph Deviation Network)来解决多变量时间序列异常检测的问题,此外还利用 GAT 学习到的注意力权重来解释检测到的异常。实验部分在两个真实 sensors 数据集中验证了 GDN 模型不仅比 baselines 更加准确地检测出异常,还可以捕获不同传感器间的关系来辅助定位异常根因。感觉和另一篇文章思路有些类似 MTAD-GAT:基于图注意力网络的多变量时间序列异常检测模型,但是方法更 naive。

Problem Statement

论文中的训练数据包括 个 sensors 在 范围内数据 ,在每个时刻 的数据 维向量表示 个 sensors 对应的值。对于无监督模型训练数据中一般仅包含正常数据。

模型的目标是检测测试数据集 个时刻中是否为异常,每个时刻数据结果为

Algorithm/Model

论文中提出的模型框架如下图所示:

AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
GDN 模型框架

主要包括四部分:

  • 「Sensor Embedding」:学习到每个 sensor 的特征向量表示;
  • 「Graph Structure Learning」:学习 sensors 间依赖关系的图结构表示;
  • 「Graph Attention-Based Forecasting」:基于图注意力机制预测每个 sensor 下个时刻的值;
  • 「Graph Deviation Scoring」:从学习到的关系中确认偏差并且定位和解释偏差;

Sensor embedding

对于每个 sensor 学习到一个 embedding vector 来表示其特征

embedding vector 首先是实际初始化然后进行训练,论文将每个 sensor 的 embedding 用于两方面:

  • 结构学习:判断 sensor 间的相关性;
  • 注意力系数学习:考虑不同种类 sensor 间的异质影响程度;

图结构学习

考虑到不同 sensor 间依赖模式是不对称的,论文中利用「有向图」来表示 sensor 间的关系,其对应的邻接矩阵为

对于每个 sensor 其依赖的 condidate relations 为 。如果有先验知识那么 可以自定义,如果没有那么为除本身外的全集。

为了选择 sensor 的依赖,需要计算其对于每个 condidate relations 中 的相似性:

然后选择 top-k 个最相似的作为其依赖 sensor,至于 值需要根据稀疏性进行判断。

基于图注意力预测

为什么采用预测模型?1. 判断哪个 sensor 偏离异常 2. 判断 sensor 如何偏离异常的。

在时刻 模型输入为 ,其 表示历史序列时间窗口,目标是需要判断在当前时刻值

为了考虑 sensor 间的关系,论文中采用图注意力机制来融合 sensor 特征 ,对于节点 聚合特征 计算方法如下

这种模式太熟悉了就不再介绍每个参数代表的含义。注意力系数计算方法如下

其中 表示链接操作, 是注意力机制学习到的系数向量。

以上特征融合的过程就可以得到 个节点的特征表示 。对于每个 , 论文中又 element-wise 乘特征表示 ,再经过 FC 得到输出维度 的向量来预测 时刻 sensor 的值

对于数值型就直接采用 MSE 作为损失函数,

图偏差评分

为了检测和解释 sensor 的异常,论文中的模型首先针对每个 sensor 计算一个异常值,然后再合并得到一个组合分数。

对于 时刻 sensor 的异常值为

由于不同 sensor 的偏差值有不同的量纲,因此需要标准化

其中 表示中位数和四分位数,至于为什么不用均值和标准差作者认为这种方式对于异常检测更加 robust。🤔

取所有 sensor 最大的异常值为异常分数

由于模型难以预测到突刺,因此作者使用 SMA (simple moving average) 来生成平滑分数 ,最后得到的值如果超过设定的阈值那么该时刻被标记为异常。

Experiments

实验部分采用了两个真实数据集来测试 GDN 及其 baselines 的性能对比。

实验中考虑的问题非常齐全,包括准确率测试、消融实验、模型解释性、异常定位等。👍

每个部分的实验结果如下所示

AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
性能对比
AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
消融实验对比
AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
可解释-可视化效果
AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
异常解释和定位

Thoughts

  • 论文整体思路简洁明了,尤其是实验部分比较 solid 符合对模型的认知 👍
  • 需要改进的点在于模型的设计及其采用的方法:
    • 图结构学习部分采用有向图是非常合理的,但是采用了相似度计算和 top-k 的构图方法,相似度计算是对称的明显达不到想要的有向图效果。
    • 最后的 output layer 采用了 embedding 和 feature 进行 element-wise multiply,有点硬。
  • 异常评分模块给人感觉是 tricks 堆叠,🐂 啊 🐂。




dreamhomes


博客:dreamhomes.top

隐形字

公众号:DreamHub


AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
AAAI 2021 | 基于图神经网络的多变量时间序列异常检测
AAAI 2021 | 基于图神经网络的多变量时间序列异常检测

长按识别二维码关注




👇🏻 点击「阅读原文」,排版效果更好哦 !


Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51