(57)【要約】一実施形態において、方法は、ソーシャルネットワーキング・システムにおいて、ユーザが対話したことのある第１組のエンティティと、第２組のエンティティと、にアクセスする工程を含む。ディープラーニングモデルを用いて、第１組のエンティティの第１組のベクトル表現を決定する。第１組のエンティティから対象エンティティを選択し、対象エンティティのベクトル表現を第１組から削除する。第１組内の残りのベクトル表現を結合して、ユーザのベクトル表現を決定する。ディープラーニングモデルを用いて、第２組のエンティティの第２組のベクトル表現を決定する。ユーザと、対象エンティティおよび第２組のエンティティ内のエンティティそれぞれとの類似度スコアを計算する。ディープラーニングモデルを用いて、類似度スコアに基づいて第２組のエンティティ内のエンティティのベクトル表現を更新する。
2019506664.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
１つまたは複数のコンピューティング・デバイスが、ソーシャルネットワーキング・システムのユーザが前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティと、前記ソーシャルネットワーキング・システム内の第２組のエンティティと、にアクセスする工程と、
１つまたは複数のコンピューティング・デバイスが、ディープラーニングモデルを用いて前記第１組のエンティティの第１組のベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のエンティティから対象エンティティを選択する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のベクトル表現から、前記対象エンティティのベクトル表現を削除する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のベクトル表現のうちの残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２組のベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、
前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、
前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの複数の類似度スコアを計算する工程と、
１つまたは複数のコンピューティング・デバイスが、前記ディープラーニングモデルを用いて、前記複数の類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を備える方法。
【請求項２】
１つまたは複数のコンピューティング・デバイスが、前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程をさらに備え、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項１に記載の方法。
【請求項３】
１つまたは複数のコンピューティング・デバイスが、前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいて対応するランキングを割り当てる工程をさらに備え、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティのベクトル表現を更新する工程は、さらに前記ランキングに基づく、請求項１に記載の方法。
【請求項４】
前記第２組のエンティティのうち、ベクトル表現が更新された前記１つまたは複数のエンティティのそれぞれは、前記対象エンティティの類似度スコアよりも大きい類似度スコアを有する、請求項３に記載の方法。
【請求項５】
前記多次元埋め込み空間に検索アルゴリズムを適用することによって、複数のエンティティから前記ユーザに関連性があるとして１つまたは複数のエンティティを識別する工程をさらに備え、
識別された前記１つまたは複数のエンティティの１つまたは複数の埋め込みに対応する点は、前記多次元埋め込み空間において前記ユーザの埋め込みに対応する前記点の閾値距離内にある、請求項１に記載の方法。
【請求項６】
前記ユーザに対して表示するために、前記識別された１つまたは複数のエンティティを、前記ユーザのクライアント・システムに送信する工程をさらに備える請求項５に記載の方法。
【請求項７】
前記対象エンティティは、ランダムに選択される、請求項１に記載の方法。
【請求項８】
前記ユーザは、前記ソーシャルネットワーキング・システムにおいて前記第２組のエンティティと対話したことがない、請求項１に記載の方法。
【請求項９】
前記ソーシャルネットワーキング・システムは、複数のノードと、前記ノード同士をつなげる複数のエッジとを備えるソーシャルグラフを備え、
前記複数のノードのうちの２つのノード間の前記エッジのそれぞれが、それらの間の一次の隔たり度を表し、
前記ノードは、
前記ユーザに対応する第１のノードと、
各々、対応するエンティティに対応する複数の第２のノードとを備える、請求項１に記載の方法。
【請求項１０】
前記ユーザは、前記ユーザのソーシャルネットワーキング・アクションによって前記第１組のエンティティと対話したことがあり、
前記ソーシャルネットワーキング・アクションは、前記第１のノードと、前記第１組のエンティティの各エンティティに対応する各第２のノードとに関して行われる、請求項９に記載の方法。
【請求項１１】
前記ソーシャルネットワーキング・アクションは、エンティティに対するアフィニティの表明を表す、請求項１０に記載の方法。
【請求項１２】
前記１つまたは複数のエンティティのうちの少なくとも１つは、
前記ソーシャルネットワーキング・システムによってホストされるページを含む、請求項１に記載の方法。
【請求項１３】
前記ベクトル表現は、ｄ次元強度ベクトルを含む、請求項１に記載の方法。
【請求項１４】
ソフトウェアを備える１つまたは複数のコンピュータ可読非一時的記憶媒体であって、
前記ソフトウェアは、実行されると、
ソーシャルネットワーキング・システムのユーザが前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティと、前記ソーシャルネットワーキング・システム内の第２組のエンティティと、にアクセスする工程と、
ディープラーニングモデルを用いて前記第１組のエンティティの第１組のベクトル表現を決定する工程と、
前記第１組のエンティティから対象エンティティを選択する工程と、
前記第１組のベクトル表現から、前記対象エンティティのベクトル表現を削除する工程と、
前記第１組のベクトル表現うちの残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２組のベクトル表現を決定する工程と、
前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの類似度スコアを計算する工程と、
前記ディープラーニングモデルを用いて、前記類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を行うように動作可能である、１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項１５】
前記ソフトウェアは、実行されると、
前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程を行うようにさらに動作可能であり、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項１４に記載の１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項１６】
前記ソフトウェアは、実行されると、
前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいて対応するランキングを割り当てる工程を行うようにさらに動作可能であり、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティのベクトル表現を更新する工程は、さらに前記ランキングに基づく、請求項１４に記載の１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項１７】
１つまたは複数のプロセッサと、該１つまたは複数のプロセッサに接続されて前記１つまたは複数のプロセッサによって実行可能な命令を含むメモリと、を備えるシステムであって、前記１つまたは複数のプロセッサは、前記命令を実行すると、
ソーシャルネットワーキング・システムのユーザが前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティと、前記ソーシャルネットワーキング・システム内の第２組のエンティティと、にアクセスする工程と、
ディープラーニングモデルを用いて前記第１組のエンティティの第１のベクトル表現を決定する工程と、
前記第１組のエンティティから対象エンティティを選択する工程と、
前記第１組のベクトル表現から、前記対象エンティティのベクトル表現を削除する工程と、
前記第１組のベクトル表現のうちの記残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２組のベクトル表現を決定する工程と、
前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの類似度スコアを計算する工程と、
前記ディープラーニングモデルを用いて、前記類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を行うように動作可能である、システム。
【請求項１８】
前記１つまたは複数のプロセッサは、前記命令を実行すると、
前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程を行うようにさらに動作可能であり、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項１７に記載のシステム。
【請求項１９】
前記１つまたは複数のプロセッサは、前記命令を実行すると、
前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいて対応するランキングを割り当てる工程を行うようにさらに動作可能であり、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティのベクトル表現を更新する工程は、さらに前記ランキングに基づく、請求項１７に記載のシステム。
【請求項２０】
コンピュータにより実行される方法であって、
１つまたは複数のコンピューティング・デバイスが、ソーシャルネットワーキング・システムのユーザが前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティ、たとえば、１つまたは複数のデータストア内に格納されている第１組のデータ・オブジェクトと、前記ソーシャルネットワーキング・システム内の第２組のエンティティ、たとえば、１つまたは複数のデータストア内に格納されている第２組のデータ・オブジェクトと、にアクセスする工程と、
１つまたは複数のコンピューティング・デバイスが、ディープラーニングモデルを用いて前記第１組のエンティティの第１組のベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のエンティティから対象エンティティを選択する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のベクトル表現から、前記対象エンティティのベクトル表現を削除する工程と、
１つまたは複数のコンピューティング・デバイスが、前記第１組のベクトル表現のうちの残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２組のベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスが、前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの類似度スコアを計算する工程と、
１つまたは複数のコンピューティング・デバイスが、前記ディープラーニングモデルを用いて、前記類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を備える、方法。
【請求項２１】
１つまたは複数のコンピューティング・デバイスが、前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程をさらに備え、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項２０に記載の方法。
【請求項２２】
１つまたは複数のコンピューティング・デバイスが、前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいて対応するランキングを割り当てる工程をさらに備え、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティのベクトル表現を更新する工程は、さらに前記ランキングに基づき、
前記第２組のエンティティのうち、ベクトル表現が更新された１つまたは複数のエンティティのそれぞれは、任意で前記対象エンティティの前記類似度スコアよりも大きい類似度スコアを有する、請求項２０または２１に記載の方法。
【請求項２３】
前記多次元埋め込み空間に検索アルゴリズムを適用することによって、複数のエンティティから前記ユーザに関連性があるとして１つまたは複数のエンティティを識別する工程をさらに備え、
識別された前記１つまたは複数のエンティティの１つまたは複数の埋め込みに対応する点は、前記多次元埋め込み空間において前記ユーザの前記埋め込みに対応する前記点の閾値距離内にあり、
任意で、前記ユーザに対して表示するために、前記識別された１つまたは複数のエンティティを、前記ユーザのクライアント・システムに送信する工程、
任意で、ユーザおよびサーバの両方もしくは一方に関連付けられているクライアント・デバイス上に、識別された１つもしくは複数のエンティティをキャッシュもしくは事前キャッシュする工程であって、好ましくは、１つもしくは複数のユーザまたは選択されたユーザ・グループの各ユーザに関して行われる前記キャッシュもしくは事前キャッシュする工程、ならびに
任意で、前記識別されたエンティティから選択されるエンティティをクラスタリングする工程、および任意で、前記多次元埋め込み空間内の対応する位置に基づいて、エンティティのクラスタをデータストア内に格納する工程、のうちの少なくとも１つを備える、請求項２０から２２のいずれか１項に記載の方法。
【請求項２４】
前記対象エンティティは、ランダムに選択される、請求項２０から２３のいずれか１項に記載の方法。
【請求項２５】
前記ユーザは、前記ソーシャルネットワーキング・システムにおいて前記第２組のエンティティと対話したことがない、請求項２０から２４のいずれか１項に記載の方法。
【請求項２６】
前記ソーシャルネットワーキング・システムは、複数のノードと、前記ノード同士をつなげる複数のエッジとを備えるソーシャルグラフを備え、
前記複数のノードのうちの２つのノード間の前記エッジのそれぞれが、それらの間の一次の隔たり度を表し、
前記ノードは、
前記ユーザに対応する第１のノードと、
各々、対応するエンティティに対応する複数の第２のノードと、を含む、請求項２０から２５のいずれか１項に記載の方法。
【請求項２７】
前記ユーザは、前記ユーザのソーシャルネットワーキング・アクションによって前記第１組のエンティティと対話したことがあり、
前記ソーシャルネットワーキング・アクションは、前記第１のノードと、前記第１組のエンティティの各エンティティに対応する各第２のノードとに関して行われ、
好ましくは、前記ソーシャルネットワーキング・アクションは、エンティティに対するアフィニティの表明を表す、請求項２６に記載の方法。
【請求項２８】
前記エンティティのうちの少なくとも１つは、前記ソーシャルネットワーキング・システムによってホストされるページを含む、請求項２０から２７のいずれか１項に記載の方法。
【請求項２９】
前記ベクトル表現は、ｄ次元強度ベクトルを含む、請求項２０から２８のいずれか１項に記載の方法。
【請求項３０】
ソフトウェアを備える１つまたは複数のコンピュータ可読非一時的記憶媒体であって、
前記ソフトウェアは、実行されると、
請求項２０から２９の少なくとも１項による方法を行うように、特に、
ソーシャルネットワーキング・システムのユーザが、前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティと、前記ソーシャルネットワーキング・システム内の第２組のエンティティと、にアクセスする工程と、
ディープラーニングモデルを用いて前記第１組のエンティティの第１組のベクトル表現を決定する工程と、
前記第１組のエンティティから対象エンティティを選択する工程と、
前記第１組のベクトル表現から、前記対象エンティティのベクトル表現を削除する工程と、
前記第１組のベクトル表現のうちの残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２のベクトル表現を決定する工程と、
前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの類似度スコアを計算する工程と、
前記ディープラーニングモデルを用いて、前記類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を行うように動作可能である、１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項３１】
前記ソフトウェアは、実行されると、
前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程を行うようにさらに動作可能であり、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項３０に記載の１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項３２】
前記ソフトウェアは、実行されると、
前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいてそれぞれのランキングを割り当てる工程を行うようにさらに動作可能であり、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティのベクトル表現を更新する工程は、さらに前記ランキングに基づく、請求項３０または３１に記載の媒体。
【請求項３３】
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサに接続されて前記１つまたは複数のプロセッサによって実行可能な命令を含むメモリと、を備えるシステムであって、
前記１つまたは複数のプロセッサは、前記命令を実行すると、
請求項２０から２９のうちの少なくとも１項による方法を行うように、特に、
ソーシャルネットワーキング・システムのユーザが前記ソーシャルネットワーキング・システムにおいて対話したことのある第１組のエンティティと、前記ソーシャルネットワーキング・システム内の第２組のエンティティと、にアクセスする工程と、
ディープラーニングモデルを用いて前記第１組のエンティティの第１組のベクトル表現を決定する工程と、
前記第１組のエンティティから対象エンティティを選択する工程と、
前記第１組のベクトル表現から、前記対象エンティティの前記ベクトル表現を削除する工程と、
前記第１組のベクトル表現のうちの残りのベクトル表現を結合して、前記ユーザのベクトル表現を決定する工程と、
前記ディープラーニングモデルを用いて、前記第２組のエンティティの第２組のベクトル表現を決定する工程と、
前記ユーザのベクトル表現を前記対象エンティティのベクトル表現と比較することによって、前記対象エンティティと前記ユーザとの類似度スコアを計算し、前記ユーザのベクトル表現を前記第２組のエンティティのうちの複数のエンティティのベクトル表現と比較することによって、前記ユーザと前記第２組のエンティティのうちの複数のエンティティとの類似度スコアを計算する工程と、
前記ディープラーニングモデルを用いて、前記類似度スコアに基づいて前記第２組のエンティティのうちの１つまたは複数のエンティティのベクトル表現を更新する工程と、を行うように動作可能である、システム。
【請求項３４】
前記１つまたは複数のプロセッサは、前記命令を実行すると、
前記ユーザ、前記第１組のエンティティの各エンティティ、および前記第２組のエンティティの各エンティティの埋め込みを決定する工程を行うようにさらに動作可能であり、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
前記多次元埋め込み空間が、複数のエンティティに対応する複数の点を備え、
各埋め込みが、前記ディープラーニングモデルを用いて決定された対応するベクトル表現に基づく、請求項３３に記載のシステム。
【請求項３５】
前記１つまたは複数のプロセッサは、前記命令を実行すると、前記対象エンティティおよび前記第２組のエンティティの各エンティティに、前記類似度スコアに基づいてそれぞれのランキングを割り当てる工程を行うようにさらに動作可能であり、
前記第２組のエンティティのうちの前記１つまたは複数のエンティティの前記ベクトル表現を更新する工程は、さらに前記ランキングに基づく、請求項３３または３２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にディープラーニングモデルを訓練することに関する。
【背景技術】
【０００２】
ディープラーニングは、教師ありの設定または教師無しの設定でモデルを訓練することを含む機械学習の一種である。ディープラーニングモデルは、データの表現を学習するために訓練され得る。限定ではなく一例として、ディープラーニングモデルは、強度値のベクトルとしてデータを表現し得る。ディープラーニングモデルは、データの分類に使用され得る。分類は、ディープラーニングモデルを訓練することによって、データポイントが属する一組のカテゴリのうちのどれかを決定することを含む。
【発明の概要】
【０００３】
特定の実施形態においては、ソーシャルネットワーキング・システムは、ディープラーニングモデルを用いてユーザに関連性があるエンティティを予測することができる。ディープラーニングモデルは、エンティティをベクトル表現にマッピングするように訓練することができる。ユーザのベクトル表現は、ソーシャルネットワーキング・システムにおいてユーザが対話したことのあるエンティティの集合に基づいて決定することができる。特定の実施形態においては、ユーザが対話したことのあるエンティティの集合から対象エンティティを選択して、削除することができる。エンティティ集合内の残りのエンティティのベクトル表現を結合して、ユーザのベクトル表現を求めることができる。ディープラーニングモデルは、対象エンティティを教師信号として使用して訓練することができる。ユーザが対話したことのないエンティティのベクトル表現は、ディープラーニングモデルを用いて決定することができる。エンティティまたはユーザの埋め込みは、それぞれのベクトル表現に基づいて決定することができ、これは、多次元埋め込み空間内の１点の座標に対応することが可能である。埋め込みは、埋め込み空間内のエンティティまたはユーザの表現であることが可能である。埋め込み空間は、１人または複数人のユーザの埋め込みと、複数のエンティティの埋め込みとを含むことができる。これらのユーザおよびエンティティの埋め込みを用いて、任意の数の適切なタスクを行うことができる。限定ではなく、例として、ソーシャルネットワーキング・システムは、ユーザが対話したことがなく、埋め込み空間内のユーザ埋め込みに近接する埋め込みを有する１つまたは複数のエンティティを識別するために、検索アルゴリズムを採用することができる。ソーシャルネットワーキング・システムは、識別されたエンティティがユーザに関連性があると決定することができる。
【０００４】
特定の実施形態においては、識別されたエンティティは、推奨としてユーザのクライアント・システムに送ることができる。識別されたエンティティは、クライアント・システム上で稼働するアプリケーション（たとえば、ソーシャルネットワーキング・システムに関連付けられているメッセージング・プラットフォームまたはアプリケーション）のインタフェースに、提案としてユーザに対して表示することができる。ユーザは、識別されたエンティティの集合から１つまたは複数のエンティティを選択することができ、選択されたエンティティは、限定ではなく、例として、ソーシャルネットワーキング・システムによってホストされるアプリケーション内の別のページにユーザを結びつけることができる。
【０００５】
特定の実施形態においては、エンティティは、ユーザの埋め込みに近接する埋め込み空間で識別されることがあり（たとえば、ユーザを含む検索クエリに応答して）、その埋め込み空間内に埋め込みを有することがある（たとえば、識別されたエンティティがユーザに関連性がある）。ユーザの埋め込みの近くに対応する埋め込みを有し、かつユーザがまだ対話したことのないエンティティは、キャッシュまたは事前キャッシュすることができる。限定ではなく、例として、識別されたエンティティを、それぞれの１人または複数人のユーザ（すなわち、識別されたエンティティの埋め込みの近くに埋め込みを有し、かつ識別されたエンティティとまだ対話したことのない１人または複数人のユーザ）に対してキャッシュまたは事前キャッシュすることができる。キャッシュまたは事前キャッシュは、限定ではなく、例として、１人または複数人の特定のユーザに関して、またはユーザのそれぞれに関して、サーバ側またはクライアント側で実施または実行することができる。キャッシュまたは事前キャッシュにより、エンティティへのアクセスを高速化することが可能である。限定ではなく、例として、エンティティ（たとえば、ユーザに関連性があると決定された識別されたエンティティ）には、それぞれのユーザがそれを要求する場合、またはサーバがユーザ（たとえば、ユーザのクライアント・システム）に推奨（たとえば、識別されたエンティティ）をプッシュする場合、素早くアクセスすることができる。提案される方法を用いることにより、特定のユーザに関連性があるエンティティ（たとえば、コンピューティング・システム（限定ではなく、例として、ソーシャルネットワーキング・システム）の１つまたは複数のデータベース内に格納されるデータ・オブジェクト）を識別することが可能である。識別されたエンティティは、それぞれのユーザ（すなわち、識別されたエンティティに関連性があると決定されたユーザ）によってアクセスされる確率にそれぞれ関連付けることができる。特定の実施形態においては、エンティティは、特定のユーザによってアクセスされる確率が一定の最低確率を超えることに基づいて選択することができる。このようなエンティティをキャッシュまたは事前キャッシュすることは、無用なキャッシュを防ぎ、および／またはデータ・トラフィックを減らし、および／または各エンティティにアクセスする速度もしくはアクセス時間を改善する上で効果的であるだろう。すべてのエンティティ候補（たとえば、数十億のエンティティ）の中から、各検索でエンティティの部分集合のみを関連性があると判断することができる。提案される方法を用いることで、関連性があるエンティティの部分集合をクライアント・システムに送ること、またはクライアント・システムによってキャッシュもしくは事前キャッシュすることができる。本明細書で説明するように、訓練の結果、提案される訓練方法を実行しないでデータにアクセスするよりも、サーバ、クライアント・システムまたは任意の他の適切なコンピューティング・デバイスもしくはプラットフォームは、埋め込み空間により迅速にアクセスすることができる。限定ではなく、例として、ユーザに関連性があると決定された（たとえば、埋め込み空間においてユーザの埋め込みに近接する埋め込みに関連付けられている）エンティティを含め、関連性があるエンティティは、埋め込み空間で検索（たとえば、距離検索）を実行することで、迅速に取得および識別または取得もしくは識別することができる。特定の実施形態においては、エンティティのクラスタリングは、使用される各データベースに基づくことができる。言い換えると、クラスタリングは、データベース固有であることが可能である。関連性があるエンティティのクラスタリングは、限定ではなく、例として、提案される方法に基づいて、ソーシャルネットワーキング・システムの１人または複数人のユーザに対して行うことができる。
【０００６】
特定の実施形態では、複数のエンティティ、複数のエンティティに関連付けられた情報、またはその両方は、限定ではなく一例として、１つまたは複数のデータベースまたはデータストアにデータ・オブジェクトとして格納され得る。これらのデータベースまたはデータストアは、限定ではなく一例として、（例えば、異なる場所、都市、国および／または大陸において）地理的に分散している１つまたは複数のデータセンター内に存在し得る。特定の実施形態では、埋め込み空間を使用して、１人または複数人の特定のユーザ、各ユーザ、ソーシャルネットワーキング・システムの１人または複数人のユーザ、またはそれらの任意の組み合わせに関する１つまたは複数のエンティティの関連性の予測を行うことができ、ユーザはそれぞれ、個々の地理的な場所に位置することができる。関連性があると予測された複数のエンティティおよび対応する情報は、決定された関連性に基づいて、１人または複数のユーザにより近い距離に位置するデータベースに格納され得る。関連性があると判定された複数のエンティティおよび関連する情報は、限定ではなく一例として、１人または複数人のユーザまたは１つまたは複数のクライアント・システムの地理的位置に近い距離にある１つまたは複数のクライアント・システム、１つまたは複数のサーバ、またはそれらの任意の組み合わせにおいて事前キャッシュまたはキャッシュし得る。そのような実施形態は、リモートデータベース間および／またはデータセンター間の負荷および／またはデータ・トラフィックを低減するのに有効であり得る。これらの実施形態は、（例えば、特定の複数のエンティティにアクセスするための）アクセス時間を改善（例えば、低減）することもできる。
【０００７】
特定の実施形態では、さらに複数のエンティティはクラスタリングまたは再クラスタリングされ得る。クラスタリングは、より速い検索結果（すなわち、検索時間の短縮、それにより検索エンジンの負荷の低減）および／または対応するデータネットワークにわたるより少ないデータ・トラフィックをもたらし得る。クラスタは、埋め込み空間内の位置または場所に基づいて、複数のデータストアにわたって格納され得る。この記憶方式は、データアクセス時間および／または検索時間を改善することができる。限定ではなく一例として、埋め込み空間内の個々の位置に基づいて複数のデータストアにわたって複数のエンティティのクラスタを格納することにより、関連する結果を検索するために検索エンジンがより少ないデータストアを検索することができる。さらに、埋め込みをクラスタリングすることによって、埋め込み空間から検索された検索結果は、クラスタリングが実行されていない埋め込み空間から検索結果を検索するアプリケーションと比較して、より正確で／特定的であり得る。その理由は、検索結果は、一般的な高レベルの分類のみならず、エンティティの属性に付加的に基づくものであり得るからである。クライアント・システムは、ユーザに対する適切な検索結果を得るために、より多くの洗練された検索を提示し続ける必要はない。これは、クライアント・システムとサーバとの間のインタラクションの数および強度が減少する可能性があることを意味する。さらに、クラスタリングは、異なるクラスタからの検索結果が意図的に検索結果に引き込まれる可能性があるので、より多様な検索結果を提供することができる。埋め込みの決定がサーバによって実行される特定の実施形態が説明されているが、これは限定ではなく一例であり、クライアント・システムは埋め込み空間内の複数のエンティティの埋め込みの一部または全部を決定し得る。限定ではなく一例として、エンティティはビジュアルコンテンツアイテムであってもよく、ビジュアルコンテンツアイテムの前処理（例えば、ビジュアルコンテンツアイテムの１つまたは複数の属性を決定すること）は、クライアント・システム上で、またはクライアント・システムによって実行され得る。次いで、ユーザに、ビジュアルコンテンツアイテムに対応する１つまたは複数の検索語（例えば、各検索語がビジュアルコンテンツアイテムの１つまたは複数の属性に基づく）が（例えば、クライアント・システムのインタフェースにおいて）提示され得る。ユーザは、（例えば、クライアント・システムまたは個々のプロンプトを発行しているサーバによって）検索語を確認するよう促される。
【０００８】
本明細書で開示される実施形態は単なる例であり、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてまたは一部を含むか、いずれも含まなくてもよい。本発明による実施形態は、方法、記憶媒体、システム、およびコンピュータ・プログラム製品に向けられた添付の特許請求の範囲に特に開示されており、１つの請求項のカテゴリ、例えば方法で言及された任意の特徴は、別の請求項のカテゴリ、例えばシステムも同様に請求することができる。添付の特許請求の範囲に記載された従属性または参照は、形式的な理由のためにのみ選択される。しかしながら、先の請求項（特に多数項従属性）を意図的に参照した結果生じる主題も同様に請求することができ、その結果、請求項およびその請求項の特徴の任意の組合せが開示され、かつ添付された特許請求の範囲で選択された従属性にかかわらず請求することができる。特許請求することができる主題は、添付の特許請求の範囲に記載されている特徴の組み合わせだけでなく、特許請求の範囲内の特徴の任意の他の組み合わせをも含み、特許請求の範囲に記載された各特徴は、特許請求の範囲内の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載または図示された実施形態および特徴のうちのいずれかは、別個の請求項および／または本明細書に記載または図示される任意の実施形態または特徴との任意の組み合わせまたは添付の特許請求の範囲の特徴との任意の組み合わせ請求することができる。
【０００９】
本発明による一実施形態において、コンピュータ実装方法は、
１つまたは複数のコンピューティング・デバイスによって、
ソーシャルネットワーキング・システムのユーザがそのソーシャルネットワーキング・システムにおいて対話したことのある第１のエンティティ集合（たとえば、１つまたは複数のデータストア内に格納されている第１のデータ・オブジェクト集合）と、
ソーシャルネットワーキング・システム内の第２のエンティティ集合（たとえば、１つまたは複数のデータストア内に格納されている第２のデータ・オブジェクト集合）と、
にアクセスする工程と、
１つまたは複数のコンピューティング・デバイスによって、ディープラーニングモデルを用いて第１のエンティティ集合の第１のベクトル表現集合を決定する工程と、
１つまたは複数のコンピューティング・デバイスによって、第１のエンティティ集合から対象エンティティを選択する工程と、
１つまたは複数のコンピューティング・デバイスによって、第１のベクトル表現集合から対象エンティティのベクトル表現を削除する工程と、
１つまたは複数のコンピューティング・デバイスによって、第１のベクトル表現集合内の残りのベクトル表現を結合して、ユーザのベクトル表現を決定する工程と、
１つまたは複数のコンピューティング・デバイスによって、ディープラーニングモデルを用いて第２のエンティティ集合の第２のベクトル表現集合を決定する工程と、
１つまたは複数のコンピューティング・デバイスによって、
ユーザのベクトル表現と対象エンティティのベクトル表現とを比較することによって、対象エンティティとユーザとの類似度スコア、および
ユーザのベクトル表現と第２のエンティティ集合内のエンティティのベクトル表現とを比較することによって、ユーザと第２のエンティティ集合内のエンティティとの類似度スコア、を計算する工程と、
１つまたは複数のコンピューティング・デバイスによって、ディープラーニングモデルを用いて、類似度スコアに基づいて第２のエンティティ集合内の１つまたは複数のエンティティのベクトル表現を更新する工程と、
を備える。
【００１０】
上記示したように、ベクトル表現の更新は、データアクセス時間の改善もしくは最適化、および遠隔デバイス間のデータ・トラフィックの低減、の両方または一方のために使用または適用することができる。さらなる有利な効果については、たとえば埋め込みに関する上記およびさらに以下の説明を参照する。
【００１１】
ディープラーニングモデルは、たとえば、機械学習モデル、ニューラル・ネットワーク、潜在ニューラル・ネットワーク、任意の他の適切なディープラーニングモデル、またはその任意の組合せにすることが可能であり、上記および以下の説明を参照する。
【００１２】
たとえば、本明細書で説明する実施形態のディープラーニングモデルの使用性は、提案される方法の発見の１つであり、ユーザおよびエンティティの両方または一方のベクトル表現に関連してディープラーニングモデルを使用することは、特に、たとえばソーシャルネットワーキング・データベースによって、またはソーシャルネットワーキング・データベースにおいて使用される大規模データベースでは、データアクセスの改善およびデータ・トラフィックの低減の両方または一方に特に効果があることが明らかになった。
【００１３】
類似度スコアは、エンティティ同士およびエンティティとユーザ表現との間またはエンティティ同士もしくはエンティティとユーザ表現との間の類似度を表すパラメータである。
【００１４】
本発明による実施形態において、方法は、
１つまたは複数のコンピューティング・デバイスによって、ユーザ、第１のエンティティ集合の各エンティティ、および第２のエンティティ集合の各エンティティの埋め込みを決定する工程をさらに備えることができ、
各埋め込みは、多次元埋め込み空間内の１点に対応し、
埋め込み空間は、複数のエンティティに対応する複数の点を備え、
各埋め込みは、ディープラーニングモデルを用いて決定されたそれぞれのベクトル表現に基づく。
【００１５】
埋め込み空間は、たとえば多次元空間、たとえばｄ次元空間にすることができ、ここで、ｄは、容量を制御するハイパーパラメータ、たとえば自然数であり、エンティティの埋め込みに対応する複数の点を含むことができる。本明細書で使用されるとき、エンティティの埋め込みとは、埋め込み空間内のエンティティの表現をいうことがある。
【００１６】
実施形態において、ディープラーニングモデル（たとえば、ニューラル・ネットワーク）は、エンティティを
【００１７】
【数１】
2019506664.tif 000003
のベクトルにマッピングするように構成される１つまたは複数のインデックスを含むことができ、ここで、
【００１８】
【数２】
2019506664.tif 000004
は実数の集合を示し、ｄは、容量を制御するハイパーパラメータ、たとえば自然数である。ベクトルは、ｄ次元強度ベクトルにすることができる。本明細書で使用するとき、強度値は、−１から１までの範囲内の任意の適切な値にすることができる。エンティティのベクトル表現のそれぞれは、埋め込み空間内のそれぞれの点に座標を提供することができる。
【００１９】
特定の実施形態においては、ディープラーニングモデルは、エンティティをベクトル表現にマッピングするように訓練された１つまたは複数のインデックスを含むことができる。
【００２０】
特定の実施形態においては、たとえば選択した数のエンティティのうちのもう１つのエンティティおよび／またはエンティティのグループおよび／または各エンティティ、またはそれぞれのベクトル表現（たとえば、１対１のマッピング）は、たとえばソーシャルネットワーキング・システムによって、限定ではなく、例として、ディープラーニングモデルを用いて生成されるディクショナリを使用してマッピングすることができる。
【００２１】
本発明による一実施形態においては、方法は、１つまたは複数のコンピューティング・デバイスによって、対象エンティティおよび第２のエンティティ集合の各エンティティに、類似度スコアに基づいてそれぞれのランキングを割り当てる工程をさらに備えることができ、第２のエンティティ集合のうちの１つまたは複数のエンティティのベクトル表現を更新する工程は、さらにランキングに基づくことができる。
【００２２】
第２のエンティティ集合のうち、ベクトル表現が更新された１つまたは複数のエンティティのそれぞれは、オプションで、対象エンティティの類似度スコアよりも大きい類似度スコアを有することができる。本明細書で使用されるモデルにおいて、類似度スコアが高いほど、比較されるエンティティおよびユーザ表現の両方または一方に、より類似している。たとえば、類似度スコアが第２エンティティより高い第１エンティティは、第２エンティティよりもユーザ表現に類似している。
【００２３】
本発明による一実施形態において、方法は、埋め込み空間に検索アルゴリズムを適用することによって、複数のエンティティの中からユーザに関連性があるとして１つまたは複数のエンティティを識別する工程をさらに備えることができ、識別されたエンティティの１つまたは複数の埋め込みに対応する点は、埋め込み空間においてユーザの埋め込みに対応する点の閾値距離内にすることができる。
【００２４】
本発明による一実施形態において、方法は、ユーザに対して表示するために、１つまたは複数の識別されたエンティティを、ユーザのクライアント・システムに送信する工程をさらに含むことができる。
【００２５】
対象エンティティはランダムに選択することができる。
ユーザは、ソーシャルネットワーキング・システムにおいて第２のエンティティ集合と対話したことがないかもしれない。
【００２６】
ソーシャルネットワーキング・システムは、複数のノードと、ノード同士をつなげる複数のエッジとを含むソーシャルグラフを備えることができ、２つのノード間のエッジのそれぞれが、それらの間の１次の隔たり度を表し、ノードが、
ユーザに対応する第１のノードと、
それぞれが各エンティティに対応する複数の第２のノードと、を備える。
【００２７】
ソーシャルネットワーキング・システムのソーシャルグラフ・データベースのノードおよびエッジの両方または一方は、本明細書で述べるエンティティとして使用することができる。
【００２８】
ユーザは、ユーザのソーシャルネットワーキング・アクションによって第１のエンティティ集合と対話したことがあることがあり、ソーシャルネットワーキング・アクションは、第１のノードと、第１のエンティティ集合のそれぞれのエンティティに対応する各第２のノードとに関して取られる。
【００２９】
ソーシャルネットワーキング・アクションは、エンティティに対するアフィニティの表明を表すことができる。
エンティティのうちの少なくとも１つは、ソーシャルネットワーキング・システムによってホストされるページを備えることができる。
【００３０】
ベクトル表現はｄ次元強度ベクトルを備えることができる。
本発明による一実施形態においては、１つまたは複数のコンピュータ可読非一時的記憶媒体は、実行時、
ソーシャルネットワーキング・システムにおいてソーシャルネットワーキング・システムのユーザが対話したことのある第１のエンティティ集合と、
ソーシャルネットワーキング・システム内の第２のエンティティ集合と、にアクセスする工程と、
ディープラーニングモデルを用いて、第１のエンティティ集合の第１のベクトル表現集合を決定する工程と、
第１のエンティティ集合から対象エンティティを選択する工程と、
第１のベクトル表現集合から、対象エンティティのベクトル表現を削除する工程と、
第１のベクトル表現集合内の残りのベクトル表現を結合して、ユーザのベクトル表現を決定する工程と、
ディープラーニングモデルを用いて、第２のエンティティ集合の第２のベクトル表現集合を決定する工程と、
ユーザのベクトル表現を対象エンティティのベクトル表現と比較することによって、対象エンティティとユーザとの類似度スコア、および
ユーザのベクトル表現を第２のエンティティ集合内のエンティティのベクトル表現と比較することによって、ユーザと第２のエンティティ集合内のエンティティとの類似度スコア、を計算する工程と、
ディープラーニングモデルを用いて、類似度スコアに基づいて第２のエンティティ集合内の１つまたは複数のエンティティのベクトル表現を更新する工程と、を行うように動作可能であるソフトウェアを備えることができる。
【００３１】
利点および有利な効果ならびにさらなる実施形態、の両方または一方に関しては、方法に関する上記の説明を参照し、これを準用するものとする。
ソフトウェアは、実行時、
ユーザ、第１のエンティティ集合の各エンティティ、および第２のエンティティ集合の各エンティティの埋め込みを決定する工程を行うようにさらに動作可能にすることができ、
各埋め込みが、多次元埋め込み空間内の１点に対応し、
埋め込み空間は複数のエンティティに対応する複数の点を備え、
各埋め込みはディープラーニングモデルを用いて決定されたそれぞれのベクトル表現に基づく。
【００３２】
ソフトウェアは、実行時、対象エンティティと第２のエンティティ集合の各エンティティとに、類似度スコアに基づいてそれぞれのランキングを割り当てる工程を行うようにさらに動作可能にすることができ、第２のエンティティ集合のうちの１つまたは複数のエンティティのベクトル表現を更新する工程は、さらにランキングに基づくことができる。
【００３３】
本発明による一実施形態において、システムは、１つまたは複数のプロセッサと、プロセッサに連結されてプロセッサによって実行可能な命令を含むメモリとを備えることができ、プロセッサは、命令の実行時、
ソーシャルネットワーキング・システムにおいてソーシャルネットワーキング・システムのユーザが対話したことのある第１のエンティティ集合と、
ソーシャルネットワーキング・システム内の第２のエンティティ集合と、にアクセスする工程と、
ディープラーニングモデルを用いて、第１のエンティティ集合の第１のベクトル表現集合を決定する工程と、
第１のエンティティ集合から対象エンティティを選択する工程と、
第１のベクトル表現集合から対象エンティティのベクトル表現を削除する工程と、
第１のベクトル表現集合内の残りのベクトル表現を結合して、ユーザのベクトル表現を決定する工程と、
ディープラーニングモデルを用いて、第２のエンティティ集合の第２のベクトル表現集合を決定する工程と、
ユーザのベクトル表現を対象エンティティのベクトル表現と比較することによって、対象エンティティとユーザとの類似度スコア、および
ユーザのベクトル表現を第２のエンティティ集合内のエンティティのベクトル表現と比較することによって、ユーザと第２のエンティティ集合内のエンティティとの類似度スコア、を計算する工程と、
ディープラーニングモデルを用いて、類似度スコアに基づいて、第２のエンティティ集合内の１つまたは複数のエンティティのベクトル表現を更新する工程とを行うように動作可能である。
【００３４】
利点および有利な効果ならびにさらなる実施形態の両方または一方に関しては、方法に関する上記の説明を参照し、これを準用するものとする。
プロセッサは、命令の実行時、
ユーザ、第１のエンティティ集合の各エンティティ、および第２のエンティティ集合の各エンティティの埋め込みを決定する工程を行うようにさらに動作可能にすることができ、
各埋め込みは、多次元埋め込み空間内の１点に対応し、
埋め込み空間は、複数のエンティティに対応する複数の点を備え、
各埋め込みは、ディープラーニングモデルを用いて決定されたそれぞれのベクトル表現に基づく。
【００３５】
プロセッサは、命令の実行時、対象エンティティおよび第２のエンティティ集合の各エンティティに、類似度スコアに基づいてそれぞれのランキングを割り当てる工程を行うようにさらに動作可能にすることができ、第２のエンティティ集合のうちの１つまたは複数のエンティティのベクトル表現を更新する工程は、さらにランキングに基づくことができる。
【００３６】
本発明によるさらなる実施形態においては、１つまたは複数のコンピュータ可読非一時的記憶媒体は、実行時、本発明による方法または前述の実施形態のいずれかを行うように動作可能なソフトウェアを備える。
【００３７】
本発明によるさらなる実施形態において、システムは、１つまたは複数のプロセッサと、プロセッサに連結されておりプロセッサによって実行可能な命令を含む少なくとも１つのメモリとを備え、プロセッサは、命令の実行時、本発明による方法または前述の実施形態のいずれかを行うように動作可能である。
【００３８】
本発明によるさらなる実施形態においては、好ましくはコンピュータ可読非一時的記憶媒体を備えるコンピュータ・プログラム製品は、データ処理システム上での実行時、本発明による方法または前述の実施形態のいずれかを行うように動作可能である。
【図面の簡単な説明】
【００３９】
【図１】ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境を示す。
【図２】例示的なソーシャルグラフを示す。
【図３】例示的なディープラーニングモデルを示す。
【図４】エンティティをベクトル表現にマッピングする例示的なディクショナリを示す。
【図５】ディープラーニングモデルを用いて、ユーザの埋め込みを決定するための例示的な方法を示す。
【図６】ディープラーニングモデルを訓練するための例示的な方法を示す。
【図７】埋め込み空間の例示的な図を示す。
【図８】ディープラーニングモデルを用いてエンティティのベクトル表現を更新するための例示的な方法を示す。
【図９】例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００４０】
システムの概要
図１は、ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示している。ネットワーク環境１００は、ネットワーク１１０によって互いにつながっているクライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示しているが、本開示は、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の適切な構成を想定している。限定ではなく、例として、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、ネットワーク１１０を迂回して、互いに直接つながることが可能である。別の例として、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、図１は、特定の数のクライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を想定している。限定ではなく、例として、ネットワーク環境１００は、複数のクライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含むことができる。
【００４１】
本開示は、任意の適切なネットワーク１１０を想定している。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００４２】
リンク１５０は、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定している。特定の実施形態においては、１つまたは複数のリンク１５０は、１つもしくは複数の有線リンク（たとえば、デジタルサブスクライバライン（ＤＳＬ）もしくはデータオーバケーブルサービスインタフェース仕様（ＤＯＣＳＩＳ）など）、ワイヤレスリンク（たとえば、Ｗｉ−Ｆｉもしくはワールドワイドインターオペラビリティーフォーマイクロウェーブアクセス（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期光ネットワーク（ＳＯＮＥＴ）もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態においては、１つまたは複数のリンク１５０はそれぞれ、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラーテクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク１５０、または複数のそのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通じて必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の点において１つまたは複数の第２のリンク１５０とは異なることが可能である。
【００４３】
特定の実施形態においては、クライアント・システム１３０は、クライアント・システム１３０によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジックコンポーネント、または複数のそのようなコンポーネントの組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアント・システム１３０は、デスクトップコンピュータ、ノートブックコンピュータもしくはラップトップコンピュータ、ネットブック、タブレットコンピュータなどのコンピュータシステム、ｅブックリーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張現実デバイス／仮想現実デバイスその他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム１３０を想定している。クライアント・システム１３０は、クライアント・システム１３０のネットワークユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアント・システム１３０は、自分のユーザがその他のクライアント・システム１３０のその他のユーザと通信することを可能にすることができる。
【００４４】
特定の実施形態においては、クライアント１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ（いずれも登録商標）などのウェブブラウザ１３２を含むことができ、１つまたは複数のアドオン、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲ（登録商標）などのその他の拡張を有することができる。クライアント・システム１３０のユーザは、ウェブブラウザ１３２を特定のサーバ（サーバ１６２、またはサードパーティ・システム１７０に関連付けられているサーバなど）へ導くユニフォームリソースロケータ（ＵＲＬ）またはその他のアドレスを入力することができ、ウェブブラウザ１３２は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成して、そのＨＴＴＰ要求をサーバに通信することができる。サーバは、そのＨＴＴＰ要求を受け入れて、そのＨＴＴＰ要求に応答して１つまたは複数のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルをクライアント・システム１３０に通信することができる。クライアント・システム１３０は、ユーザに提示するためにサーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴ（登録商標）  ａｎｄ  ＸＭＬ）などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、（そのウェブページをレンダリングするためにブラウザが使用することができる）１つまたは複数の対応するウェブページファイルを含み、その逆もまた同様である。
【００４５】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストすることができるネットワークアドレス可能なコンピューティング・システムであることが可能である。ソーシャルネットワーキング・システム１６０は、たとえば、ユーザプロフィールデータ、コンセプトプロフィールデータ、ソーシャルグラフ情報、またはオンライン・ソーシャル・ネットワークに関連したその他の適切なデータなどのソーシャルネットワーキングデータを生成すること、格納すること、受け取ること、および送信することが可能である。ソーシャルネットワーキング・システム１６０は、ネットワーク環境１００のその他のコンポーネントによって直接、またはネットワーク１１０を介してアクセスされることが可能である。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、１つまたは複数のサーバ１６２を含むことができる。それぞれのサーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ１６２は、限定ではなく、例として、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、Ｅｘｃｈａｎｇｅサーバ、データベースサーバ、プロキシサーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ１６２は、サーバ１６２によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジックコンポーネント、または複数のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、１つまたは複数のデータストア１６４を含むことができる。データストア１６４は、さまざまなタイプの情報を格納するために使用されることが可能である。特定の実施形態においては、データストア１６４内に格納されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータストア１６４は、リレーショナルデータベース、行のデータベース、相関関係データベース、あるいはその他の適切なデータベースであることが可能である。本開示は特定のタイプのデータベースを記述し、例示するが、本開示においては、任意の適切なタイプのデータベースが考えられる。特定の実施形態は、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、またはサードパーティ・システム１７０が、データストア１６４内に格納されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【００４６】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、１つまたは複数のソーシャルグラフを１つまたは複数のデータストア１６４内に格納することができる。特定の実施形態においては、ソーシャルグラフは、複数のノード（複数のユーザ・ノード（それぞれが、特定のユーザに対応している）、または複数のコンセプト・ノード（それぞれが、特定のコンセプトに対応している）を含むことができる）と、ノード同士をつなげる複数のエッジとを含むことができる。ソーシャルネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャルネットワーキング・システム１６０を介してオンライン・ソーシャル・ネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャルネットワーキング・システム１６０のその他の複数のユーザへのつながり（すなわち、関係）を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャルネットワーキング・システム１６０を介して、つながり、関連付け、または関係を形成しているソーシャルネットワーキング・システム１６０のその他の任意のユーザを指すことができる。
【００４７】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ソーシャルネットワーキング・システム１６０によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャルネットワーキング・システム１６０のユーザが属することが可能であるグループもしくはソーシャルネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダーエントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャルネットワーキング・システム１６０において、またはサードパーティ・システム１７０の外部システム（ソーシャルネットワーキング・システム１６０とは別個のものであって、ネットワーク１１０を介してソーシャルネットワーキング・システム１６０に結合されている）によって表されることが可能である任意のものと対話することができる。
【００４８】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャルネットワーキング・システム１６０は、ユーザたちが互いに対話すること、ならびにサードパーティ・システム１７０もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーションプログラミングインタフェース（ＡＰＩ）もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【００４９】
特定の実施形態においては、サードパーティ・システム１７０は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータストア、１つもしくは複数のインタフェース（ＡＰＩを含むが、それには限定されない）、１つもしくは複数のウェブサービス、１つもしくは複数のコンテンツソース、１つもしくは複数のネットワーク、または（たとえば、サーバと通信することができる）その他の任意の適切なコンポーネントを含むことができる。サードパーティ・システム１７０は、ソーシャルネットワーキング・システム１６０を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャルネットワーキング・システム１６０およびサードパーティ・システム１７０は、ソーシャルネットワーキング・システム１６０またはサードパーティ・システム１７０のユーザにソーシャルネットワーキングサービスを提供するために互いに連携して機能することができる。この意味において、ソーシャルネットワーキング・システム１６０は、サードパーティ・システム１７０などのその他のシステムがインターネットを介してソーシャルネットワーキングサービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【００５０】
特定の実施形態においては、サードパーティ・システム１７０は、サードパーティコンテンツオブジェクトプロバイダを含むことができる。サードパーティコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの１つまたは複数のソースを含むことができ、それらのソースは、クライアント・システム１３０に通信されることが可能である。限定ではなく、例として、コンテンツオブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツオブジェクトは、インセンティブコンテンツオブジェクト、たとえば、クーポン、ディスカウントチケット、ギフト券、またはその他の適切なインセンティブオブジェクトを含むことができる。
【００５１】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０はまた、ユーザによって生成されたコンテンツオブジェクトを含み、それらのコンテンツオブジェクトは、ソーシャルネットワーキング・システム１６０とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャルネットワーキング・システム１６０に付加、アップロード、送信、または「ポスト」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアント・システム１３０からソーシャルネットワーキング・システム１６０へポストを通信する。ポストは、ステータス更新もしくはその他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュースフィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャルネットワーキング・システム１６０に付加されることも可能である。
【００５２】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含むことができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ウェブサーバ、アクションロガー、ＡＰＩ要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推測モジュール、認可／プライバシーサーバ、検索モジュール、広告ターゲティングモジュール、ユーザインタフェースモジュール、ユーザプロフィールストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの１つまたは複数を含むことができる。ソーシャルネットワーキング・システム１６０は、適切なコンポーネント、たとえば、ネットワークインタフェース、セキュリティーメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワークオペレーションコンソール、その他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ユーザプロフィールを格納するための１つまたは複数のユーザプロフィールストアを含むことができる。ユーザプロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味もしくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、１つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関する記事に対して「いいね！」を表明した場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を格納するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループメンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ（内部および外部の両方）の間におけるユーザ定義のつながりを含むこともできる。ネットワーク１１０を介してソーシャルネットワーキング・システム１６０を１つもしくは複数のクライアント・システム１３０または１つもしくは複数のサードパーティ・システム１７０にリンクさせるために、ウェブサーバが使用されることが可能である。ウェブサーバは、ソーシャルネットワーキング・システム１６０と、１つまたは複数のクライアント・システム１３０との間においてメッセージを受け取って回送するためにメールサーバまたはその他のメッセージング機能を含むことができる。ＡＰＩ要求サーバは、サードパーティ・システム１７０が、１つまたは複数のＡＰＩを呼び出すことによってソーシャルネットワーキング・システム１６０からの情報にアクセスすることを可能にすることができる。ソーシャルネットワーキング・システム１６０の上のまたは外のユーザのアクションに関してウェブサーバから通信を受け取るために、アクションロガーが使用されることが可能である。アクションログとともに、サードパーティコンテンツオブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクトログが保持されることが可能である。通知コントローラは、コンテンツオブジェクトに関する情報をクライアント・システム１３０に提供することができる。情報は、通知としてクライアント・システム１３０へプッシュされることが可能であり、または情報は、クライアント・システム１３０から受け取られた要求に応答してクライアント・システム１３０からプルされることが可能である。ソーシャルネットワーキング・システム１６０のユーザの１つまたは複数のプライバシー設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、自分のアクションをソーシャルネットワーキング・システム１６０によって記録されること、またはその他のシステム（たとえば、サードパーティ・システム１７０）と共有されることのオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティ・システム１７０などのサードパーティから受け取られたコンテンツオブジェクトを格納するために、サードパーティコンテンツオブジェクトストアが使用されることが可能である。ユーザに関連付けられているクライアント・システム１３０から受け取られたロケーション情報を格納するために、ロケーションストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【００５３】
ソーシャルグラフ
図２は、例示的なソーシャルグラフ２００を示している。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、１つまたは複数のソーシャルグラフ２００を１つまたは複数のデータストア内に格納することができる。特定の実施形態においては、ソーシャルグラフ２００は、複数のノード（複数のユーザ・ノード２０２、または複数のコンセプト・ノード２０４を含むことができる）と、ノード同士をつなげる複数のエッジ２０６とを含むことができる。図２において示されている例示的なソーシャルグラフ２００は、教示上の目的から、２次元のビジュアルマップ表示で示されている。特定の実施形態においては、ソーシャルネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切なアプリケーションに関してソーシャルグラフ２００および関連したソーシャルグラフ情報にアクセスすることができる。ソーシャルグラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえば（ソーシャルグラフ・データベースなどの）データストア内に格納されることが可能である。そのようなデータストアは、ソーシャルグラフ２００のノードまたはエッジの１つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【００５４】
特定の実施形態においては、ユーザ・ノード２０２は、ソーシャルネットワーキング・システム１６０のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャルネットワーキング・システム１６０と、またはソーシャルネットワーキング・システム１６０を介して対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、ビジネス、もしくはサードパーティアプリケーション）、または（たとえば、個人もしくはエンティティの）グループであることが可能である。特定の実施形態においては、あるユーザがソーシャルネットワーキング・システム１６０とのアカウントに登録した場合には、ソーシャルネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２を作成し、そのユーザ・ノード２０２を１つまたは複数のデータストア内に格納することができる。本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザ・ノード２０２を指すことができる。追加として、または代替として、本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、ソーシャルネットワーキング・システム１６０に登録されていないユーザを指すことができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザによって提供された情報、またはソーシャルネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザに関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザ・ノード２０２は、１つまたは複数のウェブページに対応することができる。
【００５５】
特定の実施形態においては、コンセプト・ノード２０４は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワークシステム１６０に関連付けられているウェブサイト、もしくはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど）、エンティティ（たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャルネットワーキング・システム１６０内に、もしくはウェブアプリケーションサーバなどの外部サーバ上に配置されることが可能であるリソース（たとえば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化されたドキュメント、もしくはアプリケーションなど）、物的もしくは知的財産（たとえば、彫塑、絵画、映画、ゲーム、曲、アイディア、写真、もしくは執筆作品など）、ゲーム、アクティビティ、アイディアもしくは理論、拡張現実環境／仮想現実環境におけるオブジェクト、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプト・ノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数のイメージ（たとえば、本の表紙のイメージ）、ロケーション（たとえば、住所もしくは地理的位置）、（ＵＲＬに関連付けられることが可能である）ウェブサイト、連絡先情報（たとえば、電話番号もしくはＥメールアドレス）、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプト・ノード２０４は、コンセプト・ノード２０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプト・ノード２０４は、１つまたは複数のウェブページに対応することができる。
【００５６】
特定の実施形態においては、ソーシャルグラフ２００内のノードは、ウェブページ（「プロフィール・ページ」と呼ばれる場合もある）を表すこと、またはウェブページによって表されることが可能である。プロフィール・ページは、ソーシャルネットワーキング・システム１６０によってホストされること、またはソーシャルネットワーキング・システム１６０にとってアクセス可能であることが可能である。プロフィール・ページは、サードパーティサーバ１７０に関連付けられているサードパーティウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであることが可能であり、そのプロフィール・ページは、特定のコンセプト・ノード２０４に対応することができる。プロフィール・ページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザ・ノード２０２は、対応するユーザプロフィール・ページを有することができ、そのユーザプロフィール・ページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプト・ノード２０４は、対応するコンセプトプロフィールページを有することができ、そのコンセプトプロフィールページにおいては、１人または複数のユーザが、特にコンセプト・ノード２０４に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【００５７】
特定の実施形態においては、コンセプト・ノード２０４は、サードパーティ・システム１７０によってホストされているサードパーティウェブページまたはリソースを表すことができる。サードパーティウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す（たとえば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能である）その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティウェブページを閲覧しているユーザは、それらのアイコンのうちの１つ（たとえば、「チェックイン」）を選択することによってアクションを実行して、クライアント・システム１３０に、そのユーザのアクションを示すメッセージをソーシャルネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャルネットワーキング・システム１６０は、ユーザに対応するユーザ・ノード２０２と、サードパーティウェブページまたはリソースに対応するコンセプト・ノード２０４との間においてエッジ（たとえば、「チェックインタイプ」エッジ）を作成して、エッジ２０６を１つまたは複数のデータストア内に格納することができる。
【００５８】
特定の実施形態においては、ソーシャルグラフ２００内の１対のノードが、１つまたは複数のエッジ２０６によって互いにつながることが可能である。１対のノードをつなげるエッジ２０６は、それらの１対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ２０６は、１対のノードの間における関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャルネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信することができる。第２のユーザがその「友達要求」を承認した場合には、ソーシャルネットワーキング・システム１６０は、ソーシャルグラフ２００内で第１のユーザのユーザ・ノード２０２を第２のユーザのユーザ・ノード２０２につなげるエッジ２０６を作成して、エッジ２０６をソーシャルグラフ情報としてデータストア１６４のうちの１つまたは複数の中に格納することができる。図２の例においては、ソーシャルグラフ２００は、ユーザ「Ａ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジ２０６と、ユーザ「Ｃ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード２０２同士をつなげる特定の属性を伴う特定のエッジ２０６を記述している、または示しているが、本開示は、ユーザ・ノード２０２同士をつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。限定ではなく、例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係（例えば、「いいね」他を含む）、フォロワー関係、ビジター関係（例えば、アクセスすること、視聴すること、チェックインすること、共有すること、他を含む）、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、１つまたは複数のエッジ２０６によってソーシャルグラフ２００内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を指すことができる。
【００５９】
特定の実施形態においては、ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジ２０６は、ユーザ・ノード２０２に関連付けられているユーザによって、コンセプト・ノード２０４に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２において示されているように、ユーザは、コンセプトに対して「いいね！を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらのそれぞれは、エッジタイプまたはサブタイプに対応することができる。コンセプト・ノード２０４に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに加える」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャルネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ（ユーザ「Ｃ」）が、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の曲（例えば「イマジン」）を聴く場合がある。このケースにおいては、ソーシャルネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２と、その曲およびアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「聴いた」エッジ２０６および「使用した」エッジを作成して、そのユーザがその曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャルネットワーキング・システム１６０は、その曲に対応するコンセプト・ノード２０４と、そのアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「再生した」エッジ２０６を作成して、その特定の曲がその特定のアプリケーションによって再生されたということを示すことができる。このケースにおいては、「再生した」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオファイル（「イマジン」という曲）に関して実行されたアクションに対応する。本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる特定の属性を伴う特定のエッジ２０６について記述しているが、本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。その上、本開示は、単一の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジについて記述しているが、本開示は、１つまたは複数の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジを想定している。限定ではなく、例として、エッジ２０６は、ユーザが特定のコンセプトに対して「いいね！」を表明しているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ２０６は、（図２において、ユーザ「Ｅ」を表すユーザ・ノード２０２と、「ＳＰＯＴＩＦＹ」を表すコンセプト・ノード２０４との間において示されているような）ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるそれぞれのタイプの関係（または、単一の関係が複数集まったもの）を表すことができる。
【００６０】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ソーシャルグラフ２００内でユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。限定ではなく、例として、（たとえば、ユーザのクライアント・システム１３０によってホストされているウェブブラウザまたは専用のアプリケーションを使用することなどによって）コンセプトプロフィールページを閲覧しているユーザは、「いいね！」アイコンをクリックまたは選択することにより、コンセプト・ノード２０４によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね！」アイコンをクリックまたは選択することは、ユーザのクライアント・システム１３０に、そのコンセプトプロフィールページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャルネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャルネットワーキング・システム１６０は、そのユーザとコンセプト・ノード２０４との間における「いいね！」エッジ２０６によって示されているように、そのユーザに関連付けられているユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、エッジ２０６を１つまたは複数のデータストア内に格納することができる。特定の実施形態においては、エッジ２０６は、特定のユーザ・アクションに応答してソーシャルネットワーキング・システム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ２０６は、第１のユーザに対応するユーザ・ノード２０２と、それらのコンセプトに対応するコンセプト・ノード２０４との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ２０６を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ２０６を形成することを想定している。
【００６１】
ディープラーニングモデルの訓練
特定の実施形態は、ディープラーニングモデルを用いて、ユーザに関連性があるとして１つまたは複数のエンティティを識別する。特定の実施形態においては、エンティティは、ソーシャルグラフ２００内のコンセプト・ノード２０４またはユーザ・ノード２０２によって表すことのできる任意の適切なエンティティ（たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人）であることが可能である。特定の実施形態においては、エンティティは、限定ではなく、例として、ソーシャルネットワーキング・システム１６０によってホストされるページ（たとえば、プロフィール・ページ、場所ページ、企業ページ）、テキスト・コンテンツ（たとえば、１つまたは複数のｎグラム）、ビジュアル・コンテンツ（たとえば、１つまたは複数の画像）、オーディオ・コンテンツ（たとえば、１つまたは複数の音声録音）、ビデオ・コンテンツ（たとえば、１つまたは複数のビデオ・クリップ）、ラベル（たとえば、ステッカーまたはハッシュタグ）、任意の他の適切な種類のコンテンツ、任意の他の適切なエンティティ、またはその任意の組合せにすることができる。本明細書で使用されるとき、ラベルは、文字（ｌｅｔｔｅｒ）もしくは言葉の使用の有無に関係なくアイディアもしくは物事をそれぞれ表すことができる、ハッシュタグ、絵文字、ステッカー、表意文字、任意の他の適切なテキスト注釈、任意の他の適切な文字（ｃｈａｒａｃｔｅｒ）、記号、もしくは画像、またはその組合せにすることができる。本明細書で使用するとき、ハッシュタグは、前に「＃」の文字（ｃｈａｒａｃｔｅｒ）を付けた自然言語のｎグラムもしくは略語（たとえば、＃感謝）からなる単一トークンであることがある。本明細書で使用するとき、ｎグラムは、言葉もしくは言葉のグループ、会話の任意の部分、句読点（たとえば、「！」）、口語的表現（たとえば、「頭にくる」）、頭字語（たとえば、「ＢＲＢ（すぐ戻る）」）、略語（たとえば、「ｍｇｍｔ（マネジメント）」）、感嘆詞（「うわっ」）、英数字、記号、書かれた文字（ｗｒｉｔｔｅｎ  ｃｈａｒａｃｔｅｒ）、アクセント記号、またはその任意の組合せにすることができる。
【００６２】
図３は、例示的なディープラーニングモデル３１０である。ディープラーニングモデル３１０は、機械学習モデル、ニューラル・ネットワーク、潜在ニューラル・ネットワーク、任意の他の適切なディープラーニングモデル、またはその組合せにすることができる。特定の実施形態においては、ディープラーニングモデル３１０は、複数の抽象レイヤを有することができる。入力３０２、３０４、３０６および３０８は、任意の適切な数のエンティティにすることができる。出力３１２は、１つまたは複数のエンティティの埋め込みにすることができる。埋め込み空間は、多次元空間（たとえば、ｄ次元、ここで、ｄは、容量を制御するハイパーパラメータである）にすることができ、エンティティの埋め込みに対応する複数の点を含むことができる。本明細書で使用するとき、エンティティの埋め込みとは、埋め込み空間内のエンティティの表現をいう。図３には特定の数の入力エンティティ３０２、３０４、３０６および３０８を示しているが、ディープラーニングモデル３１０は、任意の適切な数の入力エンティティ３０２、３０４、３０６および３０８について、エンティティの埋め込みを生成することができる。
【００６３】
特定の実施形態においては、ディープラーニングモデル３１０（たとえば、ニューラル・ネットワーク）は、エンティティを
【００６４】
【数３】
2019506664.tif 000005
のベクトルにマッピングする１つまたは複数のインデックスを含むことができ、ここで、
【００６５】
【数４】
2019506664.tif 000006
は実数の集合を示し、ｄは、容量を制御するハイパーパラメータである。ベクトルは、ｄ次元強度ベクトルにすることができる。本明細書で使用するとき、強度値は、−１から１までの範囲の任意の適切な値にすることができる。エンティティのベクトル表現のそれぞれは、埋め込み空間内のそれぞれの点に座標を与えることができる。図３では、特定の数の入力エンティティ３０２、３０４、３０６および３０８を示しているが、ディープラーニングモデル３１０は、任意の適切な数のエンティティ３０２、３０４、３０６および３０８とベクトル表現とのマッピングを提供することができる。
【００６６】
ディープラーニングモデル３１０は、エンティティの最適な埋め込みを生成するように訓練することができる。ディープラーニングモデル３１０は、１つまたは複数のインデックス（すなわち、ディクショナリ）を含むことができ、これは、ディープラーニングモデル３１０が訓練されると動的に更新されることが可能である。１つまたは複数のインデックスは、ディープラーニングモデル３１０の訓練段階中に生成することができる。特定の実施形態においては、ディープラーニングモデルは、エンティティをベクトル表現にマッピングするように訓練された１つまたは複数のインデックスを含むことができる。ディープラーニングモデル３１０は、たとえば、ニューラル・ネットワークまたは潜在ニューラル・ネットワークにすることができる。ディープラーニングモデル３１０は、ランダム分布を用いて初期化することができる。すなわち、ディープラーニングモデル３１０は、当初、ランダムに割り当てられたマッピングを有することができる（すなわち、エンティティ３０２、３０４、３０６および３０８の埋め込みが生成される基となる、エンティティ３０２、３０４、３０６および３０８とベクトル表現とのマッピング）。限定ではなく、例として、ランダム分布は、ガウス分布にすることができる。訓練の結果、ディープラーニングモデル３１０の１つまたは複数のインデックスが、初期のマッピングよりも最適なマッピングを生成することができる。
【００６７】
特定の実施形態においては、ディープラーニングモデル３１０は、同時係属出願の、２０１５年１１月２３日に出願された米国特許出願第１４／９４９４３６号明細書、および２０１５年１１月５日に出願された米国特許出願第６２／２５１３５２号明細書に記述されるディープラーニングモデルの特徴のうちの１つまたは複数を有することができ、同出願を参照により本書に援用する。
【００６８】
本開示は、ソーシャルネットワーキング・システム１６０によって実施される図３の特定の実施形態を記述し、示しているが、本開示は、任意の適切なプラットフォームまたはシステムによって実施される図３の任意の適切な実施形態を想定している。限定ではなく、例として、図３の特定の実施形態は、クライアント・システム１３０、サードパーティ・システム１７０または任意の他の適切なシステムによって実施することができる。また、本開示は、図３の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図３の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイスまたはシステムの任意の適切な組合せを想定している。
【００６９】
図４は、エンティティ４０２、４０４、４０６および４０８をベクトル表現４１２、４１４、４１６および４１８にマッピングする例示的なディクショナリ４００を示す。エンティティ４０２、４０４、４０６および４０８は、限定ではなく、例として、ソーシャルネットワーキング・システム１６０によってホストされるページにすることができる。特定の実施形態においては、ディクショナリ４００は、ソーシャルネットワーキング・システム１６０によって生成することができる。特定の実施形態においては、ディクショナリ４００は、エンティティを
【００７０】
【数５】
2019506664.tif 000007
のベクトルにマッピングすることができ、ここで、
【００７１】
【数６】
2019506664.tif 000008
は実数の集合を示し、ｄは、容量を制御するハイパーパラメータである。ベクトル表現４１２、４１４、４１６および４１８は、ｄ次元強度ベクトルにすることができる。本明細書で使用するとき、強度値（intensity value）は、−１から１までの範囲の任意の適切な値にすることができる。限定ではなく例示のために、図４では、例示的なベクトル表現４１２、４１４、４１６および４１８の強度値をパターンとして描いている。たとえば、ディクショナリ４００は、エンティティ４０２をベクトル表現４１２にマッピングしているが、これは、ディクショナリ４００において、ページ４０２に隣接するさまざまなパターンのセルの一番上の行として示される。ディクショナリ４００は、特定のサイズ（すなわち、寸法）に描かれているが、これは単なる例示的なものであり、限定するものではない。ディクショナリ４００は、任意の適切なサイズをもつことができる。ディクショナリ４００は、任意の適切な数のエンティティとベクトル表現とのマッピングを提供することができる。
【００７２】
ディクショナリ４００を使用して決定されたエンティティのベクトル表現のそれぞれは、埋め込み空間（embedding space）内のそれぞれの点に座標を提供することができる。埋め込み空間は、多次元空間（たとえば、ｄ次元）にすることができ、エンティティ埋め込みに対応する複数の点を含むことができる。本明細書で使用するとき、エンティティ埋め込みとは、エンティティのベクトル表現（たとえば、ディクショナリ４００を使用して決定される）に基づいた、埋め込み空間内のエンティティの表現をいう。各エンティティ埋め込みは、埋め込み空間内のそれぞれの点に対応することができる。特定の実施形態においては、各エンティティは、エンティティ集合として表現することができ（たとえば、ページは、ページ上に表示されるテキスト項目の集合として表現することができる）、エンティティ埋め込みは、エンティティの集合のベクトル表現に基づいて決定することができる（たとえば、ページ上のテキスト項目のベクトル表現の非線形の組合せ）。限定ではなく、別の例として、ユーザをエンティティの集合（たとえば、ユーザがソーシャルネットワーキング・システム１６０で「いいね！」を表明したページの集合）として表現することができ、ユーザの埋め込みは、その集合内のエンティティのベクトル表現に基づいて決定することができる。集合内のエンティティのそれぞれは、上記説明したように、さらに、エンティティの集合として表現することができる（たとえば、各エンティティのベクトル表現は、エンティティ集合のベクトル表現に基づくことができる）。エンティティをエンティティ集合として階層的に表現するこの手法は、適切な数のレベルまで続けることができる。すなわち、限定ではなく、例として、各エンティティは、エンティティの集合として表現することができ、これはそれぞれエンティティの集合として表現することができ、以下同様である。
【００７３】
ディクショナリ４００は、ディープラーニングモデルの一部にすることができる。最適な埋め込みを生成するために、ディープラーニングモデルを訓練することができる。ディクショナリ４００は、ディープラーニングモデルの訓練段階中に生成することができる。ディープラーニングモデルは、たとえば、畳み込みニューラル・ネットワークにすることができる。ディクショナリ４００は、ランダム分布を使用して初期化することができる。すなわち、ディクショナリ４００は、当初、ランダムに割り当てられたマッピングを有することができる。限定ではなく、例として、ランダム分布は、ガウス分布にすることができる。訓練の結果、ディクショナリ４００が、初期のマッピングよりも最適なマッピングを生成することができる。
【００７４】
本開示は、ソーシャルネットワーキング・システム１６０によって実施される図４の特定の実施形態を記述し、示しているが、本開示は、任意の適切なプラットフォームまたはシステムによって実施される図４の任意の適切な実施形態を想定している。限定ではなく、例として、図４の特定の実施形態は、クライアント・システム１３０、またはサードパーティ・システム１７０によって実施することができる。また、本開示は、図４の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図４の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイスまたはシステムの任意の適切な組合せを想定している。
【００７５】
図５は、ディープラーニングモデルを用いてユーザの埋め込みを決定するための例示的な方法を示す。特定の実施形態においては、ユーザは、ユーザがソーシャルネットワーキング・システム１６０で対話したことのあるエンティティの集合として表現することができる。言い換えると、埋め込みは、ユーザについて、エンティティ集合のベクトル表現に基づいて決定することができる。エンティティ集合は、順序付けされていない集合にすることができる。工程５１０で、ソーシャルネットワーキング・システム１６０は、ユーザがソーシャルネットワーキング・システム１６０で対話したことのある第１のエンティティ集合にアクセスすることができる。ユーザは、任意の適切なソーシャルネットワーキング・アクションを使用して、ソーシャルネットワーキング・システム１６０において第１のエンティティ集合内のエンティティと対話することができる。限定ではなく、例として、対話は、そのエンティティに対するアフィニティ（affinity）の表明であることが可能である。限定ではなく、別の例として、ユーザは、エンティティに「いいね！」を表明する、エンティティをシェアする、エンティティへの言及を含む投稿を出す、エンティティについて述べるメッセージを作成して別のユーザに送る、任意の他の適切なソーシャルネットワーキング・アクションを行う、またはその任意の組合せによって、エンティティと対話することができる。特定の実施形態においては、図２に関連して説明したソーシャルグラフ２００内の第１のノードは、ユーザに対応することができ、ソーシャルグラフ２００内の複数の第２のノードは、それぞれエンティティに対応することができる。ユーザは、ユーザのソーシャルネットワーキング・アクションによって、第１のエンティティ集合と対話し、ソーシャルネットワーキング・アクションは、第１のノードと、第１のエンティティ集合内の各エンティティに対応する各第２のノードとに関して実行され得る。たとえば、ソーシャルネットワーキング・アクションの結果、ユーザに対応する第１のノードとエンティティに対応する第２のノードとの間にソーシャルグラフ２００内のエッジを作成することができる。第１のエンティティ集合は、任意の適切な数のエンティティを含むことができる。図５に図示する例では、第１のエンティティ集合は、「アイスホッケー」、「ブルックリン」、「コーヒー」、および「アップルパイ」に対応するページであるエンティティ５０２、５０４、５０６および５０８を含むように示されている。第１のエンティティ集合内のエンティティ５０２、５０４、５０６および５０８は、限定ではなく、例として、ソーシャルネットワーキング・システム１６０がホストし、ユーザがソーシャルネットワーキング・システム１６０で「いいね！」を表明したか、または他の形でアフィニティを表明したページであることが可能である。
【００７６】
工程５２０で、ソーシャルネットワーキング・システム１６０は、第１のエンティティ集合の第１のベクトル表現集合を決定することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、限定ではなく、例として、ディープラーニングモデルを用いて生成されたディクショナリ４００を使用して、各エンティティ５０２、５０４、５０６および５０８をそれぞれのベクトル表現にマッピングすることができる（たとえば、１対１のマッピング）。各エンティティ５０２、５０４、５０６および５０８は、図４に関連して上記説明した手法のいずれか、または任意の他の適切な手法を用いて、それぞれのベクトル表現５２２、５２４、５２６および５２８にマッピングすることができる。
【００７７】
工程５３０で、ソーシャルネットワーキング・システム１６０は、第１のエンティティ集合から対象エンティティを選択することができる。図５に図示する例において、ソーシャルネットワーキング・システム１６０は、エンティティ５０８を対象エンティティとして選択する。特定の実施形態においては、対象エンティティはランダムに選択することができる。特定の実施形態においては、対象エンティティは、ディープラーニングモデルによって選択することができる。特定の実施形態においては、対象エンティティは、エンティティの困難な事例（ｈａｒｄ  ｅｘａｍｐｌｅ）を見つけるヒューリスティック法（heuristic method）を用いて選択することができる。たとえば、エンティティを埋め込み空間においてクラスタリングまたはハッシュすることができ（たとえば、ディープラーニングモデルを用いて）、困難な事例は、埋め込み空間内の同じクラスタまたはハッシュのエンティティにすることができる。図５に図示する実施形態では、対象エンティティは、エンティティ５０８として描かれており、これは、ソーシャルネットワーキング・システム１６０によってホストされる「アップルパイ」のページに対応する。
【００７８】
工程５４０で、ソーシャルネットワーキング・システム１６０は、第１のベクトル表現集合から工程５３０で選択した対象エンティティのベクトル表現を削除することができる。図５に図示する例では、対象エンティティ５０８のベクトル表現５２８が、第１のベクトル表現集合から削除されている。その結果の第１のベクトル表現集合は、ベクトル表現５２２、５２４および５２６を含むように示されており、これらベクトル表現５２２、５２４および５２６は、それぞれエンティティ５０２、５０４および５０６に対応する。
【００７９】
工程５５０で、ソーシャルネットワーキング・システム１６０は、残りのベクトル表現５２２、５２４および５２６を結合することができる。ベクトル表現５２２、５２４および５２６を１つのベクトル表現５６０に結合するために、限定ではなく、例として、畳み込み、平均化、任意の他の適切な非線形結合手法、任意の他の適切な手法、またはその任意の組合せを含め、任意の適切な手法を用いることができる。図５に図示する例では、ソーシャルネットワーキング・システム１６０は、３つのベクトル５２２、５２４および５２６を結合して（たとえば、３タップの畳み込み）、それから最大プーリング演算（max pooling operation）を行って、ユーザの１つのベクトル表現５６０を得る。
【００８０】
ユーザの埋め込みは、ベクトル表現の結合に基づいて決定することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ベクトル表現５６０に基づいてユーザの埋め込みを決定することができる。本明細書で使用するとき、ユーザの埋め込みとは、ユーザの結合ベクトル表現５６０に基づいた埋め込み空間内のユーザの表現をいうことがある。埋め込み空間内の１点の座標は、ユーザのベクトル表現５６０に基づいて決定することができる。特定の実施形態においては、ディープラーニングモデルを用いて、複数のユーザ埋め込みを生成することができる。これらのユーザ埋め込みのそれぞれが、埋め込み空間内の特定の点に対応するそれぞれのベクトル表現に基づくことができる。特定の実施形態においては、ディープラーニングモデルを用いて、複数のエンティティの埋め込みを生成することができる。エンティティ埋め込みのそれぞれは、埋め込み空間内の特定の点に対応するそれぞれのベクトル表現に基づくことができる。特定の実施形態においては、ユーザに対応する埋め込み空間内の点は、第１のエンティティ集合内のエンティティ（すなわち、ユーザがソーシャルネットワーキング・システム１６０で対話したことのあるエンティティ）に対応する埋め込み空間内の点に近接することができる。
【００８１】
本開示は、ソーシャルネットワーキング・システム１６０によって実施される図５の特定の実施形態を記述し、示しているが、本開示は、図５の任意の適切な実施形態が任意の適切なインタフェースで行われ、任意の適切なプラットフォームまたはシステムによって実施されることを想定している。限定ではなく、例として、図５の特定の実施形態は、クライアント・システム１３０またはサードパーティ・システム１７０によって実施することができる。また、本開示は、図５の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図５の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイスまたはシステムの任意の適切な組合せを想定している。
【００８２】
図６は、ディープラーニングモデルを訓練するための例示的な方法を示す。ディープラーニングモデルは、ユーザのベクトル表現とユーザに関連性があるエンティティのベクトル表現との誤差を最小化または減少するように訓練することができる。特定の実施形態においては、ディープラーニングモデルの訓練の目標は、埋め込み空間において、ユーザ埋め込みに対応する点に近接する点に対応する、関連あるエンティティのエンティティ埋め込みを生成することにすることができる。ユーザとエンティティとの関連度は、限定ではなく、例として、ソーシャルネットワーキング・システム１６０でのエンティティとのユーザの過去の対話、ユーザの任意の他の適切なソーシャルネットワーキング・システム情報、またはその両方（たとえば、ユーザのソーシャルネットワーキングつながりに関する情報）を含め、任意の適切な要因に基づいて決定することができる。特定の実施形態においては、ディープラーニングモデルは、教師信号として、図５の工程５３０で選択した対象エンティティ５０８（たとえば、「アップルパイ」に対応するページ）を使用して訓練することができる。限定ではなく、例として、ディープラーニングモデルは、対象エンティティ５０８の埋め込みが、ユーザが対話したことのないエンティティの埋め込みよりも、埋め込み空間においてユーザ埋め込みに近接するように訓練することができる。
【００８３】
工程６１０で、ソーシャルネットワーキング・システム１６０は、ディープラーニングモデルを用いて、第２のエンティティ集合のベクトル表現を決定することができる。限定ではなく、例として、第２のエンティティ集合内のエンティティのベクトル表現は、ディクショナリ４００を使用して決定することができる。特定の実施形態においては、第２のエンティティ集合は、複数のエンティティからランダムに選択することができる。特定の実施形態においては、第２のエンティティ集合は、ユーザがソーシャルネットワーキング・システム１６０で対話したことのない１つまたは複数のエンティティを含むことができる。第２のエンティティ集合は、ディープラーニングモデルの訓練のために、負例（negative examples）（すなわち、ユーザに関連性があることが不明なエンティティ）と見なされるのに対し、第１のエンティティ集合は、正例（positive examples）（すなわち、ユーザに関連性があると分かっているエンティティ）にすることができる。第２のエンティティ集合は、任意の適切な数のエンティティを含むことができる。限定ではなく、例として、第２のエンティティ集合は、ソーシャルネットワーキング・システム１６０によってランダムに選択された５０のエンティティを含むことができる。特定の実施形態においては、第２のエンティティ集合内のエンティティの数は、ディープラーニングモデルの損失関数に基づくことができる。限定ではなく、例として、第２のエンティティ集合内のエンティティの数は、利用できる計算予算（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｂｕｄｇｅｔ）に基づく固定のハイパーパラメータにすることができる。特定の実施形態においては、損失関数を使用してディープラーニングモデルを訓練することができる。ディープラーニングモデルの最適な重み（すなわち、パラメータ）を学習するために、ソーシャルネットワーキング・システム１６０は、損失関数を最小化することができる（すなわち、誤差を最小化する）。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、バッチ内の第２のエンティティ集合のベクトル表現を更新することができる。限定ではなく、例として、エンティティの負例の集合（たとえば、ユーザと関連性があることが不明なエンティティ）は、任意の固定サイズのバッチとして選択することができる。限定ではなく、例として、バッチのサイズ（すなわち、第２のエンティティ集合内のエンティティの数）は、ディープラーニングモデルのすべての訓練にわたり事前に固定されたパラメータにすることができる。限定ではなく、別の例として、バッチのサイズは、また、ディープラーニングモデルの訓練中に経時的に変えることもできる。限定ではなく、別の例として、バッチのサイズは、ディープラーニングモデルの関数にすることもできる。ソーシャルネットワーキング・システム１６０は、さらに、この第２のエンティティ集合（すなわち、負例のバッチ）に対してバッチ勾配更新を行う。
【００８４】
工程６２０で、ソーシャルネットワーキング・システム１６０は、ユーザ５６０のベクトル表現を、工程６１０で決定した第２のエンティティ集合の各エンティティのベクトル表現と比較することによって、類似度スコアを決定することができる。このように、ソーシャルネットワーキング・システム１６０は、第２のエンティティ集合の各エンティティに関して、ユーザへの類似度の尺度を決定することができる。図６は、ユーザ５６０のベクトル表現を第２のエンティティ集合内のエンティティ６１２の１つのベクトル表現に対して比較するように描いているが、これは単なる例示目的で、限定するものではないことは理解されるであろう。むしろ、ユーザ５６０のベクトル表現は、第２のエンティティ集合の各エンティティのベクトル表現と比較することによって、第２のエンティティ集合の各エンティティに関して類似度スコアを計算できるようにすることが可能である。特定の実施形態においては、ユーザと第２のエンティティ集合内のエンティティとの類似度スコアは、ユーザ５６０のベクトル表現とエンティティのベクトル表現との角度に基づいて決定することができる。特定の実施形態においては、ユーザと第２のエンティティ集合内のエンティティとの類似度スコアは、ユーザ５６０のベクトル表現とエンティティのベクトル表現とのドット積（dot product）を計算して決定することができる。特定の実施形態においては、類似度スコアは、ユークリッド距離、コサイン類似度、または埋め込み空間内の点同士のペアの関連性の尺度を計算するための任意の他の適切な手法に基づいて決定することができる。
【００８５】
工程６３０で、ソーシャルネットワーキング・システム１６０は、ユーザ５６０のベクトル表現を、図５の工程５２０で決定した対象エンティティ５０８のベクトル表現５２８と比較することによって、類似度スコアを決定することができる。このように、ソーシャルネットワーキング・システム１６０は、対象エンティティに関してユーザへの類似度の尺度を決定することができる。ユーザと対象エンティティ５０８との類似度スコアは、工程６２０に関連して説明した手法のいずれかを用いて、または任意の他の適切な手法を用いて決定することができる。
【００８６】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、工程６２０および６３０でそれぞれに関して決定した類似度スコアに基づいて、対象エンティティと第２のエンティティ集合内のエンティティとを相対的にランク付けすることができる。ランク付けは、各エンティティに数値ランクを割り当て、各エンティティに単一列テーブル（single-columned table）内の位置を割り当て、またはそれぞれの類似度スコアに基づいてエンティティを相対的にランク付けするための任意の他の適切な手法を用いて、行うことができる。限定ではなく、例として、ソーシャルネットワーキング・システム１６０は、各エンティティに数値ランクを割り当てることができ、高い数値ランクが高い類似度スコアに対応する。
【００８７】
工程６４０で、ソーシャルネットワーキング・システム１６０は、第２のエンティティ集合内の１つまたは複数のエンティティのベクトル表現を、工程６２０および６３０で決定した類似度スコアに基づいて更新することができる。特定の実施形態においては、ベクトル表現は、工程６２０で決定した類似度スコアを工程６３０で決定した類似度スコアのそれぞれと比較することに基づいて更新することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、対象エンティティおよび第２のエンティティ集合のそれぞれにランキングを割り当てることができ、ディープラーニングモデルの１つまたは複数の重みをそのランキングに基づいてさらに更新することができる。前述したように、ディープラーニングモデルは、対象エンティティ５０８の埋め込みが、ユーザが対話したことのないエンティティの埋め込みよりも、埋め込み空間においてユーザ埋め込みに近接するように訓練することができる。このように、ディープラーニングモデルは、第２のエンティティ集合（すなわち、負のサンプル）の中のエンティティのそれぞれが対象エンティティ（すなわち、正のサンプル）よりも低い類似度スコアを有するように訓練することができる。言い換えると、ディープラーニングモデルは、第２のエンティティ集合内のエンティティのそれぞれが対象エンティティよりも低くランク付けされるように訓練することができる。ソーシャルネットワーキング・システム１６０は、第２のエンティティ集合内のエンティティのうちの１つまたは複数について、対象エンティティよりも上にランク付けされるか、または高い類似度スコアを有する（すなわち、埋め込み空間において、よりユーザ埋め込みに近接する対応埋め込みを有する）と決定することができ、ソーシャルネットワーキング・システム１６０は、第２のエンティティ集合のうちの１つまたは複数のエンティティのベクトル表現を更新することができる。限定ではなく、例として、第２のエンティティ集合内のエンティティは、ソーシャルネットワーキング・システム１６０がホストし、「ランニング」に対応するページにすることができる。同じ例で、ソーシャルネットワーキング・システム１６０は、「ランニング」エンティティが、対象エンティティ（すなわち、ユーザ５６０のベクトル表現と対象エンティティ５０８のベクトル表現５２８との間で計算される）よりも高い類似度スコア（すなわち、ユーザ５６０のベクトル表現と「ランニング」エンティティのベクトル表現との間で計算される）を有すると決定することがある。ソーシャルネットワーキング・システム１６０は、「ランニング」エンティティの更新済み類似度スコア（すなわち、ユーザ５６０のベクトル表現と「ランニング」エンティティの更新済みベクトル表現との間で計算される）が対象エンティティ５０８の類似度スコアよりも低くなるように、「ランニング」エンティティのベクトル表現を更新することができる。
【００８８】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ディープラーニングモデルの１つまたは複数の重みを更新することによって、第２のエンティティ集合のうちの１つまたは複数のエンティティのベクトル表現を更新することができる。ディープラーニングモデルの１つまたは複数の重みの初期値は、ランダムに決定することができる（たとえば、ガウス分布を用いて）。特定の実施形態においては、ディープラーニングモデルの重みのうちの１つまたは複数を、工程６２０で決定したユーザと第２のエンティティ集合内のエンティティとの類似度スコアと、工程６３０で決定したユーザと対象エンティティ５０８との類似度スコアとを使用して、誤差を最小化するように更新することができる。特定の実施形態においては、ディープラーニングモデルの１つまたは複数の重みは、Ｅｑ．１で求められる誤差を最小化するように更新することができる。ディープラーニングモデルの重みは、第２のエンティティ集合についてよりよいベクトル表現を求めるために更新することができる。工程６１０〜６４０で説明されたこの方法は、繰り返すことができ、確率的勾配降下関数を用いて、徐々に重みを改良することができる。重みの更新によるディープラーニングモデルの訓練は、ディクショナリ４００のマッピングを改善することができる。
【００８９】
本開示は、ソーシャルネットワーキング・システム１６０によって実施される図６の特定の実施形態を記述し、示しているが、本開示は、任意の適切なインタフェースで行われ、任意の適切なプラットフォームまたはシステムによって実施される図６の任意の適切な実施形態を想定している。限定ではなく、例として、図６の特定の実施形態は、クライアント・システム１３０またはサードパーティ・システム１７０によって実施することができる。また、本開示は、図６の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図６の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組合せを想定している。
【００９０】
図７は、埋め込み空間７００の例示的な図を示す。埋め込み空間７００は、ユーザ７１０の埋め込みに対応する点７１０と、複数のエンティティ埋め込みに対応する複数の点７３０とを含む。複数のエンティティ埋め込みは、ディープラーニングモデルを用いて決定したエンティティのベクトル表現に基づいて決定することができ（たとえば、図５〜図６に関連して説明したように訓練した後）、エンティティ埋め込みは、埋め込み空間７００内で点７３０として表現することができる。ユーザ埋め込みは、図５に関連して説明したように、ディープラーニングモデルを用いて決定したユーザ５６０のベクトル表現に基づいて決定することができ、ユーザ埋め込みは、埋め込み空間７００内で点７１０として表現することができる。埋め込み空間７００は三次元空間として示されているが、これは単なる例示目的で、限定するものではなく、埋め込み空間７００は任意の適切な次元をもつことができることは理解されるであろう。限定ではなく、例として、埋め込み空間７００はｄ次元にすることができ、埋め込みがそれに基づくベクトル表現（たとえば、ユーザおよびエンティティの埋め込み）は、ｄ次元強度ベクトルにすることができ、ここで、ｄは、任意の適切な数の次元を表す。埋め込み空間７００は、ユーザ７１０の１つの埋め込みのみを描いているが、これは単なる例示目的で、限定するものではなく、埋め込み空間７００は、ソーシャルネットワーキング・システム１６０の複数の他のユーザに対応する複数の点を含むことができる。限定ではなく、例として、図５および図６の工程を他のユーザについても繰り返して、他のユーザの埋め込みを生成することもできる。同じ例で、ディープラーニングモデルは、エンティティ埋め込みが他のユーザを表すエンティティ集合からの対象エンティティにさらに基づくように訓練することもできる。
【００９１】
特定の実施形態においては、埋め込み空間７００を使用して、ユーザに関連性があるエンティティ（たとえば、第２のエンティティ集合内のエンティティ）を予測することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、検索アルゴリズムを用いて、ユーザに関連性があるエンティティの埋め込みに対応する１つまたは複数の点を識別することができる。特定の実施形態においては、エンティティは、ユーザがそのエンティティと対話するある予測尤度がある場合に、ユーザに関連性がある。検索アルゴリズムを埋め込み空間７００に適用して、ユーザの埋め込みに対応する点７１０の閾値距離内にあるエンティティ埋め込みに対応する点を識別することができる。これらのエンティティ埋め込みのそれぞれを、ユーザに関連性があるとして識別されるそれぞれのエンティティに関連付けることができる。図７に図示する例では、閾値距離は、埋め込み空間７００内のエリア７２０として描かれている。限定ではなく、例として、点７１０は、ユーザの埋め込みに対応する点にすることができ、点７１０のエリア７２０内にあるとして識別された点は、ソーシャルネットワーキング・システム１６０がホストし、「ウェイン・グレツキー（Ｗａｙｎｅ  Ｇｒｅｔｚｋｙ）」および「ボストンクリームパイ」に対応するページを含む、エンティティの埋め込みに対応する点を含むことができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ユーザに関連性がある１つまたは複数のエンティティを識別するために、任意の適切な手法を用いることもできる。限定ではなく、例として、ソーシャルネットワーキング・システム１６０は、局所性鋭敏型ハッシュ、階層クラスタリング手法、ボールツリー手法、二分探索木手法、ｋ次元の空間内に点を配列するための空間分割データ構造（たとえば、ｋ次元の木）、量子化、任意の他の適切な検索アルゴリズムもしくは手法、またはその任意の組合せを使用することができる。限定ではなく、別の例として、ソーシャルネットワーキング・システム１６０は、図６に関連して説明したように、計算した類似度スコアに基づいてエンティティに割り当てたランキングに基づいて、ユーザに関連性があるとして所定数のエンティティを識別することができる。限定ではなく、例として、ディープラーニングモデルが訓練を完了した後、ソーシャルネットワーキング・システム１６０は、そのランキングに基づいて、ユーザに関連性があるものとして上位１０のエンティティを選択することができる（ユーザが対話したことがあることが分かっている対象エンティティ５０８は除く）。
【００９２】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ユーザに対して表示するために、ユーザのクライアント・システム１３０に、ユーザに関連性があるとして識別された１つまたは複数のエンティティを送信することができる。特定の実施形態においては、識別された１つまたは複数のエンティティは、ユーザのクライアント・システム上で稼働しているアプリケーション（たとえば、ソーシャルネットワーキング・システム１６０に関連付けられているアプリケーションまたはウェブブラウザ）のインタフェースでユーザに対して表示することができる。限定ではなく、例として、ユーザは、ユーザのクライアント・システム１３０上で稼働しているアプリケーション（たとえば、ソーシャルネットワーキング・システム１６０に関連付けられているアプリケーション）のインタフェースを介して検索クエリを入力し、ソーシャルネットワーキング・システム１６０は、検索クエリに応答するエンティティのランキングに基づいて、アプリケーションにおけるユーザに対する提案として、検索結果を提供することができる（たとえば、識別されたエンティティを検索結果の上位に表示することができる）。限定ではなく、別の例として、識別された１つまたは複数のエンティティは、通知としてユーザに配信することもできる（たとえば、あなたは「アイスホッケー」が好きなので、「ウェイン・グレツキー」も好きかもしれません）。
【００９３】
特定の実施形態においては、ユーザに関連性があるとして識別されたエンティティは、ソーシャルネットワーキング・システム１６０が予測するように、ユーザが対話するものにすることができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、埋め込み空間７００を使用して、ユーザが積極的に対話するエンティティを予測することができる。限定ではなく、例として、ソーシャルネットワーキング・システム１６０は、検索アルゴリズムを適用して、ユーザ（たとえば、点７１０）の埋め込みの所定の距離７２０内の（ユーザがまだ対話したことのない）１つまたは複数のエンティティ埋め込みを識別することができる。ソーシャルネットワーキング・システム１６０は、次いで、これらの識別したエンティティ埋め込みに関連付けられているエンティティ（たとえば、ソーシャルネットワーキング・システム１６０によってホストされるページ）を識別して、ユーザが積極的に対話しそうなエンティティを予測する（たとえば、「いいね！」を表明する、クリックする、または他の形でソーシャルネットワーキング・システム１６０と対話をする）。
【００９４】
本開示は、ソーシャルネットワーキング・システム１６０によって実施される図７の特定の実施形態を記述し、示しているが、本開示は、任意の適切なインタフェースで行われ、任意の適切なプラットフォームまたはシステムによって実施される図７の任意の適切な実施形態を想定している。限定ではなく、例として、図７の特定の実施形態は、クライアント・システム１３０またはサードパーティ・システム１７０によって実施することができる。また、本開示は、図７の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図７の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイスまたはシステムの任意の適切な組合せを想定している。
【００９５】
図８は、ディープラーニングモデルを用いてエンティティのベクトル表現を更新するための例示的な方法８００を示す。方法は、工程８１０から始まり、ソーシャルネットワーキング・システム１６０は、ソーシャルネットワーキング・システムのユーザがソーシャルネットワーキング・システム内で対話したことのある第１のエンティティ集合と、ソーシャルネットワーキング・システム内の第２のエンティティ集合と、にアクセスすることができる。工程８２０で、ソーシャルネットワーキング・システム１６０は、ディープラーニングモデルを用いて第１のエンティティ集合の第１のベクトル表現集合を決定することができる。工程８３０で、ソーシャルネットワーキング・システム１６０は、第１のエンティティ集合から対象エンティティを選択することができる。工程８４０で、ソーシャルネットワーキング・システム１６０は、第１のベクトル表現集合から、対象エンティティのベクトル表現を削除することができる。工程８５０で、ソーシャルネットワーキング・システム１６０は、第１のベクトル表現集合内の残りのベクトル表現を結合して、ユーザのベクトル表現を決定することができる。工程８６０で、ソーシャルネットワーキング・システム１６０は、ディープラーニングモデルを用いて、第２のエンティティ集合の第２のベクトル表現集合を決定する。工程８７０で、ソーシャルネットワーキング・システム１６０は、ユーザのベクトル表現を対象エンティティのベクトル表現と比較することによって、対象エンティティとユーザとの類似度スコアを計算することができる。工程８８０で、ソーシャルネットワーキング・システム１６０は、ユーザのベクトル表現を第２のエンティティ集合内のエンティティのベクトル表現と比較することによって、ユーザと第２のエンティティ集合内のエンティティとの類似度スコアを計算することができる。工程８２０で、ソーシャルネットワーキング・システム１６０は、ディープラーニングモデルを用いて、類似度スコアに基づいて第２のエンティティ集合内の１つまたは複数のエンティティのベクトル表現を更新することができる。
【００９６】
特定の実施形態は、適切な場合、図８の方法の１つまたは複数の工程を繰り返すことができる。本開示は、特定の順序で発生する図８の方法の特定の工程を記述し、示しているが、本開示は、任意の適切な順序で発生する図８の方法の任意の適切な工程を想定している。さらに、本開示は、図８の方法の特定の工程を含むディープラーニングモデルを用いてエンティティのベクトル表現を更新するための例示的な方法を記述し、示しているが、本開示は、適切な場合、図８の方法の工程のうちの全部もしくは一部を含むことができ、または全く含まなくてもよい任意の適切な工程を含むディープラーニングモデルを用いてエンティティのベクトル表現を更新するための任意の適切な方法を想定している。また、本開示は、図８の方法の特定の工程を行う特定のコンポーネント、デバイスまたはシステムを記述し、示しているが、本開示は、図８の方法の任意の適切な工程を行う任意の適切なコンポーネント、デバイスまたはシステムの任意の適切な組合せを想定している。
【００９７】
ソーシャルグラフ・アフィニティおよび係数
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、さまざまなソーシャルグラフ・エンティティの互いに対するソーシャルグラフ・アフィニティ（これは本明細書において、「アフィニティ」ということもある）を決定することができる。アフィニティは、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはその任意の適切な組合せなど、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト同士の関係の強さまたは関心レベルを表すことができる。アフィニティは、サードパーティ・システム１７０または他の適切なシステムに関連付けられているオブジェクトに関しても決定することができる。各ユーザ、主題、またはコンテンツの種類に対するソーシャルグラフ・エンティティの総合的なアフィニティを確立することができる。総合的なアフィニティは、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続的な監視に基づいて変わり得る。本開示は、特定のアフィニティを特定のやり方で決定することを記述するが、本開示は、任意の適切なアフィニティを任意の適切なやり方で決定することを想定している。
【００９８】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、アフィニティ係数（これは本明細書において、「係数」ということもある）を使用して、ソーシャルグラフ・アフィニティを測定または定量化することができる。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト同士の関係の強さを表すか、または定量化することができる。係数は、ユーザが特定のアクションを行う予測確率を、そのユーザのそのアクションへの関心に基づいて測定する確率または関数も表す。このように、ユーザの将来のアクションは、係数を少なくとも部分的にユーザのアクションの履歴に基づいて計算できる場合、ユーザの過去のアクションに基づいて予測することができる。係数を使用して、オンライン・ソーシャル・ネットワーク内または外でありうる任意の数のアクションを予測することができる。限定ではなく、例として、これらのアクションは、メッセージの送信、コンテンツの投稿、もしくはコンテンツへのコメントなどのさまざまな種類のコミュニケーション、プロフィール・ページ、メディアもしくは他の適切なコンテンツへのアクセスもしくは閲覧などのさまざまな種類の観察アクション、同じグループにいること、同じ写真にタグ付けされること、同じロケーションにチェックインしたこと、もしくは同じイベントに出席することなど、２つ以上のソーシャルグラフ・エンティティに関するさまざまな種類の同時発生情報、または他の適切なアクションを含むことができる。本開示は、アフィニティを特定のやり方で測定することを記述しているが、本開示は、アフィニティを任意の適切なやり方で測定することを想定している。
【００９９】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、係数を計算するために多様な因子を使用することができる。これらの因子には、たとえば、ユーザのアクション、オブジェクト同士の関係の種類、ロケーション情報、他の適切な因子、またはその任意の組合せを含むことができる。特定の実施形態においては、係数を計算するとき、異なる因子には別の重み付けをすることができる。各因子の重みは静的にすることができ、または重みは、たとえば、ユーザ、関係の種類、アクションの種類、ユーザのロケーションなどに応じて変えることもできる。因子のレーティング（rating）をその重みに従って結合して、ユーザの総合的な係数を決定することができる。限定ではなく、例として、特定のユーザのアクションにはレーティングおよび重みの両方を割り当てることができるのに対し、特定のユーザのアクションに関連付けられる関係にはレーティングおよび相関重みを割り当てる（たとえば、そのため、重みの合計は１００％）。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに割り当てられるレーティングが、たとえば総合的な係数の６０％を占めるのに対し、ユーザとオブジェクトとの関係が総合的な係数の４０％を占めることが可能である。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、係数の計算に使用されるさまざまな因子の重みを決定するとき、たとえば、情報がアクセスされてからの時間、減衰因子、アクセス頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトにつながっているソーシャルグラフ・エンティティとの関係、ユーザのアクションの短期的もしくは長期的な平均、ユーザのフィードバック、他の適切な変数、またはその任意の組合せなど、多様な変数を考慮することができる。限定ではなく、例として、係数は、特定のアクションが提供する信号の強さを時間の経過とともに減衰させる減衰因子を含んで、係数を計算するときに、より最近のアクションを、より関連性があるようにすることができる。レーティングおよび重みは、係数が基づくアクションの継続的な追跡に基づいて、継続的に更新することもできる。任意の種類のプロセスまたはアルゴリズムを、各因子のレーティングと因子に割り当てられた重みとの割り当て、結合、平均化などのために採用することもできる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、履歴的なアクションおよび過去のユーザの応答、またはさまざまなオプションをユーザに露出して応答を測定することによってユーザから集めたデータに基づいて訓練した機械学習アルゴリズムを用いて係数を決定することができる。本開示は、係数を特定のやり方で計算するように記述しているが、本開示は、係数を任意の適切なやり方で計算することを想定している。
【０１００】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ユーザのアクションに基づいて係数を計算することができる。ソーシャルネットワーキング・システム１６０は、このようなアクションを、オンライン・ソーシャル・ネットワークで、サードパーティ・システム１７０で、他の適切なシステムで、またはその組合せで監視することができる。任意の適切な種類のユーザ・アクションを追跡または監視することもできる。典型的なユーザ・アクションには、プロフィール・ページの閲覧、コンテンツの作成もしくは投稿、コンテンツとの対話、画像にタグ付けすることまたは画像にタグ付けされること、グループへの加入、イベントへの出席のリスト化と確認、ロケーションでのチェックイン、特定のページへの「いいね！」の表明、ページの作成、およびソーシャル・アクションを促進する他のタスクを行うことが含まれる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、特定の種類のコンテンツに対するユーザのアクションに基づいて、係数を計算することができる。係数は、オンライン・ソーシャル・ネットワーク、サードパーティ・システム１７０または他の適切なシステムに関連付けることもできる。コンテンツは、ユーザ、プロフィール・ページ、投稿、ニュース・ストーリ、ヘッドライン、インスタント・メッセージ、チャットルームでの会話、電子メール、広告、写真、映像、音楽、他の適切なオブジェクト、またはその任意の組合せを含むことができる。ソーシャルネットワーキング・システム１６０は、ユーザのアクションを分析して、アクションのうちの１つまたは複数が主題、コンテンツ、他のユーザなどに対するアフィニティを示すかどうかを決定することができる。限定ではなく、例として、ユーザが「コーヒー」またはそれに類するものに関するコンテンツを頻繁に投稿する場合、ソーシャルネットワーキング・システム１６０は、そのユーザが「コーヒー」コンセプトに関して高い係数を有すると決定する。特定のアクションまたはアクションの種類に、他のアクションよりも高い重みおよびレーティングの両方または一方を割り当てることができ、このことは、計算した係数全体に影響し得る。限定ではなく、例として、第１のユーザが第２のユーザに電子メールを送信する場合、そのアクションの重みまたはレーティングは、第１のユーザが第２のユーザのユーザプロフィール・ページをただ閲覧する場合よりも高くすることができる。
【０１０１】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、特定のオブジェクト同士の関係の種類に基づいて係数を計算することができる。ソーシャルグラフ２００を参照すると、ソーシャルネットワーキング・システム１６０は、係数を計算するとき、特定のユーザ・ノード２０２とコンセプト・ノード２０４とをつなげているエッジ２０６の数および種類の両方または一方を分析することができる。限定ではなく、例として、配偶者タイプのエッジ（２人のユーザが結婚していることを表す）でつながっているユーザ・ノード２０２には、友達タイプのエッジでつながっているユーザ・ノード２０２よりも高い係数を割り当てることができる。言い換えると、特定のユーザのアクションおよび関係に割り当てられる重みに応じて、ユーザの友達に関するコンテンツよりもユーザの配偶者に関するコンテンツに対して、総合的なアフィニティが高いと決定することができる。特定の実施形態においては、ユーザが別のオブジェクトともつ関係が、そのオブジェクトに関する係数を計算することに関して、ユーザのアクションの重みおよびレーティングの両方または一方に影響し得る。限定ではなく、例として、ユーザが、第１の写真にはタグ付けされているが第２の写真には単に「いいね！」を表明しただけの場合、ソーシャルネットワーキング・システム１６０は、コンテンツとタグ付けタイプの関係を有することには、コンテンツと「いいね！」表明タイプの関係を有するよりも高い重みおよびレーティングの両方または一方が割り当てられるので、ユーザが第２の写真よりも第１の写真に関して高い係数を有すると決定することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、１人または複数人の第２のユーザが特定のオブジェクトにもつ関係に基づいて、第１のユーザに関する係数を計算することができる。言い換えると、他のユーザがオブジェクトに有するつながりおよび係数が、そのオブジェクトに関する第１のユーザの係数に影響し得る。限定ではなく、例として、第１のユーザが１人または複数人の第２のユーザにつながっているか、またはその第２のユーザに関して高い係数を有し、その第２のユーザが特定のオブジェクトにつながっているか、またはその特定のオブジェクトに関して高い係数を有する場合、ソーシャルネットワーキング・システム１６０は、第１のユーザもその特定のオブジェクトに関して比較的高い係数を有するはずだと決定することができる。特定の実施形態においては、係数は、特定のオブジェクト同士の隔たり度に基づくことができる。より低い係数は、第１のユーザが、ソーシャルグラフ２００内で第１のユーザに間接的につながっているユーザのコンテンツ・オブジェクトに関心を共有する尤度が低くなることを表す。限定ではなく、例として、ソーシャルグラフ２００内でより近い（すなわち、隔たり度がより小さい）ソーシャルグラフ・エンティティは、ソーシャルグラフ２００内でより離れたエンティティよりも高い係数を有することが可能である。
【０１０２】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、ロケーション情報に基づいて係数を計算することができる。地理的に互いに近いオブジェクトは、より遠いオブジェクトよりも互いに関係が強いかまたは関心が高いと考えることができる。特定の実施形態においては、特定のオブジェクトに対するユーザの係数は、ユーザに関連付けられている現在のロケーション（またはユーザのクライアント・システム１３０のロケーション）に対するオブジェクトのロケーションの近接度に基づくことができる。第１のユーザは、第１のユーザにより近い他のユーザまたはコンセプトに、より関心をもつであろう。限定ではなく、例として、ユーザが空港から１．６１ｋｍ（１マイル）のところにいて、ガソリンスタンドから３．２２ｋｍ（２マイル）のところにいる場合、ソーシャルネットワーキング・システム１６０は、ユーザへの空港の近接度に基づいて、ガソリンスタンドよりも空港に関して、ユーザがより高い係数を有すると決定することができる。
【０１０３】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、係数情報に基づいて、ユーザに関して特定のアクションを行うことができる。係数を使用して、ユーザが特定のアクションを行うかどうかを、そのアクションへのユーザの関心に基づいて予測することができる。係数は、広告、検索結果、ニュース・ストーリ、メディア、メッセージ、通知、または他の適切なオブジェクトなど、任意の種類のオブジェクトを生成し、ユーザに対して提示するときに使用することができる。係数を利用して、適切な場合、このようなオブジェクトをランク付けして、順序付けすることもできる。このように、ソーシャルネットワーキング・システム１６０は、ユーザの関心および現在の状況に関連性がある状況を提供できるので、このように関心のある情報を見つける尤度が高まる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、係数情報に基づいて、コンテンツを生成することができる。コンテンツ・オブジェクトは、ユーザ固有の係数に基づいて提供または選択することができる。限定ではなく、例として、係数を使用して、ユーザのためのメディアを生成することができ、その場合、ユーザには、ユーザがメディア・オブジェクトに関して総合的に高い係数を有するメディアを提示することができる。限定ではなく、別の例として、係数を使用して、ユーザのための広告を生成することができ、その場合、ユーザには、ユーザが広告オブジェクトに関して総合的に高い係数を有する広告を提示することができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、係数情報に基づいて、検索結果を生成することができる。特定のユーザのための検索結果には、クエリを行うユーザに関する検索結果に関連付けられている係数に基づいて、スコアまたはランクを付けることができる。限定ではなく、例として、より高い係数をもつオブジェクトに対応する検索結果は、より低い係数をもつオブジェクトに対応する結果よりも、検索結果ページ上の上位にランク付けすることができる。
【０１０４】
特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、特定のシステムまたはプロセスからの係数要求に応答して、係数を計算することができる。ユーザが所与の状況で取りうる（またはその対象になりうる）可能性の高いアクションを予測するために、任意のプロセスが、ユーザについて計算した係数を要求することができる。要求には、係数を計算するために用いられたさまざまな因子について使用する重みの集合も含むことができる。この要求は、オンライン・ソーシャル・ネットワーク上で稼働しているプロセスから、サードパーティ・システム１７０から（たとえば、ＡＰＩもしくは他の通信チャネルを介して）、または別の適切なシステムからくることができる。要求に応答して、ソーシャルネットワーキング・システム１６０は、係数を計算する（または、以前に計算して格納されている場合には、係数情報にアクセスする）ことができる。特定の実施形態においては、ソーシャルネットワーキング・システム１６０は、特定のプロセスに対するアフィニティを測定することができる。異なるプロセス（オンライン・ソーシャル・ネットワークの内部および外部の両方）は、特定のオブジェクトまたはオブジェクト集合に関する係数を要求することができる。ソーシャルネットワーキング・システム１６０は、アフィニティの尺度を要求した特定のプロセスに関連性があるアフィニティの尺度を提供することができる。このように、各プロセスは、プロセスがアフィニティの尺度を使用するさまざまな状況に応じて調整されたアフィニティの尺度を受け取る。
【０１０５】
ソーシャルグラフ・アフィニティおよびアフィニティ係数に関連して、特定の実施形態は、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号明細書、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号明細書、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号明細書、および２０１２年１０月１日に出願された米国特許出願第１３／６３２８６９号明細書に開示された１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作または工程を利用することができ、これら特許出願のそれぞれを参照により本書に援用する。
【０１０６】
システムおよび方法
図９は、例示的なコンピュータシステム９００を示している。特定の実施形態においては、１つまたは複数のコンピュータシステム９００が、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を実行する。特定の実施形態においては、１つまたは複数のコンピュータシステム９００が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、１つまたは複数のコンピュータシステム９００上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、１つまたは複数のコンピュータシステム９００の１つまたは複数の部分を含む。本明細書においては、コンピュータシステムへの言及は、適切な場合には、コンピューティング・デバイスおよびその逆を包含することができる。その上、コンピュータシステムへの言及は、適切な場合には、１つまたは複数のコンピュータシステムを包含することができる。
【０１０７】
本開示は、任意の適切な数のコンピュータシステム９００を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータシステム９００を想定している。限定ではなく、例として、コンピュータシステム９００は、組み込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータシステム９００は、１つもしくは複数のコンピュータシステム９００を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つもしくは複数のネットワーク内の１つもしくは複数のクラウドコンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータシステム９００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータシステム９００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程をリアルタイムで、またはバッチモードで実行することができる。１つまたは複数のコンピュータシステム９００は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【０１０８】
特定の実施形態においては、コンピュータシステム９００は、プロセッサ９０２、メモリ９０４、ストレージ９０６、入力／出力（Ｉ／Ｏ）インタフェース９０８、通信インタフェース９１０、およびバス９１２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータシステムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータシステムを想定している。
【０１０９】
特定の実施形態においては、プロセッサ９０２は、コンピュータ・プログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ９０２は、内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６に書き込むことができる。特定の実施形態においては、プロセッサ９０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ９０２を想定している。限定ではなく、例として、プロセッサ９０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数の変換ルックアサイドバッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ９０４またはストレージ９０６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ９０２によるそれらの命令の取り出しをスピードアップすることができる。データキャッシュ内のデータは、プロセッサ９０２において実行される命令が機能する際に基づくメモリ９０４もしくはストレージ９０６内のデータのコピー、プロセッサ９０２において実行される後続の命令によるアクセスのための、もしくはメモリ９０４もしくはストレージ９０６への書き込みのためのプロセッサ９０２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データキャッシュは、プロセッサ９０２による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。ＴＬＢは、プロセッサ９０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ９０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ９０２を想定している。適切な場合には、プロセッサ９０２は、１つまたは複数の演算ロジックユニット（ＡＬＵ）を含むこと、マルチコアプロセッサであること、または１つもしくは複数のプロセッサ９０２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【０１１０】
特定の実施形態においては、メモリ９０４は、プロセッサ９０２が実行するための命令、またはプロセッサ９０２が機能する際に基づくデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム９００は、命令をストレージ９０６または別のソース（たとえば、別のコンピュータシステム９００など）からメモリ９０４にロードすることができる。次いでプロセッサ９０２は、命令をメモリ９０４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ９０２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ９０２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ９０２は、それらの結果のうちの１つまたは複数をメモリ９０４に書き込むことができる。特定の実施形態においては、プロセッサ９０２は、（ストレージ９０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ９０４内の命令のみを実行し、（ストレージ９０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ９０４内のデータ上でのみ機能する。１つまたは複数のメモリバス（それらはそれぞれ、アドレスバスおよびデータバスを含むことができる）は、プロセッサ９０２をメモリ９０４に結合することができる。バス９１２は、以降で記述されているような１つまたは複数のメモリバスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ９０２とメモリ９０４との間に常駐し、プロセッサ９０２によって要求されるメモリ９０４へのアクセスを容易にする。特定の実施形態においては、メモリ９０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ９０４は、適切な場合には、１つまたは複数のメモリ９０４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【０１１１】
特定の実施形態においては、ストレージ９０６は、データまたは命令のためのマスストレージを含む。限定ではなく、例として、ストレージ９０６は、ハードディスクドライブ（ＨＤＤ）、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ９０６は、適切な場合には、取り外し可能なまたは取り外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ９０６は、適切な場合には、コンピュータシステム９００の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ９０６は、不揮発性のソリッドステートメモリである。特定の実施形態においては、ストレージ９０６は、読み取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマスストレージ９０６を想定している。ストレージ９０６は、適切な場合には、プロセッサ９０２とストレージ９０６との間における通信を容易にする１つまたは複数のストレージコントロールユニットを含むことができる。適切な場合には、ストレージ９０６は、１つまたは複数のストレージ９０６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【０１１２】
特定の実施形態においては、Ｉ／Ｏインタフェース９０８は、コンピュータシステム９００と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム９００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータシステム９００との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／Ｏデバイスのための任意の適切なＩ／Ｏインタフェース９０８を想定している。適切な場合には、Ｉ／Ｏインタフェース９０８は、プロセッサ９０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイスドライバまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインタフェース９０８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース９０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【０１１３】
特定の実施形態においては、通信インタフェース９１０は、コンピュータシステム９００と、１つもしくは複数のその他のコンピュータシステム９００または１つもしくは複数のネットワークとの間における通信（たとえば、パケットベースの通信など）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース９１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷＩ−ＦＩネットワークなどのワイヤレスネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレスアダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース９１０を想定している。限定ではなく、例として、コンピュータシステム９００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線またはワイヤレスであることが可能である。例として、コンピュータシステム９００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥースＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ（登録商標））ネットワークなど）、またはその他の適切なワイヤレスネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータシステム９００は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース９１０を含むことができる。通信インタフェース９１０は、適切な場合には、１つまたは複数の通信インタフェース９１０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【０１１４】
特定の実施形態においては、バス９１２は、コンピュータシステム９００のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス９１２は、アクセラレイティッドグラフィックスポート（ＡＧＰ）もしくはその他のグラフィックスバス、エンハンストインダストリースタンダードアーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリースタンダードアーキテクチャ（ＩＳＡ）バス、インフィニバンドインターコネクト、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクススタンダーズアソシエーションローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス９１２は、適切な場合には、１つまたは複数のバス９１２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【０１１５】
本明細書においては、１つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）など）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）ディスケット、フロッピー（登録商標）ディスクドライブ（ＦＤＤ）、磁気テープ、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【０１１６】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【０１１７】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定のコンポーネント、要素、特徴、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、特徴、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。
【図１】
2019506664.tif 000009
【図２】
2019506664.tif 000010
【図３】
2019506664.tif 000011
【図４】
2019506664.tif 000012
【図５】
2019506664.tif 000013
【図６】
2019506664.tif 000014
【図７】
2019506664.tif 000015
【図８】
2019506664.tif 000016
【図９】
2019506664.tif 000017
【国際調査報告】
2019506664.tif 000018
2019506664.tif 000019