图神经网络应用于时间序列异常检测

2021-07-28 17:48:57 浏览数 (2)

点击蓝字

关注我们

#TSer#

时间序列知识整理系列,持续更新中 ⛳️

赶紧后台回复"讨论"加入讨论组交流吧 ?

最近,图神经网络技术应用到时间序列的分析,引起了学术界广泛的研究兴趣。本次文章分享两篇最近阅读的,图神经网络用于时间序列异常检测的论文。

首先对于多变量时间序列,我们可以将其看作一个矩阵

,由k个变量,n个时刻组成,由于异常通常是少见的,大部分异常检测方法的套路是采用正常数据来进行建模,测试数据来的时候代入训练好的模型,去看预测误差或者重构误差,然后卡个阈值,超过给定阈值即认为发生异常了。

MTAG-GAT

该文章发表在ICDM 2020,论文题目为:Multivariate time-series anomaly detection via graph attention network。

该文的亮点在于从数据矩阵X的两个维度考虑了图神经网络的结合

  • 从变量角度,一条时间序列(单变量)可以对应图上一个节点
  • 从时间角度,同一个时刻的数据向量(多变量)可以对应图上一个节点

利用图注意力网络进行特征提取

换个角度理解,其实就是从时间维度和变量维度对数据进行了滤波

得到的这两种角度的特征加上原始特征一起用于后续的任务

  • 预测误差:t时刻以前的数据预测t时刻数据,预测值与实际值的误差
  • 重构误差:自编码器提取隐变量,最小化编码前和解码后的数据误差

目标函数综合考虑了预测预测和重构误差,训练得到的模型用于infer时将两个支路的预测(预测值和重构概率)进行整合得到一个score,当这个score超过一定阈值就判断为异常。

GDN

该文章发表在AAAI 2021,论文题目为:Graph neural network-based anomaly detection in multivariate time series。

该文章的亮点在于挖掘了多变量时间序列中变量之间的连接关系,即把每一条时间序列看作是图上一个节点,但是节点之间的连接关系是靠学习出来的,而不是简单假设为全连接图(MTAD-GAT)。

假设每个节点除了自身时间序列特征,还可以额外用一个embedding

来表示,这样就可以根据embedding之间的相关性来判断两个节点是否存在连接,然后取Top K来构造邻接矩阵即可。

有个图结构后,利用图注意力网络来进行特征提取,其中注意力系数的计算同时考虑原始时间序列(的线性变换)和额外的这个embedding

输出层为图神经网络提取后的特征逐元素乘以额外的embedding向量,再通过全连接层

最后优化的目标函数为预测误差。即原始特征为t时刻以前的数据

预测输出为t时刻的数据

训练好模型后,根据每个变量的预测误差,进行鲁棒标准化,再选择所有变量中最大的指标作为最终的分数,再来跟阈值作比较。

0 人点赞