異常検知 - 何を探すかよく分かっていないものを見つける方法

85
® © 2014 MapR Technologies 1 © MapR Technologies, confidential ® 何を探すかよく分かっていないもの を見つける方法 異常検知 2014 10 14

Transcript of 異常検知 - 何を探すかよく分かっていないものを見つける方法

®© 2014 MapR Technologies 1 © MapR Technologies, confidential

®

何を探すかよく分かっていないものを見つける方法

異常検知

2014 年 10 月 14 日

®© 2014 MapR Technologies 2

異常検知: 何を探すかよく分かっていないものを見つける方法 Ted Dunning, MapR Technologies チーフアプリケーションアーキテクト

Email [email protected] [email protected] Twitter @Ted_Dunning

Ellen Friedman, コンサルタント/コメンテータ Email [email protected] Twitter @Ellen_Friedman

®© 2014 MapR Technologies 3

MapR の厚意により e-book が入手可

http://bit.ly/1jQ9QuL

A New Look at Anomaly Detection Ted Dunning、Ellen Friedman 著、2014 年 6 月出版(オライリーより)

®© 2014 MapR Technologies 4

Practical Machine Learning シリーズ (オライリー) •  機械学習はメインストリームになりつつある •  実際のビジネス環境を考慮に入れた実用的なアプローチが必要:

–  価値創造までの時間 (Time to Value) –  限られたリソース –  データの入手可能性 –  システム開発・運用を行うチームの専門知識とコスト

•  費やす労力に対して大きな効果をもたらすアプローチを探す

®© 2014 MapR Technologies 5

異常検知!

®© 2014 MapR Technologies 6

誰が異常検知を必要としているか?

スマートメーターを利用 している公益事業提供者

®© 2014 MapR Technologies 7

誰が異常検知を必要としているか?

工場の組立ラインからの フィードバック

®© 2014 MapR Technologies 8

誰が異常検知を必要としているか?

通信ネットワークの データトラフィックの監視

®© 2014 MapR Technologies 9

異常検知とは何か? •  まれに起きる出来事を発見することが目的

–  特に、起きるべきではない事象

•  他の人々が気づく前に問題を見つける –  特に、顧客にとっての問題を起こす前に

•  なぜ難しいのか? –  異常がどのようなものか(まだ)分からない

®© 2014 MapR Technologies 10

異常を見つけてください

®© 2014 MapR Technologies 11

異常を見つけてください

かなり異常に見える

®© 2014 MapR Technologies 12

異常を見つけてください

本当の異常の方、ご起立いただけますか?

®© 2014 MapR Technologies 13

基本となる考え方: まず “正常な状態” を見つける!

®© 2014 MapR Technologies 14

異常検知のステップ •  モデルを構築: モデルを学習させるためのデータを収集・処理する •  機械学習モデルを使用し、何が通常のパターンかを見極める •  この通常パターンからどれだけ乖離したときに異常とみなすかを決定

する •  異常検知モデルを使用して新しいデータの異常を検知する

–  発見のためのクラスタリング等の手法が役に立つ

®© 2014 MapR Technologies 15

異常のアラートを設定するのはどれほど難しいか?

グレーのデータが通常の出来事の値、x が異常値 しきい値をどこに設定するか?

®© 2014 MapR Technologies 16

基本となる考え方: 適応的しきい値の設定!

®© 2014 MapR Technologies 17

実際に何をしているか •  何かが起きたときに行動を起こしたい

(死ぬ/落ち込む/何もしないとトラブルになる)

•  しかし、行動を起こすには高くつく •  したがって、誤ったアラームが上がりすぎると困る •  さらに、検出もれがありすぎても困る

•  警告を出すために設定する適切なしきい値は何か?

–  コストとのトレードオフが必要

®© 2014 MapR Technologies 18

もう一度見てみましょう

®© 2014 MapR Technologies 19

もう一度見てみましょう

99.9 パーセンタイル

®© 2014 MapR Technologies 20

新しいアルゴリズム: t-digest!

®© 2014 MapR Technologies 21

