(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-03
(45)【発行日】2023-07-11
(54)【発明の名称】ニューラル・ネットワークを使用した時系列データ間の依存関係の動的検出
(51)【国際特許分類】
G06N 3/049 20230101AFI20230704BHJP
G06N 3/045 20230101ALI20230704BHJP
【FI】
G06N3/049
G06N3/045
(21)【出願番号】P 2020553589
(86)(22)【出願日】2019-05-16
(86)【国際出願番号】 EP2019062587
(87)【国際公開番号】W WO2019219799
(87)【国際公開日】2019-11-21
【審査請求日】2021-09-27
(32)【優先日】2018-05-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】シャー、サイド、ユーサフ
(72)【発明者】
【氏名】ダン、スアン-ホン
(72)【発明者】
【氏名】ゼルフォス、ペトロス
【審査官】加藤 優一
(56)【参考文献】
【文献】米国特許出願公開第2018/0060666(US,A1)
【文献】国際公開第2017/130089(WO,A1)
【文献】HSU, Daniel,Time Series Compression Based on Adaptive Piecewise Recurrent Autoencoder,arXiv:1707.07961v2,2017年08月16日,[検索日:2022年09月09日]インターネット<URL: https://arxiv.org/pdf/1707.07961.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
G06F 18/00 -18/40
(57)【特許請求の範囲】
【請求項1】
ニューラル・ネットワークを使用して時系列データにおける時間的依存関係を決定するためのシステムであって、
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに動作可能なように結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと、を備えており、前記コンピュータ実行可能コンポーネントが、
それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定するための計算コンポーネントと、
時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定するための結合コンポーネントと、
注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよび前記RNN依存関係デコーダに基づいて1つまたは複数の時系列データの予測値を決定するための解析コンポーネントとを含んでいる、システム。
【請求項2】
前記結合コンポーネントが、前記少なくとも2つのデコードされるRNNを結合するためにさらに動作可能であり、前記解析コンポーネントが、前記少なくとも2つの時系列データにおける時系列間依存関係を決定するためにさらに動作可能である、請求項1に記載のシステム。
【請求項3】
前記コンピュータ実行可能コンポーネントが、
前記少なくとも2つの時系列データを収集するデータ収集コンポーネントをさらに含んでおり、
前記少なくとも2つの時系列データが少なくとも2つの変量を持つ多変量時系列データである、請求項1または2に記載のシステム。
【請求項4】
前記計算コンポーネントが、前記少なくとも2つのRNNを反復的にエンコードすることによって、収束したRNNをさらに決定する、請求項1ないし3のいずれかに記載のシステム。
【請求項5】
前記少なくとも2つのRNNをエンコードする前記計算コンポーネントと、前記少なくとも2つのデコードされるRNNを結合する前記結合コンポーネントとが、共に同時に実行される、請求項1ないし4のいずれかに記載のシステム。
【請求項6】
前記RNNが長短期記憶ニューラル・ネットワークを含んでいる、請求項1ないし5のいずれかに記載のシステム。
【請求項7】
前記RNNが、前記RNNのゲーティング機構としてゲート付き回帰型ユニットを備えている、請求項1ないし6のいずれかに記載のシステム。
【請求項8】
前記システムが、
前記少なくとも2つの時間的文脈ベクトルに基づいて少なくとも2つのデコードされるRNNを決定するために、前記注意機構に基づくニューラル・ネットワークをさらに備えている、請求項1ないし7のいずれかに記載のシステム。
【請求項9】
ニューラル・ネットワークを使用して時系列データにおける時間的依存関係を決定するためにプロセッサが実行する方法であって、
プロセッサに動作可能なように結合された計算コンポーネントによって、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定することと、
前記プロセッサに動作可能なように結合された結合コンポーネントによって、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することと、
前記プロセッサに動作可能なように結合された解析コンポーネントによって、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよび前記RNN依存関係デコーダに基づいて1つまたは複数の時系列データの予測値を決定することとを含んでいる、方法。
【請求項10】
前記結合コンポーネントによって、前記少なくとも2つのデコードされるRNNを結合することと、
前記解析コンポーネントによって、前記少なくとも2つの時系列データにおける時系列間依存関係を決定することとをさらに含んでいる、請求項9に記載の方法。
【請求項11】
前記プロセッサに動作可能なように結合されたデータ収集コンポーネントによって、前記少なくとも2つの時系列データを収集するデータ収集コンポーネントをさらに含んでおり、前記少なくとも2つの時系列データが多変量時系列データを含んでいる、請求項9または10に記載の方法。
【請求項12】
前記計算コンポーネントによって、前記少なくとも2つのRNNを反復的にエンコードすることによって収束したRNNを決定することをさらに含んでいる、請求項9ないし11のいずれかに記載の方法。
【請求項13】
前記計算コンポーネントによって前記少なくとも2つのRNNをエンコードすることと、前記結合コンポーネントによって前記少なくとも2つのデコードされるRNNを結合することとが、共に同時に実行される、請求項9ないし12のいずれかに記載の方法。
【請求項14】
前記RNNが長短期記憶ニューラル・ネットワークを含んでいる、請求項9ないし13のいずれかに記載の方法。
【請求項15】
前記RNNが、前記RNNのゲーティング機構としてゲート付き回帰型ユニットを備えている、請求項9ないし14のいずれかに記載の方法。
【請求項16】
前記注意機構に基づくニューラル・ネットワークによって、前記少なくとも2つの時間的文脈ベクトルを決定することをさらに含んでいる、請求項9ないし15のいずれかに記載の方法。
【請求項17】
プロセッサに、請求項9ないし16のいずれかに記載の方法を実行させる、コンピュータ・プログラム。
【請求項18】
請求項9ないし16のいずれかに記載の方法をプロセッサに実行させるためのコンピュータ・プログラムを記録した、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
1つまたは複数の実施形態は、ニューラル・ネットワークに関連しており、より詳細には、人工知能技術を使用する深層ニューラル・ネットワークでの多変量時系列データ間の依存関係の動的検出に関連している。
【背景技術】
【0002】
多変量時系列のモデル化および予測は、機械学習の態様のことを指すことができる。一部の態様では、時系列のモデル化は、適切なモデルを決定し、次に、このモデルが時系列の構造を決定できるように、履歴データの集合に基づいてモデルをトレーニングすることを、含むことができる。
【0003】
さらに、モデルの選択およびトレーニングは、時系列から観測される未来の値に関して、モデルの予測精度を測定することによって検証され得る。一部の態様では、過去のデータを理解することによって未来の値を予測するタスクは、時系列予測と呼ばれることがある。
【0004】
動的(例えば、時間的に変化する)環境内で多変量時系列をモデル化して予測することは、時系列間の関係に関する仮定を容易に行うことができ、時系列の存続期間全体を通じてそのような仮定が安定して持続することができる静的環境よりも、困難になる可能性がある。さらに複雑な動的システムでは、時系列の相互依存関係が、時間と共に変化することがある。そのような分野では、実体は、高い予測精度を有するモデルに興味を持つだけでなく、特定の時点でさまざまな時系列データセット間で相互に与える影響へのより深い洞察を得たいと思うことがある。他の方法または従来の方法は、時系列間の相互作用における動的変化を捕捉する能力を欠いていることがある。
【0005】
したがって、当技術分野において、前述の問題に対処する必要がある。
【発明の概要】
【0006】
第1の態様から見ると、本発明は、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに動作可能なように結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えている、ニューラル・ネットワークを使用して時系列データにおける時間的依存関係を決定するためのシステムを提供し、コンピュータ実行可能コンポーネントは、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN:recurrent neural network)をエンコードし、少なくとも2つの時間的文脈ベクトル(temporal context vectors)に基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定するための計算コンポーネントと、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定するための結合コンポーネントと、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて1つまたは複数の時系列データの予測値を決定するための解析コンポーネントとを含む。
【0007】
さらに別の態様から見ると、本発明は、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに動作可能なように結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムを提供し、コンピュータ実行可能コンポーネントは、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定する計算コンポーネントと、少なくとも2つのデコードされるRNNを結合し、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定する結合コンポーネントと、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、少なくとも2つの時系列データにおける時系列間依存関係および1つまたは複数の時系列データの予測値を決定する解析コンポーネントと含む。
【0008】
さらに別の態様から見ると、本発明は、ニューラル・ネットワークを使用して時系列データにおける時間的依存関係を決定するためのコンピュータ実装方法を提供し、この方法は、プロセッサに動作可能なように結合された計算コンポーネントによって、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定することと、プロセッサに動作可能なように結合された結合コンポーネントによって、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することと、プロセッサに動作可能なように結合された解析コンポーネントによって、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、1つまたは複数の時系列データの予測値を決定することとを含む。
【0009】
さらに別の態様から見ると、本発明は、コンピュータ実装方法を提供し、この方法は、プロセッサに動作可能なように結合された計算コンポーネントによって、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定することと、プロセッサに動作可能なように結合された結合コンポーネントによって、少なくとも2つのデコードされるRNNを結合することと、結合コンポーネントによって、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することと、プロセッサに動作可能なように結合された解析コンポーネントによって、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、少なくとも2つの時系列データにおける時系列間依存関係および1つまたは複数の時系列データの予測値を決定することとを含む。
【0010】
さらに別の態様から見ると、本発明は、ニューラル・ネットワークを使用して時系列データにおける時間的依存関係を決定するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能な、本発明のステップを実行するための方法を実行するためにこの処理回路によって実行される命令を格納している、コンピュータ可読ストレージ媒体を備えている。
【0011】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、コンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含んでいる。
【0012】
以下に、本開示の1つまたは複数の実施形態の基本的理解を提示するための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された1つまたは複数の実施形態では、ニューラル・ネットワークに基づく人工知能技術を使用して多変量時系列データにおける関係を自律的に決定できるシステム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
【0013】
一実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納するメモリを含むことができる。このシステムは、メモリに動作可能なように結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを含むこともできる。これらのコンピュータ実行可能コンポーネントは、それぞれの時系列データを有する少なくとも2つの回帰型ニューラル・ネットワーク(RNN)をエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定する計算コンポーネントと、少なくとも2つのデコードされるRNNを結合し、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定する結合コンポーネントと、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、少なくとも2つの時系列データにおける時系列間依存関係および1つまたは複数の時系列データの予測値を決定する解析コンポーネントとを含むことができる。
【0014】
1つまたは複数の実施形態例によれば、コンピュータ実装方法が提供される。このコンピュータ実装方法は、プロセッサに動作可能なように結合された計算コンポーネントによって、それぞれの時系列データを有する少なくとも2つのRNNをエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列における時間的依存関係を決定することと、プロセッサに動作可能なように結合された結合コンポーネントによって、少なくとも2つのデコードされるRNNを結合し、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することと、プロセッサに動作可能なように結合された解析コンポーネントによって、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、1つまたは複数の時系列データの予測値を決定することとを含む。
【0015】
さらに1つまたは複数の実施形態例によれば、コンピュータ・プログラム製品が提供される。このコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を含むことができる。これらのプログラム命令は、プロセッサに、プロセッサに動作可能なように結合された計算コンポーネントによって、それぞれの時系列データを有する少なくとも2つのRNNをエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて、少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列における時間的依存関係を決定することと、プロセッサに動作可能なように結合された結合コンポーネントによって、少なくとも2つのデコードされるRNNを結合し、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することと、プロセッサに動作可能なように結合された解析コンポーネントによって、注意機構に基づくニューラル・ネットワークを伴うRNNエンコーダおよびRNN依存関係デコーダに基づいて、少なくとも2つの時系列データにおける時系列間依存関係および1つまたは複数の時系列データの予測値を決定することとを実行させるように、プロセッサによって実行可能であることができる。
【0016】
ここで、添付の図面を例として参照し、本発明の実施形態について説明する。
【図面の簡単な説明】
【0017】
【
図1】本明細書に記載された1つまたは複数の実施形態に従って、ニューラル・ネットワークを採用する多変量時系列データ間の依存関係の動的検出のための例示的な非限定的システムのブロック図を示す図である。
【
図2】本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の依存関係のニューラル・ネットワークに基づく検出のために開示されたモデルの態様が採用され得る、例示的な製造環境の概略図を示す図である。
【
図3】本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の依存関係のニューラル・ネットワークに基づく検出のために開示されたモデルの態様が採用され得る、例示的なネットワーク環境を示す図である。
【
図4】本明細書に記載された1つまたは複数の実施形態に従って、開示されたモデルの計算コンポーネントおよび解析コンポーネントによって採用され得る例示的なニューラル・ネットワーク・アーキテクチャを示す図である。
【
図5】本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の時間的依存関係および相互依存関係の動的検出のために計算コンポーネント、結合コンポーネント、および解析コンポーネントによって使用され得るモデルの例を示す図である。
【
図6A】本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の時間的依存関係および相互依存関係のニューラル・ネットワークに基づく検出のためのモデルの他の例を示す図である。
【
図6B】本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の時間的依存関係および相互依存関係のニューラル・ネットワークに基づく検出のためのモデルの他の例を示す図である。
【
図7】本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データからモデルの解析コンポーネントによって決定された変数における相互依存関係の例を示す図である。
【
図8】本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データからモデルの解析コンポーネントによって生成されたセンサ相互作用グラフの例を示す図である。
【
図9】本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データからモデルの解析コンポーネントによって生成された予測されたセンサ値の例を示す図である。
【
図10】本明細書に記載された1つまたは複数の実施形態に従って、ルールに基づく合成データセットからモデルによって生成された予測値の例を示す図である。
【
図11】本明細書に記載された1つまたは複数の実施形態に従って、モデルによって決定されたルールに基づく合成データセットにおける解析コンポーネントによって生成された時間的依存関係および相互依存関係の例を示す図である。
【
図12】本明細書に記載された1つまたは複数の実施形態に従って、開示されたAIシステムおよびアルゴリズムの態様を動作させるための例示的なフローチャートを示す図である。
【
図13】本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示す図である。
【
図14】本明細書に記載された1つまたは複数の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【
図15】本明細書に記載された1つまたは複数の実施形態に従って抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【0018】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、明示されたか、または暗示されたいずれかの情報によって制約されるという意図はない。
【0019】
ここで、図面を参照して1つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、1つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、1つまたは複数の実施形態が実践され得るということは明らかである。
【0020】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本開示の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0021】
下でさらに詳細に説明されているように、一部の実施形態では、開示された実施形態は、多変量時系列データ(例えば、各ベクトルが所与の時系列データを含んでいる、複数のベクトル)を受信できる2層モデルを含むことができる。時系列データは、製造工場のセンサ・データまたは1つまたは複数のネットワークと関連するデバイスからのWebサービス・データなどの、任意の適切なソースから受信されたデータに対応することができる。第1の層では、モデルは、それぞれの時系列データを有する回帰型ニューラル・ネットワーク(RNN)をエンコードすることができる。さらに、モデルの計算コンポーネントは、モデルが収束したRNNを生成するまでRNNを実行できるようにすることができる。次にモデルは、収束したRNNに基づいて時系列データの時間的文脈ベクトルを決定することができる。文脈ベクトルは、下で
図5および6に関連して説明される、モデル内の1つまたは複数の計算において使用され得る。さらに、本明細書において、モデルに関連して方程式で示される、本明細書で開示されるアーキテクチャに対応するアルファ・スケールおよびベータ・スケール(alpha and beta scales)を使用して、注意機構(attention mechanism)が実装されるか、または抽出されるか、あるいはその両方が実行され得る。それに応じて、モデルが、時系列データにおける時間的依存関係を抽出できる。第2の層では、モデルは、時系列に関するデコードされる収束したRNNを結合して転置することができる。モデルは、時系列間依存関係文脈ベクトルをさらに決定し、RNN依存関係デコーダを決定することができる。モデルは、この決定された時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを使用して、データにおける時系列間依存関係を抽出し、時系列データの値を予測することができる。
【0022】
一部の態様では、本開示の実施形態は、時系列データ間の相互依存関係、および各時系列データ内、または一部の実施形態では、1つまたは複数の時系列データ内の時間差のある依存関係の両方を決定し、未来の時間で予測できるようにすることができる。そのようなパターンの決定は、時系列データ間の影響が本来動的で時間的に変化する環境では、役立つことがある。本発明の実施形態は、実体(例えば、機械学習の専門知識をあまり持っていないか、全く持っていないことがあるハードウェア/ソフトウェアの機械または領域あるいはその両方の専門家)が時系列に関する理解を検証して改善するのに役立つことができる。
【0023】
さらに、本開示の実施形態は、実体が、適切な時系列を生成するデバイスまたはサービスを調査することによって、各時点で、リアルタイムの決定(例えば、デバイスまたはサービスを修理するための予測的な保守の決定)を行うのを可能にすることができる。さらに、本開示の実施形態は、実体が、リソース管理およびリソース割り当ての目的で、または(例えば、ある会社の販売または感情極性に関する時系列を使用して株価を予測して)開始する/既存の投資ポジションのために、システム、サービス、またはプロセスの初期性能指標を識別できるようにすることができる。「実体(entity)」という用語は、本明細書において使用されるとき、さまざまな実施形態で、ハードウェアもしくはソフトウェアのデバイスもしくはコンポーネント、または人間、あるいはその組み合わせ意味するか、または含むことができる。本開示の実施形態は、多変量時系列を生成する所与の動的システムに含まれる時系列間の時間的に変化する相互依存関係の検出を、可能にすることができる。具体的には、本開示の実施形態は深層学習アーキテクチャを採用することができ、さらに、この深層学習アーキテクチャは、多層のカスタマイズされた回帰型ニューラル・ネットワーク上に構築されるか、またはそのような回帰型ニューラル・ネットワークと統合され得る。深層学習アーキテクチャを使用して、時間的に変化する相互依存関係および所与の多変量時系列からの時間的依存関係を検出することができる。開示されたモデルは、変化する相互依存関係を用いて、未来の予測する時点で時系列間で相互に与える影響を検出することができる。そのような相互関係は、多変量時系列が進行するにつれて、時間と共に変化することがある。変化する時間的依存関係を検出することに加えて、開示されたモデルは、個々の時系列内の時間差のある依存関係を検出できる。検出された情報のこれらの2つのソースは、時系列の未来の値を予測するために、モデルによって集合的に使用することができ、動的時系列に関する説明機構を提供することにおいて使用され得る洞察を提供することができる。一部の実施形態では、1つまたは複数の時系列を予測することができ、または1つまたは複数の時系列の1つまたは複数の未来の値を予測することができ、あるいはその両方を実行できる。
【0024】
図1は、本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ解析を提供する(例えば、データ内の時間差のある時間的依存関係を検出する)ための例示的な非限定的システム100のブロック図を示している。
【0025】
システム100は、任意選択的にサーバ・デバイス、1つまたは複数のネットワーク、および1つまたは複数のデバイス(図示されていない)を含むことができる。システム100は、メモリ104に格納されたコンピュータ実行可能コンポーネントを実行する少なくとも1つのプロセッサ102を含むこともでき、またはその他の方法でそのようなプロセッサ102に関連付けられ得る。システム100は、動作可能なように互いに結合された計算コンポーネント110、結合コンポーネント114、および解析コンポーネント116を含むが、これらに限定されない、さまざまなコンポーネントを結合することができるシステム・バス106をさらに含むことができる。
【0026】
本開示において説明されるシステム(例えば、システム100など)、装置、またはプロセスの態様は、マシン内で具現化された(例えば、1つまたは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体内で具現化された)機械実行可能コンポーネントを構成することができる。そのようなコンポーネントは、1つまたは複数のマシン(例えば、コンピュータ、コンピューティング・デバイス、仮想マシンなど)によって実行された場合に、マシンに、説明された動作を実行させることができる。本明細書に記載された1つまたは複数の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【0027】
システム100は、デバイスに通信可能なように結合され得る任意の適切なコンピューティング・デバイスまたはコンピューティング・デバイスのセットであることができ、その非限定的な例としては、サーバ・コンピュータ、コンピュータ、モバイル・コンピュータ、メインフレーム・コンピュータ、自動テスト・システム、ネットワーク・ストレージ・デバイス、通信デバイス、Webサーバ・デバイス、ネットワーク・スイッチング・デバイス、ネットワーク・ルーティング・デバイス、ゲートウェイ・デバイス、ネットワーク・ハブ・デバイス、ネットワーク・ブリッジ・デバイス、制御システム、または任意のその他の適切なコンピューティング・デバイスが挙げられるが、これらに限定されない。デバイスは、システム100、またはシステム100によって提供される情報を採用できる任意のその他の適切なデバイス、あるいはその両方と情報を通信することができる、任意のデバイスであることができる。システム100、コンポーネント、モデル、またはデバイスが、1つまたは複数のネットワークを経由して(例えば、クラウド・コンピューティング環境を経由して)システム、コンポーネント、モデル、デバイスなどの間での通信を可能にする通信コンポーネント118を備えることができるということが、理解されるべきである。
【0028】
述べたように、一部の実施形態では、システム100は、多変量時系列データ(例えば、各ベクトルが所与の時系列データ(例えば、時間に依存する連続的な一連の数字)を含んでいる、複数のベクトル)を受信できるモデルを実装できる。一部の実施形態では、多変量時系列データは、データ収集コンポーネント(図示されていない)から受信され得る。一部の態様では、データ収集コンポーネントによって受信されたデータが、メモリ・コンポーネント104に事前に格納され得る。
【0029】
一部の態様では、計算コンポーネント110は、それぞれの時系列データを伴うRNNをエンコードできる。RNNをエンコードすることは、データをRNNの入力状態に入力することと、RNNに関連付けられた、経験的に決定され得る任意の関連するパラメータ(例えば、反復回数、エラー手法など)を設定することとを含むことができる。
【0030】
さらに、計算コンポーネント110は、モデルが収束したRNNを生成するまで、RNNに実行を許容することができる。これは、RNNに関連付けられた指標(例えば、二乗平均平方根誤差(RMS:root-mean-square error)など)が事前に決定されたしきい値をいつ下回ったかを決定することによって、実行され得る。
【0031】
次に計算コンポーネント110は、収束したRNNに基づいて時系列データの時間的文脈ベクトルを決定することができる。文脈ベクトルが方程式7で計算され、時間的注意アルファが方程式6で計算される。
【0032】
さらに、計算コンポーネント110は、時間的文脈ベクトルに基づいて、デコードされる収束したRNNを決定し、時系列における時間差のある時間的依存関係を決定することができる。文脈ベクトルが方程式7で計算され、時間的注意アルファが方程式6で計算される。エンコーダRNNおよびデコーダRNNが同時に、一緒にトレーニングされるため、それらがトレーニングされた後に、依存関係が抽出され得る。
【0033】
それに応じて、計算コンポーネント110は、時系列データにおける時間的依存関係を抽出できる。時間的依存関係は、(RNNが収束した後に)方程式7に示されているアルファを使用して抽出される。このアルファを使用して、依存関係グラフ(例えば、下で
図8に関連して示され、説明されるセンサ相互作用グラフ)を描画することができる。新しい入力が到着するときに、実行時にアルファを抽出することがき、このようにして、動的に変化する依存関係情報を与える。
【0034】
一部の態様では、結合コンポーネント114が、時系列に関するデコードされる収束したRNNを結合して転置することができる。解析コンポーネント116は、時系列間依存関係文脈ベクトルをさらに決定し、RNN依存関係デコーダを決定することができる。文脈ベクトルが方程式11で計算され、時系列間の注意ベータが方程式10で計算される。
【0035】
解析コンポーネント116は、この決定された時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを使用して、データにおける時系列間依存関係を抽出し、時系列データの値を予測することができる。時系列間依存関係は、(RNNが収束した後に)方程式11に示されているベータを使用して抽出される。このベータを使用して、依存関係グラフを描画できる。新しい入力が到着するときに、実行時にベータを抽出することがき、このようにして、動的に変化する依存関係情報を与える。
【0036】
一部の実施形態では、計算コンポーネント110は、連続的データ(例えば、多変量時系列データ)における長期間の依存関係(例えば、実体によって決定された時間ウィンドウにわたる、株式市場の時系列データにおける長期傾向)を捕捉するために、回帰型ニューラル・ネットワーク(RNN)内でゲート付き回帰型ユニット(GRU:gated recurrent units)を使用できる。そのようなGRUは、データ内のノイズの存在の影響をあまり受けないことが可能であり、時系列における線形関係および非線形関係の両方で学習およびトレーニングに使用され得る。1つの態様では、システム100は、時系列を単一の回帰モデル(例えば、回帰型ニューラル・ネットワーク)に入力しない。代わりに、開示された実施形態は、例えば、スタンドアロンのGRUネットワークによって、計算コンポーネント110を介して各時系列をエンコードできるモデルを含むことができる。さらに、結合コンポーネント114は、解析コンポーネント116と組み合わせて、時系列を入力してデコードし、各時系列内で時間差のある依存関係を検出することができる。これらのデコーディング・シーケンスは、その後、計算コンポーネント110によって、RNN内の次の隠れ層のエンコーディング・ベクトルとして使用することができ、システム100によって、多数の時系列間の相互依存関係を検出するために使用され得る。そのような手法では、本開示の実施形態は、ブラックボックス・モデルにおいて、データの時間差のある関係および相互依存関係の両方の複雑さを学習する負荷を必ずしも負う必要がなく、代わりに、モデルは、順番に依存関係を学習することができる(例えば、モデルは、データ内の時間差のある関係を最初に学習し、その後、データの相互依存関係を学習することができる)。一部の実施形態では、依存関係のこの連続的な学習は、人間の注意の階層的性質の側面を反映することができる。すなわち、連続的な学習は、時系列間の相互作用を高いレベルで最初に理解し、その後、各時系列内の1つまたは複数の時間差を、第2のより低いレベルで決定することを含むことができる。例えば、生成された各データセット内で動的で不安定な特徴を示す製造システムからの、制御された合成データおよび現実世界の多変量時系列の両方に対して、モデルの性能が示され得る。
【0037】
一部の実施形態では、通信コンポーネント118が、1つまたは複数のネットワーク(例えば、クラウド)から時系列データを取得することができる。例えば、通信コンポーネント118は、クラウド環境内で少なくとも部分的に接続された製造工場内の1つまたは複数のデバイスから時系列データを取得することができる。別の態様では、通信コンポーネント118は、クラウド環境内で少なくとも部分的に接続された計算ネットワーク上の1つまたは複数のデバイス(例えば、モバイル・デバイス、ハブ、データベースなど)から時系列データを取得することができる。
【0038】
システム100のさまざまなコンポーネント(例えば、計算コンポーネント110、結合コンポーネント114、解析コンポーネント116、またはその他のコンポーネント、あるいはその組み合わせ)は、直接、または1つまたは複数のネットワークを介して(例えば、通信コンポーネント118を介して)、接続され得る。そのようなネットワークは、セルラー・ネットワーク、広域ネットワーク(WAN:wide area network)(例えば、インターネット)、またはローカル・エリア・ネットワーク(LAN:local area network)を含むが、これらに限定されない、有線ネットワークおよび無線ネットワークを含むことができ、その非限定的な例としては、セルラー、WAN、ワイヤレス・フィディリティ(Wi-Fi)、Wi-Max、WLAN、無線通信、マイクロ波通信、衛星通信、光通信、音波通信、または任意のその他の適切な通信技術が挙げられる。さらに、前述のシステムまたはデバイスあるいはその両方は、複数のコンポーネント間の相互作用に関して説明されている。そのようなシステムおよびコンポーネントが、それらのコンポーネントもしくはそれらの内部で指定されたサブコンポーネント、指定されたコンポーネントもしくはサブコンポーネントの一部、または追加のコンポーネント、あるいはその組み合わせを含むことができるということが、理解されるべきである。サブコンポーネントは、親コンポーネント内に含まれるのではなく、他のコンポーネントに通信可能なように結合されたコンポーネントとして実装することもできる。さらに、1つまたは複数のコンポーネントまたはサブコンポーネントあるいはその両方を、集合的機能を提供する単一のコンポーネントに結合することができる。コンポーネントは、簡潔にするために本明細書では具体的に説明されないが、当業者によって知られている1つまたは複数の他のコンポーネントと、相互作用することもできる。
【0039】
さらに、実行されるプロセスの一部は、特定の状況においてさまざまな種類のニューラル・ネットワークに関連する定義されたタスクを実行するための特殊なコンピュータによって実行され得る。対象のコンピュータ処理システム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせは、技術、コンピュータ・ネットワーク、インターネットなどにおける進歩によって生じる新しい問題を解決するために採用され得る。
【0040】
本明細書に記載されたデバイスの実施形態は、本明細書に記載された1つまたは複数の特徴を自動化することを容易にするために、人工知能(AI:artificial intelligence)を採用することができる。コンポーネントは、本明細書で開示されたさまざまな実施形態/例を実行するために、さまざまなAIに基づく方式を採用することができる。本明細書に記載された多数の決定(例えば、決定、確認、推測、計算、予測、予知、推定、導出、予測、検出、算出)を提供または支援するために、本明細書に記載されたコンポーネントは、そのコンポーネントにアクセス権限が付与されたデータの全体またはサブセットを調べ、イベントまたはデータあるいはその両方を介して捕捉された観測のセットから、システム、環境などの状態に関する推論を提供するか、またはそのような状態を決定することができる。決定は、特定の状況または動作を識別するために採用することができ、または例えば、複数の状態にわたる確率分布を生成することができる。決定は、確率的であることができ、すなわち、データおよびイベントの考慮に基づく、対象の複数の状態にわたる確率分布の計算であることができる。
【0041】
決定は、イベントまたはデータあるいはその両方のセットからより高いレベルのイベントを作成するために採用される技術のことを指すこともある。
【0042】
そのような決定は、イベントが密接な時間的近接性において相関性があるかどうか、ならびにイベントおよびデータが1つまたは複数のイベントおよびデータ・ソースから来るかどうかにかかわらず、観測されたイベントまたは格納されたイベント・データあるいはその両方のセットからの新しいイベントまたは動作の構築をもたらすことができる。本明細書で開示されるコンポーネントは、請求される主題に関連して自動動作または決定された動作あるいはその両方を実行することに関連して、さまざまな分類((例えば、トレーニング・データを介して)明示的にトレーニングされた分類および(例えば、行動の観測、嗜好、履歴情報、外部情報の受信などを介して)暗黙的にトレーニングされた分類)方式またはシステム(例えば、サポート・ベクター・マシン、ニューラル・ネットワーク、エキスパート・システム、ベイジアン・ビリーフ・ネットワーク、ファジー理論、データ融合エンジンなど)あるいはその両方を採用できる。したがって、分類方式またはシステムあるいはその両方を使用して、複数の機能、動作、または決定、あるいはその組み合わせを自動的に学習し、実行することができる。
【0043】
分類器は、入力属性ベクトルz=(z1,z2,z3,z4,...,zn)を、f(z)=confidence(class)のように、入力がクラスに属するということの信頼性にマッピングすることができる。そのような分類は、自動的に実行する動作を決定するために、確率または統計あるいはその両方に基づく解析(例えば、有用性およびコストを解析で考慮する)を採用することができる。サポート・ベクター・マシン(SVM)は、採用され得る分類器の一例であることができる。SVMは、可能性のある入力の空間内の超曲面を発見することによって動作し、超曲面は、トリガー基準を、非トリガーイベントから分離しようとする。直感的には、これによって、トレーニング・データに近いが、同一ではないデータをテストするために、分類を正確にする。その他の有向または無向のモデル分類手法は、さまざまなパターンの独立性を提供する、例えば、単純ベイズ、ベイジアン・ネットワーク、決定木、ニューラル・ネットワーク、ファジー理論モデル、または確率的分類モデル、あるいはその組み合わせを含む。分類は、本明細書において使用されるとき、優先度のモデルを開発するために利用される統計的回帰も含む。
【0044】
図2は、本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の依存関係のニューラル・ネットワークに基づく検出のために開示されたモデルの態様が採用され得る、例示的な製造環境の概略図を示している。
【0045】
1つの例示的な環境では、本開示の実施形態は、複雑な電子デバイスの製造に使用される製造工場などの、製造工場202の状況において使用され得る。具体的には、製造工場202では、製品(例えば、チップまたはその他のコンピュータのコンポーネント)が製造パイプラインのさまざまなコンポーネントを通過するときに、製品を反復的に処理できるように、製造パイプラインが使用されることがある。さらに、本発明の1つまたは複数の実施形態は、製造パイプラインの異なる部分に位置する1つまたは複数のセンサから測定データを取得することができ、そのような測定データは、測定データ間の依存関係を有することがあり、製造パイプライン内で発生する特定の物理的プロセスを示し、それらのプロセスと相関関係を持つことができる。
【0046】
述べたように、そのような製造工場202には、製造工場202内のさまざまな機械およびプロセスから情報を収集できる複数のセンサが存在することがある。そのようなセンサは、製造工場内のさまざまな位置で温度、電力、電流、電圧、圧力などの変数を監視し、そのような測定204から多変量時系列データを生成することができる。
【0047】
測定204は、開示されたモデル206に入力され得る。一部の実施形態では、モデル206は、測定204の多変量時系列データにおける動的依存関係を抽出することができ、例えば、
図6Aのステップ638の文脈において示されているように、時系列データ内の未来の値をさらに予測することができる。
【0048】
別の態様では、モデル206を実行するデバイス(例えば、コンピュータ)は、解析コンポーネント(
図1の解析コンポーネント116に類似している)から出力を受信し、監視された変数(例えば、温度、電力、電流、電圧、圧力など)間のさまざまな関係およびそれらの関係の強度をプロットするセンサ相互作用グラフ208を出力することができる。解析コンポーネントは、モデル206を使用して、多変量時系列データ(例えば、未来の温度、電力、電流、電圧、圧力など)の未来の値を表すことができる予測値210をさらに生成することができる。
図6Bに示されているコンポーネント651で予測値が計算され、方程式13を使用して未来の値を計算することができる。方程式13は、開示された実施形態で使用されるモデルのGRUコンポーネントによって使用されるが、方程式13は、システムの実装において使用されるRNNモデルに基づいて変化することがある。したがって、方程式13は、未来の値の計算および予測の1つのやり方を表すことができる。
【0049】
一部の実施形態では、センサ相互作用グラフ208または予測値210あるいはその両方を使用して、例えば、実体または操作者にフィードバック212を提供することができる。さらに、センサ・データ間の依存関係における変化は、製造プロセスにおける変化を示していることがある。例えば、依存関係における変化は、製造プロセスにおいて機械によって使用されている使い古した部品から生じることがある。そのような使い古した部品は、1つまたは複数の他の部品が、使い古した部品における欠陥を補償しようとすることを引き起こす可能性がある。例えば、故障している部品の過熱を弱めるために、冷却システムが通常よりも早く動作を開始することがある。開示されたモデルによって、そのような相互作用が検出され、実体の注意を喚起することができる。例えば、モデルを実行しているコンピュータは、実体に関連付けられたデバイス(例えば、モバイル・デバイス)の相互作用に関連する、対応するメッセージ、グラフ、または画像を提供できる。
【0050】
図3は、本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の依存関係のニューラル・ネットワークに基づく検出のために開示されたモデルの解析コンポーネントが採用され得る、例示的なネットワーク環境の図を示している。
【0051】
具体的には、本開示の実施形態は、さまざまな計算コンポーネント(例えば、中央処理装置(CPU:central processing unit)、ネットワーク・スループット、メモリ読み取り/書き込み動作など)の監視指標との関連において使用され得る。一部の実施形態では、この監視は、アプリケーション・レベルおよびインフラストラクチャ・レベルで実行することができ、監視された変数は、互いに固有の依存関係を有することがある。例えば、この監視は、CPUがより高いクロック速度で利用される前にネットワーク・トラフィックが急上昇することの決定につながることがある。別の態様では、製造システムにおいて、他の変数の前に、一部の監視値が監視に使用可能であることができる。例えば、ネットワーク・クローラを使用してCPU使用状況の値が決定される前に、ネットワーク使用状況指標が使用可能であることがある。そのような依存関係(時間差のある依存関係を含む)。時間差のある依存関係は、1つまたは複数の時系列の過去の値に対する時系列値(例えば、現在または未来)の依存関係である。時間差のある依存関係は、2つ以上の時系列の時間差のある依存関係が別の時系列の値に影響を与える多変量の設定において、決定するのが困難であることがある。
【0052】
述べたように、そのようなネットワーク環境302では、1つまたは複数のホストおよびデータベース・サーバが、1つまたは複数のソースから多変量時系列データを決定することができる。例えば、ネットワーク環境302から決定された時系列データ304の1つのセットは、ある期間にわたるCPU使用率を含むことができる。ネットワーク環境302から決定された時系列データ306の別のセットは、ある期間にわたるネットワーク使用率を含むことができる。ネットワーク環境302から決定された時系列データ308の第3のセットは、ある期間にわたるディスク読み取り/書き込み使用率を含むことができる。発明されたモデルの1つまたは複数の実施形態は、さまざまな時系列データ(例えば、時系列データ304、306、および308の第1、第2、および第3のセットなど)を受け取り、時間的に変化する依存関係グラフ310を決定することができる。時間差のある依存関係における関係を示すための時間的に変化する依存関係グラフ(例えば、
図8に関連して示され、説明されているセンサ依存関係グラフ)が、方程式7のアルファおよび方程式11のベータを使用して生成され得る。追加の入力がモデルに供給されるときに、実行時にアルファおよびベータを抽出することがき、このようにして、時系列データに関する動的に変化する依存関係情報を生成する。この時間的に変化する依存関係グラフ310は、データ・セット間およびデータ・セット自体の内部の両方の、変化する時系列データ間の相互関係および依存関係を示すことができる。そのような依存関係(時間差のある依存関係を含む)は、例えば、リソース使用率管理および停止の警告の提供を含む、性能管理を提供することにおいて使用され得る。例えば、解析コンポーネント(モデルの解析コンポーネント116に類似するが、必ずしも同一である必要はない)が、未来の停電につながる可能性のあるCPUの大量の使用が存在するということを決定した場合、解析コンポーネントは、実体がネットワークに対して保護ステップを実行できるように、フィードバックを1つまたは複数の実体に提供してよい。
【0053】
図4は、本明細書に記載された1つまたは複数の実施形態に従って、開示されたモデルの計算コンポーネントおよび解析コンポーネントによって採用され得る例示的なニューラル・ネットワーク・アーキテクチャの図を示している。
【0054】
具体的には、RNNは、ユニット間の接続がニューラル・ネットワークの所与のシーケンスに沿って有向グラフを形成できる、特定の種類のニューラル・ネットワークを含むことができる。一部の実施形態では、RNN402に示されているように、RNNのニューロンが、情報をRNNにフィードバックすることができる。
【0055】
さらに、一連のRNNセル404において、各セルが、(述べられたフィードバック機構に加えて)ネットワーク内の他のニューロンに情報をさらに供給できる。一部の実施形態では、開示されたモデル(
図5および
図6の状況において説明されている)は、内蔵メモリ・セル(図示されていない)を介した状態保持機構を含んでいるRNNの一種と考えることができる、長短期記憶(LSTM:long-short term memory)およびゲート付き回帰型ユニット(GRU)を使用することができる。
図5および
図6を参照して本明細書において説明されるように、そのようなLSTMおよびGRUを、多変量時系列データの解析および予測において使用することができる。一部の態様では、GRUは、RNNのゲーティング機構として使用され得る。
【0056】
別の態様では、
図5および
図6に関連して本明細書において説明されるモデルは、ニューラル・ネットワークにおいて使用され得る注意機構を含むことができ、この注意機構は、人間において見られる視覚的注意機構に大まかに基づくことができ、
図5および
図6に関連してさらに説明される。特に、ニューラル機械翻訳(NMT:neural machine translation)の状況において、エンコーダ/デコーダ・アーキテクチャを使用して、テキスト/文の注意ベクトルを生成することができ、注意ベクトルは、特定の単語を正しく翻訳するために、より重要な文の単語により大きい重みを割り当てることができる。そのような注意機構は、ニューラル・ネットワークの決定挙動を理解することにおいて役立つことができ、例えば、単語が可能性のある翻訳に翻訳される確率を生成するために使用され得る。同様に、注意機構は、入力された多変量時系列データ間の時間的に変化する時間差のある依存関係および相互依存関係を決定するために、本明細書に記載されたモデルの解析コンポーネントおよび計算コンポーネントによって使用され得る。
【0057】
図5は、本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の時間的依存関係および相互依存関係の動的検出のために計算コンポーネント、結合コンポーネント、および解析コンポーネントによって使用され得るモデルの例示的な図を示している。具体的には、
図500は、時系列間の時間的に変化する時間差のある依存関係および相互依存関係を捕捉するために2レベルの注意機構(下で説明される)を含んでいる多層RNNを示している。入力層502は、1つまたは複数の時系列データ(例えば、時系列データ505)を受信することができる。入力層502は、エンコーディング層512に供給することができ、エンコーディング層512では、本明細書において説明されているように、時系列データがRNNの隠れ状態(例えば、RNNに関連付けられたパラメータであり、隠れ状態は、時系列の現在の値およびRNN内の前の隠れ状態に基づいて計算される)にエンコードされる。次に、エンコーディング層512は、時間的文脈ベクトル決定層526に供給することができ、時間的文脈ベクトル決定層526では、時間的文脈ベクトルが決定され得る。時間的文脈ベクトルについては、下で、
図6Bに関連する数学用語および関連する説明において、さらに説明される。層526内の時間的文脈ベクトルは、層538内の時間的デコーディングRNNの隠れ状態と、層526内のエンコーディングRNNによって学習された隠れ状態の各々との間の比較によって決定することができ、モデルにおける注意機構を表すことができる。この注意機構に基づいて、入力層502に入力された多変量時系列データ内の時系列データのセットごとに、時系列データの時間差のある依存関係が決定され得る。時系列データのセット(例えば、他の時系列データに加えて、時系列データ505)ごとの時間的デコーディング層538の出力が、状態結合層540に供給され得る。状態結合層540は、時系列データを結合し、依存関係デコーディング層550と相互作用して、異なる時系列間の依存関係を決定することができる。
【0058】
述べたように、上で
図4に関連して説明されたRNNの態様を採用するRNNに基づくモデルは、(例えば、時間的文脈ベクトル決定層526で第1の注意レベル機構を介して)各時系列内の時間的依存関係、および(例えば、状態結合層540で、およびより広く依存関係デコーディング層550で、第2の注意レベル機構を介して)時系列間の依存関係を学習するために使用され得る注意機構を含むことができる。RNNの出力は、
図6Aおよび
図6Bに関連して説明されているように、時系列データのうちの1つまたは複数の、解析コンポーネント116の出力をグラフに描くことによって、例えば、未来の値を予測することにおいて使用され得る。
【0059】
一部の実施形態では、両方の注意層を、エンコーディング層512と共に同時にトレーニングして、時系列データ間の依存関係を検出することができる。
【0060】
一部の実施形態では、時系列の未来の値を予測するために、第2の注意レベル機構に含まれているRNNに基づくモデルの重みは、各時系列からの情報が所与の予測にどのくらい寄与するかの決定を可能にすることができる。方程式11のベータは、
図6Bのシステムにおいて、特定の時系列に関する文脈ベクトルへの入力として使用される情報を制御する。
【0061】
別の態様では、第1の注意レベル機構に含まれているRNNに基づくモデルの重みは、構成された時系列の各々におけるどの過去の値が所与の予測にとって重要であるかの決定を可能にすることができる。一部の実施形態では、そのような依存関係は、時系列データの所与のグループ内の未来の予測値ごとに、変化することができる。
【0062】
図6Aおよび
図6Bは、本明細書に記載された1つまたは複数の実施形態に従って、多変量時系列データ間の時間的依存関係および相互依存関係のニューラル・ネットワークに基づく検出のためのモデルの他の例示的な図を示している。具体的には、
図6Aの
図600に示されているように、入力データが602(例えば、データ収集コンポーネント)で受信され得る。一部の実施形態では、入力データは、第1の時系列(TS1)、第2の時系列(TS2)などから、第dの時系列(TSd)までとして表され得る多変量データを表すことができ、dは正の整数である。604で、TS1が、RNNに基づくモデルによってエンコードされ得る。同様に、606で、TS2が、RNNに基づくモデルの計算コンポーネント(
図1の計算コンポーネント110に類似する)によってエンコードされ得る、などとなり、そのようにして、608で、TSdが、RNNに基づくモデルの計算コンポーネントによってエンコードされ得る。610で、計算コンポーネントによって、RNNに基づくモデルが収束したかどうかを決定することができ(TS2を含んでいる動作612から、TSdを含んでいる動作614までの場合も同様である)、システム内のすべてのRNNを同時に、一緒にトレーニングすることもできる。616で、計算コンポーネントによって、TS1の時間的文脈ベクトルが決定され得る。同様に、618で、計算コンポーネントによって、TS2の時間的文脈ベクトルが決定され得る、などとなり、そのようにして、620で、TSdの時間的文脈ベクトルが決定され得る。622で、RNNに基づくモデルは、計算コンポーネントによって、TS1の時間的文脈ベクトルを使用して、TS1における時間差のある時間的依存関係をデコードできる。同様に、624で、RNNに基づくモデルの計算コンポーネントは、TS2の時間的文脈ベクトルを使用して、TS2における時間差のある時間的依存関係をデコードすることができる、などとなり、そのようにして、626で、RNNに基づくモデルの計算コンポーネントは、TSdの時間的文脈ベクトルを使用して、TSdにおける時間差のある時間的依存関係をデコードすることができる。628で、RNNに基づくモデルの結合コンポーネントは、前の動作622、624から626までの出力(例えば、各時系列のデコードされた時間的依存関係)を結合して転置することができる。別の態様では、RNNに基づくモデルの解析コンポーネントによって、前の動作622、624から626までの出力(例えば、各時系列のデコードされた時間的依存関係)を使用して、時間的依存関係を抽出し、動作634で、その結果を、例えば実体に出力することができる。代替的または追加的に、630で、RNNに基づくモデルの解析コンポーネントによって、動作628の出力(例えば、前の動作622、624から626までの結合されて転置された出力)を使用して、時系列間依存関係文脈ベクトルを決定することができる。632で、RNNに基づくモデルの解析コンポーネントによって、630からの時系列間依存関係文脈ベクトルおよび動作628の出力を使用して、(i)636で、TS1、TS2、...TSdにおける時系列間依存関係を抽出し、(ii)638で、TS1、TS2、...TSdの未来の値を予測することができる。
【0063】
一部の実施形態では、本開示は、X={x
1,x
2,...,x
T}によって示される長さTのD個の変数(時系列のメンバー)を含む多変量時系列(MTS:multivariate time series)システムを含み、各x
t∈R
Dは、時間tでのMTSの測定の観測値である。第dの時系列は、
【数1】
によって示すことができ、
【数2】
は、時間tでの測定を表すことができる。そのようなMTSシステムを前提として、MTSは、所与の時間tでの次の2つの側面から、
図1の計算コンポーネント110によって解析することができる:(i)MTSの未来の測定が、個々の時系列の過去の値にどのように依存するか(例えば、時間差のある依存関係)、(ii)異なる時系列の測定が、互いにどのように依存するか(例えば、時系列間依存関係)。一部の実施形態では、モデルの計算コンポーネントおよび解析コンポーネント(
図1の計算コンポーネント110および解析コンポーネント116に類似するが、必ずしも同一である必要はない)を使用して、時間的に変化する依存関係を捕捉し、任意の時間tでの動的に変化する依存関係を特徴付けることができる。時間的に変化する依存関係の検出は、例えば、製造工場の根底にある挙動を理解して監視するため、またはコンピュータおよびストレージ・クラウドにおけるリソース使用率を最適化するために、使用することができる。MTSシステムにおける時系列の予測精度は、予測器がどの程度効率的に選択されたかに依存することがある。一部の実施形態では、MTSシステムにおいて、これらの時間差のある依存関係および相互依存関係を取得することができ、これらの依存関係を使用して、時系列の未来の値を効率的に予測することができる。
【0064】
一部の実施形態では、モデルは、RNNと共に深層学習を含むことができる。モデルのアーキテクチャは、各時系列内の時間差のある依存関係、および時系列間の相互依存関係という2種類の依存関係を検出しながら、出力でのMTSの未来の次の値を予測することにおいて、使用することができる。
【0065】
図6Bは、本開示の実施形態例に従って、モデルのアーキテクチャ全体の別の図を示している。具体的には、(1)で、入力層での多変量時系列を前提として、エンコーディングRNN層650がRNNネットワークのセットを含むことができ、各RNNネットワークが、対応する入力時系列シーケンスをエンコーディング・ベクトルのシーケンスにエンコードすることによって、システム内の個々の時系列を処理する。(2)で、次の二重目的のRNN層652(本明細書では、下で説明される理由により、二重目的のGRU層とも呼ばれる)も、RNNのセットを含むことができ、各RNNが、1つの構成された時系列から時間差のある依存関係を学習し、その後、それらの依存関係を一連の出力状態として出力する。具体的には、下で説明されているように、時間的文脈ベクトルを使用して、各RNNが、対応する時系列内の最も関連する時間差のある位置に注意を払うことができるようにすることが可能である。方程式6および7のアルファは、
図6Bのシステムにおいて、特定の時系列の文脈ベクトルに入る過去の値からの情報を制御する。このアルファは、
図6Bのシステム651の出力での値に大きな影響を与える時系列データ内の時間差のある値に対して、より大きい値を持つことができる。(3)で、前の層内のRNNからの出力状態のシーケンスを一緒に収集することができ、変換層654によって、各出力状態をより高い次元のベクトルに変換することができる。そのようなベクトルは、時系列間の相互依存関係の次のレベルの識別の前の、構成された時系列を表すエンコーディングであると見なされ得る。(4)で、最後のデコーディングRNN層656は、システム全体の最終的な出力で各時系列の次の値を予測することに向けて、最も情報を与える入力高次元ベクトルを識別することによって、時系列間の相互依存関係を検出できる。方程式10および11のベータは、
図6Bのシステムでの文脈ベクトルの決定において使用されている各時系列からの情報を制御することができる。このベータは、
図6Bのシステム651の出力での値に大きな影響を与える時系列データに対して、より大きい値を持つことができる。
【0066】
モデル601は、次の特徴を含むことができる。(i)モデル601は、多層手法を採用することができ、この多層手法は、個別のRNNを使用してエンコーディング層650で構成された各時系列を学習することができ、モデルが各時系列内の時間差のある依存関係を検出できるようにする。このようにして、モデルは、すべての時系列を単一のRNNネットワークに詰め込むことを行わない。(ii)さらに、モデル601は、二重目的のRNN層652を利用することができ、RNN層652は、時間的領域において情報をデコードしながら、同時に情報を新しい特徴エンコーディング・ベクトル(feature encoding vector)にエンコードし、より高い層での相互依存関係の検出を促進する。(iii)時間差のある依存関係および相互依存関係の検出は2つの階層レベルで分離され得るが、それらの階層レベルは密接に接続されており、体系的方法で一緒にトレーニングされる。これは、第1の種類の依存関係の改善された機械学習を可能にすることができ、他の種類の依存関係の機械学習に影響を与えるために使用され得る。
【0067】
述べたように、一部の実施形態では、GRUは、開示されたモデル601においてRNNとして使用され得るとして説明される。具体的には、GRUが、ゲーティング機構を介したシーケンスにおける長期間の依存関係を捕捉するという点において、GRUは、長短期記憶ユニットに類似することができる。具体的には、GRU内に2つのゲート(リセット・ゲートrtおよび更新ゲートzt)が存在することができ、次の方程式によって、これらのゲートをそれぞれ計算できる。
rt=σ(Wrxt+Urht-1+br) (1)
zt=σ(Wzxt+Uzht-1+bz) (2)
【0068】
ここで、σは非線形シグモイド関数を表すことができ、x
tは時点tでの入力であり、h
t-1はGRUの前の隠れ状態であり、パラメータW、U、およびbは、それぞれ入力重み行列、回帰重み行列、およびバイアス・ベクトルである(簡単にするために、添字は省略されている)。リセット・ゲートr
tは、現在の候補状態
【数3】
(下の方程式3)に対する前の状態の影響を制御することができ、更新ゲートz
tは、追加される新しい情報x
tの量および維持される過去の情報h
t-1の量を制御する。これらに基づき、線形補間によって、新しい隠れ状態h
tを更新することができる(下の方程式4)。
【0069】
【0070】
方程式(3)および(4)では、下記演算子
【数5】
は要素ごとの積を参照することができ、上と同様に、W
h、U
h、b
hはGRUのパラメータを表すことができる。前述の計算手順は、以下では、単にh
t=GRU(x
t,h
t-1)によって(すなわち、内部のゲーティング計算を省略して)参照され得る。
【0071】
一部の実施形態では、トレーニング段階の間に、多変量時系列における単一の時点で、開示されたモデルは、データ収集コンポーネントによってD個のシーケンスを入力として受信することができ、各シーケンスは、サイズがmであり、1つのコンポーネントの時系列からの過去の時点に対応する。モデルは、解析コンポーネントによって、時系列の次の時点の値を表すことができるシーケンスまたはベクトルy={y1,...,yD}を出力することができる。入力シーケンスのセットを出力シーケンスにマッピングするためのトレーニング中に、モデルは、各コンポーネントの時系列内の時間差のある依存関係および現在のタイムスタンプでのすべての時系列間の相互依存関係を検出することができる。以下の説明では、インデックスdによって示された特定のコンポーネント時系列について、時間差のある依存関係を検出する計算ステップについて説明する。このステップは、システムに含まれる他の時系列およびモデルにも適用可能である。
【0072】
第dの時系列で、エンコーディングRNN層650の計算コンポーネントは、m個の値のシーケンスを、
【数6】
によって示された最後のm個の過去の時点から受信することができ、エンコーディングRNN層650の計算コンポーネントは、このシーケンスを、第dの時系列内の時間差のある依存関係を検出するための注意機構と共に、別のGRU(下で説明される)に基づいて、隠れ状態のシーケンス
【数7】
にエンコードすることができる。隠れ状態
【数8】
は、入力シーケンスを表すか、または注釈を付けることができ、時間差のある依存関係の決定を可能にすることができ、回帰プロセスが過去の情報をこれらの隠れ状態にエンコードする。一部の実施形態では、注意機構が連続時系列に適用されるときに、注意機構は最後の隠れ状態を強調することがあり、したがって、モデルが正しい時間差のある依存関係を識別するのを困難にすることがある。この影響は、個別の単語を操作する言語翻訳モデルでは、あまり目立たないことがあるが、連続時系列の場合に、より顕著になる。したがって、双方向GRUを使用することができ、双方向GRUは、モデルが入力シーケンスを2回通過し、次の方程式(5)によって明示的に計算されているように、両方向からの情報を利用できるようにすることができる。
【0073】
【0074】
一部の実施形態では、開示されたモデルは、前の層内の第dの時系列で、エンコーダRNNに関連して、二重目的のRNN層内の対応するGRUネットワークをトレーニングすることができる。タイムスタンプtで、モデルは、現在の隠れ状態
【数10】
、前の出力
【数11】
、および時間的文脈ベクトル
【数12】
に基づいて、層の出力値
【数13】
(下で説明される)を計算することができる。文脈ベクトル
【数14】
の計算において、GRUは、表現ベクトル
【数15】
ごとに、j=1...mについて、注意の重み
【数16】
を生成することができる。注意機構は、出力値間の時間順序を依然として維持しながら、開示されたモデルが、最も関連する情報がある特定のタイムスタンプに注目できるようにすることができる。数学的には、この二重目的のGRU層652で、次の方程式(6)~(9)を計算する。
【0075】
【0076】
ここで、
【数18】
は、学習される必要のある層のパラメータを表すことができる。スカラ
【数19】
が、注釈ベクトル
【数20】
の重要度を時間的文脈ベクトル
【数21】
の計算に反映し、その後、層の出力
【数22】
に反映するため、スカラ
【数23】
を使用して、この第dの時系列に関して時間差のある依存関係を決定することができる。スカラ
【数24】
の計算は、GRUの隠れ状態とエンコードされた注釈ベクトル
【数25】
の各々との間の正規化アライメントとして表すことができ、次に、さまざまなやり方で測定され得る。例えば、この測定は、ベクトル・ドット積
【数26】
の単純な形態として実行され得る(同じ隠れユニットを含んでいる2つの層内のGRUを仮定する)。この測定は、
【数27】
の計算によっても実行され得る(GRUが異なる隠れユニットの数を含んでいる場合)。さらに、この計算は、
【数28】
の一般的な連結形態として実行することができ、W
aおよびv
aは、層全体で一緒にトレーニングされる。
【0077】
述べたように、この時間的領域で開示された注意機構は、ニューラル機械翻訳(NMT)で採用されている一般的な考え方に従うことができるが、少なくとも2つの側面で異なることができる。第1に、時系列の連続領域を処理するために、開示されたモデルは、出力で双曲正接(tanh)関数を使用することができる。第2に、層の出力値
【数29】
に対してグランドトゥルース(例えば、NMTにおける対象の文)を決定することはできないが、開示されたモデルは、グランドトゥルースを自動的に学習することができる。さらに、グランドトゥルースの埋め込み情報は、開示されたモデル601の上層内の時系列間の相互依存関係の学習の品質に直接影響を与えることができる。具体的には、
【数30】
は、時間差のある依存関係および相互依存関係の検出の2つのレベル間を橋渡しする情報として機能することができる。したがって、GRU層652は、実質的に同時に次の2つのタスクを実行できる。(i)GRU層652は、個々の時系列内の最も情報を与える過去の時点を検出するために、時間的領域内の情報をデコードできる。(ii)GRU層652は、この時間的情報を出力値のセット
【数31】
にエンコードすることができ、下で説明されているように、この出力値のセットが、すべての時系列から収集され、すべての時系列間の相互依存関係の検出の次の層の入力を形成する。このため、この層は、本明細書では二重目的のRNN652と呼ばれることがある。
【0078】
第dの入力時系列でシーケンス
【数32】
を生成する上記の二重目的のRNN層652の後に、変換層654の結合コンポーネントが、これらのシーケンスをD個の構成された時系列のすべてから収集することができ、その後、各シーケンスを高次元特徴ベクトルに変換する変換ステップを実行する。これらのベクトルは、シーケンスに積み重ねることができ、{v
1,v
2,...,v
D}によって示され得る。これらのベクトルに特定の時間次元が存在しないことがあり、積み重ねられたシーケンスにおけるベクトルの順序は、開示されたモデルのトレーニングの前にのみ指定される必要があってよい。これによって、開示されたモデルがその後の層内の時系列間の相互依存関係を決定するときに、正しい解釈を保証することができる。
【0079】
デコーディングRNN層656の解析コンポーネントは、単一のGRUネットワークを備えることができ、このGRUネットワークは、時系列間依存関係の検出を実行しながら、モデルの出力でyiごとの予測も行う。注意生成機構を、次の計算ステップと共に使用することができる。
【0080】
【数33】
q
i=GRU(q
i-1,c
i) (12)
y
i=tanh(C
oc
i+U
oq
i+b
o) (13)
【0081】
具体的には、注意の重みを取得するために、エンコーディング・ベクトルv
d(この段階では、入力時系列ごとに特徴付けられる)の各々を使用して、GRUの隠れ状態q
i-1のアライメントが計算され得る。これらの生成された注意の重みを使用して、文脈ベクトルc
iを決定することができ、次に、この文脈ベクトルを使用して、GRUの現在の隠れ状態q
iを更新することができ、結局、出力y
iを更新することができる。述べたように、C
oおよびU
oは、学習される層のパラメータを表すことができる。y
iを第iの時系列の次の値にすることによって、方程式(11)に見られる係数
【数34】
を使用して、文脈ベクトルc
iの構築およびその後の予測値y
iの構築において、第dの時系列(v
dによって表される)がどの程度重要であるかを決定することができる。言い換えると、係数
【数35】
は、現在のタイムスタンプでの第dの時系列に対する第iの時系列の依存関係を示すことができる。一部の実施形態では、
【数36】
が1に近づくほど、この依存関係が強くなる。したがって、ベクトルβ
iを使用して、システム内の構成された時系列(それ自身を含む)に対する第iの時系列の依存関係を決定することができる。
【0082】
したがって、一部の実施形態では、開示されたモデル601を使用して、時系列間の時間差のある依存関係および相互依存関係を決定することができるが、この決定は、通常、複数の入力シーケンスを、すべて連続的数値領域内で、1つの出力シーケンスに変換するタスクを実行することと見なすこともできる。上で提示されたように、出力シーケンスは、多変量時系列内の次のタイムスタンプの値のセットであるが、出力シーケンスを、対象の1つの時系列の次のn個の値に容易に置き換えることができる。この後者の場合、出力シーケンス内の時間的順序をさらに調べるために、方程式(12)および(13)をqi=GRU(yi-1,qi-1,ci)およびyi=tanh(yi-1,Coci+Uoqi+bo)に置き換えることができる。βiのベクトルに基づく相互依存関係に対する解釈は変わらないままであることができるが、所与の時系列に対して、次のn個の未来の時点のウィンドウにわたって、そのような解釈を実行できる。
【0083】
図7は、本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データからモデルの解析コンポーネントによって決定された変数における相互依存関係の例示的な図を示している。具体的には、ニューヨーク州アルバニーにある製造工場で異なるツールを介して収集されたセンサ・データによって、製造データセットが取得された。開示されたモデルをテストするために、5つのセンサを含んでいるデータセットのサンプルが使用された。具体的には、
図700は、(例えば、
図1の解析コンポーネントに類似する解析コンポーネントを使用して)開示されたモデルによって決定された同じ時系列データ704の依存関係の確率706に対して、異なる時系列データに対応する異なる入力シーケンス702をプロットしている。一部の実施形態では、示されている入力シーケンスは、電流、電力、電力設定点(SP:set-point)、電圧、および温度をそれぞれ含むことができる。さらに、確率706は、0~1のスケールで、約0~約0.75の範囲にわたる可能性がある。
図700は、異なるデータ・セット間の関係を示している。例えば、温度は、温度自体(例えば、温度の前の値)に最も強く依存している。さらに、
図700は、電流が電力に強く依存していることを示している。変数間の依存関係のさまざまな中間レベルも示されている。
【0084】
図8は、本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データから(例えば、
図1の解析コンポーネントに類似する解析コンポーネントを使用して)モデルの解析コンポーネントによって生成されたセンサ相互作用グラフの例示的な図を示している。具体的には、
図800は、電力802、温度804、電圧806、電流808、および電力設定点(SP)810の間の関係および依存関係を示している。例えば、特定の変数(例えば、電流)が、1つまたは複数の物理現象を介して(例えば、電流が導体を通るときに熱が発生するプロセスのことを指す、ジュール加熱を介して)、またはネットワークの影響を介して、他の変数(例えば、温度)に影響を与えることがある。
図800は、具体的には、矢印を介した関係を示すことができ、この矢印は、独立変数から対応する従属変数へ、または予測変数から予測される変数への方向を示している。別の態様では、凡例812は、これらのさまざまな変数間の関係の強度を示しており、この強度は、第1のレベルの依存関係(相対的に最も強い)と第4のレベルの依存関係(相対的に最も弱い)との間で変化することができる。例えば、電力802がそれ自身、電力設定点810、および電圧806によって最も強く影響を受けているということに、注目することができる。別の例では、温度804がそれ自身によって最も強く影響を受けており、電圧による影響(第2のレベルの依存関係)をさらに受ける可能性があるということがわかる。具体的には、依存関係グラフは、システムが電流を最初に調整し、次に電力を調整して、所与の電力SPを達成できるということを示している。
【0085】
図9は、本明細書に記載された1つまたは複数の実施形態に従って、製造工場でセンサから取得された多変量データから(例えば、
図1の解析コンポーネントに類似する解析コンポーネントを使用して)モデルの解析コンポーネントによって生成された予測されたセンサ値の例示的な図を示している。
【0086】
具体的には、
図8の状況において監視され、説明される例示的なシステムの場合、モデルは、センサ値(例えば、電力、温度、電圧、電流、および電力SPのセンサ値)の未来の値をさらに予測することができる。プロット902に示されているように、センサ値(例えば、電力、温度、電圧、電流、および電力SPのセンサ値)の各々の真値と予測値との間の差異は、類似していることがある。さらに、プロット904は、モデルがトレーニングされるにつれて、トレーニングとシミュレーションとの間の一致が増えるということを示している。さらに、表906に示されているように、センサの予測値および実際の値(例えば、電力、温度、電圧、電流、および電力SPのセンサ値)に関する二乗平均平方根誤差(RMSE:root-mean square error)、平均絶対誤差(MAE:mean absolute error)、および決定係数(R-squaredまたはR2)などのさまざまな誤差指標は、センサの予測値と実際の値との間の良好な適合を示している。例えば、センサ値のRMSEは1未満であり、センサ値のMAEは0.01未満であり、センサ値のR2はほぼ1である。
【0087】
図10は、本明細書に記載された1つまたは複数の実施形態に従って、ルールに基づく合成データセットからモデルの解析コンポーネントによって生成された予測値の例示的な図を示している。具体的には、ルールに基づく合成データセット(
図11に関連して下で説明される)は、開示されたモデルの能力をテストして検証するために生成され得る。1つの態様では、合成データセットは、クラウド・プラットフォームの性能データをシミュレートすることができる。したがって、CPUの時系列データと、開示されたモデルからの対応する予測値との間の一致を比較することによって、モデルが異なる性能指標間の依存関係を検出できるかどうかをチェックするためのルールを使用して、それらの依存関係を導入することができる。プロット1002は、CPUの時系列データと対応する予測値との間の一致(上のグラフ)、およびMEMの時系列と対応する予測値との間の一致(下のグラフ)を示している。さらに、プロット1004は、モデルがトレーニングされるにつれて、CPUまたはメモリ(MEM)あるいはその両方の使用状況に関する時系列データの予測された未来の値に関して、トレーニングの値とシミュレーションの値との間の一致が増えるということを示している。
【0088】
図11は、本明細書に記載された1つまたは複数の実施形態に従って、モデルによって決定されたルールに基づく合成データセットにおける時間的依存関係および相互依存関係の例示的な図を示している。具体的には、依存関係のルールは次のようなものとすることができる。(1)CPU(t-8)>0.5である場合、CPU(t)=CPU(t-6)+MEM(t-3)、および(2)MEM(t)=CPU(t-3)。そうでない場合、(3)CPU(t)=CPU(t-4)、および(4)MEM(t)=MEM(t-3)+MEM(t-6)。1102に、導入された依存関係が示されている。具体的には、上のプロットの場合、時間tでのCPUの値は、4時間単位(TU:time unit)前でのCPUの値に依存し、一方、時間tでのメモリの値は、3および4時間単位前でのメモリの値に依存する。さらに、下のプロットは、時間tでのCPUの値が、6TU前のCPUの時間値および3時間単位前のメモリの値に依存するということを示している。さらに、時間tでのメモリの値は、3時間単位前のCPUの値に依存する。プロット1104に示されているように、上および下のプロットは、両方とも、モデルが、上記のルールを使用して作成された合成データの解析から多変量データ系列間の関係および相互依存関係を正しく識別できるということを示している。さらに、プロット1106および1108は、モデルが、上記のルールから生成された合成データにおける時間的依存関係を抽出することもできるということを示している。
【0089】
図12は、本明細書に記載された1つまたは複数の実施形態に従って、開示されたAIシステムおよびアルゴリズムの態様を動作させるための例示的なフローチャートを示している。具体的には、1202で、計算コンポーネントのプロセッサを使用して、それぞれの時系列データを有する少なくとも2つのRNNをエンコードし、少なくとも2つの時間的文脈ベクトルに基づいて少なくとも2つのデコードされるRNNを決定して、少なくとも2つの時系列データにおける時間的依存関係を決定することができる。1204で、結合コンポーネントは、プロセッサを使用して、少なくとも2つのデコードされるRNNを結合し、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダを決定することができる。1206で、解析コンポーネントは、プロセッサを使用して、時系列間依存関係文脈ベクトルおよびRNN依存関係デコーダに基づいて、少なくとも2つの時系列データにおける時系列間依存関係および少なくとも2つの時系列データの予測値を決定することができる。
【0090】
述べたように、例えば本明細書において
図1およびその他の図で説明された、多変量時系列データまたは1つまたは複数のコンポーネントあるいはその両方は、クラウド・コンピューティング・プラットフォームでホストされ得る。さらに、本開示に関連して使用される1つまたは複数のデータベースは、クラウド・コンピューティング・プラットフォーム上で格納されるかまたはホストされるデータベースを含むことができる。本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0091】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとの相互作用を最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0092】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的な相互作用を必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して制御することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、無制限であり、任意の量をいつでも購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブな実体のアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0093】
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的な実体固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0094】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションとの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0095】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0096】
ここで
図13を参照すると、例示的なクラウド・コンピューティング環境1300が示されている。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図示されているように、クラウド・コンピューティング環境1300は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話1304、デスクトップ・コンピュータ1306、ラップトップ・コンピュータ1308、または自動車コンピュータ・システム1310、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード1302を含んでいる。ノード1302は、互いに通信することができる。ノード1302は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化され得る(図示されていない)。これによって、クラウド・コンピューティング環境1300は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。
図13に示されたコンピューティング・デバイス1304~1310の種類は、例示のみが意図されており、コンピューティング・ノード1302およびクラウド・コンピューティング環境1300は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0097】
ここで
図14を参照すると、クラウド・コンピューティング環境1300(
図13)によって提供される機能的抽象レイヤのセットが示されている。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【0098】
図14に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0099】
ハードウェアおよびソフトウェア・レイヤ1402は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1404、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1406、サーバ1408、ブレード・サーバ1410、ストレージ・デバイス1412、ならびにネットワークおよびネットワーク・コンポーネント1414が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1416およびデータベース・ソフトウェア1418を含む。
【0100】
仮想化レイヤ1420は、仮想サーバ1422、仮想ストレージ1424、仮想プライベート・ネットワークを含む仮想ネットワーク1426、仮想アプリケーションおよびオペレーティング・システム1428、ならびに仮想クライアント1430などの仮想的実体を提供できる抽象レイヤを提供する。
【0101】
一例を挙げると、管理レイヤ1432は、以下で説明される機能を提供することができる。リソース・プロビジョニング1434は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定1436は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。実体のポータル1438は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理1440は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行1442は、未来の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0102】
ワークロード・レイヤ1444は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供できるワークロードおよび機能の例としては、マッピングおよびナビゲーション1446、ソフトウェア開発およびライフサイクル管理1448、仮想クラスルーム教育の配信1450、データ解析処理1452、トランザクション処理1454、および処理サービスに対する実体の脆弱性の評価1456が挙げられる。本発明のさまざまな実施形態は、
図13および
図14を参照して説明されたクラウド・コンピューティング環境を利用して、1つまたは複数の実体に関連付けられた委託物の処分の価値(trust disposition value)を決定するか、または委託物の処分の価値に基づいて1つまたは複数の処理サービスに対する1つまたは複数の実体の脆弱性を決定するか、あるいはその両方を行うことができる。
【0103】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0104】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えることができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0105】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、実体のコンピュータ上で全体的に実行すること、実体のコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、実体のコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して実体のコンピュータに接続することができ、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【0106】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0107】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すことができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであることもできる。
【0108】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込むこともでき、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0109】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0110】
開示される主題のさまざまな態様の状況を提供するために、
図15および以下の説明は、開示される主題のさまざまな態様が実装され得る適切な環境の概要を示すよう意図されている。
図15は、本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
図15を参照すると、本開示のさまざまな態様を実装するための適切な動作環境1500は、コンピュータ1512を含むことができる。コンピュータ1512は、処理ユニット1514、システム・メモリ1516、およびシステム・バス1518を含むこともできる。システム・バス1518は、システム・メモリ1516を含むが、これに限定されないシステム・コンポーネントを、処理ユニット1514に動作可能なように結合することができる。処理ユニット1514は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット1514として採用されてもよい。システム・バス1518は、ISA(Industry Standard Architecture)、MCA(Micro Channel Architecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、PCI(Peripheral Component Interconnect)、カードバス、ユニバーサル・シリアル・バス(USB:Universal SerialBus)、AGP(Advanced Graphics Port)、FireWire、および小型コンピュータ・システム・インターフェイス(SCSI:Small Computer Systems Interface)を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バス、あるいはその組み合わせを含む、複数の種類のバス構造のいずれかであることができる。システム・メモリ1516は、揮発性メモリ1520および不揮発性メモリ1522を含むこともできる。起動中などにコンピュータ1512内の要素間で情報を転送するための基本ルーチンを含む基本入出力システム(BIOS:basic input/output system)が、不揮発性メモリ1522に格納され得る。不揮発性メモリ1522の例としては、読み取り専用メモリ(ROM:read only memory)、プログラマブルROM(PROM:programmable ROM)、電気的プログラマブルROM(EPROM:electrically programmable ROM)、電気的消去可能プログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM:random access memory)(例えば、強誘電体RAM(FeRAM:ferroelectric RAM)が挙げられるが、これらに限定されない。揮発性メモリ1520は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ(RAM)を含むこともできる。例えばRAMは、スタティックRAM(SRAM:static RAM)、ダイナミックRAM(DRAM:dynamic RAM)、シンクロナスDRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM:direct Rambus RAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM:direct Rambus dynamic RAM)、およびラムバス・ダイナミックRAMなどの、ただしこれらに限定されない、多くの形態で利用可能である。
【0111】
コンピュータ1512は、取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。例えば
図15は、ディスク・ストレージ1524を示している。ディスク・ストレージ1524は、磁気ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどの、ただしこれらに限定されない、デバイスを含むこともできる。ディスク・ストレージ1524は、コンパクト・ディスクROMデバイス(CD-ROM:compact disk ROM device)、記録可能CDドライブ(CD-Rドライブ:CD recordable drive)、再書き込み可能CDドライブ(CD-RWドライブ:CD rewritable drive)、またはデジタル多用途ディスクROMドライブ(DVD-ROM:digital versatile disk ROM drive)などの光ディスク・ドライブを含むが、これらに限定されない記憶媒体を、別々に、または他の記憶媒体と組み合わせて、含むこともできる。システム・バス1518へのディスク・ストレージ1524の接続を容易にするために、インターフェイス1526などの、取り外し可能または取り外し不可能なインターフェイスが使用され得る。
図15は、実体と、適切な動作環境1500において説明された基本的なコンピュータ・リソースとの間の仲介として機能できるソフトウェアも示している。そのようなソフトウェアは、例えば、オペレーティング・システム1528を含むこともできる。ディスク・ストレージ1524に格納できるオペレーティング・システム1528は、コンピュータ1512のリソースを制御し、割り当てるように動作する。システムのアプリケーション1530は、プログラム・コンポーネント1532を介して、オペレーティング・システム1528によるリソースの管理を利用し、例えばシステム・メモリ1516またはディスク・ストレージ1524のいずれかに格納されたデータ1534をプログラムすることができる。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して本開示が実装され得るということが、理解されるべきである。実体は、1つまたは複数の入力デバイス1536を介して、コマンドまたは情報をコンピュータ1512に入力する。入力デバイス1536は、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Webカメラなどを含むことができるが、これらに限定されない。これらおよびその他の入力デバイスは、1つまたは複数のインターフェイス・ポート1538を介してシステム・バス1518を通り、処理ユニット1514に接続することができる。1つまたは複数のインターフェイス・ポート1538は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含むことができる。1つまたは複数の出力デバイス1540は、入力デバイス1536と同じ種類のポートの一部を使用できる。このようにして、例えば、USBポートを使用して、入力をコンピュータ1512に提供し、コンピュータ1512から出力デバイス1540に情報を出力できる。出力アダプタ1542は、特殊なアダプタを必要とする出力デバイス1540の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス1540が存在することを示すために提供され得る。出力アダプタ1542の例としては、出力デバイス1540とシステム・バス1518との間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。1つまたは複数のリモート・コンピュータ1544などの、その他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能および出力機能の両方を提供するということに、注意するべきである。
【0112】
コンピュータ1512は、リモート・コンピュータ1544などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ1544は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードなどであることができ、通常は、コンピュータ1512に関連して説明された要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ・ストレージ・デバイス1546のみが、リモート・コンピュータ1544と共に示されている。リモート・コンピュータ1544は、ネットワーク・インターフェイス1548を介してコンピュータ1512に論理的に接続されてから、通信接続1550を介して物理的に接続され得る。さらに、動作は、複数の(ローカルまたはリモートの)システムにわたって分散され得る。ネットワーク・インターフェイス1548は、ローカル・エリア・ネットワーク(LAN:local-area network)、広域ネットワーク(WAN:wide-area network)、セルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークあるいはその両方を包含できる。LAN技術は、光ファイバ分散データ・インターフェイス(FDDI:Fiber Distributed Data Interface)、銅線分散データ・インターフェイス(CDDI:Copper Distributed Data Interface)、イーサネット(R)、トークン・リングなどを含む。WAN技術は、ポイントツーポイント・リンク、総合デジタル通信網(ISDN:Integrated Services Digital Network)およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線(DSL:Digital Subscriber Line)を含むが、これらに限定されない。1つまたは複数の通信接続1550は、ネットワーク・インターフェイス1548をシステム・バス1518に接続するために採用されたハードウェア/ソフトウェアのことを指す。通信接続1550は、説明を明確にするために、コンピュータ1512内に示されているが、コンピュータ1512の外部に存在することもできる。ネットワーク・インターフェイス1548に接続するためのハードウェア/ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、およびイーサネット(R)・カードなどの、内部および外部の技術を含むこともできる。
【0113】
本発明の実施形態は、任意の可能な統合の技術的詳細レベルで、システム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせであることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含むこともできる。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0114】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含むことができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。本発明のさまざまな態様の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、実体のコンピュータ上で全体的に実行すること、実体のコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、実体のコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して実体のコンピュータに接続することができ、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【0115】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであることができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであることもできる。コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込むこともでき、それによって、一連の動作可能な動作を、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0116】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、命令のモジュール、コンポーネント、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0117】
上記では、1つのコンピュータまたは複数のコンピュータあるいはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において、主題が説明されたが、当業者は、本開示がその他のプログラム・モジュールまたはコンポーネントと組み合わせて実装されてもよいということを認識するであろう。通常、プログラム・モジュールまたはコンポーネントは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されてもよい。ただし、本開示の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールまたはコンポーネントは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。
【0118】
本出願において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、1つまたは複数の特定の機能を含むコンピュータ関連の実体または動作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組み合わせであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。1つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、1つのコンピュータ上に局在するか、または2つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、1つまたは複数のデータ・パケット(例えば、ローカル・システム内または分散システム内の別のコンポーネントと相互作用するか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと相互作用するか、あるいはその両方によって相互作用する、1つのコンポーネントからのデータ)を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって動作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって動作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、少なくとも一部において電子コンポーネントの機能を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の手段を含むことができる。1つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【0119】
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「XがAまたはBを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、XがAを採用するか、XがBを採用するか、またはXがAおよびBの両方を採用する場合、「XがAまたはBを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「a」および「an」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用される。誤解を避けるために、本明細書で開示された主題は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
【0120】
本明細書において採用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)、複合プログラム可能論理デバイス(CPLD:complex programmable logic device)、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせを指すことができる。さらに、プロセッサは、空間利用を最適化するか、または実体の機器の性能を向上させるために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組み合わせとして実装されてもよい。本開示では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを含んでいるコンポーネントを指すために利用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電体RAM(FeRAM)が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、RAMを含むことができる。例えばRAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAM(RDRAM:Rambus dynamic RAM)などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【0121】
前述した内容は、システム、コンピュータ・プログラム製品、およびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネント、製品、またはコンピュータ実装方法、あるいはその組み合わせの考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における移行句として採用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲から逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。