IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7412059時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム
<>
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図1
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図2
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図3
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図4
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図5
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図6A
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図6B
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図6C
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図6D
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図7
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図8
  • 特許-時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-28
(45)【発行日】2024-01-12
(54)【発明の名称】時系列データセットの一部である、単一の値又は複数の値からなるデータ要素が外れ値であるかどうかを特定するためにコンピュータにより実行される方法、コンピュータ・プログラム及びコンピュータ・システム
(51)【国際特許分類】
   G06F 17/18 20060101AFI20240104BHJP
   G06N 20/00 20190101ALI20240104BHJP
【FI】
G06F17/18 D
G06F17/18 Z
G06N20/00
【請求項の数】 18
(21)【出願番号】P 2020559506
(86)(22)【出願日】2019-05-20
(65)【公表番号】
(43)【公表日】2021-09-16
(86)【国際出願番号】 IB2019054145
(87)【国際公開番号】W WO2019224694
(87)【国際公開日】2019-11-28
【審査請求日】2021-09-27
(31)【優先権主張番号】15/988,506
(32)【優先日】2018-05-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ブダ、テオドラ、サンドラ
(72)【発明者】
【氏名】サラマ、ヒタム、アーメッド、アッセム、アリー
(72)【発明者】
【氏名】カグラヤン、ボラ
(72)【発明者】
【氏名】ガッファール、ファイサル
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2016/0299938(US,A1)
【文献】米国特許出願公開第2003/0065409(US,A1)
【文献】米国特許出願公開第2018/0046926(US,A1)
【文献】米国特許出願公開第2019/0102718(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/18
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
時系列データセットの一部である、単一の値又は複数の値からなるデータ要素(以下、調査中のデータ要素という)が外れ値であるかどうかを特定するためにコンピュータにより実行される方法であって、
前記調査中のデータ要素の値を予測するために使用される所定の数のデータ(以下、予測用データという)を、前記データ要素より時間的に前にある時系列データセット(以下、前にある時系列データセットという)から取得することであって、前記予測用データは、前記前にある時系列データセットの一部である1以上のデータ要素であり、前記前にある時系列データセットの一部である該1以上のデータ要素は、前記時系列データセットの単一のデータ・ポイント若しくはデータ・ポイントのセットであり又は1以上の複数のタイムスタンプに関連付けられている、前記取得することと、
複数の異なる予測モデルを前記予測用データに適用して、前記前にある前記データ要素の前記値それぞれについて複数の予測値を予測することと、
前記前にある前記時系列データセットの為の複数の誤差値を取得することであって、該取得した複数の誤差値の各誤差値が、前記前にある時系列データセットの一部であるデータ要素の値と前記予測値との間の差を表し、前記誤差値が周期的な期間と関連付けられており、前記複数の誤差値それぞれが前記時系列データセット中の周期的な期間の異なるデータ要素から求められたものである、前記誤差値を取得することと、
前記複数の誤差値に基づいて、外れ値であるとみなされる前記データ要素の値を前記データ要素の前記予測値に対して定義するための閾値を取得することであって、該閾値を取得することが、該複数の誤差値のうちの所定の数の平均値、中間値、モード値又は標準偏差を計算することと、該計算された値に所定の数を掛けること、該掛けた結果に基づいて取得することを含む、前記取得することと、
前記閾値、前記予測値、および前記調査中のデータ要素前記値に基づいて、前記調査中のデータ要素外れ値であるかどうかを判定することと
を含む、前記方法。
【請求項2】
前記予測用データが、前記前にある前記時系列データセットの所定の数からなる複数のデータ要素を含む、請求項1に記載の方法。
【請求項3】
各誤差値が、前記前にある時系列データセットの前記データ要素の前記値と、前記前にある時系列データセットの前記データ要素の対応する予測値との間の差の2乗である2乗誤差値である、請求項1又は2に記載の方法。
【請求項4】
前記閾値を取得することが、前記誤差値の最大値に基づいて、各誤差値をスケーリングして0と1の間の値にすることを含む、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記閾値を取得することが、
前記複数の誤差値の標準偏差を計算することと、
前記標準偏差に所定の数を掛けることと
を含む、請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記閾値を取得することが、チェビシェフの不等式を使用して前記所定の数を計算することを含む、請求項5記載の方法。
【請求項7】
前記調査中のデータ要素前記時系列データセットの為に複数の誤差値を取得することにおいて、前記データ要素が、前記データ要素の前に所定の期間の倍数だけ取得された前記時系列データセットのデータ要素に対応する、請求項1乃至6のいずれか1項に記載の方法。
【請求項8】
前記所定の期間が、1時間、1日、または1週間である、請求項7に記載の方法。
【請求項9】
前記データ要素の予測値を予測することが、
前記複数の異なる予測モデルを前記予測用データに適用して、前記データ要素の前記値についての複数の潜在的な予測値を予測することと、
前記データ要素の前記値に最も近い前記潜在的な予測値を前記予測値として割り当てることと
を含む、請求項1乃至7のいずれか1項に記載の方法。
【請求項10】
前記複数の誤差値の数が、5個以上である、請求項1乃至のいずれか1項に記載の方法。
【請求項11】
前記閾値が前記時系列データセットの一部であるデータ要素ごとに取得される、請求項1~10のいずれか1項に記載の方法。
【請求項12】
時系列データセットの一部である、単一の値又は複数の値からなるデータ要素(以下、調査中のデータ要素という)が外れ値であるかどうかをコンピュータに判定させるためのコンピュータ・プログラムであって、請求項1乃至11のいずれか1項に記載の方法の各ステップを前記コンピュータに実行させる、前記コンピュータ・プログラム。
【請求項13】
時系列データセットの一部である、単一の値又は複数の値からなるデータ要素(以下、調査中のデータ要素という)が外れ値であるかどうかを判定するためのコンピュータ・システムであって、
少なくとも1つのプロセッサであって、請求項1乃至11のいずれか1項に記載の方法の各ステップを行うように構成された、前記少なくとも1つのプロセッサ
を備えている、前記コンピュータ・システム。
【請求項14】
時系列データセットの一部である、単一の値又は複数の値からなるデータ要素(以下、調査中のデータ要素という)が外れ値であるかどうかを判定するためのシステムであって、
少なくとも1つのプロセッサであって、
前記調査中のデータ要素の値を予測するために使用される所定の数のデータ(以下、予測用データという)を、前記データ要素より時間的に前にある時系列データセット(以下、前にある時系列データセットという)から取得するように適合された第1の取得ユニットであって、前記予測用データは、前記前にある時系列データセットの一部である1以上のデータ要素であり、前記前にある時系列データセットの一部である該1以上のデータ要素は、前記時系列データセットの単一のデータ・ポイント若しくはデータ・ポイントのセットであり又は1以上の複数のタイムスタンプに関連付けられている、前記第1の取得ユニットと、
複数の異なる予測モデルを前記予測用データに適用して、前記前にある前記データ要素の前記値それぞれについて複数の予測値を予測するように適合された予測ユニットと、
第2の取得ユニットであって、
前記前にある前記時系列データセットの為の複数の誤差値を取得することであって、該取得した複数の誤差値の各誤差値が、前記前にある時系列データセットの一部であるデータ要素の値と前記予測値との間の差を表し、前記誤差値が周期的な期間と関連付けられており、前記複数の誤差値それぞれが前記時系列データセット中の周期的な期間の異なるデータ要素から求められたものである、前記誤差値を取得すること、および
前記複数の誤差値に基づいて、外れ値であるとみなされる前記データ要素の値を前記データ要素の前記予測値に対して定義するための閾値を取得することであって、該閾値を取得することが、該複数の誤差値のうちの所定の数の平均値、中間値、モード値又は標準偏差を計算することと、該計算された値に所定の数を掛けること、該掛けた結果に基づいて取得することを含む、前記取得することと、
を行うように適合された、前記第2の取得ユニットと
前記閾値、前記予測値、および前記調査中のデータ要素前記値に基づいて、前記調査中のデータ要素外れ値であるかどうかを判定するように適合された判定ユニットと
を備えている、前記少なくとも1つのプロセッサ
を備えている、前記システム。
【請求項15】
各誤差値が、前記前にある時系列データセットの前記データ要素の前記値と、前記前にある時系列データセットの前記データ要素の対応する予測値との間の差の2乗である2乗誤差値である、請求項14に記載のシステム。
【請求項16】
前記閾値を取得することが、前記誤差値の最大値に基づいて、各誤差値をスケーリングして0と1の間の値にすることを含む、請求項14又は15に記載のシステム。
【請求項17】
前記閾値を取得することが、
前記複数の誤差値の標準偏差を計算することと、
前記標準偏差に所定の数を掛けることと
を含む、請求項14乃至16のいずれか1項に記載のシステム。
【請求項18】
前記データ要素の予測値を予測することが、
前記複数の異なる予測モデルを前記予測用データに適用して、前記データ要素の前記複数の値の個々の値についての複数の潜在的な予測値を予測することと、
前記データ要素の前記値に最も近い前記潜在的な予測値を前記予測値として割り当てることと
を含む、請求項14乃至17のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は異常検知に関し、詳細には、データ・モデリング・アプローチを使用した異常の検知に関する。本発明の実施形態は、さらに、システムのプロセッサがこのような方法を実行できるようにするコンピュータ可読プログラム・コードを含むコンピュータ・プログラム製品に関する。本発明の実施形態は、さらに、異常を検知するためのシステムに関する。このようなシステムは、様々な異なるドメインにわたって見られるいずれかのデータの異常を識別するために使用されてもよい。このようなデータは、例えば、(例えば、普通ではない検査結果を検知するための)健康データ、(例えば、詐欺行為/侵入の検知のための)セキュリティ・データ、または(例えば、伝送エラーを検知するための)通信データを含んでもよい。
【背景技術】
【0002】
異常検知は、データ・ポイントまたはパターンの期待される挙動から外れているデータ・ポイントまたはデータのパターン(例えば異常)を識別することを目標とする。別の分野では、異常は、代替として、外れ値、不調和観察、例外、逸脱、驚き、異様さ、または汚染物と呼ばれることもある。
【0003】
異常検知は、様々な応用分野(例えば、健康、詐欺行為/侵入検知のためのセキュリティ、システム)において有用であり、そうしないと、サービス停止、およびメンテナンス・コストの増加になり得る性能悪化を、5Gネットワーク・オペレータがタイムリに回避または検知するのに特に有益である。目的は、初期段階において是正措置を適用して、悪化のインパクトを最小化し、コストを減らすことができるようにするために、事前対応的(例えば、悪化の発生前に準備する)または事後対応的(例えば、悪化の発生後に対応する)手法で悪化を検知することである。
【0004】
i)外れ値検知の一般的な表現は、多次元データにおける普通ではないポイントを、隣のポイントへのこれらの距離で見つけることである事実に基づく方法、および(ii)監視される事実の正常な挙動をモデル化し、期待される正常な挙動と実際の挙動との間の偏差を異常検知のための誤差基準値としてさらに使用することになる概説モデルが予め作り出される別の一般的なアプローチである明確な一般化法、という、用いられる戦略のタイプに基づいて分類可能な、非常に多くの異常検知技法がある。
【0005】
実際のシステムで活用される最も一般的な既存の技法は、閾値ベースの方法を用い、パラメトリック法、および非パラメトリック法にカテゴライズすることができる。パラメトリック法は、データセットの基礎となる分布を仮定し、分布に基づいて閾値を決定する。しかし、この仮定は、多くの場合、非現実的であり、実際に破られる。さらに、非パラメトリック法は、このように仮定しないようにし、その場限りの手法で閾値を決定する。しかし、両方のアプローチは、一般に非現実的であり、入ってくるデータセットのパターン変化に適合せず、閾値の調整にかなりの努力を必要とすることが多い。
【0006】
より複雑な異常検知技法は機械学習方法を用い、教師あり(supervised)、半教師あり(semi-supervised)、および教師なし(unsupervised)という3つのクラスに分けることができる。教師あり学習異常検知は、各インスタンスがラベル付けされ、典型的には、訓練セットに対して分類装置を訓練することを伴うデータセットを必要とする。入力正常訓練データセットから正常な挙動を表すためのモデルを組み立てるものなどの、半教師ありアルゴリズムは、テスト・データセットがモデルによって生成される可能性を計算するためのモデルに従う。教師なしモデルは、ラベル付きデータセットを必要とせず、大多数のデータ・ポイントが正常であり、残りのデータ・ポイントを外れ値として返すという仮定の下で動作する。
【0007】
しかし、統計モデルおよび確率モデルなどのほとんどのアプローチは、典型的には、単一の基準値が一度に監視される一変量データセットに適している。これは、各基準値のためのモデルを構築することによって複数の基準値に拡張されることが可能であるが、これは、基準値間のどのような相関関係も直接考慮しないはずである。したがって、これらのアプローチは、潜在的に異常な挙動を識別するために基準値間の相関関係が使用され得る多変量解析に簡単に拡張できない。さらに、既存のアプローチは、典型的には、グランド・トゥルース・ラベルを収めるデータセットに依存し、ここで、異常は、データ・ポイントに具体的に正確に示される。これは、ラベル付きデータが高価であり、データにラベル付けする際に人間のエラーによる影響を受ける可能性のある専門知識を必要とするので、現実のシナリオにおいて集めるのが難しい可能性がある。さらに、初期のモデルは、再訓練されない限り新しいタイプの異常に適用されない可能性があり、このことにより、異常検知モデルを導入している全期間、専門知識を必要とする。これは、5Gネットワークのような動的環境でこれらのアプローチが活用されるのを非現実的にする。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の実施形態は、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するための方法を提供しようとする。
【0009】
本発明の実施形態は、データ処理システムのプロセッサで実行されたときに方法を実行するためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム製品をさらに提供しようとする。
【0010】
本発明の実施形態は、このコンピュータ・プログラム・コードを実行するように適合されたシステムをさらに提供しようとする。
【0011】
本発明の実施形態は、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのシステムをさらに提供しようとする。
【課題を解決するための手段】
【0012】
本発明の1つの実施形態によれば、時系列データセットの一部である、単一の値又は複数の値からなるデータ要素(以下、調査中のデータ要素という)が外れ値であるかどうかを特定するためにコンピュータにより実行される方法であって、
前記調査中のデータ要素の値を予測するために使用される所定の数のデータ(以下、予測用データという)を、前記データ要素より時間的に前にある時系列データセット(以下、前にある時系列データセットという)から取得することであって、前記予測用データは、前記前にある時系列データセットの一部である1以上のデータ要素であり、前記前にある時系列データセットの一部である該1以上のデータ要素は、前記時系列データセットの単一のデータ・ポイント若しくはデータ・ポイントのセットであり又は1以上の複数のタイムスタンプに関連付けられている、前記取得することと、
複数の異なる予測モデルを前記予測用データに適用して、前記前にある前記データ要素の前記値それぞれについて複数の予測値を予測することと、
前記前にある前記時系列データセットの為の複数の誤差値を取得することであって、該取得した複数の誤差値の各誤差値が、前記前にある時系列データセットの一部であるデータ要素の値と前記予測値との間の差を表し、前記誤差値が周期的な期間と関連付けられており、前記複数の誤差値それぞれが前記時系列データセット中の周期的な期間の異なるデータ要素から求められたものである、前記誤差値を取得することと、
前記複数の誤差値に基づいて、外れ値であるとみなされる前記データ要素の値を前記データ要素の前記予測値に対して定義するための閾値を取得することであって、該閾値を取得することが、該複数の誤差値のうちの所定の数の平均値、中間値、モード値又は標準偏差を計算することと、該計算された値に所定の数を掛けること、該掛けた結果に基づいて取得することを含む、前記取得することと、
前記閾値、前記予測値、および前記調査中のデータ要素前記データ要素の前記値に基づいて、前記調査中のデータ要素前記データ要素が外れ値であるかどうかを判定することと
を含む。
本発明の別の1つの実施形態によれば、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのコンピュータ実行方法が提供される。方法は、データ要素より時間的に前にある時系列データセットの第1のデータから、データ要素の値を予測するために予測データを取得することと、予測データを使用して、データ要素の予測値を予測することとを含む。方法は、時系列データセットの履歴誤差値を取得することをさらに含み、各履歴誤差値は、データ要素より時間的に前にある時系列データセットの第2のデータ要素の値と予測値との間の差を表すものである。方法は、1つまたは複数の履歴誤差値に基づいて、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得することと、データ要素の閾値、予測値、および値に基づいて、データ要素が外れ値であるかどうかを判定することとをさらに含む。
【0013】
閾値の生成時に履歴誤差値を使用すると、外れているデータ値を識別する際の正解率(accuracy)を向上させる。具体的には、データ要素と関連付けられた誤差値が正常な範囲または期待される範囲に入るかどうかを識別するために、期待される誤差値から(例えば、履歴データ値から)現在の誤差値が逸脱したかどうかが容易に分かる。
【0014】
したがって、履歴誤差値を使用すると、時系列データセットの外れているデータ要素を識別する際の正解率および適合率(precision)が改善する。
【0015】
履歴誤差値は、それぞれ、2乗誤差値であってもよい。2乗誤差値は、データ要素の予測値とデータ要素の実際値との間の差の2乗である。平均2乗誤差値が、複数の値を含むデータ要素の履歴誤差値として使用されてもよい。
【0016】
履歴2乗誤差値を使用して閾値を計算すると、ベンチマーク・テストに基づいて外れ値データを識別する際の正解率および適合率が改善する。この効果は、閾値を比較して、調査したデータ要素が外れ値であるかどうかを判定するために、調査中のデータ要素の2乗誤差値が使用されるときに特に目立つ。
【0017】
本発明のいくつかの実施形態において、各履歴誤差値は、0と1の間の値にスケーリングされる(例えば、正規化される)。これは、特定の履歴誤差値が、閾値の計算に不釣合いに影響を及ぼさないことを保証する。(調査中の)データ要素の、閾値と比較される誤差値も、改善された一貫性のために、(例えば、履歴値に対するものと同じスケーリング・ファクタを使用して)0と1の間にスケーリングされてもよい。
【0018】
本発明のさらなる実施形態において、履歴誤差値の標準偏差は、閾値を計算するため、またはそうでなければ、取得するために使用される。標準偏差は、システムの正常な挙動または期待される挙動を表すものなので、履歴誤差値の標準偏差を使用して閾値を生成すると、外れ値を正確に識別できるようになる。
【0019】
外れているデータ要素を識別するのに適した閾値を標準偏差に基づいて決定するために、チェビシェフの不等式の原理が活用されてもよい。これは、履歴誤差値の基礎となる分布について仮定が行われないので、外れているデータ要素を検知する信頼性を改善する。これは、このことにより、(例えば、非正規分布が期待されない場合に)外れ値検知方法が使用され得る応用件数を増加させる。
【0020】
本発明の特定の実施形態において、外れているデータ要素を識別する際の正解率を改善するために、履歴誤差データのパターンが活用されてもよい。時間/日/週(または他の期間)の同じ時間の誤差値が似ているので、履歴誤差値に周期性があり得ることが認識されてきた。したがって、周期的な期間と関連付けられた履歴誤差値を使用すると、このような周期性は、期待される正常な挙動の一部とみなすことができるので、外れているデータ要素をより正確に識別できるようになる。言い換えれば、時系列データセットの挙動は周期的に変化してもよく、その結果、(時系列データセットの周期性と一致する)類似の挙動は、正常とみなすことができる。様々な例では、所定の期間は、このような期間を伴う周期的な挙動を時系列データセットが有する可能性が高くなるので、1時間、1日、または1週間であってもよい。
【0021】
データ要素の予測値を予測するステップは、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の潜在的な予測値を予測することを含むことができる。この同じステップは、データ要素の値に最も近い潜在的な予測値を予測値として割り当てることをさらに含むことができる。
【0022】
調査中のデータ要素の値を正確に予測するために、複数のモデルのどれも活用しなかった場合、この値が異常または外れ値である可能性がより高くなる。したがって、データ要素の実際値/測定値に最も近い(複数の可能な予測値のうちの)予測値を使用することによって、異常なデータ要素を識別する正解率および信頼性を向上させることができる。
【0023】
複数の予測モデルを使用して予測値を生成することが特に効率的であることをベンチマーク・テストが示してきた。具体的には、外れているデータ要素を検知する適合率および再現率(recall)が強化される。
【0024】
本発明の別の実施形態による、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が含まれるコンピュータ可読ストレージ媒体を備え、プログラム命令は、前述の方法などの本発明の実施形態による方法を処理ユニットに行わせるように、処理ユニットによって実行可能である。
【0025】
本発明の1つの実施形態による、少なくとも1つのプロセッサおよびコンピュータ・プログラム製品を含むシステムも提供される。少なくとも1つのプロセッサは、コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように適合される。
【0026】
したがって、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのシステムが提供される。システムは、データ要素より時間的に前にある時系列データセットの第1のデータから、データ要素の値を予測するために予測データを取得することを行うように適合された第1の取得ユニットを備える。システムは、予測データを使用して、データ要素の予測値を予測することを行うように適合された予測ユニットをさらに備える。システムは、時系列データセットの履歴誤差値を取得することを行うように適合された第2の取得ユニットをさらに備え、各履歴誤差値は、データ要素より時間的に前にある時系列データセットの第2のデータ要素の値と予測値との間の差を表すものである。第2の取得ユニットは、1つまたは複数の履歴誤差値に基づいて、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得することを行うようにさらに適合されてもよい。システムは、データ要素の閾値、識別した予測値、および値に基づいて、データ要素が外れ値であるかどうかを判定することを行うように適合された判定ユニットをさらに備える。
【0027】
本発明の好ましい実施形態が、以下の図面を参照しながら、ほんの一例として次に記述される。
【図面の簡単な説明】
【0028】
図1】例証的な実施形態の態様が実行され得る分布型システムの例の図的記述を描写する図である。
図2】例証的な実施形態の態様が実行され得るシステムの例のブロック図である。
図3】本発明の1つの実施形態による方法の流れ図である。
図4】本発明の1つの実施形態による図3の方法の一部の流れ図である。
図5】本発明の別の実施形態による図3の方法の一部の流れ図である。
図6A】本発明の異なる実施形態による方法の効果を示す図である。
図6B】本発明の異なる実施形態による方法の効果を示す図である。
図6C】本発明の異なる実施形態による方法の効果を示す図である。
図6D】本発明の異なる実施形態による方法の効果を示す図である。
図7】本発明の1つの実施形態によるシステムを示す図である。
図8】例証的な実施形態の態様が実行され得るシステムの例のブロック図である。
図9】本発明の好ましい実施形態による方法またはシステムのためのアーキテクチャを示す図である。
【発明を実施するための形態】
【0029】
図は、概略的なものにすぎず、スケーリングするように描かれていないということが理解されよう。同じまたは類似の部分を示すために、図の全体を通して同じ参照番号が使用されるということも理解されよう。
【0030】
本出願の文脈において、本発明の実施形態が方法の構成要素となる場合、このような方法は、コンピュータによる実行のための処理であり、例えば、コンピュータ実行可能方法またはコンピュータ実行方法であるということが理解されよう。方法の様々なステップは、したがって、例えば、1つまたは複数のアルゴリズムの様々な部分といった、コンピュータ・プログラムの様々な部分を示す。
【0031】
また、本出願の文脈において、システムは、本発明の方法の1つまたは複数の実施形態を実行するように適合された単一のデバイス、または、分布型デバイスの集合体であってもよい。例えば、システムは、本発明の方法の少なくとも1つの実施形態を協調して実行するために、ローカル・エリア・ネットワーク、インターネット等などのネットワークを介して接続された、パーソナル・コンピュータ(PC)、サーバ、あるいは、PCもしくはサーバまたはその両方の集合体であってもよい。
【0032】
本発明の実施形態は、予測を作り出すために、深層学習モデルと共に非常に多くの統計学的アプローチと確率的アプローチの両方を利用することによって異常をタイムリに発見するための、明確な一般化モデルに基づくアプローチを行う。タイムスタンプ毎に実際値に最も近い予測が選択され、このことにより、真陽性(true positive)の異常にだけアラートを発し、偽陰性(false negative)の量を最も少なくするための異常検知の解決策を導く。
【0033】
本発明の実施形態のアプローチは、分析中の各時系列に適した動的閾値を決定するために、従来とは異なる動的スライド・ウィンドウ・メカニズムも利用し、ここで、動的ウィンドウは、正解率が最高になることを保証するために、各ポイントに対してスケール変更された(rescaled)2乗誤差を収める。
【0034】
他の態様は、他の異常検知技法と比較して、本発明の実施形態のアプローチを実際により効果的なものにする。一般に、異常検知アルゴリズムは、典型的には、決定するのが困難になり得る閾値をユーザが選び、収集するには高価であり、エラーが発生しやすくなり得るテストのための有望なラベル(golden label)を提供する必要がある。これは、本発明の実施形態の異常検知アプローチによって回避され、このアプローチは、過去の予測誤差に基づいて動的閾値を計算し、半教師あり学習アプローチが用いられるので、訓練するためのラベルを必要としない。さらに、本発明の実施形態のLSTMモデルは、複数の特徴を入力として受け取ることができ、複数の特徴にわたる異常を取り込むことができる単一のモデルを本発明の実施形態が使用できるので、一変量の異常検知器とは対照的に、本発明の実施形態を多変量にする。
【0035】
時系列データセットの異常または外れ値を正確に検知するための概念が提案される。具体的には、提案される概念は、時系列データセットの特定のデータ要素が外れ値であるかどうかを識別するという共通の基礎となる方法に依存する。この共通の方法は、この特定のデータ要素の値を予測すること、およびデータ要素の実際値が外れ値であるかどうかを予測値に対して定義する閾値を取得することを含む。
【0036】
いくつかの例では、特定のデータ要素の誤差値が取得され、誤差値は、このデータ要素の実際値と予測値との間の差を表す。この誤差値は、実際値、およびしたがって、関連付けられたデータ要素が外れ値であるかどうかを判定するために、閾値と比較することができる。これは、データ要素が外れ値であるかどうかを判定する非常に正確だが適合可能な方法をもたらす。
【0037】
本発明の実施形態において、データ要素の値を予測するために使用される予測データは、データ要素より時間的に前にある時系列データセットの所定の数の他のデータ要素を含む。
【0038】
本発明の1つの実施形態によれば、後のデータ要素が外れ値であるかどうかを識別するために履歴誤差値が使用される。ここで、履歴誤差値は、時系列データセット内の調査中のデータ要素より前にある(例えば、時間的に早い)データ要素と関連付けられた誤差値である。具体的には、データ要素が外れ値であるかどうかを定義するために使用される閾値を生成するために履歴誤差値が使用される。
【0039】
本発明の実施形態は、時系列データセット内の前のデータ要素の予測値と実際値との間の差をそれぞれ表す履歴誤差値は、現在のデータ要素が外れ値であるかどうかを識別するために使用できるという認識に基づいている。具体的には、(評価中または調査中の現在のデータ要素と関連付けられた誤差値である)現在の誤差値が正常範囲内にあるかどうか、または、誤差値が外れ値であるかどうかが判定されることが可能である。これは、時系列データセットの前のデータ要素に対してデータ要素が外れ値であるかどうかについての評価を改善することができる。
【0040】
したがって、本発明の実施形態は、履歴誤差値を使用して、(現在の)データ要素が外れ値であるかどうかを判定するための閾値を生成することを提案する。
【0041】
本発明の1つの実施形態によれば、調査中のデータ要素の予測値を生成するために、複数の予測モデルが使用される。データ要素の実際値に最も良く一致する予測値を生成する予測モデルによって生成された予測値、または、データ要素を含む全体的な時系列データセットを最も良く予測する予測モデルの予測値が、予測値として選択される。
【0042】
したがって、本発明の1つの実施形態において、予測値に対する非常に多くの潜在的な値が生成され、(調査中の)データ要素の実際値に最も近い潜在的な予測値が予測値として選択される。
【0043】
複数のモデルのどれも、調査中のデータ要素の値を正確に予測しなかった場合、これが異常または外れ値である可能性が高い。したがって、データ要素の実際値/測定値に最も近い(複数の可能な予測値のうちの)予測値を使用することによって、異常なデータ要素を識別する正解率および信頼性が向上する可能性がある。
【0044】
本発明の実施形態の方法/システムは、データ要素が外れ値であるかどうかを識別する特に効率的で精密かつ正確な方法を提供するために、履歴誤差値に基づいて閾値を生成し、複数の予測モデルを使用して予測値を生成するという概念を用いる。
【0045】
しかし、本発明の1つの実施形態の方法は、それ自体によって、外れ値を識別する正解率を改善することができる複数の予測モデルを使用して予測値を生成するという概念を用いる。したがって、履歴誤差値を使用して閾値が生成される必要がない方法も考えられる。
【0046】
したがって、時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのコンピュータ実行方法がさらに提供されてもよい。このような方法は、データ要素より時間的に前にある時系列データセットの第1のデータから、データ要素の値を予測するために予測データを取得することと、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の予測値を予測することと、データ要素の値に最も近い予測値を複数の予測値から識別することと、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得することと、データ要素の閾値、識別した予測値、および値に基づいて、データ要素が外れ値であるかどうかを判定することと、を含む。
【0047】
予測データは、データ要素より時間的に前にある時系列データセットの所定の数の他のデータ要素を含むことができる。
【0048】
閾値を取得するステップは、時系列データセットの履歴誤差値を取得することを含むことができ、各履歴誤差値は、データ要素より時間的に前にある時系列データセットの第2のデータの値と、時系列データセットの第2のデータの対応する予測値との間の差を表す。閾値を取得するステップは、1つまたは複数の履歴誤差値に基づいて閾値を取得することをさらに含むことができる。
【0049】
各履歴誤差値は、データ要素より時間的に前にある時系列データセットの第2のデータの値と、時系列データセットの第2のデータの対応する予測値との間の差の2乗である2乗誤差値であるのが好ましい。
【0050】
閾値を取得するステップは、履歴誤差値の最大値に基づいて、各履歴誤差値をスケーリングして0と1の間の値にすることを含むことができる。
【0051】
閾値を取得するステップは、履歴誤差値の標準偏差を計算することと、履歴誤差値の標準偏差に基づいて閾値を取得することとを含むことができる。
【0052】
閾値を取得するステップは、閾値を取得するために、履歴誤差値の標準偏差に所定の数を掛けることをさらに含むことができる。閾値を取得するステップは、チェビシェフの不等式を使用して所定の数を計算することを含むのが好ましい。
【0053】
本発明の実施形態において、第2のデータは、データ要素の前に所定の期間の倍数だけ取得された時系列データセットのデータに対応する。所定の期間は、1時間、1日、または1週間であるのが好ましい。
【0054】
本発明の少なくとも1つの実施形態において、データ要素は、時系列データセットのデータ・ポイントである。
【0055】
時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのコンピュータ・プログラム製品がさらに提供されてもよい。コンピュータ・プログラム製品は、プログラム命令が含まれるコンピュータ可読ストレージ媒体を備える。プログラム命令は、データ要素より時間的に前にある時系列データセットの第1のデータから、データ要素の値を予測するために予測データを取得することと、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の予測値を予測することと、データ要素の値に最も近い予測値を複数の予測値から識別することと、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得することと、データの閾値、識別した予測値、および値に基づいて、データ要素が外れ値であるかどうかを判定することと、を含む方法を処理ユニットに行わせるように処理ユニットによって実行可能である。
【0056】
少なくとも1つのプロセッサと、前述のコンピュータ・プログラム製品とを備えるコンピュータ・システムも提案され、ここで、少なくとも1つのプロセッサは、コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように適合される。
【0057】
時系列データセットの値を有するデータ要素が外れ値であるかどうかを判定するためのシステムがさらに提供されてもよい。システムは、データ要素より時間的に前にある時系列データセットの第1のデータから、データ要素の値を予測するために予測データを取得するように適合された第1の取得ユニットを備える。システムは、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の予測値を予測することと、データ要素の値に最も近い予測値を複数の予測値から識別することとを行うように適合された予測ユニットも備える。システムは、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得するように適合された第2の取得ユニットと、データ要素の閾値、識別した予測値、および値に基づいて、データ要素が外れ値であるかどうかを判定するように適合された判定ユニットとをさらに備える。
【0058】
本発明の例証的な実施形態は、多くの異なるタイプのデータ処理環境で利用されてもよい。例証的な実施形態の要素および機能の記述のための背景を提供するために、例証的な実施形態の態様が実行され得る環境の例として、図1および図2が以下に示される。図1および図2は単なる例であり、本発明の態様または実施形態が実行され得る環境に対する何らかの限定を示すことまたは意味することを意図するものではないということが理解されよう。描写された環境への多くの修正が、本発明の範囲から逸脱することなく行われてもよい。
【0059】
図1は、例証的な実施形態の態様が実行され得る例示的な分布型トランザクション処理ストレージ・システムの図的記述を描写する。分布型システム100は、例証的な実施形態の態様が実行され得るコンピュータのネットワークを含んでもよい。分布型システム100は、少なくとも1つのネットワーク102を含み、これは、分布型データ処理システム100内で互いに接続された様々なデバイスとコンピュータとの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、ワイヤ、ワイヤレス通信リンク、または光ファイバ・ケーブルなどの接続を含んでもよい。
【0060】
描写された例では、第1のサーバ104および第2のサーバ106が、ストレージ・ユニット108と共にネットワーク102に接続される。さらに、クライアント110、112、および114も、ネットワーク102に接続される。クライアント110、112、および114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ、または同様のものであってもよい。描写された例では、第1のサーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、描写された例では、第1のサーバ104に対するクライアントである。分布型システム100は、図示していない追加のサーバ、クライアント、および他のデバイスを含んでもよい。
【0061】
描写された例では、分布型システム100はインターネットであり、ネットワーク102は、プロトコルのトランスミッション・コントロール・プロトコル/インターネット・プロトコル(TCP/IP)スイートを使用して互いに通信するネットワークとゲートウェイの世界中の集合体を表す。インターネットの中心には、データおよびメッセージをルーティングする何千もの市販の、政府の、教育の、および他のコンピュータ・システムを含む主要なノードまたはホスト・コンピュータ間の高速データ通信ラインのバックボーンがある。当然、分布型システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、または同様のものなど、いくつかの異なるタイプのネットワークを含むようにさらに実現されてもよい。上述のように、図1は、例であることを意図しており、本発明の異なる実施形態に対する構造上の限定を意図するものではなく、したがって、図1に示された特定の要素は、本発明の例証的な実施形態が実行され得る環境に対する限定とみなされるべきではない。
【0062】
図2は、本発明の例証的な実施形態の態様が実装され得るシステム200の例のブロック図である。システム200は、本発明の例証的な実施形態のための処理を実行するコンピュータ使用可能コードまたは命令が配置され得る図1のクライアント110などのコンピュータの例である。
【0063】
描写された例では、システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202、ならびにサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH)204を含むハブ・アーキテクチャを用いる。処理ユニット206、メイン・メモリ208、およびグラフィックス・プロセッサ210が、NB/MCH202に接続される。グラフィックス・プロセッサ210は、アクセラレイティッド・グラフィックス・ポート(AGP)を介してNB/MCH202に接続されてもよい。
【0064】
描写された例では、ローカル・エリア・ネットワーク(LAN)アダプタ212が、SB/ICH204に接続する。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、リード・オンリ・メモリ(ROM)224、ハード・ディスク・ドライブ(HDD)226、CD-ROMドライブ230、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート232、ならびにPCI/PCIeデバイス234が、第1のバス238および第2のバス240を介してSB/ICH204に接続する。PCI/PCIeデバイスは、例えば、イーサネット(R)・アダプタ、アドイン・カード、および、ノートブック・コンピュータのためのPCカードを含んでもよい。PCIは、カード・バス・コントローラを使用するが、PCIeは使用しない。ROM224は、例えば、フラッシュ基本入出力システム(BIOS)であってもよい。
【0065】
HDD226およびCD-ROMドライブ230は、第2のバス240を介してSB/ICH204に接続する。HDD226およびCD-ROMドライブ230は、例えば、インテグレーテッド・ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インターフェースを使用してもよい。スーパーI/O(SIO)デバイス236が、SB/ICH204に接続されてもよい。
【0066】
オペレーティング・システムは、処理ユニット206上で稼働する。オペレーティング・システムは、図2のシステム200内の様々な構成要素の制御を協調され、提供する。クライアントとして、オペレーティング・システムは、市販のオペレーティング・システムであってもよい。JAVA(R)プログラミング・システムなどのオブジェクト指向プログラミング・システムがオペレーティング・システムと共に稼働することができ、システム200上で実行するJAVA(R)プログラムまたはアプリケーションからの、オペレーティング・システムへのコールを行う。
【0067】
サーバとして、システム200は、例えば、ADVANCED INTERACTIVE EXECUTIVE(AIX)(R)オペレーティング・システム、またはLINUXオペレーティング・システムを稼働させるIBM ESERVER SYSTEM P(R)コンピュータ・システムであってもよい。システム200は、処理ユニット206内に複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。代替として、シングル・プロセッサ・システムが用いられてもよい。
【0068】
オペレーティング・システムのための命令、プログラミング・システム、およびアプリケーションまたはプログラムは、HDD226などのストレージ・デバイス上に配置され、処理ユニット206による実行のためにメイン・メモリ208にロードされてもよい。同様に、本発明の1つの実施形態による1つまたは複数のメッセージ処理プログラムが、ストレージ・デバイスまたはメイン・メモリ208あるいはその両方によって格納されるように適合されてもよい。
【0069】
本発明の例証的な実施形態のための処理は、例えば、メイン・メモリ208、ROM224などのメモリに、または、1つもしくは複数の周辺デバイス226および230に配置され得るコンピュータ使用可能プログラム・コードを使用して処理ユニット206によって実行されてもよい。
【0070】
図2に示したような第1のバス238または第2のバス240などのバス・システムは、1つまたは複数のバスを含むことができる。当然、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた異なる構成要素またはデバイスの間のデータの転送のために提供する任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装されてもよい。図2のモデム222またはネットワーク・アダプタ212などの通信ユニットは、データの送受信のために使用される1つまたは複数のデバイスを含んでもよい。メモリは、例えば、メイン・メモリ208、ROM224、または、図2のNB/MCH202において見られるものなどのキャッシュであってもよい。
【0071】
図1および図2のハードウェアは、実装形態に応じて変化してもよいということを当業者は理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ、および同様のものなどの他の内部ハードウェアまたは周辺デバイスが、図1および図2に描写されたハードウェアに加えてまたは代わりに使用されてもよい。また、例証的な実施形態の処理は、本発明の思想および範囲から逸脱することなく、前述のシステム以外のマルチプロセッサ・データ処理システムに適用されてもよい。
【0072】
さらに、システム200は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット型コンピュータ、ラップトップ・コンピュータ、電話もしくは他の通信デバイス、パーソナル・デジタル・アシスタント(PDA)、または同様のものを含むいくつかの異なるデータ処理システムのいずれかの形をしていてもよい。いくつかの例証となる例では、システム200は、例えば、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納するための不揮発性メモリを提供するためにフラッシュ・メモリで構成された携帯型コンピューティング・デバイスであってもよい。したがって、システム200は本質的に、構造上の制限のない、任意の既知のまたは後で開発されるデータ処理システムであってもよい。
【0073】
本明細書において使用されるように、用語「データ要素」は、データセットの1つまたは複数のデータ・ポイントなど、時系列データセットのパーツまたは一部を指すために使用される。単一のデータ要素は、データ・ポイントのセット、または単一のデータ・ポイントを包含することができる。データ要素は、時間内または期間内の単一のインスタンス(例えば、時間内の一連の連続インスタンス)をそれぞれ表すことができる1つまたは複数のタイムスタンプと関連付けられてもよい。各データ要素は、単一の値または複数の値と関連付けられてもよく、例えば、各データ要素は、1次元または多次元であってもよい。
【0074】
データ要素の値または「実際値」は、実際にデータ要素によって格納された、またはデータ要素に収められた値を指す。これは、(例えば、実際値自体ではない)実際値の予測を代わりに指し、典型的には、データセット内の他のデータ要素の値に基づいて決定されるデータ要素の「予測値」と区別される。
【0075】
用語「外れ値」は、用語「異常」と区別なく使用されることもある。
【0076】
図3は、本発明の1つの実施形態による、データ要素(例えば、「調査中のデータ要素」または「現在のデータ要素」)が外れ値であるかどうかを判定するための方法30の流れ図を示す。発明概念の異なる例が、本実施形態に対して利用し、改善する。
【0077】
方法30は、ステップ31で始まり、ステップ31は、データ要素の値を予測するために予測データを取得することを含む。具体的には、ステップ31は、データ要素より時間的に前にある時系列データセットの第1のデータから予測データを取得することを含む。したがって、ステップ31は、調査中のデータ要素より前にある時系列データセット内のデータから予測データを取得する。
【0078】
例として、ステップ31は、データ系列内の調査中のデータ要素より時間的に前にある複数のデータ要素を取得することを含むことができる。これは、「ルックバック」動作と呼ばれることがある。取得したデータ要素の数は用途毎に変化してもよいが、3個以上のデータ要素、または20個以下のデータ要素、あるいはその両方を含むのが好ましい。(調査中の)データ要素の値を予測するためのデータは、調査中のデータ要素の直前にある(また、時間的に前にある)データ要素を含むのが好ましい。
【0079】
ステップ31で取得した予測データは、したがって、時系列データセットの複数のデータ要素を含むことができ、第1のデータの各データ要素は、調査中のデータ要素より時間的に前にある。同様に、予測データが取得される元となる第1のデータは、時系列データセットの複数のデータ要素を含むことができ、第1のデータの各データ要素は、調査中のデータ要素より時間的に前にある。
【0080】
方法30は、次に、ステップ32に移り、ステップ32は、予測データに基づいて(調査中の)データ要素の1つまたは複数の値を予測することを含む。したがって、ステップ32は、調査中のデータ要素の予測値を生成し、予測値は、このデータ要素の実際値(例えば、記録または格納された値)と区別される。
【0081】
ステップ32は、予測モデルを予測データに適用し、このことにより、調査中のデータ要素の1つまたは複数の値を予測することを含むのが好ましい。ステップ32についての他の実施形態は、後で明らかになるであろう。
【0082】
任意の(1つまたは複数の)適切な予測モデルが、ステップ32において使用されてもよい。データの値を予測するための既知の予測モデルは、長短期メモリ(LSTM:long-short term memory)、自己回帰統合移動平均(ARIMA:autoregressive integrated moving average)、およびHolt-Winters(HW)としても知られる3重指数平滑化法(triple exponential smoothing)を含む。予測モデルの選択肢は、時系列データセットの特性に応じて変化してもよい。例えば、LSTMなどのディープ・ニューラル・ネットワーク予測法は、大きい訓練データ(例えば、多量の予測データ)では、結果が最も良くなる可能性があり、その一方で、小さいデータセットでは、ARIMA、およびHWが、予測をより良くする可能性がある。他のモデルが使用されてもよいということが理解されよう。
【0083】
予測モデルは、時系列予測(TSF:time-series forecasting)モデルであってもよい。TSFモデルの出力は、1歩先を行く予測であり、例えば、調査中のデータ要素に対して、値が次のタイムスタンプにおいて何であることが期待されるのかを識別/予測する。
【0084】
ステップ32の後、方法30は、ステップ33に進み、ステップ33は、外れ値とみなされるデータ要素の値を定義するための閾値を取得することを含む。したがって、取得した閾値は、(このデータ要素の少なくとも予測値について)データ要素の実際値が外れ値であるかどうかを判定するために使用することができる。
【0085】
ステップ33に続いて、方法30はステップ34に進む。ステップ34は、データ要素の閾値、予測値、および(実際)値に基づいて、(調査中の)データ要素が外れ値であるかどうかを判定することを含む。したがって、例えば、閾値に対する、このデータ要素の予測値と(実際)値との間の少なくとも比較に基づいて、データ要素が外れ値であるかどうかが判定されることが可能である。
【0086】
具体的には、ステップ34は、調査中のデータ要素の予測値および(実際)値を使用して、誤差値を計算することを含むことができる。この誤差値は、データ要素が外れ値(例えば、異常)であるか否かを判定するために閾値と比較されてもよい。例えば、調査中のデータ要素の誤差値が閾値より大きい場合、データ要素が外れ値であると判定されてもよい。同様に、調査中のデータ要素の誤差値が閾値より小さい場合、データ要素が外れ値ではないと判定されてもよい。
【0087】
例として、調査中のデータ要素の(実際)値と予測値との間の差(の大きさ)は、誤差値として使用されてもよい。別の例では、誤差値を生成するために調査中のデータ要素の(実際)値および予測値を使用して、特定の誤差計算が行われる(例えば、RMS誤差計算、2乗誤差計算、またはスケーリングされた2乗誤差計算)。
【0088】
したがって、一般的に言えば、「誤差値」は、データ要素の予測値と実際値との間の差を表す。このような差を表す誤差値を取得する非常に多くの方法が、当業者には知られているはずである。
【0089】
閾値は、正常なまたは外れていない範囲内にあるとみなされる誤差値の上限値を示すことができる。したがって、閾値は、外れ値ではないとみなされる最大許容可能誤差値を示すことができる。このようにして、閾値より大きい誤差値は、この誤差値と関連付けられたデータ要素が外れ値であることを示す。
【0090】
他の例では、閾値は、外れ値であるとみなされないデータ要素の(実際)値の範囲の上限および下限を示すことができ、ここで、この範囲の外に含まれるいずれの値も、外れ値であるとみなされる。
【0091】
別の例では、ステップ34は、外れ値であるとみなされない値の範囲の上限を定義するために、調査中のデータ要素の予測値に閾値を加算すること、および、外れ値であるとみなされない値の範囲の下限を定義するために、同じ予測値から閾値を減算することを含む。上限と下限の外に含まれるいずれの値も、外れ値または異常とラベル付けされてもよい。このようにして、閾値は、予測値に対するデータ要素の受入れ可能な、外れていない値の範囲を定義することができる。
【0092】
ステップ34において、データ要素が異常であるかどうかを識別すると、方法は、調査中のデータ要素が異常であることをシグナリングするステップを含むことができる(例えば、アラートをトリガすること、データの特定のセットを生成すること、など)。このシグナリングは、異常なデータ要素にフラグ付けするため、または識別するために使用されてもよい。異常なデータ要素が識別されると、異常データ要素検知を用いる方法は、異常なデータ要素を無視すること、または、(例えば、ノイズもしくは同様のものによって異常が引き起こされた場合)異常なデータ要素が再び送られることをリクエストすることを選択することができる。本明細書に記述される異常検知方法についての他の用途は、当業者には明らかであろう。
【0093】
方法30は、異なるデータ要素が外れ値であるかどうかを識別するために、時系列データセットの異なるデータ要素に反復して適用することができるということが考えられる。新しい閾値は、例えば、調査されるそれぞれの異なるデータ要素に対して方法30が行われるたびに計算されてもよい。したがって、例えば、方法は、(例えばシステムによって)各データ要素に対して反復して行われてもよく、異なる閾値は各データ要素に対して決定される(例えば、閾値は動的である)。
【0094】
本発明の実施形態は、多次元(例えば、2つ以上の値を含む)データ要素が外れ値であるかどうかを判定するために適合されてもよいということが明らかであろう。
【0095】
このような実施形態において、ステップ32は、データ要素の(実際)値が存在するので、データ要素の対応する、例えば同一の数の、予測値を予測することを含むことができる。同様に、ステップ34は、閾値との比較のために、データ要素の予測値および(実際)値を使用して誤差値を計算することを含むことができる。したがって、データ要素は、閾値との比較のために単一の誤差値が計算され得る元となる、複数の(実際)値および個々の複数の予測値と関連付けられてもよい。
【0096】
多変量データに対して提案された概念を適合させる他の方法は、当業者には容易に明らかであろう。例えば、本発明の実施形態において、調査中の多次元データ要素の各値は、(例えば、本明細書に記述された方法を使用して)この値が外れ値であるかどうかを判定するために個別に評価されてもよい。多次元データ要素の1つまたは複数の値が外れ値として識別された場合には、全データ要素が、外れ値/異常であるとみなされてもよい。
【0097】
したがって、本発明の実施形態は、2つ以上の値と関連付けられた多次元データ要素に対して、当業者によって容易に修正されてもよい。
【0098】
図4は、閾値を取得するためのステップ33、および、調査中のデータ要素が外れ値であるかどうかを判定するためのステップ34の実施形態を示す。
【0099】
ステップ33の図示の実施形態は、いくつかの別個のサブステップを含む。
【0100】
ステップ33の第1のサブステップ41は、時系列データセットの履歴誤差値を取得すること含む。各履歴誤差値は、調査中のデータ要素より時間的に前にある(例えば、時系列データセット内の先にある、または初めの方にある)時系列データセットの第2のデータ要素の少なくとも1つの値と、この第2のデータ要素の少なくとも1つの対応する予測値との間の差を表すものである。言い換えれば、履歴誤差値は、時系列データセット内の以前のデータ要素の予測値と対応する実際値との間の差を表す。履歴誤差値は、代替として、以前の誤差値にラベル付けされてもよい。
【0101】
したがって、時系列データセットの複数の「第2のデータ要素」は、調査中のデータ要素より時間的に前にあるデータ要素であり、それぞれが、個々の履歴誤差を提供する。これらの第2のデータ要素は、時系列データセット内の(調査中の)データ要素より前にあるデータ要素であるのが好ましい。例えば、第2のデータ要素は、調査中のデータ要素の直前にあるデータ要素を含むことができる。
【0102】
サブステップ41は、調査中のデータ要素の予測値と同じ方式で、各第2のデータ要素の予測値を取得することを含むことができる。すなわち、時系列データセット内の特定の第2のデータ要素より前にあるデータセットのデータ要素は、第2のデータ要素の値を予測するために使用されてもよい。
【0103】
サブステップ41は、例えば、履歴誤差値の格納されたセットから、履歴誤差値を取得することを含むことができる。履歴誤差値の格納されたセットは、したがって、時系列データセット内の調査中のデータ要素より時間的に前にあるデータ要素の誤差値を収めることができる。
【0104】
サブステップ41で取得した履歴誤差値の数は、実施形態に応じて変化してもよい。本発明の1つの実施形態において、取得した履歴誤差値の数は、5個以上である。本発明の別の実施形態において、履歴誤差値の数は、10個以上である。本発明の他の好ましい実施形態において、履歴誤差値の数は、20個以上または50個以上である。本発明のさらなる他の実施形態において、履歴誤差値の数は、100個以上または200個以上である。本発明のさらなる他の実施形態において、(調査中のデータ要素に対する)全ての以前のデータ要素は、履歴誤差値と関連付けられ、全ての誤差値が、サブステップ41で取得される。履歴誤差値の数が大きくなればなるほど、予測の履歴誤差の余地を閾値がますます正確に表すことになるので(例えば、データセットの特性をより示すものになるので)、外れ値を識別する際の正解率が高くなる。
【0105】
ステップ33の第2の、その後のサブステップ42は、履歴誤差値に基づいて閾値を取得すること含む。
【0106】
このようにして、調査中のデータ要素が外れ値であるかどうかを判定するための閾値は、時系列データセット内の調査中のデータ要素より時間的に前にあるデータ要素の以前の/履歴上の誤差値に基づいて決定される。
【0107】
サブステップ41で取得した各履歴誤差値は2乗誤差値であり、データ要素より時間的に前にある時系列データセットの個々の第2のデータ要素の(実際)値と予測値との間の差の2乗であるのが好ましい。
【0108】
例えば多次元データ要素といった複数の値を含むデータ要素について、履歴誤差値は、第2のデータ要素の平均2乗誤差であってもよい。したがって、各第2のデータ要素は、複数の(実際)値および個々の複数の予測値と関連付けられてもよく、ここで、単一の誤差値(履歴誤差値)は、複数の実際値および予測値を使用して計算される。多変量データに適合させる他の方法は、当業者には明らかであろう。
【0109】
閾値の計算時に2乗誤差値を使用すると、データ要素が外れ値であるかどうかを識別する方法がより正確かつ精密になる。
【0110】
他の例では、履歴誤差値は、調査中のデータ要素より時間的に前にある時系列データセットの個々の第2のデータ要素の(実際)値と予測値との間の差であってもよい。履歴誤差値としての使用にふさわしい誤差値の他の例は、当業者には容易に明らかであり(例えば、RMS値、対数誤差など)、同じことを計算するための方法も、当業者には明らかであろう。履歴誤差値は、差の大きさに基づくこと、またはそうでなければ、例えば、符号が付いていないまたは符号がない(2乗された値などの)正の値だけを含むことが好ましい。
【0111】
本発明の実施形態において、ステップ33は、例えば、ステップ41で取得した履歴誤差値の最大値に基づいて、各履歴誤差値をスケーリングして0と1の間の値にするサブステップ43をさらに含むことができる。したがって、サブステップ43は、ステップ41で取得した履歴誤差値の最大値を決定し、この最大値に基づいて各履歴値をスケーリングすること(例えば、履歴誤差値の最大値で各履歴誤差値を割ること)を含むことができる。
【0112】
別の例では、各履歴誤差値は、履歴誤差値のいずれか、および調査中のデータ要素の対応する誤差値(例えば、各履歴誤差値と同じ手法で計算されたデータ要素の誤差値)の最大値に基づいてサブステップ43でスケーリングされる。これは、異常識別処理の一貫性を保証する。
【0113】
本発明のいくつかの実施形態において、履歴誤差値の数は、時系列データセット内の調査中のデータ要素より時間的に前にあるデータ要素の数に等しい。したがって、調査中のデータ要素より前にある時系列データセット内の各データ要素は、履歴誤差値を提供することができる。これは、処理効果およびコストを犠牲にして、異常検知メカニズムの正解率を向上させる。
【0114】
図示の実施形態において、サブステップ42は、閾値を取得するために、サブステップ44およびサブステップ45を順番に行うことを含む。
【0115】
サブステップ44は、ステップ41で取得した履歴誤差値の標準偏差を計算することを含む。これは、従来の標準偏差計算方法を使用して行われる。
【0116】
サブステップ45は、計算した標準偏差に基づいて閾値を取得することを含む。具体的には、サブステップ45は、標準偏差に所定値を掛けること、および、閾値に結果の基礎を置くことを含むことができる。
【0117】
履歴誤差値が正の数字だけである(例えば、各誤差値が、誤差の大きさまたは2乗誤差値である)場合、サブステップ45は、閾値を直接取得するために、標準偏差に所定値(例えば3または5)を掛けることを含むことができる。
【0118】
履歴誤差値が正と負の数字の両方を含むとき(例えば、誤差値が、2乗誤差値、または誤差値の大きさではないとき)、履歴誤差値の平均も、閾値を定義するために使用されてもよい。具体的には、所定値(例えば、3または5)と標準偏差の積は、閾値を定義するために、履歴誤差値の平均に加算されることが可能である。
【0119】
これは、動的閾値を非常に正確かつ適合可能にする。
【0120】
所定値は、3以上であること、例えば、5以上であることが好ましい。所定値が大きくなると、外れ値を検知する偽陽性率が下がり、外れ値を検知する偽陰性率が上がる。所定値5が、外れ値の特に正確かつ信頼できる検知をもたらすことを示した。しかし、所定値は、基礎となる(履歴)誤差が正規分布もしくは半正規分布によって表されること、または、正規分布もしくは半正規分布であると仮定されることが可能である場合、3として定義されることが可能である。
【0121】
閾値を計算するために使用される所定値は、外れているデータ要素の定義に依存してもよいということが当業者によってよく認識されるであろう。例えば、本発明の1つの実施形態において、データ要素は、全ての誤差値の所定の割合が含まれると期待される範囲に含まれない誤差値を有する場合、外れ値とみなされる。所定の割合は、例えば、95%、99%、99.5%、99.7%などであってもよい。標準手順を使用して所定値が計算される元になるこの所定の割合を、ユーザが提供してもよい。
【0122】
したがって、所定値、およびしたがって閾値は、外れ値であることが期待される誤差値の割合に依存してもよい(例えば、5%、1%、0.5%、0.3%など)。
【0123】
言い換えれば、データ要素は、(時系列データセット内のいずれかのデータ要素の)誤差値の所定の割合が含まれることが期待される範囲に含まれない誤差値と関連付けられる場合、外れ値であるとみなされてもよい。
【0124】
半正規分布した誤差値について、全ての誤差値の95%が、0の2標準偏差に含まれ、誤差値の99.7%が、0の3標準偏差に含まれると仮定してもよい。正規分布した誤差値について、全ての誤差値の95%が(履歴誤差値の)平均の2標準偏差に含まれ、誤差値の99.7%が(履歴誤差値の)平均の3標準偏差に含まれると仮定してもよい。
【0125】
各履歴誤差値が2乗誤差値であるシナリオを考えると、履歴誤差値は、正規分布を有すると仮定することができ、外れ値は、関連付けられた誤差値が、データ要素の99.7%の期待される正常範囲に含まれないデータ要素として定義される。この例では、所定値は3になり、閾値は、標準偏差の3倍になる。
【0126】
所定値は、したがって、正常範囲から外れているまたは正常範囲内の値を有するデータ要素の確率に依存してもよいということが理解されよう。
【0127】
しかし、方法が、履歴誤差の基礎となる分布に束縛されないことを保証するために、チェビシェフの不等式を活用することができる。正規分布だけに適用される経験則とも呼ばれる68-95-99ルールとは対照的に、チェビシェフの不等式は、広いクラスの確率分布について、一定の部分にすぎない値が、(正の誤差値だけに対して)平均または0からの一定の距離を超えるものであることが可能であるということを保証する。
【0128】
したがって、所定値は、値から離れたどれだけ多くの標準偏差が、外れ値であるとみなされることにならなければならないかを決定するために、チェビシェフの不等式の原理を使用して計算されてもよい。
【0129】
これは、何が、外れている誤差値の構成要素となるかについての定義に基づいてもよい。例えば、誤差値は、誤差値の少なくとも所定の割合が下回ることが期待される閾値より大きい場合、外れている誤差値と定義されてもよい。所定の割合p1は、95%、99%、または99.5%など、(例えばユーザ入力値から)用途に応じて変化してもよい。
【0130】
本発明の1つの実施形態において、kが所定の数であり、p1が(10進法として表現される)所定の割合である場合、所定の数は、以下を行うことによって計算することができる。
【数1】
【0131】
所定の割合p1は、正常範囲内にあるとみなされる、例えば、外れているデータ要素と関連付けられていない誤差値の割合を表す。したがって、式1-p1は、正常範囲外にあるとみなされる、例えば、外れている要素と関連付けられている(例えばデータセット全体に対する)誤差値の割合を表す。この割合の値は、用途毎に異なってもよい。
【0132】
これは、データ要素が外れ値であるかどうかを判定するのにふさわしい閾値の識別を著しく改善し、このことにより、外れているデータ要素を識別する際の正解率および適合率を改善する。チェビシェフの不等式を用いる方法の多用性は、誤差値の正規分布を仮定する方法より大きい。
【0133】
本発明の他の実施形態において、サブステップ42は、他のアルゴリズムを使用して閾値を生成してもよい。例えば、サブステップ42は、履歴誤差値の平均/中間/モードを決定し、この値を使用して閾値を定義することを含むことができる。例えば、平均/中間/モードは、閾値を提供するために所定の数(例えば、およそ1.5などの2以下)を乗じてもよい。
【0134】
しかし、本発明の好ましい実施形態は、記述されたサブステップ44、45を含むサブステップ43とサブステップ42の両方を利用すること含む。このような実施形態において、閾値は、スケーリングされた履歴誤差値の標準偏差に基づいて計算される。この好ましい実施形態は、外れているデータ要素の識別を極めて正確かつ精密なものにする。
【0135】
ステップ34は、(調査中の)データ要素が外れ値であるかどうかを判定するために、ステップ33で閾値を生成するために使用された計算に依存してもよい。言い換えれば、ステップ34の方法は、閾値を生成するためのステップ33の方法を補完することができる。
【0136】
本発明の典型的な実施形態において、調査中のデータ要素の誤差値は、時系列データセット内の調査中のデータ要素より時間的に前にある第2のデータ要素の各履歴誤差値と同一の手法で計算される。この誤差値は、履歴誤差値を使用して生成された閾値と比較される。
【0137】
例えば、ステップ33で計算された閾値が、履歴データ(例えば、調査中のデータ要素より時間的に前にある第2のデータ要素)の2乗誤差値に基づくシナリオを考える。ステップ34は、調査中のデータ要素の2乗誤差値を計算するという対応するサブステップ46、および、(このデータ要素の)2乗誤差値と閾値との比較に基づいて、データ要素が外れ値であるかどうかを判定するという対応するサブステップ47を含むことができる。
【0138】
別の例では、ステップ33が、履歴誤差値をスケーリングするというサブステップ43を含むシナリオを考える。ステップ34は、データ要素の誤差値をスケーリングするという対応するサブステップ48を含むことができる(例えば、その結果、誤差値は、履歴誤差値に対応するようにスケーリングされる)。このような実施形態において、サブステップ48は、履歴誤差値をスケーリングするために使用される履歴誤差値の同じ最大値を使用して、調査中のデータ要素の誤差値をスケーリングすることを含むのが好ましい。したがって、履歴誤差値と、調査中の誤差値は、同じ手法で正規化することができる。
【0139】
このようにして、調査中のデータ要素の誤差値は、同様に計算され、履歴誤差値に対応するようにスケーリングされるので、閾値を計算するために使用される履歴誤差値に対応することができる。
【0140】
上述の実施形態は、時系列データセットの異なるデータ要素に反復して適用されてもよいということが考えられる。このようにして、例えば、時系列データセットの各時間ステップにおいて、調査された各データ要素に対して、異なる閾値が計算されることが可能であり、その結果、各データ要素は、外れ値であるかどうかを判定するために個別に評価されることが可能である。
【0141】
本発明のいくつかの実施形態において、調査中のデータ要素の計算された誤差値は、例えば、将来の反復において履歴誤差値として作用するように、方法の将来の反復のために格納される。したがって、データ要素の計算された誤差値は、格納された履歴誤差値のセットに加えられてもよい。
【0142】
本発明の好ましい実施形態において、ステップ41で取得した履歴誤差値は、時間の特定のウィンドウに対応する第2のデータ要素と関連付けられる。前述のように、時系列データセットのデータ要素は、特定のポイントまたは期間と関連付けられる(例えば、データ要素は、少なくとも1つのタイムスタンプと関連付けられる)。したがって、各履歴誤差値は、特定のポイントまたは期間とさらに関連付けられることが可能である(例えば、履歴誤差値は、少なくとも1つのタイムスタンプとさらに関連付けられる)。したがって、例えば、調査中のデータ要素のタイムスタンプに関する、時間の特定のウィンドウと関連付けられた履歴誤差値を選択することができる。
【0143】
履歴誤差値と関連付けられたタイムスタンプは、調査中のデータ要素と関連付けられたタイムスタンプから時間の所定の長さだけある時間の固定ウィンドウに含まれるのが好ましい。例えば、ステップ41は、調査中のデータ要素のタイムスタンプの1時間前の、時間(例えば±5分)を中心とした10分のウィンドウに含まれる履歴誤差値を取得することを含むことができる。
【0144】
本発明の1つの実施形態において、ステップ41で取得した各履歴誤差値は、調査中のデータ要素と関連付けられた時間より前に所定の期間の倍数だけある時間のウィンドウと関連付けられてもよい。
【0145】
例として、所定の期間が1時間であり、固定時間ウィンドウが長さ10分であり、調査中のデータ要素がタイムスタンプ10:00:00と関連付けられるシナリオを考える。このシナリオでは、ステップ41で取得した履歴誤差値と関連付けられたタイムスタンプは、09:00:00(±0:05:00)、08:00:00(±0:05:00)、07:00:00(±0:05:00)などのウィンドウのいずれかに含まれてもよい。
【0146】
固定時間ウィンドウの長さは、調査中のデータ要素と関連付けられたタイムスタンプからの時間の所定の長さの長さに依存してもよい。例えば、時間ウィンドウの長さは、タイムスタンプからの時間の所定の長さの倍数(例えば、0.01倍)であってもよい。
【0147】
時間の所定の長さの長さは、1時間、1日、または1週間であることが好ましい。これは、このような期間と典型的に関連付けられた時系列データセットにおけるパターンを活用することができる。これは、時系列データセットにおける周期パターンを考慮することによって、外れ値を検知する適合率および信頼性を改善する。
【0148】
本発明の実施形態は、時系列データセット全体の履歴誤差値における周期パターンを識別するというステップをさらに含むことができる。これは、例えば、パターン認識アルゴリズムもしくはプログラム、または、(例えばフーリエ変換を用いる)頻度分析法を使用して行われてもよい。履歴誤差値における周期パターンを識別すると、(例えば、調査中のデータ要素のタイムスタンプが含まれる)周期時間ウィンドウと関連付けられた履歴データ値を取得することができる。
【0149】
本発明の他の実施形態において、取得した履歴誤差値は、時系列データセット内の調査中のデータ要素の直前にある(例えば、どのような中間データ要素もない)データ要素の誤差値に対応する。したがって、例えば、第2のデータ要素の最新または最後に直接続く時系列データセットのデータ要素は、調査中のデータ要素である。
【0150】
本発明の実施形態は、時系列データセットの各データ要素に対する動的閾値を計算することによる極値分析を可能にする。このような実施形態は、データ要素の実際値からデータ要素に対する予測値への距離を判定し、距離が動的閾値を超えると、データ要素の実際値を異常なものとしてレポートするというステップを含むことができる。
【0151】
このような実施形態において、距離は、0と1の間に正規化された(例えば、スケーリングされた)実際値と予測値との間の2乗誤差であるのが好ましい。動的閾値は、時系列データセットの以前のデータ要素と関連付けられた履歴誤差値に基づいて、(例えば、時系列データセットの異なる時間ステップで)各データ要素に対して個別に計算されることが可能である。動的閾値は、0と1の間に正規化された(例えば、スケーリングされた)履歴2乗誤差に基づくのがさらにより好ましい。
【0152】
これは、外れているデータ要素、または、データ要素が1つまたは複数の外れている値といつ関連付けられるかを識別するという方法を特に正確かつ精密なものにする。
【0153】
図5は、予測データに基づいて(調査中の)データ要素の値を予測するための方法30のステップ32の実施形態を示す。この方法は、図4を参照しながら記述された実施形態と共に用いられるのが好ましい。しかし、図5の方法だけが、図3の実施形態と共に用いられ、外れているデータ要素を識別する正解率を改善することができるということが考えられる。
【0154】
ステップ32は、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の予測値を予測するというサブステップ51を含む。したがって、データ要素の個々の値を予測するために、複数の予測モデルがそれぞれ使用される。
【0155】
以前に提示したものなど、データ要素の値を予測するのに適した予測モデルが当業者にはよく知られている。典型的には、予測モデルは、複数の以前のデータ要素を入力とし、これらのデータ要素を処理して、その後のデータ要素についての値を予測する。したがって、予測モデルによって使用される予測データは、調査中のデータ要素より時間的に前にある複数のデータ要素を含むのが好ましい。
【0156】
当然、調査中のデータ要素が多次元であり、したがって、2つ以上のデータ値を含む場合、各予測モデルは、データ要素の予測値の個々のセットを予測することができる。
【0157】
ステップ32は、次に、データ要素の値に最も近い予測値を提供する予測モデルを、複数の予測値から識別するサブステップ52に移る。データ要素の値に最も近い予測値は、データ要素が外れ値であるかどうかの判定時に、方法30のその後のステップで使用される。
【0158】
サブステップ52は、データ要素の複数の予測値のそれぞれと、データ要素の(実際)値との間の2乗平均平方根(RMS:root mean square)誤差を計算することを含むのが好ましい。最小のRMS誤差と関連付けられた予測値は、将来のステップのための予測値として選択される。
【0159】
別の例では、ステップ32は、複数の予測モデルを使用して、調査中のデータ要素より前にある全体的な時系列データセットを予測することを代わりに含む。(例えば、RMS分析を使用して決定されるような)実際の時系列データセットに最も近い時系列データセットを生成する予測モデルは、調査中のデータ要素の予測値を生成するために選択される。
【0160】
ステップ32は、したがって、深層学習メカニズムを利用し、複数の予測モデルのどれが、データ要素の値を最も良く予測するか、または、全体的な時系列データセットを最も良くモデル化するかを識別することを含んでもよい。
【0161】
本発明の実施形態は、複数の予測モデルのどれも、調査中のデータ要素の値を正確に予測しなかった場合、データ要素が異常または外れ値である可能性が高いことを認識する。したがって、データ要素の実際値/測定値に最も近い(複数の可能性のある予測値のうちの)予測値を使用することによって、異常なデータ要素を識別する正解率および信頼性を向上させることができる。
【0162】
さらに、複数の予測モデルを使用すると、また、これらの手段の最善を選択すると、この実施形態は、そうでなければ、外れているデータ要素を識別する方法の最大効果に影響を及ぼすはずの、例えば予測モデルといった特定の時系列予測モデルに依存する必要はない。具体的には、異なる時系列データセットは、一定の予測モデルによって他より良くモデル化されても、正確にモデル化されてもよい。複数の予測モデルを使用することによって、最もふさわしいモデルが識別されることが可能であり、このことにより、データ要素が、外れ値として誤って識別されることになる可能性を減らす。
【0163】
本発明の特に有利な実施形態は、図4を参照しながら記述されたステップ33と、図5を参照しながら記述されたステップ32の両方を用いる。しかし、(例えば図4および図5の)これらの2つの概念は、互いに別々に考慮されてもよいということが明らかであろう。
【0164】
したがって、図3および図5を参照しながら記述されたステップを含む(例えば、また、図4を参照しながら記述されたステップを必ずしも含まない)方法が提案されてもよい。
【0165】
図6Aは、従来技術と比較した、本発明の提案された実施形態の効果を示すグラフである。外れているデータ要素を識別する6つの異なる方法を使用して、複数の異なるデータセットの各データ要素に対してベンチマーク・テストが行われた。これらの方法のうちの5つ(61、62、63、65、66)が、本発明の提案された実施形態に一致する。第6の方法64は、従来技術の方法に対応する。
【0166】
本発明の1つの実施形態による第1の方法61は、(例えば、履歴誤差値を使用して閾値を計算する)図3および図4を参照しながら記述されたような方法を実行することを含み、ここで、ステップ32で使用されたデータ要素の値を予測するための予測モデルは、ARIMAモデルである。
【0167】
本発明の1つの実施形態による第2の方法62は、図3図4、および図5を参照しながら記述されたような方法を実行することを含む。したがって、第2の方法62は、履歴誤差値を使用して閾値を計算する。方法62のステップ32は、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の潜在的な予測値を予測することと、データ要素の値に最も近い潜在的な予測値を予測値として割り当てることとを含む。
【0168】
本発明の1つの実施形態による第3の方法63も、図3図4、および図5を参照しながら記述されたような方法を実行することを含む。したがって、第3の方法63は、履歴誤差値を使用して閾値を計算する。方法63のステップ32は、予測データおよび複数の異なる予測モデルを使用して、データセットの複数のデータ要素の個々の複数の潜在的な予測値を予測すること、および、データ要素の予測値を生成するために、データセットの関連付けられた複数のデータ要素の(実際)値に最も密接にマッチする予測値を生成する予測モデルを選択することを含む。
【0169】
本発明の1つの実施形態による第4の方法65は、(例えば、履歴誤差値を使用して閾値を計算する)図3および図4を参照しながら記述されたような方法を実行することを含み、ここで、ステップ32で使用されたデータ要素の値を予測するための予測モデルは、単一のLSTM(LSTM-S)予測モデルである。
【0170】
本発明の1つの実施形態による第5の方法66は、(例えば、履歴誤差値を使用して閾値を計算する)図3および図4を参照しながら記述されたような方法を実行することを含み、ここで、ステップ32で使用されたデータ要素の値を予測するための予測モデルは、ディープLSTM(LSTM-D)予測モデルである。
【0171】
従来技術による方法64は、従来のEGADSモデルを使用して外れ値検知を行うことを含む。
【0172】
図6Aは、6つの方法61~66のそれぞれが1から6までのランクを付けたデータセットの数を示し、ここで、ランク1は、所与のデータセットの特定のデータセット内の外れ値を識別するための最善の方法を表し、ランク6は、最悪の方法を表す。
【0173】
方法の相対ランクを評価するために、各モデルのF1スコアが計算され、最高のF1スコアと関連付けられた方法がランク1を割り当てられ、最低のF1スコアと関連付けられた方法がランク6を割り当てられた。例えばランク2~5といった他のランクは、この間に適宜分散される。
【0174】
言い換えれば、複数のベンチマーク・データセットのそれぞれについて、方法61~66は、このデータセットの各データ要素に適用され、ランク付け評価方法に基づいて後でランク付けされる。ここで、ランク付け評価方法は、各方法のF1スコアを計算し、F1スコアの大きさに基づいて方法をランク付けすることを含む。
【0175】
Y軸6Yは、方法が特定のランクを付けられたデータセットの数を示す。X軸6Xは、ランクを示す。
【0176】
F1スコアは、以下の方程式によって定義される。
【数2】
【0177】
ここで、「適合率」は、所与のデータセット内で発見された異常の総数で割られた、所与のデータセット内で発見された真の異常の数として定義され、技法の「再現率」は、データセット内の真の異常の総数からの、データセット内で発見された真の異常の数として定義される。
【0178】
テストしたデータセットには、既知の数の異常があり(例えば、これらは、ベンチマーク・データセットであり)、その結果、特定の方法の効果が容易に確かめられることが可能である。
【0179】
本発明の実施形態による方法は、従来技術による方法より、平均で高くランク付けするということが明確にわかるであろう。
【0180】
図6Bから図6Dは、他のランク付け評価方法を参照しながら同じ複数のデータセットに対して実行された、上記で識別した方法の相対ランク付けを示す他のグラフを示す。
【0181】
前述のように、複数のデータセットのそれぞれについて、方法61~66は、ランク付け評価方法に基づいて適用され、ランク付けされる。方法が特定のランクを付ける総回数が合計され、図6A図6Dに表示される。図6A図6Dは、したがって、異なる方法に従ってランク付けされたような、各方法の合計されたランクを示す。
【0182】
図6Bでは、モデルの相対ランクが、各モデルの適合率を計算することによって評価され、最高のF1スコアと関連付けられた方法がランク1を割り当てられ、最低のF1スコアと関連付けられた方法がランク6を割り当てられる。他のランクは、残りの方法の間で適宜分散される。「適合率」は、所与のデータセット内で発見された異常の総数で割られた、所与のデータセット内で発見された真の異常の数として定義される。
【0183】
図6Cでは、モデルの相対ランクが、各モデルの再現率を計算することによって評価され、最高のF1スコアと関連付けられた方法がランク1を割り当てられ、最低のF1スコアと関連付けられた方法がランク6を割り当てられる。他のランクは、残りの方法の間で適宜分散される。
【0184】
図6Dでは、モデルの相対ランクが、各モデルの従来のEDスコアを計算することによって評価され、最高のF1スコアと関連付けられた方法がランク1を割り当てられ、最低のF1スコアと関連付けられた方法がランク6を割り当てられる。他のランクは、残りの方法の間で適宜分散される。
【0185】
図6A図6Dは、本発明の実施形態が、外れ値を識別するための従来技術の方法より一貫して高くランク付けされることを明確に示す。例えば、図6Dは、完全に実行することから不完全に実行することまで、従来技術の方法がどれほど外れているかを示し、これは、本発明の1つの実施形態を使用することによって回避される。
【0186】
本発明のいくつかの実施形態において、図3から図5を参照しながら前述されたいずれかの方法を実行するように適合された処理配列を含むシステムが提供されてもよい。
【0187】
例として、図7に示されるように、本発明の実施形態は、コンピュータ・システム70を含むことができ、コンピュータ・システム70は、ネットワーク・システム7の一部を形成してもよい。コンピュータ・システム/サーバ70の構成要素は、例えばプロセッサまたは処理ユニット71を含む1つまたは複数の処理配列、システム・メモリ74、および、システム・メモリ74を含む様々なシステム構成要素を処理ユニット71に連結するバス90を含むことができるがこれらに限定されない。
【0188】
バス90は、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むバス構造のいくつかのタイプのいずれかの1つまたは複数を表す。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
【0189】
コンピュータ・システム/サーバ70は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ70によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。
【0190】
システム・メモリ74は、ランダム・アクセス・メモリ(RAM)75またはキャッシュ・メモリ76あるいはその両方などの揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ70は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、ストレージ・システム77は、(図示されていないが、典型的には「ハード・ドライブ」と呼ばれる)取外し不能な不揮発性磁気媒体を読み書きするために提供されることが可能である。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー(R)・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが提供されることが可能である。このような事例では、それぞれは、1つまたは複数のデータ媒体インターフェースによってバス90に接続されることが可能である。下記でさらに描写され、記述されるように、メモリ74は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0191】
プログラム・モジュール79のセット(少なくとも1つ)を有するプログラム/ユーティリティ78は、例として、また限定ではなく、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ74に格納されてもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはこれらのいくつかの組合せは、ネットワーキング環境の実装形態を含んでもよい。プログラム・モジュール79は、一般に、本明細書で記述されるような本発明の実施形態の機能または方法あるいはその両方を実行する。
【0192】
コンピュータ・システム/サーバ70は、キーボード、ポインティング・デバイス、ディスプレイ85、等などの1つもしくは複数の外部デバイス80、コンピュータ・システム/サーバ70とユーザが対話できる1つもしくは複数のデバイス、または、1つもしくは複数の他のコンピューティング・デバイスとコンピュータ・システム/サーバ70が通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデム、等)、あるいはその組合せとさらに通信することができる。このような通信は、入出力(I/O)インターフェース72を介して発生することができる。さらに、コンピュータ・システム/サーバ70は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ73を介して通信することができる。描写されたように、ネットワーク・アダプタ73は、コンピュータ・システム/サーバ70の他の構成要素と、バス90を介して通信する。図示されていないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ70と共に使用されることが可能であるということが理解されよう。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、等を含むがこれらに限定されない。
【0193】
図8は、時系列データセット805の値を有するデータ要素が外れ値であるかどうかを判定するためのシステム800のブロック図を示す。
【0194】
システム800は、データ要素より時間的に前にある時系列データセット805の第1のデータから予測データを取得するように適合された第1の取得ユニット810を備える。したがって、第1の取得ユニットは、データ要素の値を予測するための予測データを時系列データセットから抽出するように適合されてもよい。
【0195】
システムは、データ要素の値を予測するように適合された予測ユニット820も備える。具体的には、予測ユニットは、予測データを使用して、データ要素の値を予測する。したがって、予測ユニットは、データ要素の予測値を生成する。
【0196】
本発明のいくつかの実施形態において、予測ユニット820は、予測データおよび複数の異なる予測モデルを使用して、データ要素の個々の複数の予測値を予測し、データ要素の値に最も近い予測値を複数の予測値から識別するように適合される。したがって、予測ユニットは、複数の異なる予測モデル/方法を使用して個々の予測値を予測し、システムの将来のユニットと共に使用するための予測値として、データ要素の(実際)値に最も近い予測値を選択することができる。
【0197】
システム800は、第2の取得ユニット830も備える。第2の取得ユニットは、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得するように適合される。
【0198】
本発明のいくつかの実施形態において、第2の取得ユニット830は、時系列データセットの(複数の)履歴誤差値を取得することであって、各履歴誤差値が、データ要素より時間的に前にある時系列データセットの第2のデータ要素の値と予測値との間の差を表すものである、履歴誤差値を取得することと、1つまたは複数の履歴誤差値に基づいて、外れ値であるとみなされるデータ要素の値をデータ要素の予測値に対して定義するための閾値を取得することを行うように適合される。
【0199】
取得した履歴誤差値は、履歴誤差値の格納されたセット809から取得されてもよい(例えば、格納されたセットから選択される)。他の例では、(1つまたは複数の)予測モデルを使用して第2のデータ要素の値を予測し、この予測値および第2のデータ要素の(実際)値を使用して誤差値を計算して、履歴誤差値が計算される。したがって、履歴誤差値は、時系列データセット805内で見つけた第2のデータ要素から計算されてもよい。
【0200】
システム800は、データ要素の(第2の取得ユニット830からの)閾値、(予測ユニット820からの)識別した予測値、および(実際)値に基づいて、データ要素が外れ値であるかどうかを判定するように適合された判定ユニット840も備える。データ要素の(実際)値は、時系列データセット805から直接取得されてもよい。
【0201】
このようにして、システム800は、時系列データセットのデータ要素が外れ値であるかどうかを判定することができる。
【0202】
図9は、本発明の好ましい実施形態による、時系列データセット901のデータ要素が外れ値であるかどうかを識別するための方法/システムのための全体的なアーキテクチャ900またはブロック図を示す。
【0203】
データセット901は、オフライン・データセット(例えば、格納されたデータ)またはリアル・タイム・ストリームであってもよい。
【0204】
方法/システムは、ブロック902において、データセットからデータ要素を取得することができる。方法/システムは、データセットのデータ要素に複数の予測モデル903をさらに適用して、データ要素の個々の複数の予測値を生成することができる。前述のように、予測モデルは、データセット901内の(ブロック902で取得した)データ要素より時間的に前にあるデータセットのデータ要素に適用される。
【0205】
方法/システムは、データ要素または時系列データセットあるいはその両方を最も良くエミュレートする予測モデルを識別するために、ブロック904において、予測モデルをマージすることを含むことができる。これは、データ要素の実際値に最も近いデータ要素の予測値を生成する予測モデルを識別することによって行われてもよい。
【0206】
ブロック905において、データ要素の閾値は、データセット901から生成されてもよい。特定の実施形態において、履歴誤差値がデータセットから取得され、(前述のように)閾値を生成するために使用される。さらなる例では、ブロック905は、時間の特定のウィンドウと関連付けられたデータ要素の履歴誤差値を使用して閾値を生成することを含むことができる。時間の特定のウィンドウは、一時的に配置されても、調査中のデータ要素と関連付けられた時間より前の所定の期間と関連付けられてもよい。
【0207】
ブロック906において、(ステップ902で取得した)データ要素が異常であるかどうかが判定される。これは、データ要素の実際値と、ブロック904の識別した予測モデルから取得可能な予測値との間の差を表す誤差値を計算することによって行われてもよい。この誤差値は、データ要素が外れ値であるか否かを判定するためにブロック905において取得した閾値と比較されてもよい。
【0208】
したがって、図9は、(調査中の)データ要素が異常/外れ値であるか否かが識別される本発明の1つの実施形態のためのブロック図である。後述のように、各ブロックは、1つの実施形態による処理システムのモジュールもしくはユニット、または方法のステップを表すことができる。
【0209】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
【0210】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納することができる有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、ストレージ・クラス・メモリ(SCM)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、一過性の信号であると本質的に解釈されるべきではない。
【0211】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング・デバイス/処理デバイスに、または、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワークあるいはその組合せといった、ネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個々のコンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0212】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語のいずれかの組合せで書かれたソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態において、例えば、プログラマブル・ロジック回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
【0213】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行することができるということが理解されよう。
【0214】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/作用を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または機械を生み出す他のプログラム可能データ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/作用の態様を実行する命令を含む製品を含むべく、特定の手法で機能するようにコンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指図できるコンピュータ可読ストレージ媒体にさらに格納されてもよい。
【0215】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/作用を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップが行われるように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにさらにロードされてもよい。
【0216】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実行するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは、実際には、実質的に並行に実行されてもよく、または、ブロックは、含まれる機能に応じて、時には逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能もしくは作用を実行する、または、特殊用途のハードウェアとコンピュータ命令の組合せを実行する特殊用途のハードウェア・ベースのシステムによって実行することができるということにも留意されたい。
【0217】
本発明の様々な実施形態の記述が例証のために提示されてきたが、網羅的であること、または、開示された実施形態に限定されることを意図するものではない。記述した実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、市場で見られる技術に対する実用的用途もしくは技術的改善を最も良く記述するように、または、本明細書で開示された実施形態を当業者が理解できるように選ばれた。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7
図8
図9