(cache) 時系列データに対する異常検知|分析力をコアとするデータソリューションカンパニー・株式会社ALBERT(アルベルト)

マシンラーニング(機械学習)
異常検知

時系列データに対する異常検知

近年、センサーデータの収集コストが低下したことから、時系列データの活用が活発化しています。例えば、「機械の故障の検知」や、「SNSの炎上防止」といった事例もちらほら見かけるようになりました。これらの背後では、一体どのような技術が使われているのでしょうか。ここでは時系列データの観点から異常検知の技術を解説します。

ホテリング理論の仮定と時間依存性の高いデータの関係

「異常検知とは」のページで、異常検知技術で最も有名なホテリング理論について解説しましたが、そこで問題点としてもあげたように、時間依存性の高いデータの異常検知にはホテリング理論の適用は不適切です。ホテリング理論においてデータはパラメータ(平均値、分散)固定の正規分布に従うと仮定していますが、時間依存性の高いデータのパラメータは動的に変化するため、無理にホテリング理論を適用すると、正規分布が不適切な形になり異常値の評価が甘くなるからです。為替のデータを用いて具体的に説明します。

2013年4月23日のドル円 1分足の為替レート

図1.2013年4月23日のドル円 1分足の為替レート

図1は2013年4月23日のドル円1分足の為替レートです。13時頃、一時的に急激なドル安が起きているのが確認できます。この急激なドル安(98.7円)を異常値として検出するために、為替レートを異なる計算で求めた2つの正規分布で表してみます。

為替レートを正規分布と仮定したときの分布

図2.為替レートを正規分布と仮定したときの分布

緑色の正規分布は、ホテリング理論に則り、全区間の為替データから正規分布のパラメータを計算しています。 青色の正規分布は、ホテリング理論に区間の指定を取り入れ、後半の青い窓で囲まれた部分のみの為替データからパラメータを計算しています。
緑色の分布は青色の分布よりも、裾が広く、山のピークが異常値(98.7円)の近くにあるため、異常値の確率密度が高く判定され、異常値を標準的なデータであると誤認識しやすくなります。
このように、時間依存性の高いデータに対してホテリング理論をそのまま適用すると、異常値の評価が甘くなり、異常値が検知されにくくなるのです。

時系列データに対する異常検知の手法

時系列データに対しての異常検知は、何を目的とするのかによって、異常検知の手法を選択する必要があります。ここでは、検出単位の異なる代表的な次の3つの手法について説明します。

異常検知の手法 検出単位
外れ値検知 データ点
異常部位検出 部分時系列
変化点検知 変化が起きた時点

外れ値検知

外れ値検知とは、普段は起こり得ないようなデータ点を検知する手法です。図1の為替レートも、外れ値検知を適用すれば、13時頃に起きた急激なドル安を自動的に検知し、アラートを発生させることができます。
「窓」と呼ばれる固定された区間を定めることで、時系列データの外れ値検知に対して、k近傍法が適用できます。k近傍法を使って、為替レートの異常な変動をリアルタイムで検知してみましょう。

k近傍法を用いた外れ値検知の手順
  • 直前の時系列データからある一定の窓幅の部分時系列を取り出す
  • 新たに得られたデータ点と部分時系列のそれぞれのデータ点までの距離を全て計算する
  • 2で計算した距離のうち最も短いものをk個選び、その平均を新たに得られたデータ点の異常度とする
  • 異常度がある閾値以上であれば、外れ値として検知する

外れ値検知の仕組み

図3.外れ値検知の仕組み

データが更新されるたびに窓をずらして部分時系列を取り出し、上記の処理を行なえば、リアルタイムに外れ値検知ができます。ただし、実際の問題に応用する場合には、外れ値検知の精度を向上させるために、異常度の閾値と窓幅の値をチューニングする必要があります。

異常部位検出

