異常検知の定義

異常検知とは、通常の状態を逸脱しているデータセットやシステムにおけるデータポイントを特定するプロセスです。データ解析中や機械学習の異常検知では、ほとんどのデータ内の通常のパターンや統計モデルに一致しないインスタンスにフラグを立てます。異常は外れ値、想定外の変化、またはエラーとして出現し、分析しているデータの種類や事前に設定したパラメータによって異なります。異常検知が有用なのは、潜在的な問題や脅威を素早く効率的に絞り込み、システムの整合性と信頼性を維持管理できる点です。


異常の種類

異常検知システムが見つけられる異常のいくつかの種類を以下に示します。(こういったカテゴリは互いに排他的するものではなく、異常は複数のカテゴリの特性を同時に示す場合があるという点に注意することが重要です。)

  • ポイント異常(Point anomaly)は、他のデータセットとは著しく異なる個々のデータポイントです。例えば、特定のクレジットカード所有者が突然、いつもより高額の買い物をクレジットカードで行った場合、ポイント異常フラグを立てて、クレジットカード詐欺の可能性を調査します。
  • コンテクスト異常(Contextual anomaly)は、データポイントの通常の行動が、状況に応じて変動する時のことです。一般的な例としては、一年で一番買い物が盛んになるブラックフライデーに、小売りサイトのトラフィックと売り上げが大幅に増加することが挙げられます。こういった急増は、一年の他の期間であれば異常となるので、この日のために特別なパラメータを設定します。
  • コレクティブ異常(Collective anomaly)は、個別のデータポイントが通常の状態に見えるにも関わらず、データポイントのグループが揃って異常な行動を示すことです。この異常は、複数のデータポイント間の関連性やパターンを観察して特定できます。DDoS攻撃はコレクティブ異常の例です。通常のトラフィックのパターンとは異なる複数のソースからのトラフィックを生じさせるからです。
  • 一時的異常(Temporal anomaly)と時系列異常(Time series anomaly)は、一連のイベントや季節変化といった一時的な順序でデータに偏差が見られる時に起こります。例えば、休暇中の滞在地での観光シーズンのピークの移行とか、特定の季節での異常気象パターン、またはラッシュアワーではない時間帯での交通量の急増などが、すべて一時的異常と見なされます。
  • 空間異常(Spatial anomaly)と地理的異常(geographic anomaly)は、空間データや地理的データで発生する異常が関与します。これらの異常は、データポイント間の空間的な関連性を調べることで見つけることができます。例えば公衆衛生データにおいて、特定の地域である病気と診断される個人が、異常な程の高密度で発生した場合、それは空間異常で、局地的な発生として調査の対象となります。

geo_point field in Data Visualizer

異常検知が重要である理由は何ですか?

異常検知が重要なのは、後ほど問題となる可能性がある、通常とは異なるパターン、行動、またはイベントの特定に役立つからです。組織は、監視対象として選択した各システムとデータセットの潜在的なリスク、非効率、異常性に対して、警告を受けることができます。これで何らかの問題が悪化する前に、迅速に先を見越して介入する必要がある情報が得られます。ビジネスのさまざまな局面にわたってこのような異常を認識しておくと、物事を円滑に進め、改善すべき箇所が分かり、社内外の両方の攻撃から防御することができます。


異常検知の作動方法

異常検知ではまず最初に、ベースラインとなる行動プロファイルを確立します。このプロファイルは、すべてが正常に機能している時に想定されるデータのパターンや行動を表します。これは通常、履歴データや正常な行動の代表的なサンプルを使用して作成します。

通常行動プロファイルが出来上がったら、新しく入って来たデータをこのプロファイルと比較します。データポイントは、それらが通常行動プロファイルで想定される特性にどれ程よく一致しているかを見て評価します。そこから大きく逸脱しているデータポイントに、異常としてフラグが付けられます。(こういった逸脱はさまざまな統計技法、機械学習アルゴリズム、または次章で説明するルールベースのアプローチを使って特定できます。)

