(57)【要約】      （修正有）【課題】機械学習で生成される確率モデルを使用して分類および類似度分析を効率的に行い、ファイルが悪質なコードを含む可能性があるか否かを示すことができる生成的マルチモデルマルチクラス分類及び類似度分析のための自動システムを提供する。【解決手段】システムは、データサンプルから特徴を抽出し、抽出された特徴のいくつかまたはすべてに関して分類を行う。その後、データサンプルを特徴付けるのに使用することができるそのようなデータを使用して機械学習モデルを生成する。システムは、モデルを使用して、サンプルに関する分類および類似度分析を行い、特定のコンピュータファイルが悪意あるものである可能性の判定を行う。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータファイルが悪意あるコードを含むかどうかを判定するコンピュータに実装された方法であって、
前記方法は、
コンピュータファイルが悪意あるコードを含むかどうかについてのクエリをクエリインターフェースで受信するステップと、
或るタイプのコンピュータファイルに対応する、少なくとも一つの機械学習のサブモデルを用いて、コンピュータファイルが悪意あるコードを含むかどうかを判定するステップと、及び、
前記判断を特徴付けるデータを、クエリインターフェースに提供するステップと
を含み、
前記サブモデルは、
収集インターフェースにてコントロールを受信することと、
個別のタイプのコンピュータファイルに基づいて、複数のサブ集団のコンピュータファイルを生成することと、
前記複数のサブ集団の個々のコンピュータファイルから、ランダムな訓練セットとランダムな検査セットを生成することと、及び、
個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することと
を含む動作を用いて、生成され、
前記の、個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することにおいては、
前記ランダムな訓練セットのコンピュータファイルの各々から特徴のセットを抽出するステップであって、特徴のセットの各々は、前記ランダムな訓練セットのコンピュータファイルのタイプに対応し、特徴のセットは、ファイルサイズ、情報密度、構造レイアウト、プログラムセクション名、及び、著者詳細から成るグループから選択される少なくとも一つの特徴を含む、抽出するステップと、
機械学習を用いて特徴のセットの各々のための分類を作成するステップと、及び、
前記サブ集団のためのランダムな検査セットを用いて前記分類を有効性検証するステップと
を含む、複数のステップが用いられる、
方法。
【請求項２】
前記クエリインターフェースが、ＲＥＳＴ  ＡＰＩを含む、請求項１に記載の方法。
【請求項３】
前記クエリが、コンピュータファイルをアップロードすることなく、コンピュータファイルについてのメタデータを含む、請求項１に記載の方法。
【請求項４】
前記クエリが、コンピュータファイルのアップロードを含む、請求項１に記載の方法。
【請求項５】
一次フィルタを適用することにより前記複数のサブ集団が生成される、請求項１に記載の方法。
【請求項６】
コンピュータファイルの少なくとも幾つかのタイプは、実行可能なプログラムである、請求項１に記載の方法。
【請求項７】
コンピュータファイルの少なくとも幾つかのタイプは、データファイルである、請求項１に記載の方法。
【請求項８】
コンピュータファイルを悪意のあるコードを含むものとして分類するために機械学習のサブモデルを訓練するコンピュータに実装された方法であって、
前記方法は、
収集インターフェースにてコントロールを受信することと、
個別のタイプのコンピュータファイルに基づいて、複数のサブ集団のコンピュータファイルを生成することと、
前記複数のサブ集団の個々のコンピュータファイルから、ランダムな訓練セットとランダムな検査セットを生成することと、及び、
個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することと
を含み、
前記の、個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することにおいては、
前記ランダムな訓練セットのコンピュータファイルの各々から特徴のセットを抽出するステップであって、特徴のセットの各々は、前記ランダムな訓練セットのコンピュータファイルのタイプに対応し、特徴のセットは、ファイルサイズ、情報密度、構造レイアウト、プログラムセクション名、及び、著者詳細から成るグループから選択される少なくとも一つの特徴を含む、抽出するステップと、
機械学習を用いて特徴のセットの各々のための分類を作成するステップと、及び、
前記サブ集団のためのランダムな検査セットを用いて前記分類を有効性検証するステップと
を含む、複数のステップが用いられる、
方法。
【請求項９】
前記複数のサブ集団は、一次フィルタにより生成される
請求項８に記載の方法。
【請求項１０】
前記コンピュータファイルのタイプの少なくとも一部のタイプは、実行可能なプログラムである
請求項８に記載の方法。
【請求項１１】
前記コンピュータファイルのタイプの少なくとも一部のタイプは、データファイルである
請求項８に記載の方法。
【請求項１２】
コンピュータファイルが悪意あるコードを含むかどうかを判定するコンピュータシステムであって、
前記コンピュータシステムは、少なくとも一つのデータプロセッサと、及び、メモリとを含み、
前記メモリは、
コンピュータファイルが悪意あるコードを含むかどうかについてのクエリをクエリインターフェースで受信するステップと、
或るタイプのコンピュータファイルに対応する、少なくとも一つの機械学習のサブモデルを用いて、コンピュータファイルが悪意あるコードを含むかどうかを判定するステップと、及び、
前記判断を特徴付けるデータを、クエリインターフェースに提供するステップと
を含む機能を、少なくとも一つのデータプロセッサに実行させる動作が可能な命令を格納し、
前記サブモデルは、
収集インターフェースにてコントロールを受信することと、
個別のタイプのコンピュータファイルに基づいて、複数のサブ集団のコンピュータファイルを生成することと、
前記複数のサブ集団の個々のコンピュータファイルから、ランダムな訓練セットとランダムな検査セットを生成することと、及び、
個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することと
を含む動作を用いて、生成され、
前記の、個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することにおいては、
前記ランダムな訓練セットのコンピュータファイルの各々から特徴のセットを抽出するステップであって、特徴のセットの各々は、前記ランダムな訓練セットのコンピュータファイルのタイプに対応し、特徴のセットは、ファイルサイズ、情報密度、構造レイアウト、プログラムセクション名、及び、著者詳細から成るグループから選択される少なくとも一つの特徴を含む、抽出するステップと、
機械学習を用いて特徴のセットの各々のための分類を作成するステップと、及び、
前記サブ集団のためのランダムな検査セットを用いて前記分類を有効性検証するステップと
を含む、複数のステップが用いられる、
コンピュータシステム。
【請求項１３】
前記クエリインターフェースが、ＲＥＳＴ  ＡＰＩを含む、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記クエリが、コンピュータファイルをアップロードすることなく、コンピュータファイルについてのメタデータを含む、請求項１２に記載のコンピュータシステム。
【請求項１５】
前記クエリが、コンピュータファイルのアップロードを含む、請求項１２に記載のコンピュータシステム。
【請求項１６】
一次フィルタを適用することにより前記複数のサブ集団が生成される、請求項１２に記載のコンピュータシステム。
【請求項１７】
コンピュータファイルの少なくとも幾つかのタイプは、実行可能なプログラムである、請求項１２に記載のコンピュータシステム。
【請求項１８】
コンピュータファイルの少なくとも幾つかのタイプは、データファイルである、請求項１２に記載のコンピュータシステム。
【請求項１９】
コンピュータファイルを悪意あるコードを含むものとして分類するための機械学習のサブモデルを訓練するコンピュータシステムであって、
前記コンピュータシステムは、少なくとも一つのデータプロセッサと、及び、メモリとを含み、
前記メモリは、
収集インターフェースにてコントロールを受信することと、
個別のタイプのコンピュータファイルに基づいて、複数のサブ集団のコンピュータファイルを生成することと、
前記複数のサブ集団の個々のコンピュータファイルから、ランダムな訓練セットとランダムな検査セットを生成することと、及び、
個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することと、
を含む機能を、少なくとも一つのデータプロセッサに実行させる動作が可能な命令を格納し、
前記の、個々のランダムな訓練セットのための少なくとも一つのサブモデルを生成することにおいては、
前記ランダムな訓練セットのコンピュータファイルの各々から特徴のセットを抽出するステップであって、特徴のセットの各々は、前記ランダムな訓練セットのコンピュータファイルのタイプに対応し、特徴のセットは、ファイルサイズ、情報密度、構造レイアウト、プログラムセクション名、及び、著者詳細から成るグループから選択される少なくとも一つの特徴を含む、抽出するステップと、
機械学習を用いて特徴のセットの各々のための分類を作成するステップと、及び、
前記サブ集団のためのランダムな検査セットを用いて前記分類を有効性検証するステップと
を含む、複数のステップが用いられる、
コンピュータシステム。
【請求項２０】
前記複数のサブ集団は、一次フィルタを適用することにより生成される
請求項１９に記載のコンピュータシステム。
【請求項２１】
前記コンピュータファイルのタイプの少なくとも一部のタイプは、実行可能なプログラムである
請求項１９に記載のコンピュータシステム
【請求項２２】
前記コンピュータファイルのタイプの少なくとも一部のタイプは、データファイルである
請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連技術の相互参照
本出願は、２０１３年６月２４日に提出された米国特許出願６１／８３８，８２０号に対する優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【０００２】
本明細書に記載の主題は、機械学習を使用した自動生成的マルチモデルマルチクラス分類および類似度分析のためのシステム、方法、およびコンピュータプログラム製品に関する。
【背景技術】
【０００３】
サンプルが或るカテゴリ内に入るか否か、および、そのサンプルが他のサンプルとどれだけ近く、どの程度の度合いで対照するかを判定する余地は、費用がかかり、人手に頼る問題である。従来の方法は、そのプロセスにおいて人間が複数の決定を行うことを必要とし、これは、プロセスのスケーラビリティおよび再現性に悪影響を及ぼす。加えて、人間は、困難な問題を解決するのに必要とされるスケールでデータを考察するようには適応していない。最後に、これらのシステムは、一般的すぎて非常に非効率であるか、または、特定的すぎて特定の問題に集中するかのいずれかになる傾向にある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の主題は、コンピュータを使用して、機械学習の原理を通じて生成される確率モデルを使用して分類および類似度分析を効率的に行うことができるプロセスに関する。プロセスは、生成モデルを使用することによって自動的にこれを行い、サンプルが、システムをさらに訓練し、特定のサンプル集団内で表現される最良の予測能力を正確に表す、反復的により良好なモデルをもたらす。
【課題を解決するための手段】
【０００５】
プロセスは、これらの機能をサポートするために必要とされる５つの主要な機能構成要素およびインフラストラクチャによって定義することができる。
・クエリインターフェース
・サンプル収集
・サンプルからの特徴抽出
・マルチクラスサンプル分類および類似度分析
・モデル生成
【０００６】
サンプルは、同様のサンプルに対する分類または類似度分析の実施が所望される任意のデータ片である。特徴は、システムがサンプルから測定する任意の突出したデータ点である。モデルは、任意のサンプルが特定のクラスに分類される可能性を定義する単一またはマルチモデル確率行列である。マルチクラス分類器は、２つ以上のクラスにおける分類をサポートすることができるものである。マルチモデル分類器は、下位モデルを使用して、複合サンプルにおける特定の複雑性を処理するものである。生成分類器は、分類に使用されるサンプルが、将来の分析のための訓練材料になり得るものである。
【０００７】
一態様において、データサンプルが有向グラフ（たとえば、有向非巡回グラフ）内に置かれる。有向グラフは、データサンプルを処理するのに使用される特定の作業者クラスの作業項目の待ち行列を形成する複数の階層ノードを含む。作業項目は、有向グラフのノードをトラバースすることによって、複数の作業者の各々の待ち行列内でスケジュールされる。その後、作業項目が待ち行列に従って、作業者に供給される。その後、作業項目の作業者から結果が受信される。この構成において、有向グラフノードは、受信結果に基づいてトラバースされる。
【０００８】
結果は、データサンプルから抽出された特徴を含むことができる。幾つかの事例におけるデータサンプルおよび／または抽出された特徴が分類され得る。加えて、抽出された特徴および／または分類を使用して少なくとも１つのモデル（たとえば、機械学習モデルなど）を生成することができる。他の事例において、データサンプルを使用して単純に結果を分類することができる。分類を特徴付けるデータは、データの表示、メモリへのデータのロード、データの記憶、および、遠隔コンピューティングシステムへのデータの送信のような様々な様式で提供することができる。
【０００９】
結果は、待ち行列内で次の後続する作業項目をどこにスケジュールすべきかを決定するのに使用されるルーティングデータを含むことができる。
【００１０】
各サンプルが優先順位付けされた順序に従って待ち行列に加えられるように、各サンプルの順序を、そのようなサンプルを待ち行列に加える前に優先順位付けすることができる。優先順位は、所定の処理レートに基づくことができる。少なくとも１つのサンプルの優先順位付けは、リアルタイムでローカルに調整することができる。作業項目は、サンプル優先順位付けまたは作業者レートのうちの少なくとも一方に従って待ち行列内にスケジュールすることができる。
【００１１】
作業項目が供給される作業者は、利用可能なリソースに基づいてサイズが動的に変化するプールの一部分であり得る。利用可能なリソースは、決定される供給および需要に基づき得る。
【００１２】
一変形形態において、データサンプルは、コンピューティングシステムによってアクセスまたは実行するためのファイルを含み、分類は、少なくとも１つのファイルが悪質なコードを含む可能性があるか否かを示す。別の変形形態において、データサンプルは、医療画像データを含み、分類は、医療画像データの少なくとも１つの部分が異常な状態（たとえば、癌性細胞など）の可能性を示すか否かを示した。
【００１３】
１つまたは複数のコンピューティングシステムの１つまたは複数のデータプロセッサが実行されると、少なくとも１つのデータプロセッサに、本明細書における動作を実施させる命令を記憶している持続性コンピュータ可読媒体を含むコンピュータプログラム製品も記載される。同様に、１つまたは複数のデータプロセッサと、１つまたは複数のデータプロセッサに結合されているメモリとを含んでもよいコンピュータシステムも記載される。メモリは、少なくとも１つのプロセッサに、本明細書に記載の動作の１つまたは複数を実施させる命令を一時的にまたは永続的に記憶することができる。加えて、方法は、単一のコンピュータシステム内にあるか、または、２つ以上のコンピューティングシステム間で分散されているかのいずれかである１つまたは複数のデータプロセッサによって実施することができる。そのようなコンピューティングシステムは、限定ではないが、ネットワーク（たとえば、インターネット、無線広域ネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワークなど）にわたる接続、複数のコンピューティングシステムのうちの１つまたは複数の間の直接接続を介した接続などを含む、１つまたは複数の接続を介して接続することができ、データおよび／もしくはコマンドまたは他の命令などを交換することができる。
【発明の効果】
【００１４】
本明細書に記載の主題は、多くの技術的利点を提供する。たとえば、本発明の主題は、モデルの自動生成を提供し、それによって、人間がモデルを生成する必要性およびそれと関連付けられる誤りを未然に防ぐ。さらに、本発明の主題は、様々な用途のためにデータ／ファイルを分類するための技法を増強することを可能にする。
【００１５】
本明細書に記載の主題の１つまたは複数の変形形態の詳細は、添付の図面および下記の記載に述べられている。本明細書に記載の主題の他の特徴および利点は、本明細書および図面、ならびに特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【００１６】
【図１】本発明の主題を実施するためのシステムの主要な構成要素を示すシステム図である。
【図２】クエリインターフェースを使用するプロセスを示す図である。
【図３】能動収集のためのプロセスを示す図である。
【図４】受動コレクタインターフェースＡＰＩのためのプロセスを示す図である。
【図５】特徴を抽出するプロセスを示す図である。
【図６】モデル生成のプロセスを示す図である。
【図７】生成的マルチモデルマルチクラス分類および類似度分析のためのプロセスを示す図である。
【発明を実施するための形態】
【００１７】
図１の図１００に関連して、本明細書に記載のシステムは、そのサービスを提供するために、すなわち、データサンプルから特徴を抽出し、そのような抽出された特徴のいくつかまたはすべてに関して分類を行い、その後データサンプルを特徴付けるのに使用することができるそのようなデータを使用して機械学習モデルを生成するために、重要な基礎となるインフラストラクチャを利用することができる。
【００１８】
インフラストラクチャは、関係型データストア１４５およびビッグデータソース１５０のようなデータソースからのデータを記憶するキャッシュ１４０にアクセスする統一データアクセス層１３５を含むことができる。下記にさらに詳細に説明するように、インフラストラクチャは、ルータ１５５と、スケジューラ１６０と、リソースマネージャ１６５とを含むことができる。この詳細な説明および／または特許請求の範囲の範囲において別途指定しないかぎり、インフラストラクチャの構成要素は、ソフトウェア、ハードウェア、またはその両方の組み合わせにおいて実装することができる。インフラストラクチャは、複数の機能の間で共有され、それらの機能をともに結び付ける接着剤として機能する。インフラストラクチャは、全体にわたるプロセスの最適化に主に焦点を当てる。インフラストラクチャは、データがシステムを通って流れるのを容易にし、いずれのリソースが必要とされるかを判定し、データの最適なパスおよびリソースプロファイルを適切にスケジュールする。
【００１９】
本明細書に記載のプロセスは、動的に構成可能なワークフローシステムを使用して、最適な経路を通じたサンプルデータの順序付けを定義することができる。外部ソース１０５（たとえばウェブサービスおよび／または他のネットワークを介するものなど）が、クエリインターフェース１１０からデータを問い合わせ、かつ／または、収集インターフェース１１５にデータを提出することができる。インターフェースから得られるデータからの様々な特徴を、抽出構成要素１２０によって抽出することができる。いくつかの変形形態において、抽出されたデータは、分類器構成要素１２５によって分類（または他の様態で特徴付け）することができる。加えて、モデル生成構成要素１３０が、抽出および／または分類されたデータに基づいて１つまたは複数のモデル（たとえば、機械学習モデルなど）を生成または他の様態で使用することができる。
【００２０】
発明の主題によれば、ワークフローシステム内の個々の作業者は、他の作業者の特定の知識を必要とせず、ワークフローを通じた特定の経路を仮定しない。しかしながら、作業者は、スケジューラ１６０およびルータ１５５によって順守される依存関係を指定することができる。
【００２１】
ワークフローは、集中型であるがスケーラブルであるルーティングおよび優先順位付けシステムを使用することができる。個々の作業者は、中央リソースマネージャ１６５に登録し、プルメカニズムを介して作業を受信する。加えて、ワークフローシステムは、高度な同時並行性および柔軟性をサポートすることができる。作業項目は、重量または軽量であり得、適切な作業者にスケジュールされる。
【００２２】
ワークフローシステムは、各特定タイプの作業者が、システムを再起動することなく追加および除去されることを可能にするためのシステムを使用することができる。ワークフローシステムはまた、新たな順序付けが実施されることを可能にし、新たなタイプの作業者が追加され、既存の作業者が除去されることを可能にする。
【００２３】
最適なワークフローは、有向非巡回グラフ（ＤＡＧ）のような有向グラフとして表すことができ、ノードが個々の作業者クラスとして表される。本発明の主題は一例としてＤＡＧを使用するが、他のタイプの階層構成／有向グラフが利用されてもよい。グラフは、グラフを通る最短経路を生成しようと試行する後ろ向き推論依存関係マッピングにおける作業者クラス前提条件によって定義される。このプロセスの結果として、ワークフローを通る最適なパスを表す作業者クラスの前向き推論がもたらされる。
【００２４】
最初に、個々の作業者クラスが、構成ファイルを介して前提条件を定義することができる。この構成は、実行時に最適なルートが構築されることを可能にするルーティングシステムのシードを含む。その後、個々の作業者クラスをＤＡＧに組み込むことができ、その後、ＤＡＧを、たとえば、中央リソースマネージャ１６５に発行することができる。中央リソースマネージャ１６５はその後、この新たなＤＡＧを使用して、特定のデータサンプルをトラバースするのに最低なルートを判定することができる（この結果として、作業項目が作業者／作業者クラスに選択的にスケジュールされる）。
【００２５】
ルータ１５５を使用する中央リソースマネージャ１６５は、作業項目が次にどこへ行くかを定義することができる。これによって、個々の作業者は、メッセージがどのように渡されるかを知るかまたは気にする必要がなくなる。中央リソースマネージャ１６５は、ワークフロープロセスの最適な次のステップを定義するために各作業者の出力と対になった構成済みグラフに依拠する。
【００２６】
データサンプルは、ＤＡＧ内で、特定の作業者クラスに対する作業項目の待ち行列として表される状態に置くことができる。次に、作業者は、ルータ１５５によって作業項目を供給され得る。作業者はその後、作業項目、および、場合によっては、ルーティングを補助するための情報の追加の層のような、ルーティングに有用なデータを返すことができる。たとえば、目標が破損の兆候を示していると作業者が判定した場合、これをフラグ立てすることによって、目標をより良好なソリューションへとルーティングするのを助けることができる。中央マネージャはここで、現在の作業項目の結果および現在の作業者の結果に基づいて、最適な次のルートを決定することができる。中央リソースマネージャ１６５はその後、ＤＡＧによって定義されるような次の状態にサンプルをシフトする。
【００２７】
スケジューラ１６０を使用する中央リソースマネージャ１６５は、個々の作業者の作業をスケジュールする役割を担い得る。中央リソースマネージャ１６５は、作業項目の待ち行列内での順序付けを管理することによって、これを行うことができる。作業項目の待ち行列として表される各作業項目クラスについて、サンプル優先順位付けおよび作業者レートを含む様々な要因に基づいて個々の項目を作業者に提供することができる。加えて、スケジューラ１６０は、オフラインになっているかまたはパラメータ外で作業している作業者によって処理されているもののような、例外的事例における作業項目を処理する役割を担う。
【００２８】
いくつかの変形形態において、サンプルは、特定のＤＡＧ状態に入り得る。スケジューラ１６０はその後、待ち行列内でのサンプルの順序を決定することができる。スケジューラ１６０は、チェックアウト状態にある時間が長すぎた作業項目を監視することができ、それらの作業項目を適切な箇所において待機状態で再挿入することができる。
【００２９】
作業項目は、スケジューラ１６０によって処理レートに基づいて優先順位付けすることができる。優先順位付けによって大域的およびローカルの両方での最適化の可能性がもたらされる。ローカル優先順位付け最適化は、システム内のノード内での動作に焦点を当て、大域的最適化は、複数のホストに影響を与え、経路をルーティングする優先順位付け動作を含む。優先順位がより高いサンプルは、優先順がより低いサンプルよりも高い優先権を得る。サンプルの優先順位付けは、例外的状況に対応するために、リアルタイムでローカルに調整することができる。分析を完了するために必要とする時間がより短いサンプル処理に対して、より高い優先順位を確保することができる。埋め戻し動作またはフィードから読み出されるサンプルのような受動的なソースからの大量処理のために、より低い優先順位を確保することができる。
【００３０】
大域的な優先順位付け最適化について、個々のサンプルに、ワークフロー内に挿入するメカニズムに基づいて優先順位を割り当てることができる。スケジューラ１６０は、より優先順位の高い作業項目により短い待ち行列待ち時間を与え、より優先順位の低い作業項目により長い待ち行列待ち時間を与えて、ワークフロー全体を通じたこの大域的な優先順位付けを使用することができる。
【００３１】
ローカル優先順位付け最適化について、スケジューラ１６０は、作業項目に対する現在の湯煎順位付けが不適当であるか、または、待ち行列において閉塞を引き起こしていると判定し得る。そのような事例において、スケジューラ１６０は、状況に応じて作業項目の優先順位付けをより高くまたはより低く、動的に調整することができる。
【００３２】
インフラストラクチャは、いくつかの基準に基づいて動的な倍率を提供することができる。スケーリングに関する主な大域的測定基準は、作業項目の合計処理時間であり得る。サンプルの多様性が高度に分散している、相当に分散されたシステムにおいて大域的測定基準を調整するために、いくつかのローカル測定基準を考慮して適合させることができる。これらのローカル測定基準は、たとえば、活動ごとの平均サプル処理時間、個々の活動の作業要因、ホストあたりの負荷測定基準、ならびに利用可能なＲＡＭ、ＣＰＵ、およびディスクを含み得る。加えて、全体的なシステムが、小規模または大規模な局所的故障の場合にシステム全体の連続した動作を保証することができる。この意味において、スケジューラ１６０は、フェイルセーフ自己回復メカニズムを提供することができる。動的なスケーリングは、利用可能なリソースプール（すなわち、作業者のプールなど）の詳細なモニタリングおよび迅速な適合の組み合わせ、ならびに、任意選択的にリソースの完全なプールによって達成することができる。このプロセスは、中央リソースマネージャ１６５によって管理することができる。
【００３３】
リソースマネージャ１６５によって実装されるようなリソース管理システムは、このリソースプールの概念を利用することができる。リソースプールは、特定のクラス内で利用可能なすべてのコンピュータリソースの表現である。クラスは一般的に、オペレーティングシステム、または提供されるサービスのような一般的なものに対して定義され得る。各プールは、個々の作業者に与えられるリソースに分割することができる。
【００３４】
リソースマネージャ１６５を介したリソースプールは、需要ならびにリソース可用性および費用に基づいて拡大または縮小し得る。リソースが容易に利用可能であり低コストであるとき、リソースマネージャ１６５はプール全体を拡大し、サービスの容量をより大きくすることができる。リソースが恐るべき程または高コストになると、リソースマネージャ１６５はプール全体を縮小し、要件に適合するように全体的なレートを調整することができる。
【００３５】
リソースマネージャ１６５によって実装されるようなリソース管理システムは、リソースプール利用率および認識される需要を判定するのを助ける、様々な外部測定および自己報告されるフィードバック測定基準を利用することができる。
【００３６】
以下は、リソースマネージャ１６５に報告することができる２つのタイプのフィードバック測定基準である。第１に、測定される測定基準は、測定基準および統計収集システムによって収集されるものである。それらは、ＣＰＵ利用、利用可能なメモリまたはディスク空間のような実物資産測定基準に焦点を当てる。これらは、リソースマネージャ１６５がリソースプール使用測定基準を判定し、プール内で利用不足のまたは利用過多のリソースを規定し、負荷を適切に調整するのを助けるのに有用である。第２に、自己報告測定基準が、より深いレベルの詳細を判定するのに有用である。作業者およびリソースマネージャ１６５は、粒度の高いリソース使用状況を判定することを可能にする処理レートおよびタスク時間に関するデータを報告する。それらはまた、リソースに対する意図される需要を判定するのにも有用である。
【００３７】
個々の作業者が、自身のリソース使用状況ならびに内部タイミングおよびカウントに関して、様々な測定基準をリソースマネージャ１６５に報告することができる。これらの値は、リソース競合のソースを判定するのを補助する。測定基準は一般的に、取引の両側で収集されるため、リソースマネージャ１６５は、何が根本的原因であり、何が症状であるのかを判定することができ、システムが、そのように、リソース最適化を根本的原因に集中させ、症状を軽減することを可能にする。
【００３８】
特に重要な自己報告測定基準セットは、スケジューラ１６０に由来する。スケジューラ１６０は、サンプル処理の個々の作業者レートを追跡し、レートの総平均（測定される供給）を計算することができる。リソースマネージャ１６５はまた、各ＤＡＧ状態作業待ち行列のサイズおよび待ち時間も知っている（測定される需要）。これらの測定基準は、予期される合計処理時間の計算、および、ワークフローにバックアップがあるか否かの判定に特に有用である。スケジューラ１６０は、これらの測定基準をリソースマネージャ１６５に報告することができる。
【００３９】
作業完了事象またはリソース限界事象のような事象が発生すると、対応する測定基準が、事象を発生させているノードによってリソース管理システムに送信される。リソースマネージャ１６５はその後、自己報告データに基づいて時系列ベースの集約測定値および個別測定値を生成することができる。これらの時系列データ点は既知のベースラインに対してグラフ化および測定することができる。時系列データが特定の点を超えると、リソースプールへの追加のリソースの配備のような動作をトリガすることができる。
【００４０】
加えて、リソースマネージャ１６５は、様々なシステムを利用して、リソース利用率およびリソースの可用性を含む、リソースの外部状態をモニタリングすることができる。これらの測定値は、使用状況の最適性を判定するのを助けることができる。外部モニタリングは、ピアベースで、また、専用モニタリングシステムを使用することによっても行うことができる。これらのシステムは、それらの意図されるモニタリング目標（その状態を自己報告することができないリソースなど）を連続的にポーリングし、結果をリソースマネージャ１６５に報告することができる。
【００４１】
タイマまたは非時限ループ上で、リソースモニタは目標システムに接触することができる。その後、リソースモニタは、モニタリング動作の結果をリソースマネージャ１６５に報告することができる。
【００４２】
リソースの意図される供給および需要をモニタリングすることによって、リソースマネージャ１６５は、リソースの最適な配備を決定することができる。リソースマネージャは、個々の作業者に、自身を意図される需要に適合するように再構成することを求めることができる。
【００４３】
リソースマネージャ１６５は、次元リソースレベリングサイクルで動作することができる。時限期間（たとえば５分）あたり一度、使用されるリソースの量が、利用可能なリソースの量と比較される。使用されるリソースおよび利用可能なリソースの傾向の任意の差が、リソースの追加またはリソースのプールからの除去のような適切な改善をトリガするべきである。リソースの再構成はオーバヘッドを招くため、全体的なシステムが純利益を得ていることを保証するために、リソースマネージャ１６５によって再構成の影響が管理されることが必須である。このサイクルは、いずれのタスクが現在最も需要があるとしても、そのタスクにリソースが連続的に再配分されている、「フラッピング」をもたらすリソースの過度の収縮および膨張を回避するように設計することができる。
【００４４】
リソースマネージャ１６５はまた、既存の供給および需要だけでなく、可用性およびコストのような外部要因にも基づいてプールのサイズを調整することもできる。
【００４５】
リソースマネージャ１６５は、規則ベースの手法を使用して、各測定基準をその計算において適切に重み付けすることができる。規則は、動的に構成可能とすることができるが、利用可能な測定基準の存在および全体的な計算に対するそれらの値に基づいて測定および改良される。
【００４６】
リソースプール再配分のための１つのプロセスは以下の通りである。最初に、リソースマネージャ１６５は、観測下にあるサイクル期間の間に収集される適切な測定基準のセットを分離することができる。セットは、規則ベースの手法に基づいて定義することができる。リソースマネージャ１６５はその後、その測定基準セットから供給および／または需要を判定することができる。リソースマネージャ１６５はその後、既存の供給および需要に照らして現在のリソースプール配分を調べることができる。次に、リソースマネージャ１６５は、その供給および需要の計算に基づいて新たなリソースプール配分を計算することができる。加えて、リソースマネージャ１６５は、既存の作業者により必要なタスクを実施するよう求めることによって、新たな作業者を追加することによって、または、作業者をすべて除去することによって、新たなリソースプール配分に整合するように作業者を再構成することができる。新たな配分プールはその後、次の期間にリソースマネージャ１６５／スケジューラ１６０／ルータ１５５によって使用するために保存することができる。
【００４７】
リソースプールスケーリングについて、リソースマネージャ１６５は、閾値に基づいて現在のリソースプール配分が密になりすぎていないか、または疎になりすぎていないかを判定することができる（たとえば、９０％を上回る時間８０％の作業者が忙しい場合、さらなる作業者を追加し、または、５０％未満の時間１０％を下回る作業者が忙しい場合、プールから作業者を除去する、など）。需要が供給を上回っている場合、密になりすぎている。供給が需要を上回っている場合、疎になりすぎている。リソースプールが疎になりすぎている場合、リソースマネージャ１６５は、リソースプールを低減するための最適な値を決定することができる。リソースマネージャ１６５は、プールを低減するための新たなリソース配分を再配分し、この新たな配分に基づいて再構成するために作業者を雇用することができる。プールが密になりすぎている場合、リソースマネージャ１６５は、追加のリソースの外部コストおよび可用性を調べることができる。次に、リソースマネージャ１６５は、リソースプールサイズを増大するか、または、レート制限によって入来する量を低減することを選択することができる。レート制限は、大域的処理時間測定基準が満たされているときに行われる。リソースプール増大は、そうでないときに行われる。さらに、リソースマネージャ１６５は、プールを増大させるための新たなリソース配分を再配分し、この新たな配分に基づいて再構成するために雇用することができる。
【００４８】
リソースマネージャ１６５はまた、悪条件における動作を保証する目的を果たすこともできる。システムは、個々の作業者が一時的であり、リソースマネージャ１６５の制御によって、また外部要因に起因して現れる場合もあるし、また消える場合もあると仮定するように設計することができる。連続的な動作を保証するために、リソースマネージャ１６５は、そのモニタリングシステムを利用して、動作において生じる問題に対処することができる。リソーススケーリングおよび最適化のように、問題は、測定基準に適用される特定の規則セットによって定義することができる。この場合、測定基準は一般的に、その測定基準を報告するシステムが致命的な状況にある場合、内部で報告される測定基準は利用可能でない場合があるため、本質的に外部のものである。
【００４９】
リソースマネージャ１６５は、リソースプール内の継続的に働きの悪い資産を廃棄し、より良好に機能する資産をそれらと置き換えることができる。リソースマネージャは、問題の軽減において自動応答が有効でない場合には、手動介入のための警告を発することもできる。
【００５０】
リソースマネージャ１６５に、働きが悪く無策な資産について現在のリソースプールを調べさせることによって、自己回復を実施することができる。その後、リソースマネージャ１６５は、既存のプールリソースを使用して新たな配分を作成するか、または、プールをより大きくスケーリングして故障しているリソースを置き換えることができる。リソースマネージャ１６５は、新たなリソースに、古いリソースを置き換えるようにそれ自体を構成するよう求めることができる。リソースマネージャ１６５は後に古いリソースを廃棄することができる。
【００５１】
本発明のシステムは、統一データアクセス層１３５によってアクセスすることができるいくつかのタイプのデータストアを利用する。全体的なシステムの様々な要素は、データ整合性、持続性、性能、および完全性について異なる要件を有する。システムは、大規模文書ベースのストア（たとえば、ビッグデータ１５０）、関係型ストア１４５、ならびに持続的および一時的キャッシュ１４０の要素を利用することができる。スケールおよび回復力を達成するために、これらのシステムのすべてが、データの冗長性および水平共有を利用することができる。加えて、すべての要素がすべてのデータに対する完全で無制限のアクセスを必要とするとは限らないため、統一データアクセス層１３５は、データのセキュリティレベルについて様々な必要性を有し得る。
【００５２】
インフラストラクチャはまた、リソースに対するアクセスを一元管理するためのシステムをも提供することができる。インフラストラクチャによりこのシステムは、システムの各々がその特定の必要性を満たすことを可能にすることができ、インフラストラクチャは、これらの必要性を適切なバックエンドストアと一致させる。インフラストラクチャによって、システムが、アクセスを管理し、最適なアクセスのために使用状況をモニタリングすることが可能になる。加えて、インフラストラクチャは、作業者プロセスを実施するのに必要とされる要件を低減する抽象化層を提供することができる。
【００５３】
作業者およびシステムの様々な要素は、指定のＡＰＩを通じて統一データアクセス層１３５にアクセスする。統一データアクセス層１３５は、テンプレート駆動型システムを使用して、基礎となるデータソースへのＡＰＩコールの迅速なマッピングを可能にすることができる。ＡＰＩは、主にＲＥＳＴベースとすることができ、ＳＳＬおよび複数の形態の認証をサポートすることができる。
【００５４】
ほとんどのデータアクセスＡＰＩ動作は、データアクセスマネージャと称される構成要素によって管理することができる。データアクセスマネージャは、ＡＰＩインターフェースの追加および除去をサポートし、バックエンドデータリソースの管理を処理し、サポートされているメカニズムを介したこれらのインターフェースへのセキュリティアクセスを管理することができる。
【００５５】
データＡＰＩを作成するために、データアクセスＡＰＩに対する特定の必要性を定義することができる。整合性、性能、および持続性に関するパラメータが定義され得る。セキュリティおよび機密性に関する要件も定義され得る。ＡＰＩマネージャはその後、適切なバックエンドリソースを利用可能にするために、それらを設定することができる。その後、ＡＰＩマネージャは、任意選択的な変換動作によって、バックエンドリソースをフロントエンドＲＥＳＴコールとリンクさせることができる。
【００５６】
既存のデータＡＰＩにアクセスするために、問題になっている構成要素は、データアクセスＡＰＩサービスを求めるサービス検索要求を行う。位置特定されると、構成要素は、ＡＰＩに問い合わせて、いずれのサービスをＡＰＩが提供するかを判定することができる。サービス定義は、アクセスのパラメータ化、ならびに、それらのサービスにアクセスし、構成要素がＡＰＩにアクセスするためのガイドとしての役割を果たすのに必要とされるセキュリティメカニズムに関する詳細を含むことができる。サービスがどこに位置するか、および、そのサービスにアクセスする方法を構成要素が知っているとき、所望のようにデータアクセスＡＰＩに対するコールを行うことができる。フェイルオーバの場合、冗長なピアが要求をサービスすることができる。
【００５７】
統一データアクセス層１３５は、複数のバックエンドソリューションをサポートすることができる。この構成は、開発者が、プラットフォーム上で利用可能である場合もあるし、利用可能でない場合もある複数の紛らわしいドライバを使用して、複数のデータソースにアクセすることに関して迷うことを回避するのを助ける。バックエンドシステムは、回復力、性能、持続性、整合性、およびコストのような、それらにとって利用可能な条件セットによって定義される。
【００５８】
各バックエンドシステムについて、いずれのレベルにおいて上記の検討事項の各々を信頼可能に提供することができるかが明らかでなければならない。データアクセスは必要とされる所望のレベルを提示することができる。許容可能な条件の特定のレベルを、ＡＰＩ要件において提示することができる。これは、いずれのバックエンドシステムがこれらの要件を効率的に満たすことができるかを定義する。所望の目標を達成することができるバックエンドシステムがない場合、アプリケーションが、劣化したレベルにおいて動作し得る（その期待を低下させる）か、または、問題になっている基準を満たすことができる新たなバックエンドデータソースが配備され得るかのいずれかである。
【００５９】
回復力は、ストレス下で動作し続けることができる能力として定義することができる。任意のバックエンド構成要素が、その動作能力の様々な部分を失うことが可能であるべきであり、残りの部分にわたって負荷を調整するように効率的に適合することが可能であるべきである。妥協される要件としてある程度のデータ損失があり得る。
【００６０】
性能は、データを送達または書き込むことができる速度として定義することができる。いくつかの特に複雑なデータアクセス動作は、長く続く可能性があり、即時の応答は要件ではない。他の動作は、アプリケーションの実行可能性を保証するために特定の応答時間を必要とする。
【００６１】
持続性は、復元可能な状態に維持されなければならない必要とされる時間量、および、データのサイズとして定義することができる。この期間は、分単位から永遠までであり得、データサイズ要件は、バックエンドデータストアを適切に計画およびスケーリングするのを助けるのに必要である。
【００６２】
整合性は、サービスグループ分けの中のすべてのノードが正確に同じ結果を与えることを保証することとして定義することができる。整合性は、特定のクラスタリングおよび複製動作ならびにクラスタリングされたノード間のネットワーク距離によって影響を受け得る。整合性のないシステムは、すべてのノードが同じであることを保証することを気にかけない。整合性が高いシステムは、すべてのノードがほぼリアルタイムで同じデータを有することを保証するよう試行する。一般的な実践は、「結果整合性」のものであり、ここでシステムは、整合性の規定の平衡に達するが、規定の期間については保証しない。
【００６３】
クエリインターフェース１１０は、外部エンティティが、既に処理されているサンプルに関して質問することを可能にする、全体的なシステムの一般的な構成要素である。クエリインターフェース１１０は、外部システム１０５とシステムの蓄積された知識との間の主要な接点としての役割を果たす。効率の高い様式で質問に回答することが意図されている。クエリインターフェース１１０は、既存の回答を有する質問にのみ回答する。クエリインターフェース１１０が既存の回答を有しない質問は、さらなる分析のために収集インターフェース１１５に渡される。
【００６４】
クエリインターフェース１１０は、ＲＥＳＴ  ＡＰＩを利用することができる。このＲＥＳＴ  ＡＰＩは、クエリインターフェースが、ＳＳＬを介したセッション暗号化を利用することを可能にし、様々な認証オプションを提供する。
【００６５】
クエリインターフェース１１０は、サンプルに関する特定の許容可能なメタデータに基づいて質問に回答するように設計することができる。これによって、サンプル全体を転送する必要なしに質問が尋ねられることが可能である。これは、サンプルが大きく、複雑で、または直接利用可能でないときに有用であり得る。
【００６６】
クエリインターフェース１１０は、統一データアクセス層１３５の上の特殊化された層であり得る。クエリインターフェース１１０は、ＡＰＩを介した外部要求を解釈して統一データアクセス層１３５に対するクエリにすることができる。このアクセスを介して回答することができない要素について、クエリインターフェース１１０は、クライアントが収集インターフェース１１５にアクセスするための詳細を提供して、追加の情報を得るための経路を提供することができる。
【００６７】
図２は、クエリインターフェース１１０に関係したプロセスフロー図２００を示す。最初に、２０５において、外部開発者が、自身が特定のサンプルセットを問い合わせることができることを必要としていると判定することができる。開発者はその後、アクセスに必要とされる特定のメタデータを定義することができる。その後、２１０において、クエリインターフェース１１０は、統一データアクセス層のビューの適切なセットをそのデータストア内に実装することができる。クエリインターフェース１１０ドキュメンテーションは、開発者に、開発者が要求するサンプルセットについてのクエリインターフェースＡＰＩエンドポイントの仕様を通知することができる。ドキュメンテーションはまた、必要とされる認証および暗号化に関する適切な詳細も提供する。その後、２１５において、開発者は、自身のクライアント内に適切なクエリインターフェースＡＰＩを実装することができる。
【００６８】
開発者のプログラムはサンプルに関する特定に情報にアクセスすることを必要とするため、クライアントは、２２０において、質問を含む適切なメタデータを送信することができる。その後、２２５において、クエリインターフェース１１０は、統一データアクセス層１３５をチェックすることができ、２３０において、回答によって応答し、または、回答が利用可能でない場合、２３５において、収集インターフェース１１５にアクセスする方法に関する適切な詳細によって応答する（すなわち、提出するか尋ねるなど）。
【００６９】
収集インターフェース１１５を含む収集フレームワーク構成要素は、規定の経路が、分析および知識の増大のためにシステムに対するデータサンプルを得ることを可能にする。これらのサンプルは、分類として最高に構成されたモデルに基づいて即値を提供する情報片としての役割を果たす。これらのサンプルはまた、類似度分析機能も提供し、提出されたサンプルが既存のサンプルの間のコンテキストに置かれることを可能にする。
【００７０】
収集インターフェース１１５は、システムへの入力に対する主な外部経路として、クエリインターフェース１１０を補完する。収集インターフェース１１５は、システムが、入力のためのサンプルを提供し、出力としての応答を受信するためにインターフェースされることを可能にすることができる。収集インターフェース１１５は、一連のＲＥＳＴ  ＡＰＩインターフェースを介してこれを行うことができる。これらのＡＰＩインターフェースは、公衆または私的のいずれかとすることができ、ＳＳＬおよび様々な種類の認証をサポートすることができる。
【００７１】
サンプルは、２つの一般的な方法のうちの一方において収集することができる。サンプルは、システム内で定義される能動的収集メカニズムを使用して「システム内にプルする」ことができる。代替的に、それらのサンプルは、任意の収集インターフェースＡＰＩ互換ソリューションを介してシステムに「プッシュ」されてもよい。能動的および受動的収集の組み合わせによって、システムは、サンプルを採集し、非常にライトタッチな方法で既存の製品に組み込むことを可能にする。
【００７２】
収集インターフェース１１５は、意図しない再処理の発生を低減するためのメカニズムを利用することができる。収集インターフェース１１５は、既存の結果の基本的で複雑なキャッシング、および、サンプルの現在の存在および知覚される適切性のような規則に基づいて提出を受容または拒絶するように調整することができる提出メカニズムを提供することによってこれを行うことができる。
【００７３】
収集インターフェース１１５は、一般的なインフラストラクチャによって提供されるリソースマネージャ１６５に統合することができる。この統合から、収集インターフェース１１５は、目標を満たすための入力のレートを調整することができ、事前構成のＡＰＩ優先度または能動的収集における動的レート調整のような、様々な要因に対する優先権を与えるサンプル提出の優先順位付けをもたらすことができる。これによって、全体的なシステムフィードバックを利用した提出レートの動的な最適化を可能にするための基本的な方法がもたらされる。これはまた、既存のリソースプールを拡大または縮小する代わりに既存のリソースプールに対する圧力を軽減するのを助けることもできる。サンプルが受動的または能動的のいずれかで収集されるとき、収集インターフェース１１５は、サンプルを処理のために適切なワークフローシステム内にプッシュすることができる。
【００７４】
能動的収集は、収集フレームワークが、提出のためのサンプルの能動的な収集を管理することができるプロセスをもたらす。これは、収集インターフェース１１５を介して収集を管理およびスケジュールすることができるようにすることができる。これは、所望に応じてレートを動的に調整するために既存のリソースマネージャ１６５からのフィードバックを使用する利点を追加する。
【００７５】
アクティブコレクタは、特定の期間において何らかの動作を行うサブシステムである。能動的収集フレームワークは、アクティブコレクタが何を行うことができるかを規定する規則を管理することができる。加えて、能動的収集フレームワークは、コレクタの定期的な実行をサポートするために既存インフラストラクチャスケジューリングシステムと協働するメカニズムを規定することができる。この期間は、時間枠あたり（たとえば、３０分おきに）１回、時計／カレンダー時間あたり（たとえば毎週月曜日午後１時）１回として、または連続的に規定することができる。スケジューラ１６０は、正確な期間に適切なタスクが作業者に発行されることを保証することができる。
【００７６】
コレクタが何を行うことができるかを規定する規則は、様々な使用事例をサポートするために複雑かつ柔軟であり得る。コレクタは、内部コードがその期間で実行されることを可能にし、外部プログラムが実行されることを可能にし、またはさらには、その期間でＡＰＩコールを行うことを可能にすることができる。
【００７７】
アクティブコレクタは一般的に、クエリインターフェース１１０とインターフェースするのではなく、統一データアクセス層１３５に直接アクセスすることができる。これらの要求はシステムの外部に由来するものではないため、一般的に、サンプルの現在の状態に関する知識およびシステムがそのサンプルについて有している関連知識に対する必要性が少ない。
【００７８】
図３は、アクティブコレクタのためのプロセスを示す図３００である。最初に、３０５において、開発者は、能動収集方法を定義および構築することができる。収集フレームワークは、開発者が３１０において提供することができる能動収集の期間（時間範囲あたり１回、設定反復固定時間あたり１回、または連続のいずれか）を規定する規則が書き込まれることを必要とし得る。加えて、３１５において、開発者は、能動収集がどのように収集されるかのような収集の規則を設定することができる。完了すると、３２０において、収集フレームワークは、適切な期間においてタスクを導入する（すなわち、アクティブコレクタを適用する）ようにスケジューラ１６０を管理することができる。次に、３２５において、スケジューラは、適切な期間にアクティブコレクタのための必要とされるロジックを実施する。
【００７９】
１つのタイプの能動収集は、ウェブ巡回インフラストラクチャを利用することができる。このウェブ巡回インフラストラクチャは、一般的なまたは特殊化されたウェブ巡回が、分析のためのウェブ上の適切なサンプルを発見するよう試行することを可能にすることができる。一般的なウェブクローラは、標準的な方法でＨＴＭＬページを処理することができる。ウェブクローラは、ＨＴＭＬを構文解析し、適切なサンプルを作成するリンクおよびリソースを位置特定するよう試行し、それらのサンプルをシステム内にプッシュする。
【００８０】
特殊化されたウェブ巡回は、その範囲が限定されているものであり得、特定の技法を使用してより適切なスキャンを行う。たとえば、特殊化されたウェブスキャンが、特定のサイトに対して実施され、そのサイトに対して調整され得る。このウェブスキャンは、クエリをより効率的にするために以前に収集された情報のようなサイト特有の詳細を組み込むことができる。
【００８１】
別のタイプの能動収集は、インフラストラクチャの統一データアクセス層１３５内でまたは任意の利用可能な外部データストア内のいずれかで複雑なクエリを任意に実行することを含むことができる。すべての能動収集メカニズムのように、これは特定の期間で行われる。
【００８２】
期間が実行を規定するとき、能動データストアコレクタは、適切なデータストアに接触して、処理されるべきデータを収集することができる。能動データストアは、個々にまたはバルククエリを介してこれを行うことができる。
【００８３】
受動収集は、新たなサンプルをオンデマンドな方法による提出に対する外部アクセスの許可を促進することができる、収集インターフェース１１５のサブシステムである。一般的に、受動収集は、クエリインターフェース１１０とともに使用することができる。受動収集は、サンプルが提出されることを可能にする特定のＡＰＩを提供することができる。このＡＰＩは、サンプルの既存の知識が失われている、不完全である、または他の様態で利用不可能であるときに一般的に有用であり得る。そのようなＡＰＩは、翻って、セッション暗号化のためのＳＳＬをイネーブルし、所望のレベルの認証およびアクセス制御を保証するための様々な認証メカニズムを提供するＲＥＳＴ  ＡＰＩとすることができる。
【００８４】
受動収集インターフェースＡＰＩは、一般的に３段階で動作することができる。第１に、受動収集インターフェースＡＰＩは、システムがサンプルの提出を受容する準備ができていることを確認することができる。システムがサンプルを所望する場合、受動収集インターフェースＡＰＩは、サンプルをどこに置くべきかに関する詳細を提供する。最後に、受動収集インターフェースＡＰＩは、サンプルが適切な場所に置かれていることの確認を待つ。
【００８５】
上記システムは、構成可能なアップロード方法を可能にさせる。受動収集インターフェースＡＰＩからの元の応答が、任意の制約または警告とともに、サンプルがどこにアップロードされるべきかを規定する。これは、単純なＨＴＴＰアップロード、ＦＴＰもしくは他の公的に利用可能なＵＲＩに対する参照、または、サンプルタイプおよび受動収集インターフェースＡＰＩのこのインスタンスの仕様によって規定されるような、完全に他のシステムであり得る。これによって、アップロードのプロセスが適切にオフロードされ、最良に適する複数のタイプのサンプルに抽象化されることが可能になる。
【００８６】
パッシブコレクタを開発するために、開発者は、既存の製品またはシステムから受け入れることを所望する要素を考慮することができる。開発者は、自身の既存の製品またはシステム内に収集提出クライアントＡＰＩを実装することができる。この実装は、提出ＡＰＩエンドポイントが使用すべきである構成、および、必要に応じて任意の認証情報を必要とする。通常製品動作の間、提出が収集され得る。各提出は、収集提出ＡＰＩに送信され得る。収集提出ＡＰＩは、サンプルの現在の知識に基づいて分類および類似度分析を決定し、それらの結果を返すことができる。追加の詳細が分析に必要とされる場合、提出ＡＰＩは、これらの詳細を要求するための追加の機能を提供することができる。開発者のためにこれらの詳細を提供するのに失敗した場合、その結果として、分類および類似度分析に関する信頼スコアが低下することになる場合がある。
【００８７】
図４は、受動収集ＡＰＩへのアクセスの図４００である。クエリインターフェースは最初に、４０５において、受動収集ＡＰＩに関する詳細をクライアントに提供する。その後、４１０において、外部クライアントエンティティが、受動収集インターフェースＡＰＩにサンプルを提出するよう求める（すなわち、提出を要求する。これは内部で、クエリインターフェースＡＰＩと対にすることができる。次に、４１５において、受動収集インターフェースシステムは、特に指定されている基準（以前の存在、既存の知識の経過時間など）に基づいてサンプルの提出を所望するか否かを判定することができる。受動収集インターフェースシステムは、サンプルを所望する場合、肯定的な応答およびサンプルをどこに「置く」べきかに関する詳細によって外部クライアントエンティティに応答し、そうでない場合、４２０において、クライアントは否定的な応答を受信する。サンプルタイプに応じて、これは、様々な選択肢のうちの１つになり得る。外部クライアントエンティティは、４２５において、サンプルを正確な場所に「置く」ために必要な動作を実施することができる。外部クライアントエンティティはその後、４３０において、確認を受動収集インターフェースＡＰＩに提出することができる。確認に成功すると、受動収集インターフェースシステムは、４３５において、さらなる処理のためにサンプルを適切なワークフローに配置する。
【００８８】
抽出構成要素１２０は、サンプルを突出したデータ点、または、分類および類似度分析に使用される「特徴」に変換する目的を果たすことができる。抽出構成要素１２０は、高度にスケーラブルな並列処理分散システムを使用してこの情報を抽出することによってこれを行うことができる。抽出構成要素は、インフラストラクチャ動的ワークフローシステムを通じて処理される一連の作業者クラスによって定義することができる。これらの作業者クラスは、サンプルタイプごとに開発することができ、システムがスケーラブルに拡大することを可能にすることができる。これらの作業者クラスは、追加の抽出作業者が実行時に動的に追加および除去され得ることを保証するために、ワークフローシステム内のＤＡＧルータ１５５によってともに効率的に連結することができる。
【００８９】
各作業者クラスは、何らかの抽出特徴セットを表すことができ、特定のサンプルタイプと関連付けることができる。システムは、サンプルの動的な分類を使用して、サンプルごとに正確な動作が実施されることを保証することができる。システムは、インフラストラクチャルータ１５５およびスケジューラ１６０を使用することによって、これを達成する。ルータ１５５は、サンプルが適切に処理されることを保証することができる。スケジューラ１６０は、サンプルが適時に処理されることを保証することができる。
【００９０】
リソースマネージャ１６５は、各クラスの作業をオンデマンドで計画されているように実施するのに利用可能な適切なリソースがあることを保証することができる。各作業者クラスは、リソースマネージャ１６５によって管理されることを必要とするリソースを表す。
【００９１】
作業者クラスは、システムが手元にある機能を理解するのを助けるために、ルータ１５５および他のインフラストラクチャシステムに登録する。作業者クラスは、登録すると、ルータ１５５に提供することができる特徴セット、ならびに、ルートと各ルートの関連する前提条件および条件事項とのセットを提供する。各ルートは、デフォルトルート（他のルートが選択されていないときにとられるルート）または指定ルートのいずれかであり得る。各指定ルートは、選択されるために満たされなければならない一連の条件を有する。これらの条件が（サンプルの蓄積された特徴に基づいて）満たされる場合、この指定ルートが選択される。異なる条件を有する複数の指定ルートが存在し得、複雑なルーティング状況が可能になる。ルーティングの優先度は、作成時のルートの順序付けに内在する。
【００９２】
抽出構成要素１２０は、プロセスにおいて動的に規定されるルーティング条件の動的なセットを使用することができる。サンプルがルータ１５５によって割り当てられるようにワークフローを誘導すると、抽出構成要素１２０は、サンプルプロファイルに追加の情報を追加することができ、より深い詳細をもたらすより特化された作業者クラス動作が実行されることが可能になる。
【００９３】
図５は、特徴を抽出するプロセスを示す図５００である。最初に、５０５において、ルータ１５５は、作業項目を作業者待ち行列内に置くことができる。各作業項目は、抽出を実行するための１つまたは複数のタスクを含むことができる。その後、５１０において、作業者は、作業者待ち行列から作業項目を受け取り、５１５においてこの作業項目を処理する。タスクの処理に成功した場合、５２０において、実施すべきステップ／タスクがあるか否かが判定される。タスクの処理に成功しなかった場合、作業項目（またはその一部分）は、作業者待ち行列内に戻すことができ、プロセスは反復する。新たなステップがないと判定される場合（５２０において）、５２５において、抽出が完了し、新たなステップがある場合、ルータ１５５は作業項目を次のステップに送る。タスクはサンプルに対して実施される１個の作業であり、ステップは、実施されるべき次のタスクまでのルートである。グラフ理論において、タスクはノード（または頂点）と考えられ、一方でルートはエッジである。
【００９４】
この処理は、プロセス中に収集された以前の知識に基づいて調整する動的分類システムによって行うことができる。この知識の存在は、ルータによって使用される逆向き推論有向非巡回グラフを作成するのに使用される要因の１つである。これによって、ワークフローの任意の時点において決定を行うのに必要とされる情報が、必要とされるときに利用可能であることが保証される。
【００９５】
この構成は、一般的に、作業クラスごとに前提条件および条件事項要因のセットを規定する。前提条件は、ルータ１５５によってルーティング決定が行われ得る前に存在する必要があるデータ点を規定し、条件事項は、ルーティング決定に対して突出した特徴である。加えて、条件事項は、外部ＡＰＩコールのような、非特徴ベースのデータに対して実施され得る。
【００９６】
動的分類ベースのルートは、開発者が、最初に、適切な決定を実施するのに必要とされる条件を規定することによって指定することができる。その後、開発者は、いずれの特徴が条件事項を満たすために必要とされるデータを提供することができるかを判定し、これらの特徴を前提条件としてマークすることができる。開発者は後に、この作業クラスが提供することになる特徴を規定することができる。ルータ論理システムはその後、必要とされる前提条件、条件事項、および提供されるデータ点に基づいて有向非巡回グラフを計算することができる。ルータ論理システムは、このデータに基づいてワークフローのための最適なモデルを構築することができる。
【００９７】
作業者クラスは、ルータ１５５によって構築および維持される有向非巡回グラフに基づいて、動作の新生の「チェーン」を形成することができる。チェーンは、特定のサンプルからすべての利用可能な特徴を最適に抽出するのに必要とされる動作を規定することができる。ワークフローはプロセス中に規定されるが、幾つかのチェーンは一貫して特定のタイプのサンブルに一致する。
【００９８】
チェーンは、遷移の数およびタイプを低減するためにローカルに最適化することができる。リソースマネージャ１６５は、部分的なチェーンおよびチェーン全体を単一の計算リソースに配分することによってこれを行うことができ、動作が最小限の転送時間で効率的に行われることが可能になる。この構成は、並列分散システムにおいて強制的にデータが移動させられるようにするのに関係するオーバヘッドを低減することができ、システムがもたらすスループットを大きく増強する。この構成はまた、特定の処理エンクレーブの作成も可能にすることができ、これは、特定のサンプルタイプが異常な使用構造を有する（すなわち、相当量もしくはリソースを使用するか、または、処理に長い時間がかかる）場合に特に有用である。
【００９９】
チェーンは、継続的に測定および最適化することができる。この構成は、システムからの進行中のフィードバックに基づいて自動および手動の両方の調整を可能にすることができる。どのようにチェーンが機能するかが分かることによって、リソースマネージャ１６５に、予期されるチェーン使用の確率に基づいてリソース利用を最適化および予期するためのより良好な知識がもたらされる。リソースマネージャ１６５はまた、特定のチェーンが性能過多または性能不足であるかを判定し、その大域的リソース使用配分を適切に調整するためにリアルタイムチェーン測定基準を利用することもできる。頻繁に使用されないチェーンは、低減することができ、多用されるチェーンにリソースが割り当てられるようにすることができる。
【０１００】
新たなサンプルタイプを考慮すること、および、既存のサンプルタイプにさらなる深度を追加することの両方のために、新たなチェーンを継続的に追加することができる。これによって、全体的なシステムが、サンプルの分類および類似度分析のための新たなモデルを改良および考慮するのに利用可能な新たな情報源を得る。
【０１０１】
分類器構成要素１２５は、既存のモデルに対してサンプルから抽出される特徴を分類するための方法を提供することができる。分類器構成要素１２５はまた、規定の類似点にわたる類似度分析も提供することができる。分類器構成要素１２５は、分類を行うことに焦点を当てられている独立した作業者クラスとして動作することができる。抽出構成要素１２０のように、分類器構成要素１２５は、ルータ１５５がルーティング決定を介してサンプルをプッシュすることができる有向非巡回グラフ内の新生のチェーンを作成することができる。加えて、抽出器のように、これらのチェーンはサンプルタイプに特有とすることができ、分類における大量の特殊化が可能になる。この特殊化の或るものは、個々のサンプルと関連付けられる特定の特徴セットに関連することになる。
【０１０２】
分類チェーンは、抽出作業者、または分析作業者と同様に動作する作業者セットを含むことができる。当該作業者の目的は、特に、分類を作成し、特徴のような内部データおよび外部分類システムからのデータのような外部データに基づいて追加の分類ロジックを実施することであり得る。一般的に、内部分類は、部分的または全体的に、機械学習アルゴリズムを具現化する専用の分類器の出力に基づくことができる。機械学習を利用しないものでさえ、モデルの知識の現在の状態を最良に表すために最適な集約アルゴリズムを測定するために使用されるため、その出力から直接に受益する。
【０１０３】
分類器構成要素１２５は、ルータ１５５およびスケジューラ１６０を利用して、ルートの優先順位付けおよび最適化の固有の態様のすべてに従うことができる。加えて、分類器構成要素１２５は、リソースマネージャ１６５内で動作することができ、より多くのリソースを分類器作業者クラスに配分することによって、レートがリアルタイムに調整されることが可能になる。
【０１０４】
分類のように、すべてのサンプルの集団の代表的なサンプリングに対して訓練された分析モデルを使用して類似度分析を実施することができる。同様のチェーンが、大規模な有向および無向類似度分析を処理することができる。一般的に、有向類似度分析は、高度に有用な出力を提供することができる。無向類似度分析は、集団に対する同一性を探索し、基本的に、以前に見た任意のものと異なるサンプルを識別するよう試行するのにより使用される傾向にある。各類似度分析は、時間およびモデル依存であり得る。新たなモデルおよび集団内の異なるサンプルセットを有することによって、類似度分析が再計算されるようになり得る。
【０１０５】
類似度分析は、適切に異常な「外れ値」を検出することもさらに可能にすることができる。これらの外れ値は、問題になっているモデルが依然として能動的に範囲内にあることを判定するのに有用であり得る。外れ値検出のレートが増大する場合、集団内に最新タイプのサンプルを組み込むために、使用されているモデルが再評価され得る。
【０１０６】
すべての必要な要素が以前のデータストアから収集またはロードされたときにサンプルが分類の準備ができていることを決定するルータ１５５によって、分類を行うことができる。その後、ルータ１５５は、サンプルを適切な分類器チェーンの先頭にシフトすることができる。その後チェーンを実行することができ、最終的な分類スコアを計算することができる。分類器チェーンは、統一データアクセス層１３５とインターフェースすることができ、それによって、分類の結果を記憶することができる。この時点で、サンプルの分類が将来の問い合わせおよび他の場所における使用のために利用可能になる。
【０１０７】
すべての必要な要素が以前のデータストアから収集またはロードされたときにサンプルが類似度分析の準備ができていることを決定するルータ１５５によって、類似度分析を行うことができる。その後、ルータ１５５は、サンプルを適切な類似度分析チェーンの先頭にシフトすることができる。その後チェーンを実行することができ、類似度分析スコアのセットを計算することができる。無向類似度分析は、人間によって意味を推測するために検討可能な領域内に記憶することができる。類似度分析チェーンは、統一データアクセス層１３５とインターフェースすることができ、それによって、有向類似度分析の結果を記憶することができる。その後、サンプルの類似度が将来の問い合わせおよび他の場所における使用のために利用可能になり得る。
【０１０８】
分類器作業項目は、集約分類の使用をサポートすることができる。これらのタイプの分類は、以前に計算された分類の上に構築される層であり得る。初回通過分類において、サンプルは、いくつかの個別化した分類スコアを受け取ることができる。第２の段階は、特定の必要性に適合するために有効な集約分類スコアを最良に計算するための追加の論理が定義されることを可能にすることができる。
【０１０９】
多段分類器を使用することによって、最小限のリソース利用で高い速度および容量における完全なおよび部分的な再分類を可能にすることができる。スケジューラおよびルータを活用することによって、多段分類器内の要素が失われるか、不完全であるか、または最新でない場合に、それらの失われた要素を埋め戻すことができる。これらの計算は、処理中に実施することができ、各分類決定に関する最新で最も完全な概念を使用することが可能になる。
【０１１０】
システムは、モデルを使用して、サンプルに関する分類および類似度分析の疑問に回答することができる。分類器を駆動するそのようなモデルを規定、開発および構築することができる。これらのモデルを有効にするために、モデル生成のコストを最小限に抑え、コストおよび正確さについて最適化する必要がある。モデルは、機械学習技法に基づく確率行列を含むことができる。これを行うために、サンプル集団からサンプルの訓練セットを抽出することができ、モデルを生成するのに使用することができる（すなわち、将来のデータセット／サンプルなどを特性化するために履歴データを使用してモデルを訓練することができる）。その後、（サンプルセットを含まない）大規模な有効性検証セットに対してモデルをバックテストすることができる。モデルが有効であると判定されると、モデルは分類器のために製品使用にのせることができる。
【０１１１】
サンプルは適度な標準分布を有するため、集団全体のうちのサブセットをほとんどの場合、使用することができる。このため、十分に大規模な集団全体、および、集団の十分に大規模なサブセットを、ランダムに選定される訓練に使用する結果として、サンプルの適正な表現が全体としてもたらされる。サンプルのシステムへの進行中の提出に起因して、サンプルセットおよび訓練セットの数は継続的に増大し得る。この構成は、特殊化された分類器においてより良好な分析を実施するためのサブモデルが構築されることを可能にするのに十分な密度を有する反復モデルが構築されることを可能にする。
【０１１２】
すべてのサンプルが機能的に等価であると考えることは有用であるが、以上に一般的な類似度から非常に特定的な類似度へと動くときには論理的な勾配があるというのが現実である。システムは、これらの分離をさらに改良するのに有用なサブモデルを作成するために試験および試行することができる。モデル自体が、結果として、基本レベルの非常に一般的な特徴が比較されることを可能にすることができ、結果としてより特定的な特徴が、一般的に類似したタイプのサンプルに対して比較されるようにすることができる多段分類器をもたらすことができる。
【０１１３】
モデル生成システムは、干渉しないように設計することができ、内部測定を使用することによって、最適なモデルを作成するよう試行することが可能になる。これは、成功する基準および失敗する基準を規定し、特定のタスクに対するモデルの適切性を測定および比較するための方法を発見することを含む。
【０１１４】
図６は、一般的モデル生成のためのプロセスを示す図表６００である。最初に、６０５において、サンプル集団の完全な調査を行うことができる（「集団全体」と称され得る）。その後、６１０において、ランダムなサブセットが訓練セットとして機能するために選択され得る。加えて、６１５において、集団の第２のランダムなサブセットが全体の残りから検査セットとしての役割をはたすために選択され得る。次に、６２０において、機械学習分類技法を訓練セットに適用することによってモデルが生成され得る。訓練セットは処理されて数の大きなベクトルにされ、これらのベクトルが、ロジスティック回帰、ニューラルネットワーク、サポートベクタマシン、および、一連のモデルを生成するようにカスタム調整された変数を有する決定木組み合わせを含む様々な機械学習アルゴリズムにおいて使用される。モデルは、一般的なシステムに於いて使用するための最終段階モデルを生成するためにさらに検査および改良される。その後、６２５において、生成されたモデルを検査セットに対して検査することができ、任意選択的に、信頼区間を計算することができる。信頼間隔は、既存のモデルに対して比較されて、適切性が判定され得、モデルが失敗して６１０〜６２５が反復されるようにするか、または、（６３０において）モデルを発行するかが判定され得る。
【０１１５】
訓練セット生成器は、全体的なサンプル集団から訓練セットのためのサンプルを選択するにあたっての任意の特定のバイアスを低減するよう試行するように構成することができる。訓練セット生成器は、集団から訓練サンプルをランダムに選択することによってこれを行うことができる。
【０１１６】
サブモデルは、一般的なセットに対して比較されたときのタイプのバイアスを仮定し、そのため、サブモデルが、当該サブモデルが代表的になり得る適切なサンプルに対してのみ比較されることが重要である。これは、サブモデルが集団全体のサブセットに対して作成されるためである。サブモデルを生成するためには、特定の基準を一次フィルタとして適用することが重要である。サンプル選択および将来の分類の両方について、この一次フィルタが均一に適用され、このポストフィルタ結果からサンプルがランダムに選択される限り、少なくともサブモデルに関係する項目の範囲内でバイアスがさらに導入されることはない。
【０１１７】
サンプルの分布は正確に「正規」ではない場合があるため、統計的目的から、個々の訓練セットは完全に代表的でない場合がある。これに対処するために、システムは、特定のモデルの分散が過度にバイアスされないことを保証するために、訓練セットサイズを増大させ、複数回の反復を実行するよう試行することができる。
【０１１８】
反復モデルは、適切性に基づいて好ましい特徴にさらなる重みを追加することができる。反復の回数を増大させることによって、特徴セットの重みの有効性の信頼度を得ることができ、結果として、全体的な分類器がより強固になる。
【０１１９】
モデルは、利用可能な特徴の何らかのサブセットを使用して、分類モデルを生成することができる。突出した特徴の数は経時的にさらに大きくなる可能性があり、訓練セットはさらに大きくなり得るため、生成プロセスを最適化しようとする試行において考慮される特徴のセットを低減することが望ましい場合がある。特徴を切り詰めるプロセスは反復的に行うことができる。特徴のセットを、モデルに好影響を与えるセットに低減することによって、セットは、分類におけるオーバヘッドを劇的に低減することができる。反復ごとに、（適合度関数に基づくものとして）脆弱なスコアをもたらす特徴は後続する反復において落とされ得る。全モデルは切り詰められた／低減されたモデルよりも正確であり得るため、これは任意選択のステップである。
【０１２０】
サンプルからの特徴のサブセットがないこと、または、特徴の完全なセットを観測することができないことのいずれかに起因して、サンプルの観測される特徴のセットは、特徴空間全体のサブセットであり得る。様々な特徴サブセットのサンプル間の統計的比較を可能にするために、システムは、たとえば、サンプルサブセット内にない特徴の推定特徴を生成し、存在しない特徴を比較のために有効な特徴として規定し、または、特徴空間は直接比較されない抽象レベルにおいてサンプルを比較するためにマルチモデル手法を利用することができる。
【０１２１】
上記で述べたように、モデルは、任意の形態の教師あり学習を使用するために効率的に訓練することができる。これを行うためには、高い信頼度において分類が分かっているかまたは推測されるデータセットがコンパイルされなければならない。この訓練は、様々な方法によって行うことができる。これは、手作業で有効性検証され得るか、または、いくつかのコンテキストにおいては機械生成され得る。
【０１２２】
教師なし機械学習は訓練を必要としないが、その出力において変動がはるかにより大きくなり得る。システムが本質的に探索的であるように設計される場合、訓練セットはセット全体であると判定され得る。
【０１２３】
類似度分析は、必ずしも訓練を必要とするとは限らない。類似度分析は、以前に分類されたサンプルを利用して、問題になっている類似性をカテゴライズし、それらのサンプルの適切性を判定するのを助けることができるが、これすらも必須ではない。分類は、観測される類似性からコンテキストを判定しなければならないのと対比して、検出され得る類似性の上にコンテキストを重ねることを可能にする。
【０１２４】
適切性のレベルに基づいてモデルを有効性検証することができる。この意味における適切性は、他の事実を伴う、モデルの正確さである。システムは、適切性を規定する基準のセットを定義することを可能にすることができる。これは、システムによって生成されるモデルが最低限の基準を満たすことを保証するための最低点として使用することができる。同じデータを以前のモデルと比較することによって、さらなる適切性基準を獲得することができる。一般的に適切性は、分類の正確さとして定義することができる。この正確さは、正確な回答および不正確な回答の測度およびタイプによって考えることができる。システムはこれらのレートを相対的に考慮するため、これは、複数のクラスが考慮されるときはより複雑な動作であり、標準的な確度試験に加えて、意図される結果に対する複数の近密度を実施することを選択することができる。
【０１２５】
サンプルは、以下の４つのカテゴリのうちの１つに分類することができる（サンプルごとまたはクラスごとに計算される）。
１．真陽性−サンプルはその分類に属し、モデルはそのサンプルをそこに配置している。
２．真陰性−サンプルはその分類に属せず、モデルはそのサンプルをそこに配置していない。
３．偽陽性−サンプルはその分類に属せず、モデルはそのサンプルをそこに配置している。
４．偽陰性−サンプルはその分類に属し、モデルはそのサンプルをそこに配置していない。
【０１２６】
目標は、クラスごとに真陽性を最大化することである。誤り率は、偽陽性および偽陰性に対する許容誤差を考慮する。モデルに対する様々な調整を使用して、これらの誤りレベルの低減を改善またはさらに最適化することができる。
【０１２７】
適切性に対する基準を満たすモデルが生成されると、集団全体にわたってさらなるバックテストを計算することができる。このバックテストは、集団全体に対するサンプルのより包括的な分析をもたらすことができる。完全なバックテストが、訓練セットにおいて計算されるものとしてのモデルに類似の適切性特性を実証し、適切性が基準を満たす場合、この時点において、モデルは確認され得る。モデルが確認されると、集団内の各サンプルの分類を、統一データアクセス層１３５を介して更新することができ、分類器構成要素１２５を介して新たなモデルを積極的に関与させることができる。
【０１２８】
一般的モデルは、いくつかのより小さい特定的事例の計算を必要とする。これらのモデルは、モデル全体の、その元々の生成中の部分として定義することができる。これらのサブモデルは、主モデルに非常に類似したプロセス全体において、より小さいデータセットおよび特徴セットのみについて動作する。一般的モデルは、特定の特殊化された基準について複数のサブモデルに適応することができる。各サブモデルは、同様の反復的様式で生成されるべきである。サブモデルの最終結果は、サブモデルがその評価においてまったく完全であると判定されない限り、主モデルにおいて参照されるべきであり、その場合、これがこのタイプの分類について主モデルに取って代わる。
【０１２９】
以下のように複数のモデルを生成することができる。必要とされる各サブモデルについて、適切な全体の集団を選択することができる。その後、サブモデル集団からランダムな訓練セットを選択することができる。加えて、サブモデル集団からランダムな検査セットを選択することができる。次に、適切な訓練セットに基づいてモデルを生成することができる。新たなサブモデルの適切性を、定義されている基準および以前のモデルに対して反復的に検査することができる。正確なモデルが達成されると、このモデルは、一般的モデルとともに発行され得る。
【０１３０】
図７は、プロセスフロー図の図表７００であり、７０５において、データサンプルが有向非巡回グラフのような有向グラフ内に置かれる。有向グラフは、データサンプルを処理するのに使用される各特定の作業者クラスの作業項目の待ち行列を形成する複数の階層ノードを含む。その後、７１０において、作業項目は、有向グラフのノードをトラバースすることによって、複数の作業者の各々の待ち行列内でスケジュールされる。その後、７１５において、作業項目が待ち行列に従って、作業者に供給される。結果は、後に７２０において、それらの作業項目の作業者から受け取ることができる（有向グラフのノードが、受け取られる結果に基づいてトラバースされる）。加えて、いくつかの変形形態では、７２５において、結果を分類することができ、それによって、７３０において、１つまたはモデルを生成することができる。
【０１３１】
本発明の主題は、データを分類または他の様態で特性化する必要がある多くの異なる用途にわたって利用することができることが諒解されよう。一例において、このシステムは、特定のコンピュータファイルが悪意（オペレータまたは基礎となるコンピュータシステムに害を与える意図）あるものである可能性の判定を行うのに使用することができる。この状況において、システムは、コンピュータ上のファイルを表すサンプルによって定義することができる。これらのファイルは、通常のプログラム実行ファイル、データファイル、またはコンピュータ上の任意の他のタイプのファイルとすることができる。分類システムは、可能性のあるサンプルの「良さ」および「悪さ」をモデル化するように（たとえば、既知の結果による履歴ファイル分析を使用して訓練されている１つまたはモデルを使用して）調整され、サンプルが実行された場合にコンピュータに害を与え得るものである確率を伝達する。モデルは、（たとえば、既知の結果による履歴ファイル分析を使用して訓練されている１つまたはモデルを使用して）サンプルから抽出される特徴セットから作成される。これらの特徴は、いくつかの分析段階を通じたファイルに関する測定値およびその内容を含むことができる。いくつかの例示的な特徴は、ファイルサイズ、情報密度、ファイルの構造レイアウト、ファイルのタイプが何であるかに関する特定の要素（プログラムのプログラムセクション名、文書の著者詳細など）を含む。特徴は、システム内の特徴として表すことができるいくつかの層のより深い分析をも含むことができる。これは、命令を模倣的に解釈することを含む、深いテキスチャ分析またはコード解析を含み得る。
【０１３２】
本発明の使用の別の例は、Ｘ線処理のような、生物医学用途において画像分類を解決することである。サンプル分類は、画像内で癌性増殖が存在する可能性であり得る。このシステム構成において、サンプルは、高解像度画像フォーマットコンピュータファイルに含まれる個々のＸ線画像によって表される。これらの画像は処理され、向き、サイズ、明暗差、および線形性を含む特徴ベースのデータが収集される。これらの特徴は、特定の画像内で検出されている癌性増殖の存否を予測し、それらの増殖を研究者または医師に対して強調するための強力な能力を提供するモデルを作成するのに使用される。
【０１３３】
本明細書に記載されている主題の１つまたは複数の態様または特徴は、デジタル電子回路、集積回路、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合わせにおいて実現することができる。これらの様々な態様または特徴は、記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合されている、専用または汎用であり得る、少なくとも１つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能かつ／または解釈可能である１つまたは複数のコンピュータプログラムにおける実施態様を含むことができる。プログラム可能システムまたはコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般的に互いから遠隔しており、一般的に、通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で作動し、互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【０１３４】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポート、またはコードと称することもできるこれらのコンピュータプログラムは、プログラム可能プロセッサに対する機械命令を含み、高水準手続き型言語、オブジェクト指向プログラミング言語、関数型プログラミング言語、論理プログラミング言語、および／またはアセンブリ／機械言語で実装することができる。本明細書において使用される場合、「機械可読媒体」という用語は、機械命令および／またはデータをプログラム可能プロセッサに提供するのに使用される、たとえば、磁気ディスク、光ディスク、メモリ、およびプログラム可能論理デバイス（ＰＬＤ）のような、任意のコンピュータプログラム製品、装置および／またはデバイスを指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および／またはデータをプログラム可能プロセッサに提供するのに使用される任意の信号を指す。機械可読媒体は、たとえば、持続性ソリッドステートメモリもしくは磁気ハードドライブまたは任意の均等な記憶媒体のように、そのような機械命令を持続的に記憶することができる。機械可読媒体は、代替的にまたは付加的に、たとえば、プロセッサキャッシュまたは１つまたは複数の物理プロセッサコアと関連付けられる他のランダムアクセスメモリのように、そのような機械命令を一時的に記憶することができる。
【０１３５】
ユーザとの対話を可能にするために、本明細書に記載されている主題の１つまたは複数の態様または特徴は、情報をユーザに表示するための、たとえば、陰極線管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）または発光ダイオード（ＬＥＤ）モニタのような表示デバイスと、ユーザがそれによってコンピュータに入力を提供することができる、キーボード、および、たとえばマウスまたはトラックボールのようなポインティングデバイスとを有するコンピュータ上で実装することができる。ユーザとの対話を可能にするために他の種類のデバイスも使用されてもよい。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックのような任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、限定ではないが、音響、発話、または触覚入力を含む任意の形態で受信されても良い。他の可能な入力デバイスは、限定ではないが、シングルまたはマルチポイント抵抗式または容量式トラックパッドのようなタッチスクリーンまたは他のタッチセンサ式デバイス、音声認識ハードウェアおよびソフトウェア、光学スキャナ、光学式ポインタ、デジタル画像キャプチャデバイスならびに関連する解釈ソフトウェアなどを含む。
【０１３６】
上記の説明および特許請求の範囲において、「〜の少なくとも１つ」または「〜の１つまたは複数」のような語句が、要素または特徴を連結したリストを後続に伴って記載されている場合がある。「および／または」という用語も、２つ以上の要素または特徴のリスト内に記載されている場合がある。それが使用される文脈によって別途黙示的または明示的に相反していないかぎり、そのような語句は、リストされている要素もしくは特徴のいずれかを個別に、または、記載されている要素もしくは特徴を他の記載されている要素もしくは特徴のいずれかと組み合わせて意味するように意図されている。たとえば、「ＡおよびＢのうちの少なくとも一方」、「ＡおよびＢのうちの１つまたは複数」、および「Ａおよび／またはＢ」は各々、「Ａ単独、Ｂ単独、またはＡおよびＢともに」を意味するように意図されている。３つ以上の項目を含むリストについても、同様の解釈が意図されている。たとえば、「Ａ、ＢおよびＣのうちの少なくとも１つ」、「Ａ、ＢおよびＣのうちの１つまたは複数」、および「Ａ、Ｂ、および／またはＣ」は各々、「Ａ単独、Ｂ単独、Ｃ単独、ＡおよびＢともに、ＡおよびＣともに、ＢおよびＣともに、またはＡおよびＢおよびＣともに」を意味するように意図されている。加えて、上記および特許請求の範囲において「〜に基づいて」という用語が使用されている場合、これは、記載されていない特徴または要素も許容可能であるように、「〜に少なくとも部分的に基づいて」を意味するように意図されている。
【０１３７】
本明細書に記載されている主題は、所望の構成に応じて、システム、装置、方法、および／または製品において具現化することができる。上記の説明において記載されている実施態様は、本明細書に記載されている主題と一致するすべての実施態様を表しているとは限らない。そうではなく、それらの実施態様は、記載されている主題に関係する態様と一致するほんの数例にすぎない。いくつかの変形形態が上記の詳細に記載されているが、他の修正または追加が可能である。特に、本明細書に記載されているものに加えて、さらなる特徴および／または変形形態が提供されてもよい。たとえば、上記に記載されている実施態様は、開示されている特徴の様々な組み合わせおよび部分組み合わせならびに／または上記に記載されているいくつかのさらなる特徴の組み合わせおよび部分組み合わせを対象とすることができる。加えて、添付の図面に描かれておりかつ／または、本明細書に記載されている論理フローは望ましい結果を達成するために、必ずしも図示されている特定の順番または順序を必要としない。他の実施態様は添付の特許請求項の範囲内にあり得る。
【符号の説明】
【０１３８】
１０５・・・外部ソース、１１０・・・クエリインターフェース、１２０・・・抽出構成要素、１２５・・・分類器構成要素、１３０・・・モデル生成構成要素、１３５・・・統一データアクセス層、１４０・・・キャッシュ、１４５・・・関係型データストア、１５０・・・ビッグデータソース、１５５・・・ルータ、１６０・・・スケジューラ、１６５・・・中央リソースマネージャ。
【図１】
2019197549.tif 000002
【図２】
2019197549.tif 000003
【図３】
2019197549.tif 000004
【図４】
2019197549.tif 000005
【図５】
2019197549.tif 000006
【図６】
2019197549.tif 000007
【図７】
2019197549.tif 000008
【外国語明細書】
2019197549.tif 000009
2019197549.tif 000010
2019197549.tif 000011
2019197549.tif 000012
2019197549.tif 000013
2019197549.tif 000014
2019197549.tif 000015
2019197549.tif 000016
2019197549.tif 000017
2019197549.tif 000018
2019197549.tif 000019
2019197549.tif 000020
2019197549.tif 000021
2019197549.tif 000022
2019197549.tif 000023
2019197549.tif 000024
2019197549.tif 000025
2019197549.tif 000026
2019197549.tif 000027
2019197549.tif 000028
2019197549.tif 000029
2019197549.tif 000030
2019197549.tif 000031
2019197549.tif 000032
2019197549.tif 000033
2019197549.tif 000034
2019197549.tif 000035
2019197549.tif 000036
2019197549.tif 000037
2019197549.tif 000038
2019197549.tif 000039
2019197549.tif 000040
2019197549.tif 000041
2019197549.tif 000042
2019197549.tif 000043
2019197549.tif 000044
2019197549.tif 000045
2019197549.tif 000046
2019197549.tif 000047
2019197549.tif 000048
2019197549.tif 000049
2019197549.tif 000050
2019197549.tif 000051
2019197549.tif 000052
2019197549.tif 000053
2019197549.tif 000054
2019197549.tif 000055
2019197549.tif 000056
2019197549.tif 000057
2019197549.tif 000058
2019197549.tif 000059
2019197549.tif 000060
2019197549.tif 000061
2019197549.tif 000062
2019197549.tif 000063