オンライン サマライザ 99.9 パーセンタイル

t

x > t ? アラーム ! x

そんなの簡単でしょう?

®© 2014 MapR Technologies 22

散発的なイベントにおける異常検知

0.0 0.2 0.4 0.6 0.8 1.0

05000

10000

15000

20000

pnorm(centroids[order(centroids)])

counts[order(centroids)]

®© 2014 MapR Technologies 23

t-Digest の利用 •  Apache Mahout はオンラインパーセントタイル推定値として t-digest

を利用している –  極端に飛び出た値に対しては非常に高精度 –  Mahout バージョン 0.9 の新機能

•  t-digest は他でも利用可能 –  streamlib の中(github 上のオープンソースライブラリ) –  スタンドアローン(github および Maven Central)

•  異常検知って大したことではないのでは?

•  これで問題は解決したように見える

®© 2014 MapR Technologies 24

もう実装済み? Etsy Skyline?

®© 2014 MapR Technologies 25

これはどうか?

0 5 10 15

−20

24

68

10

offs

et +

noi

se +

pul

se1

+ pu

lse2

A

B

®© 2014 MapR Technologies 26

モデルデルタ異常検知

オンライン サマライザ

δ > t ?

99.9 パーセンタイル

t

アラーム !

モデル

-

+ δ

®© 2014 MapR Technologies 27

内部の事情 •  モデルデルタ異常検知器は実際のところ単なる確率変数の和

–  すでに知っているモデル –  そして正規分布に従う誤差

•  出力(デルタ)は(おおよそ)和の分布の対数確率(実際には δ2)

•  確率分布を思い浮かべればよい

•  しかし散発的なイベントがあるシステムでどのように異常検知を扱えばよいか?

®© 2014 MapR Technologies 28

異常を見つけてください

異常?

®© 2014 MapR Technologies 29

おそらく違う !

®© 2014 MapR Technologies 30

ウォーリーをさがせ !

これが本当の異常

®© 2014 MapR Technologies 31

通常は単なる通常ではない •  何が通常かを表す モデル が欲しい

•  モデルに合致しないものを 異常 とする

•  シンプルなシグナルであれば、モデルもシンプルになり得る …

•  実世界ではそれほどぴったり当てはまることはない

x ~ N(0,ε)

®© 2014 MapR Technologies 32

ウィンドウを適用する

®© 2014 MapR Technologies 33

ウィンドウを適用する

®© 2014 MapR Technologies 34

ウィンドウを適用する

®© 2014 MapR Technologies 35

ウィンドウを適用する

®© 2014 MapR Technologies 36

ウィンドウを適用する

®© 2014 MapR Technologies 37

ウィンドウを適用する

®© 2014 MapR Technologies 38

ウィンドウを適用する

®© 2014 MapR Technologies 39

ウィンドウを適用する

®© 2014 MapR Technologies 40

ウィンドウを適用する

®© 2014 MapR Technologies 41

ウィンドウを適用する

®© 2014 MapR Technologies 42

ウィンドウを適用する

®© 2014 MapR Technologies 43

ウィンドウを適用する

®© 2014 MapR Technologies 44

ウィンドウを適用する

®© 2014 MapR Technologies 45

ウィンドウを適用する

®© 2014 MapR Technologies 46

ウィンドウを適用する

®© 2014 MapR Technologies 47

世界の窓 •  ウィンドウを適用したシグナルのセットはオリジナルのシグナルに対

するよいモデル •  クラスタリングによりプロトタイプを見つけることができる

–  スパースコーディングを使った優れた手法を利用可能

•  結果は形状の辞書 •  新しいシグナルは辞書から形状を平行移動、拡大縮小、追加すること

によりエンコードできる

®© 2014 MapR Technologies 48

最もよく現れる形状(心電図)

®© 2014 MapR Technologies 49

再構成されたシグナル

オリジナルのシグナル

再構成されたシグナル

再構成エラー

< 1 bit / サンプル

®© 2014 MapR Technologies 50

異常