次に、検出した異常をさらに調査して、その原因と影響を理解します。異常を検証して、それが誤検出でないこと、または測定ミスやランダムな変動により起こった外れ値ではないことを確認します。異常を検証したら、次に対策を講じます。これは、更なる調査、保守管理や修理、セキュリティ対策、品質管理の調整、その他の影響を減らす手段などを意味します。


異常検知の技法

ほとんどの異常検知技法は、ルールベースまたは機械学習ベースのいずれかです。後者は管理型技法、非管理型技法、半管理型技法という、3種類の機械学習ベースのグループに分かれます。どの技法を選ぶかは、解決しようとしている問題に固有の要件と、ラベル付けしたデータがどれ程あるかによって異なります。

管理型ML異常検知技法は、訓練中に通常と異常の両方のインスタンスを明確に定義する、ラベル付けしたデータを必要とする技法です。このモデルは通常データのパターンを学習し、次に学習内容に基づいて、新しいデータを通常か異常のいずれかに分類します。

非管理型ML異常検知技法では、ラベル付けしたデータを使用しません。ここでは、異常はまれにしか起こらず、ほとんどのデータとは大きく異なっていると仮定しています。この技法は、通常ではないパターン、外れ値、通常行動からの逸脱を特定することを目的としています。

半管理型ML異常検知技法では、ラベル付けしたデータとしていないデータを組み合わせて使用します。ラベル付けしたデータを活用して、通常行動のベースラインを確立し、次にラベル付けしていないデータを使って、このベースラインからの逸脱を特定します。これは特に、非構造化データで作業する場合に有用です。

機械学習は異常検知で一般的に使用されますが、その他の技法(例えば統計モデル、ルールベースのアプローチ、信号処理技法)も異常検知に活用できるということは言及しておく価値があります。こういった機械学習以外の技法は、さまざまな減速とアルゴリズムに依存して、データ内の異常を特定します。


異常検知のユースケース

異常検知にはさまざまな領域にわたる、多様なユースケースがあります。今後遭遇するであろうユースケースをいくつか挙げます。

  • サイバーセキュリティ異常検知は、ネットワークトラフィック、システムログ、ユーザー活動における、通常ではないパターンや行動の特定に役立ちます。これは、侵入の試みやマルウェア、データ侵害といったサイバー脅威の識別をサポートします。
  • アプリケーションとシステムの監視異常検知は、アプリケーション、サーバー、ネットワークインフラストラクチャの性能の監視するために、極めて重要です。待機時間、CPU使用率、メモリ使用率などの指標における異常を迅速に見つけて報告するため、潜在的な機能停止の回避に役立ちます。
  • 不正検知:異常検知は、クレジットカード詐欺やIDの盗難に対して、重点的に対処することができます。これは通常とは異なる支出パターン、通常ではない地理的所在地から行われた購入、その他の疑わしい活動を見分けることによって行います。
  • ハードウェアの維持管理:異常検知を活用して、使用しているハードウェアの動作を監視することができます。これにはCPU温度、ファン速度、電圧レベルといった要因が含まれます。差し迫った不具合の兆候が見えていることを意味する異常にフラグを立てられるので、機能停止する前に修理を開始できます。
  • ユーザー行動分析異常検知は、ユーザーのプロファイリングを回避しながら、アプリケーション、ウェブサイト、その他のオンラインプラットフォームでのユーザー行動パターンと傾向を分析できます。これは、通常とは異なるユーザーの操作の特定と、セキュリティ対策の個人化に役立ちます。

異常検知の利点

