(57)【特許請求の範囲】
【請求項１】
エンティティの第１のセット内の各エンティティに対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを１つまたは複数のコンピューティングデバイスによって修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を含む、方法。
【請求項２】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項１に記載の方法。
【請求項３】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項１に記載の方法。
【請求項４】
前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項１に記載の方法。
【請求項５】
前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項４に記載の方法。
【請求項６】
前記ディープラーニングモデルが、スキップグラムネガティブダウンサンプリングを使用して訓練される、請求項１に記載の方法。
【請求項７】
前記埋め込み空間内の各埋め込みが、個々のベクトル表現に対応する、請求項１に記載の方法。
【請求項８】
ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第１のコンテキストから第２のコンテキストに変更されたことを検出することと、
前記第２のコンテキストに関連するものとして１つまたは複数の埋め込みを識別することであって、
前記第２のコンテキストと関連付けられた前記埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
検索アルゴリズムを前記埋め込み空間に適用すること
によって、識別することと
をさらに含み、識別されたエンティティの１つまたは複数の埋め込みに対応するポイントが、前記第２のコンテキストと関連付けられた前記埋め込み空間内の判断されたポイントに対応する前記ポイントの閾値距離内にある、請求項７に記載の方法。
【請求項９】
クエリを受け取ることであって、前記クエリがユーザによって入力される、受け取ることと、
前記クエリをベクトル表現に変換することと、
前記クエリと関連付けられた前記埋め込み空間内のポイントを識別するために前記ベクトル表現を評価することと、
検索アルゴリズムを前記埋め込み空間に適用することによって、前記クエリに関連するものとして１つまたは複数のエンティティを識別することであって、識別されたエンティティの１つまたは複数の埋め込みに対応するポイントが、前記クエリと関連付けられた前記埋め込み空間内の識別されたポイントに対応する前記ポイントの閾値距離内にある、識別することと
をさらに含む、請求項７に記載の方法。
【請求項１０】
ソフトウェアを具体化する１つまたは複数のコンピュータ可読非一時的ストレージ媒体であって、前記ソフトウェアは、実行されると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を行うように動作可能である、１つまたは複数のコンピュータ可読非一時的ストレージ媒体。
【請求項１１】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項１０に記載の媒体。
【請求項１２】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項１０に記載の媒体。
【請求項１３】
前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項１０に記載の媒体。
【請求項１４】
前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項１３に記載の媒体。
【請求項１５】
１つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を有する、前記プロセッサに連結されたメモリとを備えるシステムであって、前記プロセッサが、前記命令を実行すると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を行うように動作可能である、システム。
【請求項１６】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項１５に記載のシステム。
【請求項１７】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項１５に記載のシステム。
【請求項１８】
前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含む、請求項１５に記載のシステム。
【請求項１９】
前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、請求項１８に記載のシステム。
【請求項２０】
埋め込み空間内のデータストアに格納されたデータオブジェクトに対応するエンティティのセットを埋め込むためのコンピュータ実装方法であって、
エンティティの第１のセット内の各エンティティに対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを１つまたは複数のコンピューティングデバイスによって修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を含む、方法。
【請求項２１】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項２０に記載の方法。
【請求項２２】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項２０または２１に記載の方法。
【請求項２３】
前記複数のエンティティが、
ソーシャルネットワーキングシステム内の複数のページと、
ソーシャルグラフのエンティティと関連付けられたページと、
ウェブページと、
他の任意の適切なエンティティと
のうちの少なくとも１つを含み、
ならびに／または
前記エンティティ属性タイプが、
ページと関連付けられたトピック、
ページと関連付けられたカテゴリ、
ページと関連付けられたロケーション、
ページと関連付けられたユーザ、
ページと関連付けられたサイズ、および
エンティティの他の任意の適切なプロパティ
のうちの少なくとも１つに対応する、
請求項２０から２２のいずれか一項に記載の方法。
【請求項２４】
前記ディープラーニングモデルが、スキップグラムネガティブダウンサンプリングを使用して訓練される、請求項２０から２３のいずれか一項に記載の方法。
【請求項２５】
前記埋め込み空間内の各埋め込みが、個々のベクトル表現に対応し、
好ましくは、
ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第１のコンテキストから第２のコンテキストに変更されたことを検出することと、
前記第２のコンテキストに関連するものとして１つもしくは複数の埋め込みを識別することであって、
前記第２のコンテキストと関連付けられた前記埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
検索アルゴリズムを前記埋め込み空間に適用すること
によって、識別することと
をさらに含み、識別されたエンティティの１つもしくは複数の埋め込みに対応するポイントが、前記第２のコンテキストと関連付けられた前記埋め込み空間内の判断されたポイントに対応する前記ポイントの閾値距離内にあり、ならびに／または
好ましくは、
クエリを受け取ることであって、前記クエリがユーザによって入力される、受け取ることと、
前記クエリをベクトル表現に変換することと、
前記クエリと関連付けられた前記埋め込み空間内のポイントを識別するために前記ベクトル表現を評価することと、
検索アルゴリズムを前記埋め込み空間に適用することによって、前記クエリに関連するものとして１つもしくは複数のエンティティを識別することであって、前記識別されたエンティティの１つもしくは複数の埋め込みに対応するポイントが、前記クエリと関連付けられた前記埋め込み空間内の識別されたポイントに対応する前記ポイントの閾値距離内にある、識別することと
をさらに含む、
請求項２０から２４のいずれか一項に記載の方法。
【請求項２６】
ソフトウェアを具体化する１つまたは複数のコンピュータ可読非一時的ストレージ媒体であって、前記ソフトウェアは、実行されると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を行うように動作可能である、１つまたは複数のコンピュータ可読非一時的ストレージ媒体。
【請求項２７】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項２６に記載の媒体。
【請求項２８】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項２６または２７に記載の媒体。
【請求項２９】
前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを備え、
好ましくは、前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、
請求項２６から２８のいずれか一項に記載の媒体。
【請求項３０】
１つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を有する、前記プロセッサに連結されたメモリとを備えるシステムであって、前記プロセッサが、前記命令を実行すると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの前記第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
前記埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
前記エンティティの前記埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の前記第１のセット内の前記エンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の前記第１のセットの各エンティティ属性が、前記複数のエンティティの少なくとも１つのエンティティと関連付けられ、
前記エンティティ属性の前記埋め込みが、前記ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの前記第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
を行うように動作可能である、システム。
【請求項３１】
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの前記第２のセットが、前記複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の前記第２のセット内の各エンティティが、前記エンティティ属性タイプのものである、判断することと、
エンティティの前記第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みに基づいて、エンティティの前記第１および第２のセット内の前記エンティティの前記埋め込みを修正することであって、前記更新された埋め込みが、前記個々のエンティティと関連付けられている前記エンティティ属性に関する情報を含む、修正することと
をさらに含む、請求項３０に記載のシステム。
【請求項３２】
各エンティティの前記埋め込みを修正することが、前記個々のエンティティと関連付けられている前記エンティティ属性の前記埋め込みと共にエンティティの前記第１のセット内の各エンティティの前記埋め込みをプールすることを含む、請求項３０または３１に記載のシステム。
【請求項３３】
前記複数のエンティティが、ソーシャルネットワーキングシステム内の複数のページを含み、
好ましくは、前記エンティティ属性タイプが、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザである、
請求項３０から３２のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、ディープラーニングモデルを訓練することに関する。
【背景技術】
【０００２】
ディープラーニングは、教師あり設定または教師なし設定のモデルを訓練することを含むことができる機械学習の一種である。ディープラーニングモデルは、データの表現を学習するように訓練されることが可能である。限定ではなく、例として、ディープラーニングモデルは、強度値のベクトルとしてデータを表すことができる。強度値のベクトルは、埋め込み（ｅｍｂｅｄｄｉｎｇ）空間内のポイントに対応することが可能である。ディープラーニングモデルは、埋め込み空間内で、有意義に異種データを圧縮する埋め込みを生成するために使用されることが可能である。
【発明の概要】
【０００３】
特定の実施形態において、システムは、ディープラーニングモデルを使用して、入力されたコンテンツ項目に類似の１つまたは複数のコンテンツ項目を識別することができる。ディープラーニングモデルは、多次元埋め込み空間内の埋め込みにエンティティをマッピングするように訓練されることが可能である。各埋め込みは、埋め込み空間内のポイントの座標に対応することが可能である。ディープラーニングモデルは、エンティティの属性を組み込むエンティティの埋め込みを生成するように訓練されることが可能である。したがって、異なる変数（すなわち、異なるタイプのエンティティ属性）は、エンティティの埋め込みを介して同じ埋め込み空間内で表されることが可能である。
【０００４】
エンティティ属性を組み込むエンティティの埋め込みは、任意の数の適切なタスクを達成するために使用されることが可能である。埋め込みされたエンティティは、ベクトル演算（すなわち、ベクトル加算およびベクトル減算）が、エンティティの対応するベクトル表現に対して行われることが可能なように、有効に圧縮される属性のエンティティを含むことができる。システムは、検索アルゴリズムを用いて、埋め込み空間内のポイントに近似のものとして、エンティティの１つまたは複数の埋め込みを識別することができ、ここでポイントは、ベクトル代数を使用して判断される。限定ではなく、例として、システムは、クライアントシステムにおいてユーザによって入力される、受け取った検索クエリに応答して、エンティティの埋め込みを識別することができる。ユーザは質問を入力することができ、システムは、質問をベクトル演算に変換することができる。ベクトル演算は埋め込み空間に適用されてよく、１つまたは複数のエンティティは、質問に応じて識別されることが可能である。識別されたエンティティは、（例えば、メッセージングプラットフォーム、ソーシャルネットワーキングシステムと関連付けられたアプリケーション、または他の任意の適切なアプリケーションといった）クライアントシステム上で動くアプリケーションのインターフェース上に提案としてユーザに表示されることが可能である。限定ではなく、別の例として、システムは、ベクトル演算を使用して、埋め込み空間内の特定のエンティティの補完物であるエンティティの埋め込みを識別することができる。限定ではなく、別の例として、エンティティは、ソーシャルネットワーキングシステムのページであってよく、システムは、ユーザのコンテキスト変更（例えば、ソーシャルネットワーキングシステム上のユーザのプロフィールのコンテキスト変更）に基づいて、ベクトル演算を用いることによってユーザに対するコンテキストページの推奨を生成することができる。
【０００５】
本明細書で説明されるような本発明は、埋め込み空間内で、有効な方式で異種データを圧縮する埋め込みを生成するために、斬新な方式でディープラーニングモデルを実装し、したがって、ほぼ全種類のデータ、特に異種データのカタログ作成およびインデックス作成に関する技術的問題への解決策をもたらし、このデータセット内での後の計算および検索を可能にする。提案された解決策は、例えばソーシャルネットワーキングシステムといった大きなデータベースに追加され、存在するデータが、データオブジェクトのカタログ作成およびインデックス作成の従来の既知の解決策の能力を簡単に超えるときに有利である。特に、ソーシャルネットワーキングシステムにおいて、例えばソーシャルグラフの構造を含む異種データをデータベースに統合する必要があり、逆に、このデータを反映するために、データベースまたはソーシャルグラフ自体の構造を継続的に拡張する必要もある。
【０００６】
本発明による１つの実施形態において、方法は、
エンティティの第１のセット内の各エンティティに対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の第１のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第１のセットの各エンティティ属性が、複数のエンティティの少なくとも１つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１のセット内のエンティティの埋め込みを１つまたは複数のコンピューティングデバイスによって修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含む。
【０００７】
本発明による１つの実施形態において、埋め込み空間内のデータストアに格納されたデータオブジェクトに対応するエンティティのセットを埋め込むためのコンピュータ実装方法は、
エンティティの第１のセット内の各エンティティに対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティの第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを１つまたは複数のコンピューティングデバイスによって判断することであって、
エンティティ属性の第１のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第１のセットの各エンティティ属性が、複数のエンティティの少なくとも１つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１のセット内のエンティティの埋め込みを１つまたは複数のコンピューティングデバイスによって修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
【０００８】
本発明による１つの実施形態において、方法は、
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第２のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第２のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１および第２のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
【０００９】
各エンティティの埋め込みを修正することは、個々のエンティティと関連付けられているエンティティ属性の埋め込みと共にエンティティの第１のセット内の各エンティティの埋め込みをプールすることを含むことができる。
【００１０】
複数のエンティティは、ソーシャルネットワーキングシステム内の複数のページを含むことができる。
【００１１】
複数のエンティティは、
ソーシャルネットワーキングシステム内の複数のページ、ソーシャルグラフのエンティティと関連付けられたページ、ウェブページ、および他の任意の適切なエンティティ
のうちの少なくとも１つを含むことができる。
【００１２】
エンティティ属性タイプは、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、またはページと関連付けられたユーザであってよい。
【００１３】
エンティティ属性タイプは、ページと関連付けられたトピック、ページと関連付けられたカテゴリ、ページと関連付けられたロケーション、ページと関連付けられたユーザ、ページと関連付けられたサイズ、およびエンティティの他の任意の適切なプロパティのうちの少なくとも１つに対応することが可能である。
【００１４】
ディープラーニングモデルは、スキップグラムネガティブダウンサンプリングを使用して訓練されることが可能である。
【００１５】
埋め込み空間内の各埋め込みは、個々のベクトル表現に対応することが可能である。
【００１６】
本発明による１つの実施形態において、方法は、
ソーシャルネットワーキングシステムのユーザと関連付けられたコンテキスト項目が第１のコンテキストから第２のコンテキストに変更されたことを検出することと、
第２のコンテキストに関連するものとして１つまたは複数の埋め込みを識別することであって、
第２のコンテキストと関連付けられた埋め込み空間内のポイントを判断するためにベクトル演算を使用すること、および
検索アルゴリズムを埋め込み空間に適用すること
によって、識別することと
を含み、識別されたエンティティの１つまたは複数の埋め込みに対応するポイントが、第２のコンテキストと関連付けられた埋め込み空間内の判断されたポイントに対応するポイントの閾値距離内にある。
【００１７】
本発明による１つの実施形態において、方法は、
クエリを受け取ることであって、クエリがユーザによって入力される、受け取ることと、
クエリをベクトル表現に変換することと、
クエリと関連付けられた埋め込み空間内のポイントを識別するためにベクトル表現を評価することと、
検索アルゴリズムを埋め込み空間に適用することによって、クエリに関連するものとして１つまたは複数のエンティティを識別することであって、識別されたエンティティの１つまたは複数の埋め込みに対応するポイントが、クエリと関連付けられた埋め込み空間内の識別されたポイントに対応するポイントの閾値距離内にある、識別することと
を含むことができる。
【００１８】
本発明による１つの実施形態において、１つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の第１のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第１のセットの各エンティティ属性が、複数のエンティティの少なくとも１つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能になり得る。
【００１９】
本発明による１つの実施形態において、１つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第２のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第２のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１および第２のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能になり得る。
【００２０】
本発明による１つの実施形態において、システムは、１つまたは複数のプロセッサと、プロセッサによって実行可能な命令を有する、プロセッサに連結されたメモリとを備えることができ、プロセッサが、命令を実行すると、
エンティティの第１のセット内の各エンティティに対する埋め込みを判断することであって、
エンティティの第１のセットが、複数のエンティティから選択され、
各埋め込みが、埋め込み空間内のポイントに対応し、
埋め込み空間が、複数のエンティティの埋め込みに対応する複数のポイントを含み、
エンティティの埋め込みが、ディープラーニングモデルを使用して判断される、
判断することと、
エンティティ属性の第１のセット内の各エンティティ属性に対する埋め込みを判断することであって、
エンティティ属性の第１のセット内のエンティティ属性のそれぞれが、エンティティ属性タイプのものであり、
エンティティ属性の第１のセットの各エンティティ属性が、複数のエンティティの少なくとも１つのエンティティと関連付けられ、
エンティティ属性の埋め込みが、ディープラーニングモデルを使用して絞り込まれる、
判断することと、
エンティティの第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を行うように動作可能である。
【００２１】
本発明による１つの実施形態において、システムは、
エンティティの第２のセット内の各エンティティに対する埋め込みを判断することであって、エンティティの第２のセットが、複数のエンティティから選択される、判断することと、
エンティティ属性の第２のセット内の各エンティティ属性に対する埋め込みを判断することであって、エンティティ属性の第２のセット内の各エンティティが、エンティティ属性タイプのものである、判断することと、
エンティティの第１および第２のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて、エンティティの第１および第２のセット内のエンティティの埋め込みを修正することであって、更新された埋め込みが、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む、修正することと
を含むことができる。
【００２２】
本発明によるさらなる実施形態において、１つまたは複数のコンピュータ可読非一時的ストレージ媒体は、ソフトウェアを具体化し、ソフトウェアは、実行されると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
【００２３】
本発明によるさらなる実施形態において、システムは、１つまたは複数のプロセッサと、プロセッサに連結され、プロセッサによって実行可能な命令を有する少なくとも１つのメモリとを備え、プロセッサは、命令を実行すると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
【００２４】
本発明によるさらなる実施形態において、好ましくはコンピュータ可読非一時的ストレージ媒体を備えるコンピュータプログラム製品は、データ処理システム上で実行されると、本発明による方法、または上述の実施形態のいずれかを行うように動作可能である。
【００２５】
上記または下記で開示される実施形態は、単なる例にすぎず、本開示の範囲はこれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップの全てまたはいくつかを含むか、いずれも含まなくてもよい。本発明による実施形態は、方法、ストレージ媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲の中で具体的に開示されており、例えば、方法といった１つの請求項のカテゴリの中で言及されるいずれかの特徴は、例えばシステムといった別の請求項のカテゴリの中でも同様に特許請求されることが可能である。添付の特許請求の範囲に記載された従属性または参照は、正式な理由に対してのみ選ばれる。しかし、任意の先の請求項（特に多数項従属性）を意図的に参照した結果生じるいずれかの主題も同様に特許請求されることが可能であり、その結果、請求項と請求項の特徴との任意の組合せが開示され、添付の特許請求の範囲の中で選ばれる従属性にかかわらず特許請求されることが可能である。特許請求されることが可能な主題は、添付の特許請求の範囲に記載されている特徴の組合せだけでなく、特許請求の範囲内の特徴の他の任意の組合せも含み、特許請求の範囲に記載された各特徴は、特許請求の範囲内の他の任意の特徴、または他の特徴の組合せと組み合わされてよい。さらに、本明細書に記載されるか、描写される実施形態および特徴のいずれかは、別々の請求項において、および／あるいは本明細書に記載されるか、描写される任意の実施形態もしくは特徴との任意の組合せ、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで特許請求されることが可能である。
【図面の簡単な説明】
【００２６】
【図１】ソーシャルネットワーキングシステムと関連付けられたネットワーク環境の例を示す図である。
【図２】ソーシャルグラフの例を示す図である。
【図３】ディープラーニングモデルの例を示す図である。
【図４】エンティティおよび関連付けられたエンティティ属性を埋め込み空間に埋め込むための方法の例を示す図である。
【図５】ディープラーニングモデルを使用して生成された埋め込み空間のビューの例を示す図である。
【図６】関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法の例を示す図である。
【図７】コンピュータシステムの例を示す図である。
【発明を実施するための形態】
【００２７】
システムの全体像
図１は、ソーシャルネットワーキングシステムと関連付けられたネットワーク環境１００の例を示している。ネットワーク環境１００は、ネットワーク１１０によって互いに接続されたクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０を含む。図１は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０の特定の配置を示しているが、本開示は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０の任意の適切な配置を想定する。限定ではなく、例として、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０のうちの２つ以上が、ネットワーク１１０を迂回して、互いに直接的に接続されることが可能である。別の例として、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０のうちの２つ以上が、全体的または部分的に、物理的または論理的に互いに同じ場所に配置されることが可能である。さらに、図１は、特定の数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を想定する。限定ではなく、例として、ネットワーク環境１００は、複数のクライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、およびネットワーク１１０を含むことができる。
【００２８】
本開示は、任意の適切なネットワーク１１０を想定する。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、広域ネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、公衆交換電話網（ＰＳＴＮ）の一部、セルラー電話ネットワーク、またはこれらのうちの２つ以上の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００２９】
リンク１５０は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、およびサードパーティシステム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定する。特定の実施形態において、１つまたは複数のリンク１５０は、１つまたは複数の有線リンク（例えば、デジタル加入者線（ＤＳＬ）、もしくはデータオーバーケーブルサービスインターフェース仕様（ＤＯＣＳＩＳ）など）、ワイヤレスリンク（例えば、Ｗｉ−Ｆｉ、もしくはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（ＷｉＭＡＸ）など）、または光リンク（例えば、同期光ネットワーク（ＳＯＮＥＴ）、もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態において、１つまたは複数のリンク１５０はそれぞれ、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部、ＰＳＴＮの一部、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク１５０、または２つ以上のこのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通して必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の第２のリンク１５０とは１つまたは複数の点で相違してよい。
【００３０】
特定の実施形態において、クライアントシステム１３０は、ハードウェア、ソフトウェア、もしくは埋め込み式ロジックコンポーネント、または２つ以上のこのようなコンポーネントの組合せを含む電子デバイスであってよく、クライアントシステム１３０によって実装またはサポートされる適正な機能を実行することができる。限定ではなく、例として、クライアントシステム１３０は、デスクトップコンピュータ、ノートブックもしくはラップトップコンピュータ、ネットブック、タブレット型コンピュータ、ｅブックリーダ、ＧＰＳデバイス、カメラ、パーソナルデジタルアシスタント（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張現実デバイス／仮想現実デバイス、他の適切な電子デバイス、またはこれらの任意の適切な組合せなどのコンピュータシステムを含むことができる。本開示は、任意の適切なクライアントシステム１３０を想定する。クライアントシステム１３０は、クライアントシステム１３０のネットワークユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアントシステム１３０は、このユーザが、他のクライアントシステム１３０の他のユーザと通信することを可能にすることができる。
【００３１】
特定の実施形態において、クライアントシステム１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブブラウザ１３２を含むことができ、１つまたは複数のアドオン、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲなどの他の拡張を有することができる。クライアントシステム１３０のユーザは、ユニフォームリソースロケータ（ＵＲＬ）、またはウェブブラウザ１３２を特定のサーバ（サーバ１６２、もしくはサードパーティシステム１７０と関連付けられたサーバなど）に導く他のアドレスを入力することができ、ウェブブラウザ１３２は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、ＨＴＴＰ要求をサーバに通信することができる。サーバは、ＨＴＴＰ要求を受け入れ、ＨＴＴＰ要求に応答して、１つまたは複数のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルをクライアントシステム１３０に通信することができる。クライアントシステム１３０は、ユーザに提示するために、サーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを想定する。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。このようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ、ＪＡＶＡ、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴおよびＸＭＬ）などのマークアップ言語とスクリプトの組合せ、ならびに同様のものを実行することもできる。本明細書において、ウェブページへの言及は、適正な場合、（ウェブページをレンダリングするためにブラウザが使用できる）１つまたは複数の対応するウェブページファイルを含み、逆もまた同様である。
【００３２】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、オンラインソーシャルネットワークをホストできるネットワークアドレス可能なコンピューティングシステムであってよい。ソーシャルネットワーキングシステム１６０は、例えば、ユーザプロフィールデータ、コンセプトプロフィールデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関連した他の適切なデータなどのソーシャルネットワーキングデータを生成すること、格納すること、受け取ること、および送付することができる。ソーシャルネットワーキングシステム１６０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を介してアクセスされることが可能である。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、１つまたは複数のサーバ１６２を含むことができる。各サーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンタに及ぶ分散型サーバであってよい。サーバ１６２は、限定ではなく、例として、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ（ｅｘｃｈａｎｇｅ  ｓｅｒｖｅｒ）、データベースサーバ、プロキシサーバ、本明細書で説明される機能もしくは処理を行うのに適した別のサーバ、またはこれらの任意の組合せなどの様々なタイプのものでよい。特定の実施形態において、各サーバ１６２は、ハードウェア、ソフトウェア、あるいは埋め込み式ロジックコンポーネント、またはサーバ１６２によって実装もしくはサポートされる適正な機能を実行するための２つ以上のこのようなコンポーネントの組合せを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、１つまたは複数のデータストア１６４を含むことができる。データストア１６４は、様々なタイプの情報を格納するために使用されてよい。特定の実施形態において、データストア１６４に格納された情報は、固有のデータ構造に従って編成されてよい。特定の実施形態において、各データストア１６４は、リレーショナルデータベース、カラムナデータベース、相互関係データベース、または他の適切なデータベースであってよい。本開示は、データベースの特定のタイプを説明または図示しているが、本開示は、データベースの任意の適切なタイプを想定する。特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、またはサードパーティシステム１７０が、データストア１６４に格納された情報を管理、取得、修正、追加、または削除することを可能にするインターフェースを提供することができる。
【００３３】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、１つまたは複数のデータストア１６４に１つまたは複数のソーシャルグラフを格納することができる。特定の実施形態において、ソーシャルグラフは、（（それぞれが特定のユーザに対応する）複数のユーザノード、または（それぞれが特定のコンセプトに対応する）複数のコンセプトノードを含むことができる）複数のノードと、ノードに接続する複数のエッジとを含むことができる。ソーシャルネットワーキングシステム１６０は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供することができる。特定の実施形態において、ユーザは、ソーシャルネットワーキングシステム１６０を介してオンラインソーシャルネットワークに参加し、彼らがつなげられたいと思うソーシャルネットワーキングシステム１６０の他の何人かのユーザへのつながり（例えば関係）を追加することができる。本明細書で、用語「友達（ｆｒｉｅｎｄ）」は、ソーシャルネットワーキングシステム１６０を介してユーザがつながり、関連付け、または関係を形成した、ソーシャルネットワーキングシステム１６０の他の任意のユーザを指すことができる。
【００３４】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ソーシャルネットワーキングシステム１６０によってサポートされる様々なタイプのアイテムまたはオブジェクトに対するアクションを行う能力をユーザに提供することができる。限定ではなく、例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム１６０のユーザが属する可能性があるグループもしくはソーシャルネットワーク、ユーザが興味をもつ可能性があるイベントもしくはカレンダエントリ、ユーザが使用する可能性があるコンピュータベースのアプリケーション、サービスを介してユーザがアイテムを売買することを可能にするトランザクション、ユーザが行う可能性がある広告との対話、または他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャルネットワーキングシステム１６０内で表されることが可能な、またはソーシャルネットワーキングシステム１６０とは別のものであり、ネットワーク１１０を介してソーシャルネットワーキングシステム１６０に連結された、サードパーティシステム１７０の外部システムによって表されることが可能な、どのようなものとでも対話することができる。
【００３５】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、様々なエンティティをリンクできることが可能である。限定ではなく、例として、ソーシャルネットワーキングシステム１６０は、ユーザが互いに対話すること、ならびにサードパーティシステム１７０または他のエンティティからコンテンツを受け取ることを可能にすることができ、また、アプリケーションプログラミングインターフェース（ＡＰＩ）または他の通信チャネルを通じて、ユーザがこれらのエンティティと対話することを可能にすることができる。
【００３６】
特定の実施形態において、サードパーティシステム１７０は、サーバの１つもしくは複数のタイプ、１つもしくは複数のデータストア、ＡＰＩを含むが限定されない１つもしくは複数のインターフェース、１つもしくは複数のウェブサービス、１つもしくは複数のコンテンツソース、１つもしくは複数のネットワーク、または例えば、サーバが通信できる他の任意の適切な構成要素を含むことができる。サードパーティシステム１７０は、ソーシャルネットワーキングシステム１６０を運用するエンティティとは異なるエンティティによって運用されることが可能である。特定の実施形態において、しかし、ソーシャルネットワーキングシステム１６０およびサードパーティシステム１７０は、ソーシャルネットワーキングシステム１６０またはサードパーティシステム１７０のユーザにソーシャルネットワーキングサービスを提供するために、互いに協力して動作することができる。この意味では、ソーシャルネットワーキングシステム１６０は、ソーシャルネットワーキングサービスおよび機能をインターネット中のユーザに提供するために、サードパーティシステム１７０などの他のシステムが使用できるプラットフォームまたはバックボーンを提供することができる。
【００３７】
特定の実施形態において、サードパーティシステム１７０は、サードパーティコンテンツオブジェクトプロバイダを含むことができる。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム１３０に通信されることが可能なコンテンツオブジェクトの１つまたは複数のソースを含むことができる。限定ではなく、例として、コンテンツオブジェクトは、例えば、映画の上映時間、映画の批評、レストランの批評、レストランのメニュー、製品情報および批評、または他の適切な情報など、ユーザにとって関心のあるもの、またはアクティビティに関する情報を含むことができる。限定ではなく、別の例として、コンテンツオブジェクトは、クーポン、割引チケット、商品券、または他の適切なインセンティブオブジェクトなどの、インセンティブコンテンツオブジェクトを含むことができる。
【００３８】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ソーシャルネットワーキングシステム１６０とのユーザの対話を拡張できる、ユーザが生成したコンテンツオブジェクトも含む。ユーザが生成したコンテンツは、ソーシャルネットワーキングシステム１６０にユーザが、追加、アップロード、送付、または「ポスト」することができるどのようなものでも含むことができる。限定ではなく、例として、ユーザは、クライアントシステム１３０からソーシャルネットワーキングシステム１６０にポストを通信する。ポストは、ステータスアップデートもしくは他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、または他の類似のデータもしくは媒体などのデータを含むことができる。コンテンツは、ニュースフィードまたはストリームなど、「通信チャネル」を通じてサードパーティによってソーシャルネットワーキングシステム１６０に追加されてもよい。
【００３９】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ウェブサーバ、アクションロガー、ＡＰＩ要求サーバ、関連性ランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト公開ログ、推測モジュール、認可／プライバシサーバ、検索モジュール、広告ターゲットモジュール、ユーザインターフェースモジュール、ユーザプロフィールストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの１つまたは複数を含むことができる。ソーシャルネットワーキングシステム１６０は、ネットワークインターフェース、セキュリティメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク動作コンソール、他の適切な構成要素、またはこれらの任意の適切な組合せなどの、適切な構成要素を含むこともできる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ユーザプロフィールを格納するための１つまたは複数のユーザプロフィールストアを含むことができる。ユーザプロフィールは、例えば、経歴情報、人口統計学情報、行動情報、ソーシャル情報、あるいは職業経験、教育履歴、趣味もしくは好み、興味、親近感、またはロケーションなどの他のタイプの記述情報を含むことができる。興味情報は、１つまたは複数のカテゴリに関連した興味含むことができる。カテゴリは、一般的または固有のものであってよい。限定ではなく、例として、靴のブランドについての記事にユーザが「いいね！」と表明する場合、カテゴリは、このブランド、すなわち「靴」または「衣類」に関する一般的なカテゴリであってよい。つながりストアは、ユーザについてのつながり情報を格納するために使用されることが可能である。つながり情報は、類似もしくは共通の職業経験、グループメンバシップ、趣味、教育履歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザを示すことができる。つながり情報は、（内部と外部両方の）様々なユーザとコンテンツの間にあるユーザが定義したつながりを含むこともできる。ウェブサーバは、ネットワーク１１０を介して、１つもしくは複数のクライアントシステム１３０、または１つもしくは複数のサードパーティシステム１７０にソーシャルネットワーキングシステム１６０をリンクするために使用されることが可能である。ウェブサーバは、メールサーバ、またはソーシャルネットワーキングシステム１６０と１つまたは複数のクライアントシステム１３０との間のメッセージを受け取るため、およびルーティングするための他のメッセージ機能を含むことができる。ＡＰＩ要求サーバは、１つまたは複数のＡＰＩをコールすることによって、ソーシャルネットワーキングシステム１６０からの情報に、サードパーティシステム１７０がアクセスすることを可能にすることができる。アクションロガーは、ソーシャルネットワーキングシステム１６０上、または外でのユーザのアクションについての、ウェブサーバからの通信を受け取るために使用されることが可能である。アクションログと共に、サードパーティコンテンツオブジェクトへのユーザ公開に関する、サードパーティコンテンツオブジェクトログが維持されてよい。通知コントローラは、コンテンツオブジェクトに関する情報をクライアントシステム１３０に提供することができる。情報は、クライアントシステム１３０に通知としてプッシュされることが可能であり、また情報は、クライアントシステム１３０から要求が受け取られたことに応答してクライアントシステム１３０からプルされることが可能である。認可サーバは、ソーシャルネットワーキングシステム１６０のユーザの１つまたは複数のプライバシ設定を実施するために使用されることが可能である。ユーザのプライバシ設定は、ユーザと関連付けられた特定の情報がどのように共有されることが可能であるかを判断する。認可サーバは、ユーザのアクションが、ソーシャルネットワーキングシステム１６０によってログに記録されること、または例えば適正なプライバシ設定を設定することなどによって、他のシステム（例えばサードパーティシステム１７０）と共有されることについて、ユーザがオプトインまたはオプトアウトすることを可能にすることができる。サードパーティコンテンツオブジェクトストアは、サードパーティシステム１７０などのサードパーティから受け取られたコンテンツオブジェクトを格納するために使用されることが可能である。ロケーションストアは、ユーザと関連付けられたクライアントシステム１３０から受け取られたロケーション情報を格納するために使用されることが可能である。広告価格設定モジュールは、通知の形で関連広告をユーザに提供するために、ソーシャル情報、現在時刻、ロケーション情報、または他の適切な情報を組み合わせることができる。
【００４０】
ソーシャルグラフ
図２は、ソーシャルグラフ２００の例を示す。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、１つまたは複数のソーシャルグラフ２００を１つまたは複数のデータストアに格納することができる。特定の実施形態において、ソーシャルグラフ２００は、（複数のユーザノード２０２または複数のコンセプトノード２０４を含むことができる）複数のノードと、ノードを接続する複数のエッジ２０６とを含むことができる。説明のために、２次元の視覚マップ表現で、図２に示されるソーシャルグラフ２００の例が示される。特定の実施形態において、ソーシャルネットワーキングシステム１６０、クライアントシステム１３０、またはサードパーティシステム１７０は、適切なアプリケーションに対するソーシャルグラフ２００および関連ソーシャルグラフ情報にアクセスすることができる。ソーシャルグラフ２００のノードおよびエッジは、例えば（ソーシャルグラフデータベースなどの）データストアに、データオブジェクトとして格納されてよい。このようなデータストアは、ソーシャルグラフ２００のノードまたはエッジの１つまたは複数の検索可能またはクエリ可能なインデックスを含むことができる。
【００４１】
特定の実施形態において、ユーザノード２０２は、ソーシャルネットワーキングシステム１６０のユーザに対応することが可能である。限定ではなく、例として、ユーザは、ソーシャルネットワーキングシステム１６０と、またはソーシャルネットワーキングシステム１６０上で、対話または通信する個人（人間ユーザ）、エンティティ（例えば、企業、ビジネス、もしくはサードパーティアプリケーション）、または（例えば、個人もしくはエンティティの）グループであってよい。特定の実施形態において、ソーシャルネットワーキングシステム１６０にユーザがアカウントを登録すると、ソーシャルネットワーキングシステム１６０は、ユーザに対応するユーザノード２０２を作り出し、１つまたは複数のデータストアにユーザノード２０２を格納することができる。本明細書で説明されるユーザおよびユーザノード２０２は、適正な場合、登録済ユーザおよび登録済ユーザと関連付けられたユーザノード２０２を指すことができる。さらに、または代替として、本明細書で説明されるユーザおよびユーザノード２０２は、適正な場合、ソーシャルネットワーキングシステム１６０に登録されていないユーザを指すことができる。特定の実施形態において、ユーザノード２０２は、ユーザによってもたらされた情報、またはソーシャルネットワーキングシステム１６０を含む様々なシステムによって集められた情報と関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性、配偶者の有無、家族状況、勤務先、学歴、好み、興味、または他の人口統計学情報を提供することができる。特定の実施形態において、ユーザノード２０２は、ユーザと関連付けられた情報に対応する１つまたは複数のデータオブジェクトと関連付けられることが可能である。特定の実施形態において、ユーザノード２０２は、１つまたは複数のウェブページに対応することが可能である。
【００４２】
特定の実施形態において、コンセプトノード２０４は、コンセプトに対応することが可能である。限定ではなく、例として、コンセプトは、（例えば、映画館、レストラン、ランドマーク、または都市などの）場所、（例えば、ソーシャルネットワークシステム１６０と関連付けられたウェブサイト、もしくはウェブアプリケーションサーバと関連付けられたサードパーティのウェブサイトなどの）ウェブサイト、（例えば、人、ビジネス、グループ、スポーツチーム、もしくは有名人などの）エンティティ、ソーシャルネットワーキングシステム１６０内、もしくはウェブアプリケーションサーバなどの外部サーバ上に置かれることがある（例えば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、もしくはアプリケーションなどの）リソース、（例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、もしくは書かれた作品などの）物的財産もしくは知的財産、ゲーム、アクティビティ、アイデアもしくは理論、拡張現実環境／仮想現実環境におけるオブジェクト、別の適切なコンセプト、または２つ以上のこのようなコンセプトに対応することが可能である。コンセプトノード２０４は、ユーザによってもたらされたコンセプトについての情報、またはソーシャルネットワーキングシステム１６０を含む様々なシステムによって集められた情報と関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数の画像（例えば、本のカバーページの画像）、ロケーション（例えば、住所もしくは地理的な位置）、（ＵＲＬと関連付けられることが可能な）ウェブサイト、連絡先情報（例えば、電話番号もしくは電子メールアドレス）、他の適切なコンセプト情報、またはこのような情報の任意の適切な組合せを含むことができる。特定の実施形態において、コンセプトノード２０４は、コンセプトノード２０４と関連付けられた情報に対応する１つまたは複数のデータオブジェクトと関連付けられてよい。特定の実施形態において、コンセプトノード２０４は、１つまたは複数のウェブページに対応することが可能である。
【００４３】
特定の実施形態において、ソーシャルグラフ２００内のノードは、（「プロフィールページ」と呼ばれることがある）ウェブページを表すことができ、またウェブページによって表されることができる。プロフィールページは、ソーシャルネットワーキングシステム１６０によってホストされてよく、またソーシャルネットワーキングシステム１６０にとってアクセス可能であってよい。プロフィールページは、サードパーティサーバ１７０と関連付けられたサードパーティのウェブサイト上でホストされてもよい。限定ではなく、例として、特定の外部のウェブページに対応するプロフィールページは、特定の外部のウェブページであってよく、プロフィールページは、特定のコンセプトノード２０４に対応することが可能である。プロフィールページは、他のユーザの全ての、または選択されたサブセットによって閲覧可能であってよい。限定ではなく、例として、ユーザノード２０２は、対応するユーザが、コンテンツを追加すること、発表すること、またはそうでなければ自分自身を表現することができる、対応するユーザプロフィールページを有することができる。限定ではなく、別の例として、コンセプトノード２０４は、特に、コンセプトノード２０４に対応するコンセプトに関連して、１人または複数のユーザがコンテンツを追加すること、発表すること、または自分自身を表現することができる、対応するコンセプトプロフィールページを有することができる。
【００４４】
特定の実施形態において、コンセプトノード２０４は、サードパーティシステム１７０によってホストされるサードパーティのウェブページまたはリソースを表すことができる。サードパーティのウェブページまたはリソースは、他の要素の中でも、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す（例えば、ＪａｖａＳｃｒｉｐｔ、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能な）他の対話可能オブジェクトを含むことができる。限定ではなく、例として、サードパーティのウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨」、または別の適切なアクションまたはアクティビティなどの選択可能アイコンを含むことができる。サードパーティのウェブページを閲覧しているユーザは、アイコンのうちの１つ（例えば「チェックイン」）を選択することによってアクションを行うことができ、このことにより、クライアントシステム１３０は、ユーザのアクションを示すメッセージをソーシャルネットワーキングシステム１６０に送る。メッセージに応答して、ソーシャルネットワーキングシステム１６０は、ユーザに対応するユーザノード２０２と、サードパーティのウェブページまたはリソースに対応するコンセプトノード２０４との間のエッジ（例えば、チェックインタイプのエッジ）を作り出し、１つまたは複数のデータストアにエッジ２０６を格納することができる。
【００４５】
特定の実施形態において、ソーシャルグラフ２００内の１対のノードは、１つまたは複数のエッジ２０６によって互いに接続されることが可能である。１対のノードを接続するエッジ２０６は、１対のノード間の関係を表すことができる。特定の実施形態において、エッジ２０６は、１対のノード間の関係に対応する１つまたは複数のデータオブジェクトまたは属性を含むことができ、また表すことができる。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャルネットワーキングシステム１６０は、「友達要求」を第２のユーザに送ることができる。第２のユーザが「友達要求」を承認すると、ソーシャルネットワーキングシステム１６０は、ソーシャルグラフ２００内で、第１のユーザのユーザノード２０２を第２のユーザのユーザノード２０２に接続するエッジ２０６を作り出し、データストア１６４の１つまたは複数にソーシャルグラフ情報としてエッジ２０６を格納することができる。図２の例において、ソーシャルグラフ２００は、ユーザ「Ａ」のユーザノード２０２と、ユーザ「Ｂ」のユーザノード２０２との間の友達関係を示すエッジ２０６、およびユーザ「Ｃ」のユーザノード２０２と、ユーザ「Ｂ」のユーザノード２０２との間の友達関係を示すエッジを含む。本開示は、特定の属性を有する特定のエッジ２０６が特定のユーザノード２０２を接続することを説明または図示しているが、本開示は、任意の適切な属性を有する任意の適切なエッジ２０６がユーザノード２０２を接続することを想定する。限定ではなく、例として、エッジ２０６は、友人関係、家族関係、ビジネスもしくは雇用関係、（例えば、いいね！と表明すること、等を含む）ファン関係、フォロワ関係、（例えば、アクセスすること、閲覧すること、チェックインすること、共有すること、等を含む）ビジタ関係、加入者関係、上下関係、互恵関係、非互恵関係、別の適切なタイプの関係、または２つ以上のこのような関係を表すことができる。さらに、本開示は全体的に、ノードを接続されているものとして説明しているが、本開示は、ユーザまたはコンセプトも接続されているものとして説明する。本明細書において、接続されているユーザまたはコンセプトへの言及は、適正な場合、１つまたは複数のエッジ２０６によってソーシャルグラフ２００に接続されているこれらのユーザまたはコンセプトに対応するノードを指すことができる。
【００４６】
特定の実施形態において、ユーザノード２０２とコンセプトノード２０４との間のエッジ２０６は、コンセプトノード２０４と関連付けられたコンセプトに対する、ユーザノード２０２と関連付けられたユーザによって行われる特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２に示されるように、ユーザは、コンセプトに対して「いいね！と表明した」、「通った」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「観た」可能性があり、これらのそれぞれが、エッジのタイプまたはサブタイプに対応することが可能である。コンセプトノード２０４に対応するコンセプトプロフィールページは、例えば、（例えば、クリック可能な「チェックイン」アイコンなどの）選択可能な「チェックイン」アイコン、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステム１６０は、個々のアクションに対応するユーザのアクションに応答して、「お気に入り」エッジ、または「チェックイン」エッジを作り出すことができる。限定ではなく、別の例として、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンラインミュージックアプリケーションであるＳＰＯＴＩＦＹ）を使用して、特定の歌（「Ｉｍａｇｉｎｅ」）を聴くことができる。この場合、ソーシャルネットワーキングシステム１６０は、歌およびアプリケーションに対応するユーザに対応するユーザノード２０２と、コンセプトノード２０４との間の（図２に示すような）「聴いた」エッジ２０６、および「使用した」エッジを作り出し、ユーザが歌を聴き、アプリケーションを使用したということを示すことができる。さらに、ソーシャルネットワーキングシステム１６０は、歌に対応するコンセプトノード２０４と、アプリケーションに対応するコンセプトノード２０４との間の（図２に示すような）「プレイした」エッジ２０６を作り出し、特定の歌が特定のアプリケーションによってプレイされたということを示すことができる。この場合、「プレイした」エッジ２０６は、外部オーディオファイル（歌「ｉｍａｇｉｎｅ」）に対して外部アプリケーション（ＳＰＯＴＩＦＹ）によって行われたアクションに対応する。本開示は、特定の属性を有する特定のエッジ２０６が、ユーザノード２０２とコンセプトノード２０４を接続することを説明しているが、本開示は、任意の適切な属性を有する任意の適切なエッジ２０６が、ユーザノード２０２とコンセプトノード２０４を接続することを想定する。さらに、本開示は、ユーザノード２０２とコンセプトノード２０４との間のエッジが、単一の関係を表すことを説明しているが、本開示は、ユーザノード２０２とコンセプトノード２０４との間のエッジが、１つまたは複数の関係を表すことを想定する。限定ではなく、例として、エッジ２０６は、ユーザが、特定のコンセプトに対して、いいね！と表明すること、および特定のコンセプトを使用したことの両方を表すことができる。一方、別のエッジ２０６は、（ユーザ「Ｅ」のユーザノード２０２と、「ＳＰＯＴＩＦＹ」のコンセプトノード２０４との間の、図２に示すような）ユーザノード２０２とコンセプトノード２０４との間の関係（または多様な単一の関係）のそれぞれのタイプを表すことができる。
【００４７】
特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ソーシャルグラフ２００内にユーザノード２０２とコンセプトノード２０４との間のエッジ２０６を作り出すことができる。限定ではなく、例として、（例えば、ウェブブラウザ、またはユーザのクライアントシステム１３０によってホストされる専用アプリケーションを使用することなどによって）コンセプトプロフィールページを閲覧するユーザは、「いいね！」アイコンをクリックまたは選択することによってコンセプトノード２０４によって表されるコンセプトに自分がいいね！と表明したことを示すことができ、これにより、ユーザのクライアントシステム１３０に、コンセプトプロフィールページと関連付けられたコンセプトについてのユーザのいいね！を示すメッセージをソーシャルネットワーキングシステム１６０へ送らせることができる。メッセージに応答して、ソーシャルネットワーキングシステム１６０は、ユーザとコンセプトノード２０４との間の「いいね！」エッジ２０６によって示されるような、ユーザと関連付けられたユーザノード２０２と、コンセプトノード２０４との間のエッジ２０６を作り出すことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、１つまたは複数のデータストアにエッジ２０６を格納することができる。特定の実施形態において、エッジ２０６は、特定のユーザアクションに応答して、ソーシャルネットワーキングシステム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが画像をアップロードすること、映画を観ること、または歌を聴くことを行うと、第１のユーザに対応するユーザノード２０２と、これらのコンセプトに対応するコンセプトノード２０４との間にエッジ２０６が形成されることが可能である。本開示は、特定の手法で特定のエッジ２０６を形成することを説明しているが、本開示は、任意の適切な手法で任意の適切なエッジ２０６を形成することを想定する。
【００４８】
ディープラーニングモデルの訓練
特定の実施形態は、１つまたは複数のディープラーニングモデルを使用して、所与のエンティティの代用として、または補完物として、１つまたは複数のエンティティを識別する。ディープラーニングモデルは、エンティティと関連付けられた異種データを各エンティティが組み込む埋め込み空間内でエンティティの埋め込みを生成するために使用されることが可能である。限定ではなく、例として、エンティティの埋め込みは、個々の埋め込みと関連付けられている任意の適切な数のエンティティ属性に関する情報を含むことができる。エンティティは、限定ではなく、例として、ソーシャルグラフのエンティティと関連付けられたページ（例えば、ソーシャルネットワーキングシステム１６０のユーザまたはコンセプトと関連付けられたページ）、ウェブページ、他の任意の適切なエンティティ、またはこれらの任意の組合せを含むことができる。本明細書で使用されるように、エンティティ属性は、限定ではなく、例として、ユーザ（例えば、エンティティと対話したことがあるユーザ）、トピック（例えば、エンティティによって行われたポスト、またはエンティティ上のポストと関連付けられたトピック）、カテゴリ（例えば、エンティティからのカテゴリプロフィールデータ）、ロケーションデータ（例えば、エンティティと関連付けられたロケーション）、エンティティサイズ（例えば、「ファンになった」もしくは「いいね！と表明した」、またはそうでなければエンティティと肯定的に対話したことがあるユーザの数）、エンティティの他の任意の適切なプロパティ、あるいはこれらの任意の組合せを含むことができる。
【００４９】
図３は、ディープラーニングモデル３１０の例を示す。ディープラーニングモデル３１０は、機械学習モデル、ニューラルネットワーク、潜在ニューラルネットワーク、他の任意の適切なディープラーニングモデル、またはこれらの任意の組合せであってよい。特定の実施形態において、ディープラーニングモデル３１０は、複数の抽象化レイヤを有することができる。入力３０２、３０４、３０６、および３０８は、任意の適切な数のエンティティであってよい。特定の実施形態において、出力３１２は、埋め込み空間内のエンティティの１つまたは複数の埋め込みであってよい。特定の実施形態において、出力３１２は、埋め込み空間内のエンティティ属性の埋め込みであってよい。埋め込み空間は、多次元空間（例えば、ｄ−次元、ここで、ｄは、容量を制御するハイパーパラメータである）であってよく、コンテンツ項目の埋め込みに対応する複数のポイントを含むことができる。本明細書で使用されるように、エンティティの埋め込みは、埋め込み空間内のエンティティの表現を指す。特定の数の入力エンティティ３０２、３０４、３０６、および３０８が図３に示されるが、ディープラーニングモデル３１０は、任意の適切な数の入力エンティティ３０２、３０４、３０６、および３０８に対する、エンティティの埋め込みを生成することができる。
【００５０】
特定の実施形態において、ディープラーニングモデル３１０（例えばニューラルネットワーク）は、
0006744993.tif 000002
におけるベクトルにエンティティをマッピングする、１つまたは複数のインデックスを含むことができ、ここで、
0006744993.tif 000003
は実数のセットを表し、ｄは容量を制御するハイパーパラメータである。ベクトルは、ｄ次元の強度ベクトルであってよい。本明細書で使用されるように、強度値は、−１から１までの範囲内の任意の適切な値であってよい。エンティティのベクトル表現のそれぞれは、埋め込み空間内の個々のポイントに座標を提供することができる。特定の数の入力エンティティ３０２、３０４、３０６、および３０８が図３に示されるが、ディープラーニングモデル３１０は、任意の適切な数のエンティティ３０２、３０４、３０６、および３０８と、ベクトル表現との間でマッピングを行うことができる。
【００５１】
ディープラーニングモデル３１０は、エンティティの最適な埋め込みを生成するように訓練されることが可能である。特定の実施形態において、ディープラーニングモデル３１０は、１つまたは複数のディープラーニングモデルを含むことができる。ディープラーニングモデル３１０は、ディープラーニングモデル３１０が訓練されると動的に更新されることが可能な、１つまたは複数のインデックスを含むことができる。１つまたは複数のインデックスは、ディープラーニングモデル３１０の訓練段階で生成されることが可能である。ディープラーニングモデル３１０は、限定ではなく、例として、ニューラルネットワーク、潜在ニューラルネットワーク、または他の任意の適切なディープラーニングモデルであってよい。ディープラーニングモデル３１０は、ランダム分布を使用して初期化されることが可能である。すなわち、ディープラーニングモデル３１０は、マッピングを最初にランダムに割り当てておくことができる（すなわち、エンティティ３０２、３０４、３０６、および３０８とベクトル表現との間でのマッピングであり、このマッピングに基づいてエンティティ３０２、３０４、３０６、および３０８の埋め込みが生成されることが可能である）。限定ではなく、例として、ランダム分布はガウス分布であってよい。訓練は、最初のマッピングよりもさらに最適なマッピングを生成する、ディープラーニングモデル３１０の１つまたは複数のインデックスを生じることができる。
【００５２】
本開示は、ソーシャルネットワーキングシステム１６０によって実装されているものとして、図３の特定の実施形態を説明し、示しているが、本開示は、任意の適切なプラットフォームまたはシステムによって実装されているものとして、図３の任意の適切な実施形態を想定する。限定ではなく、例として、図３の特定の実施形態は、クライアントシステム１３０、サードパーティシステム１７０、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図３の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図３の方法の任意の適切なステップを実行することを想定する。
【００５３】
特定の実施形態において、１つまたは複数のディープラーニングモデル３１０は、様々なタイプのエンティティ属性に対して動作し、有効な方式（すなわち、ベクトル加算およびベクトル減算をサポートする）で、エンティティ全てと、関連付けられたエンティティ属性データとを圧縮するエンティティの埋め込みを生成することができる。システムは、（例えば、ページと関連付けられた異種データといった）ページの属性を考慮するページの埋め込みを生成することができる。したがって、ページは、限定ではなく、例として、ユーザ、カテゴリ、ロケーション、およびサイズを含む、ページのエンティティ属性と同じ埋め込み空間に効果的に埋め込まれることが可能である。限定ではなく、例として、Ｈｏｍｅｗｏｏｄ  Ｍｏｕｎｔａｉｎ  Ｒｅｓｏｒｔのページに対して、Ｈｏｍｅｗｏｏｄのページと関連付けられたユーザデータは、Ｈｏｍｅｗｏｏｄのページを「フォローする」または「ファン」である人々を含むことができる。Ｈｏｍｅｗｏｏｄのページと関連付けられたトピックデータは、固有のトピックについてのＨｏｍｅｗｏｏｄのページによるポスト（例えば、Ｈｏｍｅｗｏｏｄのページは気象条件に関するポストを行う）、および（例えば、スキー、スノーボード、Ｔａｈｏｅ、雪といった）広告ターゲティング内のページによって指定されたトピックを含むことができる。Ｈｏｍｅｗｏｏｄのページと関連付けられたカテゴリデータは、（例えば、Ｌａｋｅ  Ｔａｈｏｅ、スキーリゾートといった）ページの管理者によって指定されたラベル付けされたカテゴリ、ユーザによって示されたカテゴリ、および機械学習システムによって判断されたカテゴリを含むことができる。Ｈｏｍｅｗｏｏｄのページと関連付けられたロケーションデータは、（例えば、Ｈｏｍｅｗｏｏｄ  Ｍｏｕｎｔａｉｎ  Ｒｅｓｏｒｔの住所といった）ページの管理者によって指定された固有の住所／ロケーション、（例えば、住所にチェックインすることといった）ページと対話したことがある人々のロケーション、および（例えば、Ｌａｋｅ  ＴａｈｏｅのＣａｌｉｆｏｒｎｉａ州側といった）ページが広告のターゲットにしたことがあるロケーションを含むことができる。
【００５４】
異種データの反復埋め込み
図４は、エンティティおよび関連付けられたエンティティ属性を埋め込み空間に埋め込むための方法の例を示す。ステップ４１０において、システムは、エンティティのセットを埋め込み空間に埋め込むことを判断するようにディープラーニングモデル３１０を訓練することができる。限定ではなく、例として、エンティティは、ソーシャルネットワーキングシステム１６０のページであってよい。システムは、各ページと関連付けられた、並べられた順番のデータを含む訓練データ使用して、ディープラーニングモデル３１０を訓練することができる。限定ではなく、例として、システムは、各ページに対して、ユーザが個々のページにも親近感を表現したときにユーザが親近感を表現した一連の他のページ、ページのポストから抽出された一連のトピック、ページの広告の中で使用された一連のトピック、ページと関連付けられた広告キャンペーンの中で使用された一連の広告キーワード、ページの管理者によってページと関連付けられた一連のラベル付けされたカテゴリ、ページと関連付けられた一連のロケーション（例えば、地区、都市、州、国、大陸）、およびページに対して「ファンになった」もしくは「いいね！と表明した」ユーザ数に対応する一連のサイズ情報、または他の任意の適切な一連の訓練データを含む訓練データを使用して、ディープラーニングモデル３１０を訓練することができる。限定ではなく、例として、埋め込みが生成されているページは、映画ＩＲＯＮ  ＭＡＮのページであってよく、訓練データは、ＴＨＥ  ＡＶＥＮＧＥＲＳ、ＣＡＰＴＡＩＮ  ＡＭＥＲＩＣＡ、ＭＩＮＮＥＳＯＴＡ  ＶＩＫＩＮＧＳ、およびＭＩＮＮＥＳＯＴＡ  ＴＷＩＮＳといった、ユーザがＩＲＯＮ  ＭＡＮのページにも親近感を表現したときにユーザが親近感を表現した一連のページを含むことができる。限定ではなく、別の例として、ＩＲＯＮ  ＭＡＮのページに対する訓練データは、ＡＮＴ  ＭＡＮ、映画、プレミア、予告編、およびＲｏｂｅｒｔ  Ｄｏｗｎｅｙ  Ｊｒ．といった、ＩＲＯＮ  ＭＡＮのページのポストから抽出された一連のトピックを含むことができる。限定ではなく、別の例として、ＩＲＯＮ  ＭＡＮのページに対する訓練データは、ＡＮＴ  ＭＡＮ、映画、劇場、ＭＡＲＶＥＬ、およびアクション映画といった、ＩＲＯＮ  ＭＡＮのページと関連付けられた広告キャンペーンからの一連の広告キーワードを含むことができる。限定ではなく、別の例として、Ｃｏａｃｈ  Ｓｕｓｈｉのページに対する訓練データは、寿司、レストラン、日本人、酒、さしみ、および天ぷらといった、ページの管理者によってページと関連付けられた一連のラベル付けされたカテゴリを含むことができる。限定ではなく、別の例として、Ｃｏａｃｈ  Ｓｕｓｈｉのページに対する訓練データは、Ａｄａｍ’ｓ  Ｐｏｉｎｔ、Ｌａｋｅ  Ｍｅｒｒｉｔｔ、Ｏａｋｌａｎｄ、Ｃａｌｉｆｏｒｎｉａ、アメリカ合衆国、北アメリカといった、ページと関連付けられた一連の場所、またはページと対話するユーザと関連付けられた一連の場所を含むことができる。
【００５５】
システムは、個々のページと実際に関連付けられている訓練データ（すなわち肯定的なサンプルだけ）を使用して、ディープラーニングモデルを訓練することができる。システムは、限定ではなく、例として、スキップグラムネガティブダウンサンプリング、または他の任意の適切な訓練アルゴリズムを使用して、ディープラーニングモデル３１０を訓練することができる。特定の実施形態は、エンティティおよびコンテキストを含む、特定の長さのスライドウィンドウを用いる訓練アルゴリズムを使用する。コンテキストは、スライドウィンドウの長さに基づく任意の適切な数の訓練データ項目（例えば、５つの訓練データ項目）を含むことができる。ディープラーニングモデルは、コンテキスト内に特定の訓練データ項目が現れるときにエンティティが現れる条件付き確率を最大化するように訓練されることが可能である。ディープラーニングモデル３１０を訓練するために使用される訓練アルゴリズムは、対応するベクトル表現がベクトル代数（すなわち、ベクトル加算およびベクトル減算）をサポートする埋め込みを生成することができる。
【００５６】
ステップ４１０において埋め込みが判断されているエンティティのセットは、任意の適切な数のエンティティを含むことができる。特定の実施形態において、エンティティのセット内のエンティティは、エンティティのコーパスからランダムにサンプリングされてよい。限定ではなく、例として、エンティティのセットは、埋め込みが生成されることになるエンティティ全体の２５％を含むことができる。限定ではなく、例として、エンティティのセットは、任意の固定サイズのバッチとして選択されてよい。限定ではなく、例として、エンティティのセットのサイズ（すなわち、エンティティのセット内のエンティティの数）は、ディープラーニングモデル３１０の訓練の、予め固定されたパラメータであってよい。
【００５７】
ステップ４２０において、システムは、プーリングアルゴリズムを使用して、エンティティ属性のセットの最初の埋め込みを判断することができる。エンティティはページであってよく、エンティティ属性はページと関連付けられてよい。エンティティ属性は、特定のエンティティ属性タイプのものでよい。エンティティ属性タイプは、限定ではなく、例として、ユーザ（例えば、ページと対話したことがあるユーザ、または他の任意の適切なユーザ）、トピック（例えば、ページによって行われたポストと関連付けられたトピック、もしくはページ上のトピック、ページによって指定された広告トピック、または他の任意の適切なトピック）、カテゴリ（例えば、ページからのカテゴリプロフィールデータ、管理者によってページと関連付けられたラベル付けされたカテゴリ、ユーザによって示されるページと関連付けられたカテゴリ、ソーシャルネットワーキングシステム１６０の機械学習プロセスによって判断されるページと関連付けられたカテゴリ、または他の任意の適切なカテゴリ）、ロケーションデータ（例えば、ページと関連付けられたロケーション、ページと対話したことがあるユーザと関連付けられたロケーション、ページが広告されたロケーション、または他の任意の適切なロケーション）、エンティティサイズ（例えば、「ファンになったことがある」もしくは「いいね！と表明したことがある」、またはそうでなければページと肯定的に対話したことがあるユーザの数）、ページの他の任意の適切なプロパティ、あるいはこれらの任意の組合せを含むことができる。エンティティ属性のセットは、１つのタイプのエンティティ属性（例えば同種データ）を含むことができる。限定ではなく、例として、エンティティ属性は、エンティティ属性タイプのトピックのものでよく、ページによって行われたポストと関連付けられたトピック、またはページ上にポストされたトピックを含むことができる。トピックは、テキストと関連付けられた任意の適切なサブジェクトまたはラベルであってよい。本明細書で使用されるように、ラベルは、ハッシュタグ、絵文字、ステッカー、表意記号、他の任意の適切なテキストアノテーション、他の任意の適切なキャラクタ、シンボル、または画像であってよく、これらは、それぞれ、文字もしくは単語、またはこれらの任意の組合せの使用の有無にかかわらず、アイデアまたはものを表すことができる。
【００５８】
特定の実施形態において、ステップ４１０において判断されたエンティティ（例えばページ）のセットの埋め込みは、エンティティ属性（例えばトピック）のセットの最初の埋め込みを構築するために使用されてよい。特定の実施形態において、エンティティのセットの埋め込みを生成するために使用されるプーリングアルゴリズムは、サムプーリングアルゴリズムであってよい。限定ではなく、例として、システムは、個々のトピックと関連付けられているページ（例えば、特定のトピックのエンティティ属性と関連付けられているページ）の埋め込みの合計の平均を計算することによって、エンティティ属性のセット内の各エンティティ属性に対する最初の埋め込みを判断することができる。限定ではなく、例として、トピック「映画」のベクトル表現および対応する埋め込みは、トピック「映画」と関連付けられたページのベクトル表現の合計の平均を計算することによって判断されてよい（すなわち、「映画」は、ページのポストと関連付けられたトピック、またはページ上のトピックである）。特定の実施形態において、γ（ｔｏｐｉｃ）で表される、トピックの埋め込みを判断するためのプーリングアルゴリズムは、以下の式によって与えられることが可能である。
Γ（ｐａｇｅｓ）＝｛ｐａｇｅ：トピックと関連付けられたページ｝  （１）
0006744993.tif 000004
本明細書で使用されるように｜Γ（ｐａｇｅｓ）｜は、トピックと関連付けられているページの埋め込みのセットのサイズを表し、γ（ｐａｇｅ）は、トピックと関連付けられたページの埋め込みを表す。
【００５９】
ステップ４３０において、システムは、エンティティ属性のセットの埋め込みを絞り込むようにディープラーニングモデル３１０を訓練することができる。特定の実施形態において、ステップ４１０においてエンティティの埋め込みを生成するために使用されるディープラーニングモデル、およびステップ４３０においてエンティティ属性の埋め込みを絞り込むために使用されるディープラーニングモデルは、同じディープラーニングモデル３１０であってよい。ディープラーニングモデル３１０は、ステップ４１０に関連して説明される技法のいずれかを使用して訓練されることが可能である。限定ではなく、例として、システムは、スキップグラムネガティブダウンサンプリング、または他の任意の適切な訓練アルゴリズムを使用してディープラーニングモデル３１０を訓練することができる。特定の実施形態において、ディープラーニングモデル３１０は、トピック訓練データを使用して再訓練されることが可能である。このトピック訓練データは、ディープラーニングモデル３１０に入力されることが可能であり、トピックの最初の埋め込みは、上述のようなプーリングアルゴリズムを使用して構築されることが可能である。トピック訓練データは、限定ではなく、例として、広告ターゲティングにおいて使用される一連のトピック、もしくはページ上に現れる一連のトピック、またはユーザと関連付けられた一連のトピック、あるいは他の任意の適切なトピック訓練データを含むことができる。ディープラーニングモデル３１０は次に、エンティティ属性のセットの絞り込まれた埋め込みを生成することができる。
【００６０】
ステップ４４０において、システムは、プーリングアルゴリズムを使用して、ステップ４３０において判断されたエンティティ属性のセットの絞り込まれた埋め込みに基づいて、ステップ４１０からエンティティのセットに対する更新された埋め込みを判断する。システムは、ステップ４３０において判断されたエンティティ属性のセットの埋め込みに基づいて、ステップ４１０において判断されたエンティティのセットの埋め込みを修正することができる。特定の実施形態において、エンティティの第１のセットの埋め込みを生成するために使用されるプーリングアルゴリズムは、サムプーリングアルゴリズムであってよい。限定ではなく、例として、ＩＲＯＮ  ＭＡＮのページの更新されたベクトル表現および対応する埋め込みは、ＩＲＯＮ  ＭＡＮのページ上のポスト、またはＩＲＯＮ  ＭＡＮのページによるポストの中で言及される（ステップ４３０において判断された）トピックの絞り込まれたベクトル表現の合計を、ページＩＲＯＮ  ＭＡＮの古いベクトル表現に追加することによって判断されてよい（すなわち、ステップ４１０において判断されてよい）。特定の実施形態において、γ２（ｐａｇｅ）で表される、ページの更新された埋め込みを判断するためのプーリングアルゴリズムは、以下の式によって与えられることが可能である。
Γ（ｔｏｐｉｃｓ）＝｛ｔｏｐｉｃ：ページと関連付けられたトピック｝  （３）
0006744993.tif 000005
本明細書で使用されるように、｜Γ（ｔｏｐｉｃｓ）｜は、ページと関連付けられているトピックの埋め込みのセットのサイズを表し、γ１（ｐａｇｅ）は、（例えば、ステップ４１０において判断されるような）ページの埋め込みを表し、γ（ｔｏｐｉｃ）は、（例えば、ステップ４３０において判断されるような）ページと関連付けられたトピックの絞り込まれた埋め込みを表し、αｉは係数であり、ここで、α∈（１，０）であり、ｉは整数である。αｉ項は、更新ステップ（例えば図４のステップ４４０）の中での変動および学習を減少させることができる。システムは次に、エンティティに対する新しい埋め込みとして、エンティティのセットにエンティティの更新された埋め込みを格納することができる（すなわち、ステップ４１０において判断された埋め込みを置き替える）。ステップ４４０において判断されたエンティティの更新された埋め込みは、エンティティ属性（例えばトピック）の埋め込みに基づいて判断されたので、更新された埋め込みは、エンティティ属性に関する情報を含む。
【００６１】
特定の実施形態において、図４のステップ４１０〜ステップ４４０は、特定のタイプのエンティティ属性（例えばトピック）の全てを考慮する、エンティティの全てに対する埋め込みをシステムが生成するまで反復して繰り返されてよい。限定ではなく、例として、システムは、エンティティの第１のセットを形成するためにエンティティのコーパスの２５％を、またエンティティ属性の第１のセットを形成するために特定のタイプのエンティティ属性のコーパスの２５％を、ランダムにサンプリングすることができる。システムは、図４のステップ４１０〜ステップ４４０を行う際に、エンティティおよびエンティティ属性のこれらの第１のセットを使用することができる。システムは次に、エンティティの第２のセットを形成するためにエンティティの残りのコーパスの別の２５％を、またエンティティ属性の第２のセットを形成するために特定のタイプのエンティティ属性の残りのコーパスの２５％を、ランダムにサンプリングすることができる。システムは、図４のステップ４１０〜ステップ４４０を行う際に、エンティティおよびエンティティ属性のこれらの第２のセットを使用することができる。システムは次に、エンティティの第３のセットを形成するためにエンティティの残りのコーパスの別の２５％を、また第３のエンティティ属性のセットを形成するために特定のタイプのエンティティ属性の残りのコーパスの２５％を、ランダムにサンプリングすることができる。システムは、図４のステップ４１０〜ステップ４４０を行う際に、エンティティおよびエンティティ属性のこれらの第３のセットを使用することができる。最終的に、システムは、エンティティの第４のセットを形成するためにエンティティのコーパスの残りの２５％を、またエンティティ属性の第４のセットを形成するために特定のタイプのエンティティ属性のコーパスの残りの２５％を利用することができる。システムは、図４のステップ４１０〜ステップ４４０を行う際に、エンティティおよびエンティティ属性のこれらの第４のセットを使用することができる。特定の実施形態において、システムは、ステップ４１０〜ステップ４４０の反復の中で、エンティティの更新された埋め込みをランダムに挿入することができる。特定の実施形態において、図４のステップ４１０〜ステップ４４０は、ディープラーニングモデル３１０が収束するまで、反復して繰り返されてよい。特定の実施形態において、図４のステップ４４０においてエンティティの埋め込みが更新されると、この反復と関連付けられた特定のセット内の埋め込みだけでなく、エンティティの埋め込みの全てが更新されることが可能である（すなわち、エンティティの埋め込みの第４のセットだけでなく、エンティティの埋め込みの第１、第２、第３、および第４のセットが更新されることが可能である）。限定ではなく、例として、システムが図４のステップ４４０を行うたびに、システムは、個々のエンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて（すなわち、プーリングアルゴリズムを使用して）、各エンティティの埋め込みを修正する。
【００６２】
特定の実施形態において、システムは、２つ以上のタイプのエンティティ属性を考慮する（例えば基づく）エンティティの埋め込みを判断することができる。限定ではなく、例として、エンティティは、ソーシャルネットワーキングシステム１６０のページであってよく、第１のタイプのエンティティ属性はトピックであってよい。同じ例において、システムは、（例えば、ディープラーニングモデル３１０が収束するまで）図４のステップ４１０〜ステップ４４０を繰り返し、これらのページのそれぞれに対する、更新された埋め込みを反復して判断することができる。システムは、ページの最初に判断された埋め込みの代わりに、ページの更新された埋め込みを格納することができる。システムは次に、同じ処理を行い、第２のタイプのエンティティ属性（例えばロケーション）を考慮する、ページの新たに更新された埋め込みを反復して判断することができる。ステップ４２０において、システムは、個々のトピックと関連付けられているページ（例えば、特定のロケーションのエンティティ属性と関連付けられているページ）の埋め込みの合計の平均を計算することによって、エンティティ属性の第２のセット内の各エンティティ属性に対する最初の埋め込みを判断することができる。ステップ４３０において、システムは、これらの埋め込みを絞り込むために、ロケーションデータの訓練セットを使用してディープラーニングモデルを訓練することができる。ステップ４３０において、システムは、プーリングアルゴリズムを使用して、ページの埋め込みのランダムにサンプリングされたバッチに対する、更新された埋め込み（すなわち、トピックの埋め込みに基づくページの埋め込み）を判断することができる。システムは、個々のページと関連付けられているトピックおよびロケーションに関する情報を考慮する、ページの更新された埋め込みが判断されるまで、ロケーションのエンティティ属性のセットを使用して、図４のステップを反復して繰り返すことができる。特定の実施形態において、システムは、様々なタイプの任意の適切な数のエンティティ属性に関する情報をエンティティの埋め込みが含むまで、この処理（すなわち図４のステップ４１０〜ステップ４４０）を反復して繰り返すことができる。
【００６３】
特定の実施形態は、適正な場合、図４の方法の１つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で発生するものとして図４の方法の特定のステップを説明し、示しているが、本開示は、図４の方法の任意の適切なステップが任意の適切な順序で発生することを想定する。本開示は、特定の方式で実装されているものとして図４の特定の実施形態を説明し、示しているが、本開示は、図４の任意の適切な実施形態が、任意の適切なインターフェース上で発生すること、および任意の適切なプラットフォームまたはシステムによって実装されるものと想定する。限定ではなく、例として、図４の特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、図４の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し、示しているが、本開示は、図４の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せを想定する。
【００６４】
エンティティと関連付けられたエンティティ属性に関する情報を組み込む埋め込み空間内でエンティティの埋め込みを生成するようにディープラーニングモデルが訓練されると、埋め込み空間は、様々なタスクを達成するために使用されることが可能である。限定ではなく、例として、システムは、同じ埋め込み空間内の埋め込みにページおよびページの属性が圧縮されるので、ページの属性を考慮するページの推奨（すなわち、エンティティ推奨）を行うことができる。
【００６５】
エンティティ推奨を識別するための埋め込み空間の使用
図５は、埋め込み空間のビュー５００の例を示す。埋め込み空間５００は、ターゲットポイント５２０の埋め込みに対応する１つのポイント、および複数のエンティティの埋め込み５１０に対応する複数のポイントを含むことができる。複数のエンティティの埋め込みは、（例えば、図４に関連して説明されたような）１つまたは複数のディープラーニングモデル３１０を使用して判断されたエンティティのベクトル表現に基づいて判断されることが可能であり、エンティティの埋め込みは、ポイント５１０として埋め込み空間５００内で表されることが可能である。ポイント５１０は、図４に関連して上述されたように、個々のエンティティと関連付けられた１つまたは複数のエンティティ属性をそれぞれが考慮する複数のエンティティの埋め込み５１０に対応することが可能である。埋め込み空間は、ディープラーニングモデル３１０を使用して生成されることが可能である。図５の埋め込み空間は、２次元であるものとして描写されているが、埋め込み空間は、任意の適切な次元（例えば多次元）のものであってよいということが理解されよう。
【００６６】
特定の実施形態において、埋め込み空間５００は、ソーシャルネットワーキングシステム１６０のユーザに対するページの推奨（すなわちエンティティ推奨）を生成するために使用されてよい。エンティティは、ページであるものとして説明されているが、これは、例証的なものにすぎず、限定のためのものではないということが理解されよう。エンティティは、限定ではなく、例として、ウェブページを含む、任意の適切なエンティティであってよい。図４に関連して上述されたように、異種のタイプのエンティティ属性（すなわちページ属性）をページの埋め込みに有効に圧縮する方法は、ベクトル演算（例えば追加および減算）に適している。ベクトル加算、ベクトル減算、または両方は、コンテキストページの推奨を提供するために、ページのベクトル表現と共に使用されてよい。特定の実施形態において、代用ページの推奨は、ソーシャルネットワーキングシステム１６０のユーザと関連付けられたユーザプロフィールまたは他のデータの変更をシステムが検出するのに応答して生成されてよい。代用ページは、判断可能な代用がある任意のコンテキスト変更に対して判断されてよい。限定ではなく、例として、代用が判断されることが可能なコンテキスト変更は、ロケーション、交際状況、宗教的信念、卒業生の状況、仕事の状況、他の任意の適切なコンテキスト、またはこれらの任意の組合せを含むことができる。限定ではなく、例として、システムは、第１のコンテキストから第２のコンテキストに、ユーザがプロフィール設定を変更したことを検出することができる。この検出に応答して、システムは、第１のコンテキストおよび第２のコンテキストと関連付けられたページ、ならびにユーザがいいね！と表明したことがあるページ、またはそうでなければユーザが親近感を表現したことがあるページに基づいて、ベクトル演算を使用する方程式を生成することができる。ベクトル演算の結果は、ターゲットポイント５２０として埋め込み空間５００内で表されることが可能なターゲットベクトル表現である。システムは、ユーザのコンテキストの変更を検出することに応答して、または入力されたユーザクエリに応答して、ターゲットポイントを判断することができる。システムは、検索アルゴリズムを使用して、ターゲットポイント５２０に関連するエンティティの埋め込み５１０に対応する１つまたは複数のポイントを識別することができる。検索アルゴリズムは、ベクトル演算の結果の埋め込みに対応するターゲットポイント５２０の閾値距離５３０の範囲内にあるエンティティの埋め込みに対応するポイント５４０を識別するために、埋め込み空間５００に適用されてよい。限定ではなく、例として、変更されたコンテキストは現在のロケーションであってよく、第１のコンテキストはＰｈｉｌａｄｅｌｐｈｉａであってよく、第２のコンテキストはＯａｋｌａｎｄであってよく、システムは、ベクトル演算を使用して、Ｐｈｉｌａｄｅｌｐｈｉａと関連付けられたページの代用であるＯａｋｌａｎｄと関連付けられたページを識別することができる。同じ例において、システムは、ＰｈｉｌａｄｅｌｐｈｉａのＤｅｌ  Ｆｒｉｓｃｏ’ｓ  Ｄｏｕｂｌｅ  Ｅａｇｌｅ  Ｓｔｅａｋｈｏｕｓｅにユーザがチ���ックインしたことがあると判断することができるので、システムは次に、ＯａｋｌａｎｄのＤｅｌ  Ｆｒｉｓｃｏ’ｓ  Ｄｏｕｂｌｅ  Ｅａｇｌｅ  Ｓｔｅａｋｈｏｕｓｅの代用を見つけることができる。ＰｈｉｌａｄｅｌｐｈｉａからＯａｋｌａｎｄへのコンテキスト変更の１つまたは複数の代用を判断するためのベクトル演算は、方程式（５）によって与えられることが可能である。
｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜＝γ（Ｄｅｌ  Ｆｒｉｓｃｏ’ｓ）−γ（Ｐｈｉｌａｄｅｌｐｈｉａ）＋γ（Ｏａｋｌａｎｄ）  （５）
本明細書で使用されるように、｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜は、方程式（５）の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント５２０に最も近い（すなわち、ターゲットポイント５２０からの最短距離の）ページの埋め込みを表す。γ（Ｄｅｌ  Ｆｒｉｓｃｏ’ｓ）は、Ｄｅｌ  Ｆｒｉｓｃｏ’ｓ  Ｄｏｕｂｌｅ  Ｅａｇｌｅ  Ｓｔｅａｋｈｏｕｓｅのページの埋め込みを表し、γ（Ｐｈｉｌａｄｅｌｐｈｉａ）は、Ｐｈｉｌａｄｅｌｐｈｉａのページの埋め込みを表し、γ（Ｏａｋｌａｎｄ）は、Ｏａｋｌａｎｄのページの埋め込みを表す。方程式（５）は、対応するベクトル表現を埋め込みのそれぞれが有するので、評価されることが可能である。ターゲットポイント５２０が方程式（５）によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間５００内のターゲットポイント５２０に最も近い、ページの埋め込み５４０に対応するポイントを見つける。ページの埋め込み５４０に対応する識別されたポイントは、限定ではなく、例として、ＰｈｉｌａｄｅｌｐｈｉａにあるＤｅｌ  Ｆｒｉｓｃｏ’ｓ  Ｄｏｕｂｌｅ  Ｅａｇｌｅ  Ｓｔｅａｋｈｏｕｓｅの代用になり得る、ＯａｋｌａｎｄにあるレストランであるＭｉｃｈｅｌ  Ｂｉｓｔｒｏのページに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ユーザへの表示のために、コンテキスト変更に基づいて代用として識別された１つまたは複数のページをユーザのクライアントシステム１３０に送ることができる。特定の実施形態において、１つまたは複数の識別されたページは、ユーザのクライアントシステム１３０上で動くソーシャルネットワーキングシステム１６０のネイティブアプリケーションにおける通知の一部として表示されることが可能である。特定の実施形態において、１つまたは複数の識別されたページは、ソーシャルネットワーキングシステム１６０のフィードの中に表示されることが可能である。１つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム１３０のユーザに提示されてよい。
【００６７】
特定の実施形態において、埋め込み空間５００は、ソーシャルネットワーキングシステム１６０のユーザに対する他のページを補完するページの推奨を生成するために使用されてよい。システムは、補完物を判断するためのトピックおよびカテゴリのオントロジー（例えば、カテゴリツリーグラフ）、ならびに特定のページに対するオントロジーを利用することができる。例えば、システムは、写真屋が、パン屋、花屋、およびイベントプランナサービスの補完サービスであることを、カテゴリのオントロジーに基づいて判断することができる。パン屋、花屋、およびイベントプランナサービスの１つまたは複数にユーザが「いいね！と表明したことがある」か、チェックインしたことがある場合、システムは、ユーザへの推奨のために写真屋を判断するためのベクトル表現を生成することができる。限定ではなく、例として、ユーザは、Ｆａｒｍｇｉｒｌ  Ｆｌｏｗｅｒｓにチェックインすることができ、システムは、方程式（６）を使用して、ユーザに関連する可能性のある花屋を判断することができる。
｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜＝γ（Ｆａｒｍｇｉｒｌ  Ｆｌｏｗｅｒｓ）−γ（ｆｌｏｒｉｓｔ）＋γ（ｐｈｏｔｏｇｒａｐｈｅｒ）  （６）
本明細書で使用されるように、｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜は、方程式（６）の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント５２０に最も近い（すなわち最短距離の）ページの埋め込みを表す。γ（Ｆａｒｍｇｉｒｌ  Ｆｌｏｗｅｒｓ）は、Ｆａｒｍｇｉｒｌ  Ｆｌｏｗｅｒｓのページの埋め込みを表し、γ（ｆｌｏｒｉｓｔ）は、花屋のページの埋め込みを表し、γ（ｐｈｏｔｏｇｒａｐｈｅｒ）は、写真屋のページの埋め込みを表す。ターゲットポイント５２０が方程式（６）によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間５００内のターゲットポイント５２０に最も近い、ページの埋め込み５４０に対応するポイントを見つける。ページの埋め込み５４０に対応する識別されたポイントは、限定ではなく、例として、Ｆａｒｍｇｉｒｌ  Ｆｌｏｗｅｒｓの補完物になることが可能な、写真撮影サービスである、Ｗｙａｔｔ’ｓ  Ｐｈｏｔｏｇｒａｐｈｙの埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ユーザへの表示のために、補完物として識別された１つまたは複数のページをユーザのクライアントシステム１３０に送ることができる。上述のように、１つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム１３０のユーザに提示されることが可能である。
【００６８】
限定ではなく、別の例として、システムは、野球がフットボールの補完物であると判断することができ、システムは、Ｍｉｎｎｅｓｏｔａ  Ｖｉｋｉｎｇｓフットボールチームのページをユーザが「いいね！と表明している」ことを知ることができる。Ｍｉｎｎｅｓｏｔａ  Ｖｉｋｉｎｇに対する野球チームの補完物を見つけるために、システムは、方程式（７）を使用することができる。
｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜＝γ（Ｖｉｋｉｎｇｓ）−γ（ｆｏｏｔｂａｌｌ）＋γ（ｂａｓｅｂａｌｌ）  （７）
本明細書で使用されるように、｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜は、方程式（７）の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント５２０に最も近い（すなわち最短距離の）ページの埋め込みを表す。γ（Ｖｉｋｉｎｇｓ）は、Ｍｉｎｎｅｓｏｔａ  Ｖｉｋｉｎｇｓのページの埋め込みを表し、γ（ｆｏｏｔｂａｌｌ）は、フットボールのページの埋め込みを表し、γ（ｂａｓｅｂａｌｌ）は、野球のページの埋め込みを表す。ターゲットポイント５２０が方程式（７）によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間５００内のターゲットポイント５２０に最も近いページの埋め込み５４０に対応するポイントを見つける。ページの埋め込み５４０に対応する識別されたポイントは、限定ではなく、例として、Ｍｉｎｎｅｓｏｔａ  Ｖｉｋｉｎｇｓ  フットボールチームに対する補完物になり得る野球チームである、Ｍｉｎｎｅｓｏｔａ  Ｔｗｉｎｓに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ユーザへの表示のために、補完物として識別された１つまたは複数のページをユーザのクライアントシステム１３０に送ることができる。上述のように、１つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム１３０のユーザに提示されてよい。
【００６９】
特定の実施形態において、埋め込み空間５００は、ソーシャルネットワーキングシステム１６０のユーザによって入力されたクエリに応答してページの推奨を生成するために使用されることが可能である。実際には、ユーザは、質問、類推の始まり（例えば、ＡはＢにとってＤに対するＣのようなものである）、または他の任意の適切なユーザ入力を入力することができ、システムは、埋め込み空間５００にアクセスして、答え（すなわちページ）を見つけることができる。限定ではなく、例として、ユーザは、「Ｓａｎ  Ｆｒａｎｃｉｓｃｏでどこが最も良い寿司レストランであるか」を入力することができる。システムは、Ｄｅｎｖｅｒにある特定の寿司レストランのページにユーザが「いいね！と表明したことがある」と判断することができるので、システムは次に、方程式（８）を使用して、Ｓａｎ  ＦｒａｎｃｉｓｃｏにあるＤｅｎｖｅｒ  Ｓｕｓｈｉ  Ｒｅｓｔａｕｒａｎｔの代用を見つけることができる。
｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜＝γ（Ｄｅｎｖｅｒ  Ｓｕｓｈｉ）−γ（Ｄｅｎｖｅｒ）＋γ（Ｓａｎ  Ｆｒａｎｃｉｓｃｏ）  （８）
本明細書で使用されるように、｜ａｒｇｍｉｎ：γ（ｐａｇｅ）｜は、方程式（８）の右辺に対するベクトル演算を評価することによって判断されるターゲットポイント５２０に最も近い（すなわち最短距離の）ページの埋め込みを表す。γ（Ｄｅｎｖｅｒ  Ｓｕｓｈｉ）、Ｄｅｎｖｅｒ  Ｓｕｓｈｉのページの埋め込みを表し、γ（Ｄｅｎｖｅｒ）は、Ｄｅｎｖｅｒのページの埋め込みを表し、γ（Ｓａｎ  Ｆｒａｎｃｉｓｃｏ）は、Ｓａｎ  Ｆｒａｎｃｉｓｃｏのページの埋め込みを表す。ターゲットポイント５２０が方程式（８）によって得られると、システムは、検索アルゴリズムを適用して、埋め込み空間５００内のターゲットポイント５２０に最も近いページの埋め込み５４０に対応するポイントを見つける。ページの埋め込み５４０に対応する識別されたポイントは、限定ではなく、例として、ＤｅｎｖｅｒにあるＤｅｎｖｅｒ  Ｓｕｓｈｉの代用になり得る、Ｓａｎ  Ｆｒａｎｃｉｓｃｏにあるレストランである、ＳＦ  Ｓｕｓｈｉのページに対する埋め込みを含むことができる。特定の実施形態において、ソーシャルネットワーキングシステム１６０は、ユーザへの表示のために、補完物として識別された１つまたは複数のページをユーザのクライアントシステム１３０に送ることができる。上述のように、１つまたは複数の識別されたページは、任意の適切な方式でクライアントシステム１３０のユーザに提示されてよい。
【００７０】
本開示は、特定の方式で実装されているものとして図５の特定の実施形態を説明し、示しているが、本開示は、図５の任意の適切な実施形態が、任意の適切なインターフェース上で発生すること、および任意の適切なプラットフォームまたはシステムによって実装されるものと想定する。限定ではなく、例として、図５の特定の実施形態は、クライアントシステム１３０、ソーシャルネットワーキングシステム１６０、サードパーティシステム１７０、または他の任意の適切なシステムによって実装されてよい。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図５の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図５の方法の任意の適切なステップを実行することを想定する。
【００７１】
図６は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法６００の例を示す。方法は、ステップ６１０において始めることができ、ここでエンティティの第１のセット内の各エンティティに対する埋め込みが判断される。エンティティの第１のセットは、複数のエンティティから選択される。各埋め込みは、埋め込み空間内のポイントに対応する。埋め込み空間は、複数のエンティティの埋め込みに対応する複数のポイントを含む。エンティティの埋め込みは、ディープラーニングモデルを使用して判断される。ステップ６２０において、埋め込みは、エンティティ属性の第１のセット内の各エンティティ属性に対して判断される。エンティティ属性の第１のセット内のエンティティ属性のそれぞれは、エンティティ属性タイプのものである。エンティティ属性の第１のセットの各エンティティ属性は、複数のエンティティの少なくとも１つのエンティティと関連付けられる。エンティティ属性の埋め込みは、ディープラーニングモデルを使用して絞り込まれる。ステップ６３０において、エンティティの第１のセット内のエンティティの埋め込みは、エンティティの第１のセット内の各エンティティに対する更新された埋め込みを得るために、個々のエンティティと関連付けられているエンティティ属性の埋め込みに基づいて修正され、更新された埋め込みは、個々のエンティティと関連付けられているエンティティ属性に関する情報を含む。
【００７２】
特定の実施形態は、適正な場合、図６の方法の１つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で発生するものとして図６の方法の特定のステップを説明し、示しているが、本開示は、図６の方法の任意の適切なステップが、任意の適切な順序で発生することを想定する。さらに、本開示は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための方法の例が、図６の方法の特定のステップを含むことを説明し、示しているが、本開示は、関連付けられたエンティティ属性に関する情報を含むエンティティの埋め込みを生成するための任意の適切な方法が、適正な場合、図６の方法のステップの全て、もしくはいくつかを含むこと、またはこれらのステップのいずれも含まないことが可能な、任意の適切なステップを含むことを想定する。さらに、本開示は、特定の構成要素、デバイス、またはシステムが、図６の方法の特定のステップを実行することを説明し、示しているが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図６の方法の任意の適切なステップを実行することを想定する。
【００７３】
システムおよび方法
図７は、コンピュータシステム７００の例を示す。特定の実施形態において、１つまたは複数のコンピュータシステム７００は、本明細書で説明されるか、示される１つまたは複数の方法の１つまたは複数のステップを行う。特定の実施形態において、１つまたは複数のコンピュータシステム７００は、本明細書で説明されるか、示される機能を行う。特定の実施形態において、１つまたは複数のコンピュータシステム７００上で動くソフトウェアは、本明細書で説明されるか、示される１つまたは複数の方法の１つまたは複数のステップを行うか、本明細書で説明されるか、示される機能を提供する。特定の実施形態は、１つまたは複数のコンピュータシステム７００の１つまたは複数の部分を含む。本明細書で、コンピュータシステムへの言及は、コンピューティングデバイスを包含することができ、適正な場合、逆もまた同様である。さらに、コンピュータシステムへの言及は、適正な場合、１つまたは複数のコンピュータシステムを包含することができる。
【００７４】
本開示は、任意の適切な数のコンピュータシステム７００を想定する。本開示は、コンピュータシステム７００が、任意の適切な物理的形状をしていることを想定する。限定ではなく、例として、コンピュータシステム７００は、埋め込み式コンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップコンピュータシステムもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、サーバ、タブレット型コンピュータシステム、またはこれらのうちの２つ以上の組合せであってよい。適正な場合、コンピュータシステム７００は、１つもしくは複数のコンピュータシステム７００を含むこと、単一もしくは分散型であること、複数のロケーションに及ぶこと、複数の機械に及ぶこと、複数のデータセンタに及ぶこと、または１つもしくは複数のネットワーク内の１つもしくは複数のクラウド構成要素を含み得るクラウドの中にあることが可能である。適正な場合、１つまたは複数のコンピュータシステム７００は、実質的に空間的な制限も一時的な制限もなく、本明細書で説明されるか、示される１つまたは複数の方法の１つまたは複数のステップを行うことができる。限定ではなく、例として、１つまたは複数のコンピュータシステム７００は、本明細書で説明されるか、示される１つまたは複数の方法の１つまたは複数のステップを、リアルタイムモードまたはバッチモードで行うことができる。１つまたは複数のコンピュータシステム７００は、適正な場合、様々な時間に、または様々なロケーションで、本明細書で説明されるか、示される１つまたは複数の方法の１つまたは複数のステップを行うことができる。
【００７５】
特定の実施形態において、コンピュータシステム７００は、プロセッサ７０２、メモリ７０４、ストレージ７０６、入出力（Ｉ／Ｏ）インターフェース７０８、通信インターフェース７１０、およびバス７１２を含む。本開示は、特定のコンピュータシステムが、特定の配置の中に特定の数の特定の構成要素を有することを説明し、示しているが、本開示は、任意の適切なコンピュータシステムが、任意の適切な配置の中に任意の適切な数の任意の適切な構成要素を有することを想定する。
【００７６】
特定の実施形態において、プロセッサ７０２は、コンピュータプログラムを作り上げる命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ７０２は、内部レジスタ、内部キャッシュ、メモリ７０４、またはストレージ７０６から命令を取得（またはフェッチ）すること、これらをデコードして実行すること、および１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ７０４、またはストレージ７０６に書き込むことができる。特定の実施形態において、プロセッサ７０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、プロセッサ７０２が、適正な場合、任意の適切な数の任意の適切な内部キャッシュを含むことを想定する。限定ではなく、例として、プロセッサ７０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数のトランスレーションルックアサイドバッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ７０４またはストレージ７０６内の命令のコピーであってよく、命令キャッシュは、プロセッサ７０２によるこれらの命令の取得を高速化することができる。データキャッシュ内のデータは、動作するためにプロセッサ７０２において実行する命令、プロセッサ７０２において実行するその後の命令によるアクセスのため、またはメモリ７０４もしくはストレージ７０６に書き込むための、プロセッサ７０２において実行された以前の命令の結果、あるいは他の適切なデータのためのメモリ７０４またはストレージ７０６内のデータのコピーであってよい。データキャッシュは、プロセッサ７０２による読込み動作または書込み動作を高速化することができる。ＴＬＢは、プロセッサ７０２のための仮想アドレス変換を高速化することができる。特定の実施形態において、プロセッサ７０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、プロセッサ７０２が、適正な場合、任意の適切な数の任意の適切な内部レジスタを含むことを想定する。適正な場合、プロセッサ７０２は、１つもしくは複数の算術論理演算装置（ＡＬＵ）を含むこと、マルチコアプロセッサであること、または１つもしくは複数のプロセッサ７０２を含むことが可能である。本開示は、特定のプロセッサを説明し、示しているが、本開示は、任意の適切なプロセッサを想定する。
【００７７】
特定の実施形態において、メモリ７０４は、プロセッサ７０２が実行するための命令、またはプロセッサ７０２が動作させるデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム７００は、ストレージ７０６または別のソース（例えば、別のコンピュータシステム７００など）からメモリ７０４に命令をロードすることができる。プロセッサ７０２は次に、メモリ７０４から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ７０２は、内部レジスタまたは内部キャッシュから命令を取得し、これらをデコードすることができる。命令の実行中または実行後、プロセッサ７０２は、（中間結果または最終結果である可能性のある）１つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ７０２は次に、これらの結果の１つまたは複数をメモリ７０４に書き込むことができる。特定の実施形態において、プロセッサ７０２は、（ストレージ７０６または他の場所とは対照的に）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の命令、またはメモリ７０４内の命令だけを実行し、（ストレージ７０６または他の場所とは対照的に）１つもしくは複数の内部レジスタもしくは内部キャッシュ内のデータ、またはメモリ７０４内のデータに対してのみ動作する。（アドレスバスおよびデータバスをそれぞれ含む可能性がある）１つまたは複数のメモリバスは、プロセッサ７０２をメモリ７０４に連結することができる。バス７１２は、下記で説明されるような１つまたは複数のメモリバスを含むことができる。特定の実施形態において、１つまたは複数のメモリ管理ユニット（ＭＭＵ）がプロセッサ７０２とメモリ７０４の間にあり、プロセッサ７０２によって要求されるメモリ７０４へのアクセスを容易にする。特定の実施形態において、メモリ７０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適正な場合、揮発性メモリであってよい。適正な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適正な場合、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであってよい。本開示は、任意の適切なＲＡＭを想定する。メモリ７０４は、適正な場合、１つまたは複数のメモリ７０４を含むことができる。本開示は、特定のメモリを説明し、示しているが、本開示は、任意の適切なメモリ想定する。
【００７８】
特定の実施形態において、ストレージ７０６は、データまたは命令のためのマスストレージを含む。限定ではなく、例として、ストレージ７０６は、ハードディスクドライブ（ＨＤＤ）、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの２つ以上の組合せを含むことができる。ストレージ７０６は、適正な場合、取外し可能な媒体または取外し不能な（もしくは固定された）媒体を含むことができる。ストレージ７０６は、適正な場合、コンピュータシステム７００の内部または外部にあってよい。特定の実施形態において、ストレージ７０６は、不揮発性の固体メモリであってよい。特定の実施形態において、ストレージ７０６は、リードオンリメモリ（ＲＯＭ）を含む。適正な場合、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的消去再書込ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュメモリ、またはこれらのうちの２つ以上の組合せであってよい。本開示は、マスストレージ７０６が任意の適切な物理的形状をしていることを想定する。ストレージ７０６は、適正な場合、プロセッサ７０２とストレージ７０６との間の通信を容易にする１つまたは複数のストレージ制御ユニットを含むことができる。適正な場合、ストレージ７０６は、１つまたは複数のストレージ７０６を含むことができる。本開示は、特定のストレージ説明し、示しているが、本開示は、任意の適切なストレージを想定する。
【００７９】
特定の実施形態において、Ｉ／Ｏインターフェース７０８は、コンピュータシステム７００と１つまたは複数のＩ／Ｏデバイスとの間の通信のための１つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。コンピュータシステム７００は、適正な場合、これらのＩ／Ｏデバイスの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスの１つまたは複数は、人とコンピュータシステム７００との間の通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの２つ以上の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびこれらのデバイスための任意の適切なＩ／Ｏインターフェース７０８を想定する。適正な場合、Ｉ／Ｏインターフェース７０８は、これらのＩ／Ｏデバイスの１つまたは複数をプロセッサ７０２が駆動させることを可能にする、１つまたは複数のデバイスまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインターフェース７０８は、適正な場合、１つまたは複数のＩ／Ｏインターフェース７０８を含むことができる。本開示は、特定のＩ／Ｏインターフェースを説明し、示しているが、本開示は、任意の適切なＩ／Ｏインターフェースを想定する。
【００８０】
特定の実施形態において、通信インターフェース７１０は、コンピュータシステム７００と、１つもしくは複数の他のコンピュータシステム７００、または１つもしくは複数のネットワークとの間の通信（例えば、パケットベースの通信など）のための、１つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、通信インターフェース７１０は、イーサネットもしくは他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷＩ−ＦＩネットワークなどのワイヤレスネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレスアダプタを含むことができる。本開示は、任意の適切なネットワーク、およびネットワークのための任意の適切な通信インターフェース７１０を想定する。限定ではなく、例として、コンピュータシステム７００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１つもしくは複数の部分、あるいはこれらのうちの２つ以上の組合せと通信することができる。これらのネットワークの１つまたは複数の１つまたは複数の部分は、有線またはワイヤレスであってよい。例として、コンピュータシステム７００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（例えば、ＢＬＵＥＴＯＯＴＨ  ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（例えば、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ）ネットワークなど）、もしくは他の適切なワイヤレスネットワーク、またはこれらのうちの２つ以上の組合せと通信することができる。コンピュータシステム７００は、適正な場合、これらのネットワークのいずれかに対する任意の適切な通信インターフェース７１０を含むことができる。通信インターフェース７１０は、適正な場合、１つまたは複数の通信インターフェース７１０を含むことができる。本開示は、特定の通信インターフェースを説明し、示しているが、本開示は、任意の適切な通信インターフェースを想定する。
【００８１】
特定の実施形態において、バス７１２は、コンピュータシステム７００の構成要素を互いに連結するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、バス７１２は、アクセラレイティッドグラフィックスポート（ＡＧＰ）もしくは他のグラフィックスバス、拡張インダストリスタンダードアーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ（ＨＴ）インターコネクト、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、ＩＮＦＩＮＩＢＡＮＤインターコネクト、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バス、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクススタンダーズアソシエーションローカル（ＶＬＢ）バス、もしくは別の適切なバス、またはこれらのうちの２つ以上の組合せを含むことができる。バス７１２は、適正な場合、１つまたは複数のバス７１２を含むことができる。本開示は、特定のバスを説明し、示しているが、本開示は、任意の適切なバスまたは相互接続を想定する。
【００８２】
本明細書で、１つまたは複数のコンピュータ可読非一時的ストレージ媒体は、適正な場合、１つもしくは複数の半導体ベースの集積回路（ＩＣ）もしくは他の集積回路（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは特定用途向けＩＣ（ＡＳＩＣ））、ハードディスクドライブ（ＨＤＤ）、複合ハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカードもしくはドライブ、他の任意の適切なコンピュータ可読非一時的ストレージ媒体、またはこれらの２つ以上の任意の適切な組合せを含むことができる。コンピュータ可読非一時的ストレージ媒体は、適正な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【００８３】
その他
本明細書で、「または」は、別途明確に示されない限り、または文脈によって別途示されない限り、包括的であるが、排他的ではない。したがって、本明細書において、「ＡまたはＢ」は、別途明確に示されない限り、または文脈によって別途示されない限り、「Ａ、Ｂ、または両方」を意味する。さらに、「および」は、別途明確に示されない限り、または文脈によって別途示されない限り、協同（ｊｏｉｎｔ）、および個々（ｓｅｖｅｒａｌ）の両方である。したがって、本明細書において、「ＡおよびＢ」は、別途明確に示されない限り、または文脈によって別途示されない限り、「協同してまたは個々に、ＡおよびＢ」を意味する。
【００８４】
本開示の範囲は、当業者が理解するであろう本明細書で説明されるか、示される実施形態の例への全ての変更、代用、変形、代替、および修正を包含する。本開示の範囲は、本明細書で説明されるか、示される実施形態の例に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして本明細書の個々の実施形態を説明し、示しているが、これらの実施形態のいずれかは、当業者が理解するであろう本明細書のどこかで説明されるか、示される構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含むことができる。さらに、特定の機能を行うように適応される、特定の機能を行うように配置される、特定の機能を行うことができる、特定の機能を行うように構成される、特定の機能を行うこと可能にする、特定の機能を行うように動作可能な、または特定の機能を行うように動作する、装置もしくはシステム、または装置もしくはシステムの構成要素に対する添付の特許請求の範囲における言及は、その特定の機能またはこの特定の機能が、活性化されるか、電源オンされるか、開錠されるかにかかわらず、この装置、システム、または構成要素が、そのように適応されるか、配置されるか、行うことができるか、構成されるか、可能にされるか、動作可能か、動作する限り、この装置、システム、構成要素を包含する。
【図１】
0006744993.tif 000006
【図２】
0006744993.tif 000007
【図３】
0006744993.tif 000008
【図４】
0006744993.tif 000009
【図５】
0006744993.tif 000010
【図６】
0006744993.tif 000011
【図７】
0006744993.tif 000012