1次元の異常検出のための従来の手法は再構成エラーに対して有効

®© 2014 MapR Technologies 51

異常をクローズアップ

あって欲しくない心臓の動き モデルが予期していない心臓の動き

®© 2014 MapR Technologies 52

異なる種類の異常

®© 2014 MapR Technologies 53

モデルデルタ異常検知

オンライン サマライザ

δ > t ?

99.9 パーセンタイル

t

アラーム !

モデル

-

+ δ

®© 2014 MapR Technologies 54

内部の事情 •  モデルデルタ異常検知器は実際のところ単なる確率変数の和

–  すでに知っているモデル

–  そして正規分布に従う誤差

•  出力(デルタ)は(おおよそ)和の分布の対数確率(実際には δ2)

•  確率分布を思い浮かべればよい

®© 2014 MapR Technologies 55

散発的なイベントにおける異常!

®© 2014 MapR Technologies 56

eビジネスのサイトに対する散発的な Web トラフィック

トラフィックが停止もしくは遅延しているのは何らかの問題があったからかどうかを知ることは重要…

しかしサイトへの訪問の間隔は通常変動する

最後のイベントからどれくらい経過したら気にし始めるべきだろうか?

®© 2014 MapR Technologies 57

eビジネスのサイトに対する散発的な Web トラフィック

トラフィックが停止もしくは遅延しているのは何らかの問題があったからかどうかを知ることは重要…

しかしサイトへの訪問の間隔は通常変動する

そして、どうやったらあなたの会社のCEOを安心して眠らせることができるだろうか?

®© 2014 MapR Technologies 58

基本的な考え方: イベントの時間間隔は評価可能な 役立つものに変換することができる!

®© 2014 MapR Technologies 59

散発的なイベント: 通常と異常のパターンを見つける •  時間間隔は絶対時間よりもはるかに役に立つ

•  カウントは確率モデルに直接結びつかない

•  時間間隔は log ρ

•  これは非常に重要

®© 2014 MapR Technologies 60

イベントのストリーム(タイミング) •  様々なタイプのイベントが不規則な間隔で到着する

–  ポワソン分布を仮定する

•  頻度が期待値と比較して変化したかどうかが重要 –  これは間隔の変化として現れる

•  できる限り早くアラートを上げたい

®© 2014 MapR Technologies 61

イベント時間を異常値に変換

99.9 パーセンタイル

99.99パーセンタイル

®© 2014 MapR Technologies 62

しかし現実にはイベントの 発生頻度はしばしば変化する!

®© 2014 MapR Technologies 63

時間間隔は散発的なイベントをモデリングするための鍵

®© 2014 MapR Technologies 64

モデルに従いスケールされた間隔が問題を解決する

®© 2014 MapR Technologies 65

モデルデルタ異常検知

オンライン サマライザ

δ > t ?

99.9 パーセンタイル

t

アラーム !

モデル

-

+ δ

log p

®© 2014 MapR Technologies 66

散発的なイベントにおける異常検知

Incoming events

99.97%-ile

AlarmΔn

Rate predictor

Rate history

t-digest

δ> tti δ�λ(ti-ti-n)

λt

®© 2014 MapR Technologies 67

散発的なイベントにおける異常検知

Incoming events

99.97%-ile

AlarmΔn

Rate predictor

Rate history

t-digest

δ> tti δ�λ(ti-ti-n)

λt

®© 2014 MapR Technologies 68

一週間ずらしてみる: シンプルなレート予測器

Nov 02 Nov 07 Nov 12 Nov 17 Nov 22 Nov 27 Dec 02

010

020

030

040

050

0

Main Page Traffic

Date

Hits

(x 1

000)

A B C D

®© 2014 MapR Technologies 69

ポアソン分布 •  イベントの時間間隔は指数分布

•  つまり、長い遅延は指数関数的にまれ

•  もし λ がわかれば、良いしきい値を選択できる –  もしくはしきい値を経験的に選択できる

Δt ~ λe−λt

P(Δt > T ) = e−λT

− logP(Δt > T ) = λT

