(57)【要約】  一実施形態が、プロセッサによって、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行することを含む方法を提供する。リンク特徴ベクトル・テーブルは、大規模エンティティ解決の能動学習の中間結果について判断される。リンク特徴ベクトル・テーブルは、２段階キャッシュ階層によって管理される。
2021531562.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行することと、
前記大規模エンティティ解決の前記能動学習の中間結果についてリンク特徴ベクトル・テーブルを決定することと、
２段階キャッシュ階層によって前記リンク特徴ベクトル・テーブルを管理することと、
を含む、方法。
【請求項２】
前記リンク特徴ベクトル・テーブルを決定することが、全てのブロッキング関数の集合を用いて前記リンク特徴ベクトル・テーブルを事前計算すること、または照合関数が変化すると前記リンク特徴ベクトル・テーブルを動的に計算することのうちの１つを含み、前記２段階キャッシュ階層が、分散型メモリ・キャッシュおよび分散型ディスク・キャッシュを含む、請求項１に記載の方法。
【請求項３】
前記分散型メモリ・キャッシュが、頻度およびストレージ使用量に基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項２に記載の方法。
【請求項４】
前記分散型ディスク・キャッシュが、頻度、ストレージ使用量、処理帯域幅、およびカバレッジに基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項２に記載の方法。
【請求項５】
前記リンク特徴ベクトル・テーブルを事前計算することが、前記分散型メモリ・キャッシュのメモリ・キャッシュに移入することと、前記メモリ・キャッシュが一杯であるとの判断に応じて前記分散型ディスク・キャッシュの少なくとも１つのディスク・キャッシュ内に前記リンク特徴ベクトル・テーブルをキャッシュすることと、を含む、請求項２に記載の方法。
【請求項６】
前記照合関数が変化した、および前記リンク特徴ベクトルがもはや有効でない、との判断に応じて、前記２段階キャッシュ階層のキャッシュを更新することをさらに含む、請求項２に記載の方法。
【請求項７】
リンクのインクリメント計算が、最近包含規則がキャッシュされるとの判断に応じて有効にされて、冗長計算を回避する、請求項１に記載の方法。
【請求項８】
前記中間結果を取得するために前記２段階キャッシュ階層のキャッシュを類似度スコアによってソートすることをさらに含む、請求項１に記載の方法。
【請求項９】
前記中間結果の上位部分または下位部分を検査して、最も類似するペアまたは最も類似しないペアを返すことをさらに含む、請求項８に記載の方法。
【請求項１０】
２段階分散型キャッシュ階層における大規模エンティティ解決の能動学習を最適化するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、前記プログラム命令が、前記プロセッサに、
前記プロセッサによって、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行させ、
前記プロセッサによって、大規模エンティティ解決の前記能動学習の中間結果についてリンク特徴ベクトル・テーブルを決定させ、
前記プロセッサによって、２段階キャッシュ階層を用いることによって前記リンク特徴ベクトル・テーブルを管理させるように、プロセッサにより実行可能である、コンピュータ・プログラム製品。
【請求項１１】
前記リンク特徴ベクトル・テーブルを決定することが、全てのブロッキング関数の集合を用いて前記リンク特徴ベクトル・テーブルを事前計算すること、または照合関数が変化すると前記リンク特徴ベクトル・テーブルを動的に計算することのうちの１つを含み、前記２段階キャッシュ階層が、分散型メモリ・キャッシュおよび分散型ディスク・キャッシュを含む、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記分散型メモリ・キャッシュが、頻度およびストレージ使用量に基づいて前記リンク特徴ベクトル・テーブルを管理し、前記分散型ディスク・キャッシュが、頻度、ストレージ使用量、処理帯域幅、およびカバレッジに基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記リンク特徴ベクトル・テーブルを事前計算することが、前記分散型メモリ・キャッシュのメモリ・キャッシュに移入することと、前記メモリ・キャッシュが一杯であるとの判断に応じて前記分散型ディスク・キャッシュの少なくとも１つのディスク・キャッシュ内に前記リンク特徴ベクトル・テーブルをキャッシュすることと、を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１４】
前記プログラム命令が、さらに前記プロセッサに、
前記プロセッサによって、前記照合関数が変化した、および前記リンク特徴ベクトルがもはや有効でないとの判断に応じて、前記２段階キャッシュ階層のキャッシュを更新させ、
前記プロセッサによって、前記中間結果を取得するために前記２段階キャッシュ階層のキャッシュを類似度スコアによりソートさせるように、前記プロセッサにより実行可能である、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１５】
前記プログラム命令が、さらに前記プロセッサに、
前記プロセッサによって、前記中間結果の上位部分または下位部分を検査させて、最も類似するペアまたは最も類似しないペアを返させるように、前記プロセッサにより実行可能であり、
リンクのインクリメント計算が、最近包含規則がキャッシュされるとの判断に応じて有効にされて、冗長計算を回避する、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
命令を記憶するように構成されるメモリと、
プロセッサと、
を備え、前記プロセッサが、
分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行し、
前記大規模エンティティ解決の前記能動学習の中間結果についてベクトル・テーブルを決定し、
２段階キャッシュ階層を用いることによってリンク特徴ベクトル・テーブルを管理するための前記命令を実行するように構成される、装置。
【請求項１７】
前記リンク特徴ベクトル・テーブルを決定することが、全てのブロッキング関数の集合を用いて前記リンク特徴ベクトル・テーブルを事前計算すること、または照合関数が変化すると前記リンク特徴ベクトル・テーブルを動的に計算することのうちの１つを含み、前記２段階キャッシュ階層が、分散型メモリ・キャッシュおよび分散型ディスク・キャッシュを含む、請求項１６に記載の装置。
【請求項１８】
前記分散型メモリ・キャッシュが、頻度およびストレージ使用量に基づいて前記リンク特徴ベクトル・テーブルを管理し、前記分散型ディスク・キャッシュが、頻度、ストレージ使用量、処理帯域幅、およびカバレッジに基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項１７に記載の装置。
【請求項１９】
前記リンク特徴ベクトル・テーブルを事前計算することが、前記分散型メモリ・キャッシュのメモリ・キャッシュに移入することと、前記メモリ・キャッシュが一杯であるとの判断に応じて前記分散型ディスク・キャッシュの少なくとも１つのディスク・キャッシュ内に前記リンク特徴ベクトル・テーブルをキャッシュすることと、を含む、請求項１７に記載の装置。
【請求項２０】
前記プロセッサが、
前記照合関数が変化した、および前記リンク特徴ベクトルがもはや有効でないとの判断に応じて、前記２段階キャッシュ階層のキャッシュを更新し、
前記中間結果を取得するために前記２段階キャッシュ階層のキャッシュを類似度スコアによってソートし、
前記中間結果の上位部分または下位部分を検査して、最も類似するペアまたは最も類似しないペアを返すために、前記命令を実行するようにさらに構成され、
リンクのインクリメント計算が、最近包含規則がキャッシュされるとの判断に応じて有効にされて、冗長計算を回避する、請求項１７に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
エンティティ解決（ＥＲ：entity resolution）規則の能動学習（active learning）は、対話性が必須である場合にユーザの負荷を緩和する。現在の解決策は、大きなデータ・セットに対して十分に拡張しない。数百万のレコードを有するデータ・セットの場合、各繰り返しが、６個のノード・クラスタ上で数分〜数十分かかることがある。
【０００２】
照合関数（matching function）は、ＥＲ規則を構成する基本単位であり、それらは、ユーザによって提供される。能動学習は、閾値を伴って複数の照合関数の構成を学習し、ＥＲ規則を生成する。能動学習プロセスの複数の繰り返しは、いくつかのＥＲ規則を出力し、それは、全体として、同一の現実世界エンティティに属するエンティティを識別する。
【０００３】
ブロッキング関数（blocking function）は、ＥＲ規則に組み込まれる特殊な種類の照合関数である。１つのＥＲ規則は、少なくとも１つのブロッキング関数を有するべきである。ブロッキング関数は、２つの入力データ・セットから比較されるべきペアの数を減少させるために使用され、それによって計算コストが減少する。
【発明の概要】
【０００４】
実施形態は、分散型計算メモイング・キャッシュ（distributed compute memoing cache）を用いて冗長計算を除去することによって大規模エンティティ解決（ＥＲ：entity resolution）の能動学習を最適化することに関連する。一実施形態は、プロセッサによって、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行することを含む方法を提供する。大規模エンティティ解決の能動学習の中間結果に対して、リンク特徴ベクトル・テーブルが決定される。リンク特徴ベクトル・テーブルは、２段階キャッシュ階層（two-level cache hierarchy）によって管理される。
【０００５】
本発明の、これらのおよび他の特徴、態様および利点については、以下の説明、添付の特許請求の範囲および添付図面を参照して理解されるであろう。
【０００６】
発明の実施形態が、ここで単なる例として添付図面を参照して説明される。
【図面の簡単な説明】
【０００７】
【図１】実施形態による、クラウド・コンピューティング環境を示す図である。
【図２】実施形態による、抽象モデル・レイヤのセットを示す図である。
【図３】実施形態による、２段階分散型計算メモイング・キャッシュ・システムのためのネットワーク・アーキテクチャを示す図である。
【図４】実施形態による、図１のサーバまたはクライアントあるいはその両方に関連付けられ得る代表的なハードウェア環境を示す図である。
【図５】一実施形態による、２段階分散型計算メモイング・キャッシュ・プロセスを実行するための分散型システムを示すブロック図である。
【図６】一実施形態による、２段階分散型計算メモイング・キャッシュ・システムのための例としてのアーキテクチャを示す図である。
【図７】一実施形態による、事前計算されたリンク特徴キャッシュに対してキャッシュするプロセスのためのブロック図である。
【図８】一実施形態による、リンク特徴ベクトルのキャッシュをオン・ザ・フライで計算するプロセスのためのブロック図である。
【図９】一実施形態による、ディスク・キャッシュ管理プロセスのための例としてのブロック図である。
【図１０】一実施形態による、２段階分散型計算メモイング・キャッシュ・プロセスのための例としてのコーディングを示す図である。
【図１１】一実施形態による、分散型計算メモイング・キャッシュを用いて冗長計算を除去することによって、大規模エンティティ解決（ＥＲ）の能動学習を最適化するプロセスのブロック図である。
【発明を実施するための形態】
【０００８】
多様な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図するものではない。多くの変更および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的な用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書に開示される実施形態を他の当業者が理解可能にするために、選択された。
【０００９】
本開示は、クラウド・コンピューティングの詳細な説明を含むが、本明細書に列挙される教示の実施は、クラウド・コンピューティング環境に限定されないと予め理解されるものとする。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【００１０】
実施形態は、分散型計算メモイング・キャッシュを用いて冗長計算を除去することによって大規模エンティティ解決（ＥＲ）の能動学習を最適化することに関連する。一実施形態は、プロセッサによって、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行することを含む方法を提供する。計算メモイング・キャッシュは、リンク特徴ベクトル・テーブルを管理することによって、計算された中間結果を記憶する。リンク特徴ベクトル・テーブルは、単一のブロッキング関数全ての集合を用いて事前計算されるか、または照合関数がユーザによって変更されるときにオン・ザ・フライで計算される。
【００１１】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械（ＶＭ）、およびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、および少なくとも４つの配置モデルを含み得る。
【００１２】
特性は、以下の通りである。
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダとの人との対話を必要とすることなく、必要に応じてかつ自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的に供給し得る。
幅広いネットワーク・アクセス：ケイパビリティは、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースの共用：プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者は、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、抽象度のより高いレベル（例えば、国、州、またはデータ・センタ）において場所を指定することが可能であり得るという点において、位置独立の意味がある。
スピーディな拡張性：ケイパビリティは、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能なケイパビリティが、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
サービスが計測可能であること：クラウド・システムは、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブな消費者アカウント）に適した抽象度のあるレベルにおいて計測ケイパビリティを活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されてもよく、それによって利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【００１３】
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供されるケイパビリティは、クラウド・インフラ上で実行されるプロバイダのアプリケーションを使用する能力である。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定された消費者固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティですら含む、基礎となるクラウド・インフラを管理または制御しない。
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションを、クラウド・インフラ上に配置する能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラを管理または制御しないが、配置されたアプリケーション、および、可能性としてはアプリケーション・ホスティング環境構成に対して制御を行う。
サービスとしてのインフラ（ＩａａＳ）：消費者に提供されるケイパビリティは、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配置および実行することが可能な、他の基本コンピューティング・リソースを供給する能力である。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーションに対して制御を行い、かつ可能性としては選択ネットワーキング・コンポーネント（例えば、ホスト・ファイアウォール）の限定的な制御を行う。
【００１４】
配置モデルは、以下の通りである。
プライベート・クラウド：クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド：クラウド・インフラは、複数の組織によって共有され、共有の関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラは、組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド：クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術（例えば、クラウド間のロード・バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の合成物である。
【００１５】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【００１６】
ここで図１を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示するように、クラウド・コンピューティング環境５０は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはそれらの組み合わせが通信し得る、１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信し得る。それらは、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの、１つまたは複数のネットワーク内で物理的または仮想的にグループ化されてもよい（図示せず）。これによって、クラウド・コンピューティング環境５０が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組み合わせを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。図１に示されるコンピューティング・デバイス５４Ａ〜Ｎの種類は、単なる例示であるように意図され、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て（例えば、ウェブ・ブラウザを用いて）、任意の種類のコンピュータ化デバイスと通信し得ると理解される。
【００１７】
ここで図２を参照すると、クラウド・コンピューティング環境５０（図１）によって提供される機能抽象レイヤのセットが示されている。図２に示されるコンポーネント、レイヤ、および機能は、単なる例示であるように意図され、発明の実施形態は、それらに限定されないと、予め理解されるべきである。図示するように、以下のレイヤおよび対応する機能が、提供される。
【００１８】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベース・サーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００１９】
仮想化レイヤ７０は、仮想エンティティの以下の例、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５が提供され得る、抽象レイヤを提供する。
【００２０】
１つの例では、管理レイヤ８０は、後述する機能を提供し得る。リソース供給８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定８２は、リソースがクラウド・コンピューティング環境内で利用されるときにコスト追跡を提供し、これらのリソースの消費に対する課金または請求を提供する。１つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクについての本人確認を提供する。ユーザ・ポータル８３は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行８５は、ＳＬＡに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【００２１】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育配信９３、データ解析処理９４、トランザクション処理９５、ならびに分散型計算メモイング・キャッシュを用いて冗長計算処理を除去することによって大規模ＥＲの能動学習を最適化すること９６を含む。上述の通り、図２に関して説明した前述の例の全ては、単なる例示であり、発明は、これらの例に限定されない。
【００２２】
本明細書で説明される１つまたは複数の実施形態の全ての機能が、典型的には、処理システム３００（図３）またはクラウド環境４１０（図４）によって実行されてもよく、それらは、ハードウェア・プロセッサとして、かつプログラム・コードのモジュールを伴って、有形に具現化され得ると理解される。しかしながら、これは非リアルタイム処理のための場合においては、この通りである必要はない。むしろ、非リアルタイム処理については、本明細書で列挙される機能性が、図２に示されるレイヤ６０、７０、８０、および９０のうちのいずれかによって実行され／実施され、または可能にされ、あるいはその両方であり得る。
【００２３】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に列挙される教示の実施は、クラウド・コンピューティング環境に限定されないと再確認する。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の種類のクラスタ化されたコンピューティング環境を用いて実施されてもよい。
【００２４】
図３は、一実施形態による、ネットワーク・アーキテクチャ３００を示す。図３に示されるように、第１のリモート・ネットワーク３０４および第２のリモート・ネットワーク３０６を含む複数のリモート・ネットワーク３０２が提供される。ゲートウェイ３０１は、リモート・ネットワーク３０２と近接ネットワーク３０８との間に連結され得る。このネットワーク・アーキテクチャ３００の文脈において、ネットワーク３０４、３０６は、それぞれＬＡＮ、インターネットなどのＷＡＮ、公衆交換電話網（ＰＳＴＮ）、内線電話網などを含むがこれらに限定されない任意の形態を取り得る。
【００２５】
使用時に、ゲートウェイ３０１は、リモート・ネットワーク３０２から近接ネットワーク３０８への入口ポイントとしての役割をする。このように、ゲートウェイ３０１は、ゲートウェイ３０１に到達する所与のデータ・パケットを方向付けすることが可能なルータ、および所与のパケットのためにゲートウェイ３０１内外に実際の経路を供給するスイッチとして機能し得る。
【００２６】
近接ネットワーク３０８に連結される少なくとも１つのデータ・サーバ３１４がさらに含まれ、データ・サーバ３１４は、ゲートウェイ３０１を介してリモート・ネットワーク３０２からアクセス可能である。データ・サーバ３１４は、任意の種類のコンピューティング・デバイス／グループウェアを含み得ることに留意すべきである。各データ・サーバ３１４に連結されるのは、複数のユーザ・デバイス３１６である。そのようなユーザ・デバイス３１６は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、または任意の他の種類のロジック包含デバイス、あるいはそれらの組み合わせを含み得る。ユーザ・デバイス３１６もまた、いくつかの実施形態においてネットワークのうちのいずれかに直接連結され得ることに留意すべきである。
【００２７】
例えば、ファクシミリ機械、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワーク化記憶ユニットもしくはシステムまたはローカル記憶ユニットもしくはシステムあるいはその両方などの、周辺装置３２０または一連の周辺装置３２０が、ネットワーク３０４、３０６、３０８のうちの１つまたは複数に連結され得る。データベースまたは追加コンポーネントあるいはその両方が、ネットワーク３０４、３０６、３０８に連結される任意の種類のネットワーク素子とともに利用されてもよく、または任意の種類のネットワーク素子に統合されてもよいことに留意すべきである。本説明の文脈において、ネットワーク素子は、ネットワークの任意のコンポーネントを指してもよい。
【００２８】
いくつかの手法によれば、本明細書に説明される方法およびシステムは、ＩＢＭ（Ｒ）ｚ／ＯＳ（Ｒ）環境をエミュレートするＵＮＩＸ（Ｒ）システム、ＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）環境を仮想的にホストするＵＮＩＸ（Ｒ）システム、ＩＢＭ（Ｒ）ｚ／ＯＳ（Ｒ）環境をエミュレートするＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）システムなどの、仮想システムまたは１つもしくは複数の他のシステムをエミュレートするシステムあるいはその両方を、用いてまたはその上であるいはその両方で実施されてもよい。この仮想化またはエミュレーションあるいはその両方は、いくつかの実施形態において、ＶＭＷＡＲＥソフトウェアの使用を通して実施され得る。
【００２９】
図４は、一実施形態による、図３のユーザ・デバイス３１６またはサーバ３１４あるいはその両方に関連付けられた代表的なハードウェア・システム４００の環境を示す。一例では、ハードウェア構成は、マイクロプロセッサなどの中央処理装置４１０、およびシステム・バス４１２を介して相互接続された、いくつかの他のユニットを有するワークステーションを含む。図４に示されるワークステーションは、ランダム・アクセス・メモリ（ＲＡＭ）４１４と、読み取り専用メモリ（ＲＯＭ）４１６と、ディスク・ストレージ・ユニット４２０などの周辺デバイスをバス４１２に接続するためのＩ／Ｏアダプタ４１８と、キーボード４２４、マウス４２６、スピーカ４２８、マイクロフォン４３２、またはタッチ・スクリーン、デジタル・カメラ（図示せず）などの他のユーザ・インターフェース・デバイス、あるいはそれらの組み合わせをバス４１２に接続するためのユーザ・インターフェース・アダプタ４２２と、ワークステーションを通信ネットワーク４３５（例えば、データ処理ネットワーク）に接続するための通信アダプタ４３４と、バス４１２をディスプレイ・デバイス４３８に接続するためのディスプレイ・アダプタ４３６と、を含み得る。
【００３０】
一例では、ワークステーションは、ＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（Ｒ）オペレーティング・システム（ＯＳ）、ＭＡＣ  ＯＳ、ＵＮＩＸ（Ｒ）ＯＳなどのオペレーティング・システムがその上に常駐し得る。一実施形態において、システム４００は、ＰＯＳＩＸ（Ｒ）ベース・ファイル・システムを採用する。他の例は、記載されるもの以外のプラットフォームおよびオペレーティング・システム上でも実施され得ると理解されるものとする。そのような他の例は、オブジェクト指向プログラミング方法論とともに、ＪＡＶＡ（Ｒ）、ＸＭＬ、Ｃ、もしくはＣ＋＋言語、またはそれらの組み合わせ、あるいは他のプログラミング言語を用いて書かれたオペレーティング・システムを含み得る。複雑なアプリケーションを開発するためにますます使用されるようになっているオブジェクト指向プログラミング（ＯＯＰ）も使用され得る。
【００３１】
図５は、一実施形態による、分散型計算メモイング・キャッシュを用いて冗長計算を除去することによって、大規模ＥＲの能動学習を最適化するために使用され得るシステム５００を示すブロック図である。一実施形態では、システム５００は、クライアント・デバイス５１０（例えば、モバイル・デバイス、スマート・デバイス、コンピューティング・システムなど）、クラウドまたはリソース共有環境５２０（例えば、パブリック・クラウド・コンピューティング環境、プライベート・クラウド・コンピューティング環境、データセンタなど）、およびサーバ５３０を含む。一実施形態では、クライアント・デバイスには、クラウドまたはリソース共有環境５２０を通してサーバ５３０からクラウド・サービスが提供される。
【００３２】
一実施形態では、システム５００は、頻度およびストレージ・コストに基づいて計算をキャッシングするメモリ・レベル分散型キャッシュを含む大きなデータ・セット上での能動ＥＲの冗長計算を除去するために２段階分散型計算メモイング・キャッシュを提供する。システム５００は、頻度、ストレージ・コスト、計算費用、およびカバレッジに基づいて計算をキャッシングするディスク・レベル分散型キャッシュを提供する。正規規則（regular rule）についての早期退出（early exit）が、計算されたリンクを類似度スコア（similarity score）によりソートすることによって提供される。システム５００は、濃度節（cardinality clause）を含む学習済み規則のための効率的な計算キャッシング・アルゴリズム／プロセスを提供する。
【００３３】
図６は、一実施形態による、２段階分散型計算メモイング・キャッシュ・システム６００のための例としてのアーキテクチャを示す。システム６００は、メモリから命令を実行するための１つまたは複数のハードウェア・プロセッサ・デバイスを含む。システムは、ラベル付きデータ６１０、規則学習６１５プロセス、例選択モジュール／プロセス６２０、ユーザ対話モジュール／プロセス６２５、リンク計算スクリプト生成器６３０、計算キャッシュ・マネージャ６３５、計算リソース・プロセス６４０、分散型キャッシュ６４５、Ｈａｄｏｏｐ分散型ファイル・システム（ＨＤＦＳ）６５０、および分散型処理クラスタ６７０のためのストレージを含む。システム６００において、処理データは、ラベルなし例６６０／６６１、ラベル付き例６６２、規則６１６、キャッシング命令６７１、および入力データ・セット６７２を含む。計算キャッシュ・マネージャ６３５は、いくつかのリンク特徴ベクトル・テーブルである中間結果をキャッシングすることを担当する。このキャッシュ・マネージャは、図７、図８、および図９のフローを行う。リンク計算スクリプト生成器６３０は、ＨＩＬスクリプトを生成して中間結果を活用するために使用される。
【００３４】
一実施形態において、インメモリ・キャッシュ容量がＣｍｅｍ、ディスク・キャッシュがＣｄｉｓｋとすると、システム６００は、キャッシング効率を最大化するように空間を管理する。リンク特徴ベクトルのキャッシュされたテーブルのスキーマは、以下のフォーマット＜Ｉｄ１，Ｉｄ２，特徴ベクトル，類似度スコア＞を含む。一実施形態において、特徴ベクトルを表すビットマップが、ストレージ要件を低減するために使用される。リンク特徴ベクトルのキャッシュされたテーブルは、類似度スコアによってソートされる。表１は、リンク特徴ベクトルの例としてのテーブルを示す。
【００３５】
【表１】
2021531562.tif 000003
【００３６】
一実施形態において、システム６００は、照合関数が不変であるときに事前計算を実行する。この場合、特徴ベクトルは同一のままであり、システム６００は、全てのブロッキング関数のリンクおよび特徴ベクトルを事前計算し、インメモリ・キャッシュに移入（ｐｏｐｕｌａｔｅ）する。インメモリ・キャッシュが一杯であるとき、システム６００は、他のテーブルをディスク・メモリ・キャッシュ内にキャッシュする。一実施形態では、システム６００は、常に最近包含規則（nearest containing rule）を見つける。例えば、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅは、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅについての包含規則、ならびにｆｉｒｓｔＮａｍｅＭａｔｃｈ（Ｔ．ｆｉｒｓｔＮａｍｅ，Ｃ．ｆｉｒｓｔＮａｍｅ）である。システム６００は、照合関数が変化するときにオン・ザ・フライで計算し、リンクおよび特徴ベクトルを計算し、それらがキャッシュに置かれる。
【００３７】
一実施形態において、正規規則は、述語（predicate）の最大サブセットを有する規則である。例えば、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅは、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅについての包含規則、ならびにｆｉｒｓｔＮａｍｅＭａｔｃｈ（Ｔ．ｆｉｒｓｔＮａｍｅ，Ｃ．ｆｉｒｓｔＮａｍｅ）である。複数の候補規則（candidate rule）が存在する場合、システム６００は、メモリ内のもの、または最小数のリンクを有するものを選択する。濃度規則（cardinality rule）について、システム６００は、濃度を取り除き、正規規則の同一ポリシーを使用する。濃度節のみを取り除く規則もまた考えられることに留意されたい。例えば、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅは、Ｔ．ｌａｓｔＮａｍｅ＝Ｃ．ｌａｓｔＮａｍｅおよびＴ．ｌｏｃａｔｉｏｎ．ｓｔａｔｅ＝Ｃ．ｓｔａｔｅについての包含規則であり、１：１である。一実施形態において、システム６００は、学習済み規則が濃度節を含まないときに早期退出を提供する。システム６００は、リンクを上から下に最も近い規則から検査し、上位Ｋ個のリンクが収集されるときに戻る。Ｋは、正の整数である。
【００３８】
一実施形態では、システム６００は、リンク特徴ベクトルのテーブルのアクセス頻度、カバレッジ、および計算／処理「費用（expense）」（例えば、処理使用量、帯域幅など）、ならびにストレージ使用量に基づいて、２つのキャッシュ（分散型メモリ・キャッシュおよび分散型ディスク・キャッシュ）を管理する。一実施形態において、メモリ・キャッシュについての「コスト」またはメモリ使用量モデルは、以下のように表される。
【数１】
2021531562.tif 000004
【００３９】
一実施形態において、システム６００は、頻繁にアクセスされ、より低いストレージ使用量を必要とするリンク・セットにより高い優先度を与える。一実施形態において、ディスク・キャッシュについての「コスト」またはメモリ使用量モデルは、以下の通りである。
【数２】
2021531562.tif 000005
さらに、システム６００は、計算のための高い処理使用量、および他のリンク済みリストによってカバーされないリンク・セットを考慮する。
【００４０】
図７は、一実施形態による、事前計算されたリンク特徴キャッシュに対してキャッシュするプロセス７００のためのブロック図を示す。プロセス７００において、入力は、候補規則ｒ７０５、ならびにキャッシュ７３５からのリンク、特徴ベクトル、および類似度スコアを含む。ブロック７１０において、候補規則ｒ７０５が計算されているか否かが判断される。候補規則ｒ７０５が計算されていると判断される場合、プロセス７００は、ブロック７４０に進み、候補規則ｒ７０５についてのリンクを取得し、ブロック７７０に進んでリンクを返す。そうでない場合、ブロック７１０において候補規則ｒ７０５が計算されていないと判断される場合、ブロック７２０においてプロセス７００は、最近包含規則を取得する。ブロック７３０において、プロセス７００は、（キャッシュ７３５からの情報を用いて）事前計算された規則のリンクについてのデルタ述語（delta predicate）をチェックする。ブロック７５０において、候補規則ｒ７０５のリンクについて、プロセス７００は、類似度によってリンクをランク付けする。ブロック７６０において、プロセス７００は、特徴ベクトルを有するランク付けされたリンクをキャッシュ７３５内に置く。プロセス７００は、次いで、ブロック７７０に進んでリンクを返し、その後終了する。
【００４１】
図８は、一実施形態による、リンク特徴ベクトルのキャッシュをオン・ザ・フライで計算するプロセス８００のためのブロック図を示す。プロセス８００において、入力は、候補規則ｒ７０５、ならびにキャッシュ７３５からのリンク、特徴ベクトル、および類似度スコアを含む。ブロック８１０において、候補規則ｒ７０５がキャッシュ７３５内にあるか否かが判断される。候補規則ｒ７０５がキャッシュ７３５内にあると判断される場合、プロセス８００は、ブロック８２６に進み、候補規則ｒ７０５についてのリンクを取得し、ブロック８６０に進んで特徴ベクトルを有するランク付けされたリンクを返し、終了する。そうでない場合、ブロック８１０において候補規則ｒ７０５がキャッシュ７３５内にないと判断される場合、ブロック８２０において、プロセス８００は、最近計算済み規則（nearest computed rule）ｒ’が見つけられ得るか否かを判断する。最近計算済み規則ｒ’が見つけられると判断される場合、ブロック８２５において、プロセス８００は、規則ｒ’のリンクについてのデルタ述語をチェックし、キャッシュに置く。プロセス８００は、次いで、ブロック８６０に進み、その後終了する。最近計算済み規則ｒ’が見つけられないと判断される場合、ブロック８３０において、プロセス８００は、候補規則ｒ７０５についてのリンクを計算する。ブロック８４０において、プロセス８００は、キャッシュ７３５内にない候補規則ｒ７０５についてのリンクを取得する。ブロック８５０において、プロセス８００は、特徴ベクトル、類似度を計算し、結果をソートしてキャッシュ７３５に置く。プロセス８００は、次いで、ブロック８６０に進み、その後終了する。
【００４２】
図９は、一実施形態による、ディスク・キャッシュ管理プロセス９００のための例としてのブロック図を示す。一実施形態において、ブロック９１０において、プロセス９００は、現在の規則の結果Ｉがカバーされ（カバーされたＱ（ＣＱ）９０５）かつ正規であるかどうかを判断する。カバーされたとは、Ｉをカバーするいくつかの他のリンク特徴テーブルが存在し、それによって、Ｉがこれらのリンク特徴テーブルを通して計算され得ることを意味する。Ｉを破棄することは、カバーされていないいくつかの中間結果を破棄することよりも費用がかからない。正規とは、濃度節なしの正規規則をいう。Ｉがカバーされ、かつ正規であると判断される場合、プロセス９００はブロック９２０に進み、ブロック９２０ではＣＱが空であるか否かが判断される。ＣＱが空であると判断される場合、プロセス９００はブロック９３５に進み、Ｉキャッシュを破棄する。そうでない場合、プロセス９００はブロック９３０に進み、ブロック９３０では、Ｉ．ｓｃｏｒｅがｔａｉｌ．ｓｃｏｒｅより大きいかどうかが判断される。Ｉ．ｓｃｏｒｅがｔａｉｌ．ｓｃｏｒｅより大きいと判断される場合、プロセス９００はブロック９３１に進み、ＣＱ．ｔａｉｌを退去（evict）させる。そうでない場合、プロセス９００はブロック９３２に進み、Ｉキャッシュを破棄する。
【００４３】
一実施形態において、ブロック９１０においてＩがカバーされないか、または正規ではないと判断される場合、プロセス９００はブロック９４０に進み、ブロック９４０ではＣＱが空であるか否かが判断される。ＣＱが空ではないと判断される場合、プロセス９００はブロック９４５に進み、ＣＱ．ｔａｉｌを退去させる。そうでない場合、プロセス９００はブロック９５０に進み、ブロック９５０ではＩ．ｓｃｏｒｅがＣａＱ．ｔａｉｌ．ｓｃｏｒｅより大きいかどうかが判断される。Ｉ．ｓｃｏｒｅがＣａＱ．ｔａｉｌ．ｓｃｏｒｅより大きいと判断される場合、プロセス９００はブロック９５１に進み、ＣａＱ．ｔａｉｌを退去させる。そうでない場合、プロセス９００は、ブロック９５２に進み、Ｉを破棄する。
【００４４】
図１０は、一実施形態による、２段階分散型計算メモイング・キャッシュ・プロセスのための例としてのコーディング１０００を示す。コーディング１０００は、ｇｅｔＬｉｎｋ、ｐｕｔＭｅｍＣａｃｈｅ、ｐｕｔＤｉｓｋＣａｃｈｅ、ｔｏＥｖｉｃｔＭｅｍ、およびｔｏＥｖｉｃｔＤｉｓｋについての例としてのコーディングを含む。特に、ｇｅｔＬｉｎｋは、メモリ計算キャッシュから現在の規則のリンクを取り出し、結果が返されない場合、ディスク計算キャッシュからリンクを取り出す。結果が返されない場合、ｇｅｔＬｉｎｋは、次いで、現在の規則についてのリンクを計算し、そのリンクをメモリ・キャッシュに保存する。ｐｕｔＭｅｍｏｒｙＣａｃｈｅ関数がいくつかの他のリンクを返す場合、それは、メモリ・キャッシュから退去される。関数ｇｅｔＬｉｎｋは、次いで、メモリ・キャッシュから退去されたリンクを戻し、それをディスク・キャッシュに記憶する。
【００４５】
図１１は、一実施形態による、分散型計算メモイング・キャッシュを用いて冗長計算を除去することによって、大規模エンティティ解決の能動学習を最適化するプロセス１１００のブロック図を示す。一実施形態では、ブロック１１１０において、プロセス１１００は、プロセッサ（例えば、図１〜６のうちのいずれか１つからのプロセッサ・デバイス）によって、分散型計算メモイング・キャッシュを用いて冗長計算を除去して大規模エンティティ解決の能動学習を実行する。一実施形態では、ブロック１１２０において、プロセス１１００は、大規模エンティティ解決の能動学習の中間結果についてリンク特徴ベクトル・テーブルを決定する。ブロック１１３０において、プロセス１１００は、２段階キャッシュ階層によってリンク特徴ベクトル・テーブルを管理する。一実施形態では、２段階キャッシュ階層は、分散型メモリ・キャッシュおよび分散型ディスク・キャッシュを含む。
【００４６】
一実施形態では、プロセス１１００において、リンク特徴ベクトル・テーブルを決定することが、全てのブロッキング関数の集合を用いてリンク特徴ベクトル・テーブルを事前計算すること、または照合関数が（例えばユーザによって）変化するとリンク特徴ベクトル・テーブルを動的に計算することのうちの１つを含み、分散型メモリ・キャッシュは、頻度およびストレージ使用量に基づいてリンク特徴ベクトル・テーブルを管理する。分散型ディスク・キャッシュは、頻度、ストレージ使用量、処理帯域幅、およびカバレッジに基づいてリンク特徴ベクトル・テーブルを管理する。
【００４７】
一実施形態では、プロセス１１００について、リンク特徴ベクトル・テーブルを事前計算することが、分散型メモリ・キャッシュのメモリ・キャッシュに移入することと、メモリ・キャッシュが一杯であるとの判断に応じて分散型ディスク・キャッシュの少なくとも１つのディスク・キャッシュ内にリンク特徴ベクトル・テーブルをキャッシュすることと、を含む。
【００４８】
一実施形態では、プロセス１１００は、照合関数が変化した、およびリンク特徴ベクトルがもはや有効でないことの判断に応じて、２段階キャッシュ階層のキャッシュを更新することをさらに含み得る。プロセス１１００において、リンクのインクリメント計算が、最近包含規則がキャッシュされるとの判断に応じて有効にされて、冗長計算を回避する。
【００４９】
一実施形態では、プロセス１１００は、中間結果を取得するために２段階キャッシュ階層のキャッシュを類似度スコアによりソートすることをさらに含み得る。プロセス１１００は、中間結果の上位部分または下位部分を検査して、最も類似するペアまたは最も類似しないペアを返すことをさらに含み得る。
【００５０】
当業者によって理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化されてもよい。したがって、本発明の態様は、完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書で「回路」、「モジュール」、もしくは「システム」と全て概して呼ばれ得るソフトウェアおよびハードウェア態様を組み合わせる実施形態の形態を取ってもよい。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現化された１つまたは複数のコンピュータ可読媒体において具現化されるコンピュータ・プログラム製品の形態を取ってもよい。
【００５１】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、または半導体のシステム、装置、もしくはデバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、１つまたは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述したものの任意の適当な組み合わせを含む。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、または関連して使用するプログラムを含み、または記憶し得る任意の有形媒体であってもよい。
【００５２】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、そこに具現化されたコンピュータ可読プログラム・コードを有する伝搬データ信号を含んでもよい。そのような伝搬信号は、電磁気、光学、またはそれらの任意の適当な組み合わせを含むが、これらに限定されない、多様な形態のいずれかを取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではない、かつ命令実行システム、装置、もしくはデバイスによって、または関連して使用するプログラムを通信し、伝搬し、または移送することが可能な、任意のコンピュータ可読媒体であってもよい。
【００５３】
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線配線、光ファイバ・ケーブル、ＲＦなどを含むがこれらに限定されない任意の適当な媒体、または前述したものの任意の適当な組み合わせを用いて送信されてもよい。
【００５４】
本発明の態様のための動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで書かれてもよい。プログラム・コードは、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的におよびリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）外部コンピュータに対して行われてもよい。
【００５５】
本発明の態様は、発明の実施形態による、方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、以下で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施され得ると理解されるものとする。コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施する手段を生成するように、これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。
【００５６】
コンピュータ可読媒体に記憶される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施する命令を含む製品を製造するように、これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶され、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示することが可能なものであってもよい。
【００５７】
コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施するためのプロセスを提供するように、コンピュータ・プログラム命令は、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００５８】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的な実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【００５９】
特許請求の範囲における単数形の要素への参照は、明示的にそのように述べられない限り、「１つかつただ１つ」ではなく「１つまたは複数」を意味するように意図される。当業者に現在知られている、または後で知られることとなる上述の例示的実施形態の要素の全ての構造的および機能的均等物が、本特許請求の範囲によって包含されるように意図される。要素が、「ｍｅａｎｓ  ｆｏｒ」または「ｓｔｅｐ  ｆｏｒ」という語句を用いて明示的に列挙されない限り、本明細書におけるいかなる特許請求の要素も、米国特許法第１１２条第６パラグラフの規定により解釈されるべきではない。
【００６０】
本明細書で使用される専門用語は、特定の実施形態のみを説明する目的のためであり、発明を限定するように意図されない。本明細書で使用される、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が特段明示していない限り、複数形も同様に含むように意図される。「comprises（備える）」または「comprising（備えている）」という用語、あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組み合わせの存在を示しているが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組み合わせの存在または追加を排除するものではないと、さらに理解されるものとする。
【００６１】
下記の特許請求の範囲における全てのミーンズ・プラス・ファンクション要素またはステップ・プラス・ファンクション要素の対応する構造、物質、動作、および均等物は、他の請求された要素と組み合わせて機能を実行するための任意の構造、物質、または動作を具体的に請求されるものとして含むように意図される。本発明の説明は、例示および説明の目的で提示されているが、網羅的であるように、または開示された形態に発明を限定されるように意図されない。発明の範囲および思想から逸脱することなく、多くの変更および変形が当業者には明らかであろう。実施形態は、発明の原理および実際の用途を最もよく説明するため、ならびに、考えられる特定の使用に適した多様な変更を伴う多様な実施形態についての発明を他の当業者が理解可能にするために、選択され説明された。
【図１】
2021531562.tif 000006
【図２】
2021531562.tif 000007
【図３】
2021531562.tif 000008
【図４】
2021531562.tif 000009
【図５】
2021531562.tif 000010
【図６】
2021531562.tif 000011
【図７】
2021531562.tif 000012
【図８】
2021531562.tif 000013
【図９】
2021531562.tif 000014
【図１０】
2021531562.tif 000015
【図１１】
2021531562.tif 000016
【手続補正書】
【提出日】令和3年5月19日(2021.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサが、分散型計算メモイング・キャッシュを用いて冗長計算を除去する大規模エンティティ解決の能動学習を実行することと、
前記大規模エンティティ解決の前記能動学習の中間結果についてリンク特徴ベクトル・テーブルを決定することと、
２段階キャッシュ階層によって前記リンク特徴ベクトル・テーブルを管理することと、
を含む、方法。
【請求項２】
前記リンク特徴ベクトル・テーブルを決定することが、全てのブロッキング関数の集合を用いて前記リンク特徴ベクトル・テーブルを事前計算すること、または照合関数が変化すると前記リンク特徴ベクトル・テーブルを動的に計算することのうちの１つを含み、前記２段階キャッシュ階層が、分散型メモリ・キャッシュおよび分散型ディスク・キャッシュを含む、請求項１に記載の方法。
【請求項３】
前記分散型メモリ・キャッシュが、頻度およびストレージ使用量に基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項２に記載の方法。
【請求項４】
前記分散型ディスク・キャッシュが、頻度、ストレージ使用量、処理帯域幅、およびカバレッジに基づいて前記リンク特徴ベクトル・テーブルを管理する、請求項２に記載の方法。
【請求項５】
前記リンク特徴ベクトル・テーブルを事前計算することが、前記分散型メモリ・キャッシュのメモリ・キャッシュに移入することと、前記メモリ・キャッシュが一杯であるとの判断に応じて前記分散型ディスク・キャッシュの少なくとも１つのディスク・キャッシュ内に前記リンク特徴ベクトル・テーブルをキャッシュすることと、を含む、請求項２に記載の方法。
【請求項６】
前記照合関数が変化した、および前記リンク特徴ベクトルがもはや有効でない、との判断に応じて、前記２段階キャッシュ階層のキャッシュを更新することをさらに含む、請求項２に記載の方法。
【請求項７】
リンクのインクリメント計算が、最近包含規則がキャッシュされるとの判断に応じて有効にされて、冗長計算を回避する、請求項１に記載の方法。
【請求項８】
前記中間結果を取得するために前記２段階キャッシュ階層のキャッシュを類似度スコアによってソートすることをさらに含む、請求項１に記載の方法。
【請求項９】
前記中間結果の上位部分または下位部分を検査して、最も類似するペアまたは最も類似しないペアを返すことをさらに含む、請求項８に記載の方法。
【請求項１０】
請求項１から請求項９のいずれか一項に記載の方法をプロセッサに実行させる、コンピュータ・プログラム。
【請求項１１】
請求項１から請求項９のいずれか一項に記載の方法をプロセッサに実行させるコンピュータ・プログラムを記憶した、コンピュータ可読記憶媒体。
【請求項１２】
命令を記憶するように構成されるメモリと、
プロセッサと、
を備え、前記プロセッサが、前記命令を実行することにより請求項１から請求項９のいずれか一項に記載の方法を実行するように構成される、装置。
【国際調査報告】
2021531562.tif 000017
2021531562.tif 000018
2021531562.tif 000019