異常部位検出とは、異常が起きている部分時系列を検出する手法です。例えば、図4のような心電図データから異常部位のみを抜き出したいときに異常部位検出を使います。

心電図データ

図4.心電図データ

異常部位検出にも、外れ値検知で使用したk近傍法を用いることができます。外れ値検知との違いは、データ点ではなく部分時系列が異常かどうかを評価するところにあります。

心電図データから不整脈の部分を異常部位として検出してみましょう。

k近傍法を用いた異常部位検出の手順
  • 時系列データを訓練データと検証データに分ける
  • 訓練データと検証データから、それぞれ同じ窓幅の部分時系列を複数個取り出す
  • 訓練データの部分時系列と検証データの部分時系列の類似度または非類似度を全て計算する
  • 3で計算した類似度/非類似度が最も高い/低いものをk個選び、その平均を検証データの部分時系列の異常度とする
  • 異常度がある閾値以上であれば、異常部位として検出する

異常部位検出の仕組み

図5.異常部位検出の仕組み

データ間の非類似度としてユークリッド距離が多く使われますが、Lpノルムや2つの時系列データの類似度を計算するdynamic time warpingなど任意の類似度/非類似度を用いることもできます。

変化点検知

検索エンジンによるキーワードAの検索数の推移

図6.検索エンジンによるキーワードAの検索数の推移

図6は、検索エンジンによるキーワードAの検索数の推移を表しています。ある時から検索数が突然大きくなっていますが、これは検索数が上昇した時点から人々の間でキーワードAが流行り出したためと考えられます。変化点検知とは、このような時系列データのパターンが急激に変化する箇所を検知するための手法です。ここでは、ホテリング理論を応用して変化点検知を実現する方法を紹介します。

ホテリング理論を応用した変化点検知には、“予測モデル”が必要です。信頼性のある予測モデルがあれば、将来のデータをある程度の範囲内で予測することができますが、普段予測できているということは、逆に言えば、予測が全く当たらなかった場合、その時点で何か大きな変化が起きたと考えられます。このアイデアにもとづき、予測値と実測値のずれを異常度と定義して変化点を検知するのです。より具体的には、ずれがマイナスになる場合も想定し、予測値と実測値の差の二乗を異常度と定義します。

次に、予測に使用するモデルを検討しましょう。時系列予測で最も幅広く使用されているモデルはARモデル(自己回帰モデル)です。ARモデルとは、直前のデータ点をもとに将来のデータ点を予測するモデルです。直前の何時点までを予測に用いるかを表すパラメータは、次数と呼ばれます。
次数3のARモデルを検討してみましょう。将来のデータx(t)を過去のデータx(t-1), x(t-2), x(t-3)を使って表現します。

将来のデータの予測値x ̂(t)は「過去の3つのデータ点と係数(β1, β2, β3)の積和」で表します。通常、予測値と実測値には差があり、これを残差ε(t)と呼びます。

ARモデルの仕組み

図7.ARモデルの仕組み

残差が小さいほど精度の高いモデルであり、逆に残差が大きいほど精度の低いモデルです。実際には、次数はモデルの予測精度に大きく影響を与えるため、慎重に定める必要があります。それでは、WEB上の検索数データを想定して、変化点検知の手順を説明します。

変化点検知の仕組み

図8.変化点検知の仕組み

ARモデルを用いた変化点検知の手順
  • 時系列データを訓練データと検証データに分ける
  • 訓練データからARモデルを推定する
  • 2で求めたARモデルを使用して検証データを予測する
  • (予測値-実測値)²を各時点の異常度とする
  • 異常度がある閾値以上であれば、その時点を変化点とする

データが更新されるたびに異常度を計算することでリアルタイムに変化点検知ができます。また、ARモデルでの予測が難しい場合は、ARMAモデルや状態空間モデルなどのより複雑なモデルを用いて検証データの予測を行なうことで任意の時系列データに対して変化点検知が可能になります。

  • back