異常検知には多くの利点があります。あなたの組織に役立つ例をいくつか紹介します。

  • これで問題が大きく膨らむ前に、問題の早期検出ができます。早期に異常を検知すると、行動を起こして損傷や混乱を阻止するための処置を講じることができます。
  • 異常検知はサイバー攻撃や詐欺行為といった、悪意のある疑わしい行動の特定において、重要な役割を果たします。また脅威の可能性を素早く見分けて、セキュリティを改善することができます。
  • システムの最適な性能からの逸脱を監視して、非効率性を見分けることができます。これは、使用しているプロセスの合理化と、システムの全体的な改善のためのアイディアの考案に役立てることができます。
  • サービスの混乱であれ、問題を指摘する顧客サービスの問い合わせの異様な増加であれ、異常検知によって顧客満足度に影響を与える異常を見つけられるため、異常検知は顧客サービスにとって極めて重要です。
  • 機械学習ベースの異常検知は、使用しているシステムを常に監視できるという追加のメリットがあります。
  • 規制要件や業界標準からの逸脱を見分けることすらできるため、規制遵守にも役立ちます。

異常検知の制限と課題

異常検知技法には、ある種の制限と課題があります。以下に、知っておくべき欠点をいくつか挙げます。

  • 管理型機械学習モデルは、正常に作動させるために多くのラベル付きデータを必要とします。異常検知訓練モデルでラベル付きデータの量が不十分だった場合、その正確性に問題が出ます。
  • 異常検知を測定するアルゴリズムに不正確なしきい値を設定すると、さまざまエラー報告の原因となり得ます。
  • アルゴリズムを今では古くなった過去のモデルで訓練すると、モデルの性能が低下する場合があります。モデルのアップデートには、労力と時間がかかることがあります。
  • 正確なしきい値を設定していたとしても、アルゴリズムは時には誤検出(通常のデータポイントを異常としてフラグ付けする)や検出もれ(異常を検出しない)を起こします。この2種類のエラー間の兼ね合いのバランスを取るのは、一方を減らすともう一方がしばしば増えたりするので、困難かもしれません。
  • 異常検出アルゴリズムは、ノイズの多いデータや無関係なデータの影響を受けやすい場合があります。事前処理の技法やその他のノイズ低減手法を使って、この問題を緩和します。
  • 大規模なデータセットや、リアルタイムでのストリーミングデータに適用する際に、スケーラビリティが問題となることがあります。組織は、現在完全に処理する必要がある以上の、計算リソースが必要となるかもしれません。

異常検知のベストプラクティス

異常検知のベストプラクティス(優良事例)は重要で、それに従って最高の結果を得ます。心に留めておくべきことがいくつかあります。

  • 始める前に、データのパターンと特性を十分に理解しておきます。
  • 想定する行動のベースラインのパターンやしきい値を、できるだけ正確に確立します。この段階を軽視しないでください。後々、問題が発生するかもしれません。
  • あなたの組織が生み出すデータの種類に良く適合した、異常検知技法を選択します。(それが最高のアプローチであるなら、複数の技法を組み合わせてもかまいません。)
  • 異常検知システムの性能を定期的に監視し、生成しているデータを変更した時には更新します。
  • 疑問点があれば、分析対象の主題についての専門家であるチームメンバーに、確実に最新情報を伝えてください。より正確に結果を解釈できるよう、サポートを得ることができます。

Elasticによる異常検知

Elasticは、明確で使いやすいインターフェイスを用意しており、さまざまな機械学習技法を活用して、データの高度なリアルタイム分析を提供しています。Elasticの異常検知機能には、段階的ワークフローが含まれており、より優れた異常検知機械学習タスクの構築をサポートします。また、視覚化機能も含んでおり、異常やその根本原因は何であるか、さらにさまざまな分野にわたり信頼できる異常行動検出についての理解を容易化しています。

Elasticの機械学習と、Elasticオブザーバビリティがいかに今日のビジネスに貢献できるかについて、ぜひご覧ください。


異常検知の資料

Kibanaガイド:異常検知

異常検知を開始する

異常検知アルゴリズム

地理的データから異常の場所を検出