(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-02
(54)【発明の名称】時系列データに対するニューラルネットワークベースの異常検出
(51)【国際特許分類】
G06N 3/02 20060101AFI20240326BHJP
【FI】
G06N3/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562856
(86)(22)【出願日】2022-01-25
(85)【翻訳文提出日】2023-12-06
(86)【国際出願番号】 US2022013768
(87)【国際公開番号】W WO2022220902
(87)【国際公開日】2022-10-20
(32)【優先日】2021-04-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】アルピット,デヴァンシュ
(72)【発明者】
【氏名】ワン,フゥアン
(72)【発明者】
【氏名】シオン,ツァイミン
(57)【要約】
システムは、ニューラルネットワークを使用して、時系列データの異常を検出する。システムは、時系列の時間ウィンドウからのデータを使用して、固定された数の反復で、ニューラルネットワークを訓練する。時系列データにおける異常を識別するために、システムは、固定の反復回数の終わりに損失値を使用する。時間ウィンドウに対して、システムは、ニューラルネットワークをランダム値に初期化し、時間ウィンドウのデータを使用して、固定の反復回数でニューラルネットワークを訓練する。固定の反復回数の後に、システムは、様々なデータポイントに対して損失値を閾値と比較する。閾値を超える損失値を有するデータポイントは、異常データポイントとして識別される
【特許請求の範囲】
【請求項1】
時系列データの異常を識別するためのコンピュータ実装方法であって、
データ値のシーケンスを含む時系列を受信することであって、各データ値は、時間値に関連付けられている、受信することと、
時間値の範囲を表す時間ウィンドウを識別することと、
前記時間ウィンドウにおける前記時系列データの異常を識別することであって、
入力時間値を受信し、前記入力時間値に対する前記時系列のデータ値を予測するように構成されているニューラルネットワークを初期化することと、
所定の反復回数で、前記ニューラルネットワークを訓練することであって、
前記時間ウィンドウの1つ以上の時間値に対して、
前記ニューラルネットワークを実行して、前記時間値に対するデータ値を予測することと、
前記予測されたデータ値に基づいて損失値を決定することと、を行うことと、
前記損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、を含む、訓練することと、
前記所定の反復回数の後に、前記時間ウィンドウ内の異常を決定することであって、
閾値を超える時間値に対応する損失値に応答して、対応する前記データ値を異常として識別することを含む、決定することと、を含む、識別することと、
異常として識別された1つ以上のデータ値を説明する情報を記憶することと、を含む、コンピュータ実装方法。
【請求項2】
前記時間異常は、ポイント時間異常である、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ニューラルネットワークを初期化することは、前記ニューラルネットワークのパラメータにランダム値を割り当てることを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記時間ウィンドウは、第1の時間ウィンドウであり、前記時間値の範囲は、第1の時間値の範囲であり、前記方法は、
第2の時間値の範囲を表す第2の時間ウィンドウを識別することと、
前記第2の時間ウィンドウ内の異常を識別することであって、
前記第2の時間ウィンドウに対して前記ニューラルネットワークを再初期化することと、
前記第2の時間ウィンドウのデータ値を使用して、前記所定の反復回数で、前記ニューラルネットワークを訓練することと、
前記第2の時間ウィンドウの時間値の損失値が前記閾値を超えることに応答して、前記時間値の前記データ値を異常として識別することと、を含む、識別することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
損失値は、前記予測されたデータ値と前記時間値に対応する前記時系列の前記データ値との間の差を表す、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記ニューラルネットワークのパラメータを調整することは、
前記時間ウィンドウの前記時間値に対応する前記損失値に基づいて、総損失値を決定することと、
前記総損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記時系列は、コンピューティングリソースのリソースの使用率を表し、前記方法は、
前記識別された異常に基づいて潜在的なリソース障害を識別することと、
前記潜在的なリソース障害を報告するメッセージを送信することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記コンピューティングリソースは、
処理リソース
メモリリソース
ネットワークリソース、又は
ストレージリソースのうちの1つである、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記時系列は、コンピューティングリソースのリソースの使用率を表し、前記方法は、
前記潜在的なリソース障害を防止するための是正措置をとることをさらに含む、請求項7に記載のコンピュータ実装方法。
【請求項10】
前記ニューラルネットワークは、スカラー入力を受信し、スカラー値を出力するように構成された多層パーセプトロンである、請求項1に記載のコンピュータ実装方法。
【請求項11】
識別された1つ以上の異常と既知の異常との比較に基づいて前記閾値を調整することと、
1つ以上の他の時間ウィンドウに対する異常を識別するために前記調整された閾値を使用することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、1つ以上のコンピュータプロセッサによって実行されるときに、前記1つ以上のコンピュータプロセッサに、
データ値のシーケンスを含む時系列を受信することであって、各データ値は、時間値に関連付けられている、受信することと、
時間値の範囲を表す時間ウィンドウを識別することと、
前記時間ウィンドウ内の前記時系列のデータの異常を識別することであって、前記識別することは、前記1つ以上のコンピュータプロセッサに、
入力時間値を受信し、前記入力時間値に対する前記時系列のデータ値を予測するように構成されているニューラルネットワークを初期化することと、
所定の反復回数で、前記ニューラルネットワークを訓練することであって、前記訓練することは、前記1つ以上のコンピュータプロセッサに、
前記時間ウィンドウの1つ以上の時間値に対して、
前記ニューラルネットワークを実行して、前記時間値に対するデータ値を予測することと、
前記予測されたデータ値に基づいて損失値を決定することと、を行うことと、
前記損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、行わせる、訓練することと、
前記所定の反復回数の後に、前記時間ウィンドウ内の異常を決定することであって、前記異常を決定することは、前記1つ以上のコンピュータプロセッサに、
閾値を超える時間値に対応する損失値に応答して、対応する前記データ値を異常として識別することを行わせる、決定することと、を行わせる、識別することと、
異常として識別された1つ以上のデータ値を記載する情報を記憶することと、を行わせる、非一時的なコンピュータ可読記憶媒体。
【請求項13】
前記時間ウィンドウは、第1の時間ウィンドウであり、前記時間値の範囲は、第1の時間値の範囲であり、前記命令は、前記1つ以上のコンピュータプロセッサに、
第2の時間値の範囲を表す第2の時間ウィンドウを識別することと、
前記1つ以上のコンピュータプロセッサに、
第2の時間ウィンドウに対して前記ニューラルネットワークを再初期化することと、
前記第2の時間ウィンドウのデータ値を使用して、前記所定の反復回数で、前記ニューラルネットワークを訓練することと、
前記第2の時間ウィンドウの時間値の損失値が前記閾値を超えることに応答して、前記時間値の前記データ値を異常として識別することと、を行わせることによって、前記第2の時間ウィンドウ内の異常を識別することと、をさらに行わせる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。
【請求項14】
前記ニューラルネットワークのパラメータを調整するための命令は、前記1つ以上のコンピュータプロセッサに、
前記時間ウィンドウの前記時間値に対応する前記損失値に基づいて、総損失値を決定することと、
前記総損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、を行わせる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記時系列は、コンピューティングリソースのリソース利用を表し、前記命令は、前記1つ以上のコンピュータプロセッサに、
前記識別された異常に基づいて潜在的なリソース障害を識別することと、
前記潜在的なリソース障害を報告するメッセージを送信することと、をさらに行わせる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記命令は、前記1つ以上のコンピュータプロセッサに、
識別された1つ以上の異常と既知の異常との比較に基づいて前記閾値を調整することと、
1つ以上の他の時間ウィンドウに対する異常を識別するために前記調整された閾値を使用することと、をさらに行わせる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。
【請求項17】
コンピュータシステムであって、
1つ以上のコンピュータプロセッサと、
命令を記憶する非一時的なコンピュータ可読記憶媒体と、を含み、前記命令は、1つ以上のコンピュータプロセッサによって実行されるときに、前記1つ以上のコンピュータプロセッサに、
データ値のシーケンスを含む時系列を受信することであって、各データ値は、時間値に関連付けられている、受信することと、
時間値の範囲を表す時間ウィンドウを識別することと、
前記時間ウィンドウ内の前記時系列のデータの異常を識別することであって、前記識別することは、前記1つ以上のコンピュータプロセッサに、
入力時間値を受信し、前記入力時間値に対する前記時系列のデータ値を予測するように構成されているニューラルネットワークを初期化することと、
所定の反復回数で、前記ニューラルネットワークを訓練することであって、前記訓練することは、前記1つ以上のコンピュータプロセッサに、
前記時間ウィンドウの1つ以上の時間値に対して、
前記ニューラルネットワークを実行して、前記時間値に対するデータ値を予測することと、
前記予測されたデータ値に基づいて損失値を決定することと、を行うことと、
前記損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、行わせる、訓練することと、
前記所定の反復回数の後に、前記時間ウィンドウ内の異常を決定することであって、前記異常を決定することは、前記1つ以上のコンピュータプロセッサに、
閾値を超える時間値に対応する損失値に応答して、対応する前記データ値を異常として識別することを行わせる、決定することと、を行わせる、識別することと、
異常として識別された1つ以上のデータ値を記載する情報を記憶することと、を行わせる、コンピュータシステム。
【請求項18】
前記時間ウィンドウは、第1の時間ウィンドウであり、前記時間値の範囲は、第1の時間値の範囲であり、前記命令は、前記1つ以上のコンピュータプロセッサに、
第2の時間値の範囲を表す第2の時間ウィンドウを識別することと、
前記1つ以上のコンピュータプロセッサに、
第2の時間ウィンドウに対して前記ニューラルネットワークを再初期化することと、
前記第2の時間ウィンドウのデータ値を使用して、前記所定の反復回数にわたって、前記ニューラルネットワークを訓練することと、
前記第2の時間ウィンドウの時間値の損失値が前記閾値を超えることに応答して、前記時間値の前記データ値を異常として識別することと、を行わせることによって、前記第2の時間ウィンドウ内の異常を識別することと、をさらに行わせる、請求項17に記載のコンピュータシステム。
【請求項19】
前記ニューラルネットワークのパラメータを調整するための命令は、前記1つ以上のコンピュータプロセッサに、
前記時間ウィンドウの前記時間値に対応する前記損失値に基づいて、総損失値を決定することと、
前記総損失値に基づいて前記ニューラルネットワークのパラメータを調整することと、を行わせる、請求項17に記載のコンピュータシステム。
【請求項20】
前記命令は、前記1つ以上のコンピュータプロセッサに、
識別された1つ以上の異常と既知の異常との比較に基づいて前記閾値を調整することと、
1つ以上の他の時間ウィンドウに対する異常を識別するために前記調整された閾値を使用することと、をさらに行わせる、請求項17に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に時系列データの分析に関連し、より具体的には、時系列データにおける異常の識別のためにニューラルネットワークを使用することに関連する。
【背景技術】
【0002】
時系列データは、いくつかのコンテキストで生成され、処理される。時系列データの例は、センサデータ、処理リソース、メモリリソース、ストレージリソース、ネットワークリソース、アプリケーション使用量データなどのリソースの使用率を監視する計測ソフトウェアによって生成されたデータを含む。異常検出は、通常、時系列データを生成するシステムの問題を識別するために実行される。例えば、コンピューティングリソースの使用率の異常は、近い将来に発生する可能性が高いサーバ障害の指標であってもよい。同様に、ネットワークリソースの使用率の異常は、近い将来に発生する可能性が高いネットワーク障害の指標であってもよい。時系列データの異常を正確かつタイムリーに検出することで、そのような障害を事前に予測することができ、予防措置を講じることができる。
【0003】
異常検出には、クラスタリング分析、ランダムフォレスト技術、機械学習ベースのモデル、例えばニューラルネットワークなどを含む様々な技術が使用されている。異常検出のための従来のニューラルネットワークに基づく技術は、ニューラルネットワークを訓練するために大量の訓練データとかなりの計算リソースを必要とする。さらに、分析される時系列データの特性が、ニューラルネットワークを訓練するために使用される時系列データと異なる場合、ニューラルネットワークに基づく技術は精度が低い。
【図面の簡単な説明】
【0004】
開示の実施形態は、詳細な説明、添付の特許請求の範囲、及び添付の図(又は図面)からより容易に明らかになるであろう他の利点及び特徴を有する。図の簡単な紹介は、以下のようである。
【0005】
【
図1】一実施形態による、時系列分析を実行するためのコンピューティングシステムを含むシステム環境のブロック図である。
【0006】
【
図2】一実施形態による、異常検出の例示的な時系列データ及び対応する出力を示す。
【0007】
【
図3】一実施形態による、時系列処理モジュールのシステムアーキテクチャを例示する。
【0008】
【
図4】一実施形態による、異常検出に使用されるニューラルネットワークアーキテクチャを例示する。
【0009】
【
図5】一実施形態による、異常検出のプロセスを例示する。
【0010】
【
図6】一実施形態による、異常検出のプロセスを例示するフローチャートを示す。
【0011】
【
図7】
図1のクライアントデバイス及び/又はコンピューティングシステムを実装するための例示的なコンピュータを例示するハイレベルブロック図である。
【0012】
図面及び以下の説明は、例示のためにのみ、特定の実施形態を説明する。当業者は、以下の説明から、本明細書に説明された原理から逸脱することなく、本明細書に例示された構造及び方法の代替的な実施形態を採用してもよいことを容易に認識するであろう。いくつかの実施形態を詳細に参照するが、それらの例が添付の図に例示されている。
【発明を実施するための形態】
【0013】
システムは、機械学習ベースのモデル、例えばニューラルネットワークを使用して、時系列データの異常検出を実行する。システムは、時系列の時間ウィンドウからのデータを使用して、固定の反復回数で、ニューラルネットワークを訓練する。時系列データにおける異常を識別するために、システムは、固定の反復回数の終わりにおける損失値を使用する。損失値は、予測されたデータ値と時間値に対応する時系列のデータ値との間の差を表してもよい。例えば、システムは、損失値を所定の閾値と比較する。システムは、損失値を使用して、例えば逆伝搬を使用して、ニューラルネットワークのパラメータを調整する。システムはまた、訓練フェーズ中に決定された損失値を使用して、時系列のデータポイントが異常を表すかどうかを決定する。ある時点での損失値が閾値を超える場合、システムは、その時間値が異常に対応すると決定する。一実施形態では、異常はポイント異常である。システムは、新しい時間間隔に対して上記のステップを実行する。システムは、新しい時間間隔に対してニューラルネットワークを再初期化し、上記のステップを繰り返す。
【0014】
従来、ニューラルネットワークは、訓練データセットを使用して訓練され、訓練されたニューラルネットワークは、推論時に使用されて、結果を予測する。対照的に、様々な実施形態によるシステムは、予測を行うための訓練されたニューラルネットワークの使用を介するのではなく、訓練フェーズの間に異常を決定する。
【0015】
システムは、時間ウィンドウ内のデータを使用してニューラルネットワークを訓練し、時間ウィンドウ内で決定された損失値に基づいて、時間ウィンドウ内のデータポイントの異常を検出する。従来のシステムは、収束するまで、例えば、損失値が閾値を下回るまで、ニューラルネットワークを訓練する。対照的に、様々な実施形態によるシステムは、固定の反復回数でニューラルネットワークを訓練する。固定の反復回数の後に、システムは、時間ウィンドウ内のデータポイントの損失値を閾値と比較する。システムは、閾値を超える損失値を有するデータポイントを異常データポイントとして識別する。システムは、後続の時間間隔に対してこのプロセスを繰り返す。
【0016】
このプロセスが次の時間ウィンドウについて繰り返されるときに、システムは、前の時間ウィンドウのデータを使用して訓練されたニューラルネットワークを破棄する。したがって、各時間ウィンドウについて、システムは、例えば、ランダム値を使用して、ニューラルネットワークを再初期化する。したがって、システムは、推論時に予測子として将来使用するためにニューラルネットワークを訓練しない。システムは、ポイント異常を識別するための訓練プロセス中に決定された損失を使用するための訓練プロセスを単に実行する。ニューラルネットワークの訓練フェーズ中に時間ウィンドウに対して異常が検出された後に、システムは、ニューラルネットワークを破棄し、次の時間間隔に対してランダム値を使用してニューラルネットワークを再初期化する。
【0017】
さらに、システムは、固定の反復回数で、ニューラルネットワークの訓練を実行する。従来、ニューラルネットワークの訓練は、ある収束基準が満たされるまで、例えば、損失値が、収束に達したことを示す閾値を下回るまで実行される。システムは収束に到達することを試みず、訓練ダイナミクスを使用して異常を決定する。したがって、システムは、完全に訓練されたニューラルネットワークを生成することを目的としない。
【0018】
結果として、時系列データ内の異常を検出するために使用されるプロセスは、ニューラルネットワークが収束するまでではなく、数回の反復でのみ訓練されるので、計算的に効率的である。開示された技術の精度は、ニューラルネットワークを完全に訓練する他の技術よりも優れているか、又は少なくとも同程度に良好である。したがって、システムは、より少ないコンピューティング資源で高い精度を達成する。したがって、開示された技術は、時系列データ内の異常を検出するプロセスのコンピューティング効率を向上し、従来の技術に対して技術的な利点を提供する。
【0019】
全体的なシステム環境
図1は、一実施形態による、時系列分析を実行するためのコンピューティングシステムを含むシステム環境のブロック図である。
図1に示すシステム環境100は、コンピューティングシステム130、クライアントデバイス110、外部システム120、及びネットワーク150を含む。代替的な構成では、異なる及び/又は追加のコンポーネントがシステム環境100に含まれてもよい。コンピューティングシステム130は、オンラインシステムであってもよいし、例えば、異常検出を行うバッチ処理を実行することによりオフラインで作業するシステムであってもよい。
【0020】
コンピューティングシステム130は、時系列処理モジュール140、リスナーモジュール145、及びアクションモジュール160を含む。リスナーモジュール145は、1つ以上のソース、例えば外部システム120から時系列データ135を受信する。時系列処理モジュール140は、時系列データ135に対して異常検出を実行して、異常、例えば、ポイント異常155を検出する。アクションモジュール160は、例えば、ユーザに警告メッセージを送信することによって、又は自動化された修復アクションをとることによって、検出された異常155に基づいてアクションをとる。いくつかの実施形態では、コンピューティングシステム130自体が時系列データのソースであってもよい。
【0021】
図2は、一実施形態に従って、時系列処理モジュール140によって実行される異常検出の示的な時系列データ及び対応する出力を示す。チャート210は、リスナーモジュール145によって受信され、時系列処理モジュール140への入力として提供される時系列データ135を表す。時系列処理モジュール140は、チャート210に示す時系列データ内の異常の発生を示すスコアを出力する。チャート210の時系列データに基づいて決定された例示的なスコアをチャート220として示す。
図2に示すように、コンピューティングシステム130は、時系列処理モジュール140によって生成されたスコアが所定の閾値を超える場合、例えば、ポイント215で時系列データにおいて検出されたポイント異常に基づいて、ポイント225でスコアが増加する場合、異常155の発生を決定する。
【0022】
異常検出は、例えば、システムの問題を事前に検出するために、システムのメンテナンスのために実行されてもよい。例えば、コンピューティングリソースの使用率の異常は、近い将来に発生し得るサーバ障害の指標であってもよい。同様に、ネットワークリソースの使用率の異常は、近い将来に発生し得るネットワーク障害の指標であってもよい。したがって、このような時系列データの分析には、異常を正確かつタイムリーに検出することが重要である。
【0023】
コンピューティングシステム130は、ソース、例えば外部システム120から時系列データ135を受信する。例えば、外部システム120は、時系列データを生成するコンピューティングリソース125を含む。コンピューティングリソースの例としては、メモリリソース、処理リソース、ストレージリソース、ネットワークリソースなどを含む。外部システム120は、1つ以上のリソースのリソース使用量を表す時系列データを生成する、計測ソフトウェアを実行してもよい。例えば、外部システム120は、ネットワーク使用量を監視し、ネットワーク使用量を示すメトリックを定期的に報告する、計装ソフトウェアを実行してもよい。報告されたデータは、コンピューティングシステム130によって受信される時系列135を表す。時系列処理モジュール140は、コンピューティングリソースに関する潜在的な問題、例えば、発生する可能性が高い潜在的な障害を表す異常155を検出してもよい。アクションモジュール160は、例えば、システム管理者に警告を送信することによって、又は、例えば、異常155がタスク又はプロセスに割り振られた特定のコンピューティングリソースの不足を示すとシステムが決定した場合に、タスク又はプロセスに追加のコンピューティングリソースを割り振ることによって、自動修復アクションをとることによって、異常155の検出に応答して適切なアクションをとってもよい。例えば、コンピューティングシステム130は、ネットワーク使用量を表す時系列で検出されたポイント異常が、通信チャネルに対して十分なネットワークリソースの欠如を示すと決定してもよく、アクションモジュール160は、ネットワークリソースを再割り振りして、追加のネットワーク帯域幅を通信チャネルに提供してもよい。別の例として、時系列データは、プロセスによってスワップされたページの数を表してもよく、異常155は、ストレージリソースの不足を示すスワップされたページの数の増加によって発生してもよい。異常155の検出に応答して、アクションモジュール160は、プロセスに追加のストレージを割り振ってもよい。
【0024】
時系列データ135は、他のソース、例えば、いくつかの実世界データ、例えば、温度、圧力、重量、光強度などを監視し、それを周期的に報告するセンサによって報告されてもよい。例えば、センサは、化学反応を実行する工業プロセスの温度又は圧力を監視し、それを時系列データ135として周期的に報告してもよい。アクションモジュール160は、例えば、化学反応の速度を調整するために工業プロセスを制御することによって、異常155の検出に応答して工業プロセスを制御するアクションを実行してもよい。
【0025】
時系列データ135は、ユーザのアクション、例えば、オンラインシステムとのユーザの相互作用を表してもよい。例えば、コンピューティングシステム130は、オンラインシステムとのユーザ対話を監視して、ユーザ相互作用における異常を検出してもよい。ポイント異常は、ユーザの挙動の変化、又はユーザ相互作用を受信するオンラインシステムの問題の指標であってもよい。アクションモジュール160は、例えば、ユーザに警告メッセージを送信することによって、ポイント異常155の検出に基づいて適切なアクションをとってもよい。警告メッセージは、異常検出に応答してオンラインシステムパラメータを調整するためにユーザが取り得るアクションの提案を提供してもよい。例えば、異常155が特定の製品に対する需要の増加の指標として決定される場合、オンラインシステムは、製品を説明する情報を追加のユーザに提供するために、製品のオンラインキャンペーンを開始してもよい。
【0026】
図1は、外部システム、クライアントデバイスなどの様々なコンポーネントの単一のインスタンスを示す。しかし、これらのコンポーネントの各々の複数のインスタンスがあってもよい。例えば、いくつかのコンピューティングシステム130と、各コンピューティングシステム130と通信する数十又は数百のクライアントデバイス110又は外部システム120が存在してもよい。図は、同様の要素を識別するために、同様の参照番号を使用する。「110a」のような参照番号の後の文字は、本文がその特定の参照番号を有する要素を特に参照していることを示す。「110」のような後続の文字を伴わない本文中の参照番号は、その参照番号を有する図中の要素のいずれか又は全てを指す。
【0027】
クライアントデバイス110は、ANDROID(登録商標)又はAPPLE(登録商標)IOS(登録商標)などのオペレーティングシステムを有するスマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、自動車若しくは他の車両における電子ステレオ、又はデジタルコンテンツをリスニングすることができる、又は他の方法で経験することができる任意の他のタイプのネットワーク対応デバイスなどのコンピューティングデバイスである。典型的なクライアントデバイス110は、ネットワーク150に接続するために必要なハードウェア及びソフトウェアを含む(例えば、Wifi及び/又は4G又は他の無線通信標準を介して)。
【0028】
ネットワーク150は、クライアントデバイス110、外部システム120、及びコンピューティングシステム130の間の通信インフラストラクチャを提供する。ネットワーク150は、典型的にはインターネットであるが、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、移動有線又は無線ネットワーク、プライベートネットワーク、又は仮想プライベートネットワークを含むがこれらに限定されない任意のネットワークであってもよい。ネットワーク150の部分は、IEEE 802.11標準、BLUETOOTH(登録商標)短距離標準、及び無線USB(Universal Serial Bus)標準に基づくWiFiを含む通信技術を使用するリンクによって提供されてもよい。
【0029】
システムアーキテクチャ
図3は、一実施形態による、時系列処理モジュールのシステムアーキテクチャを例示する。時系列処理モジュール140は、異常検出モジュール310と時系列データベース360とを含む。時系列処理モジュール140は、異常検出を含む時系列データの各タイプの処理を実行してもよい。異常検出部310は、時系列データベース360に記憶された時系列データの異常検出を実行する。異常検出モジュール310は、ニューラルネットワーク320、損失決定モジュール340、訓練モジュール330、及び閾値決定モジュール350を含む。ネットワークインタフェース、セキュリティ機能、ロードバランサ、フェイルオーバサーバ、管理ネットワーク運用コンソールなどの従来のコンポーネントは、システムアーキテクチャの詳細を不明瞭にしないように、示されていない。
【0030】
一実施形態では、ニューラルネットワーク320は、多層パーセプトロンである。
図4は、一実施形態による、異常検出に使用されるニューラルネットワークアーキテクチャを例示する。
図4は、入力層410、1つ以上の隠れ層420、及び出力層430を含む例示的なニューラルネットワーク400を示す。入力層410は、入力として時間値を受信するように構成されており、出力層430は、入力時間値に対応するデータ値を予測するように構成されている。
【0031】
損失決定モジュール340は、訓練されているニューラルネットワークの予測に基づいて損失値を決定する。損失値は、予測されたデータ値と時間値に対応する時系列の対応する既知のデータ値との間の差を表す。例えば、時系列データ値が時間値T1に対してD1である場合、ニューラルネットワークは、値D1′を予測し、D1′とD1との差に基づいて損失値を決定する。損失値は、例えば、二乗平均平方根、平均絶対値などの、様々な可能な測定基準のいずれかを使用して決定されてもよい。
【0032】
訓練モジュール330は、ニューラルネットワークの訓練プロセスを実行する。訓練モジュール330は、例えば、ニューラルネットワークのパラメータをランダム値にセットすることによって、ニューラルネットワークを初期化する。訓練モジュール330は、ニューラルネットワークを使用して時系列データの値を予測し、損失決定モジュール340を呼び出することによって損失値を決定する。訓練モジュール330は、損失値に基づいて、例えば、逆伝搬を使用して、損失値を最小化するように、ニューラルネットワークのパラメータを調整する。
【0033】
閾値決定モジュール350は、ポイント異常を決定するために使用される閾値を決定する。異常検出モジュール310は、ニューラルネットワークの損失値と閾値決定モジュール350によって決定された閾値とを比較して、時系列データ内の時間値にポイント異常が存在するかどうかを決定する。一実施形態では、閾値決定モジュール350は、識別された異常と既知の異常との比較に基づいて閾値を調整する。例えば、ポイント異常が正確に識別されたかどうかを説明するフィードバックを受信するために、ポイント異常は、ユーザに提示されてもよい。
【0034】
異常検出モジュール310が、1つ以上の既知のポイント異常が異常検出モジュール310によって検出されなかったことを示すフィードバックを受信する場合、閾値は、見逃したポイント異常に類似するポイント異常が後で識別され得るように低減されてもよい。異常検出モジュール310が、1つ以上の既知のポイント異常が異常検出モジュール310によって識別されたが、実際のポイント異常ではなかったことを示すフィードバックを受信する場合、閾値は、以前に識別された擬似ポイント異常に類似するポイント異常が後続でフィルタリングされ、検出されないように増加され得る。閾値決定モジュール350は、後続の時間ウィンドウに対する異常を識別するために、調整された閾値を使用する。
【0035】
異常検出プロセス
図5は、一実施形態による、異常検出のプロセスを例示する。
図5に示すように、時系列データ135は、時間510とデータ値520とを含む。例えば、時系列データ135は、タプル(Tn, Dn)のシーケンスとして表され、Tnは時間値510を表し、Dnはデータ値520を表す。ニューラルネットワーク320は、入力として時間値510を受信し、データ値530を予測する。損失決定モジュール320は、時系列の予測されたデータ値530と実際のデータ値520を入力として受信し、ニューラルネットワークのパラメータを調整するためのフィードバックとして使用される損失値を決定する。損失値は、閾値に対して損失値を比較することによって異常540を決定するための異常検出モジュール310によって使用される。
【0036】
図6は、一実施形態による、異常検出のプロセスを例示するフローチャートを示す。本明細書に説明されるステップは、本明細書に示されるものとは異なる順序で実行されてもよい。各ステップは、本明細書に示されるものとは異なるモジュールで実行されてもよい。
【0037】
時系列処理モジュール140は、データ値のシーケンスを含む時系列を受信する(610)。時系列の各データ値は、時間値に関連付けられる。時系列処理モジュール140は、時系列データの異なる時間ウィンドウを処理して、各時間ウィンドウ内のポイント異常を決定する。時間ウィンドウは、時間値の範囲を表す。したがって、時系列処理モジュール140は、時間ウィンドウのデータ値に基づいてニューラルネットワークを訓練し、時間ウィンドウの時系列データに基づくニューラルネットワークの訓練フェーズ中に決定された損失値に基づいて時間ウィンドウ内のポイント値を検出する。時系列処理モジュール140は、各時間ウィンドウについて、以下のステップを繰り返す。
【0038】
時系列処理モジュール140は、時間値の範囲を表す時間ウィンドウを受信する(620)。時系列処理モジュール140は、時間ウィンドウに対してニューラルネットワークを初期化する(630)。時系列処理モジュール140は、以下のステップ660、670、680を繰り返すことによって、所定の反復回数で、ニューラルネットワークを訓練する。各反復に対して、時系列処理モジュール140は、時間ウィンドウ内の時間値に対してステップ660及び670を繰り返す。時系列処理モジュール140は、時間ウィンドウの時間値に対して、ニューラルネットワークを実行して、時間値に対するデータ値を予測する(660)。時系列処理モジュール140は、予測されたデータ値に基づいて損失値を決定する(670)。時間ウィンドウの時間値のセットに対してステップ660及び670を繰り返した後に、時系列処理モジュール140は、時間値のセットにわたる総損失値(aggregate loss value)を決定する。
【0039】
時系列処理モジュール140は、総損失値に基づいて、ニューラルネットワークのパラメータを調整する(680)。総損失値を決定するステップ、及びニューラルネットワークのパラメータを調整するステップは、各反復に対して繰り返される。所定の反復回数の後に、時系列処理モジュール140は、以下のように、時間ウィンドウ内のポイント異常を識別する。時間ウィンドウ内の特定の時間値に対応する損失値が閾値を超える場合、時系列処理モジュール140は、対応するデータ値を異常として識別する。コンピューティングシステム130は、ポイント異常として識別されたデータ値を説明する情報を記憶してもよい。アクションモジュール160は、識別されたポイント異常に基づいてアクションをとることができ、例えば、ポイント異常を説明する警告メッセージをユーザに送信するか、ユーザインターフェースを介して表示するためにポイント異常を説明する情報を送信するか、ポイント異常に基づいて修復アクションを提案するか、又はポイント異常に基づいて修復アクションを実行する。
【0040】
時系列処理モジュール140は、各時間ウィンドウについてニューラルネットワークを初期化し、時間ウィンドウの処理の終了時にニューラルネットワークを破棄する。ニューラルネットワークのパラメータ値をランダム値にセットすることによって、ニューラルネットワークが初期化されてもよい。したがって、時系列処理モジュール140は、ニューラルネットワークを訓練するステップを実行するが、訓練されたニューラルネットワークをいかなる処理にも使用しない。時系列処理モジュール140は、訓練プロセス中に決定された損失値を使用して、時間ウィンドウの時系列データ内のポイント異常を検出し、次の時間ウィンドウについてプロセスを繰り返す。さらに、時系列処理モジュール140は、総損失値が閾値を下回るまでニューラルネットワークを訓練するのではなく、所定の反復回数でニューラルネットワークを訓練する。所定の反復回数は、ユーザによって設定可能であるか、又はデフォルト値にセットされてもよい。所定の反復回数は、総損失値が閾値を下回ることを確実にするために必要な反復回数よりも少ない値にセットされる。これは、時系列処理モジュール140の目標が、予測を行うために推論時に使用することができる訓練されたモデルを生成することではなく、部分的な訓練プロセスを通過するだけで、その結果、部分的な訓練プロセス中の損失値を使用してポイント異常を識別することができるため、異常検出プロセスが効率的に実行されることを保証する。
【0041】
パフォーマンスの向上
実験データは、本明細書に開示された技術を使用することによって得られる性能の向上を示している。以下の表は、様々なデータセットに対して様々なモデルを実行して得られたF1スコアを示している。F1スコアは、F1=2*適合率*再現率/(適合率+再現率)として計算される。各列は特定のデータセットを表し、各行は特定のモデルを表す。開示された技術は、WinStats、ISF、RRCF(ロバストランダムカットフォレスト)、及びProphetを含む他のモデルと比較された。最初の行は、開示された一実施形態によるシステムのデータを表し、残りの行は、開示された技術を使用しない他のモデルを表す。例えば、(1)WinStats(Window statistics)は、時系列のデータの統計を使用して、どの特定のポイントが異常であるかを決定する技術、(2)ISF(isolation forest)は、決定ツリーアルゴリズムに基づく技術、(3)RRCF(robust random cut forest)は、ISFに類似しているが、ストリーミングデータに対して作業するように修正された技術、及び(4)Prophetは、回帰モデルに基づくアプローチである。
【表1】
【0042】
上記の表に示すように、開示された技術に基づくシステムのF1スコアは、システムがいかなる再訓練を必要とせずに異常を予測するが、テストされた全てのモデルよりも優れているか、又は最良のモデルに近い性能を示した。例えば、最後の「平均」列は、様々なデータセットに対する全てのモデルの平均性能を表し、開示されたシステムの平均性能が、研究された全てのモデルよりも優れていることを示す。したがって、開示されたシステムは、少なくとも他の技術と同等かそれ以上の性能を表しながら、他の技術と比較して、モデルの訓練に使用される計算リソースを著しく少なくする必要があるため、計算的に効率的である。全てのデータセットにわたる開示された技術の平均性能は、試験された他の全ての技術よりも良好であった。コンピュータアーキテクチャ
【0043】
図7は、
図1のクライアントデバイス及び/又はコンピューティングシステムを実装するための例示的なコンピュータを例示するハイレベルブロック図である。コンピュータ700は、チップセット704に結合された少なくとも1つのプロセッサ702を含む。チップセット704は、メモリコントローラハブ720と、入出力(I/O)コントローラハブ722と、を含む。メモリ706及びグラフィックアダプタ712は、メモリコントローラハブ720に結合され、ディスプレイ718は、グラフィックアダプタ712に結合される。ストレージデバイス708、入力デバイス714、及びネットワークアダプタ716が、I/Oコントローラハブ722に結合される。コンピュータ700の他の実施形態は、異なるアーキテクチャを有する。
【0044】
ストレージデバイス708は、ハードドライブ、コンパクトディスクリードオンリーメモリ(CD-ROM)、DVD、又は固体メモリデバイスなどの非一時的なコンピュータ可読記憶媒体である。メモリ706は、プロセッサ702によって使用される命令及びデータを保持する。入力インタフェース714は、タッチスクリーンインタフェース、マウス、トラックボール、又は他のタイプのポインティングデバイス、キーボード、又はこれらの何らかの組み合わせであり、データをコンピュータ700に入力するために使用される。いくつかの実施形態では、コンピュータ700は、ユーザからのジェスチャを介して入力インタフェース714から入力(例えば、コマンド)を受信するように構成されてもよい。グラフィックアダプタ712は、ディスプレイ718上に画像及び他の情報を表示する。ネットワークアダプタ716は、コンピュータ700を1つ以上のコンピュータネットワークに結合する。
【0045】
コンピュータ700は、本明細書に説明される機能を提供するためのコンピュータモジュールを実行するように適合されている。本明細書で使用される「モジュール」という用語は、特定の機能を提供するために使用されるコンピュータプログラムロジックを指す。したがって、モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装され得る。一実施形態では、コンピュータモジュールは、ストレージデバイス708上に記憶され、メモリ706にロードされ、プロセッサ702によって実行される。
【0046】
図1のエンティティによって使用されるコンピュータ700のタイプは、実施形態及びエンティティによって必要とされる処理能力に応じて変わる可能性がある。コンピュータ700は、グラフィックアダプタ712、ディスプレイ718など、上述のコンポーネントのうちのいくつかを欠く可能性がある。例えば、コンピューティングシステム130は、サーバファーム内などのネットワークを介して通信する複数のブレードサーバで構成され得る。代替的な実施形態
【0047】
開示の発明の図及び説明は、本発明の明確な理解に関連する要素を例示するために簡略化されているが、明確にするために、典型的な分散システムに見られる他の多くの要素を排除していることを理解されたい。当業者は、他の要素及び/又はステップが、実施形態を実装する際に望ましい及び/又は必要であることを認識してもよい。しかしながら、そのような要素及びステップは、当該技術分野において周知であり、実施形態のより良い理解を促進しないので、そのような要素及びステップの議論は、本明細書では提供されない。本明細書の開示は、当業者に知られているこのような要素及び方法に対する全てのこのような変形及び修正を対象とする。
【0048】
上記の説明のいくつかの部分は、アルゴリズム及び情報に対する動作の記号表現の観点から実施形態を説明する。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者によって、その作業の実体を他の当業者に効果的に伝達するために使用される。これらの動作は、機能的、計算的、又は論理的に説明されているが、コンピュータプログラム又は同等の電気回路、マイクロコードなどによって実装されると理解される。さらに、一般性を失うことなく、これらの操作の配置をモジュールとして参照することが時に便利であることも証明されている。説明された動作及びそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせで具現化されてもよい。
【0049】
本明細書で使用される場合、「一実施形態」又は「ある実施形態」へのいかなる言及も、実施形態に関連して説明される特定の要素、特徴、構造、又は特徴が、少なくとも1つの実施形態に含まれることを意味する。明細書における様々な箇所における「一実施形態では」という語句の出現は、必ずしも全てが同じ実施形態を指すわけではない。
【0050】
いくつかの実施形態は、「結合された」及び「接続された」という表現を、それらの派生語とともに使用して説明されてもよい。これらの用語は、互いに同義語として意図されていないと理解されたい。例えば、いくつかの実施形態は、2つ以上の要素が互いに直接的な物理的又は電気的接触状態にあることを示すために、「接続された」という用語を使用して説明されてもよい。別の例では、いくつかの実施形態は、2つ以上の要素が直接的な物理的又は電気的接触状態にあることを示すために、「結合された」という用語を使用して説明されてもよい。しかし、「結合された」という用語はまた、2つ以上の要素が互いに直接接触していないが、なお互いに協働するか又は相互作用することを意味してもよい。実施形態は、この文脈に限定されない。
【0051】
本明細書で使用される場合、「備える」、「備えている」、「含む」、「含んでいる」、「有すること」、又はそれらの任意の他の派生語は、非排他的な包含をカバーすることを意図している。例えば、要素のリストを含むプロセス、方法、物品、又は装置は、必ずしもそれらの要素のみに限定される必要はなく、そのようなプロセス、方法、物品、又は装置に明示的に列挙されていない、又は固有の他の要素を含んでもよい。さらに、明示的に反対のことを述べない限り、「又は」は、包含的論理和を指し、排他的論理和を指さない。例えば、条件A又はBは、以下、すなわち、Aが真(又は存在)かつBが偽(又は存在しない)であること、Aが偽(又は存在しない)かつBが真(又は存在する)であること、並びにAとBの両方が真(又は存在する)であることのうちのいずれか1つによって満たされる。
【0052】
加えて、「a」又は「an」の使用は、本明細書の実施形態の要素及びコンポーネントを説明するために用いられる。これは単に便宜上、本発明の一般的な意味を与えるために行われる。この説明は、1つ又は少なくとも1つを含むように読まれるべきであり、単数形は、そうでないことを意味することが明らかでない限り、複数形も含む。
【0053】
本開示を読むと、当業者は、本明細書に開示された原理を通じて、歪み領域を使用してチャートを表示するためのシステム及びプロセスのためになお追加の代替的な構造的及び機能的設計を理解するであろう。したがって、特定の実施形態及び用途を例示及び説明してきたが、開示された実施形態は、本明細書に開示された正確な構造及びコンポーネントに限定されないと理解されたい。添付の特許請求の範囲に定義された精神及び範囲から逸脱することなく、本明細書に開示された方法及び装置の構成、動作及び詳細において、当業者には明らかであろう様々な修正、変更及び変形がなされてもよい。
【国際調査報告】