IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7607600ニューラル・ネットワーク最適化における特徴エンジニアリング
<>
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図1
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図2
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図3
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図4
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図5
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図6
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図7
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図8A
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図8B
  • 特許-ニューラル・ネットワーク最適化における特徴エンジニアリング 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-19
(45)【発行日】2024-12-27
(54)【発明の名称】ニューラル・ネットワーク最適化における特徴エンジニアリング
(51)【国際特許分類】
   G06N 3/04 20230101AFI20241220BHJP
【FI】
G06N3/04
【請求項の数】 16
(21)【出願番号】P 2021577006
(86)(22)【出願日】2020-06-12
(65)【公表番号】
(43)【公表日】2022-09-07
(86)【国際出願番号】 IB2020055523
(87)【国際公開番号】W WO2020261032
(87)【国際公開日】2020-12-30
【審査請求日】2022-11-21
(31)【優先権主張番号】16/456,076
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】トリム、クレイグ
(72)【発明者】
【氏名】ルデン、メアリー
(72)【発明者】
【氏名】ボウマン、アーロン
(72)【発明者】
【氏名】ファン デル ストックト、ステファン
(72)【発明者】
【氏名】フレンド、ベルナルド
(72)【発明者】
【氏名】ラグウィッツ、オーグスティナ
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開2006-011849(JP,A)
【文献】特開2010-055505(JP,A)
【文献】特表2019-511033(JP,A)
【文献】国際公開第2018/212710(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサが実行する方法であって、
入力データセットに対応するベクトル空間に表される特徴のペアについての推移閉包データ構造を構築することであって、前記推移閉包データ構造が、前記ベクトル空間のグラフ内のパスのセットに対応するエントリのセットを含み、前記パスのセットが、前記ペア内の第1の特徴と前記ペア内の第2の特徴との間の前記グラフ内の全ての到達可能なパスを含む、前記構築することと、
単一パスに対応する単一エントリのみが前記推移閉包データ構造内に残るように、前記推移閉包データ構造から前記エントリのセットのサブセットを除去することによって、前記推移閉包データ構造を簡約することと、
前記推移閉包データ構造を前記簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成することと、
前記特徴交差を表すようにニューラル・ネットワーク内の層を構成することであって、前記ニューラル・ネットワーク内の構成された前記層によって、前記ニューラル・ネットワークが、前記データセットに関連する定義された精度範囲内にある予測を生成する、前記構成することと、
を含む、方法。
【請求項2】
プロセッサが実行する方法であって、
単一パスに対応する単一エントリのみが推移閉包データ構造内に残るように、前記推移閉包データ構造からエントリのセットのサブセットを除去することによって、前記推移閉包データ構造を簡約することであって、前記推移閉包データ構造が、ベクトル空間のグラフ内のパスのセットに対応する前記エントリのセットを含み、前記パスのセットが、特徴のペア内の第1の特徴と第2の特徴との間の前記グラフ内の全ての到達可能なパスを含み、前記特徴のペアが入力データセットに対応する、前記推移閉包データ構造を簡約することと、
前記推移閉包データ構造を前記簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成することと、
前記特徴交差を表すようにニューラル・ネットワーク内の層を構成することであって、前記ニューラル・ネットワーク内の構成された前記層によって、前記ニューラル・ネットワークが、前記データセットに関連する定義された精度範囲内にある予測を生成する、前記構成することと、
を含む、方法。
【請求項3】
記特徴交差に対応する層埋め込みの上限を前記層について計算することと、
前記特徴交差に対応する前記層埋め込みの下限を前記層について計算することとをさらに含み、層埋め込みについての前記層の層サイズが、前記上限および前記下限に基づく、請求項1または請求項2に記載の方法。
【請求項4】
前記層サイズが、前記上限および前記下限の計算された平均である、請求項3に記載の方法。
【請求項5】
前記データセットを疎行列に変換することと、
前記疎行列に対応するオントロジー・グラフを構築することであって、前記オントロジー・グラフが、前記データセット内の特徴のセットに対応する頂点のセットを含む、前記構築することと、
グラフ上で前向き実体化を実行することであって、前記前向き実体化が、前記頂点のセットに推論頂点を追加し、前記推論頂点を含む前記頂点のセットが、前記推移閉包データ構造を構築する際に用いられる、前記実行することと、
をさらに含む、請求項1から請求項4のいずれか一項に記載の方法。
【請求項6】
残っている前記単一パスが、効率性要件を満たす、請求項1から請求項5のいずれか一項に記載の方法。
【請求項7】
前記効率性要件が、前記第1の特徴と前記第2の特徴との間の最短距離を含む、請求項6に記載の方法。
【請求項8】
前記効率性要件が、前記第1の特徴と前記第2の特徴との間の最高使用率を含む、請求項6に記載の方法。
【請求項9】
前記簡約することが、推移簡約アルゴリズムを含む、請求項1から請求項8のいずれか一項に記載の方法。
【請求項10】
前記推移閉包データ構造を前記簡約することによって、頂点のサブセットが前記オントロジー・グラフから除去されて、前記簡約されたオントロジー・グラフを形成する、請求項1から請求項9のいずれか一項に記載の方法。
【請求項11】
前記クラスタを含む、前記簡約されたオントロジー・グラフ内の複数のクラスタを識別することをさらに含み、
少なくとも前記データセットの第1の部分と前記データセットの第2の部分とを区別するために2つの特徴の組み合わせが使用可能であるように、前記クラスタが少なくとも前記2つの特徴を含む、請求項1から請求項10のいずれか一項に記載の方法。
【請求項12】
プロセッサに、請求項1から請求項11のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【請求項13】
前記コンピュータ・プログラムが、データ処理システム内のコンピュータ可読ストレージ・デバイスに記憶され、前記コンピュータ・プログラムが、リモート・データ処理システムからネットワークを経て移送される、請求項12に記載のコンピュータ・プログラム。
【請求項14】
前記コンピュータ・プログラムが、サーバ・データ処理システム内のコンピュータ可読ストレージ・デバイスに記憶され、前記コンピュータ・プログラムが、リモート・データ処理システムに関連付けられたコンピュータ可読ストレージ・デバイスにおいて使用するために、ネットワークを経て前記リモート・データ処理システムにダウンロードされ、
前記プロセッサに、
要求に関連付けられたコンピュータ使用可能コードの使用を計測することと、
計測された前記使用に基づいて請求書を生成することと、
をさらに実行させる、請求項12に記載のコンピュータ・プログラム。
【請求項15】
プロセッサと、コンピュータ可読メモリと、コンピュータ可読ストレージ・デバイスと、を備えるコンピュータ・システムであって、プログラム命令が、前記メモリを介した前記プロセッサによる実行のために前記ストレージ・デバイス上に記憶され、前記記憶されたプログラム命令が、
プロセッサおよびメモリを用いて、入力データセットに対応するベクトル空間に表される特徴のペアについての推移閉包データ構造を構築するプログラム命令であって、前記推移閉包データ構造が、前記ベクトル空間のグラフ内のパスのセットに対応するエントリのセットを含み、前記パスのセットが、前記ペア内の第1の特徴と前記ペア内の第2の特徴との間の前記グラフ内の全ての到達可能なパスを含む、前記構築するプログラム命令と、
単一パスに対応する単一エントリのみが前記推移閉包データ構造内に残るように、前記推移閉包データ構造から前記エントリのセットのサブセットを除去することによって、前記推移閉包データ構造を簡約するプログラム命令と、
前記推移閉包データ構造を前記簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成するプログラム命令と、
前記特徴交差を表すようにニューラル・ネットワーク内の層を構成するプログラム命令であって、前記ニューラル・ネットワーク内の構成された前記層によって、前記ニューラル・ネットワークが、前記データセットに関連する定義された精度範囲内にある予測を生成する、前記構成するプログラム命令と、
を含む、コンピュータ・システム。
【請求項16】
プロセッサと、コンピュータ可読メモリと、コンピュータ可読ストレージ・デバイスと、を備えるコンピュータ・システムであって、プログラム命令が、前記メモリを介した前記プロセッサによる実行のために前記ストレージ・デバイス上に記憶され、前記記憶されたプログラム命令が、
単一パスに対応する単一エントリのみが推移閉包データ構造内に残るように、前記推移閉包データ構造からエントリのセットのサブセットを除去することによって、前記推移閉包データ構造を簡約するプログラム命令であって、前記推移閉包データ構造が、ベクトル空間のグラフ内のパスのセットに対応する前記エントリのセットを含み、前記パスのセットが、特徴のペア内の第1の特徴と第2の特徴との間の前記グラフ内の全ての到達可能なパスを含み、前記特徴のペアが入力データセットに対応する、前記推移閉包データ構造を簡約するプログラム命令と、
前記推移閉包データ構造を前記簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成するプログラム命令と、
前記特徴交差を表すようにニューラル・ネットワーク内の層を構成するプログラム命令であって、前記ニューラル・ネットワーク内の構成された前記層によって、前記ニューラル・ネットワークが、前記データセットに関連する定義された精度範囲内にある予測を生成する、前記構成するプログラム命令と、
を含む、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、大規模データセットに基づいて予測を生成するようにニューラル・ネットワークを構成するための方法、システム、およびコンピュータ・プログラム製品に関する。より詳細には、本発明は、ニューラル・ネットワーク最適化における特徴エンジニアリングのための方法、システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
本明細書で用いられるデータセットは、データ項目が特徴セットからの1つまたは複数の特徴に対応する、データの収集物、集合体、またはコーパスである。特徴は、データで表されているエンティティである。例えば、英文学の本からの抜粋であるデータセットにおいて、別個の単語が特徴とみなされ得る。別の例として、交通流データを含むデータセットにおいて、1週間のうちの曜日および1日のうちの時間が、特徴とみなされ得る。
【0003】
特徴は、データ内に直接または明らかに表されているエンティティだけでなく、データから推論され得るエンティティでもある。例えば、データセットが製品所有権データを含み、かつデータセット内の1つのデータ項目が、会社Xが製品Yを所有していることを示すと仮定する。データセットにおいて、XおよびYは、(一般クラスの「会社」および「製品」として)直接に表された特徴であるが、Xが製品Yのバージョン10も所有するという事実は、また、XがYを所有すること、およびYがバージョン10を有することから推論され得る。したがって、「Yバージョン10」は、データセットから推論され得る特徴でもある。
【0004】
特徴交差(Feature Cross、FC)は、2つ以上の特徴の組み合わせまたは連結である。例えば、再び例として交通データを有するデータセットを用いると、「月曜」および「午後2時」は、データセット内の特徴であり得るが、「月曜+午後2時」(即ち、月曜の午後2時)は、特徴「月曜」および「午後2時」を組み合わせることから形成される特徴交差である。即ち、あるデータ項目は、「月曜」には対応し得るが、「午後2時」に対応するとは限らない。別のデータ項目は、「午後2時」に対応し得るが、「月曜」ではなく「木曜」に対応することがある。「月曜」および「午後2時」の両方に対応するデータ項目のみが、特徴交差「月曜+午後2時」に対応することとなる。
【0005】
データセットを入力として考えると、ニューラル・ネットワーク(NN)は、データセットに基づいて予測を行うように構成され得る。例えば、英文学の本からの抜粋であるデータセットを考えると、ニューラル・ネットワークは、いくつかの特定の単語が、一緒に発生するか、または互いからある指定された距離で発生するかを予測するように構成され得る。別の例では、交通流データを含むデータセットにおいて、ニューラル・ネットワークは、将来のある日のある時間における交通量を予測するように構成され得る。
【0006】
本明細書で参照されるオントロジーは、特徴が頂点を形成し、特徴間の関係性、即ち、データセットに明示的に存在するか、またはそこから推論されるかが、エッジを形成する、データセットのグラフ表現である。例示的実施形態によるオントロジーは、特徴、特徴交差、またはそれらの組み合わせを表す頂点を有し得る。
【0007】
人工ニューラル・ネットワーク(ANN)は、単にニューラル・ネットワークとも呼ばれ、いくつかの単純で高度に相互接続された処理要素(ノード)から作られたコンピューティング・システムである。処理要素は、外部入力に応答するそれらの動的状態によって情報を処理する。ANNは、非常に小さなスケールではあるが、哺乳類の大脳皮質のニューロン構造に大まかになぞらえた処理デバイス(アルゴリズムまたはハードウェアあるいはその両方)である。大規模ANNは、数百または数千のプロセッサ・ユニットを有し得るが、哺乳類の脳は、それらの全体の相互作用および創発的行動の大きさに対応して増加する何十億ものニューロンを有する。
【0008】
ニューラル・ネットワークは、特徴、特徴交差、またはそれらの何らかの組み合わせのセットを表すように構成され得る。例示的実施形態は、予測がデータセットおよび予期される結果(または利用可能な場合は実際の結果)と一貫性があるようにニューラル・ネットワークを構成することが、多様な理由から難しい問題であることを認識する。例えば、ニューラル・ネットワークのサイズは、ニューラル・ネットワークが動作するように予期される、いくつかの特徴または特徴交差に関連する。
【0009】
再び、交通データセットの例を考える。1週間のうち7日の特徴および1日のうち24時間の特徴、合計31の特徴だけが存在する。しかしながら、1日のうちの全ての時間が、予測に対して均等に重要であるわけではない。例えば、人は、月曜の午後8時よりも金曜の午後8時における交通予測により関心がある場合がある。しかしながら、ここで、交差される2種類の特徴だけで合計7×24=168の特徴交差が、可能である。例示的実施形態は、31の特徴を表すニューラル・ネットワークが、168の特徴交差について構成されるニューラル・ネットワークよりも大幅に複雑性が低いことを認識する。
【0010】
さらに、例示的実施形態は、データセットが、特徴が列を形成し各データ項目が行である行列として表され得ることを認識する。その行のデータ項目がその列の特徴に関連する場合に、行は、列の下のセル内のエントリを得る。分かるように、あらゆる日のあらゆる時間が利用可能/有用/有意義であり得る交通データを有するわけではないという点で、7日および24時間について31列を有する行列でさえ、疎に入力される場合がある。特徴交差の行列は、特徴交差が対応する特徴の行列と比較して、さらに疎になる。例えば、単に日+時間タイプの特徴交差では、修正された行列は、ここで、31ではなく168の列を有し、行はここで、行列内のより小さなパーセンテージのセルに対応する。これらの168の例としての特徴交差について構成されるニューラル・ネットワークは、計算を実行するために非常に疎な行列をメモリ内に保持しなければならない。
【0011】
実際には、行列は、何千もの列×何千もの行であることが多く、ニューラル・ネットワークは、各層が数千のノードを含む複数の層を有する。データセットに対してニューラル・ネットワークを訓練することによって、ニューラル・ネットワークの出力を精度の所望の閾値範囲内に持っていくために、これらのノードの重みが計算され、調整される。ニューラル・ネットワークの重みの調整は、計算上コストのかかるプロセスである。大規模であるが疎な行列を維持することは、ニューラル・ネットワークの訓練および動作のために不必要に大量のメモリを必要とする。例示的実施形態は、ニューラル・ネットワークの出力の関連性を増大させるためには特徴交差が望ましいが、特徴交差によって、また、行列がさらに疎になり、ニューラル・ネットワークの複雑性およびリソース要件が増大することを認識する。
【発明の概要】
【0012】
例示的実施形態は、方法、システム、およびコンピュータ・プログラム製品を提供する。第1の態様から見ると、本発明は、プロセッサおよびメモリを用いて、入力データセットに対応するベクトル空間に表される特徴のペアについての推移閉包データ構造を構築する方法であって、推移閉包データ構造が、ベクトル空間のグラフ内のパスのセットに対応するエントリのセットを含み、パスのセットが、ペア内の第1の特徴とペア内の第2の特徴との間のグラフ内の全ての可能なパスを含む、構築する方法を提供する。実施形態は、単一パスに対応する単一エントリのみが推移閉包データ構造内に残るように、推移閉包データ構造からエントリのセットのサブセットを除去することによって、推移閉包データ構造を簡約する。実施形態は、推移閉包データ構造を簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成する。実施形態は、特徴交差を表すようにニューラル・ネットワーク内の層を構成し、ニューラル・ネットワーク内の構成された層によって、ニューラル・ネットワークが、データセットに関連する定義された精度範囲内にある予測を生成する。
【0013】
好ましくは、本発明は、プロセッサおよびメモリを用いて、特徴交差に対応する層埋め込みの上限を層について計算することと、特徴交差に対応する層埋め込みの下限を層について計算することとをさらに含み、層埋め込みについての層の層サイズが、上限および下限に基づく、方法を提供する。
【0014】
好ましくは、本発明は、層サイズが上限および下限の計算された平均である方法を提供する。
【0015】
好ましくは、本発明は、データセットを疎行列に変換することと、疎行列に対応するオントロジー・グラフを構築することであって、オントロジー・グラフが、データセット内の特徴のセットに対応する頂点のセットを含む、構築することと、グラフ上で前向き実体化(forward materialization)を実行することであって、前向き実体化が、頂点のセットに推論頂点を追加し、推論頂点を含む頂点のセットが、推移閉包データ構造を構築する際に用いられる、実行することと、をさらに含む方法を提供する。
【0016】
好ましくは、本発明は、残っている単一パスが、効率性要件を満たす方法を提供する。
【0017】
好ましくは、本発明は、効率性要件が、第1の特徴と第2の特徴との間の最短距離を含む方法を提供する。
【0018】
好ましくは、本発明は、効率性要件が、第1の特徴と第2の特徴との間の最高使用率を含む方法を提供する。
【0019】
好ましくは、本発明は、簡約することが、推移簡約(transitive reduction)アルゴリズムを含む方法を提供する。
【0020】
好ましくは、本発明は、推移閉包データ構造を簡約することによって、頂点のサブセットがオントロジー・グラフから除去されて、簡約されたオントロジー・グラフを形成する方法を提供する。
【0021】
好ましくは、本発明は、簡約されたオントロジー・グラフ内の複数のクラスタを識別することをさらに含む方法であって、複数のクラスタが上述のクラスタを含み、2つの特徴の組み合わせが少なくともデータセットの第1の部分とデータセットの第2の部分とを区別するために使用可能であるように、このクラスタが少なくとも2つの特徴を含む方法を提供する。
【0022】
第2の態様から見ると、本発明は、コンピュータ可読ストレージ・デバイスおよびストレージ・デバイス上に記憶されたプログラム命令を含むコンピュータ使用可能プログラム製品であって、記憶されたプログラム命令が、プロセッサおよびメモリを用いて、入力データセットに対応するベクトル空間に表される特徴のペアについての推移閉包データ構造を構築するプログラム命令であって、推移閉包データ構造が、ベクトル空間のグラフ内のパスのセットに対応するエントリのセットを含み、パスのセットが、ペア内の第1の特徴とペア内の第2の特徴との間のグラフ内の全ての可能なパスを含む、構築するプログラム命令と、単一パスに対応する単一エントリのみが推移閉包データ構造内に残るように、推移閉包データ構造からエントリのセットのサブセットを除去することによって、推移閉包データ構造を簡約するプログラム命令と、推移閉包データ構造を簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成するプログラム命令と、特徴交差を表すようにニューラル・ネットワーク内の層を構成するプログラム命令であって、ニューラル・ネットワーク内の構成された層によって、ニューラル・ネットワークが、データセットに関連する定義された精度範囲内にある予測を生成する、構成するプログラム命令と、を含む、コンピュータ使用可能プログラム製品を提供する。
【0023】
好ましくは、本発明は、プロセッサおよびメモリを用いて、特徴交差に対応する層埋め込みの上限を層について計算するプログラム命令と、特徴交差に対応する層埋め込みの下限を層について計算するプログラム命令とをさらに含むコンピュータ使用可能プログラム製品であって、層埋め込みについての層の層サイズが、上限および下限に基づく、コンピュータ使用可能プログラム製品を提供する。
【0024】
好ましくは、本発明は、層サイズが、上限および下限の計算された平均である、コンピュータ使用可能プログラム製品を提供する。
【0025】
好ましくは、本発明は、データセットを疎行列に変換するプログラム命令と、疎行列に対応するオントロジー・グラフを構築するプログラム命令であって、オントロジー・グラフが、データセット内の特徴のセットに対応する頂点のセットを含む、構築するプログラム命令と、グラフ上で前向き実体化を実行するプログラム命令であって、前向き実体化が、頂点のセットに推論頂点を追加し、推論頂点を含む頂点のセットが、推移閉包データ構造を構築する際に用いられる、実行するプログラム命令と、をさらに含むコンピュータ使用可能プログラム製品を提供する。
【0026】
好ましくは、本発明は、残っている単一パスが、効率性要件を満たす、コンピュータ使用可能プログラム製品を提供する。
【0027】
好ましくは、本発明は、効率性要件が、第1の特徴と第2の特徴との間の最短距離を含む、コンピュータ使用可能プログラム製品を提供する。
【0028】
好ましくは、本発明は、効率性要件が、第1の特徴と第2の特徴との間の最高使用率を含む、コンピュータ使用可能プログラム製品を提供する。
【0029】
好ましくは、本発明は、記憶されたプログラム命令が、データ処理システム内のコンピュータ可読ストレージ・デバイスに記憶され、記憶されたプログラム命令が、リモート・データ処理システムからネットワークを経て移送される、コンピュータ使用可能プログラム製品を提供する。記憶されたプログラム命令が、サーバ・データ処理システム内のコンピュータ可読ストレージ・デバイスに記憶され、記憶されたプログラム命令が、リモート・データ処理システムに関連付けられたコンピュータ可読ストレージ・デバイスにおいて使用するために、ネットワークを経てリモート・データ処理システムにダウンロードされ、要求に関連付けられたコンピュータ使用可能コードの使用を計測するプログラム命令と、計測された使用に基づいて請求書を生成するプログラム命令と、をさらに含む、請求項11に記載のコンピュータ使用可能プログラム製品である。
【0030】
第3の態様から見ると、コンピュータ・システムが、プロセッサと、コンピュータ可読メモリと、コンピュータ可読ストレージ・デバイスと、を備え、プログラム命令が、メモリを介したプロセッサによる実行のためにストレージ・デバイス上に記憶され、記憶されたプログラム命令が、プロセッサおよびメモリを用いて、入力データセットに対応するベクトル空間に表される特徴のペアについての推移閉包データ構造を構築するプログラム命令であって、推移閉包データ構造が、ベクトル空間のグラフ内のパスのセットに対応するエントリのセットを含み、パスのセットが、ペア内の第1の特徴とペア内の第2の特徴との間のグラフ内の全ての可能なパスを含む、構築するプログラム命令と、単一パスに対応する単一エントリのみが推移閉包データ構造内に残るように、推移閉包データ構造からエントリのセットのサブセットを除去することによって、推移閉包データ構造を簡約するプログラム命令と、推移閉包データ構造を簡約することからもたらされる、簡約されたオントロジー・グラフに残存する特徴のクラスタから特徴交差を形成するプログラム命令と、特徴交差を表すようにニューラル・ネットワーク内の層を構成するプログラム命令であって、ニューラル・ネットワーク内の構成された層によって、ニューラル・ネットワークが、データセットに関連する定義された精度範囲内にある予測を生成する、構成するプログラム命令と、を含む。
【0031】
本発明に特有であると考えられるある新規な特徴が、添付の特許請求の範囲において述べられている。しかしながら、発明自体は、使用の好適なモード、さらなる目的およびその利点と同様に、添付図面と併せて読まれるときに、以下の例示的実施形態の詳細な説明に対する参照によって最もよく理解されるであろう。
【図面の簡単な説明】
【0032】
図1】例示的実施形態が実施され得る、データ処理システムのネットワークのブロック図を示す。
図2】例示的実施形態が実施され得る、データ処理システムのブロック図を示す。
図3】例示的実施形態で解決され得る、例としての問題のブロック図を示す。
図4】例示的実施形態による、例としての埋め込みのブロック図を示す。
図5】例示的実施形態による、ニューラル・ネットワーク最適化における特徴エンジニアリングのための例としてのアプリケーションのブロック図を示す。
図6】例示的実施形態による、推論の実体化を示す。
図7】実施形態による、グラフから結果として得られる出力グラフを示す。
図8A】オントロジーのベクトル空間への配置を示す。
図8B】候補特徴交差についての推論の実体化を示す。
図9】例示的実施形態による、ニューラル・ネットワーク最適化における特徴エンジニアリングのための例としてのプロセスのフローチャートを示す。
【発明を実施するための形態】
【0033】
ニューラル・ネットワーク訓練および最適化は、よく認識されている努力傾注技術分野である。この努力傾注分野における技術の現在の状態は、ある欠点および制限を有する。例示的実施形態の動作または構成あるいはその両方は、追加の、または新たなケイパビリティを与えて、この努力傾注技術分野、特に、特徴選択、特徴交差、および埋め込みの領域における既存技術を改善する。
【0034】
疎行列は、閾値未満のパーセンテージのセルが非null、非void、非ゼロ、またはセルが占拠されているか、もしくは使用予定であることの指標の何らかの他の表現である、行列である。密行列は、閾値より多くのパーセンテージのセルが非null、非void、非ゼロ、またはセルが占拠されているか、もしくは使用予定であることの指標の何らかの他の表現である、行列である。例示的実施形態は、定義された精度の許容誤差範囲内で、密行列が疎なデータセット内のデータを依然として表すような密行列を有することが望ましいことを認識する。データセットについての密行列を実現する1つの方法は、ある特徴を選択的に交差させること、ある特徴もしくは特徴交差を省略すること、またはその両方による。
【0035】
例示的実施形態は、適当な特徴を選択して、密行列をもたらす特徴交差を形成するように交差させることは、実際の行列で解くには難しい問題であることを認識する。現在利用可能な技術は、その主題に関するデータセットから交差させる特徴を選択するための、主題領域を専門に扱う人の個人的知識および専門性に依存する。交差させる特徴の賢明な選択によって、疎行列から密行列が生じ得る。例えば、包括的な特徴交差の取り組みは、例としての交通データセットにおいて168の特徴交差をもたらすが、168の特徴交差全てが、実際に実用的な目的で有用であるわけではない。交通データ分析に熟練した人は、金曜の午後8時が関心を持たれる傾向にあり、特徴交差を形成すべきであるが、月曜の午後2時および水曜の午後3時は、交通データにおいてほぼ類似であると思われ、したがって、月曜の午後2時および水曜の午後3時は、1つの特徴交差として共に交差されるべきであると、選択的に判断し得る。その人は、火曜の午前1時についてのデータは取るに足りないか、または存在せず、したがって、火曜の午前1時は、特徴交差の行列に表されるべきですらないと、決定してもよい。
【0036】
一方、多すぎる特徴または誤って関連する特徴を交差させることは、データ損失、不正確な予測、またはその両方につながり得る。例えば、全ての平日月曜~金曜の午前0時から午前5時、全ての平日月曜~金曜の午前6時~午前11時、全ての平日月曜~金曜の午後12時~午後5時、および全ての平日月曜~金曜の午後6時~午後11時の特徴を交差させた場合、4つの特徴交差のみを有する非常に小さく密な行列が、実際に結果として生じることとなる。しかしながら、そのような行列は、月曜の午後7時と金曜の午後7時の特徴間を区別することができないが、それを区別することが、分析および予測のために重要である場合がある。
【0037】
したがって、現在、疎行列を有用な密行列に変換するために、特定の技能および知識とともに手動による作業が必要とされる。例示的実施形態は、交差する特徴を選択して、データ粒度の許容できない損失または精度の許容できない損失なしに、疎なデータセットに対応する密行列を構築する自動化された方法が有用であることを認識する。例示的実施形態は、密行列に対して訓練されたニューラル・ネットワークの生成実施態様からのフィードバックを介して機械学習方法を用いて密行列を繰り返し改善するための、そのような自動化された方法が有用であることをさらに認識する。
【0038】
例示的実施形態によれば、埋め込み(embedding)は、密行列が形成される疎行列の特徴または特徴交差に従って層が構成される別のニューラル・ネットワークの出力と比較して、ニューラル・ネットワークの出力が、定義された精度の許容誤差の範囲内にあるように、密行列内の特徴交差に対応するノードでニューラル・ネットワークの層を構成するプロセスである。層サイズは、その多数の中のノードが密行列からの特徴交差に対応して訓練される、層内のノードの数である。概略実施形態において、層内のノードの数は、密行列内の特徴交差の数とn:m対応を有する(即ち、m個の特徴交差につきn個のノード)。一実施形態において、層内のノードの数は、密行列内の特徴交差の数と1:1対応を有する(即ち、特徴交差につき1個のノード)。別の実施形態において、層内のノードの数は、密行列内の特徴交差の数と1:n対応を有する(即ち、n個の特徴交差につき1個のノード)。別の実施形態において、層内のノードの数は、密行列内の特徴交差の数とn:1対応を有する(即ち、特徴交差につきn個のノード)。
【0039】
例示的実施形態は、層サイズが大きいほど、より小さな層サイズと比較して、訓練および動作の両方についての計算量およびデータ記憶リソース量が大きくなることを認識する。同時に、層サイズが大きいほど、より小さなサイズの層の出力と比較して、層の出力の精度がより高くなる。
【0040】
例示的実施形態は、層サイズが、特徴交差を含むが限定はされないハイパーパラメータのセットに依存するため、交差のための特徴選択および層サイズもまた、相互依存であることを認識する。例えば、所与の層構成が、所望の出力または精度を生成しない場合、ニューラル・ネットワークのハイパーパラメータが調整されなければならない。特徴は、ハイパーパラメータであり、特徴交差が変更される場合、変更によって、ニューラル・ネットワークの1つまたは複数のハイパーパラメータが変更され得る。ハイパーパラメータの変更は、ニューラル・ネットワークが新たなハイパーパラメータで再訓練されることを必要とする。複数の層内に数千のノードを有するニューラル・ネットワークを、幅および深さが数千列の行列で訓練することは、計算上極めてコストが高い。したがって、ニューラル・ネットワークのハイパーパラメータがあまり乱されないほど、ニューラル・ネットワークを訓練およびデプロイするコストが低くなる。したがって、ここでも、交差のための特徴の自動化されたスマートな選択が有用になる。
【0041】
さらに、ある密度を有する特定の密行列が、ある特徴交差を形成することによって達成されると仮定すると、特定の埋め込みが、ある精度の出力を生成する。それぞれが異なる精度の異なる出力を生成する、埋め込みへの行列からの特徴交差のセットまたはサブセットを表す様々な方法を選択することによって、同一の密行列からの異なる埋め込みが可能である。したがって、例示的実施形態は、埋め込みが許容できる精度の出力を生成する、特徴交差の各サブセットについての埋め込みの範囲が存在することを認識する。
【0042】
例示的実施形態は、現在、埋め込みを選択するための体系的かつ客観的な方法が存在しないことを認識する。概して、ニューラル・ネットワーク訓練の当業者は、許容できる埋め込みに到達するために、大きな計算コストで、様々な埋め込みを用いて実験を行う。例示的実施形態は、所与の密行列についての埋め込みの上限および下限の体系的かつ客観的な計算が有用になると認識する。
【0043】
例示的実施形態は、現在利用可能なツールまたは解決策が、これらの必要性/問題に対処せず、またはこれらの必要性/問題のための十分な解決策をもたらさないことを認識する。本発明を説明するために使用される例示的実施形態は、概して、ニューラル・ネットワーク最適化における特徴エンジニアリングによって、上述した問題および他の関連問題に対処し、解決する。
【0044】
実施形態は、あるハードウェア・コンポーネントおよびソフトウェア・アプリケーションの組み合わせとして実施され得る。実施形態の実施態様、またはその1つもしくは複数のコンポーネントは、コンパニオン・ソフトウェア・アプリケーションが(i)既存のニューラル・ネットワーク訓練および予測構成自体、(ii)近距離無線またはローカル・エリア・ネットワーク(LAN)上で既存のニューラル・ネットワーク訓練および予測構成と通信するデータ処理システム、ならびに(iii)ワイド・エリア・ネットワーク(WAN)上で既存のニューラル・ネットワーク訓練および予測構成と通信するデータ処理システム、の何らかの組み合わせで実行して、既存のニューラル・ネットワーク訓練および予測構成の修正態様として構成され得る。
【0045】
実施形態は、所与のデータセットからオントロジーを形成する。言い換えると、実施形態は、ラベル(特徴)で頂点に、データセット内で見つかる関係性でエッジにラベル付けする。実施形態は、導出され、または推論されるラベルおよび関係性に対応する追加の頂点およびエッジを入力することによって、オントロジーをさらに構築する。推論を通してオントロジーを構築するこの動作は、前向き実体化と呼ばれる。
【0046】
実施形態は、オントロジーのグラフに対応するベクトル空間を形成する。ベクトル空間は、データの数値表現を含む。実施形態によって形成されるベクトル空間は、グラフに入力される特徴の数値表現を含む。実施形態によって生成されるベクトル空間は、ベクトル空間に存在する概念間の類似性を判断するのに有用である。例えば、実施形態は、特徴の基礎となるこうした概念間の類似性を判断するための類似性関数を適用する。概念は、特徴の抽象化、または一般化された表現である。例えば、月曜は特徴であり、火曜は特徴である。データセット自体が月曜および火曜が1週間のうちの曜日であることをどこにも示さない場合があるとしても、それらはいずれも1週間のうちの曜日の概念の発現であるため、類似である。概念は、この自明な例に限定されることはなく、表面上は無関係の特徴が、実施形態の類似性分析における難解な概念を通してリンクされることがある。コサイン類似度は、ベクトル空間内の類似性判断の目的で実施形態において用いられ得る類似性関数の1つの非限定的な例である。
【0047】
実施形態は、ベクトル空間に対応する推移閉包データ構造を構築する。推移閉包データ構造は、ベクトル空間において点Aから点Bに到達することから全ての可能なパスについての情報を含むデータ構造である。推移閉包データ構造は、特徴、推論、および概念の間の1つまたは複数のパスを含む。実施形態は、推移閉包データ構造を分析して、推移閉包データ構造で表現される2つのエンティティ間の複数のパスから最も望ましいパスを判断および選択する。一実施形態では、パスが推移閉包データ構造内の全てのパスのうち最短または効率的である場合に、そのパスは望ましい。他の実施形態では、パスが推移閉包データ構造内で最も使用されているパスである場合にも、そのパスが望ましい場合がある。概して、任意の選択基準が、推移閉包データ構造内の複数のパスから1つのパスを選択するために使用され得る。
【0048】
実施形態は、推移閉包データ構造から選択されていないパスを除去する。推移閉包データ構造から選択されていないパスを除去することによって、オントロジー・グラフから1つまたは複数の頂点、エッジ、またはそれらの組み合わせも除去される。グラフから頂点またはエッジを除去することは、グラフ内の頂点またはエッジの寄与が所望のレベルを下回ることを示す。言い換えると、除去された頂点またはエッジは、十分に有意義な方法でグラフに寄与しないとみなされ、その除去が、除去後のデータセットを用いた予測の精度の望ましくない(閾値より多くの)低下に影響を及ぼす可能性が低い。
【0049】
したがって、実施形態は、グラフ簡約(graph reduction)を実行して、簡約されたグラフが依然として元のデータセットを十分に表現するように簡約されたグラフを形成するが、グラフ内の最も望ましいパスを介して相互接続された特徴、推論、および概念を含む。このようなグラフ簡約は、推移簡約と呼ばれる。実施形態の推移簡約は、推論が引き出される範囲、類似性および概念を見つけるための類似性関数のパラメータ、望ましいパスを選択するための基準、ある望ましくない頂点もしくはエッジの除去もしくは非除去、またはそれらの何らかの組み合わせによって制御され得る。
【0050】
簡約されたグラフ内の残りの頂点は、行列内のデータ項目間の弁別を行う能力を有し、冗長、形式的、または余分ではないため、弁別ノード(discriminative node)と呼ばれる。実施形態は、簡約されたグラフ内の残りの頂点において1つまたは複数のクラスタを識別する。クラスタは、許容できないレベルのデータ損失、精度の損失、またはその両方を引き起こさない、有用な特徴交差を形成するために交差され得る特徴を識別する。それぞれの識別された特徴交差は、密行列内のセルの上限および下限を有する。上限は、推移簡約コスト式にかかわらずクラスタに寄与する各特徴についての全ての正のインスタンス・レコードの計算である。例えば、交通データの例において、我々が月曜の午前2時についていかなるデータも有しない場合、それらの頂点およびエッジは、情報のいかなる損失もなく簡約の間に抜け落ちる。したがって、最高限度において、グラフは、グラフに寄与しない(それらを通るパスを有しない)特徴を元のグラフから差し引いたものである。交通データの例では、これはやはり、168の可能な特徴交差から、例えば142、または何らかの他のより小さな数まで、グラフを簡約し得る。より選択的な実施形態では、月曜の午前2時は、最小数未満のデータ項目、または統計分布カットオフ数未満のデータ項目を有することがあり、やはり脱落することがある。その場合に、グラフは、一層小さくなるが、依然としてデータまたは精度の著しい損失がない。外れ値のデータ項目および対応する特徴は、このようにして除外され得る。
【0051】
下限は、全ての弁別ノードの関数出力およびそれらの別個の値である。ここで、全ての望ましくないパスが除去されたため、除去は、有意義であったが最も有意義ではないいくつかの特徴交差を除去している場合がある。言い換えると、簡約によって、グラフにはベクトル空間で高度に弁別力のあるノードのみが含まれる。それによって、常に、あまり弁別力のない特徴、特徴交差、および対応するデータ項目が除去される。例としての交通データセットでは、したがって、下限は、はるかに低く、例えば56または何らかのより小さな数であってもよいが、データまたは精度あるいはその両方の関連する損失を有する。
【0052】
したがって、実施形態は、埋め込みについての上限および下限を生成する。実施形態は、識別された特徴交差の上限および下限を用いて埋め込む際に次元削減を実行する。例えば、一実施形態は、上限および下限の統計平均をとり、埋め込みについての層サイズを形成する数を作り出す。
【0053】
本明細書で説明されるニューラル・ネットワーク最適化における特徴エンジニアリングの方式は、ニューラル・ネットワーク構成および予測のための動作に関する努力傾注技術分野において現在利用可能な方法では利用できない。本明細書で説明される実施形態の方法は、デバイスまたはデータ処理システム上で実行するために実施されるときに、ニューラル・ネットワークを訓練するために使用されるデータセットを体系的かつ客観的に最適化すること、および著しく削減された計算リソースで望ましい精度の予測を生成するように層サイズが最適化される、ニューラル・ネットワークを生成することにおける、そのデバイスまたはデータ処理システムの機能性の大幅な進歩を含む。
【0054】
例示的実施形態は、単なる実施例として、ある種類のデータ項目、データセット、特徴、グラフ、特徴交差、アルゴリズム、式、関数、簡約、ニューラル・ネットワーク、層、ノード、関係性、クラスタ、データ構造、デバイス、データ処理システム、環境、コンポーネント、およびアプリケーションに関して説明される。これらのおよび他の類似の人工物のいかなる特定の明示も、本発明を限定することを意図するものではない。これらのおよび他の類似の人工物のいかなる適当な明示も、例示的実施形態の範囲内で選択され得る。
【0055】
さらに、例示的実施形態は、任意の種類のデータ、データ・ソース、またはデータ・ネットワーク上のデータ・ソースへのアクセスに関して実施され得る。任意の種類のデータ・ストレージ・デバイスは、本発明の範囲内で、データ処理システムにおいてローカルに、またはデータ・ネットワーク上で、本発明の実施形態にデータを提供し得る。実施形態が、モバイル・デバイスを用いて説明される場合に、モバイル・デバイスで使用するのに適当な任意の種類のデータ・ストレージ・デバイスが、例示的実施形態の範囲内で、モバイル・デバイスにおいてローカルに、またはデータ・ネットワーク上で、そのような実施形態にデータを提供し得る。
【0056】
例示的実施形態は、単なる実施例として特定のコード、設計、アーキテクチャ、プロトコル、レイアウト、概略図、およびツールを用いて説明され、例示的実施形態に限定されない。さらに、例示的実施形態は、説明を明確にするために、単なる実施例として特定のソフトウェア、ツール、およびデータ処理環境を用いて、いくつかの事例において説明される。例示的実施形態は、他の同等のまたは類似の目的の構造、システム、アプリケーション、またはアーキテクチャと併せて使用され得る。例えば、他の同等のモバイル・デバイス、構造、システム、アプリケーション、またはそれらのためのアーキテクチャが、本発明の範囲内で本発明のそのような実施形態と併せて使用され得る。例示的実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施され得る。
【0057】
本開示における実施例は、説明を明確にするためにのみ使用され、例示的実施形態に限定されない。追加のデータ、動作、アクション、タスク、アクティビティ、および操作が、本開示から考えられ、それらは、例示的実施形態の範囲内で考慮される。
【0058】
本明細書に列挙されるあらゆる利点は、単なる例であり、例示的実施形態に限定することを意図するものではない。追加の利点または異なる利点は、具体的な例示的実施形態によって実現され得る。さらに、特定の例示的実施形態は、上記に列挙された利点のうちのいくつかを有していてもよく、全てを有していてもよく、またはどれも有していなくてもよい。
【0059】
図面を参照すると、特に図1および図2を参照すると、これらの図は、例示的実施形態が実施され得るデータ処理環境の例としての図である。図1および図2は、単なる実施例であり、異なる実施形態が実施され得る環境に関していかなる限定も主張または示唆することを意図するものではない。特定の実施態様は、以下の説明に基づき示される環境に対して多くの修正を行い得る。
【0060】
図1は、例示的実施形態が実施され得る、データ処理システムのネットワークのブロック図を示す。データ処理環境100は、例示的実施形態が実施され得るコンピュータのネットワークである。データ処理環境100は、ネットワーク102を含む。ネットワーク102は、データ処理環境100内で共に接続された様々なデバイスとコンピュータとの間に通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
【0061】
クライアントまたはサーバは、ネットワーク102に接続されたあるデータ処理システムの単なる例としての役割であり、これらのデータ処理システムのための他の構成または役割を除外することを意図するものではない。サーバ104およびサーバ106は、ストレージ・ユニット108と共にネットワーク102に連結している。ソフトウェア・アプリケーションは、データ処理環境100内の任意のコンピュータ上で実行し得る。クライアント110、112、および114もまた、ネットワーク102に連結されている。サーバ104もしくは106、またはクライアント110、112、もしくは114などのデータ処理システムは、データを含んでもよく、その上で実行するソフトウェア・アプリケーションまたはソフトウェア・ツールを有してもよい。
【0062】
単なる実施例として、そのようなアーキテクチャに対するいかなる限定も示唆することなく、図1は、実施形態の例としての実施態様において使用可能な、あるコンポーネントを示す。例えば、サーバ104および106、ならびにクライアント110、112、114は、単なる実施例としてサーバおよびクライアントとして示されており、クライアント・サーバ・アーキテクチャへの限定を示唆するものではない。別の実施例として、実施形態は、図示される複数のデータ処理システムおよびデータ・ネットワークにわたって分散されてもよく、別の実施形態は、例示的実施形態の範囲内で単一のデータ処理システム上で実施されてもよい。データ処理システム104、106、110、112、および114は、また、クラスタ、パーティション、および実施形態を実施するのに適当な他の構成における例としてのノードを表す。
【0063】
デバイス132は、本明細書で説明されるデバイスの実施例である。例えば、デバイス132は、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、据え付け型もしくはポータブル形式のクライアント110、ウェアラブル・コンピューティング・デバイス、または任意の他の適当なデバイスの形態をとり得る。図1の別のデータ処理システムにおいて実行すると説明される任意のソフトウェア・アプリケーションは、同様の方式でデバイス132において実行するように構成され得る。図1の別のデータ処理システムにおいて記憶され、または生成される任意のデータまたは情報は、同様の方式でデバイス132において記憶され、または生成されるように構成され得る。
【0064】
アプリケーション105は、本明細書で説明される実施形態を実施する。アプリケーション105は、本明細書で説明される実施形態の遠隔で使用可能な機能(リモート)を実施する。アプリケーション111は、本明細書で説明される実施形態のローカルに使用可能な機能(ローカル)またはネイティブに使用可能な機能(ネイティブ)を実施する。アプリケーション134は、本明細書で説明される実施形態のネイティブに使用可能な機能(ネイティブ)を実施する。実施形態のある機能を分散するために、アプリケーション105および111は、組み合わせで使用されてもよく、アプリケーション105および134は、別の組み合わせで使用されてもよく、アプリケーション105、111、および134は、別の組み合わせで使用されてもよい。アプリケーション105は、本明細書で説明される実施形態を実施する。入力データ109は、本明細書で説明される方式で、アプリケーション105の動作で使用され得る例としてのデータセットである。アプリケーション105は、入力データ109を用いてニューラル・ネットワークを訓練し、ニューラル・ネットワークは、次いで、本明細書で説明される方式で、入力データ109と一貫した予測を行うように動作され得る。
【0065】
サーバ104および106、ストレージ・ユニット108、ならびにクライアント110、112、および114、ならびにデバイス132は、有線接続、無線通信プロトコル、または他の適当なデータ接続性を用いてネットワーク102に連結し得る。クライアント110、112、および114は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。
【0066】
図示される実施例において、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供し得る。クライアント110、112、および114は、この実施例ではサーバ104に対するクライアントであり得る。クライアント110、112、114、またはそれらの何らかの組み合わせは、それら自体のデータ、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションを含み得る。データ処理環境100は、追加サーバ、クライアント、および図示されない他のデバイスを含み得る。
【0067】
図示される実施例において、データ処理環境100は、インターネットであってもよい。ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および他のプロトコルを用いて互いに通信する、ネットワークおよびゲートウェイの集合を表し得る。インターネットの中心は、データおよびメッセージをルーティングする数千の商用、官公庁用、教育用、および他のコンピュータ・システムを含む、主なノードまたはホスト・コンピュータの間のデータ通信リンクのバックボーンである。当然のことながら、データ処理環境100は、また、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)などのいくつかの異なる種類のネットワークとして実施され得る。図1は、異なる例示的実施形態についてのアーキテクチャの限定としてではなく一実施例として意図される。
【0068】
他の用途の中でも、データ処理環境100は、例示的実施形態が実施され得るクライアント・サーバ環境を実施するために使用され得る。クライアント・データ処理システムとサーバ・データ処理システムとの間の対話性を用いることによってアプリケーションが機能するように、クライアント・サーバ環境は、ソフトウェア・アプリケーションおよびデータがネットワークにわたって分散されることを可能にする。データ処理環境100は、また、ネットワークにわたって分散された相互運用可能なソフトウェア・コンポーネントが、コヒーレント・ビジネス・アプリケーションとして一緒にパッケージ化され得る、サービス指向アーキテクチャを採用し得る。データ処理環境100は、また、クラウドの形態をとってもよく、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のクラウド・コンピューティング・モデルを採用してもよい。
【0069】
図2を参照すると、この図は、例示的実施形態が実施され得るデータ処理システムのブロック図を示す。データ処理システム200は、図1におけるサーバ104および106、もしくはクライアント110、112、および114などのコンピュータ、またはプロセスを実施するコンピュータ使用可能プログラム・コードもしくは命令が例示的実施形態のために位置し得る別の種類のデバイスの一実施例である。
【0070】
データ処理システム200は、また、例示的実施形態のプロセスを実施するコンピュータ使用可能プログラム・コードまたは命令が位置し得る、図1におけるデータ処理システム132などの、データ処理システムまたはその中の構成を表す。データ処理システム200は、単なる実施例としてのコンピュータとしてそれに限定されることなく説明される。図1におけるデバイス132などの他のデバイスの形態での実施態様は、タッチ・インターフェースを追加することなどによってデータ処理システム200を修正してもよく、本明細書で説明されるデータ処理システム200の動作および機能の概略説明から逸脱することなく、ある図示されたコンポーネントをデータ処理システム200から除去すらしてもよい。
【0071】
図示される実施例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202、ならびにサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)204を含む、ハブ・アーキテクチャを採用する。処理ユニット206、メイン・メモリ208、およびグラフィックス・プロセッサ210は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202に連結される。処理ユニット206は、1つまたは複数のプロセッサを含んでもよく、1つまたは複数の異種プロセッサ・システムを用いて実施されてもよい。処理ユニット206は、マルチコア・プロセッサであってもよい。グラフィックス・プロセッサ210は、ある実施態様においてアクセラレーテッド・グラフィックス・ポート(AGP)を通してNB/MCH202に連結されてもよい。
【0072】
図示される実施例では、ローカル・エリア・ネットワーク(LAN)・アダプタ212は、サウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に連結されている。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)および他のポート232、ならびにPCI/PCIeデバイス234は、バス238を通してサウス・ブリッジおよびI/Oコントローラ・ハブ204に連結される。ハード・ディスク・ドライブ(HDD)またはソリッド・ステート・ドライブ(SSD)226およびCD-ROM230は、バス240を通してサウス・ブリッジおよびI/Oコントローラ・ハブ204に連結される。PCI/PCIeデバイス234は、例えば、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含み得る。PCIは、カード・バス・コントローラを使用し、PCIeは、カード・バス・コントローラを使用しない。ROM224は、例えば、フラッシュ・バイナリ入力/出力システム(BIOS)であってもよい。ハード・ディスク・ドライブ226およびCD-ROM230は、例えば、インテグレーティド・ドライブ・エレクトロニクス(IDE)、シリアル・アドバンスド・テクノロジ・アタッチメント(SATA)・インターフェース、または外部SATA(eSATA)およびマイクロSATA(mSATA)などの変形を使用し得る。スーパーI/O(SIO)デバイス236は、バス238を通してサウス・ブリッジおよびI/Oコントローラ・ハブ(SB/ICH)204に連結され得る。
【0073】
メイン・メモリ208、ROM224、またはフラッシュ・メモリ(図示せず)などのメモリは、コンピュータ使用可能ストレージ・デバイスのいくつかの実施例である。ハード・ディスク・ドライブまたはソリッド・ステート・ドライブ226、CD-ROM230、および他の類似の使用可能デバイスは、コンピュータ使用可能ストレージ媒体を含むコンピュータ使用可能ストレージ・デバイスのいくつかの実施例である。
【0074】
オペレーティング・システムは、処理ユニット206上で稼働する。オペレーティング・システムは、図2におけるデータ処理システム200内の様々なコンポーネントを協調させ、コンポーネントの制御を提供する。オペレーティング・システムは、サーバ・システム、パーソナル・コンピュータ、およびモバイル・デバイスを含むがこれらに限定されない、任意の種類の計算プラットフォームのための市販のオペレーティング・システムであってもよい。オブジェクト指向または他の種類のプログラミング・システムが、オペレーティング・システムと併せて動作し、データ処理システム200上で実行するプログラムまたはアプリケーションからオペレーティング・システムに呼び出しを提供し得る。
【0075】
オペレーティング・システム、オブジェクト指向プログラミング・システム、および図1のアプリケーション105などのアプリケーションまたはプログラムのための命令は、ハード・ディスク・ドライブ226上のコード226Aの形態などでストレージ・デバイス上に位置し、処理ユニット206による実行用に、メイン・メモリ208などの1つまたは複数のメモリのうちの少なくとも1つの中にロードされてもよい。例示的実施形態のプロセスは、処理ユニット206によってコンピュータ実施命令を用いて実行されてもよく、コンピュータ実施命令は、例えば、メイン・メモリ208、読み取り専用メモリ224などのメモリ内、または1つもしくは複数の周辺デバイス内に位置し得る。
【0076】
さらに、1つの場合において、コード226Aは、リモート・システム201Bからネットワーク201Aを経てダウンロードされてもよく、類似コード201Cは、ストレージ・デバイス201D上に記憶される。別の場合において、コード226Aは、ネットワーク201Aを経てリモート・システム201Bへダウンロードされてもよく、ダウンロードされたコード201Cは、ストレージ・デバイス201D上に記憶される。
【0077】
図1図2におけるハードウェアは、実施態様に依存して変化し得る。フラッシュ・メモリ、等価な不揮発性メモリ、または光学ディスク・ドライブなどの、他の内部ハードウェアまたは周辺デバイスは、図1図2に示されるハードウェアに加えて、またはその代わりに使用され得る。さらに、例示的実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用されてもよい。
【0078】
いくつかの例示的実施例において、データ処理システム200は、携帯情報端末(PDA)であってもよく、それは概して、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するためにフラッシュ・メモリで構成される。バス・システムは、システム・バス、I/Oバス、およびPCIバスなどの1つまたは複数のバスを含み得る。当然ながら、バス・システムは、ファブリックまたはアーキテクチャにアタッチされた異なるコンポーネントまたはデバイス間のデータ移送を提供する、任意の種類の通信ファブリックまたはアーキテクチャを用いて実施され得る。
【0079】
通信ユニットは、モデムまたはネットワーク・アダプタなどのデータを送信および受信するために使用される1つまたは複数のデバイスを含み得る。メモリは、例えば、メイン・メモリ208、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202において見出されるキャッシュなどのキャッシュであってもよい。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含み得る。
【0080】
図1図2において示される実施例および上述の実施例は、アーキテクチャの限定を示唆することを意味しない。例えば、データ処理システム200は、また、モバイル・デバイスまたはウェアラブル・デバイスの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスであってもよい。
【0081】
コンピュータまたはデータ処理システムが仮想機械、仮想デバイス、または仮想コンポーネントとして説明される場合、仮想機械、仮想デバイス、または仮想コンポーネントは、データ処理システム200に示されるいくつかのまたは全てのコンポーネントの仮想化表現を用いてデータ処理システム200の方式で動作する。例えば、仮想機械、仮想デバイス、または仮想コンポーネントにおいて、処理ユニット206は、ホスト・データ処理システムにおいて利用可能な全ての、またはいくつかのハードウェア処理ユニット206の仮想化インスタンスとして表され、メイン・メモリ208は、ホスト・データ処理システムにおいて利用可能であり得るメイン・メモリ208の全ての、またはいくつかの部分の仮想化インスタンスとして表され、ディスク226は、ホスト・データ処理システムにおいて利用可能であり得るディスク226の全てのまたはいくつかの部分の仮想化インスタンスとして表される。このような場合のホスト・データ処理システムは、データ処理システム200によって表される。
【0082】
図3を参照すると、この図は、例示的実施形態で解決され得る例としての問題のブロック図を示す。行列302は、図1の入力データ109の実施例である。
【0083】
行列302が本明細書で説明される例としての交通データセットを表すと仮定する。図示されるように、行列302は、1週間のうちの7日および1日のうちの24時間についての個々の特徴を含む。分かるように、行列302は、極めて疎に入力されている。行列304および306によって、手動による特徴交差の問題が示されている。1日のうちの全ての時間を1週間のうちの全ての日と交差させるとき、いくつかの有意な交差が得られるが、結果としてより大きな168列幅の行列がここで生じ、それは行列302よりもさらに疎である。逆に、行列306のように、多すぎる特徴または無関係な特徴を交差させる場合、より小さな行列が達成され得るが、そのセルは、望ましい程度まで行列302を表すものではない。
【0084】
図4を参照すると、この図は、例示的実施形態による、例としての埋め込みのブロック図を示す。構成400は、層402A、層402B、...層402Xなどのいくつかの層を含むニューラル・ネットワーク402を示す。特徴交差FC1、FC2、...FCnを含む特徴交差404は、例として層402Bに埋め込まれる。任意の数の層埋め込みが、このようにして特徴交差を用いて形成され得る。例えば、特徴交差406は、同様に、本明細書で説明される方式で層402Xに埋め込まれる。
【0085】
図5を参照すると、例示的実施形態による、ニューラル・ネットワーク最適化における特徴エンジニアリングのための例としてのアプリケーションのブロック図を示す。アプリケーション502は、図1のアプリケーション105として実施され得る。
【0086】
アプリケーション502は、入力データ504を受信する。入力データ504は、図1の入力データ109または図3の行列302の形態であってもよい。コンポーネント506は、本明細書で説明される方式で前向き実体化を用いてオントロジーを形成する。コンポーネント508は、本明細書で説明される方式で、オントロジーに対応するベクトル空間を構築し、類似性検索を実行する。コンポーネント510は、オントロジー・グラフから形成される推移閉包データ構造を用いてグラフを推移簡約する。
【0087】
コンポーネント512は、簡約されたグラフに残存する弁別ノード(特徴)のクラスタを識別する。簡約されたグラフから抽出される、または簡約されたグラフ内で隔離される弁別ノードのクラスタは、候補特徴交差のセットを形成する。候補特徴交差は、所望の程度の精度で元のデータセットの少なくとも一部を表し得る、弁別特徴交差である。
【0088】
コンポーネント514は、本明細書で説明される候補特徴交差のための上限および下限を計算する。上限および下限によって定義される埋め込み範囲を考えると、コンポーネント516は、特定の特徴交差についての次元数、即ち、埋め込みの層サイズを判断する。一実施形態では、コンポーネント516は、層サイズを設定するために埋め込みの次元数を削減し、または変更もしくは変化させる。
【0089】
一実施形態では、アプリケーション502は、候補特徴交差のセット518を出力する。別の実施形態では、アプリケーション502は、各候補特徴交差についての上限および下限520と共に、候補特徴交差のセット518を出力する。別の実施形態では、アプリケーション502は、各候補特徴交差についての(i)上限および下限520、(ii)計算された層サイズ522、または(iii)(i)および(ii)の両方と共に、候補特徴交差のセット518を出力する。
【0090】
出力518、520、522、またはそれらの何らかの組み合わせは、ニューラル・ネットワークを構成するために使用可能である。例えば、一実施形態では、アプリケーション502によって、ニューラル・ネットワークが、層埋め込みサイズ522に従って候補特徴交差518のサブセットを埋め込む。一実施形態によれば、アプリケーション502によって、さらに、構成されたニューラル・ネットワークが、予測エンジン107のような予測エンジンにおいてモデル実装524を形成する。一実施形態では、構成、実装、またはその両方が、人間の介入なしに自動的である。別の実施形態では、構成、実装、またはそれらの何らかの組み合わせが、1つまたは複数の出力の人間による検討/調整/選択後に実行される。
【0091】
ニューラル・ネットワークが構成され、実装されると、一実施形態では、アプリケーション502が、実装された特徴交差のセットを含む情報をフィードバック526として受信する。実装された特徴交差のセットは、候補特徴交差518のサブセットと完全に、または部分的に重複し得る。例えば、ユーザは、候補特徴交差518からいくつかの特徴交差を構成してもよく、また、候補特徴交差のセット518内にないいくつかの特徴交差をユーザ自身の経験から構成してもよい。
【0092】
モデル実装524は、モデル出力528、例えば予測を生成する。一実施形態では、アプリケーション502は、フィードバックとしてモデル実装524から直接、出力528を受信する。別の実施形態では、アプリケーション502は、ユーザが出力528に対して調整530を適用した後、出力528を受信する。いずれにしても、アプリケーション502は、フィードバック526および調整済みまたは未調整の出力528を使用して、適当な既知の機械学習技術を用いてニューラル・ネットワークを再訓練する。
【0093】
特定の例としての問題を解決するための特定の実施形態の実施態様の詳細な説明が、ここで提供される。この説明は、本明細書で説明される全ての実施形態に限定することを意図するものではない。当業者は、本実施形態から他の実施形態に詳細を適合させることが可能であり、そのような適合が、例示的実施形態の範囲内で考慮される。
【0094】
意味グラフ(例えば、オントロジー)を考えると、eg Aがeg pを通してeg Dに関係するかどうかを問い合わせし、導出ルートを列挙したい。所与の関係についての推移閉包を計算するためのルール・セットは、API非依存の様式で表され得る。
Statement is [urn x-hp eg/A, urn x-hp eg/p,urn x-hp eg/D]
Rule rule1 concluded(eg A eg p eg D)<-Fact(eg A eg p eg B)
【0095】
念のため、推移閉包は、有向グラフを考えると、所与のグラフ内の全ての頂点ペア(u,v)について、頂点vが別の頂点uから到達可能であるかどうかをシステムが判断することによる方法である。到達可能とは、頂点uから頂点vへのパスが存在することを意味する。到達可能性行列は、グラフの推移閉包と呼ばれる。
【0096】
この到達可能性行列は、推論のコストを計算する方法である。一次の推移的推論は、a→b→cの明示的観念によるa→cの実体化を、横断する単一ノードのコストを有するものとして示す。横断されるノードが同一サブクラス内に存在する場合、コストは変化しない。横断されるノードが、グランドペアレント・サブクラスのコンテキスト内で発生する場合、コストは、クラス間のコサイン類似度の関数によって増加する。
def transitiveClosure(V,graph)
reach = [i[] for i in graph]
for k in range(V)
for i in range(V)
for j in range(V)
reach[i][j]=reach[i][j] or (reach[i][k] and reach[k][j])
return reach
graph = [[1,1,0,1],
[0,1,1,0],
[0,0,1,1],
[0,0,0,1]]
transitiveClosure(graph)
【0097】
図6は、例示的実施形態による推論の実体化を示す。深層意味グラフ602(左側)に対する推移閉包グラフ604(右側)によって、推論の実体化がこの図に示されている。
【0098】
実施例では、グラフ602は、意味グラフのサブセットを説明する。細かい模様のノードは、模様のないノード(ペアレント)に対してrdfs:subClassOfまたは同等の関係によって接続されたグラフ内のエンティティである。右側のグラフ604は、推論の実体化を示す。推論実体化は、推移閉包の形態である。濃い色のエッジは意味グラフの推移簡約を表し、ここで(例えば)ノードAからノードFへパスが直接形成されることを意味する。グラフ604内のそれぞれの推移簡約実体化の意味コストを計算する能力が、例示的実施形態によって可能にされる特徴である。
【0099】
関数は、ペアレント・ノード間のコサイン類似度(cosθ)と乗算した、推移閉包値(x)と乗算したグラフ全体にわたる各実体化されたエンティティ(λ)をとる。非限定的な例のコサイン類似度アルゴリズムは、参照のため、以下のように示される。
【0100】
【数1】
【0101】
各関数の出力は、ほぼ正規分布の範囲内に存在する。zスコアは、各エンティティのポイント値をとること、および全ての値の標準偏差で結果を除算した平均を減算することによって計算される。zスコアを扱う方法の決定は、ややポリシーベースであるが、概して、統計的に意味のある外れ値を除去する。分散の歪みは、この点でポリシーを動かす。
【0102】
図7は、実施形態による、図6のグラフ604から結果として得られる出力グラフを示す。グラフ702は、図6の仮想サブグラフ604上の式の出力を表す。エンティティB、G(線の模様で示される)は、単一交差特徴に連結される。上記で与えられた式の恩恵なしでは、既存の連結戦略は、訓練されたモデルに不利益を与えてエンティティEを含む可能性がある。方法は、同様に、エンティティC、E、F(細かい模様で示される)を単一交差特徴に連結する。コスト計算が高すぎるため、エンティティDは除外される。
【0103】
仮想的な例から現実世界のグラフに移動すると、Tensorboardの可視化によってオントロジーのベクトル空間への配置が示されると仮定する。図8Aは、オントロジーのベクトル空間への配置を示す。図8Bは、候補特徴交差についての推論の実体化を示す。例としての候補特徴交差は、グラフ852内の線の模様のノードによって示される。線の模様のノードは、形成されているクラスタを示し、統計モデルについての候補交差特徴を表す。埋め込みの下限は、本明細書に記載されるように各クラスタ(交差特徴)に寄与する全てのエンティティのインスタンス・データを合計することによって計算される。
【0104】
図9を参照すると、この図は、例示的実施形態による、ニューラル・ネットワーク最適化における特徴エンジニアリングのための例としてのプロセスのフローチャートを示す。プロセス900は、図5のアプリケーション502において実施され得る。
【0105】
アプリケーションは、入力データセットを受信する(ブロック902)。アプリケーションは、データセットからオントロジー・グラフを構築する(ブロック904)。アプリケーションは、グラフ上において推論で前向き実体化を実行する(ブロック906)。
【0106】
アプリケーションは、前向き実体化されたグラフにおいてエンティティ(特徴)のベクトル空間を構築する(ブロック908)。アプリケーションは、ベクトル空間内の1つまたは複数の概念を識別する(ブロック910)。アプリケーションは、概念間の類似性を判断する(ブロック912)。
【0107】
アプリケーションは、それらの概念の類似性によってリンクされるエンティティのペアについて推移閉包データ構造を構築する(ブロック914)。推移閉包データ構造を用いて、アプリケーションは、推移簡約を実行する(ブロック916)。アプリケーションは、1つまたは複数の推移閉包データ構造に対して推移簡約を実行する。
【0108】
アプリケーションは、推移簡約動作から生じた簡約されたグラフ内の残存ノード/エンティティ/特徴のクラスタを識別する(ブロック918)。クラスタは、候補特徴交差である。アプリケーションは、候補特徴交差についての上限を計算する(ブロック920)。アプリケーションは、候補特徴交差についての下限を計算する(ブロック922)。アプリケーションは、特徴交差についての上限および下限を用いる埋め込み層サイズを計算する(ブロック924)。
【0109】
アプリケーションは、計算された埋め込み層サイズに従ってニューラル・ネットワーク内の層を構成する(ブロック926)。このようにして、任意の数の特徴が、任意の数の層に埋め込まれ得る。アプリケーションは、層がこのようにして構成されるニューラル・ネットワークを訓練する(ブロック928)。アプリケーションは、予測エンジンにおいて訓練されたニューラル・ネットワークをデプロイする(ブロック930)。アプリケーションは、その後プロセス900を終了してもよい。
【0110】
一実施態様では、アプリケーションはさらに、予測エンジンにおいてデプロイメントからフィードバックを受信する(ブロック932)。アプリケーションは、本明細書で説明されるように、フィードバックに従って特徴交差、埋め込み層サイズ、またはその両方を調整する(ブロック934)。アプリケーションは、その後プロセス900を終了する。
【0111】
このようにして、コンピュータ実施方法、システムまたは装置、およびコンピュータ・プログラム製品が、ニューラル・ネットワーク最適化における特徴エンジニアリングおよび他の関連特徴、機能、または動作のための例示的実施形態において提供される。実施形態またはその一部が、ある種類のデバイスに関して説明される場合、コンピュータ実施方法、システムもしくは装置、コンピュータ・プログラム製品、またはそれらの一部が、その種類のデバイスの適当かつ同等の表現で使用するために適合され、または構成される。
【0112】
実施形態が、アプリケーションにおいて実施されるとして説明される場合、サービスとしてのソフトウェア(SaaS)モデルでのアプリケーションの配信が、例示的実施形態の範囲内で考慮される。SaaSモデルにおいて、実施形態を実施するアプリケーションのケイパビリティが、クラウド・インフラストラクチャにおいてアプリケーションを実行することによって、ユーザに提供される。ユーザは、ウェブ・ブラウザ(例えば、ウェブベース電子メール)または他の軽量クライアント・アプリケーションなどのシン・クライアント・インターフェースを通して多様なクライアント・デバイスを用いてアプリケーションにアクセスし得る。ユーザは、ネットワーク、サーバ、オペレーティング・システム、またはクラウド・インフラストラクチャのストレージを含む、基盤クラウド・インフラストラクチャを管理または制御しない。いくつかの場合において、ユーザは、SaaSアプリケーションのケイパビリティを管理または制御すらしなくともよい。いくつかの他の場合において、アプリケーションのSaaS実施態様は、限定されたユーザ固有のアプリケーション構成設定の可能な例外を許容し得る。
【0113】
本発明は、任意の可能な統合の技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。
【0114】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであってもよい。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読ストレージ・デバイスを含むがこれに限定されないコンピュータ可読ストレージ媒体は、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号そのものであると解釈されるべきではない。
【0115】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体の記憶用にコンピュータ可読プログラム命令を転送する。
【0116】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラム言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【0117】
本発明の態様は、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
【0118】
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供されてもよい。内部に命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方式で機能するように指示し得る、コンピュータ可読ストレージ媒体に記憶されてもよい。
【0119】
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令は、また、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるコンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされてもよい。
【0120】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベース・システムによって実施され得ることにも留意されたい。
【0121】
本発明の実施形態は、また、クライアント企業、非営利団体、政府機関、内部組織構造などとのサービス契約の一部として配信され得る。これらの実施形態の態様は、本明細書で説明される方法のいくつかまたは全てを実行するようにコンピュータ・システムを構成すること、および本明細書で説明される方法のいくつかまたは全てを実施するソフトウェア、ハードウェア、およびウェブ・サービスをデプロイすることを含み得る。これらの実施形態の態様は、また、クライアントの動作を分析することと、分析に応じて推薦を生成することと、推薦の一部を実施するシステムを構築することと、システムを既存プロセスおよびインフラストラクチャに統合することと、システムの使用を計測することと、費用をシステムのユーザに割り当てることと、システムの使用に対して課金することと、を含み得る。本発明の上記実施形態は、それぞれ、個々の利点を述べることによって説明されているが、本発明は、その特定の組み合わせに限定されない。それとは逆に、そのような実施形態は、また、それらの有利な効果を失うことなく、本発明の意図したデプロイメントに従って任意の方式および数で組み合わされ得る。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9