時系列分析による異常検知入門

61
時系列分析による 時系列分析による 異常検知入門 異常検知入門 @yokkuns @yokkuns 里 洋平 里 洋平 2011/06/26 TokyoWebmining 2011/06/26 TokyoWebmining

Transcript of 時系列分析による異常検知入門

Page 1: 時系列分析による異常検知入門

時系列分析による時系列分析による異常検知入門異常検知入門

@yokkuns @yokkuns 里 洋平里 洋平2011/06/26 TokyoWebmining2011/06/26 TokyoWebmining

Page 2: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 3: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 4: 時系列分析による異常検知入門

自己紹介自己紹介

● 名前 : 里 洋平● ID : yokkuns

● 職業 : データマイニングエンジニア

Page 5: 時系列分析による異常検知入門

Tokyo.RTokyo.Rを主催していますを主催しています

是非、ご参加ください!

http://groups.google.com/group/r-study-tokyo

Page 6: 時系列分析による異常検知入門

本を執筆しました本を執筆しました

Page 7: 時系列分析による異常検知入門

本日の内容本日の内容

● 変化点検出

Page 8: 時系列分析による異常検知入門

本日の内容本日の内容

● グラフ時系列の異常検知● 固有空間におけるコンピュータシステムの障害検知

– http://bit.ly/l9tV8D

● Web系システムからの特徴抽出とオンライン障害検知手法– http://bit.ly/iYML8J

Page 9: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 10: 時系列分析による異常検知入門

異常検知とは異常検知とは

大量データから異常なデータや変化を検出する技術

Page 11: 時系列分析による異常検知入門

異常検知とは異常検知とは

大量データから異常なデータや変化を検出する技術

ログ

Page 12: 時系列分析による異常検知入門

異常検知とは異常検知とは

大量データから異常なデータや変化を検出する技術

ログ データマイニング

Page 13: 時系列分析による異常検知入門

異常検知とは異常検知とは

大量データから異常なデータや変化を検出する技術

ログ データマイニング

Page 14: 時系列分析による異常検知入門

セキュリティ分野での活用例セキュリティ分野での活用例

コンピュータウイルスやDos攻撃の早期発見

Page 15: 時系列分析による異常検知入門

障害検出•故障診断での活用例障害検出•故障診断での活用例

障害発生から原因特定までを時間を短縮する

Page 16: 時系列分析による異常検知入門

障害検出•故障診断での活用例障害検出•故障診断での活用例

障害発生から原因特定までを時間を短縮する

ログ

解析解析

解析 解析

Page 17: 時系列分析による異常検知入門

障害検出•故障診断での活用例障害検出•故障診断での活用例

障害発生から原因特定までを時間を短縮する

ログ ログ

解析解析

解析 解析解析

解析

高い異常スコア

Page 18: 時系列分析による異常検知入門

マーケティングでの活用例マーケティングでの活用例

新しい流行の兆しを検出する

Page 19: 時系列分析による異常検知入門

マーケティングでの活用例マーケティングでの活用例

新しい流行の兆しを検出する

消費行動口コミ アンケート

Page 20: 時系列分析による異常検知入門

マーケティングでの活用例マーケティングでの活用例

新しい流行の兆しを検出する

消費行動口コミ アンケート

いつもと違った異常を検知

Page 21: 時系列分析による異常検知入門

マーケティングでの活用例マーケティングでの活用例

新しい流行の兆しを検出する

消費行動口コミ アンケート

いつもと違った異常を検知

新しい流行に気付き、新商品の開発へ

Page 22: 時系列分析による異常検知入門

過去データからモデルを作る過去データからモデルを作る

統計モデルを用いて異常を検出する

入力データ

確率モデルの学習 スコア計算

出力

Page 23: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 24: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

Page 25: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

Page 26: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

変化点検出 多次元時系列 時系列モデル

時系列上の 急激な変化バースト的異常

攻撃検出ワーム検出障害予兆検出

Page 27: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

変化点検出 多次元時系列 時系列モデル

時系列上の 急激な変化バースト的異常

攻撃検出ワーム検出障害予兆検出

