(57)【特許請求の範囲】
【請求項１】
サーバに格納されたエンティティ・リポジトリ内のエンティティの固定セットを識別するステップであって、エンティティの各識別された固定セットは、前記エンティティ・リポジトリ内に格納されたエンティティのサブセットを含み、ユーザ要求と独立に計算され、モバイル・デバイスに関連付けられたコンテキストに基づいて前記モバイル・デバイスのユーザに関連するとして識別される、ステップであって、前記コンテキストは、前記モバイル・デバイスで生成されたコンテンツから収集されたメタデータおよび情報を含む信号であり、前記識別された固定セットは、セット予測モデルに前記信号を提供することによって、前記セット予測モデルによって提供された１つまたは複数の予測されたエンティティの固定セットである、ステップと、
前記識別された固定セットを関連性により順位付けするステップであって、前記関連性は、前記セット予測モデルによって提供される確率スコアに基づく、ステップと、
前記順位および前記ユーザに適用可能なセット利用パラメータを用いて、前記識別された固定セットから選択されたセットを決定するステップと、
前記選択されたセットを用いて前記モバイル・デバイスのメモリに格納された個別化されたエンティティ・リポジトリを更新するステップであって、前記個別化されたエンティティ・リポジトリは前記サーバで格納された前記エンティティ・リポジトリからのエンティティの複数の固定セットを含み、各固定セットは各識別子を有し、前記セット内の前記エンティティに関する情報を含む、ステップと、
を含む、方法。
【請求項２】
前記個別化されたエンティティ・リポジトリを更新するステップは、前記選択されたセットの第１の固定セットは前記個別化されたエンティティ・リポジトリに存在しないと判定したことに応答して行われる、請求項１に記載の方法。
【請求項３】
前記個別化されたエンティティ・リポジトリを更新するステップは、選択されたセットではない前記個別化されたエンティティ・リポジトリ内のセットを除去するステップを含む、請求項１または２に記載の方法。
【請求項４】
前記セット利用パラメータは固定セットの量を含む、請求項１、２、または３に記載の方法。
【請求項５】
前記セット利用パラメータは前記個別化されたエンティティ・リポジトリに割り当てられたメモリの量を含み、前記量は前記ユーザにより設定される、請求項１乃至４の何れか１項に記載の方法。
【請求項６】
前記個別化されたエンティティ・リポジトリに格納された前記複数の固定セットは位置セットを含み、位置セット内のエンティティは同一の地理的領域内に配置される、請求項１乃至５の何れか１項に記載の方法。
【請求項７】
前記個別化されたエンティティ・リポジトリに格納された前記複数の固定セットはトピック・セットを含み、トピック・セット内のエンティティは、エンティティ特性に基づいてクラスタ化されたエンティティである、請求項１乃至６の何れか１項に記載の方法。
【請求項８】
第１のトピック・セットの前記順位は、ディスプレイ・デバイスに表示するために生成されたコンテンツに対応するエンティティに基づいて、予測モデルにより割り当てられた順位である、請求項７に記載の方法。
【請求項９】
前記個別化されたエンティティ・リポジトリを更新するステップは、前記固定セットから削除されるべきエンティティのリストおよび前記固定セットに追加されるべきエンティティのリストを使用することによって、前記個別化されたエンティティ・リポジトリを更新するステップを含む、請求項１乃至８の何れか１項に記載の方法。
【請求項１０】
前記個別化されたエンティティ・リポジトリ内の、ディスプレイ・デバイスに表示するために生成されたコンテンツにおいて使用されるエンティティを識別するステップをさらに含む、請求項１乃至９の何れか１項に記載の方法。
【請求項１１】
前記複数のセットの各々はバージョン識別子を有し、前記バージョン識別子は、特定のセットへの更新により前記個別化されたエンティティ・リポジトリのスキーマが変更されたときに変化する、請求項１乃至１０の何れか１項に記載の方法。
【請求項１２】
第１の固定セットを前記選択されたセットから識別する情報および前記ユーザが前記第１の固定セットのインストールを受け入れることを可能とするように構成されたコントロールの表示を開始するステップと、
前記ユーザがインストールを受け入れたとき、前記第１の固定セットをダウンロードし、前記個別化されたエンティティ・リポジトリに追加するステップと、
をさらに含む、請求項１乃至１１の何れか１項に記載の方法。
【請求項１３】
前記コンテキストに基づいて前記ユーザに関連する前記エンティティ・リポジトリ内のエンティティの固定セットを識別するステップは、
前記モバイル・デバイスの位置を決定して、前記位置を用いて前記ユーザに関連する位置ベースの固定セットを決定するステップと、
セット予測モデルを用いて、前記ユーザに関連するトピックベースのセットを識別するステップと、
前記モバイル・デバイスにインストールされた少なくとも１つのアプリケーションにより識別されたセットを決定するステップと、
を含む、請求項１乃至１２の何れか１項に記載の方法。
【請求項１４】
前記コンテキストに基づいて前記ユーザに関連する前記エンティティ・リポジトリ内のエンティティの固定セットを識別するステップは、
前記モバイル・デバイスで以前に参照されたコンテンツを決定するステップと、
以前に参照された前記コンテンツに対応する少なくとも１つのトピックベースのセットを予測するように構成されたセット予測モデルに、以前に参照された前記コンテンツを提供するステップと、
を含む、請求項１乃至１３の何れか１項に記載の方法。
【請求項１５】
前記コンテキストに基づいて前記ユーザに関連する前記エンティティ・リポジトリ内のエンティティの固定セットを識別するステップは、
前記モバイル・デバイスで行われた最近の検索を決定するステップと、
前記最近の検索から得られたコンテンツに対応する少なくとも１つのトピックベースのセットを予測するように構成されたセット予測モデルに、前記最近の検索から得られたコンテンツを提供するステップと、
を含む、請求項１乃至１４の何れか１項に記載の方法。
【請求項１６】
前記コンテキストに基づいて前記ユーザに関連する前記エンティティ・リポジトリ内のエンティティの固定セットを識別するステップは、
前記モバイル・デバイスの前記ユーザにより実施されたアクティビティを決定するステップと、
前記アクティビティに基づいて、エンティティの固定セットを予測するステップと、
を含む、請求項１乃至１５の何れか１項に記載の方法。
【請求項１７】
ディスプレイ・デバイスと、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されたとき、前記モバイル・デバイスに請求項１乃至１６のうち何れか１項に記載の方法を実施させる命令を格納する、メモリと、
を備える、モバイル・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の記載
本願は、発明の名称を「個別化されたエンティティ・リポジトリ」とした２０１５年１２月８日出願の米国非仮特許出願１４／９６２、４１５号の継続出願でありそれに対する優先権を主張し、当該米国非仮特許出願は発明の名称を「個別化されたエンティティ・リポジトリ」とした２０１５年１０月２２日出願の米国仮特許出願６２／２４５、２４１号に対する優先権を主張し、本願はそれらの両方を全体として参照により本明細書に組み込む。
【背景技術】
【０００２】
スマートフォン、ウェラブルデバイス、タブレット、ラップトップ等のようなモバイル・デバイスの利用が増大している。ユーザにより参照されたコンテンツおよびユーザにより取られたアクションを理解することにより、当該モバイル・デバイスは、例えば、個別化された予測および支援を当該ユーザに提供することにより、かなり良好なユーザ・エクスペリエンスを構築することができる。当該コンテンツおよびアクションを理解することの一部には、当該デバイススクリーンの当該コンテンツで認識されたエンティティを識別し分類することが含まれる。当該エンティティは知識ベースまたはビジョン・モデルのようなエンティティ・リポジトリに存在してもよく、当該エンティティ・リポジトリはエンティティに関する事実と情報を格納する。大規模なパブリックエンティティ・リポジトリが、何百万ものかかるエンティティを含んでもよい。大抵のコンピューティング・デバイス、スマートフォンおよびタブレットのような特にモバイルコンピューティング・デバイスは記憶が制限されており、サーバとの接続を介して当該エンティティ・リポジトリを使用する。
【発明の概要】
【課題を解決するための手段】
【０００３】
実装は、エンティティ・リポジトリを幾つかの固定セットまたはスライスに分割する。セットは位置ベース、トピックベース、アクションベース、または機能的であってもよい。当該システムは、当該セットをサーバで決定してもよく、これらのセットのみをその特定のクライアントに関連するクライアント・デバイスに提供する。当該クライアントにダウンロードされた当該セットは、当該サーバへの接続なしにアクセスされうる個別化されたエンティティ・リポジトリである。当該クライアント・デバイスが、セット識別エンジンを含んでもよい。当該セット識別エンジンが、幾つかのテキスト、画像、または他の特徴が与えられたときに１つまたは複数のセットを予測する予測モデルを含んでもよい。当該予測モデルを、どのセットが当該ユーザに最も有益であるかを判定するために使用してもよい。当該セット識別エンジンはまた、当該ユーザの位置を追跡して、どの位置セットが最も関連しうるかを判定してもよい。
【０００４】
セットを、例えば、当該ユーザの位置、ユーザの検索履歴、当該ユーザが当該デバイスで視聴してきたコンテンツ、日時、他のデバイスからの信号等に基づいて、当該クライアント・デバイスの当該ユーザに対して順位付けてもよい。したがって、例えば、ユーザがハワイへの旅行を調べ始めた場合、当該システムは、ハワイに関するエンティティを有するセットが当該ユーザに特に関連すると判定してもよい。ユーザがニューヨークからロサンゼルスに飛行機で移動する場合、当該システムはロサンゼルスに対する位置セットが関連すると判定してもよい。当該クライアント・デバイスを使用してもよい。当該順位を使用して、どのセットを抽出すべきかおよびどれをメモリから削除すべきかを判定する。例えば、以前にダウンロードされたセットがもはや関連しない場合、当該システムはそのセットを削除して、別のセットのために空きを作ってもよい。当該システムは、セット利用パラメータを使用して、任意の時点で当該個別化されたエンティティ・リポジトリにどのセットを含めるべきかを判定してもよい。幾つかの実装では、当該ユーザは当該セット利用パラメータを確立し制御してもよい。セットを更新するステップが、当該クライアント・デバイスに転送されるデータを削減するための当該セットに対するデルタを決定するステップを含んでもよい。幾つかの実装では、当該セットが、例えば、その結果スキーマ変更が当該モデルを用いて当該アプリケーションを壊さないように、バージョン管理されてもよい。
【０００５】
当該開示の特定の態様によれば、モバイル・デバイスはディスプレイ・デバイス、メモリに格納された個別化されたエンティティ・リポジトリを含み、当該個別化されたエンティティ・リポジトリは、サーバに格納されたエンティティ・リポジトリからのエンティティの複数の固定セットを含み、各固定セットは各識別子を有し、当該セット内の当該エンティティに関する情報、少なくとも１つのプロセッサ、および当該少なくとも１つのプロセッサにより実行されたとき、当該モバイル・デバイスに動作を実施させる命令を格納したメモリを含む。当該動作は、当該モバイル・デバイスのユーザに関連する当該エンティティ・リポジトリの固定セットを、当該モバイル・デバイスに関連付けられたコンテキストに基づいて識別するステップと、関連性により当該固定セットを順位づけるステップと、当該識別された固定セットから選択されたセットを当該順位および当該ユーザに適用可能なセット利用パラメータを用いて決定するステップと、当該選択されたセットを用いて当該個別化されたエンティティ・リポジトリを更新するステップとを含む。
【０００６】
当該開示の特定の態様によれば、方法は、モバイル・デバイスのディスプレイ上でコンテンツを表示するように構成されたスクリーン・キャプチャされた画像を受信するステップと、テキスト認識を当該画像で実施し、当該テキストをセット予測モデルに提供することで当該画像内のテキストを決定するステップであって、当該セット予測モデルは、エンティティの１つまたは複数の固定セットを予測するようにトレーニングされる、ステップと、エンティティの当該予測された固定セットのエンティティの少なくとも１つの固定セットを、当該モバイル・デバイス上のメモリ内の個別化されたエンティティ・リポジトリに格納するステップとを含む。
【０００７】
当該開示の特定の態様によれば、方法が、エンティティの複数の固定セットをエンティティ・リポジトリから生成するステップを含んでもよい。当該固定セットは位置ベースのセットであって、各位置ベースのセットは、セル内部の位置を有する当該エンティティ・リポジトリからのエンティティを含み、当該セルは当該セットに関連付けられる、位置ベースのセット、およびトピックベースのセットであって、当該トピックベースのセットの少なくとも幾つかは、埋込み類似性を介して互いに関連する当該エンティティ・リポジトリからのエンティティを含む、トピックベースのセットとを含む。当該方法はまた、エンティティの当該固定セットのサブセットをクライアント・デバイスに提供するステップであって、当該クライアント・デバイスは、当該クライアント・デバイスの位置および当該クライアント・デバイスで表示するために生成されたコンテンツで識別される認識されたアイテムに基づいて当該サブセットを要求する、ステップを含んでもよい。
【０００８】
一般的な態様では、コンピュータ可読記憶デバイスで具現化されたコンピュータプログラム製品は、基板内に形成された少なくとも１つのプロセッサにより実行されたとき、コンピューティング・デバイスに当該開示された方法、動作、またはプロセスの何れかを実施させる命令を含む。別の一般的な態様は、実質的に、図面のうち少なくとも１つと関連して図示および／または説明され、添付の特許請求の範囲でより十分に説明されるように、エンティティ・リポジトリ内のエンティティの固定セットを生成するステップおよび当該固定セットの幾つかをパーソナルコンピューティング・デバイスにパーソナル・エンティティ・リポジトリを提供するステップとのためのシステムおよび／または方法を含む。
【０００９】
本明細書で説明した主題の実装の１つまたは複数を、以下の利点の１つまたは複数を実現するために、実装することができる。１例として、エンティティの固定セットを生成するステップにより、当該システムは、パーソナルまたはカスタムエンティティ・リポジトリをスケーラブルな方法で提供することができる。当該カスタマイズされたエンティティ・リポジトリは、オンデバイステキスト分析および画像分析を支援して、ネットワークへの接続なしにユーザ支援能力をサポートすることができる。当該ユーザは当該パーソナル・エンティティ・リポジトリに割かれたリソースの量を制御してもよく、当該システムは、どのセットが最も良く当該割り当てられたリソースを利用するかを自動的に判定してもよい。別の例として、当該システムは、どのセットがユーザに最も関連するかを予測してもよい。当該予測は、当該ユーザに関連付けられたまたは当該デバイスに既知な他のコンピューティング・デバイスからの位置、日時、信号、当該コンピューティング・デバイスでの最近のアクティビティ等のような、当該ユーザおよび／または当該パーソナルコンピューティング・デバイスに固有な幾つかの因子に基づいてもよい。別の例として、実装が、当該セット内の当該情報を再構成する変更が当該セットを使用するアプリケーションを壊さないように、当該セットのバージョン管理をサポートしてもよい。
【００１０】
１つまたは複数の実装の詳細を添付図面および以下の説明で説明する。他の特徴は当該説明と図面から、および添付の特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【００１１】
【図１】開示された主題に従う例示的なシステムを示すブロック図である。
【図２】開示された主題に従う、個別化されたエンティティ・リポジトリに対するセット利用パラメータを指定するためのユーザ・インタフェースの例示的な表示を示す図である。
【図３】開示された実装に従う、どのセットがコンピューティング・デバイスのユーザに最も関連するかを判定するためのコンテキストを提供するコンテンツの例示的な表示を示す図である。
【図４】開示された実装に従う、個別化されたエンティティ・リポジトリに含めるための追加のセットを提案するためのユーザ・インタフェースの例示的な表示を示す図である。
【図５】開示された実装に従う、個別化されたエンティティ・リポジトリに含めるための追加のセットを提案するためのユーザ・インタフェースの別の表示の例を示す図である。
【図６】開示された実装に従う、エンティティの固定セットを生成し更新するための例示的なプロセスの流れ図である。
【図７】開示された実装に従うエンティティの固定セットを用いてパーソナル・エンティティ・リポジトリを構築するための例示的なプロセスの流れ図である。
【図８】開示された実装に従う、クライアント・デバイスのユーザに関連するエンティティの固定セットを識別するための例示的なプロセスの流れ図である。
【図９】開示された実装に従う、セット利用パラメータに基づいて、エンティティの固定セットをクライアント・デバイスのユーザに関連するエンティティの固定セットから選択するための１つの例示的なプロセスの流れ図である。
【図１０】説明された技術を実装するために使用することができるコンピュータ・デバイスの例を示す図である。
【図１１】説明された技術を実装するために使用できる分散コンピュータ・デバイスの例を示す図である。
【発明を実施するための形態】
【００１２】
様々な図面における同様な参照記号は同様な要素を示す。
【００１３】
図１は、例示的な実装に従うパーソナル・エンティティ・リポジトリシステムのブロック図である。システム１００を使用して、事前に計算されたエンティティまたはエンティティの固定セットの選択からの個別化されたエンティティ・リポジトリを構築してもよい。当該セットは、それらがセットに対する任意の特定の要求の前に計算されるか、または換言すれば、セットに対する要求に応答して生成される意味で固定される。システム１００はどのセットが特定の時点で最も有用であるかを決定しもよく、当該個別化されたエンティティ・リポジトリを更新して、当該個別化されたリポジトリ内のエンティティが当該ユーザに関連することを保証してもよい。当該個別化されたエンティティ・リポジトリを更新するステップは、以前より現時点で当該ユーザにあまり関連しないセットを削除し、関連するようになった新たなセットを追加するステップを含む。当該個別化されたエンティティ・リポジトリを使用して、コンピューティング・デバイスに表示するために生成されたコンテンツ内のエンティティを決定し、当該コンピューティング・デバイス上のユーザ・エクスペリエンスを個別化してもよい。当該ユーザ・エクスペリエンスを個別化するステップはアクション、トピック、単語、またはフレーズ等を予測するステップを含むことができる。図１におけるシステム１００がクライアント・サーバ・システムとして示され、幾つかのデータ処理またはデータ記憶はサーバ１１０で発生し、他のデータ処理はクライアント・デバイス１５０で発生する。しかし、他の構成およびアプリケーションを使用してもよく、実装は図示した厳密な構成に限定されない。
【００１４】
個別化されたエンティティ・リポジトリシステム１００がサーバ１１０を含んでもよい。サーバ１１０は、幾つかの異なるデバイス、例えば、標準サーバ、１群のかかるサーバ、またはラック・サーバシステムの形態をとるコンピューティング・デバイスまたはデバイスであってもよい。例えば、サーバ１１０を複数のコンピューティング・デバイスにわたって分散方式で実装してもよい。さらに、サーバ１１０をパーソナル・コンピュータ、例えば、ラップトップコンピュータで実装してもよい。サーバ１１０は、図９に示すようにコンピュータ・デバイス９００、または図１１に示すようにコンピュータ・デバイス１１００の例であってもよい。サーバ１１０が、１つまたは複数の機械実行可能命令またはソフトウェア、ファームウェア、またはそれらの組合せを実行するように構成された基板に形成された１つまたは複数のプロセッサを含んでもよい。当該プロセッサは半導体ベースであることができる。即ち、当該プロセッサはデジタル論理を実施できる半導体材料を含むことができる。
【００１５】
サーバ１１０はエンティティ・リポジトリ１３０を格納してもよく、または、それへのアクセスを有してもよい。エンティティ・リポジトリ１３０はエンティティに関する情報を格納してもよい。エンティティは、場所、アイテム、アイデア、トピック、単語、フレーズ、抽象概念、具体的な要素、他の適切なもの、またはこれらの任意の組合せであってもよい。幾つかの実装では、エンティティ・リポジトリ１３０は知識ベースであってもよい。知識ベースはエンティティに関する情報を格納する。幾つかの実装では、知識ベースはエンティティ間の関係の形でエンティティに関する情報を格納する。例えば、知識ベース内のエンティティは、関係を表すラベル付けされたエッジにより互いに関連してもよい。当該知識ベースはまた、エンティティの属性を格納してもよい。幾つかの知識ベースは大きく、ときどき何百万ものエンティティを含む。多数のエンティティおよび有限数の関係を有する知識ベースは何十億もの接続を有してもよい。
【００１６】
エンティティ・リポジトリ１３０はまた、画像内のエンティティを識別するために使用できる画像認識エンティティを含んでもよい。例えば、エンティティ・リポジトリ１３０が、当該エンティティの既知の画像および／または当該画像の特性を表し、（例えば、画像類似性技術を用いて）画像認識プロセスにおいて使用して画像内のエンティティを識別するエンティティを含んでもよい。例えば、当該特性は、画像認識モデル（例えば、機械学習アルゴリズム）に提供される特徴であってもよい。エンティティ・リポジトリ１３０は、単一の知識ベース、異なる知識ベース、画像認識エンティティの組合せ、および／または知識ベースおよび画像情報の組合せを表してもよい。幾つかの実装では、エンティティ・リポジトリ１３０をサーバ１１０にアクセス可能な外部記憶デバイスに格納してもよい。幾つかの実装では、エンティティ・リポジトリ１３０は複数の記憶デバイスおよび／または複数のコンピューティング・デバイス、例えば、複数のサーバにわたって分散してもよい。当該エンティティおよび知識ベース内の関係は例えば、インデックスを介して検索可能であってもよい。例えば、当該インデックスが、エンティティがそれにより参照されているテキストを含んでもよい。したがって、当該知識ベースへの参照は等価なテキストを用いてエンティティを発見するのを促進するインデックスを含むと理解されうる。
【００１７】
サーバ１１０はまた、１つまたは複数のコンピュータ・メモリを含むことができる。当該メモリ、例えば、メイン・メモリは、１つまたは複数のデータを、一時的に、永続的に、準永続的に、またはそれらの組合せの何れかで格納するように構成されてもよい。当該メモリが、当該１つまたは複数のプロセッサにより読み出しかつ／または実行できるフォーマットで情報を格納する任意のタイプの記憶デバイスを含んでもよい。当該メモリが、揮発性メモリ、不揮発性メモリ、またはそれらの組合せを含んでもよく、当該１つまたは複数のプロセッサにより実行されたとき、特定の動作を実施するモジュールまたはエンジンを格納してもよい。幾つかの実装では、当該モジュールを外部記憶デバイスに格納し、サーバ１１０のメモリにロードしてもよい。幾つかの実装では、当該モジュールが、エンティティ・セット生成エンジン１２０を含んでもよい。エンティティ・セット生成エンジン１２０は、エンティティ・リポジトリ１３０内のエンティティを固定されたエンティティ・セット１３２に分割してもよい。当該固定されたエンティティ・セット１３２内の各セットは、幾つかの基準により関係付けられるエンティティを含むエンティティ・リポジトリ１３０のスライスと考えてもよい。幾つかの実装では、スライスは、エンティティに関するメタデータ（例えば、名前、説明、標準的な画像）、他のエンティティとの関係、および／または、共通名、エイリアス、短縮系、ニックネーム、および他の信号のようなテキスト内のエンティティを検出するために使用される情報を含んでもよい。当該固定されたエンティティ・セット１３２内の各エンティティの固定セットは、特定のセットがアプリケーションまたはクライアント・デバイスにより追跡、識別、および要求されうるように、識別子を有してもよい。
【００１８】
幾つかの実装では、エンティティ・セット生成エンジン１２０は、位置ベースのセット、トピックベースのセット、または機能セットのような様々なタイプのセットを生成してもよい。位置ベースのセットが、特定の地理的セルに関連付けられたエンティティを含んでもよい。地理的セルは、境界、例えば、２つの緯度の線および２つの経度の線により画される地球の表面の領域である。かかるセルは、グーグル・マップのような地図アプリケーションに対して一般的である。位置ベースのエンティティの固定セットが、当該セル内に配置されることが知られている任意のエンティティを含んでもよい。エンティティ・リポジトリ１３０が、エンティティに対する位置を指定する属性を含んでもよく、または、当該位置を識別するメタデータを含んでもよい。例えば、エンティティ・リポジトリ１３０内のレストランエンティティは特定のジオセルまたはセルまたは緯度／経度座標を指定する位置属性を有してもよい。ジオセル、即ち、地図アプリケーションで使用されるセルは一般に同様なサイズであり、位置ベースのエンティティ・セットは１つのジオセルに対応する必要はなく、かわりに、当該領域内に配置された指定された数のエンティティを有する当該領域に基づいてもよい。したがって、例えば、ニューヨーク市における位置ベースの１組のエンティティに対するセルは、ニューヨーク市の人口密度が高いので非常に小さく（例えば、１０平方マイル）てもよく、西部ワイオミングにおける位置ベースの１組のエンティティに対するセルは、ニューヨーク市のセルと同数のエンティティを有するが何百万平方マイルであってもよい。したがって、例えば、エンティティ・セット生成エンジン１２０は、マージされたセルに関連付けられたエンティティの量がは最小量に到達し、エンティティの固定セットに対する位置ベースのセルを形成するまで、隣接するジオセルをマージしてもよい。
【００１９】
エンティティ・セット生成エンジン１２０はまた、トピックベースのエンティティの固定セットを生成してもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０は、どれくらいエンティティが関連するかに基づいて、従来のクラスタ化技術を用いて当該エンティティをクラスタ化することによって、トピックベースのセットを生成してもよい。例えば、当該クラスタ化が、当該エンティティの特性、例えば、検索レコード上でまたは検索エンジンに対してインデックス化されたドキュメントからのテキストのようなテキスト上でトレーニングされた埋込みに基づいてもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０が、シード・エンティティを与えられてもよく、当該シード・エンティティに基づいてクラスタを形成してもよい。幾つかの実装では、１つまたは複数のトピックベースのセットは当該エンティティ・リポジトリで識別される集合に基づいてもよい。例えば、エンティティ・リポジトリ１３０内のエンティティが、当該エンティティが属する１つまたは複数の集合の指示を含んでもよいか、または、エンティティ・リポジトリ１３０が、集合定義、または換言すれば当該集合に含めるための要件を含んでもよく、エンティティを当該要件に対して評価して、当該集合内のメンバを決定してもよい。エンティティ・セット生成エンジン１２０は当該集合内のエンティティメンバを使用して、当該トピックベースのセットの１つまたは複数を生成してもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０はトピック関連のスライスごとに埋込みを計算してもよい。当該埋込みを使用して、例えば、セット識別エンジンにより生成されたクエリ埋込みとの類似性を計算し、どのセットが当該クエリ埋込みに最も類似するかを判定してもよい。例えば、当該埋込みがクラスタ中心を表してもよい。
【００２０】
エンティティ・セット生成エンジン１２０はまた、エンティティの機能セットを生成してもよい。機能セットが、最も人気があると見做されるエンティティ、例えば、検索クエリ内の出現に基づく、最も頻繁に検索されたまたはアクセスされたエンティティを含んでもよい。機能セットはまた、能力、例えば、１つの言語から別の言語に変換するための能力に基づいてもよい。別の例として、機能セットが、特定のアプリケーションにより使用または要求されるとき遭遇する可能性のあるエンティティを含んでもよい。勿論、これらの機能セットは例として提供されるにすぎず、機能的エンティティ・セットが、特定の目的、特性、または関数に共通なエンティティの任意の集合を含んでもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０は、上の組合せであるエンティティの固定されたセットを生成してもよい。例えば、エンティティ・セット生成エンジン１２０は、カリフォルニアのサンノゼにおけるレストランに対するエンティティの固定セットまたはフランスのパリにおける芸術鑑賞のための別のセットを生成してもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０が、ユーザがエンティティの１つまたは複数の固定セットをキュレートできるようにするユーザ・インタフェースを含んでもよい。
【００２１】
エンティティ・セット生成エンジン１２０はまた、エンティティの固定セット１３２を定期的に更新してもよい。例えば、エンティティがエンティティ・リポジトリ１３０内で追加、削除、または更新されると、エンティティ・セット生成エンジン１２０は当該固定セットに対する変更を決定してもよい。幾つかの実装では、エンティティ・セット生成エンジン１２０は、各セットに対するデルタ、例えば、当該固定セットから削除されるべきエンティティのリストおよび当該固定セットに追加されるべきエンティティのリストを決定してもよい。エンティティ・セット生成エンジン１２０は、プッシュまたはプルの何れかとして、当該デルタをクライアント・デバイス１５０に提供してもよい。当該デルタは、依然としてクライアント・デバイス１５０が最も現在のエンティティ・セットを有するのを可能としつつ、サーバ１１０およびクライアント・デバイス１５０の間で送信されるデータの量を削減する。これは特に、映画を表す１組のエンティティのような、特定の固定されたエンティティ・セットが頻繁に変化するときに有用である。幾つかの実装では、エンティティ・セット生成エンジン１２０はまた、スライスとも称される固定セットの各々をバージョン管理してもよい。例えば、エンティティ・セット生成エンジン１２０は当該スライスのデータ・フォーマットを変更してもよく、または、当該スキーマを破壊する別の方法で当該スライスを変更してもよい。当該スキーマが壊れているとき、当該スライスを使用するアプリケーションは、新たなスライスを使用するための対応する更新を必要としてもよい。したがって、エンティティ・セット生成エンジン１２０は、更新されていないアプリケーションが、故障することなく古いバージョンを使用し続けることができるように、当該固定セットをバージョン管理してもよい。幾つかの事例では、クライアント・デバイス１５０が、古いスキーマを使用するアプリケーションが更新されるまで、同一の固定されたスライス（例えば、特定の位置を表すスライス）の２つのバージョンを含んでもよい。
【００２２】
幾つかの実装では、エンティティ・セット生成エンジン１２０はまた、セット予測モデル１２２をトレーニングし維持してもよい。セット予測モデル１２２のようなセット予測モデルは、１組の特徴または信号が与えられたときエンティティの固定セットを予測できる、長短期メモリ（ＬＳＴＭ）ニューラルネットワーク、フィードフォワードニューラルネットワーク、サポート・ベクトル・マシン（ＳＶＭ）分類器等のような任意のタイプの機械学習アルゴリズムであってもよい。当該特徴が、デバイス位置、コンテンツ（例えば、ドキュメント、検索レコード等）内のテキストまたは画像、一般に様々なタスクに使用されるアプリケーション等を含んでもよい。機械学習アルゴリズムとして、当該セット予測モデルは２つのモード、トレーニング・モードおよび推論モードを有する。例えば、当該トレーニング・モードにおいて、セット予測モデル１２２は、ラベル付けされた検索レコード１３４およびラベル付けされたクロールされたドキュメント１３６を使用して、１組の信号が与えられた場合にエンティティの１つまたは複数の固定セットを固定されたエンティティ・セット１３２から予測してもよい。当該ラベルは自動的にまたは人間のエキスパートにより生成されてもよい。当該信号が、デバイス１５０のようなクライアント・デバイス上で生成されたコンテンツからまたは、検索レコード１３４のような検索レコードから、または、スクリーン・キャプチャ・インデックス１７２のようなユーザ固有レコードから取得されてもよい。トレーニング・モードにおいて、セット予測モデル１２２はまた、位置を信号（例えば、現在のジオセル位置、座標等）として取り込んで、当該所与の位置に対する１組のエンティティを予測してもよい。トレーニングの間に、当該モデルのパラメータは、トレーニングドキュメント内のテキストに割り当てられたラベルをより良く反映するように更新される。推論モードでは、セット予測モデル１２２は、当該信号を表す１組の特徴に応答して、１つまたは複数の固定されたエンティティ・セットを固定されたエンティティ・セット１３２から予測する。各予測されたセットは、提供された当該特徴が当該特定のエンティティの固定セットを予測する或るレベルの具体性を示す、関連付けられた信頼性スコアまたは確率スコアを有してもよい。幾つかの実装では、当該信頼性スコアは、セットのタイプに応じて異なりうる類似性測定値に基づいてもよい。例えば、位置ベースのセットに対する当該信頼性スコアは、指定された位置からの物理距離、例えば、コンピューティング・デバイスの現在の位置に基づいてもよい。トピックベースのセットに対する信頼性スコアは、クライアント・デバイスからの信号に基づいて生成された埋込みのような、クエリを有する埋込み距離に基づいてもよい。かかる信号は、スクリーンで最近見られたテキスト、外部デバイスの状態または近接性、最近の検索コンテンツ、表明されたユーザ関心、またはクライアント・デバイスでインストールされるかまたは実行されるアプリケーション、タイムスタンプ等を含むことができる。
【００２３】
いったんトレーニングされ、ついで更新を考慮するために定期的にトレーニングされると、エンティティ・セット生成エンジン１２０は、セット予測モデル１２２をクライアント・デバイス１５０に提供してもよい。クライアント・デバイス１５０は当該モデルをセット予測モデル１６４として格納してもよい。幾つかの実装では、クライアント・デバイス１５０は、さらにトレーニングを実施することでセット予測モデル１６４を個別化してもよい。当該トレーニングは、ユーザに関連付けられた検索レコードから、例えば、クライアント・デバイス１５０またはスクリーン・キャプチャ・インデックス１７２に格納された検索レコードからの情報を使用してもよい。したがってセット予測モデル１６４はセット予測モデル１２２のコピーまたはセット予測モデル１２２の個別化されたコピーであってもよい。
【００２４】
サーバ１１０が、検索レコード１３４およびクロールされたドキュメント１３６を含んでもよい。検索レコード１３４が、検索ログ、クエリから収集された集約されたデータ、またはクエリに基づく任意の他のデータを含んでもよい。幾つかの実装では、検索レコード１３４が、検索結果を生成する正常なプロセスにおいて検索エンジンにより生成されてもよい。幾つかの実装では、検索レコード１３４を、サーバ１１０にアクセス可能な異なるコンピューティング・デバイスに格納してもよい。幾つかの実装では、当該検索レコードを、複数のコンピューティング・デバイスにわたって分散してもよい。当該クロールされたドキュメント１３６は、例えば、既知のまたは後に開発されるウェブ・クローリング技術を用いて取得されたドキュメントであってもよい。幾つかの実装では、当該クロールされたドキュメント１３６はインターネットで利用可能なドキュメントを表し、当該ドキュメントのインデックス化された形態であってもよい。
【００２５】
個別化されたエンティティ・リポジトリシステム１００が、コンピューティング・デバイス１５０を含んでもよい。コンピューティング・デバイス１５０は、従来のオープンウェブベース環境ではなく閉モバイル環境で動作する、任意のモバイルコンピューティング・デバイスのようなスマートフォンまたは他のハンドヘルドコンピューティング・デバイス、タブレット、ウェラブルコンピューティング・デバイス等であってもよい。コンピューティング・デバイス１５０はまた、ラップトップまたはネットベースのコンピュータ、デスクトップコンピュータ、プロセッサを有するテレビ等のような他のタイプのパーソナル電子コンピューティング・デバイスであってもよい。コンピューティング・デバイス１５０は、図１０に示すように、コンピュータ・デバイス１０００または１０５０の例であってもよい。コンピューティング・デバイス１５０は単一のユーザにより使用されるコンピューティング・デバイスであってもよく、または、複数のユーザにより共有されるコンピューティング・デバイスであることができる。
【００２６】
コンピューティング・デバイス１５０が、１つまたは複数の機械実行可能命令またはソフトウェア、ファームウェア、またはそれらの組合せを実行するように構成された基板に形成された１つまたは複数のプロセッサを含んでもよい。当該プロセッサは半導体ベースであることができる。即ち、当該プロセッサはデジタル論理を実施できる半導体材料を含むことができる。コンピューティング・デバイス１５０はしたがって、１つまたは複数のデータを、一時的に、永続的に、準永続的に、またはそれらの組合せの何れかで格納するように構成された１つまたは複数のコンピュータ・メモリを含んでもよい。コンピューティング・デバイス１５０はしたがって、アプリケーション１５５を含んでもよい。アプリケーション１５５はソフトウェア、ファームウェア、またはその組合せの形で機械実行可能命令を表す。アプリケーション１５５で識別される当該コンポーネントは当該オペレーティング・システムの一部であってもよく、または、当該オペレーティング・システムを用いて実行するように開発されたアプリケーションであってもよい。幾つかの実装では、アプリケーション１５５はモバイル・アプリケーションであってもよい。従来、モバイル・アプリケーションは閉環境で動作し、これは、当該ユーザが別々のアプリケーションを使用してウェブベースのブラウザ環境で従来実施されるアクティビティを実施することを意味する。例えば、bookit.comに行ってホテルを予約するのではなく、コンピューティング・デバイス１５０のユーザはbookit.comにより提供されるアプリケーション１５５内のモバイル・アプリケーションを使用することができる。アプリケーション１５５はまたウェブ・アプリケーションを含んでもよい。当該ウェブ・アプリケーションは、当該モバイル・アプリケーションをミラーしてもよく、例えば、当該モバイル・アプリケーションと同一のまたは同様なコンテンツを提供する。幾つかの実装では、アプリケーション１５５が、コンピューティング・デバイス１５０のオペレーティング・システムにより実施される機能を含んでもよい。
【００２７】
アプリケーション１５５が、スクリーン・コンテンツ・エージェント１６０およびセット識別エンジン１６２を含んでもよい。幾つかの実装では、これらのアプリケーションの１つまたは複数を、コンピューティング・デバイス１５０のオペレーティング・システム（図示せず）により提供することができる。幾つかの実装では、これらのアプリケーションの１つまたは複数をダウンロードし、ユーザによりインストールすることができる。
【００２８】
スクリーン・コンテンツ・エージェント１６０は様々な機能を含むことができる。幾つかの実装では、スクリーン・コンテンツ・エージェント１６０は、当該コンピューティング・デバイスのスクリーンに表されたテキスト情報をアプリケーションプログラムインタフェース（ＡＰＩ）から取得するように構成されてもよい。幾つかの実装では、スクリーン・コンテンツ・エージェント１６０を当該オペレーティング・システムに組み込んでもよく、当該オペレーティング・システムは、当該スクリーンに表示されたテキストフィールドのコンテンツを決定することができる。当該テキスト情報がスクリーン・キャプチャされたコンテンツを考慮してもよく、当該ＡＰＩへの各呼出しまたはテキストフィールドのコンテンツが決定される各時刻をスクリーン・キャプチャと考えてもよい。幾つかの実装では、スクリーン・コンテンツ・エージェント１６０は、当該デバイスのフレームバッファのコンテンツをコピーまたは読み出すことによって、当該スクリーンに表示された画像をキャプチャするように構成されてもよい。したがって、当該キャプチャされたスクリーンは画像であってもよく、キャプチャされた画像と称されてもよい。スクリーン・コンテンツ・エージェント１６０は当該スクリーンをある間隔でキャプチャしてもよい。当該間隔は短くてもよく、例えば、毎半秒または毎秒であることができる。幾つかの実装では、スクリーン・コンテンツ・エージェント１６０は、明示的なユーザ要求またはコマンドに応答して、または当該デバイスが１つのモバイル・アプリケーションから別のモバイル・アプリケーションに遷移するときに、タッチ・イベントが発生するたびに（例えば、当該ユーザがスクリーンをタッチしてリンクをスクロール、ズーム、クリック等するたびに）当該スクリーンをキャプチャするように構成されてもよい。幾つかの実装では、スクリーン・コンテンツ・エージェント１６０は、当該スクリーンが変化しないときスクリーン・キャプチャが発生する間隔を増大してもよい。換言すれば、当該スクリーンが静的であるとき、スクリーン・コンテンツ・エージェント１６０は画像をあまり頻繁にキャプチャしなくてもよい。
【００２９】
スクリーン・コンテンツ・エージェント１６０は当該キャプチャされたコンテンツまたはスクリーン画像およびメタデータを認識エンジンに提供してもよい。認識エンジンはスクリーン・コンテンツ・エージェント１６０の一部であってもよく、コンピューティング・デバイス１５０に配置されてもよい。幾つかの実装では、認識エンジンはサーバ１１０のようなサーバに配置されてもよい。スクリーン・キャプチャ画像が認識エンジンに提供されると、認識エンジンは画像テキスト認識を当該画像に実施して、当該スクリーン・キャプチャ画像のコンテンツ内の単語、エンティティ、ロゴ等を識別してもよい。認識エンジンは、文字認識、画像認識、ロゴ認識等のような様々なタイプの認識を、従来のまたは後に開発される技術を用いて実施するように構成されてもよい。したがって、認識エンジンは認識されたコンテンツを生成してもよく、当該認識されたコンテンツは単語からおよび画像からのものでありうる。
【００３０】
スクリーン・コンテンツ・エージェント１６０はまた、当該スクリーン・キャプチャ画像に関するメタデータを決定し使用してもよい。当該メタデータが、タイムスタンプ、モバイル・デバイスのタイプ、モバイル・デバイス識別子、当該コンテンツがキャプチャされたときに実行しているモバイル・アプリケーション、例えば、当該スクリーンに表示されたコンテンツを描画するアプリケーション等を含んでもよい。幾つかの実装では、当該メタデータはまた、どのアプリケーションがアクティブであるか、当該デバイスの位置、周辺光、当該デバイスの動き等を含んでもよい。幾つかの実装では、当該メタデータが、他のコンピューティング・デバイスからの信号を含んでもよい。例えば、スクリーン・コンテンツ・エージェント１６０は、クライアント・デバイス１５０と通信するように構成される機器、テレビ、パーソナルアシスタント、音楽デバイス、アラームシステム等のような外部デバイスから情報を提供または取得してもよい。例えば、デバイスを構成する音声起動された電子リストが、購入すべき日用品のリストを格納してもよい。このリストが、デバイスを構成する当該電子リストから直接、または、ユーザ・アカウント情報を介しての何れかでクライアント・デバイス１５０に送信されてもよい。別の例として、情報を共有するタブレットおよびスマートフォンをユーザが有してもよく、または情報を共有するスマートフォンを夫と妻が有してもよい。したがって、幾つかの実装では、クライアント・デバイス１５０に利用可能な情報が、他のデバイスにより提供される情報を含んでもよい。この情報の一部または全部は、スクリーン・キャプチャ画像に関連付けられたメタデータに含まれうる。
【００３１】
当該システムは、スクリーン・キャプチャ画像を介して取得されたメタデータおよび情報を使用して、当該情報を分析してモバイル・デバイスで実施されるタスクでユーザを支援するオンデバイスインテリジェンスを支援してもよい。例えば、友達との会話をもつユーザが、映画を観る提案を含んでもよい。オンデバイスインテリジェンスが、当該提案を識別し、映画レビューを参照するかまたはチケットを購入するためのアクションを提供してもよい。スクリーン・コンテンツ・エージェント１６０はエンティティ・リポジトリを使用して、認識されたコンテンツが既知のエンティティを含むかどうかを判定してもよい。スクリーン・コンテンツ・エージェント１６０はエンティティ・リポジトリ１３０のようなパブリックエンティティ・リポジトリを使用してもよく、これはサーバ１１０との接続を要求し、認識およびアクションの提案プロセスを遅らせることができる。したがって、クライアント・デバイス１５０は、クライアント・デバイス１５０に格納された個別化されたエンティティ・リポジトリ１７６を有してもよい。当該個別化されたエンティティ・リポジトリ１７６はエンティティの固定セットの集合であってもよく、エンティティの固定セットの集合はサーバ１１０から、例えば、固定されたエンティティ・セット１３２から取得される。当該個別化されたエンティティ・リポジトリ１７６はセット識別エンジン１６２により生成され維持されてもよい。
【００３２】
幾つかの実装では、スクリーン・コンテンツ・エージェント１６０は、キャプチャされたコンテンツをインデックス付けするように構成されたインデックス付けエンジンを含むことができる。当該インデックスはまた、スクリーン・キャプチャ画像を当該画像で識別されるテキスト、エンティティ、画像、ロゴ等と関連付けてもよい。したがって、例えば、インデックス付けエンジンは、キャプチャされた画像およびキャプチャされたコンテンツに対する（例えば、スクリーン・キャプチャ・インデックス１７２に格納された）インデックス・エントリを生成してもよい。幾つかの実装では、インデックス付けエンジンはサーバ１１０のようなサーバ上にあってもよく、スクリーン・コンテンツ・エージェント１６０はキャプチャされた画像およびキャプチャされたコンテンツを当該サーバに提供してもよい。当該インデックスは、キー値（例えば、単語、フレーズ、エンティティ、画像、ロゴ等）が当該キー値を含む画像のリスト（例えば、キャプチャされたスクリーン画像のコピー）に関連付けられる、反転インデックスであってもよい。当該インデックスが、当該リスト内の各キャプチャされた画像に関連付けられたメタデータ（例えば、当該キー値が発生したキャプチャされた画像上の場所、当該画像に対する当該キー値のランク等）を含んでもよい。幾つかの実装では、当該インデックスはまた、タイムスタンプによりインデックス化されたキャプチャされた画像のリストを含んでもよい。インデックス付けエンジンは、当該インデックスをメモリ、例えば、スクリーン・キャプチャ・インデックス１７２に格納してもよい。勿論、幾つかの実装では、当該システムは、コンピューティング・デバイス１５０に加えてまたはその代わりにサーバ上のユーザ・アカウントに当該インデックスを格納してもよい。コンピューティング・デバイス１５０のユーザは、スクリーン・コンテンツ・エージェント１６０がアクティブであるときを制御することができる。例えば、当該ユーザは、他の指定されたアプリケーション１５５が実行されているときのみ（例えば、ソーシャル・メディア・モバイル・アプリケーションにおけるときのみ）スクリーン・コンテンツ・エージェント１６０がアクティブであると指定してもよい。ユーザはまた、例えば、設定アプリケーションを介して、スクリーン・コンテンツ・エージェント１６０を手動でオンおよびオフにしてもよい。幾つかの実装では、ユーザはスクリーン・コンテンツ・エージェント１６０をジェスチャまたはアクションで起動してもよい。スクリーン・コンテンツ・エージェント１６０の無効化により、本明細書で説明した個別化されたエンティティ・リポジトリの予測と維持を無効にしてもよい。
【００３３】
コンピューティング・デバイス１５０はまた、セット識別エンジン１６２を含んでもよい。セット識別エンジン１６２は、固定されたエンティティ・セット１３２内のどのエンティティのセットが当該個別化されたエンティティ・リポジトリ１７６に含まれるべきであるかを判定するように構成されてもよい。セット識別エンジン１６２は、スクリーン・コンテンツ・エージェント１６０により収集または生成された情報ならびにどのセットが潜在的にユーザに関連するかを判定しこれらのセットをサーバ１１０から取得するためのセット予測モデル１６４およびセット利用パラメータを使用してもよい。例えば、セット識別エンジン１６２は、セット予測モデル１６４に対する入力として信号を収集してもよい。当該信号は、デバイス位置、日時、クライアント・デバイス１５０と通信する様々な外部デバイスの状態、他のデバイスへの近接性、スクリーン・キャプチャ画像または一連のスクリーン・キャプチャ画像内のコンテンツからの情報、ユーザに対するスクリーン・キャプチャ・インデックス１７２または検索レコードからの情報、ユーザ・プロフィール内の情報等のような情報およびメタデータを含むことができる。上述のように、機器、テレビ、パーソナルアシスタント、音楽デバイス、アラームシステム等のような外部デバイスはクライアント・デバイス１５０と通信してステータス情報をクライアント・デバイス１５０に提供するように構成されてもよく、当該ステータス情報は識別エンジン１６２により生成された信号に含まれてもよい。信号を生成するために使用される当該情報をメタデータとしてスクリーン・キャプチャ・インデックス１７２に格納してもよく、または、セット識別エンジン１６２が個別化されたエンティティ・リポジトリ１７６に対して適切なエンティティの固定セットを決定する時点で生成または収集してもよい。
【００３４】
前述のように、セット予測モデル１６４はセット予測モデル１２２のコピーであってもよく、または、セット予測モデル１２２の個別化されたバージョンであってもよい。予測モデル１６４が個別化されたバージョンであるとき、セット識別エンジン１６２は、クライアント・デバイス１５０に格納されたデータからまたはクライアント・デバイス１５０のユーザに関連付けられたユーザ・プロフィールから、トレーニング例を提供してもよい。例えば、当該トレーニング例は、スクリーン・キャプチャ・インデックス１７２またはユーザ１８０に対する検索レコードを用いて生成されてもよい。幾つかの実装では、クライアント・デバイスは、ユーザ許可により、当該セット予測モデルが多数のクライアント・デバイスで生成された予測から学習できるように、サーバ１１０上のセット予測モデル１２２に更新を提供してもよい。
【００３５】
セット識別エンジン１６２は、信号を、例えば、１組の特徴として、推論モードにおいてセット予測モデル１６４に提供してもよい。応答して、セット予測モデル１６４はついで、エンティティの１つまたは複数の予測された固定セットの識別子をセット識別エンジン１６２に提供してもよい。セット識別エンジン１６２はついで、エンティティの予測された固定セットを順位づけてもよい。クライアント・デバイス１５０は小型のフォーム・ファクタを有するデバイスであってもよく、当該デバイスは当該デバイスの記憶空間を制限する。したがって、セット識別エンジン１６２は、どの固定セットを個別化されたエンティティ・リポジトリ１７６に含めるべきかを判定するために、エンティティの予測された固定セットを順位付けしてもよい。幾つかの実装では、セット識別エンジン１６２は、クライアント・デバイスのユーザにより選択されたセット利用パラメータ内で動作してもよい。当該セット利用パラメータが、クライアント・デバイスに格納するための最大量の固定セット、当該個別化されたエンティティ・リポジトリ１７６により使用される最大量の記憶、最小順位、またはこれらの組合せを含んでもよい。当該量の予測されたセットをクライアント・デバイス１５０に収容できない場合、セット識別エンジン１６２は、当該セット利用パラメータが収容するのと同じくらい多くのセットを、最高順位のセットから選択してもよい。
【００３６】
幾つかの実装では、当該順位がセット予測モデル１６４により決定されてもよい。幾つかの実装では、セット識別エンジン１６２は、セット予測モデル１６４により提供される順位を調整してもよい。例えば、特定の固定セットが、ユーザが頻繁にアクセスするかまたはちょうどインストールしたウェブ・アプリケーションにより必要とされる場合、セット識別エンジン１６２はその特定の固定セットの順位をブーストしてもよい。セット識別エンジン１６２はまた、メタデータを使用して順位を調節してもよい。例えば、AliceおよびTedが旅行しておりデータの共有に同意した場合、Aliceのクライアント・デバイスは、Tedのクライアント・デバイスが既に、彼のデバイス上の個別化されたエンティティ・リポジトリに含まれる特定の固定セットを有すると判定してもよい。したがって、Aliceのクライアント・デバイスがTedのデバイスを非常に近くで検出したとき、Aliceのデバイスのセット識別エンジン１６２は、彼女のデバイス上のその特定の固定セットの順位を格下げしてもよい。
【００３７】
幾つかの実装では、セット識別エンジン１６２は、予測された固定セットの順位を定期的に、または、新たなアプリケーションのインストール、予め決定された期間使用されていないアプリケーションの起動、利用可能な空間が変化したとき、例えば、当該デバイスのディスク空間が減少したとき（例えば、指定されたパーセント未満に低下）または指定された割合の空間を解放する幾つかのアクション、ユーザが位置を変更したとき等のような幾つかのイベントの後に生成してもよい。セット識別エンジン１６２はまた、当該順位に応答して当該個別化されたエンティティ・リポジトリ１７６を更新してもよい。例えば、セット識別エンジン１６２は、当該個別化されたエンティティ・リポジトリ１７６を定期的に、特定のエンティティの固定セットを使用するアプリケーションがインストールされたとき、またはエンティティの固定セットの順位が現在当該個別化されたエンティティ・リポジトリ１７６内にあるセットのうち１つより高く順位づけられるようになったとき、更新してもよい。例えば、Aliceがハワイへの旅行を調べ始める場合、最終的にセット予測モデル１６４は、Aliceが視聴している（例えば、スクリーン・キャプチャ・インデックス１７２または検索レコードからの）コンテンツに基づいて、ハワイに関する固定されたスライスを予測する。このセットは、個別化されたエンティティ・リポジトリ１７６に含まれるほど十分に以前に高く順位付けられたことがないので、順位がいったん現在当該個別化されたエンティティ・リポジトリ１７６内にあるセットの順位を超えるか、または、順位の変化が幾つかの予め決定された閾値を超えたとき、セット識別エンジン１６２は、当該個別化されたエンティティ・リポジトリ１７６を自動的に更新してもよく、または、この特定のセットを含める前にAliceから承認を得てもよい。いったんAliceがハワイから戻るか、または、彼女が或る期間ハワイに行かずハワイのコンテンツにアクセスしていない場合、当該特定のスライスの順位は低下してもよく、例えば、当該個別化されたエンティティ・リポジトリ１７６内にない別のスライスより下に低下してもよく、または予め決定されたパーセント低下してもよい。別のスライス（即ち、別のエンティティの固定セット）が当該個別化されたエンティティ・リポジトリ１７６内の定位置につくように、これがセット識別エンジン１６２の実行をトリガしてもよい。
【００３８】
当該個別化されたエンティティ・リポジトリ１７６を更新するステップを多数の方法で実現してもよい。幾つかの実装では、リポジトリ全体は、順位および当該セット利用パラメータに基づいて選択された固定セットにより削除され置換えられる。幾つかの実装では、当該セット利用パラメータをユーザにより設定し制御してもよい。幾つかの実装では、セット識別エンジン１６２は、当該個別化されたエンティティ・リポジトリ１７６にあるべき特定の固定セットが既に当該個別化されたエンティティ・リポジトリ１７６に存在するかどうかを判定してもよい。そうである場合、セット識別エンジン１６２は何もしないか、または、当該セットが変化したかどうか、例えば、サーバ１１０で更新されているかどうかを判定してもよい。更新が行われた場合、セット識別エンジン１６２は、セット全体をダウンロードしてもよく、または、当該セットに適用するためのデルタをダウンロードしてもよい。セット識別エンジン１６２は、当該個別化されたエンティティ・リポジトリ１７６からセットを削除して、より高い順位を有するセットのために空きを作ってもよい。
【００３９】
コンピューティング・デバイス１５０は、サーバ１１０および他のモバイル・デバイスとネットワーク１４０上で通信してもよい。ネットワーク１４０は例えば、インターネットであってもよく、またはネットワーク１６０は例えば、ゲートウェイデバイス、ブリッジ、スイッチ等を用いて実装された有線または無線ローカル・エリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）等であることができる。ネットワーク１４０はまた、セルラ通信ネットワークを表してもよい。ネットワーク１４０を介して、サーバ１１０はコンピューティング・デバイス１４０と通信してデータを送受信してもよく、コンピューティング・デバイス１４０は他のモバイル・デバイス（図示せず）と通信してもよい。
【００４０】
個別化されたエンティティ・リポジトリシステム１００は１つの例示的な構成を表し、実装は他の構成を組み込んでもよい。例えば、幾つかの実装は、スクリーン・コンテンツ・エージェント１６０、セット識別エンジン１６２、またはセット予測モデル１６４のコンポーネントの１つまたは複数を単一のモジュールまたはエンジンに結合してもよい。同様に、幾つかの実装はエンティティ・セット生成エンジン１２０またはセット予測モデル１２２の１つまたは複数を単一のモジュールまたはアプリケーションに結合してもよい。別の例として、スクリーン・キャプチャ・インデックス１７２、個別化されたエンティティ・リポジトリ１７６、またはクライアント・デバイス１５０またはエンティティ・リポジトリ１３０上のユーザ・プロフィール、固定されたエンティティ・セット１３２、検索レコード１３４、またはクロールされたドキュメント１３６のようなデータ・ストアの１つまたは複数を、単一のデータ・ストアに結合してもよく、または、複数のコンピューティング・デバイスにわたって分散してもよく、または、別の位置に格納してもよい。
【００４１】
個別化されたエンティティ・リポジトリシステム１００がユーザ固有のデータを収集し格納するかまたは個人情報を利用しうる範囲で、ユーザに、ユーザ情報の集合（例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、ユーザの嗜好、またはユーザの現在の位置に関する情報）を制御する機会、またはスクリーン・キャプチャ画像およびコンテンツを格納するかどうかおよび／またはその方法を制御する機会を提供してもよい。例えば、当該システムは、銀行アプリケーション、健康アプリケーション、または他の同様なアプリケーションのような特定のアプリケーションに対して、または、かかるコンテンツをキャプチャすることがサービスの条項に違反する場合に、コンテンツをキャプチャするのを控えてもよい。さらに、ユーザに、特定のアプリケーションまたはアプリケーションのカテゴリに対するスクリーンコンテンツのキャプチャを無効にする機会を提供してもよい。さらに、特定のデータを、個人的に識別可能な情報が除去されるように、それが格納または利用される前に１つまたは複数の方法で処理してもよい。例えば、個人的に識別可能な情報をユーザに対して決定できないようにユーザのアイデンティティを処理してもよく、ユーザの地理的位置を、ユーザの特定の位置を決定できないように、位置情報が取得される場所で（例えば都市、ＺＩＰコード、または州レベルに）一般化してもよい。したがって、ユーザは、どのように情報がユーザに関して収集され個別化されたエンティティ・リポジトリシステムにより使用されるかに対する制御を有しうる。
【００４２】
図２は、開示された主題に従う、個別化されたエンティティ・リポジトリに対するセット利用パラメータを指定するためのユーザ・インタフェース２００の例示的な表示を示す。当該ディスプレイは、図１のクライアント・デバイス１５０のようなモバイル・デバイスのディスプレイまたは他のパーソナルコンピューティング・デバイスであってもよい。幾つかの実装では、ユーザ・インタフェースを、クライアント・デバイスのオペレーティング・システムにより提供してもよく、または、特定のアプリケーションにより、例えば、図１のアプリケーション１５５から提供してもよい。ユーザ・インタフェース２００は、図１のコンテンツ・エージェント１６０のようなコンテンツ・エージェントに対するコントロール２０５を含む。コントロール２０５は、当該コンテンツ・エージェントがアクションを実施するかどうかおよびどのように実施するか、ならびに、どのアクションを当該コンテンツ・エージェントが実施するかを規制してもよい。ユーザ・インタフェース２００はまた、個別化されたエンティティ・リポジトリに対するセット利用パラメータを含んでもよい。当該セット利用パラメータが、最大記憶２１０、最大数のセット２１５、または記憶２２０のパーセントの１つまたは複数を含んでもよい。最大記憶２１０は、図１の個別化されたエンティティ・リポジトリ１７６のような個別化されたエンティティ・リポジトリにより使用されるメモリの量に制限を設定してもよい。クライアント・デバイスは、エンティティの固定セット（スライス）をダウンロードし記憶してもよいが、最大記憶２１０を超えてはならない。
【００４３】
当該セット利用パラメータはまた最大セット２１５を含んでもよい。最大セット２１５は、クライアント・デバイスが個別化されたエンティティ・リポジトリ内に含むエンティティの固定セットの数を制限する。換言すれば、クライアント・デバイスは指定された数のセットのみをダウンロードし記憶してもよい。記憶２２０のパーセントは、柔軟な制限を当該個別化されたエンティティ・リポジトリのサイズに提供してもよい。例えば、クライアント・デバイスがより多くのメモリを有するとき、記憶２２０のパーセントのパラメータはより大きな個別化されたエンティティ・リポジトリを可能としうるが、クライアント・デバイスの空間が消えると、当該パラメータは当該個別化されたエンティティ・リポジトリに格納されるセットを制限してもよい。ユーザ・インタフェース２００によりまた、ユーザはセット利用パラメータの組合せを、例えば、チェックボックスを介して選択して、セット利用パラメータをオンまたはオフにすることができてもよい。したがって、ユーザはそれらのデバイス上の個別化されたエンティティ・リポジトリのサイズを制御することができ、これは、どのスライスが当該リポジトリに含まれるかを制御する。ユーザ・インタフェース２００はまた、特に当該個別化されたエンティティ・モデルに含めるためのエンティティの１つまたは複数のセットをユーザが選択できるようにするコントロール２２５を含んでもよい。ユーザが特にコントロール２２５を使用して当該エンティティ・リポジトリのスライスを選択すると、当該システムはそのスライスの関連性を高く順位付けして、それが常に当該個別化されたエンティティ・モデルに含まれるようにしてもよい。
【００４４】
図３は、開示された実装に従う、どのセットがコンピューティング・デバイスのユーザに最も関連するかを判定するためのコンテキストを提供するコンテンツの例示的なディスプレイ３００を示す。ディスプレイ３００は、図１のクライアント・デバイス１５０のようなモバイル・デバイスのディスプレイまたは他のコンピューティング・デバイスであってもよい。図３の例において、当該テキスト「Alien Invaders」が選択されている。当該選択はユーザにより行われていてもよく、または、クライアント・デバイス（例えば、クライアント・デバイスで実行されているコンテンツ・エージェントまたは動作提案アプリケーション）により自動的に行われていてもよい。当該システムは、選択３０５に対する４つの提案された動作、即ち動作３４０を提供している。動作３４０は、ローカル映画時間、映画レビュー動作３２５、および映画データベース動作３２０を提供するモバイル・アプリケーションに対するものであってもよい。ユーザ・インタフェースは、選択３０５の識別に基づいて、当該個別化されたエンティティ・リポジトリに存在するエンティティとして、動作３４０、３２５、および３２０を選択しているかもしれない。したがって、当該システムは、サーバへの接続およびサーバベースのエンティティ・リポジトリへの接続がなくても、ディスプレイ３００を提供しうる。
【００４５】
図４は、開示された実装に従う、個別化されたエンティティ・リポジトリに含めるための追加のスライスを提案するためのユーザ・インタフェース４００の例示的な表示を示す。ユーザ・インタフェース４００が、図１のクライアント・デバイス１５０のようなモバイル・デバイスまたは他のコンピューティング・デバイスで生成されてもよい。図４の例において、ユーザはテキストを検索インタフェース４０５に入力している。検索インタフェース４０５はブラウザまたはブラウザ風のモバイル・アプリケーションに対するものであってもよいが、任意のアプリケーション内の任意の検索バーからのものでありうる。当該システムは、検索インタフェース４０５に提供されたテキストを分析して、例えば、セット予測モデルを用いるセット識別エンジンを介して、当該テキストがトピックベースのエンティティの固定セットに強く関連すると判定してもよい。当該高い関連性が、当該セット予測モデルからの高い信頼性スコアまたは確率に基づいて決定されてもよい。当該高い関連性が、ユーザ・インタフェース４００のコンテンツに基づいてもよいだけでなく、以前に提供されたコンテンツに基づいてもよい。例えば、ユーザがハワイのホテルを予約アプリケーションで見ていたかもしれず、または、ハワイで見るべきものに関して読んでいるかもしれない。クライアント・デバイスは現在の個別化されたエンティティ・リポジトリ内にハワイに関するエンティティを有さないかもしれないが、当該セット予測モデルは当該セットを予測する幾つかの単語または画像を認識してもよい。幾つかの実装では、当該セット識別エンジンは関連するモデルに関するテキストを連続的に分析してもよい。幾つかの実装では、当該セット識別エンジンを検索インタフェースの利用の間に起動してもよい。
【００４６】
当該エンティティの固定セットの確率が高い関連性を示すとき、当該システムは、ハワイ・スライスとも称される、ハワイに対する当該エンティティの固定セットを自動的にダウンロードし格納してもよい。幾つかの実装では、これは、ハワイに配置された全てのエンティティに対する位置ベースのセット、またはトピックベースのセット、またはこれらの組合せであってもよい。幾つかの実装では、ユーザ・インタフェースが、確認ウィンドウ４１０を含んでもよい。確認ウィンドウ４１０により、ユーザが当該提案を受理または拒絶できてもよい。ユーザが当該提案を拒絶した場合、当該システムはハワイ・スライスをダウンロードしなくてもよい。ユーザが当該提案を受け入れた場合、当該システムはハワイ・スライスをダウンロードしてもよく、図７に関してより詳細に説明するように、現在当該個別化されたエンティティ・リポジトリ内にある１つまたは複数のスライスを除去して、新たなスライスのために空きを作ってもよい。
【００４７】
図５は、開示された実装に従う、パーソナル・エンティティ・リポジトリに含めるための追加のセットを提案するためのユーザ・インタフェース５００の別の表示の例を示す。ユーザ・インタフェース５００が、図１のクライアント・デバイス１５０のようなモバイル・デバイスまたは他のコンピューティング・デバイスで生成されてもよい。図５の例において、ユーザは夕食予約アプリケーション５０５をちょうどインストールした。当該インストールプロセスに応答して、当該セット識別エンジンは、アプリケーション５０５が特定のエンティティの固定セットを明示的に要求したと判定するか、または、例えば、セット予測エンジンを用いて、当該特定の固定セットを参照する可能性が高いと判定してもよい。したがって、ユーザに確認ウィンドウ５１０を提供してもよい。確認ウィンドウ４１０と同様に、確認ウィンドウ５１０は、ユーザが当該特定のスライスのダウンロードを選択するかまたは当該ダウンロードを拒否する機会を提供してもよい。幾つかの実装では、アプリケーション５０５はウィンドウ５１０を生成してもよい。幾つかの実装では、当該アプリケーションインストールプロセス（図示せず）または当該セット識別エンジンは当該特定のエンティティの固定セットを自動的にダウンロードしてもよい。
【００４８】
図６は、開示された実装に従う、エンティティの固定セットを生成し更新するための１つの例示的なプロセス６００の流れ図を示す。プロセス６００を、図１のシステム１００のような個別化されたエンティティ・リポジトリシステムにより実施してもよい。プロセス６００を使用して、エンティティ・リポジトリの様々なスライス、即ち、エンティティの固定セットを生成し維持してもよい。当該エンティティ・リポジトリは、任意の大規模なエンティティ・リポジトリ、例えば、図１のエンティティ・リポジトリ１３０であってもよい。プロセス６００は、エンティティの位置ベースのセットを生成するステップにより開始してもよい（６０５）。位置ベースのエンティティのセットは、特定のセルに配置されたエンティティ・リポジトリ内の任意のエンティティであってもよい。当該セルを境界により、例えば、３つ以上の地理的座標を接続する線により定義してもよい。当該セルは１つまたは複数のジオセル（例えば、地図アプリケーションにより定義されるセル）に対応してもよい。当該システムはまた、トピックベースのエンティティの固定セットを生成してもよい（６１０）。トピックベースのセットを、クラスタ化により、シード・エンティティとの類似性またはそれへの接続により、集合内のメンバにより形成してもよい等である。当該システムはまた、エンティティの機能セットを生成してもよい（６１５）。当該機能セットは、位置ベースのセットおよびトピック・セットの組合せであってもよく、特定のアプリケーションによる使用に基づいてもよく、人気度（即ち、エンティティに対して最も共通的に検索されたものおよび／または最もクロールされたドキュメントに出現するもの）に基づいてもよく、タスクまたはアクション等に基づいてもよい。ステップ６０５乃至６１５を最初の時点で実施してセットを更新してもよい。例えば、最初の時点で、当該システムはステップ６０５乃至６１５を実施して、エンティティの初期セットを生成してもよい。続いて、当該システムは、ステップ６０５乃至６１５を実施して当該初期セットを更新し、新たなセットを追加してもよい等である。
【００４９】
当該システムはエンティティの固定セットをバージョン管理してもよい。例えば、当該セットへのフォーマット変更が当該セットを使用するアプリケーションを故障させるとき、当該システムは古いバージョンを保持し、スキーマ変更の後に新たなバージョン生成してもよい。このように、当該システムは、クライアント・デバイスでエラーを引き起こさないようにスキーマ変更を処理してもよい。したがって、当該システムは、新たに生成されたセットがスキーマ変更を含むかどうかを判定してもよい（６２０）。その場合、（例えば、ステップ６０５乃至６１５から）当該新たに生成されたセットに新たなバージョン識別子を割り当ててもよい（６２５）。当該バージョン識別子は、当該セットを使用するアプリケーションが、適切なバージョンを正しくダウンロードし使用できるようにする。当該更新がスキーマ変更を含むとき、デルタセットは必要とされない。スキーマ変更がない場合（６２０、いいえ）、当該システムは各セットに対するデルタを生成してもよい（６３０）。個別化されたエンティティ・モデル内の全ての固定されたセットを削除し続いてそのデバイスに対する最高順位の固定されたエンティティ・セットの直近のセットを格納するのではなく、クライアント・デバイスが変更のみをエンティティの固定セットにダウンロードするときに当該デルタが使用される。デルタは除去すべきエンティティのリストおよび追加すべきエンティティのリストであってもよい。したがって、エンティティの更新、例えば、名前変更、メタデータまたは属性変更等は、当該エンティティを削除し続いて当該エンティティを読み取ることであってもよい。デルタにより、当該システムは、当該セットが維持されるサーバと当該セットが使用されるクライアント・デバイスとの間でデータをあまり送信しなくてもよい。しかし、ステップ６３０は任意であり、全てのセットに対して実施されなくてもよく、または、任意のセットに対してすら実施しなくてもよい。例えば、クライアント・デバイスは、当該個別化されたエンティティ・リポジトリを更新するとき、全ての現在格納されているスライスを削除し、所望のスライス（例えば、セット利用パラメータ内に入る予測されたスライス）をフェッチし、これらを個別化されたエンティティ・モデルとして格納してもよい。各エンティティの固定セットは一意な識別子を有してもよい。幾つかの実装では、当該一意な識別子は当該固定セットのコンテンツのハッシュであってもよい。プロセス６００は次いで終了する。プロセス６００を定期的に繰り返して、エンティティの固定セットが最新であることを保証してもよい。
【００５０】
図７は、開示された実装に従う、エンティティの事前に計算されたセットを用いてパーソナル・エンティティ・リポジトリを構築するための１つの例示的なプロセス７００の流れ図を示す。プロセス７００を、図１のシステム１００のような個別化されたエンティティ・リポジトリシステムにより実施してもよい。プロセス７００をクライアント・デバイスに実施して、どのエンティティの固定セットまたはスライスがクライアント・デバイスに格納された個別化されたエンティティ・リポジトリに含まれるかを判定してもよい。クライアント・デバイスは、連続的に、定期的に、ネットワーク接続変更の際に、新たなアプリケーションのインストール、着信、新たな連絡先の追加等、または同期のユーザ要求のようなトリガ・イベントの際に、プロセス７００を実施してもよい。プロセス７００を、セット識別エンジン１６２のようなセット識別エンジンにより実施してもよい。
【００５１】
プロセス７００は、クライアント・デバイスのユーザに関連するエンティティの固定セットを識別するステップにより開始してもよい（７０５）。当該セットが、当該セットがステップ７０５の一部としてではなくステップ７０５の実施の前に決定されるという意味で、固定されてもよい。換言すれば、当該セットは、任意の特定のユーザまたはエンティティ・リポジトリに対するクエリと独立に決定される。ステップ７０５の一部として識別されたセットは、固定セットの総数よりかなり少ないサブセットである。当該固定セットの識別は、例えば、クライアント・デバイスに関連付けられたコンテキストに基づいてもよい。例えば、セット予測モデルに、例えば、コンテンツ・エージェント、検索履歴、ユーザ・プロフィール等を介してクライアント・デバイスで生成されたコンテンツから収集されたメタデータおよび情報を含みうる多数の信号（即ち、コンテキスト）から生成された１組の特徴が提供されてもよい。幾つかの実装では、信号として使用される情報が、クライアント・デバイスに近いデバイスから、例えば、家のモノのインターネット内の機器または他のコンピューティング・デバイスから、ユーザまたはユーザの家庭等に関連付けられた他のパーソナルコンピューティング・デバイスからの情報を含んでもよい。かかる信号は別のデバイスから生ずるが、当該近接性はクライアント・デバイスに関連付けられたコンテキストである。幾つかの実装では、当該情報が、当該コンピューティング・デバイスの位置、タイムスタンプ、ユーザに対する検索履歴の内容、スクリーン・キャプチャ・インデックスの内容、ユーザ・プロフィールに関連付けられたコンテンツ、クライアント・デバイスにインストールされたアプリケーション、ユーザにより実施されるアクティビティ（例えば、デバイス設定の変更、アプリケーションのインストール）等を含んでもよい。当該信号を、セット予測モデル１２２またはセット予測モデル１６４のようなセット予測モデルに提供してもよい。当該セット予測モデルは、１つまたは複数の予測されたエンティティの固定セットを提供してもよい。ステップ７０５で識別されるエンティティの固定セットはまた、デバイスの位置、デバイスにインストールされたアプリケーション、デバイスで一般的に実施されるタスクまたはアクティビティ等に基づいてもよい。
【００５２】
当該システムはついで、識別されたエンティティの固定セットを関連性により順位付けしてもよい（７１０）。当該関連性は、セット予測モデルにより提供される確率スコアに基づいてもよい。幾つかの実装では、当該システムは、デバイスの位置、日時、近くの他のデバイス等のような他の情報に基づいてその確率を調整してもよい。例えば、２人の旅の同伴者がそれらのデバイスをリンクした場合、第１の同伴者のデバイスは、例えば、デバイス間信号送信を介して、第２の同伴者のデバイスが当該エンティティ・リポジトリの特定のスライスを格納していると判定してもよく、当該第１の同伴者のデバイスは、例えば、当該２つのデバイスのうち１つが既に当該エンティティ・リポジトリのそのスライスを当該個別化されたエンティティ・リポジトリに格納しているので、そのスライスの関連性を格下げしてもよい。別の例として、ユーザのデバイスは、当該エンティティ・リポジトリの特定のスライスを要求する特定のアプリケーションを有してもよく、当該システムはその特定のスライスの関連性をブーストしてもよい。別の例として、当該システムは、例えば、図２のコントロール２２５を介してユーザにより指定されたスライスの関連性をブーストしてもよい。位置ベースのエンティティの固定セットに対して、当該システムは、当該セットにより表されるセルからのクライアント・デバイスの距離に基づいて、当該セットに対する関連性スコアを設定してもよい。例えば、クライアント・デバイスが当該セル内に配置されるとき、当該関連性は非常に高くてもよい。より長い距離がより低い関連性を生み出すように、他のセルの関連性は当該セルの中心とクライアント・デバイスの現在位置との間の距離に基づいてもよい。
【００５３】
当該システムは、当該セット利用パラメータおよび順位に基づいて当該個別化されたエンティティ・リポジトリに対する選択されたセットを決定してもよい（７１５）。幾つかの実装では、当該システムは当該セット利用パラメータに基づく関連性閾値およびユーザに関連するとして識別された固定されたエンティティ・セットの順位を決定してもよい。当該閾値を満たす関連性スコアを有する任意のセットが、当該個別化されたエンティティ・リポジトリに対して選択されたセットに含まれてもよい。図９は、当該セット利用パラメータおよび順位に基づく当該セットの選択の別の例である。当該システムはついで、当該個別化されたエンティティ・リポジトリを更新する必要があるかどうかを判定してもよい（７２０）。例えば、エンティティの当該選択された固定セットが当該個別化されたエンティティ・リポジトリに現在含まれるセットと同一であるが、当該システムが更新を最近チェックしていない場合、当該システムは当該リポジトリを更新してもよい（７２０、はい）。別の例として、当該システムが、当該選択されたセット内の固定セットのうち１つに対する更新を通知された場合、当該システムは当該リポジトリを更新してもよい（７２０、はい）。エンティティの固定セットが当該選択されたセット内にあるが現在当該個別化されたエンティティ・リポジトリ内にない場合、当該システムは当該リポジトリを更新してもよい（７２０、はい）。当該システムが当該リポジトリを更新する必要はない場合（７２０、いいえ）、プロセス７００は終了する。
【００５４】
当該システムが当該リポジトリを更新する場合（７２０、はい）、当該システムは当該選択されたセットのうち最高順位のセットを選択してもよい（７２５）。説明の簡単さのため、この最高順位のセットを当該第１のセットと称してもよい。当該システムはこの第１のセットが既に当該個別化されたエンティティ・リポジトリ内にあるかどうかを判定してもよい（７３０）。当該リポジトリにおいてそうである場合（７３０、はい）、当該システムは、更新が必要とされる場合、クライアント・デバイス上の当該第１のセットを更新してもよい（７３５）。当該システムは、当該第１のセットを当該サーバからプルすることにより、または、更新が存在するとの当該サーバからの通知により、更新が必要とされるかどうかを判定してもよい。当該更新は、デルタ、例えば、削除すべきエンティティのリストおよび当該固定セットに追加すべきエンティティのリストの形であってもよい。当該第１のセットが当該個別化されたエンティティ・リポジトリ内にない場合（７３０、いいえ）、当該システムは、当該パーソナル・エンティティ・リポジトリが当該第１のセットに対する空きを有するかどうかを判定してもよい（７４０）。例えば、当該パーソナル・エンティティ・リポジトリは、当該リポジトリ内のセットの数、当該リポジトリにより使用されるメモリ、またはその両方に対する制限を有してもよい。当該第１のセットの追加が当該制限を超える場合（７４０、いいえ）、当該システムは、削除できる固定セットが現在当該個別化されたエンティティ・リポジトリ内にあるかどうかを判定してもよい（７４５）。現在当該個別化されたエンティティ・リポジトリ内にあるセットがエンティティの当該選択された固定セット、即ち、ステップ７１５で識別されたものの中にない場合、現在当該個別化されたエンティティ・リポジトリ内にあるセットを削除することができる。セットはまた、それが当該第１のセットより低い順位を有する場合、削除することができる。削除すべきセットがある場合（７４５、はい）、当該システムは当該セットを当該個別化されたエンティティ・リポジトリから削除し（７５０）、ステップ７４０に戻ってもよい。セットを削除できない場合（７４５、いいえ）、プロセス７００は終了してもよい。
【００５５】
当該個別化されたエンティティ・リポジトリ内の当該第１のセットに空きがあるとき（７４０、はい）、当該システムは、当該第１のセットを当該モバイル・デバイス上の当該個別化されたエンティティ・リポジトリに追加してもよい（７５５）。当該システムはついで、当該選択されたセット内に次の最高順位のセットがあるかどうかを判定してもよい（７６０）。次の最高セットがある場合（７６０、はい）、当該システムは当該次のセットに対してステップ７２５乃至７６０を実施してもよい。この次のセットはついで、説明の簡単さのため第１のセットとなる。したがって、例えば、当該システムは当該次のセット、即ち、この時点では当該第１のセット、が既に当該個別化されたエンティティ・リポジトリ内にあるかどうかを判定してもよい（７３０）等である。当該選択されたセット内の全てのセットがステップ７３０乃至７６０を介して処理されると（７６０、いいえ）、当該システムは当該個別化されたエンティティ・リポジトリを更新しており、プロセス７００は終了する。
【００５６】
図８は、開示された実装に従う、クライアント・デバイスのユーザに関連するエンティティの固定セットを識別するための１つの例示的なプロセス８００の流れ図を示す。プロセス８００を、図１のシステム１００のような個別化されたエンティティ・リポジトリシステムにより実施してもよい。プロセス８００を、図７のステップ７０５の一部としてクライアント・デバイスに実施して、どのエンティティの固定セットまたはスライスがユーザに関連するかを判定してもよい。プロセス８００はクライアント・デバイスの位置を決定するステップにより開始する（８０５）。当該位置を、座標、例えば、全地球測位システム（ＧＰＳ）座標として、またはジオセルの識別子、または地球上の位置を表現する幾つかの他の方法として表現してもよい。当該システムは、クライアント・デバイスから当該位置ベースの固定セットにより表される当該セルへの距離に基づいて、位置ベースのエンティティの固定セットの関連性を割り当ててもよい（８１０）。当該距離を、クライアント・デバイスの位置から当該セルの中心に測定してもよい。当該関連性はまた、より短い距離がより高い関連性を有するように、当該距離に対して逆関係を有してもよい。クライアント・デバイスが特定のエンティティの固定セットに対するセル内に配置されているとき、当該特定のエンティティの固定セットは最高関連性スコアを受信してもよい。
【００５７】
当該システムはまた、ユーザに関連するトピックベースのエンティティの固定セットを決定してもよい（８１５）。当該トピックベースのセットは、特徴に基づいて予測されたエンティティの固定セットに対する１つまたは複数の識別子を提供する、セット予測モデル１６４またはセット予測モデル１２２のようなセット予測モデルで決定されてもよい。当該特徴は、デバイスの位置、検索レコード内のコンテンツ、ユーザ・プロフィール、またはスクリーン・キャプチャコンテンツ、例えば、クライアント・デバイスとデータを交換する、クライアント・デバイスに近接するデバイスからのデータ、タイムスタンプ、その時点でインストールまたは実行されるアプリケーション等のような幾つかの情報アイテムに基づいてもよい。当該システムは、各トピックベースのエンティティの固定セットの関連性スコアを類似性クライアント・デバイスのユーザに対する埋込みとの類似性に設定してもよい（８２０）。幾つかの実装では、当該類似性が当該セット予測モデルにより提供される固定セットに関連付けられた確率であってもよい。当該システムはまた、機能エンティティの固定セットを決定してもよい（８２５）。当該機能セットは、最も人気があるとみなされるエンティティ、例えば、最も共通的に検索されたエンティティ、最も共通的にアクセスされたエンティティ、クロールされたドキュメント内で最も頻繁に発見されたエンティティ等であってもよい。当該機能セットはまた、特定のタスク、アクション、またはアプリケーションに使用されるエンティティを含んでもよい。例えば、機能セットが、当該デバイスがＯＣＲを特定の言語で実施できるようにするエンティティ、または、絵画鑑賞アプリケーションにより使用されるエンティティ等を含んでもよい。機能セットはまた、位置ベースのおよびトピックベースのセットの組合せ、例えば、オレゴン州ポートランドの映画館またはワシントンＤＣのナショナル・モニュメントを含んでもよい。幾つかの実装では、当該システムはエンティティ人気度を、機能的なエンティティの固定セットに対する関連性スコアとして使用してもよい。幾つかの実装では、固定セットを、ユーザがインストールしたアプリケーションに基づいて高く順位付けてもよい。次いで、コンピューティング・デバイスのユーザに関連するエンティティの固定セットを識別し関連性スコアを各セットに割り当てて、プロセス８００は終了する。
【００５８】
図９は、開示された実装に従う、セット利用パラメータに基づいて、エンティティの固定セットをクライアント・デバイスのユーザに関連するエンティティの固定セットから選択するための１つの例示的なプロセス９００の流れ図を示す。プロセス９００を、図１のシステム１００のような個別化されたエンティティ・リポジトリシステムにより実施してもよい。プロセス９００を図７のステップ７１５の一部としてクライアント・デバイスに実施して、どのユーザに関連するエンティティの固定セットまたはスライスがセット利用パラメータおよび順位に基づいてパーソナル・エンティティ・リポジトリに含めるために選択されるかを判定してもよい。プロセス９００は、セットのカウントおよびモデルサイズ変数を初期化するステップにより開始する。当該セットのカウントをゼロに設定してもよく、当該リポジトリ・サイズはまた、ゼロに設定されてもよい。当該システムはついで、関連すると識別された固定セットから最高順位をもつ固定セットを選択してもよい（９１０）。当該システムは当該セット利用パラメータが量パラメータを含むかどうかを判定してもよい（９１５）。当該量パラメータは図２の最大セット２１５であり、当該個別化されたエンティティ・リポジトリ内にありうる固定セットの数に対する制限を表す。量パラメータがある場合（９１５、はい）、当該システムは当該セットのカウントを１だけ増大してもよい（９２０）。当該システムはついで、当該セットのカウントが当該量パラメータより大きいかどうかを判定してもよい（９２５）。そうである場合、当該固定セットが当該セット利用パラメータにより表される制限を超えるであろうので、プロセス９００は終了してもよい。しかし、最高順位のセットに対して、当該セットのカウントが当該量パラメータより大きくなく（９２５、Ｎｏ）、そのため当該システムはステップ９３０で継続する。
【００５９】
当該システムは、当該セット利用パラメータが空間パラメータを含むかどうかを判定する（９３０）。当該空間パラメータを、指定された量のメモリ（例えば、図２の最大記憶２１０）または利用可能なメモリのパーセント（例えば、図２の記憶２２０のパーセント）、またはこれらの組合せと表現してもよい。当該セット利用パラメータが空間パラメータを含む場合（９３０、はい）、当該システムは、検査されている固定セットのサイズを当該リポジトリ・サイズに追加してもよい（９５３）。当該サイズは既知であってもよく、または、例えば、エンティティの固定セットの平均サイズに基づいて推定してもよい。当該システムは当該リポジトリ・サイズが当該空間パラメータより大きいかどうかを判定してもよい（９４０）。そうである場合（９４０、はい）、当該固定セットは当該セット利用パラメータにより確立された制限に違反するであろうので、プロセス９００は終了する。そうでなければ（９４０、いいえ）、当該システムは当該セットを当該選択されたセットに追加する（９４５）。当該選択されたセットは、当該セット利用パラメータが確立した限界を満たすユーザに関連するとして識別された最高順位の固定セットである。当該識別されたセット内の別のセット（例えば、ユーザに関連するとして識別された固定セット）がある場合（９５０、はい）、当該システムは次の最高順位のセットを選択し（９５５）、上述のステップ９１５乃至９５０で継続してもよい。他のセットが当該識別されたセットに存在しない場合（９５０、いいえ）、当該セット利用パラメータに基づいて当該リポジトリに含まれるべきセットを識別して、プロセス９００は終了する。
【００６０】
図１０は汎用コンピュータ・デバイス１０００の例を示す。汎用コンピュータ・デバイス１０００は図１のサーバ１１０、および／またはクライアント・デバイス１５０として動作してもよく、それらを本明細書で説明した技術とともに使用してもよい。コンピューティング・デバイス１０００は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、携帯電話、スマートフォン、タブレット、サーバ、およびウェラブルデバイスを含む他のコンピューティング・デバイスのような様々な例示的な形態のコンピューティング・デバイスを表すことを意図する。本明細書で示したコンポーネント、それらの接続および関係、およびそれらの機能は例にすぎず、本明細書で説明および／またはクレームされた本発明の実装を限定することを意味しない。
【００６１】
コンピューティング・デバイス１０００は、インタフェース１００８を介して接続されたプロセッサ１００２、メモリ１００４、記憶デバイス１００６、および拡張ポート１０１０を含む。幾つかの実装では、コンピューティング・デバイス１０００が、他のコンポーネントのうち、インタフェース１００８を介して接続されたトランシーバ１０４６、通信インタフェース１０４４、およびＧＰＳ（全地球測位システム）受信機モジュール１０４８を含んでもよい。デバイス１０００は通信インタフェース１０４４を通じて無線で通信してもよく、通信インタフェース１０４４が、必要に応じてデジタル信号処理回路を含んでもよい。当該コンポーネント１００２、１００４、１００６、１００８、１０１０、１０４０、１０４４、１０４６、および１０４８の各々を共通マザーボードにまたは必要に応じて他の方式でマウントしてもよい。
【００６２】
プロセッサ１００２は、ディスプレイ１０１６のような外部入出力デバイス上のＧＵＩに対するグラフィカル情報を表示するためのメモリ１００４または記憶デバイス１００６に格納された命令を含む、コンピューティング・デバイス１０００内で実行するための命令を処理することができる。ディスプレイ１０１６はモニタまたはフラットタッチスクリーンディスプレイであってもよい。幾つかの実装では、複数のプロセッサおよび／または複数のバスを複数のメモリおよびメモリのタイプとともに必要に応じて使用してもよい。また、複数のコンピューティング・デバイス１０００を接続してもよく、各デバイスは必要な動作の部分を（例えば、サーバ・バンク、１群のブレードサーバ、またはマルチプロセッサシステムとして）提供する。
【００６３】
メモリ１００４は情報をコンピューティング・デバイス１０００内に記憶する。１実装では、メモリ１００４は１つまたは複数の揮発性メモリ・ユニットである。別の実装において、メモリ１００４は１つまたは複数の不揮発性メモリ・ユニットである。メモリ１００４はまた、磁気または光ディスクのような別の形態のコンピュータ可読媒体であってもよい。幾つかの実装では、メモリ１００４が、拡張インタフェースを通じて提供される拡張メモリを含んでもよい。
【００６４】
記憶デバイス１００６は大容量記憶をコンピューティング・デバイス１０００に提供することができる。１実装では、記憶デバイス１００６は、記憶領域ネットワークまたは他の構成でのデバイスを含む、フロッピディスクデバイス、ハード・ディスクデバイス、光ディスクデバイス、またはテープ・デバイス、フラッシュ・メモリまたは他の同様な固体メモリデバイス、またはデバイスのアレイのようなコンピュータ可読媒体であるかまたはそれを含んでもよい。コンピュータプログラム製品をかかるコンピュータ可読媒体で有形に具現化することができる。
当該コンピュータプログラム製品はまた、実行されたとき、上述したもののような１つまたは複数の方法を実施する命令を含んでもよい。当該コンピュータまたはマシン可読媒体はメモリ１００４、記憶デバイス１００６、またはプロセッサ上のメモリ１００２のような記憶デバイスである。
【００６５】
インタフェース１００８は当該コンピューティング・デバイスに対する帯域幅集約的動作を管理する高速コントローラ１０００または低帯域幅集約的動作を管理する低速コントローラ、またはかかるコントローラの組合せであってもよい。外部インタフェース１０４０をデバイス１０００の他のデバイスとの近領域通信を可能とするために提供してもよい。幾つかの実装では、コントローラ１００８を記憶デバイス１００６および拡張ポート１０１４に接続してもよい。様々な通信ポート（例えば、ＵＳＢ、Bluetooth(登録商標)、Ｅｔｈｅｒｎｅｔ、無線Ｅｔｈｅｒｎｅｔ）を含みうる拡張ポートをキーボード、ポインティング・デバイス、スキャナのような１つまたは複数の入出力デバイス、または例えば、ネットワークアダプタを通じてスイッチまたはルータのようなネットワーク・デバイスに接続してもよい。
【００６６】
コンピューティング・デバイス１０００を、図面で示すように幾つかの異なる形態で実装してもよい。例えば、それを、標準サーバ１０３０として、または１群のかかるサーバ内で複数回実装してもよい。それをまた、ラック・サーバシステムの一部として実装してもよい。さらに、それを、ラップトップコンピュータ１０３２、パーソナル・コンピュータ１０３４、またはタブレット／スマートフォン１０３６のようなコンピューティング・デバイスで実装してもよい。システム全体が互いに通信する複数のコンピューティング・デバイス１０００で構成されてもよい。他の構成が可能である。
【００６７】
図１１は汎用コンピュータ・デバイス１１００の例を示す。これは図１のサーバ１１０であってもよく、これを本明細書で説明した技術で使用してもよい。コンピューティング・デバイス１１００は、サーバ、ブレードサーバ、データ・センタ、メインフレーム、および他の大規模コンピューティング・デバイスのような様々な例示的な形態の大規模データ処理デバイスを表すものである。コンピューティング・デバイス１１００は、１つまたは複数の通信ネットワークにより相互接続される、おそらくネットワーク取付記憶ノードを含む複数のプロセッサを有する分散システムであってもよい。本明細書で示したコンポーネント、それらの接続および関係、およびそれらの機能は例にすぎず、本願で説明および／またはクレームした本発明の諸実装を限定することを意味しない。
【００６８】
分散コンピューティング・システム１１００が、任意数のコンピューティング・デバイス１１８０を含んでもよい。コンピューティング・デバイス１１８０が、ローカルまたは広域ネットワーク、専用光リンク、モデム、ブリッジ、ルータ、スイッチ、有線または無線ネットワーク等を介して通信するサーバまたはラック・サーバ、メインフレーム等を含んでもよい。
【００６９】
幾つかの実装では、各コンピューティング・デバイスが、は複数のラックを含んでもよい。例えば、コンピューティング・デバイス１１８０ａは複数のラック１１５８ａ−１１５８ｎを含む。各ラックが、プロセッサ１１５２ａ−１１５２ｎおよび１１６２ａ−１１６２ｎのような１つまたは複数のプロセッサを含んでもよい。当該プロセッサが、データプロセッサ、ネットワーク取付記憶デバイス、および他のコンピュータ制御されたデバイスを含んでもよい。幾つかの実装では、或るプロセッサはマスタプロセッサとして動作してもよく、スケジューリングおよびデータ分散タスクを制御してもよい。プロセッサは１つまたは複数のラックスイッチ１１５８を介して相互接続されてもよく、１つまたは複数のラックを、スイッチ１１７８を通じて接続してもよい。スイッチ１１７８は複数の接続されたコンピューティング・デバイス１１００間の通信を扱ってもよい。
【００７０】
各ラックが、メモリのようなメモリ１１５４およびメモリ１１６４、および、１１５６および１１６６のような記憶を含んでもよい。記憶１１５６および１１６６は大容量記憶を提供してもよく、記憶領域ネットワークまたは他の構成内のデバイスを含む、ネットワーク取付ディスク、フロッピディスク、ハード・ディスク、光ディスク、テープ、フラッシュ・メモリまたは他の同様な固体メモリデバイス、またはデバイスのアレイのような揮発性または不揮発性記憶を含んでもよい。記憶１１５６または１１６６は複数のプロセッサ、複数のラック、または複数のコンピューティング・デバイスの間で共有されてもよい、当該プロセッサの１つまたは複数により実行可能な命令を格納するコンピュータ可読媒体を含んでもよい。メモリ１１５４および１１６４が、例えば、磁気または光ディスク、フラッシュ・メモリ、キャッシュ、ランダム・アクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、およびそれらの組合せのような１つまたは複数の揮発性メモリ・ユニット、１つまたは複数の不揮発性メモリ・ユニット、および／または他の形態のコンピュータ可読媒体を含んでもよい。メモリのようなメモリ１１５４がまた、プロセッサ１１５２ａ−ｌ１５２ｎの間で共有されてもよい。インデックスのようなデータ構造を例えば記憶１１５６およびメモリ１１５４にわたって格納してもよい。
コンピューティング・デバイス１１００が、コントローラ、バス、入出力デバイス、通信モジュール等のような図示していない他のコンポーネントを含んでもよい。
【００７１】
サーバ１１０のようなシステム全体が、互いに通信する複数のコンピューティング・デバイス１１００で構成されてもよい。例えば、デバイス１１８０はデバイス１１８０ｂ、１１８０ｃ、および１１８０ｄと通信してもよく、これらは集合的にサーバ１１０として知られ得る。別の例として、図１のシステム１００が、１つまたは複数のコンピューティング・デバイス１１００を含んでもよい。当該コンピューティング・デバイスの幾つかが互いと地理的に近接して配置されてもよく、その他が地理的に離れて配置されてもよい。システム１１００のレイアウトは例にすぎず、当該システムは他のレイアウトまたは構成をとってもよい。
【００７２】
当該開示の特定の態様によれば、モバイル・デバイスはディスプレイ・デバイス、メモリに格納された個別化されたエンティティ・リポジトリを含む。当該個別化されたエンティティ・リポジトリは、サーバに格納されたエンティティ・リポジトリからのエンティティの複数の固定セットを含み、各固定セットは各識別子を有し、当該セット内の当該エンティティに関する情報、少なくとも１つのプロセッサ、および当該少なくとも１つのプロセッサにより実行されたとき、当該モバイル・デバイスに動作を実施させる命令を格納したメモリを含む。当該動作は、当該モバイル・デバイスのユーザに関連する当該エンティティ・リポジトリの固定セットを、当該モバイル・デバイスに関連付けられたコンテキストに基づいて識別するステップと、関連性により当該固定セットを順位づけるステップと、順位およびユーザに適用可能なセット利用パラメータを用いて、および当該個別化されたエンティティ・リポジトリを更新するステップ当該選択されたセットを用いて、当該識別された固定セットから選択されたセットを決定するステップとを含む。
【００７３】
この態様および他の態様は以下の特徴の１つまたは複数を含むことができる。例えば、当該個別化されたエンティティ・リポジトリを更新するステップを、第１の固定された１組の当該識別された固定セットは当該個別化されたエンティティ・リポジトリに存在しないと判定したことに応答して、行ってもよい。別の例として、当該個別化されたエンティティ・リポジトリを更新するステップは、選択されたセットではない当該個別化されたエンティティ・リポジトリ内のセットを除去するステップを含むことができる。別の例として、当該セット利用パラメータは固定セットの量および／または当該個別化されたエンティティ・リポジトリに割り当てられるメモリの量を含むことができ、当該量はユーザにより設定される。別の例として、当該個別化されたエンティティ・リポジトリに格納された当該複数の固定セットは位置セットを含むことができる。位置セット内のエンティティは同一のセルに配置される。別の例として、当該個別化されたエンティティ・リポジトリに格納された当該複数の固定セットはトピック・セットを含み、トピック・セット内のエンティティは、エンティティ特性に基づいてクラスタ化されたエンティティである。幾つかの実装では、第１のトピック・セットの順位は、当該ディスプレイ・デバイスで表示するために生成されたコンテンツで認識されたアイテムに基づいて予測モデルにより割り当てられた順位である。別の例として、当該個別化されたエンティティ・リポジトリを更新するステップは、当該個別化されたエンティティ・リポジトリに現在存在していない固定セットを追加し、当該個別化されたエンティティ・リポジトリに存在する固定セットのデルタを使用するステップを含むことができる。
【００７４】
別の例として、当該動作はまた、当該個別化されたエンティティ・リポジトリを用いて当該ディスプレイ・デバイスで表示するために生成されたコンテンツ内のエンティティを識別するステップを含んでもよい。別の例として、当該複数のセットの各々はバージョン識別子を有し、当該バージョン識別子は、特定のセットへの更新が当該個別化されたエンティティ・リポジトリのスキーマを壊したときに変化する。別の例として、当該動作はまた、第１の固定セットを当該選択されたセットから識別する情報およびユーザが当該第１の固定セットのインスタレーションを受け入れることを可能とするように構成されたコントロールの表示を開始するステップおよびユーザがインストールを受け入れたとき、当該第１の固定セットをダウンロードし、それを当該個別化されたエンティティ・リポジトリに追加するステップとを含んでもよい。別の例として、当該コンテキストに基づいてユーザに関連する当該エンティティ・リポジトリの固定セットを識別するステップは、当該モバイル・デバイスの位置を決定して、当該位置を用いてユーザに関連する位置ベースの固定セットを決定するステップと、セット予測モデルを用いて、ユーザに関連するトピックベースのセットを識別するステップと、当該モバイル・デバイスにインストールされた少なくとも１つのアプリケーションにより識別されたセットを決定するステップとを含むことができる。別の例として、当該コンテキストに基づいてユーザに関連する当該エンティティ・リポジトリの固定セットを識別するステップは、当該モバイル・デバイスで以前に参照されたコンテンツを決定するステップおよび以前に参照された当該コンテンツを、少なくとも１つのトピックベースのセットを以前に参照された当該コンテンツから予測するように構成されたセット予測モデルに提供するステップおよび／または当該モバイル・デバイスで行われた最近の検索を決定するステップおよび当該最近の検索からの当該コンテンツを、少なくとも１つのトピックベースのセットを当該コンテンツから予測するように構成されたセット予測モデルに提供するステップとを含むことができる。別の例として、当該コンテキストに基づいてユーザに関連する当該エンティティ・リポジトリの固定セットを識別するステップは、当該モバイル・デバイスのユーザにより実施されたアクティビティを決定するステップおよび当該アクティビティに基づいて、エンティティの固定セットを予測するステップとを含むことができる。
【００７５】
当該開示の特定の態様によれば、方法は、モバイル・デバイスのディスプレイ上でコンテンツを表示するように構成されたスクリーン・キャプチャされた画像を受信するステップと、テキスト認識を当該画像で実施し、当該テキストをセット予測モデルに提供することで当該画像内のテキストを決定するステップであって、当該セット予測モデルは、エンティティの１つまたは複数の固定セットを予測するようにトレーニングされる、ステップと、エンティティの当該予測された固定セットのエンティティの少なくとも１つの固定セットを、当該モバイル・デバイス上のメモリ内の個別化されたエンティティ・リポジトリに格納するステップとを含む。
【００７６】
これらのおよび他の態様は以下の特徴の１つまたは複数を含むことができる。例えば、当該方法はまた、当該個別化されたエンティティ・リポジトリを用いてスクリーン・キャプチャ画像内のエンティティを識別するステップを含んでもよい。当該方法はまた、スクリーン・キャプチャ画像において認識されたコンテンツに関連付けられた位置を決定するステップと、当該位置を当該セット予測モデルに提供するステップであって、当該セット予測モデルは、当該位置に基づいてエンティティの少なくとも１つの位置ベースの固定セットを予測する、ステップと、当該位置ベースのエンティティの固定セットを当該個別化されたエンティティ・リポジトリに格納するステップとを含んでもよい。別の例として、当該予測モデルは、エンティティの複数の予測された固定セットを予測してもよく、当該方法はまた、エンティティの当該予測された固定セットの各々を順位づけるステップと、セット利用パラメータおよび順位を用いて、エンティティの選択された固定セットをエンティティの当該予測された固定セットから決定するステップおよびエンティティの当該選択された固定セットを当該個別化されたエンティティ・リポジトリに格納するステップとを含む。
【００７７】
当該開示の特定の態様によれば、方法が、エンティティの複数の固定セットをエンティティ・リポジトリから生成するステップを含んでもよい。当該固定セットは、位置ベースのセットであって、各位置ベースのセットは、セル内部の位置を有する当該エンティティ・リポジトリからのエンティティを含み、当該セルは当該セットに関連付けられる、位置ベースのセット、およびトピックベースのセットであって、当該トピックベースのセットの少なくとも幾つかは、埋込み類似性を介して互いに関連する当該エンティティ・リポジトリからのエンティティを含む、トピックベースのセットとを含む。当該方法はまた、エンティティの当該固定セットのサブセットをクライアント・デバイスに提供するステップであって、クライアント・デバイスは、クライアント・デバイスの位置およびクライアント・デバイスで表示するために生成されたコンテンツで識別される認識されたアイテムに基づいて当該サブセットを要求する、ステップを含んでもよい。
【００７８】
これらのおよび他の態様は以下の特徴の１つまたは複数を含むことができる。例えば、当該方法はまた、当該エンティティ・リポジトリに追加された少なくとも１つのエンティティを識別するステップと、当該追加されたエンティティが属する少なくとも１つの固定セットを判定するステップと、当該追加されたエンティティを含む当該少なくとも１つの固定セットに対するデルタを生成するステップとを含んでもよい。別の例として、当該方法はまた、当該エンティティ・リポジトリに追加された少なくとも１つのエンティティを識別するステップと、当該追加されたエンティティが属する少なくとも１つの固定セットを判定するステップと、当該固定セットのスキーマが変更されたと判定するステップと、当該少なくとも１つの固定セットの新たなバージョンを生成するステップであって、当該新たなバージョンは当該追加されたエンティティを含み、新たなバージョン識別子を有する、ステップとを含んでもよい。別の例として、当該トピックベースのセットの少なくとも幾つかがシード・エンティティと同様なエンティティを含んでもよく、かつ／または、当該固定セットはまた機能セットを含んでもよく、当該機能セットのうち少なくとも１つは最も人気があるとみなされるエンティティを含む。
【００７９】
様々な実装は、記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスとデータおよび命令を送受信するように接続された、特殊目的または汎用目的でありうる少なくとも１つのプログラム可能プロセッサを含むプログラム可能システムで実行可能および／または解釈可能な１つまたは複数のコンピュータプログラムでの実装を含むことができる。
【００８０】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる）はプログラム可能プロセッサに対するマシン命令を含み、高レベル手続き型および／またはオブジェクト指向プログラミング言語、および／またはアセンブリ／マシン言語で実装することができる。本明細書で使用する際、「マシン可読媒体」「コンピュータ可読媒体」という用語は、マシン命令および／またはデータをプログラム可能プロセッサに提供するために使用される、任意の非一時的コンピュータプログラム製品、装置および／またはデバイス（例えば、磁気ディスク、光ディスク、（読取りアクセスメモリを含む）メモリ、プログラム可能論理デバイス（ＰＬＤ））を指す。
【００８１】
本明細書で説明したシステムおよび技術を、バックエンドコンポーネントを（例えば、データサーバとして）含むか、またはミドルウェアコンポーネント（例えば、アプリケーションサーバ）を含むか、またはフロントエンドコンポーネント（例えば、ユーザがそれを通じて本明細書で説明したシステムおよび技術の実装と対話できるグラフィカルユーザ・インタフェースまたはウェブ・ブラウザを有するクライアントコンピュータ）、またはかかるバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティング・システムで実装することができる。当該システムの当該コンポーネントを、任意の形態または媒体のデジタルデータ通信（例えば、通信ネットワーク）により相互接続することができる。通信ネットワークの例はローカル・エリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、およびインターネットを含む。
【００８２】
コンピューティング・システムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する。クライアントおよびサーバの当該関係は、当該夫々のコンピュータ上で実行され互いに対してクライアント・サーバ関係を有するコンピュータプログラムにより生ずる。
【００８３】
幾つかの実装を説明した。それにも関わらず、添付の特許請求の範囲で定義される本発明の範囲から逸脱せずに、様々な修正を行ってもよい。さらに、図面で示した論理フローは所望の結果を実現するために、示した特定の順序、または逐次的順序を要求しない。さらに、他のステップを提供してもよいか、またはステップを当該説明されたフローから削除してもよく、他のコンポーネントを当該説明されたシステムに追加するか、または、そこから削除してもよい。
したがって、他の実装は添付の特許請求の範囲内にある。
【符号の説明】
【００８４】
１１０  サーバ
１２０  エンティティ・セット生成エンジン
１２２  セット予測モデル
１３０  エンティティ・リポジトリ
１３２  固定エンティティ・セット
１３４  検索レコード
１３６  クロールされたドキュメント
１４０  ネットワーク
１５０  クライアント・デバイス
１５５  アプリ
１５７  データ
１６０  スクリーン・コンテンツ・エージェント
１６２  セット識別エンジン
１６４  セット予測モデル
１７２  スクリーン・キャプチャ・インデックス
１７６  個別化されたエンティティ・リポジトリ
１９０  クライアント・デバイス
１９５  モバイル・アプリ
１９７  データ
【図１】
0006655180.tif 000002
【図２】
0006655180.tif 000003
【図３】
0006655180.tif 000004
【図４】
0006655180.tif 000005
【図５】
0006655180.tif 000006
【図６】
0006655180.tif 000007
【図７】
0006655180.tif 000008
【図８】
0006655180.tif 000009
【図９】
0006655180.tif 000010
【図１０】
0006655180.tif 000011
【図１１】
0006655180.tif 000012