(57)【要約】  本発明は、計算機が受信した入力データの異常を検知するストリームデータの異常検知方法であって、計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を算出する指標管理部と、を有し、前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知し、前記指標管理部が、前記指標を再度算出するか否かを判定し、前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える。
2013038473.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとインターフェースを備えた計算機で、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知方法であって、
前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を管理する指標管理部と、を有し、
前記入力部が、前記インターフェースで受信した入力データを受け付ける第１のステップと、
前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知する第２のステップと、
前記指標管理部が、前記指標を再度算出するか否かを判定する第３のステップと、
前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える第４のステップと、を含み、
前記第３のステップは、
前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出する第５のステップと、
前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出する第６のステップと、
前記入力データの値と前記指標の差分を算出する第７のステップと、
前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行する第８のステップと、
前記新たに再算出された指標を前記指標に置き換える第９のステップと、を含むことを特徴とするストリームデータの異常検知方法。
【請求項２】
請求項１に記載のストリームデータの異常検知方法であって、
前記第５のステップは、
前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知方法。
【請求項３】
請求項１に記載のストリームデータの異常検知方法であって、
前記第６のステップは、
前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、
前記第７のステップは、
前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、
前記第８のステップは、
前記第７のステップで、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知方法。
【請求項４】
請求項１に記載のストリームデータの異常検知方法であって、
前記指標算出部が、前記指標を置き換える際に、過去の指標を蓄積する第１０のステップをさらに含み、
前記第８のステップは、
前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータに対する異常検知方法。
【請求項５】
請求項１に記載のストリームデータの異常検知方法であって、
前記入力部は、
前記入力データを保持するキューを有し、
前記第３のステップは、前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知方法。
【請求項６】
プロセッサとメモリとインターフェースを備えた計算機と、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知装置であって、
前記計算機は、
前記入力データを受信する入力部と、
前記入力データの異常を検知する異常検知部と、
前記入力データの異常を検知するための指標を算出する指標管理部と、を備え、
前記入力部は、
前記インターフェースで受信した入力データを受け付け、
前記異常検知部は、
前記入力部が受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知し、
前記指標管理部は、
前記指標を再度算出するか否かを判定する指標算出判断部と、
前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える指標算出部と、を有し、
前記指標算出判断部は、
前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出し、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出し、前記入力データの値と前記指標の差分を算出し、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行し、前記新たに再算出された指標を前記指標に置き換えることを特徴とするストリームデータの異常検知装置。
【請求項７】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出判断部は、
前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知装置。
【請求項８】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出判断部は、
前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知装置。
【請求項９】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出部は、
過去の指標を蓄積し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータに対する異常検知処理装置。
【請求項１０】
請求項６に記載のストリームデータの異常検知装置であって、
前記入力部は、
前記入力データを保持するキューを有し、
前記指標算出判断部は、
前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータ処理システム、特にストリームデータ処理における異常検知技術および性能保証技術に関する。
【背景技術】
【０００２】
ストリームデータ処理を実行する計算機では、連続的に受信したデータを継続的に処理し、判断、補完、予測、または異常の検知などの所定の処理を行っている。しかし、受信するデータが急激に増加した場合、レイテンシが増大し、ユーザの所望するリアルタイム性を維持できなくなる。【０００３】
そこで、処理時間および精度の異なる処理方式をあらかじめ複数用意しておき、データ量に応じてユーザの要求するレイテンシを満たすように、どの処理方式を使うかを選択することで全体の演算量を削減し、リアルタイム性を維持する技術が知られている（特許文献１参照）。【０００４】
また、異常検知処理の分野においては、ある一定のデータ量のデータが到着する度に、異常検知に用いる指標を再計算する必要があるか否かを、新規に到着したデータと従来用いていた指標との距離の累計から判断し、演算量を削減する技術が知られている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２０６４８６号公報
【特許文献２】特開２００９−１９９２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストリームデータに対する異常検知処理においては、データが増加した場合に、データの到着ごとに検知に用いる指標（例えば主成分分析における主成分）を再算出した場合、莫大な演算量が必要となり、ストリームデータ処理のリアルタイム性が維持できなくなる。【０００７】
ここで、特許文献１では、選択可能な処理方式は事前に演算時間と精度が全て評価されていることが前提であり、異常検知手法のように到着するデータを実際に処理しなければ精度が評価できない場合には適用できない、という問題がある。【０００８】
そこで、特許文献２の方法を特許文献１のリアルタイム維持方法に適用することを検討した場合、指標の再算出が必要か否かを判定するタイミングが、一定数のデータが到着するたびに１回としており、その判定に用いる再算出すべき指標算出用の閾値が固定であるため、再算出を行う回数が多くなりすぎてストリームデータ処理のリアルタイム性を維持できない恐れがある、という問題がある。すなわち、到着したデータ数が閾値となる度に指標の再算出の判定を行うため、ストリームデータのデータ量が急増した場合には、指標の再算出のために計算機のリソースを消費してしまい、この結果、ストリームデータ処理のレイテンシが増大する、という問題があった。【０００９】
本発明の目的は、上記の問題点を解決し、ストリームデータ処理においてリアルタイム性を維持しながら精度の高い異常検知手法が実行可能な異常検知方法、および装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、プロセッサとメモリとインターフェースを備えた計算機で、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知方法であって、前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を管理する指標管理部と、を有し、前記入力部が、前記インターフェースで受信した入力データを受け付ける第１のステップと、前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知する第２のステップと、前記指標管理部が、前記指標を再度算出するか否かを判定する第３のステップと、前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える第４のステップと、を含み、前記第３のステップは、前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出する第５のステップと、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出する第６のステップと、前記入力データの値と前記指標の差分を算出する第７のステップと、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行する第８のステップと、前記新たに再算出された指標を前記指標に置き換える第９のステップと、を含む。
【発明の効果】
【００１１】
本発明によれば、入力データの量と制約時間に応じて異常検知の指標を再算出するタイミングを動的に変更することができる。これにより、ストリームデータ処理系の全体でリアルタイム性を維持しながら、入力データに対する異常検知の精度を兼ね備えたストリームデータ処理技術を提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態を示し、ストリームデータ処理を行う計算機システムの一例を示すブロック図である。
【図２】本発明の第１の実施形態を示し、ストリームデータ処理サーバの一例を示すブロック図である。
【図３】本発明の第１の実施形態を示し、ストリームデータ処理システムの機能要素を示すブロック図である。
【図４】本発明の第１の実施形態を示し、異常検知手法の一例を示す図である。
【図５Ａ】本発明の第１の実施形態を示し、入力データ量ごとの異常検知の処理時間の一例を示す図である。
【図５Ｂ】本発明の第１の実施形態を示し、検知指標を算出するための演算時間の一例を示す図である。
【図５Ｃ】本発明の第１の実施形態を示し、算出回数判定部によって入力データ容量と実行結果取得部の結果から算出された指標算出回数の一例を示す図である。
【図５Ｄ】本発明の第１の実施形態を示し、入力データ量と要求処理時間の一例を示す図である。
【図５Ｅ】本発明の第１の実施形態を示し、入力データ量と要求処理時間の一例を示す図である。
【図６】本発明の第１の実施形態を示し、実行結果取得部によって取得された指標算出後データ係数ｉとデータσのばらつきの一例を示す図である。
【図７】本発明の第１の実施形態を示し、実行結果取得部の実行結果から再算出基準判定部によって指標再算出の基準を算出する処理の一例を示すフローチャートを示す図である。
【図８】本発明の第１の実施形態を示し、再算出基準判定部が判定した再算出の基準（ε＿ｉ）の一例を示す図である。
【図９】本発明の第１の実施形態を示し、指標算定判断部における指標算定の可否の判断および指標算出部による指標算出の処理の一例を示すフローチャートを示す図である。
【図１０Ａ】本発明の第１の実施形態を示し、入力データの一例を示す図である。
【図１０Ｂ】本発明の第１の実施形態を示し、入力データから判定した再算出の基準、判定結果、およびその結果算出された指標の一例を示す図である。
【図１１】本発明の第２の実施形態を示し、ストリームデータ処理を行う計算機システムにおける異常検知処理の一例を示すブロック図である。
【図１２】本発明の第２の実施形態を示し、指標算定判断部における指標算定の可否の判断と過去指標の適用の可否の判断、および指標算出部による指標算出処理の一例を示すフローチャートを示す図である。
【図１３Ａ】本発明の第２の実施形態を示し、指標情報保存部に保存された過去指標の一例を示す図である。
【図１３Ｂ】本発明の第２の実施形態を示し、指標情報保存部に保存された過去指標それぞれの現在のデータからの距離の一例を示す図である。
【図１４】第本発明の２の実施形態を示し、入力データから判定した再算出の基準、判定結果、および算出された検知指標の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図面において、同一の部材には原則として同一の符号を付し、同一符号の繰り返しての説明は省略する。また、本実施形態において、ストリームデータ処理、すなわち入力されるストリームデータに対するクエリ処理を実行する処理サーバを構成する計算機などが実行するプログラムを、「機能」、「手段」、「部」等と呼ぶ場合がある。例えば、実行方式決定プログラムの機能を、「実行方式決定機能」、「実行方式決定手段」、「実行方式決定部」などである。
【００１４】
＜第１実施形態＞
【００１５】
まず、図１および図２を用いて、第１の実施形態に係るストリームデータ処理を実行する計算機システムの基本構成を説明する。
【００１６】
図１は、ストリームデータ処理を行う計算機システムの一例を示すブロック図である。図１に示すように、ストリームデータ処理を実行する計算機システムでは、ネットワーク１０４にストリームデータ処理サーバ１００と計算機１０１、１０２、１０３が接続されている。ストリームデータ処理サーバ１００は、ネットワーク１０４を介して、データソース１０７を出力する計算機１０２からデータ１０８を受け取る。ストリームデータ処理サーバ１００で処理した実行結果１１０を計算機１０３上の結果利用アプリケーション１０９に送信する。
【００１７】
また、計算機１０１上では、ストリームデータ処理を実行するためのクエリをストリームデータ処理サーバ１００に登録するため、クエリ登録コマンド実行インターフェース１０５が実行される。これらの計算機１０１、１０２、１０３の任意の２つ、３つを１つの計算機で構成することもできるし、ストリームデータ処理サーバ１００に統合することもできる。
【００１８】
図２は、ストリームデータ処理サーバ１００の一例を示すブロック図である。図２に示すように、ストリームデータ処理サーバ１００は、記憶部であるメモリ２０２、処理部である中央処理部（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）２０１、ネットワークインタフェース（Ｉｎｔｅｒｆａｃｅ：Ｉ／Ｆ）２０４、記憶装置であるストレージ２０３、およびそれらを結合するバス２０５によって構成される。メモリ２０２上に、ストリームデータ処理の内容を定義するストリームデータ処理システム２０６を格納する。ストリームデータ処理システム２０６は、後で詳述するようにＣＰＵ２０１によって解釈実行可能な実行イメージである。
【００１９】
図２に示すように、ストリームデータ処理サーバ１００を構成する計算機は、インターフェース部であるネットワークＩ／Ｆ２０４を介して外部のネットワーク１０４に接続される。なお、ストリームデータ処理サーバ１００を構成する計算機は１個に限らず複数であっても良いが、ここでは１個の計算機構成を図示説明する。
【００２０】
ネットワーク１０４に接続された計算機１０１上で実行される、クエリ登録コマンド実行インターフェース１０５を介して、ユーザによって定義されたクエリ１０６（図１参照）を、ストリームデータ処理サーバ１００が受取る。ストリームデータ処理サーバ１００のストリームデータ処理システム２０６は、このクエリ１０６の定義に従ってストリームデータ処理を実行可能なクエリグラフを自身の内部に構成する。この後、ネットワーク１０４に接続された計算機１０２上で実行されるデータソース１０７によって送信されるデータ１０８を、ストリームデータ処理サーバ１００が受取る。ストリームデータ処理サーバ１００は、内部のクエリグラフに従ってデータを処理し、実行結果（出力データ）１１０を生成し、計算機１０３上で実行される結果利用アプリケーション１０９に送信する。
【００２１】
ストレージ２０３は、ストリームデータ処理システム２０６の他、一度受取ったクエリ１０６を保存する。ストリームデータ処理システム２０６は、起動時にストレージ２０３からこのクエリ１０６の定義をロードし、クエリグラフを構成することも可能である。
【００２２】
ここで説明した本実施形態のストリームデータ処理サーバの構成は一例であり、計算機は１個である必要はなく、複数の計算機で構成しても良いし、計算機の処理部であるＣＰＵ２０１は、同一計算機上の二つのプロセッサで構成しても良いし、更にその二つのプロセッサは一つのマルチコアＣＰＵにおける二つの計算コアであっても構わない。本明細書において、サーバは、少なくとも処理部と記憶部とインターフェース部を備えておれば、どのような構成を取っても良い。
【００２３】
図３は、本発明の実施形態を示し、ストリームデータ処理システムの機能要素を示すブロック図である。
【００２４】
図３は、第１の実施形態に係るストリームデータ処理システムの異常検知方法を実行するソフトウェアの機能ブロック構成を示す図である。なお、同図において、太線のブロックは、ストリームデータ処理サーバ１００の処理部であるＣＰＵ２０１で実行される各種のソフトウェアの機能を示す。また、図中細線のブロックはソフトウェアの実行の際に、メモリ２０２上等に保持される各種のデータの保存領域を模式的に示している。
【００２５】
図３において、ストリームデータ処理システム２０６は、入力データ１０８を受信する入力データ受信部３０１、異常検知の内容が記載されたクエリ１０６を受信するクエリ受付・解析部３０７、入力データ１０８に対してクエリ１０６に記載された異常検知を行う異常検知部３０２、異常検知の実行結果１１０をＩ／Ｆ２０４からネットワーク１０４へ出力する出力データ送信部３０４を備える。
【００２６】
なお、本明細書において、便宜上、入力データ受信部３０１と出力データ送信部３０４を総称してインターフェース部と呼ぶ場合があるが、このインターフェース部は、図２のインターフェース部と同一物としても良いが、同一のものである必要はなく、好適にはストリームデータ処理サーバ１００上で実行されるストリームデータ処理システム２０６自身の機能的なインターフェース部とすることができる。
【００２７】
ここで、異常検知部３０２は入力データ１０８の異常検知に用いる検知指標３０３を保持する。さらに、キュー３０５は、入力データ受信部３０１で入力されたストリームデータ処理システム２０６の未処理のデータを保持する。
【００２８】
加えて、ストリームデータ処理システム２０６は、入力データ受信部３０１で受信した入力データ１０８の量と受信時刻及び要求処理時間、キュー３０５に蓄積された未処理のデータ量や、出力データ送信部３０４が実行結果１１０を送信した時刻を取得する実行結果取得部３０６を備え、検知指標３０３の算出を管理する指標算出管理部３１０を備える。なお、キュー３０５に保持される未処理のデータ量は、キュー３０５に保持されている入力データ１０８の容量や、入力データ１０８の数として求めることができる。
【００２９】
ここで、指標算出管理部３１０は、実行結果取得部３０６から入力データ１０８の量ごとの異常検知部３０２の処理時間と、検知指標３０３の算出に必要な処理時間を保持する処理時間情報３１６と、検知指標３０３の算出後に到着したデータの距離の統計情報である乖離度３１７を保存する指標情報保存部３１５を備える。そして、指標算出管理部３１０は、現在のキュー３０５の容量と処理時間情報３１６から検知指標３０３の算出可能回数を判定する算出回数判定部３１１を備える。指標算出管理部３１０は、さらに、キュー３０５の容量と算出可能回数、乖離度３１７から検知指標３０３の再算出を行う基準を判定する再算出基準判定部３１２と、再算出の基準に従い入力データ１０８と現在の検知指標３０３の距離を測定し、再算出をするか否かを判定する指標算出判断部３１３と、指標算出判断部３１３の判定結果に従って検知指標３０３を算出する指標算出部３１４と、を備える。
【００３０】
図２に示したＣＰＵ２０１は、ストリームデータ処理システム２０６を構成する各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、ＣＰＵ２０１は、異常検知プログラムに従って処理を実行することで異常検知部３０２として機能する。他のプログラムについても同様である。さらに、ＣＰＵ２０１は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３１】
ストリームデータ処理システム２０６の各機能を実現するプログラム、テーブル等の情報は、ストレージ２０３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００３２】
次に図４を用いて、本実施形態のストリームデータ処理システム２０６の異常検知部３０２における異常検知手法の一例を説明する。図４では、複数の入力データ１０８の値をｘ軸とｙ軸の２軸の平面上の点４０１〜４０４として表示している。この中で斜線の点（例えば点４０１）が検知指標３０３の算出に用いた入力データ１０８の値を示す点である。黒い点４０２は全ての斜線の点の平均値であり、この黒い点４０２が複数の入力データ１０８から算出した検知指標３０３となる。
【００３３】
そして、点４０３、４０４が、検知指標３０３を算出した後に、ストリームデータ処理サーバ１００へ新規に到着した入力データ１０８である。このとき、ストリームデータ処理システム２０６は、新規の入力データである点４０３は、検知指標３０３である点４０２とのユークリッド距離が短いため、異常と判定しない。つまり、入力データの点４０３と検知指標の点４０２のユークリッド距離が、所定の異常判定閾値以下である場合、ストリームデータ処理システム２０６の異常検知部は正常な入力データであると判定する。
【００３４】
一方、新規の入力データである点４０４は、検知指標である点４０２とのユークリッド距離が長いため、ストリームデータ処理システム２０６の異常検知部３０２は異常と判定する。つまり、新たな入力データの点４０４と、検知指標の点４０２のユークリッド距離が、所定の異常判定閾値を超える場合、ストリームデータ処理システム２０６の異常検知部３０２は点４０４の新たな入力データ１０８の値が異常であると判定する。
【００３５】
ここで、入力データ１０８の異常を検知するための検知指標３０３を算出する処理は、予め定められた過去Ｎ点（例えばＮ＝１０）の入力データ１０８の平均値を算出する処理となる。このように、異常検知部３０２は、検知指標３０３と入力データ１０８の値の距離が異常判定閾値を超えていれば、入力データ１０８が異常であることを検知する。異常検知部３０２は、入力データ１０８の異常を検知すると、出力データ送信部３０４に入力データ１０８の異常検知を示す実行結果１１０を出力する。
【００３６】
なお、本実施形態では、異常検知部３０２が、入力データ１０８と検知指標３０３のユークリッド距離と、所定の異常判定閾値を比較して入力データ１０８の異常を検知する例を示すが、異常検知部３０２は、入力データ１０８の値と検知指標３０３の差が所定の条件を満たしたときに入力データ１０８の異常を検知するものであればよく、図４に示す異常検知手法に限定されるものではない。
【００３７】
また、上記では、入力データ１０８の異常を検知すると実行結果１１０を外部の計算機へ送信する例を示したが、ストリームデータ処理サーバ１００に出力装置を備える場合では、当該出力装置に実行結果を出力するようにしても良い。
【００３８】
続いて、図５Ａ〜図５Ｅを用いて本実施形態のストリームデータ処理における、現在のキュー３０５の容量と処理時間情報３１６から指標の算出可能回数を判定する算出回数判定部３１１の処理を説明する。
【００３９】
図５Ｅは、指標算出管理部３１０の指標情報保存部３１５の処理時間情報３１６の一例を示すブロック図である。処理時間情報３１６は、異常検知処理の時間を保持する異常検知処理時間５００と、検知指標３０３の算出に必要な時間を保持する指標算出処理時間５３０と、データ量と処理時間と検知指標３０３の算出回数の関係を保持する処理時間テーブル５４０と、処理時間の要求値を保持する要求情報５５０と、を含む。
【００４０】
図５Ａは単位時間当たりの入力データ１０８のデータ量ごとに異常検知部３０２の処理に要する時間５００の一例である。異常検知処理時間５００は、単位時間当たりの入力データ量５０１と、異常検知部３０２が入力データ量を処理するのに要する処理時間５０２によって１つのエントリが構成される。異常検知処理時間５００は、データ量ごとにエントリ５１１〜５１５のようにデータ量５０１と処理時間５０２がそれぞれ格納されている。
【００４１】
異常検知処理時間５００は、異常検知部３０２が、入力データ１０８を処理した数５０１と異常検知処理に要した時間を処理時間５０２に格納する。あるいは、データ量５０１毎に初期値として所定の値を処理時間５０２に設定してもよいし、データ量５０１毎に処理時間５０２を設定してもよい。
【００４２】
なお、入力データ１０８の処理時間は、入力データ受信部３０１で受信した時刻から異常検知部３０２で処理が終了した時刻の差分である。
【００４３】
図５Ｂは検知指標３０３の再算出に必要な指標算出処理時間５３０の一例である。指標算出処理時間５３０は、指標５２０ごとに検知指標３０３を再度算出するのに必要な演算時間５２１が格納されている。図示では、例えば指標＃５２０が「ａ」の場合、演算時間が３ｍｓｅｃである。指標算出処理時間５３０は、指標＃５２０と演算時間５２１は１つであってもよいし、２つ以上であってもよい。指標算出処理時間５３０は、指標算出部３１４が、指標＃５２０に対応する検知指標３０３を実際に再算出したときの時間が演算時間５２１に格納される。あるいは、指標＃５２０毎に初期値として所定の値を演算時間５２１に設定してもよい。あるいは、ストリームデータ処理サーバ１００の計算機リソースが動的に変更可能な場合は、計算機リソース量に応じて、検知指標３０３の再算出に要する時間の予測値を演算時間５２１に格納しても良い。
【００４４】
図５Ｃは、異常検知処理時間５００に指標＃５２０の検知指標３０３（例えば、「ａ」）を算出したときの全体の処理時間を、入力データ量５０１と指標＃５２０の算出回数５４１〜５４６毎に算出した処理時間テーブル５４０である。図５Ｃの処理時間テーブル５４０では、算出回数＝０〜５のときの検知指標３０３の算出時間と、異常検知の処理時間５０２の和が、全体の処理時間５４１〜５４６として格納されている例を示した。なお、算出回０〜５は、入力データ１０８の量やストリームデータ処理サーバ１００の性能などに応じて適宜設定される値で、０〜５に限定されるものではない。
【００４５】
図５Ｃにおいて、算出回数＝０のときの処理時間５４１は、検知指標３０３の算出を行わない場合であり、この場合は、図５Ａに示した異常検知処理に要した処理時間５０２となる。算出回数＝１のときの処理時間５４２は、検知指標３０３（「ａ」）の算出を１回（３ｍｓｅｃ）行った場合であり、この場合は、図５Ａに示した異常検知処理に要した処理時間５０２に、検知指標３０３の算出の演算時間５２１＝３ｍｓｅｃを加算した値となる。処理時間５４３〜５４６も同様であり、処理時間５４６では、算出回数＝５のときで、検知指標３０３（「ａ」）の算出を５回行った場合であり、この場合は、図５Ａに示した異常検知処理に要した処理時間５０２に、検知指標３０３の算出の演算時間５２１＝３ｍｓｅｃ×５＝１５ｍｓｅｃを加算した値となる。
【００４６】
図５Ｄは、異常検知と検知指標３０３の再算出を含めたストリームデータ処理の要求処理時間と、データ量の関係を設定する要求情報５５０の一例である。要求情報５５０は、入力データ１０８の量を格納するデータ量５５１と、データ量を処理する制限時間として設定された要求処理時間５５２から構成される。本実施形態では、データ量を所定値（例えば、１０）とし、要求処理時間５５２を入力データ受信部３０１で計算機１０１または１０２から受け付ける場合を示す。要求処理時間５５２は、計算機１０１等から入力することができる。
【００４７】
図示の例では、入力データ１０８の数が１０のときに、異常検知処理と検知指標３０３の再算出を、要求処理時間５５２に設定された８msec以内で完了することを示す。なお、ストリームデータ処理システム２０６は、実際に処理するデータ量とデータ量５５１の比から、実際のデータ量に応じた要求処理時間を演算する。例えば、入力データ１０８の量が２０であれば、要求処理時間５５２＝８×２＝１６msecとする。なお、要求処理時間５５２を外部の計算機１０１等から入力する例を示したが、予め設定した制約時間を要求処理時間５５２としてもよい。あるいは、ストリームデータ処理サーバ１００の計算機リソースを動的に変更可能な場合には、計算機リソースの量に応じて要求処理時間を動的に変更するようにしても良い。
【００４８】
上記図５Ａ〜図５Ｄの各情報から、ストリームデータ処理システム２０６の算出回数判定部３１１は、入力データ１０８の量と要求処理時間５５２から検知指標３０３の算出回数を判定する。例えば入力データ１０８の量が１０、要求処理時間５５２が８msecの場合、算出回数判定部３１１は処理時間テーブル５４０を参照し、データ量５０１＝１０の行で全体の処理時間５４１〜５４６が８msec以下となる最大の回数を取得する。図５Ｃの処理時間テーブル５４０の例では、データ量５０１＝１０で処理時間が８msec以下の最大値は処理時間５４３＝７msecの２回であるので算出回数判定部３１１は検知指標３０３の最大の算出回数ｍmaxを２回と判定する。
【００４９】
続いて、図６〜図８を用いて入力データ１０８の量、検知指標３０３の最大の算出回数ｍmax、乖離度３１７から、検知指標３０３の再算出を決定するための基準を判定する再算出基準判定部３１２の処理を説明する。
【００５０】
図６は、検知指標３０３の算出後に到着したデータとの距離の統計情報である乖離度３１７の一例である。乖離度３１７は、検知指標３０３の算出後に受信したデータ数ｉ６０１と、検知指標３０３であるデータの平均値から到着したデータへのベクトルの値を合計したベクトルの大きさの分散σ６０２から各エントリ６１１〜６１５が構成される。図６の例では、全てのデータ数ｉについてエントリを作成せずに、データ数ｉが予め設定した値である５以上（６１５）であれば、ひとつのエントリにまとめてもよい。なお、乖離度３１７は、再算出基準判定部３１２が算出する。
【００５１】
続いて図７は、再算出基準判定部３１２が再算出の基準を導出するフローチャートである。まず、再算出基準判定部３１２は入力データ数Ｎと最大算出回数ｍmaxを算出回数判定部３１１から受け付ける（７０１）。最大算出回数ｍmaxは上述のように、算出回数判定部３１１が、要求処理時間５５２で処理時間テーブル５４０から検索した検知指標３０３の最大の算出回数である。また、入力データ数Ｎは、キュー３０５に格納された入力データ１０８で、異常検知部３０２の処理が未処理の入力データ１０８の数または量（バイト数名等）である。
【００５２】
続いて、再算出基準判定部３１２は、ステップ７０２〜７０４の処理を、乖離度３１７のデータ数ｉ（６０１）まで繰り返して閾値ε＿ｉを算出する。つまり、乖離度３１７のエントリの数だけ処理を繰り返す。
【００５３】
ステップ７０３では、再算出基準判定部３１２が、次式の関係を元に、入力データ数Ｎと最大算出回数ｍmaxから、検知指標算出後のデータ数ｉ毎に乖離度３１７の分散σ（６１１〜６１５）に乗じる定数を算出する（７０３）。この定数は[Ｎ/（i×ｍmax）]といった単純な式によって導出してもよいし、それ以外の式であってもよい。
【００５４】
そして、再算出基準判定部３１２は次の式（１）によりデータ数ｉ毎の閾値ε＿ｉを算出する。
【００５５】
ε＿ｉ＝（[Ｎ／（ｉ×ｍmax）]）×σ    ………（１）
上記の手順により、乖離度３１７の全てのデータ数ｉ毎に、検知指標３０３を再算出する基準となる閾値ε＿ｉを算出する。
【００５６】
図７のフローチャートは、再算出基準判定部３１２が乖離度３１７の全てのエントリについて上記（１）式の演算が終了するまで繰り返される。
【００５７】
図８は、図７の処理によって算出された再算出の基準３１９の一例である。再算出の基準３１９は、乖離度３１７と同様のデータ数ｉ８１０と、データ数ｉ毎の閾値ε＿ｉ８２０からひとつのエントリが構成される。図８の例では、Ｎ＝１０、ｍmax＝２の場合に［Ｎ／（ｉ×ｍmax）］の式で基準を導出した例である。再算出基準判定部３１２は、検知指標算出後のデータ数ｉごとに再算出の基準である閾値ε＿ｉを、エントリ８０１〜８０５のように算出した。なお、再算出の基準３１９は、メモリ２０２に保持しておく。
【００５８】
図９は本実施形態のストリームデータ処理システム２０６の指標算出判断部３１３および指標算出部３１４による、検知指標３０３の再算出の判定および再算出の処理の一例を示すフローチャートである。
【００５９】
最初に、指標算出判断部３１３が、Ｎ個の入力データ１０８を受け付ける（９０１）。続いて、指標算出判断部３１３は、ステップ９０２で、前回の検知指標３０３の算出後に受け付けたデータ量ｉを０、検知指標３０３の再算出回数ｍを０と設定し、全てのデータ通番Ｋ＝１〜Ｎについて以下のステップ９０３〜９０７を繰り返す（９０２、９０８）。
【００６０】
まず、指標算出判断部３１３は、データ通番Ｋのデータを加えてから、現在使用中の検知指標３０３（γ）と、前回の検知指標γを算出後に受け付けたデータ全ての距離｜Σｖ｜を算出する（９０３）。ここで述べた距離とは、検知指標３０３としている入力データ１０８の平均値と、個々のデータを結ぶベクトルを全てのデータについて算出し、全てのベクトル値を合算した値を長さとしてもよいし、他の方法で算出してもよい。
【００６１】
ステップ９０４で指標算出判断部３１３は、算出された全てのデータの距離｜Σｖ｜が再算出の基準となる閾値ε_iより大きいか否かを判定する。全てのデータの距離｜Σｖ｜が閾値ε_iよりも大きい場合にはステップ９０６へ進む。一方、全てのデータの距離｜Σｖ｜が閾値ε_i以下の場合にはステップ９０５へ進む。
【００６２】
算出されたデータの距離｜Σｖ｜が閾値ε_iより大きいステップ９０６では、指標算出判断部３１３が、検知指標３０３の再算出後のデータ量ｉに１を加算して、次のデータの処理に移る。
【００６３】
一方、算出された｜Σｖ｜が閾値ε＿ｉ以下の場合は、指標算出判断部３１３が、再算出回数ｍが最大算出回数ｍmaxより大きいか否かを判定する（９０５）。再算出回数ｍが最大算出回数ｍmaxより大きい場合、指標算出判断部３１３はステップ９０６で検知指標３０３の再算出からのデータ量ｉに１を加算してから次のデータの処理に移る。
【００６４】
一方、再算出回数ｍが最大算出回数ｍmax以下の場合、指標算出判断部３１３はステップ９０７で指標算出部３１４に検知指標３０３の再算出を指令する。指標算出部３１４は新たな検知指標３０３（γ）を再算出し、再算出回数ｍに１を加え、再算出からのデータ量ｉを０として次のデータの処理に進む（９０６）。指標算出判断部３１３は、Ｎ個の全てのデータについて上記処理が終わると処理を終了する（９０９）。
【００６５】
続いて、図１０Ａおよび図１０Ｂを用いて入力データ１０８に対する検知指標３０３の再算出判定結果と、出力される検知指標３０３の一例を説明する。図１０Ａ，図１０Ｂでは、データ数Ｎは１０、最大算出回数ｍmaxは２とし、再算出の基準である閾値ε＿ｉは図８の値を与えられていた例を示す。
【００６６】
図１０Ａは入力データ１０８の一例である。この例において、入力データ１０８は、データ数ｉ１００１と、ｘ軸上の値１００２およびｙ軸上の値１００３からひとつのエントリが構成され、エントリ１０１０〜１０１９の１０個のデータで入力データ１０８が構成された例である。
【００６７】
図１０Ｂは入力データ１０８に対して指標算出判断部３１３および指標算出部３１４によって図９の処理が行われた結果、出力された再算出の判定結果および検知指標３０３とその途中結果である。
【００６８】
図１０Ｂは、距離｜Σｖ｜を算出するためのデータの連番＃１１００と、当該データ１０８のｘ軸上での検知指標３０３との距離１１０１、ｙ軸上での検知指標３０３との距離１１０２、検知指標３０３の再算出後のデータ全てのｘ軸上での検知指標との距離の合計１１０３、ｙ軸上での検知指標との距離の合計１１０４、算出された距離｜Σｖ｜１１０５、再算出の基準となる閾値ε＿ｉおよび最大算出回数ｍmaxにより判定された再算出判定結果１１０６、再算出された検知指標のｘ軸上の値１１０７、同じく検知指標のｙ軸上の値１１０８で構成される。図１０Ｂでは、図１０Ａのエントリ１０１０〜１０１９に対応してエントリ１１１０〜１１１９の１０個の結果が出力される。
【００６９】
例えば、図１０Ａに示した入力データのエントリ１０１０（ｉ＝１、ｘ＝２．８、ｙ＝４．９）に対しては、その時点の検知指標３０３の値は、図１０Ｂのエントリ１１１０でｘ軸の値１１０７がｘ＝３．０で、ｙ軸の値１１０８がｙ＝５．０である。したがって、図１０Ａのエントリ１０１０の入力データ１０８と、図１０Ｂのエントリ１１１０の検知指標３０３のｘ軸上の距離１１０１、ｙ軸上の距離１１０２はそれぞれ−０．２、−０．１となる。そして、再算出後直後であるため、再算出後のデータ全てのｘ軸上の指標との距離の合計１１０３、ｙ軸上の指標との距離の合計１１０４はそのままそれぞれ−０．２、−０．１となる。その結果、距離｜Σｖ｜１１０５は０．２２となる。
【００７０】
この場合、再算出後の１番目のデータであるため、Ｋ＝１となり、図８のエントリ８０１で閾値ε＿１は１０．０であるため、再算出の必要はないと判定され、次のデータに対しても指標の値はｘ＝３．０、ｙ＝５．０をそのまま使用する。図１０Ａにおいて、続いての入力データであるエントリ１０１１は、ｘ＝０．２、ｙ＝１．１であるため、図１０Ｂのエントリ１１１１で示すように、ｘ軸上の検知指標との距離１１０１、ｙ軸上の検知指標との距離１１０２はそれぞれ−２．８、−３．９となる。このエントリ１１１１の値を前のエントリ１１１０のデータ分と加算し、再算出後のデータ全てのｘ軸上の指標との距離の合計１１０３、ｙ軸上の指標との距離の合計１１０４は、それぞれ−３．０、−４．０となる。この結果、エントリ１１１１の距離｜Σｖ｜１１０５は５．００となる。これは、ε＿２である図８のエントリ８０２の閾値ε＿２＝４．５より大きいため、指標算出判断部３１３は、検知指標３０３の再算出の必要があると判定する。この結果、指標算出部３１４が、ｘ＝２．７、ｙ＝４．６を新たな検知指標３０３として算出し、次のデータを処理する。このように入力データ１０８の処理を続け、図１０Ａの９番目のデータであるエントリ１０１８を処理するとき、図１０Ｂのエントリ１１１８における距離｜Σｖ｜１１０５は１．０２となる。これは図８においてε＿５であるエントリ８０５の閾値０．５よりも大きくなっているが、２番目のデータの処理結果１１１１および４番目のデータの処理結果１１１３にて既に２回の検知指標３０３の再算出を行っているため、これ以上の算出ができないと判定される。
【００７１】
上記の手順で得られた検知指標３０３を用いて、異常検知部３０２は入力データ１０８に対して異常検知を行う。
【００７２】
以上詳述した、第１の実施形態のストリームデータ処理システムによれば、ストリームデータ処理サーバ１００が受信する入力データ１０８のデータ量を元に、検知指標３０３の再算出回数および再算出基準を判定して、適切なタイミングで異常検知の指標を再算出することができ、ストリームデータ処理システム２０６のリアルタイム性を確保しながら、高い精度での異常検知が可能となる。
【００７３】
＜実施形態２＞
【００７４】
続いて、第２の実施形態として、検知指標３０３の再算出ができない場合に、過去の指標を利用するストリームデータ処理システムを説明する。なお、本第２実施形態の説明に当たり、前記第１の実施形態の説明と同一の構成または処理については、説明を省略する。本第２実施形態のストリームデータ処理サーバ１００が利用される計算機環境の構成、及びストリームデータ処理サーバの構成は図１、図２のものと同じであるのでここでは説明を省略することとする。
【００７５】
図１１は、第２の実施形態に係るストリームデータ処理システム２０６の異常検知処理を実行するソフトウェアの機能ブロック構成を示す図である。図１１において３０１〜３０７および３１１、３１２、３１４、３１６、３１７は、前記第１実施形態の図３の説明と同一であるため、ここでは説明を省略する。第２の実施形態では、これらに加えて、指標情報保存部３１５が過去に算出した検知指標３０３を過去指標３１８として保持している。そして、指標算出判断部３１３は第１の実施形態で述べた機能に加えて、検知指標の最大再算出回数を超えて再算出が必要と判断された場合、過去指標３１８についても距離｜Σｖ｜を評価し、現在使用中の検知指標３０３よりも距離｜Σｖ｜が小さくなる指標が見つかった場合、その指標を検知指標３０３として採用する機能を有する。
【００７６】
続いて、図１２は本実施形態のストリームデータ処理システム２０６の指標算出判断部３１３および指標算出部３１４による、検知指標の再算出の判定および再算出の処理を示すフローチャートである。図１２において、ステップ９０１〜９０４、９０６〜９０９は前記第１実施形態の図９での説明と同一であるため、説明を省略する。
【００７７】
ステップ９０５において、再算出回数ｍが最大算出回数ｍmaxより大きい場合、指標算出判断部３１３はステップ９１０で、過去指標３１８から過去の指標を取得する。そして、指標算出判断部３１３は、過去指標３１８のそれぞれについて入力データ１０８との距離｜Σｖ｜を評価する。指標算出判断部３１３は、評価した中に現在の検知指標３０３の距離｜Σｖ｜よりも小さい値（過去指標γｐ）が存在するか否かを判定する。指標算出判断部３１３は、現在の検知指標３０３の距離｜Σｖ｜よりも小さい値が無かった場合（９１０Ｎ）、再算出からのデータ量ｉに１を加算して（９０６）次のデータの処理に移る。
【００７８】
一方、指標算出判断部３１３は、現在の検知指標３０３の距離｜Σｖ｜よりも小さい過去指標γｐが有った場合（９１０Ｙ）、検知指標３０３をこの過去指標γｐに変更し、再算出からのデータ量ｉを０として次のデータの処理に進む（９１１）。
【００７９】
図１３Ａは過去指標３１８の一例である。過去指標３１８は、検知指標の識別子を格納する指標＃３１８１と、検知指標のｘ軸の値であるＸave３１８２と、検知指標のｙ軸の値であるＹave３１８３からひとつのエントリが構成される。図示の例では、エントリ１３０１〜１３０６が記録されている。
【００８０】
ここで、前記第１実施形態に示した図１０Ａが入力データ１０８として与えられており、データ数Ｎは１０、最大算出回数ｍmaxは２とし、再算出の基準ε＿ｉは前記第１実施形態の図８のものを与えられたとする。前記第１実施形態と同様の条件で指標算出判断部３１３および指標算出部３１４によって図１２の処理が行われた結果、出力された再算出の判定結果および検知指標３０３とその途中結果が図１４に示すエントリ１１１０〜１１１７および１１２０、１１２１である。図１４は、図１０Ｂと同様に、再算出の判定結果および検知指標３０３とその途中結果である。
【００８１】
図１４において、８番目までのエントリ１１１０〜１１１７は図１０Ｂの説明と同一であるため省略する。図１０Ａにおいて、９番目のデータであるエントリ１０１８を処理するとき、図１４において、対応するエントリ１１２０の距離｜Σｖ｜１１０５は１．０２となる。この｜Σｖ｜は図８に示した閾値ε＿５であるエントリ８０５の０．５よりも大きくなっている。ここで、検知指標３０３の再算出は、図１４において、２番目のデータの処理結果であるエントリ１１１１および４番目のデータの処理結果であるエントリ１１１３にて２回の再算出を行っているため、これ以上の再算出はできないと判定される。
【００８２】
そこで、過去指標３１８のエントリ１３０１〜１３０６に対してそれぞれ距離｜Σｖ｜を算出する処理を行った結果、図１３Ｂのエントリ１３１１〜１３１６が得られる。図１３Ｂは、図１３Ａの各エントリ１３０１〜１３０６の過去指標３１８で、入力データ１０８との距離｜Σｖ｜３１８４を求めたもので、エントリ１３１１〜１３１６が、図１３Ａのエントリ１３０１〜１３０６に対応する。このとき、図１３Ａのエントリ１３０４の過去指標（４）に対しては現在の指標よりも距離｜Σｖ｜が１．０２（図１４のエントリ１１２０）からエントリ１３１４の０．５８と小さくなったため、過去指標３１８の値であるｘ＝３．０、ｙ＝５．０を検知指標３０３として置き換える（１１２０）。
【００８３】
以上詳述した、第２の実施形態のストリームデータ処理システム２０６によれば、ストリームデータ処理サーバ１００が受信するデータ量を元に、検知指標の指標再算出回数および再算出基準を判定して、適切なタイミングで指標を再算出および過去指標の利用をすることができ、リアルタイム性を確保しながら、より高い精度での異常検知が可能となる。
【００８４】
上述の通り本発明の種々の実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではなく、様々な変形例が含まれうることは言うまでもない。上述した実施形態は本発明のより良い理解のために説明したものであり、本発明はそれに限定されるもので無い。また、上述した各実施形態の構成、機能、処理等は、それらの一部又は全部を主体として説明したソフトウェア構成のみならず、専用のハードウェア構成、あるいはそれらを共用した構成として実現できることは言うまでもない。
【産業上の利用可能性】
【００８５】
本発明は、レイテンシの保証を目的としたストリームデータ処理システム、ストリームデータ処理装置、ストリームデータ処理方法に適用することができる。
【図１】
2013038473.tif 000003
【図２】
2013038473.tif 000004
【図３】
2013038473.tif 000005
【図４】
2013038473.tif 000006
【図５Ａ】
2013038473.tif 000007
【図５Ｂ】
2013038473.tif 000008
【図５Ｃ】
2013038473.tif 000009
【図５Ｄ】
2013038473.tif 000010
【図５Ｅ】
2013038473.tif 000011
【図６】
2013038473.tif 000012
【図７】
2013038473.tif 000013
【図８】
2013038473.tif 000014
【図９】
2013038473.tif 000015
【図１０Ａ】
2013038473.tif 000016
【図１０Ｂ】
2013038473.tif 000017
【図１１】
2013038473.tif 000018
【図１２】
2013038473.tif 000019
【図１３Ａ】
2013038473.tif 000020
【図１３Ｂ】
2013038473.tif 000021
【図１４】
2013038473.tif 000022
【手続補正書】
【提出日】平成26年6月19日(2014.6.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサとメモリとインターフェースを備えた計算機で、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知方法であって、
前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を管理する指標管理部と、を有し、
前記入力部が、前記インターフェースで受信した入力データを受け付ける第１のステップと、
前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知する第２のステップと、
前記指標管理部が、前記指標を再度算出するか否かを判定する第３のステップと、
前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える第４のステップと、を含み、
前記第３のステップは、
前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出する第５のステップと、
前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出する第６のステップと、
前記入力データの値と前記指標の差分を算出する第７のステップと、
前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行する第８のステップと、
前記新たに再算出された指標を前記指標に置き換える第９のステップと、を含むことを特徴とするストリームデータの異常検知方法。
【請求項２】
請求項１に記載のストリームデータの異常検知方法であって、
前記第５のステップは、
前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知方法。
【請求項３】
請求項１に記載のストリームデータの異常検知方法であって、
前記第６のステップは、
前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、
前記第７のステップは、
前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、
前記第８のステップは、
前記第７のステップで、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知方法。
【請求項４】
請求項１に記載のストリームデータの異常検知方法であって、
前記指標管理部が、前記指標を置き換える際に、過去の指標を蓄積する第１０のステップをさらに含み、
前記第８のステップは、
前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータの異常検知方法。
【請求項５】
請求項１に記載のストリームデータの異常検知方法であって、
前記入力部は、
前記入力データを保持するキューを有し、
前記第３のステップは、前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知方法。
【請求項６】
プロセッサとメモリとインターフェースを備えた計算機と、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知装置であって、
前記計算機は、
前記入力データを受信する入力部と、
前記入力データの異常を検知する異常検知部と、
前記入力データの異常を検知するための指標を算出する指標管理部と、を備え、
前記入力部は、
前記インターフェースで受信した入力データを受け付け、
前記異常検知部は、
前記入力部が受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知し、
前記指標管理部は、
前記指標を再度算出するか否かを判定する指標算出判断部と、
前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える指標算出部と、を有し、
前記指標算出判断部は、
前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出し、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出し、前記入力データの値と前記指標の差分を算出し、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行し、前記新たに再算出された指標を前記指標に置き換えることを特徴とするストリームデータの異常検知装置。
【請求項７】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出判断部は、
前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知装置。
【請求項８】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出判断部は、
前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知装置。
【請求項９】
請求項６に記載のストリームデータの異常検知装置であって、
前記指標算出部は、
過去の指標を蓄積し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータの異常検知装置。
【請求項１０】
請求項６に記載のストリームデータの異常検知装置であって、
前記入力部は、
前記入力データを保持するキューを有し、
前記指標算出判断部は、
前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知装置。
【国際調査報告】
2013038473.tif 000023
2013038473.tif 000024