(57)【要約】システムデバイスの故障を予測するためのシステムおよび方法が提供される。この方法は、デバイスのそれぞれについての時間グラフによって、所定のドメインからの装置に関連付けられたデバイス故障関連データを表すこと（６１０）を含む。この方法はまた、デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する時間グラフから時間グラフ特徴に基づいてベクトル表現を抽出すること（６２０）を含む。この方法は、所定のドメインにおけるベクトル表現およびデバイス故障関連メトリックに基づいて、所定の時間内に故障が発生すると予想されるデバイスのうちの１つまたは複数を予測すること（６５０）をさらに含む。
2021528750.tif 000002
【特許請求の範囲】
【請求項１】
システムデバイスの故障を予測するための方法であって、
複数のデバイスのそれぞれについて少なくとも１つの時間グラフによって所定のドメインからの前記複数のデバイスに関連付けられたデバイス故障関連データを表すこと（６１０）と、
プロセッサデバイスによって、前記デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する前記少なくとも１つの時間グラフからの時間グラフ特徴に基づいてベクトル表現を抽出すること（６２０）と、
所定のドメインにおける前記ベクトル表現および少なくとも１つのデバイス故障関連メトリックに基づいて、所定の時間内に故障すると予想される複数のデバイスのうちの少なくとも１つを予測すること（６５０）と、
予測されたデバイス故障メトリックを有する複数のデバイスのうちの少なくとも１つを出力すること（６５０）とを含む方法。
【請求項２】
前記デバイス故障関連データを表すことは、さらに、
前記プロセッサデバイスによって、訓練フェーズにおいて少なくとも１つのエンティティのための訓練データを使用して時間グラフ構築を実行して、少なくとも１つの第１の時間グラフを決定することと、
前記訓練フェーズにおいて前記少なくとも１つの第１の時間グラフから時間グラフ特徴抽出を実行して、少なくとも第１の特徴ベクトルを導出することとを含む、請求項１に記載の方法。
【請求項３】
前記プロセッサデバイスによって、前記少なくとも１つの時間グラフに基づいてデバイス故障予測のためのグラフ学習（ＳＦＰＧＬ）を介して、システム故障予測のための複数のモデルを訓練することをさらに含む、請求項１に記載の方法。
【請求項４】
前記複数のモデルを訓練することは、さらに、
訓練データを準備することと、
前記訓練データに基づいて前記複数のモデルから予測モデルを学習することと、
前記複数のモデルの中から最良のモデルを見つけるためにモデル選択を実行することとを含む、請求項３に記載の方法。
【請求項５】
前記プロセッサデバイスによって、試験フェーズにおいて時間グラフ構築を実行して、少なくとも１つの第２の時間グラフを決定することと、
前記試験フェーズにおいて少なくとも１つの第２の時間グラフから時間グラフ特徴抽出を実行して、少なくとも第２の特徴ベクトルを導出することと、
少なくとも１つの第２の特徴ベクトルに基づいてデバイス故障予測を実行し、少なくとも１つの予測結果を出力することとをさらに含む、請求項１に記載の方法。
【請求項６】
前記デバイス故障関連データは、通信データおよびデバイスプロファイルデータを含み、前記試験フェーズにおいて時間グラフ構築を実行することをさらに含み、さらに、
前記通信データと前記デバイスプロファイルデータとをエンコードすることを含む、請求項５に記載の方法。
【請求項７】
時間グラフ構築を実行することは、さらに、
複数の時間粒度で少なくとも１つのマルチスケール時間グラフを生成することを含む、請求項５に記載の方法。
【請求項８】
前記少なくとも１つの第２の時間グラフから時間グラフ特徴抽出を実行することは、
生データと、統計測定値と、時間差測定値とのうちの少なくとも１つに基づいて時系列をプロファイリングすることをさらに含む、請求項５に記載の方法。
【請求項９】
前記少なくとも１つの第２の時間グラフから時間グラフ特徴抽出を実行することは、さらに、
ワンホップメトリックから構造特徴を導出することを含む、請求項５に記載の方法。
【請求項１０】
前記少なくとも１つの第２の時間グラフから時間グラフ特徴抽出を実行することは、さらに、
マルチホップメトリックから構造特徴を導出することを含む、請求項５に記載の方法。
【請求項１１】
少なくとも１つの時間グラフのそれぞれは、グラフ＜Ｇ1〜Ｇx＞のストリームとして表され、ここで、Ｇiは、時間ｔiにおけるデバイスのための通信データおよびプロファイルデータを記録するグラフである、請求項１に記載の方法。
【請求項１２】
少なくとも１つの時間グラフのそれぞれのノードおよびエッジは属性に関連付けられ、ノード属性は、時間ｔiにおけるノードにのみ関連するすべての情報を含み、エッジ属性は、対応する通信に関連する情報を含む、請求項１に記載の方法。
【請求項１３】
システムデバイスの故障を予測するためのコンピュータシステムであって、
メモリデバイスに動作可能に結合されたプロセッサデバイスを有し、前記プロセッサデバイスは、
複数のデバイスのそれぞれについての少なくとも１つの時間グラフによって、所定のドメインからの前記複数のデバイスに関連付けられたデバイス故障関連データを表し（３６０）、
前記デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する前記少なくとも１つの時間グラフから時間グラフ特徴に基づいて表現を抽出し（３７０）、
所定のドメインにおけるベクトル表現および少なくとも１つのデバイス故障関連メトリックに基づいて、所定の時間内に故障すると予想される複数のデバイスのうちの少なくとも１つを予測する（３８０）ように構成されるコンピュータシステム。
【請求項１４】
前記デバイス故障関連データを表すとき、前記プロセッサデバイスは、さらに、
訓練フェーズにおいて少なくとも１つのエンティティのための訓練データを使用して時間グラフ構築を実行して、少なくとも１つの第１の時間グラフを決定し、
前記訓練フェーズにおいて前記少なくとも１つの第１の時間グラフから時間グラフ特徴抽出を実行して、少なくとも第１の特徴ベクトルを導出する請求項１３に記載のシステム。
【請求項１５】
前記プロセッサデバイスは、さらに、
前記少なくとも１つの時間グラフに基づいて、デバイス故障予測のためのグラフ学習（ＳＦＰＧＬ）を介して、システム故障予測のための複数のモデルを訓練するように構成される、請求項１３に記載のシステム。
【請求項１６】
前記複数のモデルを訓練するとき、前記プロセッサデバイスは、さらに、
訓練データを準備し、
前記訓練データに基づいて前記複数のモデルから予測モデルを学習し、
前記複数のモデルの中から最良のモデルを見つけるためにモデル選択を実行するように構成される、請求項１３に記載のシステム。
【請求項１７】
前記プロセッサデバイスは、さらに、
前記ベクトル表現を最良のモデルに供給することによって、デバイス故障予測を実行するように構成される、請求項１６に記載のシステム。
【請求項１８】
少なくとも１つの時間グラフのそれぞれは、グラフ＜Ｇ1〜Ｇx＞のストリームとして表され、ここで、Ｇiは、時間ｔiにおけるデバイスのための通信データおよびプロファイルデータを記録するグラフである、請求項１３に記載のシステム。
【請求項１９】
前記少なくとも１つの時間グラフのそれぞれのノードおよびエッジは属性に関連付けられ、ノード属性は、時間ｔiにおけるノードにのみ関連するすべての情報を含み、エッジ属性は、対応する通信に関連する情報を含む、請求項１３に記載のシステム。
【請求項２０】
複数のデバイスの性能を予測するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体を備え、該コンピュータプログラム製品には、プログラム命令が具現化されており、コンピュータデバイスによって実行可能なプログラム命令が、
複数のデバイスのそれぞれについて少なくとも１つの時間グラフによって、所定のドメインからの前記複数のデバイスに関連付けられたデバイス故障関連データを表し（３６０）、
前記デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する前記少なくとも１つの時間グラフから時間グラフ特徴に基づいてベクトル表現を抽出し（３７０）、
所定のドメインにおける前記ベクトル表現および少なくとも１つの性能メトリックに基づいて、所定の時間内に故障すると予想される複数のデバイスのうちの少なくとも１つを予測する（３８０）方法を実行させるために、コンピュータデバイスによって実行可能なコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願情報
本出願は、２０１８年９月１８日に出願された米国仮特許出願第６２／７３２，６２４号、および２０１９年８月２８日に出願された米国特許出願第１６／５５３，４６５号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
本発明は、深層学習に関し、より詳細には、デバイスの性能を予測するために深層学習を適用することに関する。
関連技術の説明
【０００３】
深層学習は、人工ニューラルネットワークに基づく機械学習方法である。深層学習アーキテクチャは、コンピュータビジョン、スピーチ認識、自然言語処理、オーディオ認識、ソーシャルネットワークフィルタリング、機械翻訳、バイオインフォマティクス、ドラッグデザイン、医療画像解析、材料検査およびボードゲームプログラムなどを含む分野に適用することができる。深層学習は、教師あり、半教師あり、または教師なしでも良い。
【発明の概要】
【０００４】
本発明の一態様によれば、複数のデバイスの性能を予測する方法が提供される。この方法は、所定のドメインからの複数のデバイスに関連付けられたデバイス故障関連データを、デバイスのそれぞれについての時間グラフによって表すことを含む。この方法はまた、デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する時間グラフから時間グラフ特徴に基づいてベクトル表現を抽出することを含む。この方法はさらに、所定のドメインにおけるベクトル表現および性能メトリックに基づいて、所定の時間内に故障すると予想されるデバイスのうちの１つまたは複数を予測することを含む。
【０００５】
本発明の別の態様によれば、複数のデバイスの性能を予測するためのシステムが提供される。システムは、メモリデバイスに動作可能に結合されたプロセッサデバイスを含み、プロセッサデバイスは、デバイスのそれぞれについての時間グラフによって、所定のドメインからの複数のデバイスに関連付けられたデバイス故障関連データを表すように構成される。プロセッサデバイスはまた、デバイス故障関連データにおける時間的相関と構造的相関との両方を捕捉する時間グラフから、時間グラフ特徴に基づいてベクトル表現を抽出する。プロセッサ装置はまた、所定のドメインにおけるベクトル表現および性能メトリックに基づいて、所定の時間内に故障すると予想される装置のうちの１つまたは複数を予測する。
【０００６】
これらおよび他の特徴および利点は、添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００７】
本開示は、以下の図面を参照して、好ましい実施形態の以下の説明において詳細を提供する。
【０００８】
【図１】本発明の一実施形態によるニューラルネットワークの一般化された図である。
【０００９】
【図２】本発明の一実施形態による、人工ニューラルネットワーク（ＡＮＮ）アーキテクチャの図である。
【００１０】
【図３】本発明の一実施形態による、グラフ学習によるシステム故障予測（ＳＦＰＧＬ）のプロセスを実施するシステムを示すブロック図である。
【００１１】
【図４】本発明の一実施形態による、時間グラフ構築のプロセスを示すブロック図である。
【００１２】
【図５】本発明の一実施形態による、時間グラフ特徴抽出のプロセスを示すブロック図である。
【００１３】
【図６】本発明の一実施形態によるモデル訓練を示すブロック図である。
【００１４】
【図７】本発明の一実施形態による、試験フェーズにおける時間グラフ構築のプロセスを示すブロック図である。
【００１５】
【図８】本発明の一実施形態による、試験フェーズにおける時間グラフ特徴抽出のプロセスを示すブロック図である。
【００１６】
【図９】本発明の一実施形態による、デバイス故障予測のプロセスを示すブロック図である。
【００１７】
【図１０】本発明の一実施形態による、デバイス故障予測のためのＳＦＰＧＬを実施する方法を示すフロー図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態によれば、通信データおよびプロファイルデータからデバイス故障予測を実施するためのシステムおよび方法が提供される。例示的な実施形態では、例えば、関連付けられた（例えば、機械学習）フレームワークを含むグラフ学習によるシステム故障予測（ＳＦＰＧＬ）が、通信データおよびプロファイルデータからデバイス故障予測を決定するために適用される。
【００１９】
例示的な実施形態では、決定プロセスにおける時間遅延を低減するために、ＳＦＰＧＬは、通常のハードウェアレポートの代わりに、装置の通信データ（リアルタイムで生成される）およびプロファイルデータを分析して、タイムリーな意思決定のための有意義な特徴を抽出する。次に、ＳＦＰＧＬは、決定プロセスを自動的にモデル化し、人間の意思決定者（例えば、人間の専門家）に関連するスケーラビリティ問題に対処するプロセス（例えば、機械学習方法）を実施する。ＳＦＰＧＬは、システムデバイス管理における予測問題のクラスに適用可能な一般的なフレームワークを提供する。ＳＦＰＧＬベースのフレームワークは、訓練フェーズおよび試験フェーズを含むことができる。
【００２０】
例示的な実施形態では、方法は、特定のドメイン（例えば、システム管理ドメイン、金融ドメインなど）における特徴解釈を含むことができ、時間的特徴と構造的特徴とを同時に抽出するために、多次元ノード属性およびエッジ属性を完全に利用することができる。
【００２１】
本明細書に記載する実施形態は、完全にハードウェアであってもよく、完全にソフトウェアであってもよく、または、ハードウェアおよびソフトウェア要素の両方を含むものであってもよい。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実施される。
【００２２】
実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータプログラム製品を含むことができる。コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを格納、通信、伝搬、またはトランスポートする任意の装置を含むことができる。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体システム（または装置またはデバイス）、または伝搬媒体とすることができる。媒体は、半導体または固体ステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスクおよび光ディスクなどのコンピュータ読み取り可能な記憶媒体を含むことができる。
【００２３】
各コンピュータプログラムは、本明細書に記載する手順を実行するために、記憶媒体またはデバイスがコンピュータによって読み取られるときに、コンピュータの動作を構成し制御するために、汎用または特殊目的のプログラム可能コンピュータによって読み取り可能な、機械読み取り可能な記憶媒体またはデバイス（例えば、プログラムメモリまたは磁気ディスク）に実体的に記憶することができる。本発明のシステムはまた、コンピュータプログラムで構成された、コンピュータ読み取り可能な記憶媒体で実施されるものと考えることができ、その場合、構成された記憶媒体は、コンピュータを特定の所定の方法で動作させて、本明細書に記載する機能を実行させる。
【００２４】
プログラムコードを記憶および／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含んでもよい。メモリ要素は、プログラムコードの実際の実行中に採用されるローカルメモリ、バルクストレージ、および実行中にバルクストレージからコードが検索される回数を減らすために少なくとも何らかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティングデバイスなどを含むが、これらに限定されない）は、直接または介在するＩ／Ｏコントローラを介してシステムに結合され得る。
【００２５】
介在する専用ネットワークまたは公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいはリモートプリンタまたはストレージデバイスに結合できるようにするために、ネットワークアダプタをシステムに結合することもできる。モデム、ケーブルモデム、およびイーサネットカードは、現在使用可能なネットワークアダプタのタイプの一例に過ぎない。
【００２６】
ここで、同一の数字が同一または類似の要素を表し、最初に図１を参照すると、一実施形態例に従って、通信データからのデバイス故障予測を実施することができるニューラルネットワークの一般化された図が示される。
【００２７】
人工ニューラルネットワーク（ＡＮＮ）は、脳のような生体神経系に刺激される情報処理システムである。ＡＮＮの重要な要素は、情報処理システムの構造であり、これは、特定の問題を解決するために並列に動作する多くの高度に相互接続された処理要素（「ニューロン」と呼ばれる）を含む。ＡＮＮはさらに、ニューロン間に存在する重みの調整を含む学習を用いて、使用中に訓練される。ＡＮＮは、そのような学習プロセスを介して、パターン認識またはデータ分類などの特定のアプリケーションのために構成される。
【００２８】
ＡＮＮは、複雑または不正確なデータから意味を導出する能力を示し、パターンを抽出し、人間または他のコンピュータベースのシステムによって検出するには複雑すぎる傾向を検出するために使用することができる。ニューラルネットワークの構造は、一般に、１つまたは複数の「隠れた」ニューロン１０４に情報を提供する入力ニューロン１０２を有する。入力ニューロン１０２と隠れニューロン１０４との間の接続１０８は重み付けされ、次に、これらの重み付けされた入力は、複数層間の重み付けされた接続１０８と共に、隠れニューロン１０４内の何らかの関数に従って隠れニューロン１０４によって処理される。隠れニューロン１０４、ならびに異なる機能を実行するニューロンの任意の数の層が存在し得る。畳み込みニューラルネットワーク、最大出力ネットワーク等のような異なるニューラルネットワーク構造も存在する。最後に、出力ニューロン１０６のセットは、隠れニューロン１０４の最後のセットからの重み付けされた入力を受け入れ、処理する。
【００２９】
これは、情報が入力ニューロン１０２から出力ニューロン１０６に伝播する「フィードフォワード」計算を表す。訓練データは、サーバにインストールされたエージェントから収集された通信データおよびプロファイルデータ（例えば、データベースに格納された）を含むことができる。フィードフォワード計算が完了すると、出力は訓練データから利用可能な所望の出力と比較される。訓練データに対する誤差は、「フィードバック」計算で処理され、隠れニューロン１０４および入力ニューロン１０２は、出力ニューロン１０６から後方に伝播する誤差に関する情報を受け取る。一旦、逆方向エラー伝播が完了すると、重み付けされた接続１０８が受信された誤差を考慮するように更新されて、重み付け更新が実行される。これは、単に１つの種類のＡＮＮを表す。
【００３０】
図２を参照すると、人工ニューラルネットワーク（ＡＮＮ）アーキテクチャ２００が示されている。本アーキテクチャは純粋に例示的なものであり、代わりに他のアーキテクチャまたはタイプのニューラルネットワークを使用することができることを理解されたい。本明細書で説明されるＡＮＮ実施形態は、高レベルの一般性でニューラルネットワーク計算の一般原理を示すことを意図して含まれており、いかなる形でも限定するものと解釈されるべきではない。
【００３１】
さらに、以下に記載されるニューロンの層およびそれらを接続する重みは、一般的な様式で記載され、任意の適切な程度またはタイプの相互接続性を有する任意のタイプのニューラルネットワーク層によって置き換えられ得る。例えば、層は、畳み込み層、プーリング層、完全に接続された層、ストップマックス層、または任意の他の適切なタイプのニューラルネットワーク層を含むことができる。さらに、必要に応じて層を追加または除去することができ、相互接続のより複雑な形態のために重りを省略することができる。
【００３２】
フィードフォワード動作中、１組の入力ニューロン２０２はそれぞれ、重み２０４のそれぞれの行に並列に入力信号を供給する。以下に説明するハードウェアの実施形態では、重み２０４は、重み出力が、重み２０４からそれぞれの隠れニューロン２０６に渡されて、隠れニューロン２０６への重み付けされた入力を表すように、それぞれの設定可能な値を有する。ソフトウェアの実施形態では、重み２０４は、関連する信号に対して乗算される係数値として単純に表されてもよい。各重みからの信号は列ごとに加算され、隠れニューロン２０６に流れる。
【００３３】
隠れニューロン２０６は、重み２０４の配列からの信号を使用して、何らかの計算を実行する。次に、隠れニューロン２０６は、それ自体の信号を別の重み２０４の配列に出力する。この配列は、同じ方法で、重み２０４の列が、それぞれの隠れニューロン２０６から信号を受け取り、行方向に加算し、出力ニューロン２０８に供給される重み付けされた信号出力を生成する。
【００３４】
配列および隠れニューロン２０６の追加の層を介在させることによって、任意の数のこれらの段階を実施できることを理解されたい。また、いくつかのニューロンは、配列に一定の出力を提供する定常ニューロン２０９であってもよいことに注意すべきである。定常ニューロン２０９は、入力ニューロン２０２および／または隠れニューロン２０６の間に存在することができ、フィードフォワード動作中にのみ使用される。
【００３５】
逆伝搬の間、出力ニューロン２０８は、重み２０４の配列を横切って戻る信号を提供する。出力層は、生成されたネットワーク応答を訓練データと比較し、誤差を計算する。誤差信号を誤差値に比例させることができる。この実施例では、重み２０４の行は、それぞれの出力ニューロン２０８から並列に信号を受け取り、列ごとに加算して隠れニューロン２０６に入力を提供する出力を生成する。隠れニューロン２０６は、重み付けされたフィードバック信号をそのフィードフォワード計算の導関数と結合し、フィードバック信号を重み２０４のそれぞれの列に出力する前に誤差値を記憶する。この逆伝搬は、すべての隠れニューロン２０６および入力ニューロン２０２が誤差値を記憶するまで、ネットワーク２００全体を通って進行する。
【００３６】
重み更新中、記憶された誤差値は、重み２０４の設定可能な値を更新するために使用される。このようにして、重み２０４は、ニューラルネットワーク２００をその工程における誤差に適応させるように訓練され得る。３つの動作モード、フィードフォワード、逆伝搬、および重み更新は、互いに重複しないことに留意されたい。
【００３７】
畳み込みニューラルネットワーク（ＣＮＮ）は、少なくとも１つの畳み込み層を有するＡＮＮのサブクラスである。ＣＮＮは、入力層および出力層、ならびに複数の隠れ層からなる。ＣＮＮの隠れ層は畳み込み層、整流線形ユニット（ＲＥＬＵ）層（例えば活性化関数）、プーリング層、完全接続層および規格化層から成る。畳み込み層は、入力に畳み込み演算を適用し、その結果を次の層に渡す。畳み込みは、視覚刺激に対する個々のニューロンの応答をエミュレートする。
【００３８】
ＣＮＮは、視覚画像の分析に適用することができる。ＣＮＮは、ローカル情報（例えば、画像内の隣接画素またはテキスト内の周囲の単語）を捕捉し、モデルの複雑さを低減することができる（例えば、より速い訓練、より少ない試料の必要性、およびオーバーフィッティングの機会の低減を可能にする）。
【００３９】
ＣＮＮは、最小限の前処理を必要とするように設計された多層パーセプトロンの変形を使用する。ＣＮＮは、それらの共有重みアーキテクチャおよび変換不変特性に基づいて、シフト不変または空間不変人工ニューラルネットワーク（ＳＩＡＮＮ）としても知られている。ＣＮＮは、画像および映像認識、推薦システム、画像分類、医用画像解析、および自然言語処理における用途に使用することができる。
【００４０】
次に、図３を参照すると、例示的な実施形態に従った、システムデバイス故障予測のためのグラフ学習（ＳＦＰＧＬ）を介したシステム故障予測のプロセスを実施するためのシステム３００を示すブロック図が示されている。
【００４１】
システムデバイスの故障予測は、複雑なシステム管理の分野において重大な問題である。システム管理者にとって、最も重要なタスクの１つは、デバイスが近い将来に故障するかどうかを決定し、故障が起こる前にそれを交換することである。通常、そのような決定は、デバイスのハードウェア状態の評価に依存するが、大規模なハードウェア調査を実行することは通常費用がかかり、ハードウェア調査のタイミングは、デバイスの故障時間を満たさない場合がある。一般的にその問題は、以下のように定義することができる。システムデバイスの履歴記録が与えられると、目標は、システムデバイスが近い将来（例えば、１週間）に故障する可能性があるかどうかを予測することである。
【００４２】
ＳＦＰＧＬシステム３００は、図４〜図９に関して以下に説明するように、分散計算システムにおいてサーバ故障予測を実行するプロセスを実施する。ＳＦＰＧＬシステム３００は、意思決定における時間遅延を大幅に低減することができ、多くのデバイスおよび大量の複雑なシステム管理関連データを用いてスケーリングすることができる。
【００４３】
図３に示すように、ＳＦＰＧＬシステム３００は、データ訓練要素３１０と、訓練（または第１の）時間グラフ構築要素３２０と、訓練（または第１の）時間グラフ特徴抽出要素３３０と、モデル訓練要素３４０と、データ試験要素３５０と、試験（または第２の）時間グラフ構築要素３６０と、試験（または第２の）時間グラフ特徴抽出要素３７０と、デバイス故障予測要素３８０と、予測結果要素３９０とを含む。
【００４４】
データ訓練要素３１０は、訓練データ３１２を含む（またはそれへのアクセスを提供する）。訓練データ３１２は、ＳＦＰＧＬのモデル訓練に使用されるデータを含む。訓練データ３１２は、（例えば、主に）通信データ３１４（デバイス間またはデバイスの間）、デバイスプロファイルデータ３１６、および訓練データ内のデバイスのターゲットデバイス故障のグラウンドトゥルース３１８を含むことができる。データ訓練要素３１０は、ＳＦＰＧＬシステム３００の訓練フェーズ中にデータを提供するように実装することができる。
【００４５】
通信データ３１４は、あるデバイス（例えば、デバイスＡ）が別のデバイス（例えば、デバイスＢ）と通信を行う時刻を示す履歴情報を含むことができる。さらに、通信データ３１４は、この通信中のデータ転送量、この通信の目的などの通信詳細を記述する追加および／または補足（例えば、側）情報を含むことができる。
【００４６】
デバイスプロファイルデータ３１６は、デバイスの型、デバイス故障履歴、デバイスエージなど、個々のデバイスに関連する情報を含む。いくつかの例示的な実施形態では、デバイスプロファイルデータ３１６は、時間展開することも含むことができる。例えば、デバイスの故障履歴を（動的に更新して）新しい故障インシデントを含めることができる。
【００４７】
ターゲットデバイス故障３１８のグラウンドトゥルースは、デバイス故障履歴レコードから得られる。例えば、分析が１週間でサーバディスク故障に向けられるインスタンスにおいて、この故障３１８のグラウンドトゥルースは、通信データ３１４およびプロファイルデータ３１６と整列された履歴記録から導出される。
【００４８】
訓練時間グラフ構築要素３２０は、通信データ３１４とデバイスプロファイルデータ３１６との両方を符号化する時間グラフを構築する。時間グラフは、図４に関して以下で詳細に説明するように、符号化された通信データおよびデバイスプロファイルデータなどのデータを表すために使用されるデータ構造として格納（または操作／送信／受信／等）することができる。
【００４９】
訓練時間グラフ特徴抽出要素３３０は、時間グラフ特徴抽出を実行する。訓練時間グラフ特徴抽出要素３３０は、訓練時間グラフ構築要素３２０によって構築されたグラフから時間グラフ特徴を抽出し、図５に関して以下で詳細に説明するように、特徴ベクトルによって各デバイスを表す。
【００５０】
モデル訓練要素３４０ は、デバイスの故障を予測するモデルを訓練する。モデル訓練要素３４０は、まず、訓練データを準備し、訓練データに基づいて予測モデルを学習し、次に、図６に関して以下で詳細に説明するように、最良のモデルを見つけるためにモデル選択を実行する。例えば、デバイスの特定の履歴記録が与えられると、モデル訓練要素３４０は、所定の性能メトリックの値を予測するためにモデルを選択することができる。
【００５１】
データ試験要素３５０は、試験データを決定する。例えば、データ試験要素３５０は、このフレームワークにおける試験データとして機能することができるデバイスプロファイルデータ３１６と共に（デバイスによって提供される通信データの中から）任意の通信データ３１４を選択することができる。
【００５２】
試験（または第２の）時間グラフ構築要素３６０はまた、（訓練（または第１の）時間グラフ構築要素３２０と同様のアプローチを使用して）時間グラフ構築を実行する。試験時間グラフ構築要素３６０は、データを試験するための時間グラフを構築するために、通信データ３１４とデバイスプロファイルデータ３１６との両方を符号化する時間グラフを構築する。
【００５３】
試験時間グラフ特徴抽出要素３７０は、（第１の時間グラフ特徴抽出要素３３０と同様のアプローチを使用して）時間グラフ特徴抽出を実行する。試験時間グラフ特徴抽出要素３７０は、訓練時間グラフ特徴抽出要素３３０と同じ時間グラフ特徴のセットを抽出する。試験時間グラフ特徴抽出要素３７０が時間グラフ特徴抽出を実行した後、試験データ内の各デバイスは、特徴ベクトルとして表される。
【００５４】
デバイス故障予測要素３８０は、デバイス故障予測を実装する。この段階で、デバイス故障予測要素３８０は、モデル訓練要素３４０によって訓練されたモデルにデバイスの特徴ベクトルを与え、各デバイスについてデバイス故障への予測を得る。
【００５５】
予測結果要素３９０は、デバイス性能についての予測結果を出力する。
【００５６】
図４は、例示的な実施形態による、時間グラフ構築要素３２０を訓練することによって実施される時間グラフ構築の処理を示すブロック図である。
【００５７】
図４に示すように、訓練時間グラフ構築要素３２０は、データ訓練要素３１０から訓練データ３１２（通信データ３１４、デバイスプロファイルデータ３１６、およびターゲットデバイス故障メトリック３１８のグラウンドトゥルースを含む）を受信する。訓練時間グラフ構築要素３２０は、通信データおよびプロファイルデータベースのグラフ（要素、デバイスまたはモジュール）４０５およびマルチスケール時間グラフ（要素、デバイスまたはモジュール）４１０を含む。
【００５８】
通信データおよびプロファイルデータベースのグラフ４０５は、通信３１４および（デバイス）プロファイルデータ３１６をグラフ（複数可）に構築（構築または変換）する。通信およびプロファイルデータベースのグラフ４０５は、時間グラフをグラフ＜Ｇ1，Ｇ2，・・・，＞のストリームとして表し、ここでＧiは、時間ｔiにおけるデバイスのためのスナップショット、記録通信およびプロファイルデータと呼ばれるグラフである。各グラフＧiにおいて、ノードはデバイスであり、ノードＡとノードＢとの間の１つのエッジは、時間ｔiにおいて通信されるＡおよびＢを示す。さらに、ノードとエッジは属性に関連し、ノード属性は時間ｔiで自身にのみ関連するすべての情報を含み、エッジ属性は対応する通信に関連するすべての情報を示唆する。このようにして、通信およびプロファイルデータベースのグラフ４０５は、デバイスプロファイルデータ３１６内のすべての側面（補助または相補）情報をノード属性によって符号化し、通信データ３１４内のすべての側面情報をエッジ属性によって符号化する。
【００５９】
マルチスケール時間グラフ４１０は、通信およびプロファイルデータベースのグラフ４０５によって構築されたグラフに基づいてマルチスケール時間グラフを生成する。通信におけるタイムスタンプは、通常、異なる時間的粒度（例えば、秒の粒度）で時間を記録することができる。しかしながら、最も細かな（例えば、最小単位）粒度では、出力が細かな粒度に制約される場合に、（例えば、小さな時間にわたるインクリメンタルな変化に基づいて）グローバルな時間的発展を見逃すことができる。マルチスケール時間グラフ４１０は、それぞれが特定の時間粒度で生成される複数の時間グラフを構築することによって、通信データおよびプロファイルデータが与えられた場合に、デバイスの性能および故障の進展の様々な時間斜視図を提供する。例えば、１年の通信データおよびプロファイルデータが与えられると、マルチスケール時間グラフ４１０は、複数の（例えば、３つの）時間グラフを生成することができ、ここで、第１のグラフは、１分間の粒度であり、第２のグラフは、１時間の粒度であり、第３のグラフは、半日の粒度である、等である。時間粒度が与えられると、通信３１４およびデバイスプロファイルデータ３１６は、各グラフスナップショットに集約される。
【００６０】
マルチスケール時間グラフ４１０が実装された後、訓練時間グラフ構築要素３２０は、所定の通信データ３１４およびプロファイルデータ３１６について時間グラフのセットを取得する。
【００６１】
図５は、例示的な実施形態による、訓練時間グラフ特徴抽出要素３３０によって実施される時間グラフ特徴抽出のプロセスを示すブロック図である。
【００６２】
図５に示すように、訓練時間グラフ特徴抽出要素３３０は、時間ノード特徴抽出（要素、デバイス、またはモジュール）４２０および時間構造特徴抽出（要素、デバイス、またはモジュール）４３０を使用して、訓練時間グラフ構築要素３２０から時間グラフのセットが与えられると、時間グラフ特徴抽出を実施する。
【００６３】
時間ノード特徴抽出４２０は、訓練時間グラフ構築要素３２０からの入力に基づいて時間ノード特徴抽出を実行する。時間ノード特徴抽出４２０は、時間グラフのノード属性からノード特徴を導出する。特に、特定のノードの各ノード属性に対して、時間ノード特徴抽出４２０（例えば、本質的に）は時系列を形成する。この目的のために、ノード属性の時系列が与えられると、時間ノード特徴抽出４２０は、この時系列をプロファイリングする特徴ベクトルを提供する。実施形態例によれば、時間ノード特徴抽出４２０は、生データ、統計的測定、および／または時間微分測定などの角度（または遠近法、ビューなど）から時系列をプロファイリングすることができる。
【００６４】
時間ノード特徴抽出４２０は、時系列の生データを時系列の特徴ベクトルに含めることができる。時間ノード特徴抽出４２０は、時系列の形状を特徴付けるために、平均、中央値、分散などの静的測定を含むことができる。時間ノード特徴抽出４２０はまた、時間差測定値（複数可）を含むことができる。時系列（例えば、時系列ａ）および時差Δｔが与えられると、時間ノード特徴抽出４２０は、ｂ［ｔ］＝ａ［ｔ］−ａ［ｔ−Δｔ］などの差分比較によって別の時系列（例えば、時系列ｂ）を導出することができる。時系列ｂが与えられると、時間ノード特徴抽出４２０はさらに、時系列ｂの生データおよび統計的測定を特徴ベクトルに添付することができる。
【００６５】
時間構造特徴抽出４３０は、時間構造特徴抽出を実行する。時間構造特徴抽出４３０は、ワンホップおよびマルチホップ構造メトリックから構造特徴を導出する。ワンホップ構造メトリックには、ノードのイン次数、ノードのアウト次数、およびノードの全次数を含めることができる。有向グラフでは、ノードに入るエッジの数は、対応するノードのイン次数と呼ばれ、ノードから出るエッジの数は、対応するノードのアウト次数と呼ばれる。マルチホップ構造メトリックは、ランダムウォークベースのメトリック（例えば、ページランク、エゴセントリックソーシャルネットワークデータ（例えば、ＥｇｏＮｅｔ（登録商標）メトリック）、クラスタリング分析メトリックなど）を含む、多様であり得る。
【００６６】
時間グラフが与えられると、特定のノードに関する構造メトリック（例えば、特定の観点から、本質的に等）は、時系列を形成する。時間ノード特徴抽出４２０によって実施されるのと同様に、時間構造特徴抽出４３０は、生データ、統計的測定、および時間差分測定を含む観点から、この時系列を記述するための特徴ベクトルを導出する。時間グラフのセットが与えられると、時間ノード特徴抽出４２０および時間構造特徴抽出４３０は、各時間グラフを通過し（例えば、方法、分析、抽出など）、各時間グラフのノードおよび構造特徴ベクトルを生成することに留意されたい。
【００６７】
各ノードについて、訓練時間グラフ特徴抽出要素３３０は、ノードのすべてのノード特徴ベクトルおよび構造特徴ベクトルを長い特徴ベクトルに連結し、これは、モデル訓練のためにモデル訓練要素３４０によって使用することができる。
【００６８】
図６は、例示的な実施形態による、モデル訓練要素３４０によって実装されるようなモデル訓練を示すブロック図である。
【００６９】
図６に示すように、モデル訓練要素３４０は、訓練データ準備（要素、デバイスまたはモジュール）４４０と、モデル訓練および選択（要素、デバイスまたはモジュール）４５０とを含む。
【００７０】
訓練データ準備４４０は、訓練データ準備を実施する。特に、訓練データ準備４４０は、訓練サンプルのセットを準備することができる。例えば、訓練時間グラフ特徴抽出要素３３０が、ノードのすべてのノード特徴ベクトルおよび構造特徴ベクトルを長い特徴ベクトルに連結した後、訓練データ準備４４０は、ノードｋ（例えば、特定のデバイスＫ）の特徴ベクトルｘkを取得することができる。ターゲットデバイス故障メトリック３１８のグラウンドトゥルースから、訓練データ準備４４０は、ノードｋ、ｙkの対応する性能メトリック値を取得することができる。このようにして、訓練データ準備４４０は、訓練サンプル（ｘk、ｙk）を形成する。したがって、ターゲットデバイス故障メトリック３１８の特徴ベクトルおよびグラウンドトゥルースが与えられると、訓練データ準備４４０は、訓練サンプル｛（ｘ、ｙ）｝のセットを準備することができる。
【００７１】
モデル訓練および選択４５０は、モデル訓練および選択を実施する。モデルおよび訓練データ３１２の候補プールが与えられると、モデル訓練および選択（要素、デバイス、またはモジュール）４５０は、複数のモデルを学習し（例えば、複数のモデルの精度を決定するために試行実行を分析および実施し）、試験フェーズのために（複数のモデルの中から）最良のモデルを選択する。モデル訓練および選択４５０は、機械学習技術（所定の（またはユーザ定義の）機械学習技術、ならびにサポートベクトル機械、線形回帰、ロジスティック回帰、多層ニューラルネットワーク、決定ツリー、およびアンサンブル方法などの既製の機械学習技術を含む）に基づいて（モデルの）候補プールを決定することができる。次いで、モデル訓練および選択４５０は、モデルを選択する。例えば、訓練されたモデルのセットが与えられると、モデル訓練および選択４５０は、ｋ倍交差検証を使用して、最良の検証精度を有するモデルを選択する。クロスバリデーションは、機械学習モデルのスキル（例えば、精度）を推定するために使用される統計的方法である。
【００７２】
図７は、例示的な実施形態による、試験時間グラフ構築要素３６０によって実施される試験フェーズにおける時間グラフ構築のプロセスを示すブロック図である。
【００７３】
図７に示すように、試験時間グラフ構築要素３６０は、通信およびプロファイルデータベースのグラフ（要素、デバイスまたはモジュール）５０５と、マルチスケール時間グラフ（要素、デバイスまたはモジュール）５１０とを含む。
【００７４】
通信データ３１４およびデバイスプロファイルデータ３１６が与えられると、通信およびプロファイルデータベースのグラフ５０５は、上記の通信およびプロファイルデータベースのグラフ４０５および図４に関して説明したのと同様の方法で時間グラフを構築する。
【００７５】
マルチスケール時間グラフ５１０は、試験フェーズにおいて、図４に関して上述したように、訓練フェーズにおいてマルチスケール時間グラフ４１０によって適用される時間粒度を使用して、複数の時間グラフを生成する。マルチスケール時間グラフ５１０の出力は、訓練フェーズで定義された粒度で通信データ３１４およびデバイスプロファイルデータ３１６を符号化する時間グラフのセットである。
【００７６】
図８は、例示的な実施形態による、試験時間グラフ特徴抽出要素３７０によって実施される時間グラフ特徴抽出のプロセスを示すブロック図である。
【００７７】
図８に示すように、試験時間グラフ特徴抽出要素３７０は、試験時間グラフ構築要素３６０から時間グラフのセットが与えられた場合に、時間グラフ特徴抽出を実行する。試験時間グラフ特徴抽出要素３７０は、時間ノード特徴抽出５２０および時間構造特徴抽出５３０を含む。
【００７８】
時間ノード特徴抽出５２０は、データを試験する各ノードについて、図５に関して本明細書で前述したように時間ノード特徴抽出４２０によって実装されるのと同様の方法でノード特徴ベクトルを構築する。
【００７９】
時間構造特徴抽出５３０は、データを試験する各ノードについて、図５に関して本明細書で前述したように時間ノード特徴抽出４２０によって実装されるのと同様の方法で構造特徴ベクトルを構築する。
【００８０】
時間グラフのセットが与えられると、時間ノード特徴抽出５２０および時間構造特徴抽出５３０は、時間グラフ特徴抽出要素３３０によって実施されるように、各時間グラフを通過し、ノードおよび構造特徴ベクトルを生成することができることに留意されたい。各ノードについて、試験時間グラフ特徴抽出要素３７０は、ノードのすべてのノード特徴ベクトルおよび構造特徴ベクトルを長い特徴ベクトルに連結することができ、長い特徴ベクトルは、デバイスの性能の予測のためにデバイス故障予測要素３８０によって使用することができる。
【００８１】
図９は、実施例に従った、デバイス故障予測要素３８０によって実施されるデバイス故障予測の処理を示すブロック図である。
【００８２】
図９に示されるように、デバイス故障予測構成要素３８０は、モデル訓練構成要素３４０と試験時間グラフ特徴抽出３７０とからの入力（例えば、それによって提供される／からのグラフのモデルおよび特徴）を使用して、デバイス故障予測の手順を実行する。デバイス故障予測要素３８０は、試験データ準備（要素、デバイスまたはモジュール）５４０および訓練されたモデル予測（要素、デバイスまたはモジュール）５５０を含む。
【００８３】
試験データ準備５４０は、試験データ準備を実行する。この段階で、試験時間グラフ特徴抽出３７０からのデバイスの特徴ベクトルは、当然、試験試料のセットを形成する。例えば、ノードｋについて、ノードの特徴ベクトルは、試験時間グラフ特徴抽出３７０からのｘkであり、ｘkは、試験試料である。試験データ準備５４０は、試験時間グラフ特徴抽出３７０からのデータにアクセスする。
【００８４】
訓練されたモデル予測５５０は、訓練されたモデルを使用して予測を行う。例えば、訓練モデル予測５５０は、モデル訓練要素３４０およびデバイスの特徴ベクトルによって訓練された最良のモデルを選択し、使用することができる。訓練されたモデル予測５５０は、ＳＦＰＧＬを適用して、各デバイスのターゲット性能メトリックの予測を実行することができる。
【００８５】
上記の図３〜図９に関して説明した処理の例示的な実施形態は、マルチスケール時間グラフによってシステム管理ドメイン（またはデバイス故障関連ドメイン）からのデータを表す。訓練フェーズおよび試験フェーズにおける時間ノード特徴抽出４２０／５２０に関して、例示的な実施形態は、システムデバイス性能における時間的相関と構造的相関との両方を捕捉する時間グラフ特徴を抽出することができる。モデル訓練要素３４０およびデバイス故障予測要素３８０に関して、例示的な実施形態は、デバイスのベクトル表現からシステムデバイス管理ドメイン内のターゲット性能メトリックへの決定プロセスを自動化する処理を提供する。
【００８６】
図１０は、本発明による、デバイス故障予測のためのＳＦＰＧＬを実施するための方法６００を示す流れ図である。
【００８７】
ブロック６１０において、システム３００は、デバイス故障関連データを使用して訓練フェーズにおいて時間グラフ構築を実行する。例えば、システム３００は、通信データ３１４、デバイスプロファイルデータ３１６、およびデバイスのターゲットデバイス故障メトリック３１８のグラウンドトゥルースを含む訓練データ３１２を使用して、デバイスの性能のグラフを構築することができる。
【００８８】
ブロック６２０において、システム３００は、訓練フェーズにおいて時間グラフ特徴抽出を実行する。例えば、システム３００は、ブロック６１０で決定された時間グラフ内のノード属性からノード特徴を導出することができる。システム３００は、図５に関して本明細書で上述した特定のノードの各ノード属性について時系列を形成することができる。
【００８９】
ブロック６３０で、システム３００は、例えば、本明細書で上述した図６に関して説明したのと同様の方法で、モデル訓練を実行する。システム３００は、試験フェーズのための（複数のモデルの中から）最良のモデルを識別するために、訓練データ３１２を用いてモデルの候補プールからモデルを訓練することができる。
【００９０】
ブロック６４０において、システム３００は、試験フェーズにおいて時間グラフ構築を実行する。訓練データおよび試験データは、訓練データ中にグランドトゥルースまたはラベル情報が存在するが、試験データ中にグランドトゥルースまたはラベル情報が存在しないことを除いて、同一のフォーマットまたはスキーマを共有する。例えば、システム３００は、通信データ３１４、デバイスプロファイルデータ３１６、およびデバイスのターゲットデバイス故障メトリック３１８のグラウンドトゥルースを含む訓練データ３１２を使用して、デバイスの性能のグラフを構築することができる。システム３００は、履歴データを使用して、時間グラフを決定することができる。
【００９１】
ブロック６５０において、システム３００は、試験フェーズにおいて時間グラフ特徴抽出を実行する。例えば、システム３００は、ブロック６４０で決定された時間グラフにおけるノード属性からノード特徴を導出することができる。システム３００は、図５に関して上述したように、特定のノードの各ノード属性について時系列を形成することができる。
【００９２】
ブロック６６０において、システム３００は、デバイス故障予測を実行する。例えば、システム３００は、デバイスのベクトル表現に基づいて、デバイス故障予測に基づいて、交換または修理の対象となる１つまたは複数のデバイスを予測することができる。システム３００は、訓練されたモデルおよびデータに基づいて予測結果３９０を出力することができる。予測結果は、モバイルデバイス、パーソナルコンピュータ等のデバイスのインターフェース（例えば、グラフィカルユーザインターフェース（ＧＵＩ））上に出力することができる。予測結果は、来るべき時間スパンにわたるデバイス故障の予測メトリックを含むことができる。いくつかの実施形態では、システム３００は、他のデバイスを通じた通信の再ルーティング、負荷バランシングの調整など、予測結果に基づいて予防措置を開始することができる。システム３００は、予測された結果を実際の結果と比較し、モデルまたはデータを実際の結果からのフィードバックに基づいて調整することができる。
【００９３】
上記は、あらゆる点において例示的かつ例示的であると理解されるべきであり、限定的ではなく、本明細書に開示される本発明の範囲は、詳細な説明から決定されるべきではなく、むしろ特許法によって許容される全範囲に従って解釈されるような特許請求の範囲から決定されるべきである。本明細書に示され、説明される実施形態は、本発明の例示にすぎず、当業者は、本発明の範囲および精神から逸脱することなく、様々な修正を実施することができることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴の組み合わせを実施することができる。このように、本発明の態様を、特許法によって要求される詳細および特殊性と共に説明してきたが、特許状によって保護されることが請求され、望まれるものは、添付の特許請求の範囲に記載されている。
【図１】
2021528750.tif 000003
【図２】
2021528750.tif 000004
【図３】
2021528750.tif 000005
【図４】
2021528750.tif 000006
【図５】
2021528750.tif 000007
【図６】
2021528750.tif 000008
【図７】
2021528750.tif 000009
【図８】
2021528750.tif 000010
【図９】
2021528750.tif 000011
【図１０】
2021528750.tif 000012
【国際調査報告】
2021528750.tif 000013
2021528750.tif 000014