®© 2014 MapR Technologies 70

季節性は難しい問題

Nov 17 Nov 27 Dec 07 Dec 17 Dec 27

02

46

8

Christmas Traffic

Date

Hits

/ 10

00

®© 2014 MapR Technologies 71

もう少し何かが必要 …

Nov 17 Nov 27 Dec 07 Dec 17 Dec 27

02

46

8

Christmas Traffic

Date

Hits

/ 10

00

®© 2014 MapR Technologies 72

より良いレート予測器が必要…

Incoming events

99.97%-ile

AlarmΔn

Rate predictor

Rate history

t-digest

δ> tti δ�λ(ti-ti-n)

λt

®© 2014 MapR Technologies 73

散発的なイベントのための新しいレート予測器

Predictor variables

Target variable

2008-11-23 13:00:00 681 638 491 445 614 5452008-11-23 14:00:00 755 681 638 491 705 6142008-11-23 15:00:00 887 755 681 638 687 7052008-11-23 16:00:00 964 887 755 681 842 687

Date/time

yCurrent

rate

x11 hour

ago

x22 hours

ago

x33 hours

ago

x424 hours

ago

x548 hours

ago

®© 2014 MapR Technologies 74

適応的モデリングによる予測の改善

Dec 17 Dec 19 Dec 21 Dec 23 Dec 25 Dec 27 Dec 29

02

46

8

Christmas Prediction

Date

Hits

(x 1

000)

®© 2014 MapR Technologies 75

異常検知 + 分類 à 有効な組み合わせ •  新しいデータの中で異常を検出するために異常検知モデルを利用

–  発見のためのクラスタリングのような手法が役に立つことも

•  一度システムでよくできたモデルが手に入れば、これらをタグ付けするために分類を行うことも有効

•  新しい異常を見つけるために異常検知モデルを使い続ける

®© 2014 MapR Technologies 76

まとめ(順不同) •  異常検知は確率モデルで取り扱うのがベスト •  -log p は異常の評価値に変換するのに適した方法 •  適応的分位点推定 (t-digest) はしきい値の自動設定に有効

®© 2014 MapR Technologies 77

まとめ •  システムごとに異なるモデルが必要 •  継続的時系列

–  シグナルモデルを構築するためのスパースコーディング

•  時間イベント –  ポワソン分布の変動レートに基づくレートモデル –  分離レートモデル

•  ラベル付きのイベント –  言語モデル –  隠れマルコフモデル

®© 2014 MapR Technologies 78

なぜ異常検知を使うのか?

®© 2014 MapR Technologies 79

覚えておいてください…

•  通常をモデルして、 それから異常を見つける

•  適応的しきい値のための

t-digest •  複雑なパターンのための

確率モデル

-

0 5 10 15

−20

24

68

10

offs

et +

noi

se +

pul

se1

+ pu

lse2

A

B

®© 2014 MapR Technologies 80

Dec 17 Dec 19 Dec 21 Dec 23 Dec 25 Dec 27 Dec 29

02

46

8

Christmas Prediction

Date

Hits

(x 1

000)

覚えておいてください…

•  時間間隔は散発的イベントの ための鍵

•  季節性のあるレートを予測する

ための複雑な時間シフト •  連続するイベントによりフィッ

シング攻撃が明らかになる

®© 2014 MapR Technologies 81

MapR の厚意により e-book が入手可

http://bit.ly/1jQ9QuL

A New Look at Anomaly Detection Ted Dunning、Ellen Friedman 著、2014 年 6 月出版(オライリーより)

®© 2014 MapR Technologies 82

10月に出版予定: Time Series Databases Ted Dunning、Ellen Friedman 著、2014 年 10 月出版(オライリーより)

Time Series Databases

Ted Dunning &

Ellen Friedman

New Ways to Store and Access

®© 2014 MapR Technologies 83

本日はご来場ありがとうございました!!

®© 2014 MapR Technologies 84 © MapR Technologies, confidential ®

®© 2014 MapR Technologies 85

Sandbox!