(57)【特許請求の範囲】
【請求項１】
１または複数のコンピューティングシステムによって、
写真から１または複数の特徴を抽出する工程と、
前記写真に対して、１または複数のユーザが該写真と相互作用する確率を表すエンゲージメトリックを抽出済みの前記１または複数の特徴に基づいて計算する工程と、
前記エンゲージメトリックに基づいて前記写真に１または複数のポリシーを適用する工程と、を備え、前記１または複数の特徴を抽出する工程は、
前記写真に１または複数の画像オブジェクト認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の画像オブジェクトを検出する工程と、
検出済みの各オブジェクトに対して、前記写真を、該検出済みのオブジェクトをソーシャルグラフにおいて表すオブジェクトノードに関連付ける工程と、を含む、方法。
【請求項２】
前記エンゲージメトリックは特定のユーザに固有である、請求項１に記載の方法。
【請求項３】
前記エンゲージメトリックは複数のユーザに一般化されている、請求項１に記載の方法。
【請求項４】
前記写真と相互作用することは、前記写真を閲覧すること、前記写真についてコメントすること、および前記写真について「いいね」と表明することのうちの１つ以上を含む、請求項１に記載の方法。
【請求項５】
前記１または複数の特徴を抽出する工程は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の顔を検出する工程と、
検出済みの各顔に対して、前記写真を、該検出済みの顔をソーシャルグラフにおいて表すユーザノードに関連付ける工程と、をさらに含む、請求項１に記載の方法。
【請求項６】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における
検出済みの顔の数である、請求項１に記載の方法。
【請求項７】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の性別認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における人物の性別である、請求項１に記載の方法。
【請求項８】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの笑顔の数である、請求項１に記載の方法。
【請求項９】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の画像認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの人物間の距離である、請求項１に記載の方法。
【請求項１０】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの顔についての大きさである、請求項１に記載の方法。
【請求項１１】
前記１または複数の特徴を抽出する工程は、前記写真に１または複数の画像認識アルゴリズムを適用する工程を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの、カメラを見ている人物の数である、請求項１に記載の方法。
【請求項１２】
前記１または複数の特徴は、前記写真が撮影された時刻を含む、請求項１に記載の方法。
【請求項１３】
前記１または複数の特徴は、前記写真が撮影されたロケーションを含む、請求項１に記載の方法。
【請求項１４】
前記１または複数の特徴は、前記写真を撮影したデバイスの種類を含む、請求項１に記載の方法。
【請求項１５】
前記エンゲージメトリックを計算する工程は、
抽出済みの前記１または複数の特徴のそれぞれに、実際の関りに基づいてそれぞれリアルタイムで実質的に調整される重みを割り当てる工程と、
割り当てられた前記重みを使用して重み付き平均を計算する工程と、を含む、請求項１に記載の方法。
【請求項１６】
前記重みはベイズ確率関数によって割り当てられる、請求項１５に記載の方法。
【請求項１７】
非一時的コンピュータ可読媒体であって、
１または複数のコンピューティングシステムによって実行されると、
１または複数の特徴を写真から抽出する工程と、
前記写真に対して、１または複数のユーザが該写真と相互作用する確率を表すエンゲージメトリックを抽出済みの前記１または複数の特徴に基づいて計算する工程と、
前記エンゲージメトリックに基づいて前記写真に１または複数のポリシーを適用する工程と、が行われるように構成される命令を含み、１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の画像オブジェクト認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の画像オブジェクトを検出する工程と、
検出済みの各オブジェクトに対して、前記写真を、該検出済みのオブジェクトをソーシャルグラフにおいて表すオブジェクトノードに関連付ける工程と、が行われるように構成される命令を含む、媒体。
【請求項１８】
前記エンゲージメトリックは特定のユーザに固有である、請求項１７に記載の媒体。
【請求項１９】
前記エンゲージメトリックは特定のユーザに固有である、請求項１７に記載の媒体。
【請求項２０】
前記エンゲージメトリックは複数のユーザに一般化されている、請求項１７に記載の媒体。
【請求項２１】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の顔を検出する工程と、
検出済みの各顔に対して、前記写真を、該検出済みの顔をソーシャルグラフにおいて表すユーザノードに関連付ける工程と、が行われるように構成される命令をさらに含む、請求項１７に記載の媒体。
【請求項２２】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの顔の数である、請求項１７に記載の媒体。
【請求項２３】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の性別認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における人物の性別である、請求項１７に記載の媒体。
【請求項２４】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの笑顔の数である、請求項１７に記載の媒体。
【請求項２５】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の画像認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの人物間の距離である、請求項１７に記載の媒体。
【請求項２６】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの顔についての大きさである、請求項１７に記載の媒体。
【請求項２７】
１または複数の特徴を抽出するように構成される前記命令は、
前記写真に１または複数の画像認識アルゴリズムを適用する工程が行われるように構成される命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの、カメラを見ている人物の数である、請求項１７に記載の媒体。
【請求項２８】
前記１または複数の特徴は、前記写真が撮影された時刻を含む、請求項１７に記載の媒体。
【請求項２９】
前記１または複数の特徴は、前記写真が撮影されたロケーションを含む、請求項１７に記載の媒体。
【請求項３０】
前記１または複数の特徴は、前記写真を撮影したデバイスの種類を含む、請求項１７に記載の媒体。
【請求項３１】
前記エンゲージメトリックを計算するように構成される前記命令は、
抽出済みの前記１または複数の特徴のそれぞれに、実際の関りに基づいてそれぞれリアルタイムで実質的に調整される重みを割り当てる工程と、
割り当てられた前記重みを使用して重み付き平均を計算する工程と、が行われるように構成される命令を含む、請求項１７に記載の媒体。
【請求項３２】
前記重みはベイズ確率関数によって割り当てられる、請求項３１に記載の媒体。
【請求項３３】
１または複数のプロセッサと、
前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合されているメモリと、を備え、前記命令が実行されると、
写真から１または複数の特徴を抽出する工程と、
前記写真に対して、１または複数のユーザが該写真と相互作用する確率を表すエンゲージメトリックを抽出済みの前記１または複数の特徴に基づいて計算する工程と、
前記エンゲージメトリックに基づいて前記写真に１または複数のポリシーを適用する工程と、が行われるように前記プロセッサが構成され、１または複数の特徴を抽出する前記命令は、
前記写真に１または複数の画像オブジェクト認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の画像オブジェクトを検出する工程と、
検出済みの各オブジェクトに対して、前記写真を、該検出済みのオブジェクトをソーシャルグラフにおいて表すオブジェクトノードに関連付ける工程と、を行う命令を含む、システム。
【請求項３４】
前記エンゲージメトリックは特定のユーザに固有である、請求項３３に記載のシステム。
【請求項３５】
前記エンゲージメトリックは複数のユーザに一般化されている、請求項３３に記載のシステム。
【請求項３６】
前記写真と相互作用することは、前記写真を閲覧すること、前記写真についてコメントすること、および前記写真について「いいね」と表明することのうちの１つ以上を含む、請求項３３に記載のシステム。
【請求項３７】
前記１または複数の特徴を抽出する前記命令は、
前記写真に１または複数の顔認識アルゴリズムを適用する工程と、
前記１または複数のアルゴリズムによって、１または複数の顔を検出する工程と、
検出済みの各顔に対して、前記写真を、該検出済みの顔をソーシャルグラフにおいて表すユーザノードに関連付ける工程と、を行う命令をさらに含む、請求項３３に記載のシステム。
【請求項３８】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前
記写真における検出済みの顔の数である、請求項３３に記載のシステム。
【請求項３９】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の性別認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前記写真における人物の性別である、請求項３３に記載のシステム。
【請求項４０】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの笑顔の数である、請求項３３に記載のシステム。
【請求項４１】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の画像認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの人物間の距離である、請求項３３に記載のシステム。
【請求項４２】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの顔についての大きさである、請求項３３に記載のシステム。
【請求項４３】
前記１または複数の特徴を抽出する前記命令は、前記写真に１または複数の画像認識アルゴリズムを適用する工程を行う命令を含み、前記１または複数の特徴のうちの１つは、前記写真における検出済みの、カメラを見ている人物の数である、請求項３３に記載のシステム。
【請求項４４】
前記１または複数の特徴は、前記写真が撮影された時刻を含む、請求項３３に記載のシステム。
【請求項４５】
前記１または複数の特徴は、前記写真が撮影されたロケーションを含む、請求項３３に記載のシステム。
【請求項４６】
前記１または複数の特徴は、前記写真を撮影したデバイスの種類を含む、請求項３３に記載のシステム。
【請求項４７】
前記エンゲージメトリックを計算する前記命令は、
抽出済みの前記１または複数の特徴のそれぞれに、実際の関りに基づいてそれぞれリアルタイムで実質的に調整される重みを割り当てる工程と、
割り当てられた前記重みを使用して重み付き平均を計算する工程と、を行う命令を含む、請求項３３に記載のシステム。
【請求項４８】
前記重みはベイズ確率関数によって割り当てられる、請求項４７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して画像解析に関する。
【背景技術】
【０００２】
ユーザ（人物、会社、および他のエンティティを含む）間のつながりを追跡し可能にするソーシャルネットワークまたはソーシャルユーティリティが、近年流行している。特に、ソーシャルネットワーキングシステムを利用すると、ユーザは、より効率的に情報を通信することができる。たとえば、あるユーザは、ソーシャルネットワーキングシステム上の、そのユーザと関連付けられたロケーション（場所）に、連絡先情報、経歴情報、仕事情報、趣味、または他のユーザ固有のデータを投稿することができる。次いで、他のユーザが、ユーザプロファイルのブラウジングを行うことまたは固有データを含めてプロファイルを調査することによって、投稿されたデータを吟味することができる。また、ソーシャルネットワーキングシステムを利用すると、ユーザは他のユーザと交際し、したがってソーシャルネットワーキングシステムのユーザ間でつながりのネットを生成することもできる。これらのユーザ間でのつながりはウェブサイトによって活用され、つながりについてユーザ自身が示した興味を考慮して、より関連性の高い情報を各ユーザに提供することができる。
【０００３】
ユーザがシステムと相互作用することを可能にする、ウェブサイトなどのシステムは、一般的には、そのシステムの各ユーザについての記録を記憶する。これらの記録は、ユーザによって提供される情報、ならびにシステム上でのユーザのアクティビティまたはアクションに関連する、システムによって収集された情報からなることができる。たとえば、あるシステムは、ユーザに、システムと初めて相互作用する際に連絡先情報、性別、好み、興味などを持っていることなどの情報を入力することを要求してよく、これらの情報は、そのユーザの記録に記憶される。システム上の特定の情報のアクセスの頻度などのシステム上でのユーザのアクティビティもまた、ユーザの記録に記憶できる情報を提供する。次いで、システムは、ユーザによって提供された情報およびユーザに関する収集された情報を使用して、システムのユーザとの相互作用をカスタマイズすることができる。
【０００４】
ユーザは、写真およびビデオなどのマルチメディアオブジェクトを投稿して、ソーシャルネットワーキングシステムの他のユーザと共有することができる。従来は、アップロードするユーザが、マルチメディアオブジェクトが写真アルバムに配列する順序を制御し、ソーシャルネットワーキングシステムは、あらかじめ設定されたルールに基づいて、どの写真を他のユーザに表示するかを決定する。
【図面の簡単な説明】
【０００５】
【図１】ソーシャルネットワーキングシステムの例示的なアーキテクチャを示す図。
【図２】ソーシャルネットワーキングシステムのユーザによってアップロードされた例示的な写真画像を示す図。
【図３】写真から抽出され、例示的なソーシャルグラフの一部分の中のノードにマッピングされた特徴の例示的なセットを示す図。
【図４】特徴の特定のセットを有する写真のためのエンゲージ（関り）の確率を予測するための例示的な生成モデルを示す図。
【図５】ある特定のユーザのセットに対するエンゲージメトリックを計算する例示的な方法を示す図。
【図６】ある特定のユーザに対するエンゲージメトリックを動的に計算する例示的な方法を示す図。
【図７】例示的なネットワーク環境を示す図。
【図８】例示的なコンピュータシステムを示す図。
【図９】例示的なモバイルクライアントデバイスを示す図。
【発明を実施するための形態】
【０００６】
これらの図は、例示のみの目的で本開示のさまざまな実施形態を示す。本明細書で例示する構造および方法の代替実施形態は本明細書で説明する本発明の原理から逸脱することなく用いられることを、当業者であれば以下の議論から容易に理解するであろう。
【０００７】
概要
特定の実施形態は、ソーシャルネットワーキングシステムを含むソーシャルネットワーキング環境に関する。ソーシャルネットワーキングシステムは、そのユーザに、ソーシャルネットワーキングシステムの他のユーザと通信し相互作用する能力を提供する。ユーザは、ソーシャルネットワーキングシステムに参加し、次いで、関係付けを所望する任意の数の他のユーザへのつながりを追加する。ユーザは、ソーシャルネットワークのメンバーになると、自分のページに記事および状況メッセージを投稿することによって、ソーシャルネットワークそのものと相互作用し、他のユーザのページ上の記事にコメントしたり、他のユーザのページに記事を投稿したりすることなどによって他のユーザと相互作用することができ、または、購読しているファンページ、履行するもしくは申し込んだオンライン取引、またはチェックインしたロケーションなどの、ユーザでないエンティティと相互作用することができる。さらに、ユーザは、ソーシャルネットワーキングシステムに写真およびビデオなどのマルチメディアオブジェクトをアップロードして、ソーシャルネットワークの他のユーザと共有することができる。ユーザは、写真またはビデオをイベントページにアップロードする、またはマルチメディアオブジェクト内の個々の物にタグを付けるなど、ソーシャルネットワーク上で明確なアクションを行って、写真をソーシャルネットワークの別の要素と関連付けることができる。特定の実施形態では、ソーシャルネットワーキングシステムは、コンピュータビジョンアルゴリズムによってアップロードされた写真の中で認識されるオブジェクト、ブランド、およびロケーションなどのさまざまな要因に基づいて、ユーザノードとオブジェクトノードの間の非明示的なつながりを作成することができる。
【０００８】
本開示では、ソーシャルネットワーキング環境について、ソーシャルグラフ情報を含むソーシャルグラフに関して説明され得る。特定の実施形態では、ソーシャルネットワーキング環境を実装するソーシャルネットワーキング環境の１または複数のコンピューティングシステムは、本明細書で説明するソーシャルネットワーキング環境を実装する際に使用するためのソーシャルグラフ情報を含むデータ構造を含み、これを記憶し、またはこれにアクセスする。ソーシャルネットワークはソーシャルグラフを利用し、ソーシャルグラフは、ソーシャルネットワーキング環境内のユーザおよびコンセプトを表すノード、ならびにそのようなノード間のつながりを定義するまたは表すエッジを含む。
【０００９】
特定の実施形態では、ソーシャルグラフ情報は、それぞれのユーザにそれぞれ対応するユーザノードからなる第１のセットと、それぞれのコンセプトにそれぞれ対応するコンセプトノードからなる第２のセットとを含む。本明細書で用いる場合、「ユーザ」は、個人（人間のユーザ）であってもよく、エンティティ（たとえば、企業、会社、またはサードパーティアプリケーション）であってもよく、またはそのようなソーシャルネットワーキング環境と相互作用するもしくはそのようなソーシャルネットワーキング環境上で通信するグループ（たとえば、個人またはエンティティからなる）であってもよい。本明細書で用いる場合、「コンセプト」とは、例を挙げると、スポーツ、スポーツチーム、音楽のジャンル、作曲家、趣味、会社（企業）、エンティティ、グループ、サードパーティアプリケーション、有名人、未登録ユーザである人物などに対する関心、これらについての好み
、またはこれらとのつながりをユーザが宣言するまたは明示することができる実質的にすべてのものを指すことができる。特定の実施形態では、各ノードは、ソーシャルネットワーキング環境内でホストされるまたはアクセス可能な対応するウェブページ（「プロファイルページ」）を有する、これを表す、またはこれによって表される。
【００１０】
例として、ユーザノードは、対応するユーザがコンテンツを追加する、宣言する、およびその他の方法で自分の考えを表現することが可能な、対応するユーザプロファイルページを有することができ、コンセプトノードは、複数のユーザが、特にそのコンセプトに関連して、コンテンツを追加する、宣言する、および自分の考えを表現することが可能な、対応するコンセプトプロファイルページ（「ハブ」）を有することができる。特定の実施形態では、ソーシャルグラフ情報は、ソーシャルグラフ内の対応するノードのペア間のつながりをそれぞれ定義するまたは表す複数のエッジをさらに含む。
【００１１】
特定の実施形態では、ソーシャルネットワーキングシステムにアップロードされた写真は、画像オブジェクト認識アルゴリズムの対象となる。この画像オブジェクト認識アルゴリズムは、アップロードされた画像を写真オブジェクトデータベースに記憶された画像と比較し、類似のオブジェクトが存在するか否か検索する。オブジェクト検索のための方法は当技術分野において周知であり、周波数領域画像処理、フィルタリング、ウェーブレット解析、特徴抽出、ニューラルネットワークなどの学習アルゴリズム、テクスチャ認識などがありうる。本開示は、一致するオブジェクトを見つけるための任意の種類のコンピュータビジョンアルゴリズムを企図する。本開示は、本願の権利者が所有する米国実用特許出願であって、先だって２０１１年８月１８日に出願された「メディアにおけるオブジェクトをユーザと接続するためのコンピュータ−ビジョンコンテンツ検出（Ｃｏｍｐｕｔｅｒ−Ｖｉｓｉｏｎ  Ｃｏｎｔｅｎｔ  Ｄｅｔｅｃｔｉｏｎ  ｆｏｒ  Ｃｏｎｎｅｃｔｉｎｇ  Ｏｂｊｅｃｔｓ  ｉｎ  Ｍｅｄｉａ  ｔｏ  Ｕｓｅｒｓ）」という名称の米国特許出願第１３／２１２，３４４号を参照により本願明細書に援用する。
【００１２】
本開示は、アップロードされたマルチメディアオブジェクトを、マルチメディアオブジェクトがどのように関っているか予測する生成モデルに基づいて得点付けすることによって、これらのコンセプトをすべてのユーザ、特定のユーザ、またはユーザの特定のセットに拡張する。
【００１３】
そのようなソーシャルネットワークプラットフォームのさまざまな部分は、限定ではなく、例として以下でより詳細に説明するように、さまざまなソフトウェアコンポーネントまたは方法が特定の実施形態を実装することを可能にするハードウェアアーキテクチャまたはソフトウェアフレームワークを通じて実装されてもよい。プラットフォームは、１または複数のハードウェアコンポーネントまたはソフトウェアコンポーネントを含むことができ、そのうちの１または複数は、１または複数の統合コンピューティングシステムまたは分散コンピューティングシステムの中に配置されるかまたは具現化されてもよい。加えて、本明細書で用いる場合、「または（もしくは）」は、「および」ならびに「または（もしくは）」を暗示することができる。すなわち、「または（もしくは）」は、明記または暗示しない限り、必ずしも「および」を排除するものではない。
【００１４】
図１は、一実施形態による画像に基づくオブジェクト判定システムを含むソーシャルネットワーキングシステムのハイレベルブロック図である。図１は、ソーシャルネットワーキングシステム１００、クライアントデバイス２５０、無線セルラーネットワーク３００、およびサードパーティウェブサイト２６０を示す。無線セルラーネットワーク３００は、複数の通信事業者によって提供される複数の無線セルラーネットワークを表すことを理解されたい。クライアントデバイス２５０は携帯電話として示されているが、クライアントデバイス２５０は、携帯電話、ラップトップ、ネットブックタブレット、ケーブルボッ
クス、テレビなどを含む、任意の種類のコンピューティングデバイスを含み得る。クライアントデバイス２５０は、ネットワーク２４０へのデータ接続を有する任意のデバイスである。クライアントデバイス２５０は、ネットワーク２４０または無線データネットワーク３００への直接接続を有する必要はない。たとえば、クライアントデバイス２５０は、モデムへのブルートゥース接続を有するデジタルカメラであってよい。クライアントデバイス２５０は、写真、ビデオ、およびオーディオファイルなどの取り込んだマルチメディアオブジェクトを記憶することが可能な１または複数のメモリを有する。
【００１５】
ソーシャルネットワーキングシステム１００は、本明細書で説明するように、メンバーが互いに通信または相互作用し、コンテンツにアクセスすることを可能にするコンピューティングシステムを含む。ソーシャルネットワーキングシステム１００は、職歴、学歴、趣味または好み、ロケーションなどの、略歴、人口学的情報、および他の種類の記述的情報を含む、ソーシャルネットワークのメンバーについて説明するメンバープロファイルを記憶する。ソーシャルネットワーキングシステム１００は、異なるメンバー間の１または複数のつながりについて説明するデータをさらに記憶するウェブサイトであってよい。つながり情報は、類似または共通の職歴、グループへの加入、趣味、または学歴を有するメンバーを示すことができる。
【００１６】
クライアントデバイス２５０のユーザは、ウェブブラウザまたはネイティブアプリケーションなどのアプリケーションを通じてソーシャルネットワーキングシステム１００と相互作用して、コンテンツのブラウジング、メッセージの投稿および送信、他のユーザから受信したメッセージの検索および記憶、マルチメディアオブジェクトのアップロードなどの動作を実行する。クライアントデバイス２５０はまた、アプリケーションまたはブラウザも使用して、ソーシャルネットワーキングシステム１００内のさまざまなユーザノードおよびハブに対するプロファイル情報を引き出してブラウジングを行うことができる。
【００１７】
ソーシャルネットワーキングシステム１００は、オブジェクトストア１１０と、グラフ情報ストア１２０とを含む。オブジェクトストア１１０は、ソーシャルネットワーキング環境１００内の、またはこれによって表される、ユーザなどのオブジェクトに関する情報を記憶する。グラフ情報ストア１２０は、オブジェクトストア１１０内のオブジェクトのつながりに関する情報を記憶する。オブジェクトストア１１０は、さまざまな記憶領域を含む。ユーザストア１１１は、ソーシャルネットワーキングシステム１００の特定のユーザアカウントまたはメンバーのためのプロファイルページを含む。ハブストア１１５は、会社、ロケーション、および有名人などのコンセプトノードのためのプロファイルページまたはハブページを含む。アプリストア１１２は、ユーザがプロファイルページ上にインストールし実行できるサードパーティアプリケーションを含む。メディアストア１１７は、写真、ビデオ、オーディオファイル、および他の種類のマルチメディアオブジェクトなどのアップロードされたユーザメディアを含む。
【００１８】
画像オブジェクトデータベース１５０は、ブランド、製品、または会社などの、コンセプトノードと関連付けることができる、実世界の物理的なオブジェクトまたはロゴに関する情報を記憶する。画像オブジェクトデータベース１５０は、実世界の物理的なロケーションと関連付けられた複数の画像も含むこともできる。画像オブジェクトデータベース１５０は、ハブストア１１５、コンセプトストア１１４、イベントストア１１３、およびロケーションストア１１８に通信可能に結合される。
【００１９】
一実装形態では、各オブジェクトは、ソーシャルグラフ内のノードまたはソーシャルネットワーキングシステムによって維持される他のデータ構造として維持することができる。ソーシャルネットワーキングシステム１００は、ユーザがラップトップ、デスクトップ、またはモバイルデバイスなどの有線局または無線局によってホストされるクライアント
アプリケーション（たとえば、ブラウザ）を使用して各オブジェクトに関する情報にアクセスすることを可能にすることができる。たとえば、ソーシャルネットワーキングシステムは、オブジェクトについての情報を要求するユーザに、ウェブページ（または他の構造化文書）を供給することができる。ユーザプロファイルおよび場所情報に加えて、ソーシャルネットワーキングシステムは、ユーザについての他の情報を追跡または維持することができる。たとえば、ソーシャルネットワーキングシステムは、ユーザのロケーションを記録する１または複数のロケーションに基づいたサービスを含むジオソーシャルネットワーキングシステム機能をサポートすることができる。たとえば、ユーザは、ユーザのモバイルデバイスによってホストされる特殊目的クライアントアプリケーション（またはブラウザクライアントを使用するウェブベースもしくはネットワークベースのアプリケーション）を使用して、ジオソーシャルネットワーキングシステムにアクセスすることができる。クライアントアプリケーションは、モバイルデバイスによってサポートされる全地球測位システム（ＧＰＳ）または他のジオロケーション機能に自動的にアクセスし、ジオソーシャルネットワーキングシステムにユーザの現在のロケーションを報告することができる。加えて、クライアントアプリケーションは、ユーザがさまざまなロケーションにチェックインしてこのロケーションを他のユーザに通信することを可能にするジオソーシャルネットワーク機能をサポートすることができる。
【００２０】
特徴抽出ＡＰＩ１４０は、写真オブジェクトデータベース１５０にアクセスする。写真オブジェクトデータベース１５０は、ロゴ、製品、ブランドなどの画像の集まりを含む。特定の実施形態では、写真オブジェクトデータベース１５０は、各写真に対して、コンセプトストア１１４に記憶されている特定のコンセプトノードとの関連を含む。特定の実施形態では、ＯＣＲによって抽出される検索可能なテキストは、標識（ｓｉｇｎａｇｅ）または他のテキストの源を含む写真画像に関連して記憶される。たとえば、写真オブジェクトデータベース１５０は、コカコーラ製品の写真に関連して、検索可能な形式で「コカコーラ」というテキストを記憶することができる。特定の実施形態では、写真オブジェクトデータベース１５０は、オブジェクトに関連付けられたノードへのリンクを記憶し、必要に応じてノードからテキストまたは他の関連データを直接引き出す。特徴抽出ＡＰＩはまた、写真からいくつかの特徴を抽出する。たとえば、特徴抽出ＡＰＩは、写真の中の人物の数、写真の中の人物の性別、それらの人物の顔の大きさ、それらの人物が笑っているか否か、顔認識アルゴリズムに依存した、写真における検出済みの人物の身元およびユーザノードを検出することができる。特定の実施形態では、特徴抽出ＡＰＩ１４０はまた、ＥＸＩＦデータまたは他の形態のメタデータを通じて、写真そのものに関する情報を抽出することができる。本開示は、特徴抽出ＡＰＩ１４０による任意の適切な種類の特徴抽出を企図する。
【００２１】
写真オブジェクトデータベース１５０を更新して、写真を最新に保つことができる。特定の実施形態では、他のユーザから受信した写真およびビデオを利用して、写真オブジェクトデータベース１５０を更新することができる。特定の実施形態では、ロケーション特徴抽出ＡＰＩ１４０は、イェルプ（Ｙｅｌｐ！）またはグーグル（Ｇｏｏｇｌｅ）画像などのサードパーティサイト２６０から画像を引き出して、写真オブジェクトデータベース１５０を更新することができる。
【００２２】
加えて、ソーシャルネットワーキングシステム１００は、ウェブサーバ１６０と、アクションロガー１９０と、アクションログ２２０と、ニュースフィードジェネレータ２００と、広告サーバ２１０と、広告要求のデータベース２３０とを含む。他の実施形態では、ソーシャルネットワーキングシステム１００は、さまざまなアプリケーションのために、追加モジュール、より少ないモジュール、または異なるモジュールを含むことができる。
【００２３】
ウェブサーバ１６０は、ソーシャルネットワーキングシステム１００を、ネットワーク
２４０を通じて１または複数のクライアントデバイス２５０に、ならびに１または複数のサードパーティウェブサイト２６０にリンク付けする。ウェブサーバ１６０は、ソーシャルネットワーキングシステム１００とクライアントデバイス２５０またはサードパーティウェブサイト２６０との間でメッセージを受信しルーティングするためのメールサーバまたは他のメッセージ機能を含むことができる。メッセージは、インスタントメッセージ、待ち行列型メッセージ（たとえば、電子メール）、テキストメッセージおよびＳＭＳメッセージ、または他の任意の適切なメッセージング技法によるものであってもよい。
【００２４】
アクションロガー１９０は、ソーシャルネットワーキングシステム１００上でのまたはソーシャルネットワーキングシステム１００外でのメンバーのアクションについて、ウェブサーバ１６０から通信を受信することが可能である。ニュースフィードジェネレータ２００は、各メンバーに対して、そのメンバーに関連しうる情報についての通信を生成する。これらの通信は、記事の形態であってもよく、各記事は、特定のメンバーに関連した、アクションログ内のアクションについての１行または数行の情報を含む情報メッセージである。記事は、ソーシャルネットワーキングシステム１００の１ページまたは複数ページを通じて、たとえば各メンバーのホームページまたはニュースフィードページの中で、メンバーに提示される。
【００２５】
広告サーバ２１０は、広告選択アルゴリズムを実行する。広告サーバ２１０は、この目的のために、広告要求のデータベース２３０に、およびアクションログ２２０に通信可能に結合される。
【００２６】
図２には、ユーザによってアップロードされた例示的な画像２００を示す。画像２００は、教示の目的で、顔２０５および２０６と、ソーシャルネットワーキングシステム１００による受信時に特徴抽出ＡＰＩ１４０によって認識されうるさまざまなオブジェクト２０１〜２０４とを含む。画像オブジェクト２０１、この場合は「コカコーラ」のボトルは、光学文字認識または他のコンピュータビジョン技法によって検出することができる。同様に、特徴抽出ＡＰＩ１４０は、ロゴを写真オブジェクトデータベース１５０に保存されているいくつかのロゴと比較することによって、飲料２０２を検出することができる。例示的な画像２００は４種類の製品ラベルを含んでいるが、本開示は、写真の背景、自動車、有名な建物などにおける標識などの任意の種類の画像オブジェクト検出することを企図する。たとえば、オブジェクト画像認識アルゴリズムは、自分の新車に座っている人物のピクチャにおける車両のメーカーおよびモデルを認識し、それに応じて画像にタグを付けることができる。同様に、特徴抽出ＡＰＩ１４０は、企業が後援するイベントで標識を検出することができる。本開示は、任意の種類のオブジェクト認識を企図する。
【００２７】
特徴抽出ＡＰＩ１６０はまた、所与のマルチメディアオブジェクトまたは画像の他の特徴を抽出することができる。たとえば、ＡＰＩ１６０は、画像２００における人物の数を検出することができる。特定の実施形態では、ＡＰＩ１６０は、写真２００における人物の性別を検出することができる。特定の実施形態では、ＡＰＩ１６０は、顔認識アルゴリズムによって、検出済みの顔をソーシャルネットワーキングシステム内のユーザと照合することができる。特定の実施形態では、ＡＰＩ１６０は、写真２００におけるユーザ同士の間の相対距離または平均距離を検出することができる。特定の実施形態では、ＡＰＩ１６０は、写真２００における検出済みの顔についての大きさを検出することができる。特定の実施形態では、ＡＰＩ１６０は、写真２００においてカメラレンズを実際に見ている人物の数を検出することができる。特定の実施形態では、ＡＰＩ１６０は、写真２００における個人の属する民族を検出するまたは推定することができる。特定の実施形態では、ＡＰＩ１６０は、識別されている肌の色などの共通色のセットを幅広い範囲で検出することによって、写真２００における人物の裸の状態を推定することができる。本開示は、コンピュータビジョンアルゴリズムの適用による特徴抽出の任意の適切な方法を企図する。
【００２８】
特定の実施形態では、ＡＰＩ１４０はまた、アップロードされた画像に添付されたメタデータまたはＥＸＩＦデータから情報を抽出することができる。たとえば、特定の実施形態では、ＡＰＩ１４０は、写真を撮影した時刻、写真を撮影した曜日、写真を撮影したデバイスまたはカメラの種類、写真を撮影した設定（絞り、露光時間、シャッター速度、ＩＳＯ設定、焦点距離、フラッシュ設定など）を、画像ファイルに付加されたＥＸＩＦデータから決定することができる。撮影デバイスがＧＰＳまたはジオタグによるロケーションデータを含む特定の実施形態では、ＡＰＩ１４０は、画像を撮影したロケーションを抽出することができる。特定の実施形態では、ＡＰＩ１４０は、画像の解像度および色深度、画像が修正されているか否か、どのソフトウェアによって修正されているのか、測距設定およびオートフォーカス設定、または画像の他の任意のメタデータを抽出することができる。本開示は、画像ファイルからの任意の適切なデータの抽出および符号化を企図する。
【００２９】
抽出済みの特徴２１０は、特徴のリスト、すなわち写真２００からＡＰＩ１４０によって抽出された特性２１０ａ〜２１０ｎを示す。特定の実施形態では、各特徴は、ソーシャルグラフ内の特性ノードまたは特徴ノードに対応する。特定の実施形態では、抽出されたデータは、概して特性ノードに分類されることができる。たとえば、時刻特性２１０ｍは、写真が土曜日の晩の遅くに撮影されたことを示す。写真のＥＸＩＦまたはメタデータは、月、日、年、時刻形式（たとえば、土曜日、１／２４／１１、２３：３９太平洋標準時）として表現され得るが、写真のエンゲージのレベルでパターンを識別するのに、このような粒度が必要である可能性は低い。したがって、特定の実施形態では、抽出されたさまざまな特徴を一般化して、「土曜日に撮影した」または「夜間に撮影した」などの幅広い特徴カテゴリに分類することができる。特定の実施形態では、正確な日付および時刻を表す特定の特性ノードを生成することができ、ソーシャルネットワーキングシステムは、その正確な日付／時刻ノードからより幅広い特徴カテゴリノードへのエッジを生成することができる。本開示は、マルチメディアオブジェクトの抽出済みの特徴を表すノードを生成し分類する任意の適切な方法を企図する。
【００３０】
図３は、教示の目的で、エンゲージ済み写真３００のためのソーシャルグラフの例示的な一部分を示す。本願では、「エンゲージ済み写真」とは、ソーシャルネットワーキングシステム上で相互作用される写真オブジェクトまたはマルチメディアオブジェクト（ビデオなど）である。たとえば、ユーザが写真を閲覧するときはいつでも、ソーシャルネットワーキングシステムは、写真ノードから、写真を閲覧したユーザへのエッジを生成する。たとえば、ユーザノード３０７によって表される「マイケルチャン（Ｍｉｃｈａｅｌ  Ｃｈａｎ）」というユーザが、写真３００を閲覧してコメントした。次いで、ソーシャルネットワークが、ユーザ３０７が写真３００と相互作用したことを示すエッジ３０６を生成する。特定の実施形態では、ソーシャルネットワーキングシステムは、相互作用またはエンゲージ（関り）ごとに別個のエッジ接続を生成する。たとえば、ソーシャルネットワーキングシステムは、ノード３００と３０７の間に「閲覧済みエッジ」ならびに「コメント済みエッジ」を生成することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、マルチメディアオブジェクト３００上でユーザノード３０７によって実行されるすべてのアクションを含む１つの「エンゲージエッジ」を生成する。本開示は、特定の写真に対するユーザアクションのログを維持する任意の適切な方法を企図する。
【００３１】
ソーシャルネットワーキングシステムは、写真３００と、ノード３０７などの特定のユーザノードまたはすべてのユーザのための特化したノード３０６との間に、エンゲージエッジを生成することができる。したがって、特定の実施形態では、ソーシャルネットワーキングシステムは、すべてのユーザについて所与の写真に対するエンゲージ度を追跡する。特定の実施形態では、直接エッジが、エンゲージ済み写真３００からすべてのユーザを表すノード３０６へと生成されてもよい。特定の実施形態では、「メンバーである」エッ
ジ３１２が、ユーザノード３０７とすべてのユーザノード３０６との間に生成されてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、複数のユーザのセットを表すカスタムノードを生成することができる。たとえば、年齢、ソーシャルネットワーク上の近接性などの社会人口統計に基づいて、ユーザを「バケツ（ｂｕｃｋｅｔ）」に入れることができる。一例として、写真３００は、２１〜２８歳グループの独身男性ユーザによってエンゲージ済みであることが多く、ソーシャルネットワーキングシステムは、このパターンを検出すると、写真を２１〜２８歳グループのユーザ独身男性用のモデルもしくはプロファイルまたは他の任意の「バケツ」に追加することができる。
【００３２】
ソーシャルグラフは、ＡＰＩ１４０によって抽出される特徴２１０ａ〜２１０ｎのそれぞれに対するノードを含むことができる。明瞭にする目的のため、図３では抽出された４つの特徴のみが表示されているが、特徴２１０ａ〜２１０ｎのそれぞれに対して別個のノードが存在してよいことが、当業者であれば容易に理解されるであろう。特定の実施形態では、ノードは、検出済みのユーザノード２１０ｆ「ジョンスミス（Ｊｏｈｎ  Ｓｍｉｔｈ）」および検出済みのオブジェクトノード「グレイグースウォッカ」２１０ｊなどの、ＡＰＩ１４０によって検出済みの既存のユーザノードおよびオブジェクトノードである。前述のノード２１０ｆおよび２１０ｊのそれぞれは、特徴が特徴抽出ＡＰＩ１４０によって検出されたことを示す「検出済み」エッジ３１１を通じて、エンゲージ済み写真３００に対するノードに接続される。特定の実施形態では、ノードは、「不明な女性」を表すノード３１５などの汎用的ノードであってよい。特定の実施形態では、特徴は、「検出済み」エッジ３１１ならびにノード３１５、２１０ｆ、および２１０ｊなどのエッジおよびノードによって定義される。特定の実施形態では、特徴は、汎用的な「特徴」エッジ３１３によって接続された「顔の大きさ＝中」ノード３１４などのノードのみによって定義される。本開示は、ソーシャルグラフ上の抽出済みの特徴２１０ａ〜２１０ｎを表す任意の適切な方法を企図する。
【００３３】
特定の実施形態では、ユーザノード２１０ｆおよびオブジェクトノード２１０ｊなどの、エンゲージ済み写真３００に関連付けられたソーシャルネットワーキングシステム上のノードは、エンゲージ済み写真３００を有するユーザノードまたはソーシャルネットワーキングシステム上の他のノード（図示せず）への明示的なエッジ接続を含むことができる。たとえば、ユーザノード３０７は「いいね」と表明したグレイグース３１０ｊを有し、ソーシャルネットワーキングシステムは、この２つのノードを、「いいね」と表明済みエッジ３０４によって接続する。ただし、特定の実施形態では、抽出済みの特徴２１０ａ〜２１０ｎの大半は、ユーザには不可視のソーシャルネットワーキングシステム上のノードによって表され、したがって、他のノードへの明示的なエッジ接続を含まないことが可能である。たとえば、写真における検出済みの人物のうちの１人が「不明な女性」であるという特性を表すノード３１５は、一般的にユーザにとって不可視であり、ユーザは、このノードに「いいね」と表明したり、コメントしたり、明示的に相互作用したりすることはできない。しかし、ユーザが、不明な女性を有するマルチメディアオブジェクトを連続しておよび頻繁に閲覧することもある。このつながりは、図４に関して説明する生成モデルにおいて取り込みされる。
【００３４】
特定の実施形態では、ソーシャルネットワーキングシステムは、特定のユーザに固有のエンゲージ済み写真３００の特徴を計算することができる。たとえば、ソーシャルネットワーキングシステムは、閲覧しているユーザの友達である、写真における検出済みのユーザの数を計算することができる。別の例として、ソーシャルネットワーキングシステムは、写真における検出済みのユーザと写真を閲覧しているユーザとの間の平均ソーシャル距離を計算することができる。たとえば、写真の中で３人のユーザが検出され、そのうち２人が、閲覧しているユーザと友達であり（分離度１）、１人が友達の友達である場合、平均ソーシャル距離は１．３３となる。特定の実施形態では、ソーシャルネットワーキング
システムは、ソーシャルネットワーキングシステム上の２人のユーザ間の親密度を表すソーシャル係数を計算するまたは利用することができる。たとえば、ユーザは、チャットしたりメッセージを送信したりソーシャルネットワーキングシステム上で相互作用したりすることが多い友達を含む写真を閲覧する可能性が高い。本開示は、写真における検出済みのユーザと閲覧しているユーザの間のソーシャルネットワーク情報を利用する任意の適切な方法を企図する。特定の実施形態では、このソーシャルネットワーク情報は、エッジ３１６などの、写真と閲覧しているユーザノードとの間のエッジとして表すことができ、このエッジは、写真３００における検出済みのユーザとユーザノード３０７との間の平均ソーシャル距離についての情報を含む。
【００３５】
図４は、特定のモデルまたはプロファイルに対するエンゲージメトリックを計算するための生成モデルを図式的に示す。生成モデルＭは、ユーザノード３０７などの単一ユーザプロファイル、ユーザのグループ、またはノード３０６などのすべてのユーザに対応することができる。したがって、特定の実施形態では、ソーシャルネットワーキングシステムは、すべてのユーザ３０６のための一般化された汎用のモデルならびにソーシャルネットワーキングシステムの各ユーザのためのモデルを有することができる。上記で説明したように、ユーザは、２１歳から２８歳の間のすべての独身男性などの社会人口統計のカテゴリに分類されることができ、ソーシャルネットワーキングシステムは、追跡している各人口統計学的グループのためのモデルを維持することができる。特定の実施形態では、これらのモデルは互いから独立してもよい。特定の実施形態では、これらのモデルは互いに相互依存してもよい。たとえば、すべてのユーザのためのモデルは、ソーシャルネットワーキングシステムのユーザのためのモデルすべての重み付き平均であってよい。本開示は、任意の数のモデルおよび相互依存度を企図する。
【００３６】
特定の実施形態では、エンゲージメトリックは、ベイズ確率によって計算される。教示の目的で、図４のモデルＭは、ユーザノード３０７のためのモデル／プロファイルである。特定の実施形態では、生成モデルは、「潜在的変数モデル」または「原因モデル」とも呼ばれ、多変量データＤのセット、この場合はユーザ３０７が閲覧権限を有する写真Ｄ１〜Ｄｎのセットを含む。特定の実施形態では、ソーシャルネットワーキングシステムは、各種類のユーザについてエンゲージ（関り）の種類ごとに別個のモデルを維持することができる。たとえば、ソーシャルネットワーキングシステムは、データ点とユーザ３０７がコメントした写真の特徴との間にのみリンクを引き、ユーザが所与の写真にコメントする確率のための別個のモデルを生成することができる。特定の実施形態では、リンクの各種類に異なる重みが割り当てられ、たとえば、写真にコメントすることまたは写真について「いいね」と表明することは、単に写真を閲覧することよりも重い要因とされてもよい。教示の目的で、リンクは、閲覧を含む任意の方法のすべての相互作用を含む。多変量データＤは、根本にある原因のセットαに関して説明され得る。図４の生成モデルでは、原因は、写真Ｄ１〜Ｄｎから抽出済みの特徴であり、この例では検出済みの不明な女性３１５、検出済みのユーザノード２１０ｆ、検出済みのオブジェクトノード２１０ｊ、および中の大きさの検出済みの顔３１４である。抽出済みの特徴は、原因が互いにどのように相互作用するかを表す１または複数のリンクによって接続されてもよい。たとえば、不明な女性の顔３１５はグレイグースウォッカ２１０ｊと同じ写真に検出されることが多い可能性がありうる。特定の実施形態では、リンクは（因子分析の場合のように）線形であってよく、より一般的には、リンクは、特徴間でまたは特徴もしくはデータ間で極めて非線形的な相互作用をインスタンス化することができる。特定の実施形態では、データセットＤは動的に更新され、すなわち、ユーザが写真またはマルチメディアオブジェクトをソーシャルネットワーキングシステムにアップロードすると、新たなデータ点Ｄｎが追加され、ユーザが、写真を閲覧する、「いいね」と表明する、コメントするなどによって写真と相互作用すると、写真からその写真と相互作用した１または複数のユーザの特徴への新たなリンクが追加される。
【００３７】
生成モデルには、解決するべき基本的な問題が２つ存在する。１つは、セットＤ内の特定のデータ項目Ｄ１〜Ｄｎを表す特徴の最良のセットを推論することである。もう１つは、データＤのセット全体を説明するための最良のモデルＭを学習することである。第１の問題は知覚性の問題とみなすことができ、第２の問題は適合性の問題である。
【００３８】
特定の実施形態では、所与の１つのデータを説明する原因の最良のセットを推論することは、αに対して事後（ｐｏｓｔｅｒｉｏｒ）を最大にすること（代替えとして、その平均値を算出すること）を必要とする。
【００３９】
【数１】
0005960274.tif 000002
【００４０】
特定の実施形態では、モデルＭは、潜在的原因、事前確率、およびデータを発生させる生成プロセスのセットを指定する。すべてのデータを最もよく説明する特定のモデルＭの学習は、モデルに対する事後分布を最大にすることによって達成され、ベイズの公式によれば、次の通りである。
【００４１】
【数２】
0005960274.tif 000003
【００４２】
特定の実施形態では、計算は、モデルに対する事後において断定的ではなく（ａｇｎｏｓｔｉｃ）、したがって、モデルは、Ｐ（Ｄ｜Ｍ）の尤度、すなわち、ユーザが写真のセット全体に関る確率を最大にする。したがって、ユーザ３０７がすべてのデータに対して写真に関る総確率は、次の通りである。
【００４３】
【数３】
0005960274.tif 000004
【００４４】
ここで、Ｄｉは、個々のデータ項目（たとえば、特定の画像）を示す。したがって、ユーザが個々のデータ項目（すなわち、任意の特定の写真）に関る確率は、次のようにデータに対するすべての可能な特徴を合計することによって得られる。
【００４５】
【数４】
0005960274.tif 000005
【００４６】
言い換えれば、ユーザまたはユーザのセットがモデルＭに対して特定の写真Ｄｉに関る確率は、ある特定の特徴を有する写真にユーザが関る確率に、ユーザがその特定の特徴を有するすべての写真に関る確率を乗算したものの、すべての特徴に対する合計である。特
定の実施形態では、この合計は、計算のより少ない他の関数によって近似されてもよい。本開示では、関りの確率（すなわち「エンゲージメトリック」）を計算する特定の方法について説明するが、任意の適切な数学的方法を用いてよい。特定の実施形態では、遺伝的アルゴリズムを利用することができる。発生観測に基づいて学習モデルを生成する方法が当技術分野において周知である。
【００４７】
図５は、アップロードされた写真またはマルチメディアオブジェクトに対する一般化されたエンゲージメトリックを生成する例示的な方法を示す。特定の実施形態では、一般化されたエンゲージメトリックは、すべてのユーザが特定の写真と相互作用する確率である。モデルＭは、本質的に、すべてのユーザのモデルであり、セットＤは、ソーシャルネットワーキングシステム内のすべての写真のセットである。この確率を計算する計算の複雑度が高いために、一般化されたエンゲージメトリックは、写真のアップロード時に計算され、次いで、１週間などの所定の間隔で更新されてもよい。
【００４８】
工程５０１では、ソーシャルネットワーキングシステムは、マルチメディアオブジェクト（この例では写真）を受信する。当技術分野において周知であるように、ユーザは、従来の有線インターネット接続およびＰＣによって、または携帯電話もしくはタブレットなどのモバイルデバイスを通じた無線セルラー式データネットワークによってなど、さまざまなネットワーク接続によってソーシャルネットワーキングシステムに写真をアップロードすることができる。特定の実施形態では、アップロードされた写真は、ソーシャルネットワーキングシステム上のどのユーザが写真を閲覧することができるか指定するプライバシー設定を有する。特定の実施形態では、生成モデルは、写真の潜在的視聴者対そのエンゲージ度を考慮に入れる。少ない潜在的視聴者を有する写真（すなわち、その写真は、非常に少数の人物に閲覧される）は、当然、非常に低いエンゲージ度を有する。図５は、すべてのユーザに対してエンゲージメトリックを計算する方法について説明するが、図５の方法を適用して、単一のユーザに対してであっても、人工統計学的にグループ化されたユーザのセットに対してであっても、任意のモデルに対するエンゲージメトリックを生成し得ることは容易に理解されるであろう。
【００４９】
工程５０２では、特徴抽出ＡＰＩ１４０は、アップロード済みの画像から、図２に関して論じたさまざまな特徴を抽出する。特定の実施形態では、特徴抽出ＡＰＩ１４０は、アップロードに際して直ちに特徴を抽出し始める。特定の実施形態では、負荷分散アルゴリズムに従って、アップロードされた写真に対して特徴抽出ＡＰＩ１４０を繰り返す。たとえば、多数のユーザが同時に写真をアップロードした場合、特徴抽出ＡＰＩ１４０は、ソーシャルネットワーキングシステムのプロセッサに過度な負担をかけないように、後で写真を待ち行列に入れることができる。
【００５０】
工程５０３では、ソーシャルネットワーキングシステムは、抽出済みの特徴を全体的（グローバル）エンゲージプロファイルの特徴と比較し、工程５０４では、ソーシャルネットワーキングシステムは、全体的エンゲージメトリックを計算する。数学的に、工程５０３および工程５０４は同じ工程内で行われる。ソーシャルネットワーキングシステムは、すべてのユーザを表すモデルＭに基づいて、アップロードされた写真にすべてのユーザがエンゲージする（関る）確率を計算する。
【００５１】
工程５０５では、エンゲージメトリックは、写真と関連して記憶される。特定の実施形態では、エンゲージメトリックは、最新の観測された相互作用またはエンゲージ（関り）に基づいて更新されてもよい。特定の実施形態では、エンゲージメトリックは、実質的にリアルタイムで更新される。特定の実施形態では、エンゲージメトリックは、所定の間隔で周期的に更新される。本開示は、エンゲージメトリックを更新する任意の適切な方法を企図する。
【００５２】
工程５０５では、ソーシャルネットワーキングシステムは、その計算されたエンゲージメトリックに基づいて写真にさまざまなポリシーを適用する。たとえば、エンゲージメトリックが所定の閾値を下回る場合、ソーシャルネットワーキングシステムは、ユーザに対して自分のニュースフィードに写真を示さなくてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、高いエンゲージメトリックを有する写真をユーザのニュースフィードの一番上に押し上げる、または高いエンゲージメトリックを有する写真をアルバムカバーに推奨することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、所定の閾値を超えるエンゲージメトリックを有する写真に対して、ユーザのニュースフィードにおける写真の永続性を増加させてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、所定の閾値を上回るエンゲージメトリックを有する写真を、アップロードしているユーザのプロファイルの異なる部分に推奨することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、後援者を有する記事に対してより高いエンゲージメトリックを有する写真に優先順位を付ける。本開示は、エンゲージメトリックに基づいて写真に対してソーシャルネットワーキングシステムによって実行される任意の適切なポリシーまたはアクションを企図する。
【００５３】
図６は、ビューを要求するユーザの写真に対するエンゲージメトリックに基づいて、１または複数の写真を含むビューを生成する例示的なプロセスを示す。ソーシャルネットワーキングシステムの個々のユーザ間の関心が多岐に亘るため、ソーシャルネットワーキングシステムが各ユーザのブラウズ体験をそのユーザの特定の好みに基づいてパーソナライズすることが望ましい。たとえば、あるユーザは食物のピクチャを連続しておよび頻繁に閲覧することがあるが、別のユーザは食物のピクチャを閲覧することを常に避けることがある。図６のプロセスによって、ソーシャルネットワーキングシステムは、閲覧しているユーザにコンテンツを特に適合させることができる。
【００５４】
工程６０１では、ソーシャルネットワーキングシステムは、コンテンツに対する要求を特定のユーザから受信する。コンテンツは、ニュースフィード、場所のページ、ユーザ自身のプロファイルページ、別のユーザのプロファイルページ、会社のハブページ、ファンページなど、１または複数の写真または１または複数の写真へのリンクを含む任意のウェブコンテンツまたはモバイルウェブコンテンツであってよい。特定の実施形態では、写真のセットから引き出す任意のビューも、写真「を含む」と考えられる。たとえば、一般にユーザが写真のセットを投稿すると、一番最近に投稿された４つの写真が、ユーザの友達に表示するために、ニュースフィード記事に含まれる。ニュースフィードビューはアルバムのすべての写真を含むとは限らないが、ニュースフィードビューは写真のセット全体へのリンクを含むので、ニュースフィードビューは、本願では、アルバムにおける各写真またはマルチメディアオブジェクトを含むと考えられる。
【００５５】
工程６０２では、ソーシャルネットワーキングシステムは、コンテンツに表示されうるすべての写真を識別する。上述したように、すべての写真のそのセットには、写真がそこから取り出される写真セットを含むことができる。別の例として、あるユーザのプロファイルページを閲覧すると、そのユーザにタグが付けられた４つまたは５つの写真が含まれていてもよい。一般的に、これらの写真は時系列に並べられるが、ソーシャルネットワーキングシステムは、そのユーザにタグが付けられた写真のセット全体から取り出すことができる。プロセスは、次いで、識別された各写真に対してループを開始する。
【００５６】
工程６０３では、特徴抽出ＡＰＩ１４０は、工程６０２で識別された写真のセット内の第１の写真の特徴を取得する。このプロセスは、上記で説明した特徴抽出プロセスと実質的に同一である。
【００５７】
工程６０４では、ソーシャルネットワーキングシステムは、抽出した特徴を、要求しているユーザのモデルまたはエンゲージプロファイルの特徴と比較し、工程６０５では、ソーシャルネットワーキングシステムは、特定の写真および特定のユーザモデルＭに対するエンゲージメトリックを生成する。上記で説明したように、数学的に、工程６０４および６０５は同じ工程内で行われる。
【００５８】
工程６０６では、ソーシャルネットワーキングシステムは、エンゲージメトリックがすべての写真に対して計算されたかどうか確認し、計算されていない場合、プロセスは、工程６０７で次の写真を選択し、ループバックして、工程６０３で、その写真に対する特徴を抽出する。プロセスは、すべての写真が得点付けされるまで継続する。
【００５９】
工程６０８では、ソーシャルネットワーキングシステムは、所定のポリシーのセットを適用し、ユーザに表示するために、要求されたビュー／コンテンツを生成する。たとえば、ソーシャルネットワーキングシステムは、ユーザの写真アルバム記事を含むニュースフィードビューを生成することができ、ニュースフィードビューに表示される４つの写真は、所定の期間内にアップロードされた、最も高いエンゲージスコアを有する４つの写真である。したがって、ユーザには、新たな写真がアップロードされたことが知らされるが、個人的に最も関心のある写真が表示される。別の例として、あるユーザが別のユーザのプロファイルを閲覧することを要求すると、エンゲージスコアによる上位４つの写真が、他のユーザのプロファイルの一番上に表示されてもよい。特定の実施形態では、あるユーザが別のユーザのアルバムのすべてのサムネイルビューを閲覧することを要求するとき、エンゲージスコアはアルバムカバーとして使用されてもよい。各アルバムカバーは、そのアルバムの中で個人的に最も関心のある写真を含む。特定の実施形態では、写真は、エンゲージメトリックによって仕分けられてもよい。たとえば、あるユーザが別のユーザのアルバムをクリックすると、写真が、まず、個人的に最も関心のある写真と共に、要求したユーザに表示される。本開示は、エンゲージメトリックに基づく任意の適切なポリシーを企図する。図６の方法の適用によって、ソーシャルネットワーキングシステムは、個々のユーザが閲覧したいと思う写真がより高い頻度で現れ、個々のユーザが通常避ける写真がブラウズ体験から実質上消失するように、個々のユーザのブラウズ体験を調整することができる。
【００６０】
前述の実施形態は、さまざまなネットワーク構成において実装することができるが、以下では、限定する目的ではなく教示の目的で、例示的なネットワーク環境を示す。図７には、例示的なネットワーク環境７００を示す。ネットワーク環境７００は、１または複数のサーバ７２０と１または複数のクライアント７３０を互いに結合するネットワーク７１０を含む。ネットワーク環境７００は、１または複数のサーバ７２０にリンク付けされた１または複数のデータストレージ７４０も含む。特定の実施形態は、ネットワーク環境７００において実装されてもよい。たとえば、ソーシャルネットワーキングシステムフロントエンド１２０は、１または複数のサーバ７２０によってホストされるソフトウェアプログラムに記述されてもよい。たとえば、イベントデータベース１０２は、１または複数のストレージ７４０に記憶されてもよい。特定の実施形態では、ネットワーク７１０は、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部分、または別のネットワーク７１０もしくは２以上のそのようなネットワーク７１０の組み合わせである。本開示は、任意の適切なネットワーク７１０を企図する。
【００６１】
１または複数のリンク７５０は、サーバ７２０またはクライアント７３０をネットワーク７１０に結合する。特定の実施形態では、１または複数のリンク７５０はそれぞれ、１または複数の有線リンク７５０、無線リンク７５０、または光リンク７５０を含む。特定
の実施形態では、１または複数のリンク７５０はそれぞれ、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、インターネットの一部分、または別のリンク７５０もしくは２以上のそのようなリンク７５０の組み合わせを含む。本開示は、サーバ７２０およびクライアント７３０をネットワーク７１０に結合する任意の適切なリンク７５０を企図する。
【００６２】
特定の実施形態では、各サーバ７２０は、単一サーバであってもよいし、複数のコンピュータまたは複数のデータセンタに分けられる分散型サーバであってもよい。サーバ７２０は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、またはプロキシサーバなど、さまざまな種類であってよい。特定の実施形態では、各サーバ７２０は、サーバ７２０によって実装またはサポートされる適切な機能を実行するために、ハードウェア、ソフトウェア、または組込ロジックコンポーネントもしくは２以上のそのようなコンポーネントの組み合わせを含むことができる。
【００６３】
特定の実施形態では、１または複数のデータストレージ７４０は、１または複数のリンク７５０を通じて１または複数のサーバ７２０に通信可能にリンク付けられてもよい。特定の実施形態では、データストレージ７４０は、さまざまな種類の情報を記憶するために使用することができる。特定の実施形態は、サーバ７２０またはクライアント７３０がデータストレージ７４０に記憶された情報を管理する、たとえば、取り出す、修正する、追加する、または削除することを可能にするインタフェースを提供することができる。
【００６４】
特定の実施形態では、各クライアント７３０は、ハードウェア、ソフトウェア、または組込ロジックコンポーネントもしくは２以上のそのようなコンポーネントの組み合わせを含み、かつクライアント７３０によって実装またはサポートされる適切な機能を実行することが可能な、電子デバイスであってよい。たとえば、限定はしないが、クライアント７３０は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子デバイス、または携帯電話であってよい。本開示は、任意の適切なクライアント７３０を企図する。クライアント７３０は、クライアント７３０におけるネットワークユーザがネットワーク７３０にアクセスすることを可能にすることができる。クライアント７３０は、そのユーザが他のクライアント７３０における他のユーザと通信することを可能にすることができる。
【００６５】
クライアント７３０は、マイクロソフトインターネットエクスプローラ（ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ）、グーグルクロム（ＧＯＯＧＬＥ  ＣＨＲＯＭＥ）、またはモジラファイアフォックス（ＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ）などのウェブブラウザ７３２を有することができ、ツールバーもしくはヤフー（ＹＡＨＯＯ）ツールバーなどの、１または複数のアドオン、プラグイン、または他の拡張機能を有することができる。クライアント７３０におけるユーザは、ユニフォームリソースロケータ（ＵＲＬ）またはサーバ７２０にウェブブラウザ７３２を向ける他のアドレスを入力することができ、ウェブブラウザ７３２は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、このＨＴＴＰ要求をサーバ７２０に通信することができる。サーバ７２０は、このＨＴＴＰ要求を受け入れ、このＨＴＴＰ要求に応答する１または複数のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルをクライアント７３０に通信することができる。クライアント７３０は、ユーザに提示するために、サーバ７２０からのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを企図する。本明細書では、必要に応じて、ウェブページに言及する場合、１または複数の対応するウェブページファイル（ブラウザが、ウェブページをレンダリングするために使用することができる）を包含し、その逆も同様である。
【００６６】
図８は、例示的なコンピュータシステム８００を示す。特定の実施形態では、１または複数のコンピュータシステム８００は、本明細書で説明または図示する１または複数の方法の１または複数の工程を実行する。特定の実施形態では、１または複数のコンピュータシステム８００は、本明細書で説明または図示する機能を提供する。特定の実施形態では、１または複数のコンピュータシステム８００上で実行されるソフトウェアは、本明細書で説明もしくは図示する１もしくは複数の方法の１もしくは複数の工程を実行する、または本明細書で説明もしくは図示する機能を提供する。特定の実施形態は、１または複数のコンピュータシステム８００の１または複数の部分を含む。
【００６７】
本開示は、任意の適切な数のコンピュータシステム８００を企図する。本開示は、任意の適切な物理的形態であるコンピュータシステム８００を企図する。限定としてではなく例として、コンピュータシステム８００は、組込型コンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）またはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップコンピュータシステムまたはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、またはこれらのうち２以上の組み合わせであってよい。必要に応じて、コンピュータシステム８００は、１または複数のコンピュータシステム８００を含むことができ、単一であってもよいし、分散型であってもよく、複数のロケーションに分けられてもよく、複数のマシンに分けられてもよく、複数のデータセンタに分けられてもよく、または、１もしくは複数のネットワーク内の１もしくは複数のクラウドコンポーネントを含みうるクラウドに常駐することができる。必要に応じて、１または複数のコンピュータシステム８００は、本明細書で説明または図示する１または複数の方法の１または複数の工程を、実質的な空間的制限または時間的制限なしで実行することができる。限定としてではなく一例として、１または複数のコンピュータシステム８００は、本明細書で説明または図示する１または複数の方法の１または複数の工程を、リアルタイムで、またはバッチモードで、実行することができる。必要に応じて、１または複数のコンピュータシステム８００は、本明細書で説明または図示する１または複数の方法の１または複数の工程を、異なる時刻に、または異なるロケーションで、実行することができる。
【００６８】
特定の実施形態では、コンピュータシステム８００は、プロセッサ８０２と、メモリ８０４と、ストレージ８０６と、入出力（Ｉ／Ｏ）インタフェース８０８と、通信インタフェース８１０と、バス８１２とを含む。本開示では、特定の数の特定の構成要素を特定の配置で有する特定のコンピュータシステムについて説明し図示するが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な配置で有する任意の適切なコンピュータシステムを企図する。
【００６９】
特定の実施形態では、プロセッサ８０２は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するため、プロセッサ８０２は、内部レジスタ、内部キャッシュ、メモリ８０４、またはストレージ８０６から、命令を取り出し（またはフェッチし）、それらの命令を復号して実行し、次いで、１または複数の結果を、内部レジスタ、内部キャッシュ、メモリ８０４、またはストレージ８０６に書込むことができる。特定の実施形態では、プロセッサ８０２は、データ、命令、またはアドレス用の１または複数の内部キャッシュを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ８０２を企図する。限定としてではなく一例として、プロセッサ８０２は、１または複数の命令キャッシュと、１または複数のデータキャッシュと、１または複数の変換索引バッファ（ＴＬＢ：ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）とを含むことができる。命令キャッシュ内の命令は、メモリ８０４またはストレージ
８０６内の命令のコピーであってよく、命令キャッシュは、プロセッサ８０２によるこれらの命令の取り出しを高速化することができる。データキャッシュ内のデータは、プロセッサ８０２で実行される命令が作用する、メモリ８０４またはストレージ８０６内のデータのコピーであってもよいし、プロセッサ８０２で実行される後続の命令によるアクセスのための、またはメモリ８０４もしくはストレージ８０６に書込むための、プロセッサ８０２で実行された前の命令の結果であってもよいし、他の適切なデータであってもよい。データキャッシュは、プロセッサ８０２による読取動作または書込動作を高速化することができる。ＴＬＢは、プロセッサ８０２のための仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ８０２は、データ、命令、またはアドレス用の１または複数の内部レジスタを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ８０２を企図する。必要に応じて、プロセッサ８０２は、１または複数の演算論理ユニット（ＡＬＵ）を含んでもよいし、マルチコアプロセッサであってもよいし、１または複数のプロセッサ８０２を含んでもよい。本開示では、特定のプロセッサについて説明し図示するが、本開示は、任意の適切なプロセッサを企図する。
【００７０】
特定の実施形態では、メモリ８０４は、プロセッサ８０２が実行する命令またはプロセッサ８０２が作用するデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム８００は、ストレージ８０６または別の供給源（たとえば、別のコンピュータシステム８００など）からメモリ８０４に命令をロードすることができる。プロセッサ８０２は、次いで、その命令をメモリ８０４から内部レジスタまたは内部キャッシュにロードすることができる。その命令を実行するため、プロセッサ８０２は、その命令を内部レジスタまたは内部キャッシュから取り出して、その命令を復号することができる。命令の実行中またはその後に、プロセッサ８０２は、１または複数の結果（中間結果であってもよいし、最終結果であってもよい）を内部レジスタまたは内部キャッシュに書込むことができる。プロセッサ８０２は、次いで、それらの結果のうち１または複数をメモリ８０４に書込むことができる。特定の実施形態では、プロセッサ８０２は、１または複数の内部レジスタもしくは内部キャッシュ内または（ストレージ８０６または他の場所ではなく）メモリ８０４内の命令のみを実行し、１または複数の内部レジスタもしくは内部キャッシュ内または（ストレージ８０６または他の場所ではなく）メモリ８０４内のデータのみに作用する。１または複数のメモリバス（それぞれ、アドレスバスおよびデータバスを含むことができる）は、プロセッサ０２をメモリ８０４に結合することができる。バス８１２は、以下で説明するように、１または複数のメモリバスを含むことができる。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）がプロセッサ８０２とメモリ８０４の間に常駐し、プロセッサ８０２によって要求されるメモリ８０４へのアクセスを容易にする。特定の実施形態では、メモリ８０４にはランダムアクセスメモリ（ＲＡＭ）が含まれる。このＲＡＭは、必要に応じて、揮発性メモリであってよい。必要に応じて、このＲＡＭはダイナミック（ＤＲＡＭ）であってもよいし、スタティックＲＡＭ（ＳＲＡＭ）であってもよい。さらに、必要に応じて、このＲＡＭは、シングルポートＲＡＭであってもよいし、マルチポートＲＡＭであってもよい。本開示は、任意の適切なＲＡＭを企図する。メモリ８０４は、必要に応じて、１または複数のメモリ８０４を含むことができる。本開示では、特定のメモリについて説明し図示するが、本開示は、任意の適切なメモリを企図する。
【００７１】
特定の実施形態では、ストレージ８０６は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ８０６は、ＨＤＤ、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうち２以上の組み合わせを含みうる。ストレージ８０６は、必要に応じて、リムーバブルメディアまたは非リムーバブル（すなわち固定）メディアを含みうる。ストレージ８０６は、必要に
応じて、コンピュータシステム８００の内部に存在してもよいし、外部に存在してもよい。特定の実施形態では、ストレージ８０６は、不揮発性のソリッドステートメモリである。特定の実施形態では、ストレージ８０６には、読出専用メモリ（ＲＯＭ）が含まれる。必要に応じて、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書換可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、またはこれらのうち２以上の組み合わせであってよい。本開示は、任意の適切な物理的形態の大容量ストレージ８０６を企図する。ストレージ８０６は、必要に応じて、プロセッサ８０２とストレージ８０６の間の通信を容易にする１または複数のストレージ制御ユニットを含むことができる。必要に応じて、ストレージ８０６は、１または複数のストレージ８０６を含むことができる。本開示では、特定のストレージについて説明し図示するが、本開示は、任意の適切なストレージを企図する。
【００７２】
特定の実施形態では、Ｉ／Ｏインタフェース８０８は、コンピュータシステム８００と１または複数のＩ／Ｏデバイスの間の通信のための１または複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはこれらの両方を含む。コンピュータシステム８００は、必要に応じて、これらのＩ／Ｏデバイスのうちの１または複数を含むことができる。これらのＩ／Ｏデバイスのうちの１または複数は、人間とコンピュータシステム８００の間の通信を可能にすることができる。限定としてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、他の適切なＩ／Ｏデバイス、またはこれらのうち２以上の組み合わせを含みうる。Ｉ／Ｏデバイスは、１または複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイスと、それらのＩ／Ｏデバイス用の任意の適切なＩ／Ｏインタフェース８０８を企図する。必要に応じて、Ｉ／Ｏインタフェース８０８は、プロセッサ８０２がこれらのＩ／Ｏデバイスのうちの１または複数を駆動することを可能にする１または複数のデバイスドライバまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインタフェース８０８は、必要に応じて、１または複数のＩ／Ｏインタフェース８０８を含むことができる。本開示では、特定のＩ／Ｏインタフェースについて説明し図示するが、本開示は、任意の適切なＩ／Ｏインタフェースを企図する。
【００７３】
特定の実施形態では、通信インタフェース８１０は、コンピュータシステム８００と１もしくは複数の他のコンピュータシステム８００または１もしくは複数のネットワークの間の通信（たとえば、パケットベースの通信など）のための１または複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはこれらの両方を含む。限定としてではなく一例として、通信インタフェース８１０は、イーサネット（登録商標）もしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷＩ−ＦＩネットワークなどの無線ネットワークと通信するための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含みうる。本開示は、任意の適切なネットワークと、そのネットワークのための任意の適切な通信インタフェース８１０を企図する。限定としてではなく一例として、コンピュータシステム８００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１もしくは複数の部分、またはこれらのうち２以上の組み合わせと通信することができる。これらのネットワークのうちの１または複数の１または複数の部分は、有線であってもよいし、無線であってもよい。一例として、コンピュータシステム８００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥースＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー式電話ネットワーク（たとえば、グローバルシステムフォーモバイルコミュニケーションズ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔ
ｉｏｎｓ）（ＧＳＭ（登録商標））ネットワークなど）、または他の適切な無線ネットワーク、またはこれらのうち２以上の組み合わせと通信することができる。コンピュータシステム８００は、必要に応じて、これらのネットワークのいずれかのための任意の適切な通信インタフェース８１０を含むことができる。通信インタフェース８１０は、必要に応じて、１または複数の通信インタフェース８１０を含むことができる。本開示では、特定の通信インタフェースについて説明し図示するが、本開示は、任意の適切な通信インタフェースを企図する。
【００７４】
特定の実施形態では、バス８１２は、コンピュータシステム８００の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはこれらの両方を含む。限定としてではなく一例として、バス８１２は、アクセラレーテッドグラフィックスポート（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）（ＡＧＰ）または他のグラフィックスバス、エンハンスドインダストリスタンダードアーキテクチャ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ）（ＨＴ）相互接続、インダストリスタンダードアーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＩＳＡ）バス、インフィニバンド（ＩＮＦＩＮＩＢＡＮＤ）相互接続、ローピンカウント（ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ）（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）（ＰＣＩ）バス、ＰＣＩ−エクスプレス（ＰＣＩ−Ｅｘｐｒｅｓｓ）（ＰＣＩ−Ｘ）バス、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクススタンダーズアソシエーション（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎローカル）（ＶＬＢ）バス、または他の適切なバス、またはこれらのうち２以上の組み合わせを含みうる。バス８１２は、必要に応じて、１または複数のバス８１２を含むことができる。本開示では、特定のバスについて説明し図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
【００７５】
本明細書では、コンピュータ可読記憶媒体に言及する場合、構造を所有する１または複数の非一時的有形のコンピュータ可読記憶媒体を包含する。限定としてではなく一例として、コンピュータ可読記憶媒体は、必要に応じて、半導体ベースの回路または他の集積回路（ＩＣ）（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）など）、ハードディスク、ＨＤＤ、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタル（ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ）カード、ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬドライブ、または他の適切なコンピュータ可読記憶媒体、またはこれらのうち２以上の組み合わせを含みうる。本明細書では、コンピュータ可読記憶媒体への言及は、米国特許法第１０１条の下での特許権保護に適格でない任意の媒体を除外する。本明細書では、コンピュータ可読記憶媒体への言及は、信号伝送の一時的形態（電気信号または電磁信号それ自体の伝播など）が米国特許法第１０１条の下での特許権保護に適格でない範囲内において、この信号伝送の一時的形態を除外する。非一時的コンピュータ可読記憶媒体は、必要に応じて、揮発性であってもよいし、不揮発性であってもよいし、揮発性と不揮発性の組み合わせであってもよい。
【００７６】
本開示は、任意の適切なストレージを実装する１または複数のコンピュータ可読記憶媒体を企図する。特定の実施形態では、コンピュータ可読記憶媒体は、必要に応じて、プロセッサ８０２の１もしくは複数の部分（たとえば、１または複数の内部レジスタまたは内部キャッシュなど）、メモリ８０４の１もしくは複数の部分、ストレージ８０６の１もし
くは複数の部分、またはこれらの組み合わせを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、ＲＡＭまたはＲＯＭを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、揮発性メモリまたは永続性メモリを実装する。特定の実施形態では、１または複数のコンピュータ可読記憶媒体は、ソフトウェアを具現化する。本明細書では、ソフトウェアへの言及は、必要に応じて、１または複数のアプリケーション、バイトコード、１または複数のコンピュータプログラム、１または複数の実行ファイル、１または複数の命令、ロジック、マシンコード、１または複数のスクリプト、またはソースコードを包含することができ、その逆も同様である。特定の実施形態では、ソフトウェアは、１または複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組み合わせで記述または表された任意の適切なソフトウェアを企図する。特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表される。特定の実施形態では、ソフトウェアは、たとえば、Ｃ、Ｐｅｒｌ、またはその適切な拡張機能などのハイレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアは、アセンブリ言語（またはマシンコード）などのローレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアはＪＡＶＡ（登録商標）で表される。特定の実施形態では、ソフトウェアは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、または他の適切なマークアップ言語で表される。
【００７７】
上記で説明したクライアント側機能は、実行されるとプログラマブルプロセッサに上記で説明した動作を実装させるコンピュータ可読記憶媒体上に記憶された一連の命令として実装され得る。クライアントデバイス２５０は、さまざまな異なるハードウェアおよびコンピューティングシステムにおいて実装されてもよいが、図９は、さまざまな特定の実施形態に応じた、例示的なコンピューティングプラットフォーム９０２の主要構成要素の概略図を示す。マルチポイント感知デバイスは、一般的にコントローラ９０４を含み、コントローラ９０４は、命令を実行するように、かつコンピューティングプラットフォームに関連付けられた動作を実行するように構成されたマイクロコントローラまたは１もしくは複数のプロセッサからなりうる。さまざまな実施形態では、コントローラ９０４は、シングルチップとして実装されてもよいし、複数のチップとして実装されてもよいし、１または複数の集積回路およびプリント回路基板を含む他の電気構成要素として実装されてもよい。コントローラ９０４は、命令、データ、またはコンピュータアドレスを一時的にローカルに記憶するためのキャッシュメモリユニットを任意選択で含むことができる。例として、メモリから取り出された命令を使用して、コントローラ９０４は、コンピューティングプラットフォーム９０２の構成要素の間で入出力されたデータの受信および操作を制御することができる。
【００７８】
コントローラ９０４は、適切なオペレーティングシステムと共に、コンピュータコードの形をした命令を実行し、データを生成および使用するように作動することができる。オペレーティングシステム、他のコンピュータコード（以下で説明する制御クライアント９０７を含む）、またはデータは、コントローラ９０４に動作可能に結合されたメモリブロック９０６の内部に物理的に記憶されてもよい。メモリブロック９０６は、１または複数の記憶媒体を包含し、一般的に、コンピューティングプラットフォーム９０２によって使用されるコンピュータコード（たとえば、ソフトウェアまたはファームウェア）およびデータを記憶する場所を提供する。メモリブロック９０６は、例として、コントローラ９０４に双方向に結合されるメモリのさまざまな適切な形態の中でもとりわけソリッドステートハードディスクドライブ（ＨＤＤ）の形式の、１または複数の固定ストレージデバイスを含むこともある。情報はまた、必要なときにマルチポイント感知デバイスにロードまたはインストールされるリムーバブル記憶媒体上に存在してもよい。
【００７９】
コントローラ９０４はまた、一般的に、グラフィックス制御、ビデオインタフェース、
入力インタフェース、出力インタフェース、およびストレージインタフェース、およびネットワークインタフェースなどのさまざまなインタフェースに結合され、これらのインタフェースは適切なデバイスに結合される。特定の実施形態では、コントローラ９０４は入力構造体９１４に接続されることができ、接触感知機構がディスプレイ９１６に関連して設けられるタッチスクリーンなどの場合、ディスプレイ９１６を一緒に設けることができる。そのような実施形態では、ユーザは、接触感知機構を通じて、表示されるインタフェース要素を選択するまたはこれと相互作用することができる。このようにして、表示されるインタフェースは相互作用機能を提供することができ、ユーザがディスプレイ９１６に接触することによって表示されるインタフェースをナビゲートすることが可能になる。
【００８０】
電気信号（たとえばアナログ）は、マイクロホン９１０によって生成され、イヤホン９１２に供給されてもよい。コントローラ９０４は、入力構造体９１４から命令信号を受信し、ディスプレイ９１６の動作を制御することができる。例を挙げると、ディスプレイ９１６には、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、光干渉変調器ディスプレイ（ＩＭＯＤ）、または他の任意の適切なディスプレイ技術を組み込むことができる。音声信号は、ラジオインタフェース９２０またはマイクロホン９２４などの音声入力インタフェースを通じてコントローラ９０４の制御下で信号を処理するように構成されたコーデック９２２に接続されうるアンテナ９１７によって、送信および受信されてもよい。加えて、マルチポイント感知デバイスは、電源９３２によって電力を供給されてもよい。
【００８１】
コンピューティングプラットフォーム９０２は、コントローラ９０４に動作可能に結合された１または複数のユーザ入力デバイス９３４（入力構造体９１４とは異なる）も含むことができる。一般的に、入力デバイス９３４は、データ、コマンド、および応答を外部からマルチポイント感知デバイスへと転送するように構成される。例を挙げると、モバイルデバイスは、キーボードまたはマウスを含むことができる。入力デバイス９３４は、１または複数のハードボタンも含むことができる。
【００８２】
ディスプレイデバイス９１６は、一般的に、コンピューティングプラットフォーム９０２のユーザとオペレーティングシステムまたはモバイルデバイス上で実行されているアプリケーション（複数可）との間の視覚的インタフェースを使用する簡単な方法を提供するグラフィカルユーザインタフェース（ＧＵＩ）を表示するように構成される。一般的に、ＧＵＩは、プログラム、ファイル、および動作に関する選択肢をグラフィカル画像付きで提示する。動作中に、ユーザは、機能およびそれに関連するタスクを開始するために、ディスプレイ９１６上に表示されるさまざまなグラフィカル画像を選択して作動させることができる。
【００８３】
本明細書では、「または（もしくは）」は、別段の指示がない限り、または文脈によって指示されない限り、排他的ではなく包含的である。したがって、本明細書では、「ＡまたはＢ」は、別段の指示がない限り、または文脈によって指示されない限り、「Ａ、Ｂ、または両方」を意味する。さらに、「および」は、別段の指示がない限り、または文脈によって指示されない限り、共同かつ別個である。したがって、本明細書では、「ＡおよびＢ」は、別段の指示がない限り、または文脈によって指示されない限り、「共同でまたは別個にＡおよびＢ」を意味する。
【００８４】
本開示は、当業者であれば理解するであろう本明細書における例示的な実施形態に対するあらゆる変更、置換、変形、改変、および修正を包含する。同様に、必要に応じて、添付の特許請求の範囲は、当業者であれば理解するであろう本明細書における例示的な実施形態に対するあらゆる変更、置換、変形、改変、および修正を包含する。さらに、添付の特許請求の範囲において、特定の機能を実行するように適合された、配置された、可能で
ある、構成された、可能にする、または動作可能である装置またはシステムまたは装置もしくはシステムの構成要素に言及する場合、その装置、システム、または構成要素がそのように適合されている、配置されている、可能である、構成される、可能にされている、動作可能、または動作的である限り、その装置、システム、構成要素またはその特定の機能が起動されているか否かにかかわらず、有効であるか否かにかかわらず、またはロックされているか否かにかかわらず、これらを包含する。
【００８５】
本発明の実施形態の前述の説明は、説明の目的で提示されており、網羅的に述べることや、本発明を開示された厳密な形態に限定することは意図されていない。上記の開示に照らして多くの修正および変形が可能であることは、当業者であれば理解されるであろう。たとえば、前述の実施形態について、ソーシャルネットワーキングシステムの文脈で説明してきたが、本発明がたとえウェブサイトを通じて提供されなくても、任意の電子的なソーシャルネットワークサービスで使用されうることは、当業者には明らかであろう。ソーシャルネットワーキング機能を提供するコンピュータベースのシステムは、たとえば、電子メール、インスタントメッセージング、または他の形態のピアツーピア通信、およびユーザ間で通信するための他の技法に依存するとしても、本発明に従って使用することができる。したがって、本発明はいかなる特定の種類の通信システム、ネットワーク、プロトコル、フォーマットまたはアプリケーションにも限定されない。
【００８６】
この説明のいくつかの箇所で、情報に関する動作のアルゴリズムおよび記号的表現に関して本発明の実施形態を説明している。これらのアルゴリズムに関する説明および表現は、動作内容を他の当業者に効率的に伝達するために、データ処理技術の当業者によって一般的に使用される。これらの動作は機能的、計算論的、または論理的に説明されているが、コンピュータプログラムまたは等価な電気回路、マイクロコードなどによって実装され得ることを理解されたい。さらに、これらの動作の配置について、普遍性を失うことなく、モジュールとして言及することは、便利であることがわかっている。説明した動作および関連モジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせで具現化されてもよい。
【００８７】
本明細書で説明する工程、動作、またはプロセスのいずれも、１または複数のハードウェアまたはソフトウェアモジュールによって、単独で、または他のデバイスと組み合わせて実行または実装されてもよい。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体からなるコンピュータプログラム製品によって実装され、コンピュータプログラムコードは、説明した工程、動作、またはプロセスのいずれかまたはすべてを実行するためのコンピュータプロセッサによって実行されてもよい。本発明の実施形態はまた、本明細書の動作を実行するための装置に関してもよい。この装置は、要求される目的のために特別に構築されてもよいし、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または再構成される汎用コンピューティングデバイスを含み得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合された、電子命令を記憶するのに適した有形のコンピュータ可読記憶媒体または任意の種類の媒体に記憶されてもよい。さらに、本明細書で言及されるコンピューティングシステムのいずれも、単一プロセッサを含んでもよいし、計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。
【００８８】
前述のプロセスおよび機構は、多種多様のネットワークおよびコンピューティング環境において多種多様の物理的システムによって実装されることが可能であるが、以下で説明するサーバまたはコンピューティングシステムは、限定する目的ではなく教示の目的で、例示的なコンピューティングシステムアーキテクチャを提供する。
【００８９】
本発明について、特定の実施形態に関して説明してきた。たとえば、本発明の実施形態
について、ソーシャルネットワーキングシステムと共に動作すると説明してきたが、本発明は、電子メールホスティングサイトなど、ユーザ間のメッセージの通信を可能にする任意の通信設備と共に使用することが可能である。他の実施形態は、当業者には明らかであろう。したがって、本発明は、添付の特許請求の範囲によって示される場合を除き、制限されることを意図したものではない。
【００９０】
最後に、本明細書で使用する用語は、主に読みやすさおよび教育の目的で選択したものであり、本発明の主題を説明するまたは制限するために選択されていない可能性がある。したがって、本発明の範囲は、この詳細な説明によって限定されず、むしろ、本明細書に基づく出願上で公表されるすべての請求項によって限定されることが意図されている。したがって、本発明の実施形態の開示は、以下の特許請求の範囲に記載される本発明の範囲の例示を意図したものであり、限定するものではない。
【図１】
0005960274.tif 000006
【図２】
0005960274.tif 000007
【図３】
0005960274.tif 000008
【図４】
0005960274.tif 000009
【図５】
0005960274.tif 000010
【図６】
0005960274.tif 000011
【図７】
0005960274.tif 000012
【図８】
0005960274.tif 000013
【図９】
0005960274.tif 000014