IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【读论文】Graph Neural Network-Based Anomaly Detection in Multivariate Time Series -> 正文阅读

[人工智能]【读论文】Graph Neural Network-Based Anomaly Detection in Multivariate Time Series

1. 这篇文章的主要研究内容

Graph Neural Network-Based Anomaly Detection in Multivariate Time Series:基于图神经网络的多元时间序列异常检测

目标:为多元时间序列数据开发特定的方法,明确地捕获传感器之间的关系图。

现有的方法存在的缺陷:现有的方法没有明确地学习变量之间现有关系的结构,或使用它们来预测时间序列的预期行为。

针对该缺陷做出的改进:为了充分利用多元时间序列中传感器之间的复杂关系,利用图神经网络(GNNs)来学习传感器之间的关系图。

基于图的方法通过用边表示相互依赖关系,为传感器之间的关系建模提供了一种方法。

  • 一般情况下,GNN假设节点的状态受其邻居的状态影响;
  • 图卷积网络(Graph Convolution Networks, GCNs)通过聚合节点的一步邻居的表示来建模节点的特征表示;
  • 图关注网络(graph attention networks, GATs)在聚合过程中使用关注函数来计算不同邻居的不同权重。

提出的方法图偏差网络(Graph Deviation Network, GDN),该方法学习传感器之间的关系图,并从这些模式中检测偏差。该方法包括四个主要部分:

  1. Sensor Embedding,传感器嵌入:利用嵌入向量灵活地捕捉每个传感器的独特特征;
  2. Graph Structure Learning,图结构学习:图结构学习学习传感器对之间的关系,并将其编码为图中的边;
  3. Graph Attention-Based Forecasting,基于图注意的预测:基于对图中相邻传感器的注意函数来预测传感器的未来行为;
  4. Graph Deviation Scoring,图偏差得分:识别并解释从图中学习的传感器关系的偏差,并对这些偏差进行定位和解释。

2. 图偏差网络(Graph Deviation Network, GDN)

1. Problem Statement

训练数据 N N N 个传感器 在 T t r a i n T_{train} Ttrain? 这段时间内的数据: s t r a i n = [ s t r a i n ( 1 ) , s t r a i n ( 2 ) , . . . , s t r a i n ( T t r a i n ) ] s_{train} = [s^{(1)}_{train} , s^{(2)}_{train} , ... , s^{(T_{train})}_{train}] strain?=[strain(1)?,strain(2)?,...,strain(Ttrain?)?] ,其中, s t r a i n ( t ) s^{(t)}_{train} strain(t)? 是一个 N N N维向量,表示在 t t t 时刻 N N N个传感器的值。
按照通常的无监督异常检测公式,假设训练数据只包含正常数据。

我们的目标是能够检测到测试数据中的异常,测试数据表示为: s t r a i n = [ s t e s t ( 1 ) , s t e s t ( 2 ) , . . . , s t e s t ( T t e s t ) ] s_{train} = [s^{(1)}_{test} , s^{(2)}_{test} , ... , s^{(T_{test})}_{test}] strain?=[stest(1)?,stest(2)?,...,stest(Ttest?)?]

算法的输出是一组大小为 T t e s t T_{test} Ttest? 的二进制标签,这组标签指示了在每个时刻 t t t 是否发生异常。 a ( t ) ∈ { 0 , 1 } a(t)\in\{0,1\} a(t){0,1},其中 a ( t ) = 1 a(t)=1 a(t)=1 表示 t t t 时刻发生了异常。

2. Overview

该方法包括四个主要部分:

  1. Sensor Embedding,传感器嵌入:利用嵌入向量灵活地捕捉每个传感器的独特特征;
  2. Graph Structure Learning,图结构学习:图结构学习学习传感器对之间的关系,并将其编码为图中的边;
  3. Graph Attention-Based Forecasting,基于图注意的预测:基于对图中相邻传感器的注意函数来预测传感器的未来行为;
  4. Graph Deviation Scoring,图偏差得分:识别并解释从图中学习的传感器关系的偏差,并对这些偏差进行定位和解释。

在这里插入图片描述

(1)Sensor Embedding,传感器嵌入

为每个传感器引入一个嵌入向量来表示其特征: v i ∈ R d v_i \in R^d vi?Rd , for i ∈ { 1 , 2 , . . . , N } i \in \{1,2,...,N\} i{1,2,...,N}

这些嵌入向量 v i v_i vi? 之间的相似性表示行为的相似性。因此,具有相似嵌入值的传感器之间应该有很高的相关性。

(2)Graph Structure Learning,图结构学习

图结构学习将学习一个加权有向图,其节点表示传感器,边表示传感器之间的依赖关系。
对于传感器 i i i 来说,我们计算传感器 i i i 的嵌入向量与其候选关系 C i C_i Ci?的相似度(归一化点积) e j i e_{ji} eji?
e j i = v i T v j ∣ ∣ v i ∣ ∣ ? ∣ ∣ v j ∣ ∣ f o r j ∈ C i e_{ji} = \frac{\pmb{v_i}^T\pmb{v_j}}{||\pmb{v_i}|| \cdot ||\pmb{v_j}||} for j \in C_i eji?=∣∣vi?vi?∣∣?∣∣vj?vj?∣∣vi?vi?Tvj?vj??forjCi?

然后选择前 k k k个这样的归一化点积, k k k的值可以由用户根据所需的稀疏程度来选择。
A j i = 1 { j ∈ T o p K ( e k i : k ∈ C i ) } A_{ji} = 1\{j\in TopK({e_{ki}:k\in C_i})\} Aji?=1{jTopK(eki?:kCi?)}
其中,1{·}为示性函数,即1{值为真的表达式} = 11{值为假的表达式} = 0