異常行動検出 セッション時系列

行動モデル 異常セッション異常行動パターン

なりすまし検出障害予兆検出不審行動検出

Page 28: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

変化点検出 多次元時系列 時系列モデル

時系列上の 急激な変化バースト的異常

攻撃検出ワーム検出障害予兆検出

異常行動検出 セッション時系列

行動モデル 異常セッション異常行動パターン

なりすまし検出障害予兆検出不審行動検出

Page 29: 時系列分析による異常検知入門

33つの異常検知つの異常検知

基本的な異常検知機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

変化点検出 多次元時系列 時系列モデル

時系列上の 急激な変化バースト的異常

攻撃検出ワーム検出障害予兆検出

異常行動検出 セッション時系列

行動モデル 異常セッション異常行動パターン

なりすまし検出障害予兆検出不審行動検出

本日のテーマは、変化点検出

Page 30: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 31: 時系列分析による異常検知入門

変化点を検出する必要性変化点を検出する必要性

Page 32: 時系列分析による異常検知入門

変化点を検出する必要性変化点を検出する必要性

決まった閾値による検知では手遅れな場合がある

Page 33: 時系列分析による異常検知入門

変化点を検出する必要性変化点を検出する必要性

決まった閾値による検知では手遅れな場合がある

● 新種のワームの発生● 決まった閾値を超えた時点では手遅れ

– ウイルスの増殖速度は相当速い

Page 34: 時系列分析による異常検知入門

変化点を検出する必要性変化点を検出する必要性

決まった閾値による検知では手遅れな場合がある

● 新種のワームの発生● 決まった閾値を超えた時点では手遅れ

– ウイルスの増殖速度は相当速い

急激な時系列的振る舞いの変わり目の時点の検出が重要

Page 35: 時系列分析による異常検知入門

統計的検定に基づく変化点検出統計的検定に基づく変化点検出

前後の時系列モデルへの当てはまりで検出する

あてはめ曲線

時系列データ

当てはめ誤差 変化点ERROR1ERROR1

当てはめ誤差 ERROR2

変化点

時間

Page 36: 時系列分析による異常検知入門

統計的検定に基づく変化点検出統計的検定に基づく変化点検出

リアルタイムで検出できない

● 全ての候補点に対して検定を行うため時間がかかる● セキュリティ監視や障害監視に使えない

Page 37: 時系列分析による異常検知入門

統計的検定に基づく変化点検出統計的検定に基づく変化点検出

リアルタイムで検出できない

● 全ての候補点に対して検定を行うため時間がかかる● セキュリティ監視や障害監視に使えない

計算効率が高くオンライン処理に向いた変化点検出が必要

Page 38: 時系列分析による異常検知入門

変化点検出エンジン変化点検出エンジンChange FinderChange Finder

リアルタイムに変化点を検出できる

スコア

時系列データ

変化点

Page 39: 時系列分析による異常検知入門

変化点検出エンジン変化点検出エンジンChange FinderChange Finder

2段階学習により本質的な変動を捉える

データ時系列モデルの忘却学習

スコアリング

スコアの平滑化 スコア時系列モデルの忘却学習

スコアリング

入力 Xt

第1段階学習 第2段階学習

Page 40: 時系列分析による異常検知入門

Change FinderChange Finderの基本原理の基本原理

● Step1 : 第1段階学習

データ時系列モデルの忘却学習

スコアリング

時系列データの確率モデルを用意し、オンライン忘却学習アルゴリズムで学習

対数損失 :

ヘリンジャースコア :

Page 41: 時系列分析による異常検知入門

Change FinderChange Finderの基本原理の基本原理

● Step2 : 平滑化

スコアの平滑化

Given : T

Page 42: 時系列分析による異常検知入門

Change FinderChange Finderの基本原理の基本原理

● Step3 : 第2段階学習

スコア時系列モデルの忘却学習

スコアリング

時系列データの確率モデルを用意し、オンライン忘却学習アルゴリズムで学習

対数損失 :

ヘリンジャースコア :

Given : T'

