目次
1. 本記事の主な研究内容
多変量時系列におけるグラフ ニューラル ネットワークに基づく異常検出: グラフ ニューラル ネットワークに基づく多変量時系列の異常検出
目標: センサー間の関係のグラフを明示的にキャプチャする、多変量時系列データの特定の方法を開発すること。
既存のアプローチの弱点: 既存のアプローチは、変数間の既存の関係の構造を明示的に学習したり、時系列の予想される動作を予測するためにそれらを使用したりしません。
この不具合の改善: 多変量時系列におけるセンサー間の複雑な関係を最大限に活用するために、グラフ ニューラル ネットワーク (GNN) を使用してセンサー間の関係グラフを学習します。
グラフベースの方法は、相互依存性をエッジで表すことによってセンサー間の関係をモデル化する方法を提供します。
- 一般に、GNN は、ノードの状態がその隣接ノードの状態の影響を受けると想定しています。
- グラフ畳み込みネットワーク (GCN) は、1 ステップ近傍の表現を集約することによってノードの特徴表現をモデル化します。
- グラフ アテンション ネットワーク (GAT) は、アテンション関数を使用して、集計中にさまざまな近傍のさまざまな重みを計算します。
提案手法:グラフ偏差ネットワーク (GDN)、この方法はセンサー間の関係のグラフを学習し、これらのパターンからバイアスを検出します。このメソッドは 4 つの主要な部分で構成されます。
- センサーの埋め込み、センサーの埋め込み: 埋め込みベクトルを使用して、各センサーの固有の特性を柔軟にキャプチャします。
- グラフ構造学習、グラフ構造学習: グラフ構造学習はセンサー ペア間の関係を学習し、それらをグラフ内のエッジとしてエンコードします。
- グラフアテンションベースの予測、グラフアテンションに基づく予測: グラフ内の隣接するセンサーのアテンション関数に基づいてセンサーの将来の動作を予測します。
- グラフ偏差スコアリング、グラフ偏差スコアリング: グラフから学習したセンサー関係の偏差を特定して説明し、これらの偏差を位置特定して説明します。
2. グラフ偏差ネットワーク (GDN)
1. 問題提起
学習データ:NNTにN 個のセンサーT train T_{train}T電車_ _この期間のデータ: train = [ train ( 1 ) , train ( 2 ) , . . , train ( T train ) ] s_{train} = [s^{(1)}_{train} , s^{(2)}_{train} , ... , s^{(T_{train})}_{train}]s電車_ _=[ s電車_ _( 1 )、s電車_ _( 2 )、... 、s電車_ _( T電車_ _)]、その中、ひずみ ( t ) s^{(t)}_{train}s電車_ _( t )NNですN次元ベクトル、ttt時間NNN個のセンサーの値。
通常の教師なし異常検出の定式化に従って、トレーニング データには通常のデータのみが含まれていると想定されます。
私たちの目標は、次のように表されるテスト データの異常を検出できるようにすることです:ひずみ = [ stest ( 1 ) , stest ( 2 ) , . . , stest ( T test ) ] s_{train} = [s^{(1)}_{test} , s^{(2)}_{test} , ... , s^{(T_{test})}_{test}]s電車_ _=[ sテスト_ _( 1 )、sテスト_ _( 2 )、... 、sテスト_ _( Tテスト_ _)】
アルゴリズムの出力は、サイズT test T_{test}のセットです。Tテスト_ _のバイナリ ラベル、このラベルのセットは、各時点でttt例外が発生したかどうか。a ( t ) ∈ { 0 , 1 } a(t)\in\{0,1\}( t ) _∈{
0 ,1},其中 a ( t ) = 1 a(t)=1 ( t ) _=1 はttを意味します時刻tで例外が発生しました
2. 概要
このメソッドは 4 つの主要な部分で構成されます。
- センサーの埋め込み、センサーの埋め込み: 埋め込みベクトルを使用して、各センサーの固有の特性を柔軟にキャプチャします。
- グラフ構造学習、グラフ構造学習: グラフ構造学習はセンサー ペア間の関係を学習し、それらをグラフ内のエッジとしてエンコードします。
- グラフアテンションベースの予測、グラフアテンションに基づく予測: グラフ内の隣接するセンサーのアテンション関数に基づいてセンサーの将来の動作を予測します。
- グラフ偏差スコアリング、グラフ偏差スコアリング: グラフから学習したセンサー関係の偏差を特定して説明し、これらの偏差を位置特定して説明します。
(1) センサー埋め込み、センサー埋め込み
各センサーの特徴を表す埋め込みベクトルを導入します。vi ∈ R d v_i \in R^dv私は∈Rd、i ∈ { 1 , 2 , . . 。。, N } i \in \{1,2,...,N\}私∈{ 1 、2 、... 、N }。
これらの埋め込みベクトルvi v_iv私は間の類似性は、動作の類似性を示します。したがって、同様の埋め込み値を持つセンサー間には高い相関関係があるはずです。
(2) グラフ構造学習、グラフ構造学習
グラフ構造の学習では、ノードがセンサーを表し、エッジがセンサー間の依存関係を表す重み付き有向グラフを学習します。
センサーii用iについて、センサーiiiの埋め込みベクトルとその候補関係C i C_iC私はeji e_{ji}の類似度 (正規化された内積)eじ:
eji = vi T vj ∣ ∣ vi ∣ ∣ ⋅ ∣ ∣ vj ∣ ∣ forj ∈ C i e_{ji} = \frac{\pmb{v_i}^T\pmb{v_j}}{||\pmb{v_i}|| C_i の j に対して \cdot ||\pmb{v_j}||}eじ=∣∣v私はv私は∣∣⋅∣∣vjvj∣∣v私はv私はTvjvjfまたはj∈C私は
次に、前のkkを選択しますkこのような正規化された内積、kkkの値は、希望するスパース度に応じてユーザーが選択できます。
A ji = 1 { j ∈ Top K ( eki : k ∈ C i ) } A_{ji} = 1\{j\in TopK({e_{ki}:k\in C_i})\}あじ=1 {
j∈トップオブK ( e _に:k∈C私は)}
ここで、1{·}
は指示関数、つまり1{值为真的表达式} = 1
,1{值为假的表达式} = 0
。
事前情報がない場合、センサーiiiの候補関係は、それ自体を除くすべてのセンサーです。
(3) グラフアテンションベースの予測、グラフアテンションに基づく予測
時間にttt 、サイズwwの過去の時系列データに基づいていますモデルの入力であるwのスライディング ウィンドウは、 x ( t ) : = [ s ( t − w ) , s ( t − w + 1 ) , . s^{(t-1)}}] として定義されます。バツバツ( 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 )。
センサーのさまざまな動作を捕捉するために、グラフ アテンション ベースの特徴抽出器を導入し、学習したグラフ構造に基づいてノード情報と隣接ノードを融合します。 zi
( t ) = Re LU ( α i , i W xi ( t ) + ∑ j ∈ N ( i ) α i , j W xj ( t ) ) \pmb{z}^{(t)}_i = ReLU(\alpha_{i,i}\pm) b{W} \pmb{x}^{(t)}_i + \sum\limits_{j\in N(i)} \alpha_{i,j} \pmb{W}\pmb{x}^{(t)}_j)zz私( t )=R e LU ( _私、私WWバツバツ私( t )+j ∈ N ( i )∑ある私、 jWWバツバツj( t ))其中, x i ( t ) \pmb{x}^{(t)}_i バツバツ私( t )モデル入力の場合、N ( i ) = { j ∣ A ji > 0 } N(i) = \{ j | A_{ji} > 0 \}N ( i )={
j ∣ Aじ>0 }、WWWはトレーニングから得られた重み行列です。係数α i , j \alpha_{i,j}ある私、 j計算式は次のとおりです。
このようにして、すべての N 個のノードの表現、つまり{ z 1 ( t ) 、 z 2 ( t ) 、... を取得します。{
zz1( t )、zz2( t )、... 、zzN( t )}
各zi ( t ) \pmb{z}^{(t)}_iについてzz私( t )、それを対応する埋め込みベクトルvi \pmb{v}_iに関連付けますvv私は要素ごとの乗算を実行します ( ∘ \circとして示されます)∘ )、すべてのノードの計算結果を N 次元全結合層の入力として取り、tt時刻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○zz1た、vv2○zz2た、... 、vvN○zzNた])
モデルの予測出力が実際の値にできるだけ近いことが望ましいため、予測出力s ^ ( t ) \pmb{\widehat{s}^{(t)}} をs
( t )s
( t )と観測データs ( t ) \pmb{s^{(t)}}s( t )s( t )は損失関数として最小化されます。
LMSE = 1 T train − w ∑ t = w + 1 T train ∣ ∣ s ^ ( t ) − s ( t ) ∣ ∣ 2 2 L_{MSE} = \frac{1}{T_{train - w}} \sum\limits^{T_{train}}_{t=w+1} || \pmb{ \ワイドハット{s}^{(t)}} - \pmb{s^{(t)}} ||^2_2LMSE=T電車-w _ _ _1t = w + 1∑T電車_ _∣∣s
( t )s
( t )−s( t )s( t ) ∣∣22
(4) グラフ偏差スコアリング、グラフ偏差スコア
学習された関係を考慮して、これらの関係から逸脱する異常を検出して説明したいと考えています。
センサーii私はttにいる時刻tにおける予測された動作と観察された動作の間の偏差: E rri ( t ) = ∣ si ( t ) − s ^ ( t ) ∣ Err_i(t) = | s^{(t)}_i - \widehat{s}^{(t)} |エラー_ _私は( t )=∣ s私( t )−s ( t ) ∣
異なるセンサーの偏差は異なるスケールを持つ可能性があるため、各センサーの偏差は次のように正規化されます。ai ( t ) = E rri ( t ) − μ ~ i σ ~ i a_i(t) = \frac{Err_i(t) - \widetilde{\mu}_i}{\widetilde{\sigma}_i}ある私は( t )=p 私はエラー_ _私は( t ) −メートル 私は\ワイドティルデ{\mu} _iメートル 私は是E rri ( t ) Err_i(t)エラー_ _私は( t )、σ ~ i \widetilde{\sigma}_ip 私は是E rri ( t ) Err_i(t)エラー_ _私は( t )四分位範囲 (IQR)。
四分位範囲、IQR は、分布または一連の値の 1/4 と 3/4 の差、つまり IQR = Q3 - Q1 であり、分布の広がりを示す強力な尺度です。
ttを計算するには時間tにおける全体的な異常状況。max maxを使用します。max関数はセンサーを集約します (異常はセンサーの小さなサブセット、または単一のセンサーにのみ影響するため):
A ( t ) = max iai ( t ) A(t) = \max\limits_i a_i(t)A ( t )=私マックスある私は( t ) A ( t ) A(t)
の場合A ( t )が設定されたしきい値を超え、tt時刻tのデータは