(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-17
(45)【発行日】2024-07-25
(54)【発明の名称】機械学習アプリケーション用の方法、コンピュータ読み取り可能な媒体、装置およびシステム。
(51)【国際特許分類】
G06F 16/14 20190101AFI20240718BHJP
【FI】
G06F16/14
(21)【出願番号】P 2021130858
(22)【出願日】2021-08-10
(62)【分割の表示】P 2017546095の分割
【原出願日】2015-08-05
【審査請求日】2021-08-10
【審判番号】
【審判請求日】2023-09-29
(32)【優先日】2015-03-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517177246
【氏名又は名称】ブルヴェクター,インコーポレーテッド
【氏名又は名称原語表記】BLUVECTOR, INC.
【住所又は居所原語表記】1701 JOHN F. KENNEDY BOULEVARD, PHILADELPHIA PENNSYLVANIA 19103, U.S.A.
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100159385
【氏名又は名称】甲斐 伸二
(74)【代理人】
【識別番号】100163407
【氏名又は名称】金子 裕輔
(74)【代理人】
【識別番号】100166936
【氏名又は名称】稲本 潔
(74)【代理人】
【識別番号】100174883
【氏名又は名称】冨田 雅己
(74)【代理人】
【識別番号】100189429
【氏名又は名称】保田 英樹
(74)【代理人】
【識別番号】100213849
【氏名又は名称】澄川 広司
(72)【発明者】
【氏名】ミセレンディノ,スコット,ビー.
(72)【発明者】
【氏名】スタイナー,ドナルド,ディー.
(72)【発明者】
【氏名】ピーターズ,ライアン,ブイ.
(72)【発明者】
【氏名】フェアバンクス,ガイ,ビー.
【合議体】
【審判長】林 毅
【審判官】脇岡 剛
【審判官】吉田 美彦
(56)【参考文献】
【文献】米国特許出願公開第2009/0300765(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 16/00-16/958
G06F 21/50-21/57
(57)【特許請求の範囲】
【請求項1】
複数のファイルに対して、前記複数のファイルの1以上のプロパティを示すメタデータを生成し;
前記メタデータの1以上の値
に基づく前記複数のファイルの第1の部分におけるメンバシップを限定する1以上のクエリの実行に基づき、前記複数のファイルの第1の部分を選択し;
前記複数のファイルの第1の部分に基づき、
前記複数のファイルを悪質なものか、または安全なものかに分類する1以上の機械学習モデルをトレーニングし;
前記1以上の機械学習モデルに基づき、前記複数のファイルの第2の部分から一のファイルが
悪質なものか、または安全なものかを決定すること:
を含む、
コンピュータによって実行される方法。
【請求項2】
前記メタデータの値は、少なくとも前記複数のファイルの第1の部分が同じファイルタイプであることを示す、請求項1に記載の方法。
【請求項3】
前記メタデータは、前記複数のファイル間の関係を示す情報を含む、請求項1に記載の方法。
【請求項4】
前記メタデータの生成は、前記プロパティの少なくとも一部分を含むユーザーの入力の受け付けに基づく、請求項1に記載の方法。
【請求項5】
前記複数のファイルは、ビデオファイル、音声ファイル、文書ファイルおよび実行ファイルのうち、少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記1以上の機械学習モデルのトレーニングは、第1のクラスタのコンピュータ上で実行され、前記複数のファイルは、第2のクラスタのコンピュータに記憶される、請求項1に記載の方法。
【請求項7】
前記複数のファイルの前記第2の部分が同じファイルタイプである、請求項1に記載の方法。
【請求項8】
前記1以上の機械学習モデルの前記トレーニングは、単純ベイズ、決定木、ランダム森および神経ネットワークのうち、少なくとも1つを含む、少なくとも1つの機械学習アルゴリズムに基づく、請求項1に記載の方法。
【請求項9】
実行時に、前記請求項1~
8のいずれか1つに記載の方法を実行させる命令を記憶した非一過性のコンピュータ読み取り可能な媒体。
【請求項10】
1以上のプロセッサ;および
メモリを備えた装置であって、前記メモリは、前記1以上のプロセッサによって実行されるとき、前記装置に前記請求項1~
8のいずれか1つに記載の方法を実行させる命令を記憶する装置。
【請求項11】
前記請求項1~
8のいずれか1つの方法を実行するよう構成された第1のコンピュータ装置;および
前記複数のファイルの第2の部分から前記ファイルが悪質なものであるという表示を受信するように構成された第2のコンピュータデバイスを備えたシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、機械学習アプリケーション用の方法、コンピュータ読み取り可能な媒体、装置およびシステムに関する。
【背景技術】
【0002】
背景
既存の技術水準のデジタルオブジェクト管理システムは、機械学習プロセスの支援に特化していない。デジタルオブジェクト管理システムは通常、ユーザーにデジタル文書を触れさせるために大規模なライブラリシステムによって利用される傾向がある。必要とされるものは、何十万から何十億ものトレーニングおよびテスト例を考慮して管理する必要がある「ビッグデータ」環境において、教師あり機械学習を実行する課題に取り組むシステムである。これは歴史的には、トレーニング計算リソースと比べて、トレーニングデータが限られていた環境で通常行われていた機械学習にとって、新体制である(すなわち、あなたがトレーニングデータを有するなら、トレーナーは、しかるべき期間、そのデータを扱うことができる)。自動化されたデータソースが機械学習アルゴリズムに入力されても、利用することのできる例および/または特徴の数は、学習アルゴリズムの性能によって制限される。
【0003】
この新たな動作体制は、ユーザーにどのサンプルを使用すべきか選択させる。コーパスからの無作為抽出などの、単純な方法は、収集の偏りを保ち、結果に悪影響を及ぼしうる。結果として、ユーザーがトレーニングサンプルの偏りを理解し、制御する必要がある。
【0004】
今日、機械学習用のデジタルオブジェクトは通常、階層的なファイルシステム内に記憶されている。ファイル記憶装置は共有であってもよいが、ユーザーのマシンにしばしば限定される。教師あり機械学習のトレーニングおよびテストのリストは、通常、比較的小さな数のサンプルおよび/またはオブジェクトにわたって手動生成される。機械学習技術が「ビッグデータ」環境に組み入れられるについて、何百万から何十億ものサンプルを管理する必要になるだろう。機械学習は通常、スクリプトまたは手動で実行される。トレーニングおよびテストの結果はしばしば、データオブジェクトと同じ階層的なファイルシステム内に記憶される。関連メタデータはしばしば維持されない。データが維持されるなら、結果の語と語のつながり(collocation)を通じて、トレーニング、およびテストのリストが分類器とともにディレクトリ構造内または手動で維持されたスプレッドシート内にあるものと示唆される。
【0005】
既存の機械学習特許は、機械学習技術により用いられる学習アルゴリズムおよびプロセスを含むが、機械学習システムの入力および出力の準備および管理を含まない。
【発明の概要】
【課題を解決するための手段】
【0006】
要約
実施形態は、従来技術のデメリットを克服する機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法を含む。例えば、実施形態は、何十万から何十億ものトレーニングおよびテスト例を考慮して管理する必要がある「ビッグデータ」環境において、教師あり機械学習を実行する課題に取り組むシステムを提供する。さらに、実施形態は、ユーザーがトレーニングサンプルの偏りを理解し、制御することを可能にする。
【0007】
これらのおよびその他の長所は、デジタルオブジェクトライブラリ管理(DOLM)システムをクラウドストレージソリューションと統合させることによって提供される。DOLMは、多数のオブジェクトおよびオブジェクト間の関係を示すメタデータを含む関連メタデータを追跡して管理する能力を提供する。クラウドストレージソリューションは、ライブラリにわたって分析およびメタデータ抽出の分散処理を可能にする。
【0008】
これらのおよびその他の長所は、デジタルオブジェクトライブラリに多数の機械可読なデジタルオブジェクトを投入(populate)し、前記デジタルオブジェクトを修正して前記デジタルオブジェクトまたはその他のデジタルオブジェクトおよび既存のデジタルオブジェクト間の関係について追加の機械可読なデータを含め、既知のオブジェクトを1以上のカテゴリに分類するために用いられる機械学習モデルの構築および検証(verification)用のオブジェクトリストを生成し、クエリを構築してオブジェクトリストを生成し、既知のオブジェクトを1以上のカテゴリに分類するために用いられる機械学習モデルが生成される、モデル生成を開始し、モデル評価を開始し、モデル、オブジェクトリスト、評価結果、およびこれらのオブジェクト間の関連を記憶し、オブジェクトメタデータ、リスト、関連情報、および評価結果の画像表示を生成し、デジタルオブジェクトのライブラリにわたって分散可能なアルゴリズムを実行することを含む機械学習アプリケーション用のデジタルオブジェクトライブラリ管理方法によっても提供される。
【0009】
これらのおよびその他の長所は、機械学習モデルのトレーニングおよびテスト用に用いられるデジタルオブジェクトライブラリ管理システムによっても提供される。前記システムは、機械学習モデルのトレーニングおよびテスト用に用いられるデジタルオブジェクトの記憶、生成および修正を管理するために用いられるデジタルオブジェクトライブラリ管理システム(DOLMS)サーバーを含む。DOLMSサーバーは、デジタルオブジェクトレポジトリ(DOR)、グラフィカルユーザーインターフェース(GUI)ソフトウェア、データベースおよび分散分析モジュールをさらに含む。前記システムは、機械学習モデルのトレーニングおよびテストに用いられるテストおよびトレーニングクラスタのコンピュータならびに前記デジタルオブジェクトを1以上のデジタルオブジェクトライブラリ内に記憶するために用いられるストレージクラスタのコンピュータをさらに含む。
【0010】
図面の簡単な説明
機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法の実施形態は、以下の図面と併せて理解され、説明される。
【図面の簡単な説明】
【0011】
【
図1】
図1は、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムの実施形態の一例となるアーキテクチャを例示するブロック図である。
【
図2】
図2は、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理方法の一実施形態を例示するフローチャートである。
【
図3】
図3は、一例となるデジタルオブジェクトの一表現である。
【
図4】
図4は、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムの一実施形態のコンピュータシステムの構成要素(components)のブロック図である。
【発明を実施するための形態】
【0012】
詳細な説明
本明細書には、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法の実施形態が記載される。実施形態機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法は、何十万から何十億ものトレーニングおよびテスト例を考慮して管理する必要がある「ビッグデータ」環境において、教師あり機械学習を実行する課題に取り組む。上で述べたように、これは歴史的には、トレーニング計算リソースと比べて、トレーニングデータが限られていた環境で通常、動作していた機械学習にとって、新体制である。実施形態によれば、ユーザーは、トレーニングサンプルの偏りを理解し、制御することも可能になる。トレーニングサンプルの偏りを明らかにし、管理することによって、実施形態によれば、ユーザーは特定の動作環境に分類器を調整し、または多種多様の動作環境にわたって適用可能なバランスのとれた分類器を構築することが可能となる。さらに、実施形態によれば、ユーザーは、トレーニングおよびテストセットメンバの品質基準を強化し、分散分析(distributed analytic)を用いて新たなメタ特徴を構築することが可能となる。
【0013】
機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法は、データベースおよびコンピュータ処理環境を用いた大規模なデータセットに基づく教師あり、または半教師あり機械学習に基づく分類モデルを効率的に管理、開発、および評価するためのメカニズムを提供する。言いかえれば、実施形態は、機械学習アプリケーションとともに用いられる分類器または分類モデルをトレーニングするために用いられる。実施形態は、機械学習プロセスで用いられるデジタルオブジェクトの仮想ライブラリを管理し、トレーニングおよびテストセットを自動的に構築するのを助け、モデル開発によって生じたアーチファクトの構成管理(configuration management)を実行し、モデル性能評価を可視化する。機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法の1つの実施は、マルウェア検知用の分類器の構築の管理に関係する。そのような分類器は、2013年9月26日に出願された「System and Method for Automated Machine-Learning, Zero-Day Malware Detection」というタイトルの米国特許出願番号第14/038, 682(「’682特許」)に記載されたものであってもよく、参照によりその全体が本明細書に組み込まれる。
【0014】
デジタルオブジェクトライブラリ管理システムの実施形態によって処理され、管理されるデジタルオブジェクトは、一般に固定長の2進シーケンスによって表されるものであってもよい。本明細書に記載された実施形態において、デジタルオブジェクトはバイナリブロブ;すなわち、構造のないビット列のレポジトリである。一般に、デジタルオブジェクトライブラリ管理システムの実施形態に用いられるオブジェクトには2種類ある:コンテンツブロブとメタデータブロブである。一般的にいえば、コンテンツブロブ、またはオブジェクトは、ファイルであり、一方、メタデータブロブ、またはオブジェクトは、関連したコンテントブロブを記載する情報を含む。例えば、メタデータオブジェクトは、コンテンツファイル、複数のコンテンツファイル、または1以上のその他のメタデータオブジェクトについての情報を含むXMLファイルであってもよい。メタデータオブジェクトは一般に、コンテンツオブジェクトを参照または指し示す情報(例えば、ポインタ)を含み、メタデータオブジェクトはコンテンツオブジェクトと関連付けられている(すなわち、メタデータオブジェクトがコンテンツオブジェクトを記述する)。
【0015】
機械学習プロセスに用いられ、それゆえデジタルオブジェクトライブラリ管理システムの実施形態によって提供されるライブラリに記憶される特定タイプのデジタルコンテンツオブジェクトは、デジタルオブジェクトライブラリ管理システムが用いられる機械学習プロセスまたはアプリケーションに依存する。例えば、’682出願に記載されているような機械学習プロセスとともに用いられるデジタルコンテンツオブジェクトは、PE32ファイル、Linux実行ファイル、音声ファイル、文書ファイル、ビデオ映像等であってもよい。画像認識機械学習プロセスで用いられるコンテンツオブジェクトは、画像ファイルであってもよい。言いかえれば、デジタルオブジェクトライブラリ管理システムの実施形態によってライブラリに記憶されたコンテンツオブジェクトは、実質上いかなるタイプのファイルであってもよい。
【0016】
コンテンツオブジェクトに関連付けられたデジタルメタデータオブジェクト内に含まれる情報は、デジタルオブジェクトライブラリ管理システムが用いられる機械学習プロセスまたは出願にも依存しうる。例えば、’682出願に記載されているような機械学習プロセスとともに用いられる実施形態において、メタデータオブジェクトは、コンテンツオブジェクトファイルが悪質または安全であったか、コンテンツオブジェクトファイルが特定のトレーニングまたは評価リストに属していたか否か、評価が評価リストのメンバであるなら、その評価結果がどうだったのか、およびその他の関連情報を示す情報を含むものであってもよい。いくつかの実施形態において、メタデータオブジェクトは、抽出された特徴(例えば、n-gram、ヘッダフィールド値、length)を含むものであってもよい。画像認識プロセスとともに用いられる実施形態において、メタデータオブジェクトは、画像の特徴を含むものであってもよい。上で述べたように、デジタルメタデータオブジェクトは、1以上のデジタルコンテンツオブジェクトおよび/または1以上のデジタルメタデータオブジェクトと関連付けられたもの、または関連するものであってもよい。
【0017】
オブジェクトのソースは、一般にアプリケーションの性質に依存し(例えば、マルウェア検知は画像処理等とは大きく異なりうる)、1つのアプリケーションがライブラリに入力する多くのソースを有するものであってもよい。
【0018】
機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法の実施形態によって、ユーザーはオブジェクトメタデータフィールドおよび意味関係を用いた(例えば、何千万もの)ラベルありデジタルオブジェクトの非常に大きなライブラリからの教師あり機械学習プロセスで利用されるトレーニングおよびテストセットを構築することも可能になる。実施形態は、全ライブラリオブジェクト、トレーニングおよびテストセット、分類器モデルおよびテスト結果に対する構成およびバージョン管理も維持する。
【0019】
実施形態において、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムおよび方法は、いくつかの既存技術を統合して教師あり機械学習用の「ビッグデータ」を管理する問題を解決する。第1に、実施形態は、トレーニングおよびテストサンプルメタデータおよび意味関係を管理するデジタルオブジェクトレポジトリを組み込む。第2に、実施形態は、分散分析を実行すべきクラウドストレージソリューションを提供する。第3に、実施形態は、機械学習プロセス内のトレーニングバイアスを制御する際にユーザーを支援するように調整されているグラフィカルユーザーインターフェース(GUI)を含む。最後に、実施形態は、サンプルストレージおよびメタデータを結び付け、分類器および結果構成管理システムを処理する。
【0020】
これは、トレーニングおよびテストサンプルメタデータを検索可能な、拡張可能なデータベースに入力するため、ファイルパス名内のトレーニングおよびテストサンプルメタデータを記憶することから離れることによって既存技術を改良する。実施形態は、機械学習およびテストプロセスを自動化する。また、実施形態は、スプレッドシートから構成管理関数を自動化されたサービスに移動する。自動化レベルの上昇により、ユーザーは機械学習ソリューションを開発し、維持することにおいて、エラーと時間を減らすことができる。
【0021】
図1を参照して、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システム100の例となるアーキテクチャを例示するブロック図を示す。システム100の実施形態は、3つ(3)のサブシステム:中央の、デジタルオブジェクトライブラリ管理システム(DOLMS)サーバー102;テストおよびトレーニングクラスタのコンピュータ(本明細書では、テストクラスタ104およびトレーニングクラスタ106として示される);およびストレージクラスタのコンピュータ108を含む。DOLMSサーバー102は、デジタルオブジェクトレポジトリ(DOR)ソフトウェア112、グラフィカルユーザーインターフェース(GUI)ソフトウェア114、データベースソフトウェア116、および分散分析モジュール118を含む、システム100のいくつかの機能の構成要素をホストするものであってもよい。DORソフトウェア112は、例えば、FeDORa Commons(登録商標)DORとして実行してもよいし、ストレージクラスタ108と通信するためFeDORa Akurba(登録商標)を含むものであってもよい。GUIソフトウェア114は、DOLMSサーバー102の、例えば、Tomcat(登録商標)ウェブサーバー120の構成要素によってホストされた、例えば、Django(登録商標)ウェブアプリケーションであってもよい。データベースソフトウェア116は、例えば、PostgreSQLデータベースとして実行するものであってもよい。分散分析モジュール118は、例えば、分散Pig(登録商標)分析モジュールとして実行するものであってもよい。DOLMSサーバー102およびその構成要素は、相互に通信、および、例えば、EULFeDORaメッセージ、HTTP、Map/ReduceメッセージおよびAkubra HDFSメッセージを用いたその他のシステム100のコンポーネントと通信するものであってもよい。いくつかのインスタンス化において、DOLMSサーバー102機能は、単一のコンピュータシステム上でホストされるものであってもよい(例えば、DOLMSサーバー102は、自己完結ボックスとして実行するものであってもよい)あるいは、複数のコンピュータシステム(例えば、ハードウェアサーバーまたは仮想マシン)にわたって分散するものであってもよい。
【0022】
DOR112は、ストレージクラスタ108とインターフェースを有し、システム100およびユーザーがデジタルオブジェクトのライブラリにアクセスし、管理することを可能にする。DOR112は、FOXMLメタデータストアなどの、メタデータストアを含むものであってもよい。DORは、デジタル情報を管理しうるソフトウェアシステムの基礎を提供するデジタル情報について一組の抽象化(abstraction)を利用する概念フレームワークである。メタデータは、データベース内に記憶されないが、検索用にインデックスされる。データは、アクセスポイント(生のビットストリームを含む、仮想データ表示)を通してアクセスされる。各アクセスポイントはURIを有する。カスタムアクセスポイントを作成しうる。DORは、デジタルオブジェクト間のデジタルオブジェクト関係(意味グラフ)の作成を支援する。一例:<is a member of the collection><hasMetadata>。単純なRDFスキーマが用いられる。オブジェクト対オブジェクトの関係が特別なデータストリーム内のデジタルオブジェクトにメタデータとして記憶される。
【0023】
図1を続けて参照し、テストおよびトレーニングクラスタは、1つの、複合コンピュータシステムまたは別々のテストクラスタ104およびトレーニングクラスタ106としてインスタンス化されるものであってもよい。テストおよびトレーニングクラスタ(例えば、別々のテストクラスタ104およびトレーニングクラスタ106)は、分散して機械学習モデルの生成およびモデルテストおよび評価を実行するために用いられる1以上の仮想および物理コンピュータシステムとして実施するものであってもよい。テストおよびトレーニングクラスタの各要素は、トレーニングおよび時間を減らすべく、オブジェクトのローカルストア、またはキャッシュを維持するものであってもよい。テストおよびトレーニングクラスタは一種の機械学習モデルの構築のためのロジックを含み、提供する。例えば、テストおよびトレーニングクラスタは、’682出願に記載された機械学習アルゴリズムおよび技術ごとに機械学習モデルの構築を支援するロジックを含むものであってもよい。システム100は、それに伴う複数のテストおよびトレーニングクラスタを含み、それぞれ1以上の種類の機械学習技術用のロジックを含み、または支援するものであってもよい。このようにして、システム100は、複数の機械学習モデルの構築を支援するものであってもよい。一実施形態において、テストクラスタ104は、複数のテスト仮想マシン(VM1,VM2,VM3…)を含む仮想テストクラスタとして実施するものであってもよい。各テスト仮想マシンは、図のようにファイルキャッシュを含むものであってもよい。トレーニングクラスタ106は、ローカルファイルキャッシュを含む、例えば、Bare metal trainerとして実施するものであってもよい。
【0024】
ストレージクラスタ108は、レポジトリ内のデジタルオブジェクトと関連付けられたデジタルコンテンツおよびメタデータを記憶する1以上のマシンで実行するものであってもよい。実施形態において、ストレージクラスタ108は、HDFS/Hadoopクラウドとして実施するものであってもよい。このような実施形態は、複数のノード:例えば、ネームノードおよび複数のワーカーノード(例えば、1…n)を含むものであってもよい。Hadoopクラウドは、DOR112用のストレージバックエンドだが、分析モジュール118(例えば、Pig分析モジュールを含む)に直接アクセス可能でもある。分析モジュール118は、DOR112によって管理されたデジタルメタデータオブジェクトを作成するものであってもよい。ストレージクラスタ108は、機械学習プロセスで用いられることを目的としたデジタルオブジェクトのライブラリを記憶し、提供する。このライブラリは、デジタルオブジェクトおよび(デジタルオブジェクトとして記憶されるものであってもよい)関連メタデータのコレクションを含む。実施形態において、ストレージクラスタ108は、図のようにクラウドストレージとして実施される。DOLMSサーバー102上のローカルストレージは、いくつかのインスタンス化において、ストレージクラスタ108の代わりをするものであってもよい。
【0025】
システム100アーキテクチャは、共有されたソフトウェアレポジトリ122を含むものであってもよい。実際、システム100は、特にインスタンス化および実行のために必要とされるその他のコンポーネントを含むものであってもよい。
図1は、1つの可能なアーキテクチャの実行を例示する。
【0026】
実施形態において、システム100は、全てのハードウェアの構成要素に必要とされるソフトウェアの構成要素をコピー、インストール、構成およびアップデートするための機構を備えるものであってもよい。
【0027】
図1を続けて参照し、DOR112は、システム100にロードされ、または作成された全てのデジタルオブジェクトの構成管理を追跡し、維持する。さらに、DOR112は、データベース116内のデジタルオブジェクト間の意味関係の知識を記憶する。DOR112は、ユーザーによって探索(search)および検索(retrieval)に使用可能なオブジェクトおよびそれらの関連メタデータおよび意味関係を作成する。実施形態において、DOR112は、外部のデータベース、記憶装置、サーチエンジンおよびウェブサーバーと情報をやりとりするアプリケーションプログラミングインターフェース(APIs)を有する。インスタンス化は、特定のデータベース、記憶装置、サーチエンジンおよびウェブサーバーの利用に応じて変わるものであってもよい。
【0028】
GUI114は、ユーザーがDOR112を構成し、DOR112内のオブジェクトを管理し、DOR112を探索し、テストおよびトレーニングクラスタ(例えば、トレーニングクラスタ106およびテストクラスタ104)上で機械学習のトレーニングおよびテストを開始し、テストおよび評価結果を見ることを可能にする。実施形態において、GUI114は、ユーザーのウェブブラウザを介してアクセス可能なアプリケーションであり、DOLM102のウェブサーバー120の構成要素によって提供される。GUI114は、DOR112およびデータベース116と連動して、システム100上でユーザーアカウントおよび権限を管理(作成、編集、および消去)するために用いるものであってもよい。
【0029】
図1を続けて参照し、実施形態において、分散解析モジュール118は、1以上のデジタルオブジェクト(コレクションと呼ぶ)について、新たな情報を生成するため、ユーザーによって拡張可能で、ストレージクラスタ108内のデジタルオブジェクトにわたって動作する、一組のソフトウェアプログラムである。分析モジュール118は、デジタルオブジェクトのコレクション内のコンテンツ、メタデータまたは意味関係を作成、読み取り、編集し、または削除するものであってもよい。分析モジュール118は、ライブラリ内のデジタルオブジェクトについて、新たなメタデータストリームを作成し、または既存のメタデータを編集するものであってもよい。例えば、分析モジュールは、特定のバイト列の発生の回数を計算し、その結果を新たなメタデータストリームとして記憶するものであってもよい。別の例において、分析は、類似の測定基準(metric)を用いて関連デジタルオブジェクトを特定し、関係メタデータを編集して、この分析結果を反映するものであってもよい。分析モジュール118は、オンデマンドまたは定期的に実行するように構成されるものであってもよい。
【0030】
分析モジュール118は、例えば、Hadoop(登録商標)に例示されたMapReduceパラダイムを用いて構成し、分散ストレージクラスタ108の多重(multiple)ノードにおいて同時に実行することを可能にするものであってもよい。例えば、分析モジュール118は、Pig分析モジュール118として実行するものであってもよい。Pig分析モジュール118は、ファイルロードおよびファイル上で実行する拡張可能な分析スクリプトを含むものであってもよい。マルウェア分析アプリケーションにおいて、分析モジュール118は、ファイルの類似の、または再利用された部分を発見するように試みるものであってもよい。Hadoopは、Apacheによって提供された分散コンピューティングフレームワークである。Hadoopは、コモディティハードウェアから構築されたコンピュータクラスタ上の非常に大きなデータセット(ビッグデータ)の分散ストレージおよび分散処理用の一組のアルゴリズムを提供する。Haddopの2つの主要な構成要素は、ストレージコンポーネント(Hadoop分散ファイルシステム(HDFS))および処理コンポーネント(MapReduce)である。Hadoopは、ファイルを大きなブロック(例えば、64MBまたは128MB)に分割し、当該ブロックをストレージクラスタ108内のノードに分配する。データを処理するため、Hadoop Mapreduceは、必要なデータを有するストレージクラスタ108内のノードであって、前記データを並列に処理するノードにコードを転送する。H-baseなどの、分散データベースは、Hadoopと連動して実行することで、小さなファイルオブジェクトへのアクセスを改善するものであってもよい。この方法は、計算およびデータが高速ネットワークによってつながった並列ファイルシステムに依存する従来のスーパーコンピュータアーキテクチャを用いるよりも、データの局所性を活用して、分散処理によって、より早く、より効率的にデータを処理する。
【0031】
本明細書に記載された機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システム100の実施形態は、教師あり機械学習の分類器モデルの制御された構築および評価用に用いられる。分類器モデルは、モデルによって定義されたオブジェクトクラスの一つへの未知のインスタンスの割り当てをもたらす判定ロジックを含む。判定ロジックは、オブジェクト内の一組の特徴に基づく。特徴の定義および選択/縮小はトレーニングプロセスの一部として動的に発生するものであってもよく、またはトレーニング前にユーザーによって静的に定義されるものであってもよい。機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システム100は、一組のラベルありトレーニングインスタンス、すなわち、教師あり機械学習に基づくが、機械学習のいかなる個別のタイプ(individual ro type)に特有でなく、または当該タイプに限定されない分類器モデルの開発に用いられるものであってもよい。教師あり、または半教師あり機械学習用の多くの異なるアルゴリズムおよびプロセスがシステム100の実施形態内で用いられるものであってもよい。システム100の実施形態は、トレーニングおよびテストクラスタ内の教師あり機械学習に1以上の方法を組み込むものであってもよい。
【0032】
図1を続けて参照し、ユーザーはGUI114を介して、またはDOR API(図示せず)を介してデジタルオブジェクトをDOR112にアップロードするものであってもよい。例えば、GUI114は、ユーザーにローカルマシン、ネットワーク、ネットワークシステムまたはその他のソース上に常駐するデジタルオブジェクトを選択可能にするものであってもよい。あるいは、DOR APIは、既知の記憶場所内のデジテルオブジェクトを検出して、アップロードするものであってもよい。オブジェクトメタデータは、例えば、DOR112によって、ingest上で関連して構築され、例えば、DOR112によって、新たに、アップロードされたデジタルオブジェクトで構築される。オブジェクトメタデータは、本明細書に記載されたようなアップロードされたデジタルオブジェクトに(例えば、ポインタによって)リンクした別個のオブジェクトとして記憶するものであってもよい。共通のメタデータフィールドは、機械学習用のコンテンツおよび特徴に関連したオブジェクトの作成、ingest時間、ソース、既知の分類、オブジェクトのサイズおよび質の測定を含む。メタデータは、デジタルオブジェクト間の関係に関する情報を含むものであってもよい。メタデータは、例えば、GUI114により、または自動化決定に基づき、ユーザーの入力に基づき構築するものであってもよい。既存のデジタルオブジェクトは、必要なら、DOR APIを介して加えられるそれらのメタデータを有するものであってもよい。サンプルファイルは、GUI114を通じてアップロードされ、テストリストオブジェクトと手動で関連づけられるものであってもよい。オブジェクトコンテンツおよびメタデータはいずれも、ストレージクラスタ108内に記憶される。
【0033】
全クラスのオブジェクトがライブラリに加えられたときに、教師あり機械学習プロセスを開始するものであってもよい。教師あり機械学習プロセスは、機械学習プロセスで用いられたモデルを構築して検証し、既知のオブジェクトを1以上のカテゴリに分類する。教師あり機械学習プロセスにおいて、ユーザーは、メタデータに基づき、クエリ(例えば、SQLクエリ)を構築し、GUI114を用いてトレーニングおよびテストセットプロパティを設定する。トレーニングおよびテストセットプロパティは、クラス間のエントリーのセットサイズおよび望ましいディストリビューションなどの要素を含む。Complexクエリは、オブジェクトメタデータの値に基づき、トレーニングおよびテストセットメンバシップを限定するために用いられる。例えば、ユーザーは、特定の日付(例えば、DATE >= 01012014)の後で作成され、ユーザーの企業(例えば、SOURCE ! = My Company)から供給されたものでなく、安全および悪質なサンプルが均等に混合したものを含む(例えば、BENIGN_RATIO == 0.5)特定のファイルタイプ(例えば、filetype == PDF)のオブジェクトを選択するクエリを生成することによってトレーニングリストを作成することを望むものであってもよい。作成されたトレーニングおよびテストセットは、DOR112内に入力され、当該セットおよびそれらの構成メンバオブジェクト間で意味関係が作成される。
【0034】
テストおよびトレーニングセットがいったん構築されると、ユーザーは、トレーニングおよびテストクラスタ上(例えば、トレーニングクラスタ106上)で分類器の生成を開始することができる。代表的な実行において、ストレージクラスタ108から適切なオブジェクトをコピーし、それらをトレーニングクラスタ106のノード(図示しないノード)に設定するためにトレーニングリストが用いられる。あるいは、トレーニングクラスタ106のノードは、ストレージクラスタ108からのトレーニングオブジェクトにアクセスできるものであってもよい。使用される特定の機械学習技術(例えば、’682出願を参照)に応じてトレーニングを実行するものであってもよい。システム100は、複数の機械学習のアルゴリズムまたは技術を含むものであってもよい。ユーザーは、システム100に組み込まれたさまざまな機械学習アルゴリズムから選択するものであってもよい。そのような機械学習アルゴリズムの例は、’682出願に記載されたアルゴリズムの他、その他の単純ベイズ、決定木、ランダム森、および人工の神経ネットワークアルゴリズムも含む。トレーニングがいったん完了すると、トレーニング分類器およびトレーニングリストおよびその中のオブジェクト間で意味関係が設定されて、DOR112に結果のモデル/分類器が入力される。意味関係は、<memberOf>、<derivedFrom>、<similarTo>または<contains>に似た形式の分野として、オブジェクトメタデータ内に示すものであってもよい。
【0035】
複数のモデル/分類器を同時にトレーニングするものであってもよく、集合分類器または分類器バンドルにまとめるものであってもよい。生成される1以上の分類器を、複数のコンピュータ上で同時に生成するものであってもよい。その後、テストセットを用いて分類器を評価するものであってもよい。テストセットは、トレーニングセットからデジタルオブジェクトを含む、または含まないものであってもよい。システム100は、複数のコンピュータ上の分類器を同時にテストするものであってもよい。評価結果がいったん出たら、DOR112内の分類器のメタデータは、分類器およびテストリストおよびその中のオブジェクト間で意味関係が設定されて更新される。
【0036】
その後、ユーザーは、GUI114を介して結果にアクセスして、分類器を検索し、テスト結果を見て、トレーニングリストを編集するものであってもよい。さらに、GUI114は、データソースによって、ブレイクアウトを示すライブラリの全コンテンツに関する統計を提供するようにしてもよい。実施形態において、GUI114は、認定された外部のパーティーからのウェブポータルを介してデジタルオブジェクトの寄与(contributions)を促進させる。
【0037】
実施形態において、デジタルオブジェクトライブラリ管理システム100は、機械学習モデルの構築および維持を支援し、悪質なソフトウェアから安全なソフトウェアを分類するために用いられるものであってもよい。多数の既知の安全および悪質なソフトウェアがライブラリ内に(例えば、ストレージクラスタ108内に)記憶される。トレーニングまたはテストセット内に含まれるかどうかを判定すべき各ファイルについて、メタデータを用いてファイルタイプ単位で分類器を生成するものであってもよい。分類器は管理され、新たなサンプルを収集すると、時間とともにアップデートされる。分類器が生成されると、テスト結果を検討して適切なパフォーマンスを確保するか、または新たな学習のメカニズム、特徴セットもしくは特徴選択アルゴリズムをテストする。
【0038】
図2を参照して、トレーニングおよびテスト機械学習モデル用の方法200の実施形態を例示するフローチャートが示される。方法200は、
図1に例示されるシステム100など、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムの実施形態によって、および当該実施形態を用いて実装(implement)または実行(execute)するものであってもよい、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理用の方法である。方法200は、ストレージクラスタ108内に記憶するものであってもよい、ライブラリに、複数の機械可読なデジタルオブジェクトを投入する、ブロック202。デジタルオブジェクトは、選択して、上述のように、GUI114および/またはDOR APIを用いて、ライブラリ内に(例えば、ストレージクラスタ108内に)アップロードするものであってもよい。実施形態において、デジタルオブジェクトは、ファイル(例えば、P32ファイル、実行ファイル、音声ファイル、文書ファイル、画像ファイル等)などの、コンテンツオブジェクトである。投入されたライブラリ内のデジタルオブジェクトは、追加の機械可読なデータ、例えば、デジタルオブジェクトおよびデジタルオブジェクト間の関係について、またはその他の方法でデジタルオブジェクトおよびデジタルオブジェクト間の関係を記述するメタデータを含むように修正されるものであってもよい、ブロック204。メタデータを含むべくデジタルオブジェクトの修正204は、ライブラリへの投入202による1以上のデジタルコンテンツオブジェクトと関連付けられているデジタルメタデータオブジェクトを作成するシステム100を含むものであってもよい。あるいは、修正204は、DOR112インターフェースを利用するか、またはその利点を活用するものであってもよい。さらなる代替として、投入202は、ストレージクラスタ108内へのデジタルメタデータオブジェクトの作成および記憶を含むものであってもよく、修正204は、既に存在するデジタルメタデータオブジェクトの編集/修正を含むものであってもよい。いずれにせよ、受け付けたユーザーの入力(例えば、GUIを通じて受け付けた)に基づき、システム100によって修正204を実行するものであってもよい。
図3を参照して、システム100の実施形態を用いて作成されたメタデータを有するデジタルオブジェクトの一例が示される。
【0039】
ライブラリへの投入202および追加の記述データを含むオブジェクトの修正204がいったんなされたら、方法200は、1以上のカテゴリに未知のオブジェクトを分類するために用いられるモデルの構築および検証用のオブジェクトリストを生成するものであってもよい、ブロック206。生成されたリストは、投入されたライブラリからオブジェクトのトレーニングリストおよびテストリストを含むものであってもよい。例えば、トレーニングリストの生成(構築)、その後、検証(テストまたは評価)リストの生成のように、別々の手順でリストの生成206を行うものであってもよい。GUI114を通じてなされたユーザーの選択および入力に基づき、リストの生成206を行うものであってもよい。例えば、GUI114へのユーザーの入力に基づき構築されているクエリに基づき、リストの生成206を行うものであってもよい、ブロック208。これらのクエリは、SQLまたはSQL状のクエリステートメントの形式であってもよい。
【0040】
方法200は、1以上の機械学習モデルまたはトレーニング分類器の生成を開始するものであってもよい、ブロック210。例えば、構築(トレーニング)リストおよびトレーニングクラスタ106を用いて、機械学習モデルを生成するものであってもよい。それゆえ、システム100および方法200は、1以上のモデルを生成するものであってもよい。トレーニングクラスタ106は、特定の機械学習アルゴリズムおよび技術ごとに機械学習モデルを生成するのに必要なソフトウェアコード(命令)を含むものであってもよい。モデルは、特定のタイプ(例えば、PDF、Windows実行ファイル、Linux実行ファイル、Microsoft Officeファイル)の(またはそうでない可能性より特定のタイプである可能性が高い)(トレーニングリストに記載された)デジタルオブジェクトを含むものであってもよい。単一のコンピュータで、または複数のコンピュータ上で同時に、機械学習モデルを生成するものであってもよい。これは、単一のコンピュータまたは複数のコンピュータにわたってインスタンスを作成されたトレーニングクラスタ106によって行われるものであってもよい。
【0041】
図2を続けて参照し、機械学習モデルが生成された後、方法200は、1以上の機械学習モデルのテストまたは評価を開始するものであってもよい、ブロック212。機械学習モデルは、例えば、検証(テスト/評価)リストおよびテストクラスタ104を用いてテストするものであってもよい。それゆえ、システム100および方法200は、1以上のモデルをテストするものであってもよい。テストクラスタ104は、特定の機械学習アルゴリズムおよび技術ごとに機械学習モデルをテストするために必要なソフトウェアコード(命令)を含むものであってもよい。テストは、特定のタイプ(例えば、PDF、Windows実行ファイル、Linux実行ファイル、Microsoft Officeファイル)であることが分かっているデジタルオブジェクトを用いて、決定するものであってもよい。評価用に用いられるデジタルオブジェクトは、例えば、デジタルオブジェクトライブラリ管理システムを用いるユーザーによって選択された、テストリストからのものであってもよい。単一のコンピュータで、または複数のコンピュータ上で同時に、1以上の機械学習モデルをテストするものであってもよい。これは、単一のコンピュータまたは複数のコンピュータにわたってインスタンスを作成されたテストクラスタ104によって達成されるものであってもよい。機械学習モデルを評価するとき、システム100は、評価結果を生成するものであってもよい。GUI114を通じてユーザーに表示されることもある、評価結果は、機械学習モデルの効果(例えば、モデルが正確にサンプルのクラスを予測できるか否か)を示す。
【0042】
方法200はまた、モデル、オブジェクトリスト、評価結果およびこれらのデジタルオブジェクト間の関連を記憶するものであってもよい、ブロック214。モデル、オブジェクトリスト、評価結果およびこれらの関連は、ストレージクラスタ108内への記憶214であってもよい。そのような項目は、例えば、さまざまなオブジェクトリスト(例えば、トレーニングリストまたは評価リスト)内のデジタルオブジェクト(すなわち、constantオブジェクト)を指し示し、一緒に関連付ける情報、評価リスト内の既定のデジタルオブジェクトの評価結果を示す情報等を含むメタデータデジタルオブジェクトの利用を通じて記憶するものであってもよい。方法200は、オブジェクトメタデータ、オブジェクトリスト、関連情報および評価結果の画像表示も生成するものであってもよい、ブロック216。ウェブサーバー120は、画像表示を生成するものであってもよい。生成216による画像表示は、例えば、ユーザーのワークステーション上でユーザーにGUI114によって表示されるものであってもよい。方法200は、デジタルオブジェクトのライブラリにわたって分散可能なアルゴリズムを実行させるものであってもよい。例えば、方法200は、デジタルオブジェクトのライブラリにわたってmap/reduceアルゴリズムの実行218を行うものであってもよい。Map/reduceアルゴリズムは、デジタルオブジェクト(例えば、コンテンツオブジェクト)間の関係を探索し、当該オブジェクトのサブセットについてメタデータを生成し、またはオブジェクトのライブラリについて統計を作成するものであってもよい。Map/reduceアルゴリズムは、複数の物理サーバー上でのライブラリの物理的な分散を活用して、分析時間を減らす。
【0043】
図4を参照して、機械学習アプリケーション用のデジタルオブジェクトライブラリ管理システムの実施形態の例示となるコンピュータシステムの構成要素が示される。サーバー400は通常、メモリ402、二次記憶装置404、プロセッサ406、ネットワーク接続408を含む。システム400は、GUIおよびその他のインターフェースを表示するための(図示しない)ディスプレイを含むものであってもよい。メモリ402は、RAMまたは類似の種類のメモリを含むものであってもよく、プロセッサ406による実行用の1以上のアプリケーション(例えば、DOLMSサーバーおよびそのDOR、GUI、データベースおよび分散分析モジュール、テストおよびトレーニングクラスタおよびストレージクラスタを提供するために必要なアプリケーション)をホストまたは記憶するものであってもよい。二次記憶装置404は、アプリケーションをより永続的に記憶するハードディスクドライブまたはその他の種類の非揮発性のデータストレージを含むものであってもよい。プロセッサ406は、メモリ402または二次記憶装置404内に記憶された、またはインターネットもしくはその他のネットワークから受信したアプリケーションを実行する。ネットワーク接続408は、ネットワークまたは外部装置への接続(例えば、USBまたはイーサネット接続)用のいかなる種類の接続を含むものであってもよい。
【0044】
サーバー400は、例えば、アプリケーションに必要な、またはアプリケーションによって用いられる情報を記憶し、維持するために、二次記憶装置404内のデータベースを記憶するものであってもよい。また、プロセッサ406は、特に、上述の方法において、本明細書に記載された機能を提供するために1以上のソフトウェアアプリケーションを実行するものであってもよく、コンピュータまたはその他のマシンによって実行するための、ソフトウェアモジュールなどの、ソフトウェア内で処理を行うものであってもよい。前記処理は、上述のGUI114などの、ウェブページおよびその他のGUIを提供し、支援するものであってもよい。GUIは、例えば、ハイパーテキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)またはその他のディスプレイ装置上の提示のための、いかなる適切な形式のウェブページとして、フォーマットされるものであってもよい。
【0045】
サーバー400は、さまざまな構成要素で表現されているが、当業者は、サーバーが追加の、または異なる構成要素を含みうることを十分に理解するであろう。また、以上と一致する実行の態様は、メモリに記憶されているものと記載されているが、当業者は、これらの態様が、その他の種類のコンピュータプログラム製品または二次記憶装置などの、コンピュータ可読媒体に記憶され、または読み込まれうることも十分に理解するであろう。コンピュータ可読媒体は、サーバー400などの、コンピュータシステムを制御するための命令を含み、特定の方法を実行するものであってもよい。サーバー400は、本明細書に記載された機能および方法を実行することを目的としたブレードサーバーシステムの一部であってもよい。
【0046】
当業者は、本発明の精神および範囲を逸脱することなく、さまざまな修正および変更が上述の実施形態になされることを十分に理解するであろう。それゆえ、本発明が上述の特定の実施形態に限定されないことが理解されるが、それは、以下のクレームによって規定される上記の修正および変更を含むことを意図している。