Page 43: 時系列分析による異常検知入門

Change FinderChange Finderのポイントのポイント

ノイズを除去し、本質的な変動のみを捉える

● 第1段階学習では時系列中の外れ値を検出● 外れ値スコアを平滑化→ノイズに反応した外れ値を除去● 第2段階学習によって本質的な変動のみを検出

Page 44: 時系列分析による異常検知入門

変化点検出の応用例変化点検出の応用例

攻撃検知1 : MS.Blast

変化点スコアアクセスドロップ数

第1次検知(発生)

第2次検知(爆発的増加)

Page 45: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 46: 時系列分析による異常検知入門

ネットワーク構造の異常を検出したいネットワーク構造の異常を検出したい

● ネットワークの大域的な構造の変化● 局所的な異常箇所の特定● ソーシャルネットワークの中のコミュニティ構造の変化● 物理ネットワークのおける障害検出

Page 47: 時系列分析による異常検知入門

WebWebシステムの障害検出システムの障害検出

冗長構成の片方のパフォーマンスが低下した場合

● 比較的低いトラフィックではユーザから見て異常なし● プロセスの生存確認でも異常なし

Page 48: 時系列分析による異常検知入門

WebWebシステムの障害検出システムの障害検出

冗長構成の片方のパフォーマンスが低下した場合

● 比較的低いトラフィックではユーザから見て異常なし● プロセスの生存確認でも異常なし

異常が発生していることに気づきにくい

Page 49: 時系列分析による異常検知入門

WebWebシステムの障害検知システムの障害検知

処理能力の設計値よりも低い値でシステムダウンの可能性がある

DB

Page 50: 時系列分析による異常検知入門

WebWebシステムの障害検知システムの障害検知

処理能力の設計値よりも低い値でシステムダウンの可能性がある

それぞれのサーバ単体ではなくネットワークとしての異常を検出したい

DB

Page 51: 時系列分析による異常検知入門

ネットワーク構造の時系列の表現ネットワーク構造の時系列の表現

● グラフ時系列で表現する● 行列型の時系列

D

tt-1

t-2

Page 52: 時系列分析による異常検知入門

グラフ時系列を圧縮するグラフ時系列を圧縮する

活動度ベクトルを計算する

D

tt-1

t-2

tt-1t-2

•••

t-n●第1固有ベクトル●ノルムが1になるように規格化

Page 53: 時系列分析による異常検知入門

異常度スコアの計算異常度スコアの計算

活動度ベクトルとの相違度を見る

1時点前に計算された活動度ベクトル

現時点で計算された活動度ベクトル

θ

Page 54: 時系列分析による異常検知入門

実験例 実験例 : Web: Webシステムの障害検知システムの障害検知

● システム構成● 冗長構成のWebシステム● サービスが二つ動いている

● 実験● 片方のサーバのDBコールを止める。

– 動作は不調だがプロセスは生きている状態にする

DB

Page 55: 時系列分析による異常検知入門

実験例 実験例 : Web: Webシステムの障害検知システムの障害検知

● システムのモデル化

サービスを4つの組で定義

Page 56: 時系列分析による異常検知入門

実験結果 実験結果 : Web: Webシステムの障害検知システムの障害検知

活動度ベクトルが機能不全と復旧を適切に捉えている

Page 57: 時系列分析による異常検知入門

実験結果 実験結果 : Web: Webシステムの障害検知システムの障害検知

異常度スコアが機能不全時に高いスコアになっている

Page 58: 時系列分析による異常検知入門

AGENDAAGENDA

● 自己紹介● 異常検知とは● 3つの異常検知● 変化点検出● グラフ時系列の異常検知● 最後に

Page 59: 時系列分析による異常検知入門

最後に最後に

Tokyo.RTokyo.Rのの発表者を募集しています!発表者を募集しています!

Page 60: 時系列分析による異常検知入門

最後に最後に

データマイニングエンジニアデータマイニングエンジニア募集しています!募集しています!

[email protected]@gmail.com

Page 61: 時系列分析による異常検知入門

ご清聴ありがとうございましたご清聴ありがとうございました