在没有先验信息的情况下,传感器 i i i 的候选关系就是除了它自己之外的所有传感器。


(3) Graph Attention-Based Forecasting,基于图注意力的预测

在时刻 t t t,我们基于历史时间序列数据上大小为 w w w的滑动窗口,将模型的输入定义为 x ( t ) : = [ s ( t ? w ) , s ( t ? w + 1 ) , . . . , s ( t ? 1 ) ] \pmb{x}^{(t)} := [\pmb{s^{(t-w)}}, \pmb{s^{(t-w+1)}}, ... , \pmb{s^{(t-1)}}] xx(t):=[s(t?w)s(t?w),s(t?w+1)s(t?w+1),...,s(t?1)s(t?1)] 。模型需要预测的目标输出是当前时刻的传感器数据,即 s ( t ) s^{(t)} s(t)

为了捕获传感器的不同行为,我们引入了一种基于图注意的特征提取器,基于学习到的图结构将节点信息与相邻节点融合:
z i ( t ) = R e L U ( α i , i W x i ( t ) + ∑ j ∈ N ( i ) α i , j W x j ( t ) ) \pmb{z}^{(t)}_i = ReLU(\alpha_{i,i}\pmb{W}\pmb{x}^{(t)}_i + \sum\limits_{j\in N(i)} \alpha_{i,j} \pmb{W}\pmb{x}^{(t)}_j) zzi(t)?=ReLU(αi,i?WWxxi(t)?+jN(i)?αi,j?WWxxj(t)?)其中, x i ( t ) \pmb{x}^{(t)}_i xxi(t)? 为模型输入, N ( i ) = { j ∣ A j i > 0 } N(i) = \{ j | A_{ji} > 0 \} N(i)={jAji?>0} W W W 是训练得到的权重矩阵,注意系数 α i , j \alpha_{i,j} αi,j? 的计算公式为:

在这里插入图片描述
这样,我们就得到了所有N个节点的表示,即 { z 1 ( t ) , z 2 ( t ) , . . . , z N ( t ) } \{ \pmb{z}^{(t)}_1 , \pmb{z}^{(t)}_2, ... , \pmb{z}^{(t)}_N \} {zz1(t)?,zz2(t)?,...,zzN(t)?}

对于每个 z i ( t ) \pmb{z}^{(t)}_i zzi(t)? ,我们将其与对应的嵌入向量 v i \pmb{v}_i vvi? 进行元素相乘(记为 ° \circ °),并将所有节点的计算结果作为输出为N维的全连接层的输入,以预测 t t t时刻传感器值的矢量 s ( t ) \pmb{s}^{(t)} ss(t)
s ^ ( t ) = f θ ( [ v 1 ° z 1 t , v 2 ° z 2 t , . . . , v N ° z N t ] ) \pmb{\widehat{s}^{(t)}} = f_\theta ([ \pmb{v}_1 \circ \pmb{z}^{t}_1 , \pmb{v}_2 \circ \pmb{z}^{t}_2 , ... , \pmb{v}_N \circ \pmb{z}^{t}_N ]) s (t)s (t)=fθ?([vv1?°zz1t?,vv2?°zz2t?,...,vvN?°zzNt?])
我们希望模型的预测输出与真实值尽量接近,因此使用预测输出 s ^ ( t ) \pmb{\widehat{s}^{(t)}} s (t)s (t) 和观测数据 s ( t ) \pmb{s^{(t)}} s(t)s(t) 之间的均方误差作为损失函数来最小化:
L M S E = 1 T t r a i n ? w ∑ t = w + 1 T t r a i n ∣ ∣ s ^ ( t ) ? s ( t ) ∣ ∣ 2 2 L_{MSE} = \frac{1}{T_{train - w}} \sum\limits^{T_{train}}_{t=w+1} || \pmb{\widehat{s}^{(t)}} - \pmb{s^{(t)}} ||^2_2 LMSE?=Ttrain?w?1?t=w+1Ttrain??∣∣s (t)s (t)?s(t)s(t)22?


(4)Graph Deviation Scoring,图偏差得分

考虑到学习到的关系,我们希望检测和解释偏离这些关系的异常。

传感器 i i i t t t时刻预测行为与观察到的行为之间的偏差: E r r i ( t ) = ∣ s i ( t ) ? s ^ ( t ) ∣ Err_i(t) = | s^{(t)}_i - \widehat{s}^{(t)} | Erri?(t)=si(t)??s (t)

不同的传感器的偏差可能有不同的尺度,因此将每个传感器的偏差做归一化处理: a i ( t ) = E r r i ( t ) ? μ ~ i σ ~ i a_i(t) = \frac{Err_i(t) - \widetilde{\mu}_i}{\widetilde{\sigma}_i} ai?(t)=σ i?Erri?(t)?μ ?i?? , 其中 μ ~ i \widetilde{\mu}_i μ ?i? E r r i ( t ) Err_i(t) Erri?(t)的中位数, σ ~ i \widetilde{\sigma}_i σ i? E r r i ( t ) Err_i(t) Erri?(t)四分位距(inter-quartile range, IQR)

Inter-Quartile Range, IQR 是一个分布或一组值的第 1/4 和第 3/4 之间的差异,即 IQR = Q3 - Q1 ,是分布的扩展的一个强有力的度量。

为了计算 t t t时刻的整体异常情况,我们使用 m a x max max函数对传感器进行聚合(因为异常只会影响一小部分传感器,甚至是单个传感器):
A ( t ) = max ? i a i ( t ) A(t) = \max\limits_i a_i(t) A(t)=imax?ai?(t)
如果 A ( t ) A(t) A(t) 超过设定的阈值,就将 t t t时刻的数据标记为异常。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:04:57  更:2022-08-19 19:05:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/30 14:04:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码