(57)【特許請求の範囲】
【請求項１】
システムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに処理を実行させるための命令を記憶するメモリであって、前記少なくとも１つのプロセッサに、
複数の画像クラスに関連付けられた画像分類器をトレーニングするために画像が選択される画像群のサンプルセットを受信すること、前記サンプルセット内の少なくとも１つの画像が１つ又は複数のソーシャルキューに関連付けられ、前記１つ又は複数のソーシャルキューは、ソーシャルネットワーキングシステムでの前記少なくとも１つの画像の生成者またはタグ付け者のうちの少なくとも一方の対話に基づく生成者またはタグ付け者のうちの少なくとも一方の信頼性を含み、
前記１つ又は複数のソーシャルキューに基づいて、前記サンプルセット内の少なくとも１つの画像の前記複数の画像クラスのある画像クラスとの相関をスコア付けすること、
前記複数の画像クラスの各画像クラスは、オブジェクト、活動、または概念の描写に関連付けられており、
前記スコア付けすることは、前記少なくとも１つの画像が前記画像クラスを描写する程度を示すスコアを生成することを含み、
前記スコア付けに基づいて、前記サンプルセットから前記画像分類器をトレーニングする画像群のトレーニングセットを決定することを実行させるための命令を記憶する前記メモリとを備えるシステム。
【請求項２】
前記画像クラスを指定することを更に備える請求項１に記載のシステム。
【請求項３】
前記決定することは、前記スコア付けに基づいて前記画像群のサンプルセットの各画像をランク付けすることを含む、請求項１に記載のシステム。
【請求項４】
前記決定することは、前記画像群のサンプルセットのトップスコアサブセットを選択することを含む、請求項１に記載のシステム。
【請求項５】
前記トップスコアサブセットは、前記画像群のトレーニングセットである、請求項４に記載のシステム。
【請求項６】
前記画像群のトレーニングセットに基づいて前記画像分類器をトレーニングすることを更に備える請求項１に記載のシステム。
【請求項７】
前記画像クラスに関連付けられた視覚的パターンテンプレートを生成することを更に備える請求項１に記載のシステム。
【請求項８】
前記画像分類器は、バッグオブビジュアルワード画像分類技法又はニューラルネットワーク画像分類技法を使用するように構成されている、請求項１に記載のシステム。
【請求項９】
画像群の評価セットが前記画像クラスに相関する程度を特定することを更に備える請求項１に記載のシステム。
【請求項１０】
前記画像群の評価セットが前記画像群のサンプルセットと異なる、請求項９に記載のシステム。
【請求項１１】
前記画像群の評価セットが前記画像群のサンプルセットよりも大きい画像セットを含む、請求項９に記載のシステム。
【請求項１２】
前記画像群の評価セットの各画像の相関を、前記画像クラスに関連付けられた視覚的パターンテンプレートによりスコア付けすることを更に備える請求項９に記載のシステム。
【請求項１３】
前記画像群の評価セットの各画像の相関の前記スコア付けに基づいて、前記評価セットの各画像をランク付けすることを更に備える請求項１２に記載のシステム。
【請求項１４】
前記画像群の評価セットのトップスコアサブセットを前記画像クラスに関連付けることを更に備える請求項１２に記載のシステム。
【請求項１５】
前記１つ又は複数のソーシャルキューが１つ又は複数の画像タグを含む、請求項１に記載のシステム。
【請求項１６】
画像に関連付けられた前記１つ又は複数の画像タグの総数の中から特定の画像タグのインスタンス数を特定することを更に備える請求項１５に記載のシステム。
【請求項１７】
前記１つ又は複数のソーシャルキューは、前記画像群のサンプルセットの画像に関連付けられたロケーションデータ又は前記画像群のサンプルセットの前記画像のアップロード者、タグ付け者、若しくは所有者の識別情報のうちの１つ又は複数を含む、請求項１に記載のシステム。
【請求項１８】
前記１つ又は複数のソーシャルキューはソーシャルネットワーキングシステムによって受信される、請求項１に記載のシステム。
【請求項１９】
コンピュータ実施方法であって、
コンピュータシステムにより、複数の画像クラスに関連付けられた画像分類器をトレーニングするために画像が選択される画像群のサンプルセットを受信すること、前記サンプルセット内の少なくとも１つの画像が１つ又は複数のソーシャルキューに関連付けられ、前記１つ又は複数のソーシャルキューは、ソーシャルネットワーキングシステムでの前記少なくとも１つの画像の生成者またはタグ付け者のうちの少なくとも一方の対話に基づく生成者またはタグ付け者のうちの少なくとも一方の信頼性を含み、
前記コンピュータシステムにより、前記１つ又は複数のソーシャルキューに基づいて、前記サンプルセット内の少なくとも１つの画像の前記複数の画像クラスのある画像クラスとの相関をスコア付けすること、
前記複数の画像クラスの各画像クラスは、オブジェクト、活動、または概念の描写に関連付けられており、
前記スコア付けすることは、前記少なくとも１つの画像が前記画像クラスを描写する程度を示すスコアを生成することを含み、
前記コンピュータシステムにより、前記スコア付けに基づいて、前記サンプルセットから前記画像分類器をトレーニングする画像群のトレーニングセットを決定することを備えるコンピュータ実施方法。
【請求項２０】
実行時にコンピュータシステムにコンピュータ実施方法を実行させるコンピュータ実行可能命令を記憶するコンピュータ記憶媒体であって、前記コンピュータ実施方法は、
複数の画像クラスに関連付けられた画像分類器をトレーニングするために画像が選択される画像群のサンプルセットを受信すること、前記サンプルセット内の少なくとも１つの画像が１つ又は複数のソーシャルキューに関連付けられ、前記１つ又は複数のソーシャルキューは、ソーシャルネットワーキングシステムでの前記少なくとも１つの画像の生成者またはタグ付け者のうちの少なくとも一方の対話に基づく生成者またはタグ付け者のうちの少なくとも一方の信頼性を含み、
前記１つ又は複数のソーシャルキューに基づいて、前記サンプルセット内の少なくとも１つの画像の前記複数の画像クラスのある画像クラスとの相関を画像クラスによりスコア付けすること、
前記複数の画像クラスの各画像クラスは、オブジェクト、活動、または概念の描写に関連付けられており、
前記スコア付けすることは、前記少なくとも１つの画像が前記画像クラスを描写する程度を示すスコアを生成することを含み、
前記スコア付けに基づいて、前記サンプルセットから前記画像分類器をトレーニングする画像群のトレーニングセットを決定することを備える、コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術分野は、ソーシャルネットワークの分野に関する。より詳細には、技術分野は、ソーシャルネットワークでの画像分類技法に関する。
【背景技術】
【０００２】
ソーシャルネットワークは、メンバを互いに結び付けるインタラクティブでコンテンツ豊富なオンラインコミュニティを提供し得る。ソーシャルネットワークのメンバは、互いにどのように関連するかを示し得る。例えば、ソーシャルネットワークのメンバは、友人、家族、仕事関係者、若しくは互いのフォロワーであることを示し得、又はメンバは、互いへの何らかの他の関係を指定することができる。ソーシャルネットワークにより、メンバは互いに伝言を送るか、又はオンラインコミュニティにメッセージを掲示することができ得る。
【０００３】
ソーシャルネットワークにより、メンバが互いにコンテンツを共有することも可能になり得る。例えば、メンバは、多数のプラットフォームにわたって見ることができるインタラクティブフィードを含む１つ又は複数のページを作成又は使用することができる。ページは、メンバがソーシャルネットワークの特定のメンバと共有しようとするか、又はソーシャルネットワーク全般に公開しようとする画像、ビデオ、及び他のコンテンツを含み得る。メンバは、ソーシャルネットワークを用いてコンテンツを他の方法で共有することもできる。画像の場合、例えば、メンバは、画像を画像ボードに公開し得、又はオンラインコミュニティによる検索に画像を利用可能にし得る。
【発明の概要】
【０００４】
システムは、少なくとも１つのプロセッサと、プロセッサに処理を実行させるための命令を記憶するメモリとを含み得る。命令は、１つ又は複数のソーシャルキューが各画像に関連付けられた画像群のサンプルセットを受信することをプロセッサに実行させる。画像に関連付けられた１つ又は複数のソーシャルキューに基づいて、サンプルセット内の各画像の相関が画像クラスによりスコア付けされる。スコア付けに基づいて、分類器をトレーニングする画像群のトレーニングセットがサンプルセットから決定され得る。
【０００５】
幾つかの実施形態では、画像クラスは指定され得る。幾つかの実施形態では、決定することは、スコア付けに基づいてサンプルセットからの各画像をランク付けすることを含み得る。決定することは、画像群のサンプルセットのトップスコアサブセットを選択することを含み得る。トップスコアサブセットは画像群のトレーニングセットであり得る。
【０００６】
様々な実施形態では、分類器が画像群のトレーニングセットに基づいてトレーニングされ得る。画像クラスに関連付けられた視覚的パターンテンプレートが生成され得る。分類器は、バッグオブビジュアルワード（bag of visual words）画像分類技法又はニューラルネットワーク画像分類技法を使用するように構成され得る。
【０００７】
幾つかの実施形態では、画像群の評価セットが画像クラスに相関する程度が特定され得る。画像群の評価セットは、画像群のサンプルセットと異なり得る。画像評価セットは、画像群のサンプルセットよりも大きい画像セットを含み得る。
【０００８】
様々な実施形態では、画像群の評価セットの各画像の相関が、画像クラスに関連付けられた視覚的パターンテンプレートによりスコア付けされ得る。評価セットの各画像は、画像群の評価セットの各画像の相関のスコア付けに基づいてランク付けされ得る。画像群の評価セットのトップスコアサブセットは画像クラスに関連付けられ得る。
【０００９】
幾つかの実施形態では、１つ又は複数のソーシャルキューは、１つ又は複数の画像タグを含み得る。画像に関連付けられた１つ又は複数の画像タグの総数の中から、特定の画像タグのインスタンス数が特定され得る。
【００１０】
幾つかの実施形態では、１つ又は複数のソーシャルキューは、画像群のサンプルセットの画像に関連付けられたロケーションデータ又は画像群のサンプルセットの画像のアップロード者、タグ付け者、若しくは所有者の識別情報のうちの１つ又は複数を含み得る。様々な実施形態では、１つ又は複数のソーシャルキューは、ソーシャルネットワーキングシステムによって受信され得る。
【００１１】
コンピュータ実施方法は、コンピュータシステムにより、画像群のサンプルセットを受信することを含み得る。サンプルセット内の各画像には１つ又は複数のソーシャルキューが関連付けられる。本方法は、コンピュータシステムにより、画像に関連付けられた１つ又は複数のソーシャルキューに基づいて、サンプルセット内の各画像の相関を画像クラスによりスコア付けすることを含み得る。本方法は、コンピュータシステムにより、スコア付けに基づいて、分類器をトレーニングする画像群のトレーニングセットをサンプルセットから決定することも含み得る。
【００１２】
実行時にコンピュータシステムにコンピュータ実施方法を実行させるコンピュータ実行可能命令を記憶するコンピュータ記憶媒体であって、コンピュータ実施方法は、１つ又は複数のソーシャルキューが各画像に関連付けられた画像群のサンプルセットを受信することを備える。本方法は、画像に関連付けられた１つ又は複数のソーシャルキューに基づいてサンプルセット内の各画像の相関を画像クラスによりスコア付けすることを含み得る。本方法は、スコア付けに基づいて、分類器をトレーニングする画像群のトレーニングセットをサンプルセットから決定することを含むこともできる。
【００１３】
他の特徴及び実施形態は、添付図面及び以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【００１４】
【図１】幾つかの実施形態によるコンテキスト画像分類システムの例を示す。
【図２Ａ】幾つかの実施形態による画像分類モジュールの例を示す。
【図２Ｂ】幾つかの実施形態による画像分類モジュールの例を示す。
【図３】幾つかの実施形態による画像分類トレーニングモジュールの例を示す。
【図４】幾つかの実施形態による画像分類評価モジュールの例を示す。
【図５】幾つかの実施形態による分類器の例を示す。
【図６】幾つかの実施形態による画像を分類するプロセスの例を示す。
【図７】幾つかの実施形態による分類器をトレーニングするプロセスの例を示す。
【図８】幾つかの実施形態による画像を分類するプロセスの例を示す。
【図９】幾つかの実施形態による、画像グループに適用されるコンテキスト生成される画像フィルタのプレビューの例を示す。
【図１０】幾つかの実施形態による、画像グループに適用されるコンテキスト生成される画像フィルタのプレビューの例を示す。
【図１１】幾つかの実施形態による、ソーシャルネットワーキングシステム内のコンテキスト画像分類システムのネットワーク図の例を示す。
【図１２】幾つかの実施形態による、本明細書に記載される実施形態の１つ又は複数の実施に使用され得るコンピュータシステムの例を示す。
【発明を実施するための形態】
【００１５】
図面は、単なる例示を目的として、本発明の様々な実施形態を示し、図面は同様の参照符号を使用して同様の要素を識別する。以下の考察から、図面に示される構造及び方法の代替の実施形態が、本明細書に記載される原理から逸脱せずに利用され得ることを当業者は容易に認識し得る。
【００１６】
［コンテキストキューの相関付けによる画像分類］
ソーシャルネットワーキングシステムは、コンテンツを生成し、友人と共有する能力をユーザに提供し得る。ソーシャルネットワーキングシステムの写真共有サービスのユーザは、画像（例えば、静止画像、ミーム）、ビデオ、又はインタラクティブコンテンツをモバイル電話で捕捉し、コンテンツをオンライン友人と共有することを楽しみ得る。同様に、ユーザは、例えば、インタラクティブフィードをホームページにアップデートすることにより、友人とコンテンツを共有することを楽しみ得る。
【００１７】
ソーシャルネットワーキングシステムは、コンテンツのアイテムについての情報又はコンテンツについての属性を示し、識別し、分類し、ラベル付けし、説明し、又は他の方法で提供する能力を提供又はサポートすることもできる。そのような情報を示す一方法は、コンテンツ又はコンテンツの属性の主題を識別するか、又は他の方法で関連し得るタグを通してである。そのような情報を示す別の方法は、アップロードのロケーション又はコンテンツが捕捉された場所を識別するユーザアップロードコンテンツの全地球測位システム（ＧＰＳ）座標を通してである。本明細書により詳細に説明するように、ソーシャルネットワーキングシステムにおいてコンテンツについての情報を示す多くの他の方法がある。タグ（例えば、ハッシュタグ又は他のメタデータタグ）及びＧＰＳシステム座標を含め、多くのそのようなインジケータは、非視覚的であり、コンテンツ内の視覚的データの自動分析に基づいていない。
【００１８】
特定の状況では、非視覚的インジケータは、主観的であり得、潜在的にミスリードするおそれがある。例えば、コンテンツ生成器が各自のコンテンツに適用すると選択したタグは、コンテンツ生成器の視点からコンテンツの主題を記述し得るが、タグは、他の視点から誤記述であり、又は無関係と判断され得る。例えば、ハロウィンでキャットウーマンの格好をした自分の写真を掲示するユーザは、「＃猫」として写真をタグ付けし得るが、写真は家猫を含まない。「パリ」という名前の犬の写真を掲示するユーザは、タグ「＃パリ」で写真をタグ付けし得るが、写真はフランスのパリを示していない。スーパーボウルサンデーにニューオーリンズのスーパーボウルで捕捉した家族の画像を掲示するユーザは、画像がスーパーボウルで捕捉されたことを示すＧＰＳ座標及び／又はタイムスタンプを有し得るが、画像自体の内容はフットボールの試合に関連しないことがある。
【００１９】
非視覚的インジケータの主観性は、ソーシャルネットワーキングシステムのユーザが、多種多様なコンテンツをクリエイティブに表現し共有するのに役立つが、非視覚的インジケータの主観性は、写真等のユーザアップロード画像の検索を難しくすることが多い。例えば、「猫」についてソーシャルネットワーキングシステムに掲示された画像を検索する試みは、ハロウィンでキャットウーマンのコスチュームを着たユーザの画像を明らかにし得る。フランスのパリのエッフェル塔の画像のグラフィカル検索を実行する試みは、「パリ」という名前の犬の画像に繋がり得る。スーパーボウルの写真を検索する試みは、フットボールの試合の目撃談を探している人物にとってあまり関連がないことがあるファンの家族の個人的な写真を明らかにし得る。ある意味では、これらの例で画像に関連付けられた非視覚的インジケータは、関連付けられた画像の内容を正確に反映しないことがあるという点で「ノイズ的」である。ソーシャルネットワーキングシステム内のユーザアップロードコンテンツを正確に検索することが望まれる。
【００２０】
図１は、幾つかの実施形態によるコンテキスト画像分類システム１０２の例を示す。コンテキスト画像分類システム１０２は、ソーシャルネットワーキングシステムに組み込まれ得、その例は図１１に与えられる。図１の例では、コンテキスト画像分類システム１０２は、画像分類モジュール１０４及び画像適用モジュール１０６を含み得る。
【００２１】
画像分類モジュール１０４は、コンテンツ及びコンテンツの視覚的属性に関連付けられたコンテキストキューに基づいて、コンテンツの主題を認識し得る。コンテンツは、例えば、画像、ミーム、ビデオ、インタラクティブ視聴覚材料等を含み得る。視覚的属性は、画像内の視覚的パターン又はコンテンツに示された主題の特徴的属性を反映した画像セグメントを含み得る。視覚的属性は、例えば、外観、色、形状、レイアウト等の１つ又は組合せに基づき得る。
【００２２】
コンテキストキューは、コンテンツに示された主題の非視覚的インジケータを含み得る。コンテキストキューは、コンテンツの少なくとも一部の主題を反映又は示唆し得る。幾つかの実施形態では、コンテキストキューはコンテンツタグを含み得る。コンテキストキューは、ソーシャルキュー等のコンテンツ内の主題の他のタイプの非視覚的インジケータを含むこともできる。限定ではなく例として、コンテキストキューは、画像又はユーザのデジタルデバイスの全地球測位システム（ＧＰＳ）座標、指定されたタグ以外のタグの数、指定されたタグが一連のタグ内で発生する程度、一連のタグ内の指定されたタグの順番、コンテンツのタグ付け者（例えば、文字列をコンテンツに関連付けるエンティティ）の識別情報、コンテンツのアップロード者（例えば、ソーシャルネットワーキングシステムのデータストアに記憶されるコンテンツを提供するエンティティ）の識別情報、コンテンツの所有者の識別情報、コンテンツのアップロード時刻、タグ付け者（又はアップロード者又は所有者）のコネクション及びコネクションのタイプ（例えば、友人）、タグ付け者（又はアップロード者又は所有者）のステータス又はプロフィール、コンテンツに関連付けられたメタデータ、所与のタイプのコンテンツを閲覧するか、又は好きな人々の識別子、交換可能イメージファイル（ＥＸＩＦ:Exchangeable Image File）情報等を含み得る。
【００２３】
幾つかの実施形態では、画像分類モジュール１０４は、画像群のサンプルセットから収集されたコンテキストキューに基づいて画像クラスの視覚的属性を認識するように、分類器をトレーニングし得る。画像群のサンプルセットは、分類器をトレーニングするトレーニングセットが選択される画像群を含み得る。画像群のサンプルセットは、分類器による正確な結果を保証するのに十分に多数の画像を含み得る。分類器は、コンテンツの各アイテムに、コンテンツが特定の画像クラス内に入る程度に対応する統計学的スコアを割り当て得る。幾つかの実施形態では、分類器は、階層分類器、線形分類器、又は他の分類器を組み込み得る。分離器の例を図５に提供する。幾つかの実施形態では、分類器は、まず、ソーシャルネットワーキングシステムによって保持される画像の選択されたサブセットに基づいてトレーニングされ得る。分類器は、様々な状況下で再トレーニングされ得る。例えば、分類器は、選択された頻度で定期的に又は画像が分類器に提供される際、非定期的に再トレーニングされ得る。別の例として、分類器は、多数の画像がソーシャルネットワーキングシステムにアップロードさせる可能性が高いイベント（例えば、スーパーボウル）等の特定のイベントの発生時に再トレーニングされ得る。更に別の例として、分類器は、ソーシャルネットワーキングシステムが閾値数の新しい画像を受信する場合、再トレーニングされ得る。これら及び他の状況での再トレーニングは、画像クラスの視覚的属性を認識する分類器の能力を改善することができる。
【００２４】
画像クラスは、例えば、物体（例えば、猫、車、人、財布等）、ブランド又はブランドに関連付けられた物体（例えば、コカコーラ（Coca-Cola）（商標登録）、フェラーリ（Ferrari）（商標登録））、プロスポーツチーム（例えば、ゴールデンステートウォリアーズ（Golden State Warriors）（商標登録）、ロケーション（例えば、エベレスト山）、アクティビティ（例えば、水泳）、語句又は概念（例えば、赤いドレス、幸せ）、及びコンテンツに関連付けることができる任意の他のこと、行動、又は観念を含み得る。本明細書に提供される多くの例は、単一の「画像クラス」を参照し得るが、画像クラスが、物体、ブランド、プロスポーツチーム、ロケーション等の混合を含む複数の画像クラス又は１つ若しくは複数の画像クラスを参照し得ることに留意する。
【００２５】
幾つかの実施形態では、画像分類モジュール１０４は、トレーニングされた分類器を使用して、画像群の評価セットの視覚的属性を画像クラスの視覚的属性と比較し、画像群の評価セット内の視覚的属性が、画像クラスの視覚的属性に十分に相関付けることができるか否かを判断し得る。画像群の評価セットは、分類器による分類に選択された画像群を含み得る。様々な実施形態では、画像群の評価セットは、データストア内の画像の全て若しくは部分又はソーシャルネットワーキングシステム内の画像の全て若しくは部分を含み得る。実施形態では、分類器は、機械学習等の任意の適する技法によってトレーニングされ得る。
【００２６】
様々な実施形態では、画像分類モジュール１０４は、分類されたコンテンツを画像適用モジュール１０６に提供し得る。分類されたコンテンツは、分類器によってランク付けされ、且つ／又はスコア付けされたコンテンツを含み得る。逆に、未処理のコンテンツ又は未分類のコンテンツは、分類器によってランク付けされ、且つ／又はスコア付けされていないか、又は１つ若しくは複数の画像クラスに関連付けられていないコンテンツを含み得る。分類されたコンテンツは、分類されたコンテンツが画像クラスに一致する程度を示すスコアを有し得る。分類されたコンテンツのスコアの高いアイテムほど、画像クラスの視覚的属性に相関する高い程度を有し得る。その結果、様々な実施形態では、画像分類モジュール１０４は、スコア付けに基づいて分類されたコンテンツの効率的な検索を可能にし得る。
【００２７】
分類のための画像群の評価セットの分析中の分類器の使用は、様々なときに行われ得る。例えば、分類器は、選択された頻度で、又は画像が分類器に提供される際に非定期的に画像群の評価セットを分析し得る。分類器は、多数の画像をソーシャルネットワーキングシステムにアップロードさせる可能性が高いイベント等の特定のイベントの発生時に画像群の評価セットを分析することもできる。分類器は、ソーシャルネットワーキングシステムが閾値数の新しい画像を受信する場合、画像群の評価セットを分析し得る。更に別の例として、分類器は、予期される画像検索が実行される前、分類のために画像群の評価セットを分類し得る。
【００２８】
画像適用モジュール１０６は、ソーシャルネットワーキングシステムで使用するように、分類されたコンテンツを適合させ得る。幾つかの実施形態では、画像適用モジュール１０６は、検索適用プログラミングインターフェース（ＡＰＩ）とインターフェースして、画像クラスに従って分類されたコンテンツの各アイテムを検索可能にし得る。例えば、画像適用モジュール１０６は、ユーザがソーシャルネットワーキングシステムにアップロードした、分類画像を検索する検索モジュールとインターフェースし得る。別の例として、画像適用モジュール１０６は、ユーザがフィードに掲示した分類画像又はミームについてソーシャルネットワーキングシステムのフィードを検索する検索モジュールとインターフェースし得る。画像適用モジュール１０６は、検索クエリに応答して、分類されたコンテンツを提供することもできる。幾つかの実施形態では、画像適用モジュール１０６は、主題ディクショナリ、カテゴリツリー、及びトピックタグ付け技法を使用して、画像分類モジュール１０４によって提供された分類画像に関連付けられたトピックを抽出し得る。
【００２９】
図２Ａは、幾つかの実施形態による画像分類モジュール１０４の例を示す。画像分類モジュール１０４は、未分類画像データストア２０２、画像分類トレーニングモジュール２０４、及び分類器２０８を含み得る。図２Ａに示される構成要素に加えて、画像分類モジュール１０４は、図２Ｂに示された構成要素を含むこともできる。図２Ａ及び図２Ｂにおける同様の要素が同様の参照符号を有し得ることに留意する。
【００３０】
未分類画像データストア２０２は、画像分類トレーニングモジュール２０４及び画像分類評価モジュール２０６に結合され得る。未分類画像データストア２０２は、未分類画像を含み得る。未分類画像は、関連付けられたコンテキストキューを有し得る。データストアは、テーブル、カンマ区切り値（ＣＳＶ）ファイル、従来のデータベース（例えば、ＳＱＬ）、又は他の既知若しくは従来の編成フォーマットを含め、任意の編成のデータを含み得る。幾つかの実施形態では、未分類画像データストア２０２は、タグ又は他のキュー等の画像に関連付けられたコンテキストキューのセットを記憶することもできる。幾つかの実施形態では、未分類画像データストア２０２は、ソーシャルネットワーキングシステムにおいて未分類画像の部分又は全てを表し得る。
【００３１】
画像分類トレーニングモジュール２０４は、未分類画像データストア２０２及び分類器２０８に結合され得る。幾つかの実施形態では、画像分類トレーニングモジュール２０４は、トレーニングフェーズを実施し得る。トレーニングフェーズは、画像分類トレーニングモジュール２０４が、画像群のサンプルセットから選択された画像の視覚的属性を認識するように分類器２０８をトレーニングする画像分類モジュール１０４のフェーズを含み得る。トレーニングフェーズ中、画像分類トレーニングモジュール２０４は、未分類画像データストア２０２からサンプルセット画像を取得し得る。画像分類トレーニングモジュール２０４は、取得された各未分類画像に関連付けられたコンテキストキューのセットを収集することもできる。コンテキストキューのセットに基づいて、画像群のサンプルセットから選択された画像群のトレーニングセットが使用されて、視覚的パターンを認識するように分類器２０８をトレーニングし得る。未分類画像及び／又はコンテキストキューは、関連情報について未分類画像データストア２０２に問い合わせて、画像群のサンプルセットから画像群のトレーニングセットを決定することによって取得され得る。
【００３２】
トレーニングフェーズ中、画像分類トレーニングモジュール２０４は、分類器２０８のトレーニングに用いる１つ又は複数の画像クラスを指定するように構成され得る。画像クラスを指定するために、画像分類トレーニングモジュール２０４は、画像クラスを定義する自動入力を受信し得る。画像クラスを指定することは、画像の分類を遂行する管理者等の人からの手動入力を含むこともできる。
【００３３】
トレーニングフェーズ中、画像分類トレーニングモジュール２０４は、画像クラスに対応するコンテキストキューを識別し選択するように構成され得る。様々な実施形態では、画像分類トレーニングモジュール２０４は、特定の画像クラスの属性を評価し得、特定のコンテキストキューがその画像クラスに関連付けられる可能性が高いか否かを判断し得る。例えば、画像分類トレーニングモジュール２０４は、あるタイプのタグが、家猫の写真に添えられている可能性が高く、一方、別のタイプのタグが、ハロウィンでキャットウーマンのコスチュームを着たユーザの写真に添えられている可能性が高いと判断し得る。そのような場合、画像分類トレーニングモジュール２０４は、家猫の写真に添えられた可能性が高いタグのタイプを、猫の画像クラスに対応するものとして選択し得る。本明細書においてより詳細に考察するように、コンテキストキューが特定の画像クラスに該当するか否かの検討は、タグ（例えば、タグ「＃猫」、タグ「＃ハロウィン」等）、タグの順番、特定のタグに他のタグが付随しているか否か（例えば、タグ「＃猫」にタグ「＃動物」が付随しているか否か又はタグ「＃猫」にタグ「＃ハロウィン」が付随するか否か）等の多くの考慮事項に基づき得る。画像分類トレーニングモジュール２０４は、特定の画像に関連付けられたコンテキストキューが特定の画像キューに対応する程度をランク付け、且つ／又はスコア付けするように構成されることもできる。
【００３４】
コンテキストキューは分析されて、画像群のサンプルセットから画像群のトレーニングセットを識別する。画像群のトレーニングセットは、画像クラスに最も密に相関する画像を表す。トレーニングフェーズ中、画像分類トレーニングモジュール２０４は、画像クラスに関連付けられた視覚的属性を識別するために、画像群のトレーニングセットを分類器２０８に提供し得る。幾つかの実施形態では、画像分類トレーニングモジュール２０４は、特定の画像クラスに対応する視覚的パターンのテンプレートを作成するように、分類器２０８に命令し得る。幾つかの実施形態では、画像分類トレーニングモジュール２０４は、必要に応じて、分類画像データストア２１０等のロケーションに分類画像及び／又は関連する視覚的パターンテンプレートを記憶し得る。画像分類トレーニングモジュール２０４は、手動注釈器を更に使用して、画像群のトレーニングセットの選択を促進し得る。画像分類トレーニングモジュール２０４については、図３及び図７の状況で更に考察する。
【００３５】
分類器２０８は、画像分類トレーニングモジュール２０４及び分類画像データストア（例えば、図２Ｂに示される分類画像データストア２１０）に結合され得る。分類器は、画像分類トレーニングモジュール２０４から画像を受信し得る。トレーニングフェーズにおいて、分類器２０８は、特定の視覚的パターンの存在について画像群のトレーニングセットを評価し得る。分類器２０８は、特定の視覚的パターンに画像クラスを関連付け得、視覚的パターンテンプレートを作成し得、視覚的パターンテンプレートを記憶させ得る。トレーニングフェーズにおいて、分類器２０８は、トレーニングに使用された画像を画像分類トレーニングモジュール２０４に戻し得る。幾つかの実施形態では、分類器２０８は、画像分類トレーニングモジュール２０４への戻り接続（例えば、フィードバックループを介して）を含み得る。その結果、分類器２０８は、画像分類トレーニングモジュール２０４の正確性を支援し得る。そのような戻り接続は、分類及びトレーニングの改善を更に支援し得る。分類器２０８については、図５の状況で更に考察する。
【００３６】
図２Ｂは、幾つかの実施形態による画像分類モジュール１０４の例を示す。画像分類モジュール１０４は、未分類画像データストア２１２、画像分類評価モジュール２０６、分類器２０８、及び分類画像データストア２１０を含み得る。未分類画像データストア２１２は、画像分類評価モジュール２０６に結合され得る。未分類画像データストア２１２は、未分類画像を記憶し得る。未分類画像データストア２１２は、図２Ａに示される未分類画像データストア２０２と同じであり得るが、そうである必要はない。
【００３７】
画像分類評価モジュール２０６は、未分類画像データストア２１２及び分類器２０８に結合され得る。幾つかの実施形態では、画像分類評価モジュール２０６は、評価フェーズを実施し得る。評価フェーズは、画像分類評価モジュール２０６が分類器２０８を使用して、画像群の評価セット内の視覚的パターンを認識する画像分類モジュール１０４のフェーズを含み得る。実施形態では、画像群の評価セットは、未分類画像データストア２１２から選択され得る。
【００３８】
評価フェーズ中、画像分類評価モジュール２０６は、未分類画像データストア２１２からの画像群の評価セットを分類器２０８に提供し得る。様々な実施形態では、画像分類トレーニングモジュール２０４は、トレーニングフェーズにおいて、画像クラスに関連付けられた画像群のトレーニングセットの視覚的属性を認識するように分類器２０８をトレーニングし得る。画像群の評価セットは、画像群のサンプルセット及び画像群のトレーニングセットとは異なる画像のセットを含み得る。幾つかの実施形態では、画像分類評価モジュール２０６は、分類器２０８が、画像群の評価セットと比較すべき画像を分類器２０８に提供することもできる。様々な実施形態では、画像分類評価モジュール２０６は、画像クラスとの相関に基づいて、画像群の評価セットをランク付けし、且つ／又はスコア付けるように分類器２０８に命令し得る。画像分類評価モジュール２０６は、画像（すなわち、画像クラスとの相関に基づいてスコア付けられた画像）のランク及び／又はスコアを分類画像データストア２１０に記憶することもできる。画像分類評価モジュール２０６について、図４及び図８の状況で更に考察する。
【００３９】
分類器２０８は、画像分類トレーニングモジュール２０４及び画像分類評価モジュール２０６に結合され得る。分類器２０８は、画像分類評価モジュール２０６から画像を受信し得る。評価フェーズにおいて、分類器２０８は、画像群の評価セットに対して視覚的パターン認識を実行して、各画像と、関心のある画像クラスに関連付けられた視覚的パターンテンプレートとの相関をスコア付けし得る。評価フェーズにおいて、分類器２０８は、評価に使用された画像を画像分類評価モジュール２０６に戻し得る。分類器２０８については、図５の状況で更に考察する。
【００４０】
分類画像データストア２１０は、分類器２０８及び画像適用モジュール１０６に結合され得る。分類画像データストア２１０は、分類画像、画像クラス、視覚的パターンテンプレート、及び他の情報を含む情報を記憶し得る。幾つかの実施形態では、分類画像データストア２１０は、インデックス付けされて、分類画像へのアクセスを求めるＡＰＩによる分類画像の効率的な検索に役立ち得る。例えば、分類画像データストア２１０は、分類画像へのアクセスを求める画像適用モジュール１０６に結合された検索モジュールと互換性を有するように構成され得る。
【００４１】
図３は、幾つかの実施形態による画像分類トレーニングモジュール２０４の例を示す。画像分類トレーニングモジュール２０４は、トレーニング画像選択モジュール３０１、トレーニング画像データストア３０９、及び分類器トレーニングモジュール３１０を含み得る。
【００４２】
トレーニング画像選択モジュール３０１は、未分類画像データストア２０２及びトレーニング画像データストア３０９に結合され得る。トレーニング画像選択モジュール３０１は、画像群のサンプルセットから画像群のトレーニングセットを識別し得る。トレーニング画像選択モジュール３０１は、画像群のトレーニングセットをトレーニング画像データストア３０９に記憶することもできる。トレーニング画像選択モジュール３０１は、トレーニング画像収集モジュール３０２、コンテキストキュー抽出モジュール３０４、画像クラス指定モジュール３０６、及び画像クラス相関付けモジュール３０８を含み得る。
【００４３】
トレーニング画像収集モジュール３０２は、トレーニング画像選択モジュール３０１のその他のモジュールに結合され得る。幾つかの実施形態では、トレーニング画像収集モジュール３０２は、画像群のサンプルセットに関連付けられたコンテキストキューと共に、画像群のサンプルセットを収集し得る。画像群のサンプルセット及び関連付けられたコンテキストキューは、未分類画像データストア２０２から検索し得る。
【００４４】
コンテキストキュー抽出モジュール３０４は、トレーニング画像選択モジュール３０１のその他のモジュールに結合され得る。コンテキストキュー抽出モジュール３０４は、画像群のサンプルセットに関連付けられたコンテキストキューを抽出するように構成され得る。本明細書で考察するように、コンテキストキューは、画像の内容の非視覚的インジケータを含み得る。画像のコンテキストキューの例は、画像の画像タグ、画像を捕捉しているデバイスのＧＰＳ座標、画像のタグ付け者、アップロード者、及び所有者の識別情報、画像の所有者の識別情報、画像に直接又は間接的に関連する他の情報等を含み得る。幾つかの実施形態では、コンテキストキュー抽出モジュール３０４は、画像クラス相関付けモジュール３０８にコンテキストキューのセットを提供し得、それにより、画像クラス相関付けモジュール３０８は、コンテキストキューに画像クラスを相関付け得る。
【００４５】
画像クラス指定モジュール３０６は、トレーニング画像選択モジュール３０１のその他のモジュールに結合され得る。画像クラス指定モジュール３０６は、分類器２０８が認識するようにトレーニングされる画像クラスを指定するように構成され得る。幾つかの実施形態では、画像クラス指定モジュール３０６は、管理者から画像クラスを指定する命令を受信し得、管理者は人間であってもよく、又は自動であってもよい。様々な実施形態では、画像クラスの指定は、画像クラスが存在しない場合、画像クラスを作成すること、又はそのような画像クラスが存在する場合、画像クラスを指定することを含み得る。
【００４６】
画像クラス相関付けモジュール３０８は、トレーニング画像選択モジュール３０１のその他のモジュールに結合され得る。画像クラス相関付けモジュール３０８は、コンテキストキュー抽出モジュール３０４から、関連付けられたコンテキストキューと共に画像群のサンプルセットの１つ又は複数を受信し得、画像クラス指定モジュール３０６から、指定された画像クラスを受信し得る。画像クラス相関付けモジュール３０８は、特定の画像のコンテキストキューが特定の画像クラスに相関する程度を特定し得る。より具体的には、画像クラス相関付けモジュール３０８は、所与の画像が画像クラスに相関する確率を示すスコア又は値を各画像に割り当て得る。幾つかの実施形態では、画像クラス相関付けモジュール３０８は、各画像のスコアに基づいて画像群のサンプルセットのそれぞれをランク付けすることもできる。幾つかの実施形態では、画像クラス相関付けモジュール３０８は、画像群のサンプルセットの最高スコア画像等の画像群のサンプルセットからトレーニングセットを選択して、分類器トレーニングモジュール３１０に提供し得る。有利なことに、画像クラス相関付けモジュール３０８は、画像群のサンプルセット内の内容の任意の視覚的認識を実行する必要はない。
【００４７】
以下の考察は、画像クラス相関付けモジュール３０８が、画像に関連付けられたコンテキストキューに基づいて画像の可能性の高い内容をいかに特定し得るかの例を提供する。以下の考察で提供されるように、画像クラス相関付けモジュール３０８は、タグ自体、タグのシンタックスを分析し得るか、又はコンテキストキュー抽出モジュール３０４によって抽出されたコンテキストキューに他のタイプの分析を実行し得る。画像クラス相関付けモジュール３０８は、以下の例の任意の組合せを提供して、コンテキストキューに基づいて、画像群のサンプルセットを指定された画像クラスにより相関付けて、画像群のトレーニングセットを決定することもできる。
【００４８】
幾つかの実施形態では、画像クラス相関付けモジュール３０８は、画像群のサンプルセットの画像タグのシンタックスを分析し得る。画像クラス相関付けモジュール３０８は、特定のシンタックスが所与の画像クラスに相関する可能性がどの程度かを特定し得る。幾つかの実施形態では、画像タグのシンタックス分析は、画像タグの厳密な言葉に重みを割り当てることを含み得る。すなわち、画像クラス相関付けモジュール３０８は、画像に関連付けられたタグの厳密な文言が、タグが画像クラスに相関付けられるべきであることを示すと判断し得る。例えば、画像は、画像タグ「＃家猫」がタグ付けされ得る。画像クラス相関付けモジュール３０８は、タグ「＃家猫」が、家猫の画像についての画像クラスと高度に相関すると判断し得る。別の例として、画像クラス相関付けモジュール３０８は、「＃国内家市場」が、家猫の画像クラスと低度に相関すると判断し得る。
【００４９】
画像クラス相関付けモジュール３０８は、画像に関連付けられた一連の画像タグ内の特定の画像タグの順番を分析することもできる。例えば、家猫の写真にタグ付けしようとしている人は、以下の一連のタグを含み得る：「＃猫、＃家で、＃日曜日、＃動物」。画像クラス相関付けモジュール３０８は、タグ「＃猫」が一連のタグ内の最初のタグであり、したがって、画像が家猫の画像である可能性が高いことを識別し得る。画像クラス相関付けモジュール３０８は、画像を画像クラスに相関付ける際、一連のタグに重みを割り当て得る。なお、画像を画像クラスに相関付けるために、画像クラス相関付けモジュール３０８は、一連のタグ内の最初の位置以外の位置にあるタグを考慮することもできる。
【００５０】
画像クラス相関付けモジュール３０８は、複数の画像タグが互いに同義語であるか否かを分析することもできる。例えば、最初の画像が以下のようにタグ付けされたと考える：「＃猫、＃家で、＃ハロウィン、＃キャットウーマン、＃コスチューム、＃ＤＣコミック（DC Comics）（登録商標）」。更に、２番目の画像が以下のようにタグ付けされたと考える：「＃猫、＃ほ乳類、＃動物、＃家猫、＃雄猫、＃猫科、＃かわいい」。画像クラス相関付けモジュール３０８は、最初の画像のタグの幾つかに基づいて、一連のタグが互いに同義ではなく、最初の画像が家猫の画像を含む可能性が低いと判断し得る。画像クラス相関付けモジュール３０８は、２番目の画像のタグの幾つかに基づいて、一連のタグが同義であり（例えば、「猫」、「雄猫」、及び「猫科」）、２番目の画像が家猫の画像を含む可能性が最初の画像よりも高いと更に判断し得る。したがって、画像クラス相関付けモジュール３０８は、家猫の画像クラスに関して、最初の画像のスコアよりも高いスコアを２番目の画像に割り当て得る。
【００５１】
幾つかの実施形態では、画像クラス相関付けモジュール３０８は、反意語又は派生意味について、複数の画像タグを評価し得る。例えば、最初の画像が以下のようにタグ付けされると考える：「＃黒い車」、「＃白い車」、「＃高級車」、「＃私のメルセデス」。２番目の画像が以下のようにタグ付けされると考える：「＃黒い車」、「＃暗い色の車」、「＃高級車」、「＃私のメルセデス」。画像クラス相関付けモジュール３０８は、第２の一連のタグが「黒い車」の反意語を含まないことに基づいて、２番目の画像が、黒い車に対応する画像クラスに高度に相関すると判断し得る。画像クラス相関付けモジュール３０８は、黒い車の画像クラスに関して、第１の画像のスコアよりも高いスコアを２番目の画像に割り当て得る。
【００５２】
画像クラス相関付けモジュール３０８は、幾つかの実施形態では、オントロジー又は言語階層に基づいて画像タグの関係を評価し得る。例えば、画像クラス相関付けモジュール３０８は、オンラインソース（例えば、ワードネット（WordNet））から１つ又は複数の単語のオントロジーを作成し得、感情的な影響（例えば、「幸せ」、「悲しい」、「赤いドレス」、「黒い車」）を有する単語を見つけ得る。別の例として、画像が以下のようにタグ付けされたと考える：「＃猫、＃ほ乳類、＃動物、＃家猫、＃雄猫、＃猫科、＃かわいい」。画像クラス相関付けモジュール３０８は、「猫」が、「ほ乳類」によって識別されるアイテム群の部分であり、「ほ乳類」が「動物」によって識別されるアイテム群の部分であると判断し得る。その結果、画像クラス相関付けモジュール３０８は、そのような例では、画像に示される家猫の信頼性の高いインジケータを提供するものとしてタグを識別し得る。次に、画像クラス相関付けモジュール３０８は、それに従って、家猫の画像クラスに関して画像をスコア付けし得る。
【００５３】
様々な実施形態では、画像クラス相関付けモジュール３０８は、タグの単語及び語句の他の自然言語分析を実行し得る。幾つかの実施形態では、画像クラス相関付けモジュール３０８は、タグの単語のスペルミスを考慮することができる。画像クラス相関付けモジュール３０８は、英語の相手方と併せて、非英語の単語の存在を探すことを含め（例えば、同じ一連のタグ内の「＃猫（#cat）」及び「＃猫（#gato）」）、英語以外の言語を考慮することもできる。これらの各例では、画像クラス相関付けモジュール３０８は、特定の画像クラスに関して画像群のセットを適宜スコア付けし得る。
【００５４】
画像タグのシンタックスの分析に加えて、画像クラス相関付けモジュール３０８は、画像の生成及び／又はタグ付けに関連するソーシャルキューを分析し得る。例えば、画像クラス相関付けモジュール３０８は、画像群のサンプルセットに関連付けられたロケーションデータを分析し得る。より具体的には、画像クラス相関付けモジュール３０８は、画像のＧＰＳ座標を評価し得る。例えば、ＧＰＳ座標は、ユーザのモバイルデバイスのＧＰＳ送受信器からとられてもよく、又は画像がアップロードされたとき若しくは後の画像の地理的タグ付けからとられてもよい。特定の画像のロケーションデータを使用して、画像クラス相関付けモジュール３０８は、特定の画像クラスに関してスコアを特定の画像に割り当て得る。例えば、画像クラス相関付けモジュール３０８は、画像がサンフランシスコのゴールデンゲートブリッジ付近で撮影されたことをロケーションデータから特定し得る。次に、画像クラス相関付けモジュール３０８は、橋の画像クラスに関して画像にスコアを割り当て得る。
【００５５】
幾つかの実施形態では、画像クラス相関付けモジュール３０８は、画像群のサンプルセットの特定の画像の生成器の識別情報を含むソーシャルキューを分析し得る。画像クラス相関付けモジュール３０８は、特定のエンティティが、特定の画像クラス内の画像を生成する可能性が高いか否かに応じて、スコアを割り当て得る。例えば、エンティティが過去、特定の画像クラス内の多くの画像を生成していた場合、画像クラス相関付けモジュール３０８は、エンティティの特定の画像をスコア付けして、画像クラスとの高度の相関を反映し得る。
【００５６】
幾つかの実施形態では、画像クラス相関付けモジュール３０８は、画像群のサンプルセットの１つの所有者が、画像の生成者又は画像のタグ付け者であったか否かを示すソーシャルキューを分析し得る。幾つかの実施形態では、画像クラス相関付けモジュール３０８は、画像又は画像への知的財産権を所有するエンティティが画像を生成するか、又はタグ付けしたか否かを判断し得る。例えば、商標（例えば、コカコーラ（Ｃｏｃａ−Ｃｏｌａ）（登録商標）ロゴ）の画像クラスに関して、画像クラス相関付けモジュール３０８は、画像が、商標を所有するエンティティ（例えば、コカコーラ（Ｃｏｃａ−Ｃｏｌａ）（登録商標）社）によって生成又はタグ付けされた場合、高度の相関を反映したスコアを画像に提供し得る。そのような重み付け方式は、商標付き画像又はロゴの認識に特に利点を提供し得る。
【００５７】
幾つかの実施形態では、画像クラス相関付けモジュール３０８は、ソーシャルネットワーキングシステムでの人のステータス又はプロフィールを示すソーシャルキューを分析し得る。人は、画像群のサンプルセットの特定の画像の生成者及び／又はタグ付け者であり得る。例えば、画像クラス相関付けモジュール３０８は、人の活動（例えば、過去の掲示、ステータスアップデート、友人関係、メッセージング履歴、過去のタグ付け履歴、過去の画像生成履歴、閲覧履歴、オンラインプロフィール等）又は関係（例えば、友人）に基づいて、その人が信頼性の高い画像生成者及び／又はタグ付け者である可能性が高いと判断し得る。画像クラス相関付けモジュール３０８は、その人のステータス又はプロフィールが、その人が全般的に又は特に画像クラスにおいて信頼性の高い画像生成者及び／又はタグ付け者であることを示すか否かに基づいて、１つ又は複数の画像に様々なスコアを割り当て得る。
【００５８】
様々な実施形態では、画像クラス相関付けモジュール３０８は、他の画像クラスの有無を示すソーシャルキューを分析し得る。例えば、画像クラス相関付けモジュール３０８は、画像がボートを含み、その結果、画像が屋内である可能性が低いと判断し得る。コンテキストキュー（例えば、ハッシュタグ「＃屋内」）の存在は、画像がボートを含む可能性が低いことを示し得る。別の例として、画像クラス相関付けモジュール３０８は、画像内のある物体の存在が、別の物体が画像に存在し得るか、又はしないことを意味し得ると判断し得る。例えば、画像内の牛を示すコンテキストキューの存在は、画像が牛及び航空機の両方を含む可能性が低いことを踏まえて、画像クラス相関付けモジュール３０８が航空機の負の相関を提供できるようにし得る。別の例として、画像内の一羽の鶏を示す１つのコンテキストキューの存在は、画像クラス相関付けモジュール３０８が、一羽の鶏を含む画像が他の鶏を含む可能性が高いことを踏まえて、画像内の他の鶏に正の相関を提供できるようにし得る。同様に、羊の存在は、牧羊犬に対する正の相関を示し得る。
【００５９】
画像クラス相関付けモジュール３０８は、限定ではないが、上述したソーシャルキュー及びアップロード者が画像の所有者であるか否か、画像のファイルタイプ、画像内又は画像に関連付けられたメタデータ、画像を気に入った人の識別情報、タグ又は画像を閲覧したユーザの洗練度又は経験、画像が以前に画像クラスに分類されたか否か（分類されたことがある場合、その画像クラスに関して画像のスコアが何であったか）等のうちの１つ又は複数を含め、様々なソーシャルキューを分析し得る。本明細書に明示的に考察されたソーシャルキューとは別に、他のソーシャルキーが、画像クラス相関付けモジュール３０８によって分析されて、画像を画像クラスにより相関付けて、スコア付けし得る。画像クラス相関付けモジュール３０８は、これらの画像のコンテキストキューが１つ又は複数の画像クラスに高度に相関する程度に基づいて、様々なスコアを様々な画像に割り当て得る。
【００６０】
画像へのスコアの割り当てに加えて、画像クラス相関付けモジュール３０８は、１つ又は複数の画像クラスに関して画像群のサンプルセットをランク付けすることもできる。例えば、画像クラス相関付けモジュール３０８は、画像クラスに関する各画像のスコアに基づいて、画像群のサンプルセットの各画像をランク付けし得る。ランク付けは、画像クラスとの各画像の相対的な相関を反映し得る。画像クラス相関付けモジュール３０８は、重み、スコア、及び／又はランクを使用して、画像群のトレーニングセットを生成し得る。
【００６１】
トレーニング画像データストア３０９は、トレーニング画像選択モジュール３０１から画像群のトレーニングセットを受信し得る。トレーニング画像データストア３０９は、画像群のトレーニングセットを記憶し得る。幾つかの実施形態では、トレーニング画像データストア３０９は、分類器トレーニングモジュール３１０が画像群のトレーニングセットにアクセスできるようにし得る。
【００６２】
分類器トレーニングモジュール３１０は、トレーニング画像データストア３０９及び分類器２０８に結合され得る。様々な実施形態では、分類器トレーニングモジュール３１０は、画像クラスを認識するように分類器２０８をトレーニングするために、画像群のトレーニングセットを提供し得る。画像群のトレーニングセットは、特定の画像クラスに関して、サンプルセットの閾値数の最高ランク画像に制限され得る。最高ランク画像の閾値数は値Ｋで表され得、Ｋは任意の整数値である。例えば、トレーニング画像収集モジュール３０２が、「家猫」の画像クラスを認識するように分類器２０８を最終的にトレーニングするために、画像群のサンプルセットとして１０００の画像を収集したと考える。画像クラス相関付けモジュール３０８が、これらの画像のうちの２００の画像に、残りの８００の画像に割り当てられたスコアよりも高いスコアを割り当てたと更に考える。そのような場合、分類器トレーニングモジュール３１０は、画像群のトレーニングセットとして２００の上位スコア画像のみを分類器２０８に提供し得、それにより、分類器２０８は、家猫の画像クラスに高く相関する画像の視覚的属性を効率的に特定することができる。
【００６３】
図４は、幾つかの実施形態による画像分類評価モジュール２０６の例を示す。画像分類評価モジュール２０６は、評価画像収集モジュール４０２、分類器入力モジュール４０４、視覚的パターンテンプレート収集モジュール４０５、分類器スコア受信モジュール４０６、視覚的属性ランク付けモジュール４０８、及び評価画像提供モジュール４１０を含み得る。
【００６４】
評価画像収集モジュール４０２は、画像分類評価モジュール２０６のその他のモジュールに結合され得る。幾つかの実施形態では、評価画像収集モジュール４０２は、未分類画像データストア２０２から画像分類のために画像群の評価セットを収集し得る。画像群の評価セットは、画像群のサンプルセット及び画像群のトレーニングセットと同じであってもよく、又は異なってもよい。画像群の評価セットは、画像群のサンプルセット及び画像群のトレーニングセットと異なる数（例えば、より多数の画像）を含み得る。様々な実施形態では、画像群の評価セットは、未分類画像データストア２０２からランダム又は選択的に取得され得る。
【００６５】
視覚的パターンテンプレート収集モジュール４０５は、画像分類評価モジュール２０６のその他のモジュール及び画像分類トレーニングモジュール２０４に結合され得る。幾つかの実施形態では、視覚的パターンテンプレート収集モジュール４０５は、画像分類トレーニングモジュール２０４から、特定の画像クラスに対応する視覚的パターンテンプレートを受信し得る。視覚的パターンテンプレート収集モジュール４０５は、視覚的パターンテンプレートを分類器入力モジュール４０４に更に提供し得る。
【００６６】
分類器入力モジュール４０４は、画像分類評価モジュール２０６のその他のモジュールに結合され得る。幾つかの実施形態では、分類器入力モジュール４０４は、評価画像収集モジュール４０２から画像群の評価セットを受信し得る。分類器入力モジュール４０４は、特定の画像クラスに対応する視覚的パターンテンプレートを視覚的パターンテンプレート収集モジュール４０５から受信することもできる。分類器入力モジュール４０４は、画像の各評価セット内の視覚的パターンテンプレートの認識を試みるように分類器２０８に命令し得る。
【００６７】
分類器スコア受信モジュール４０６は、画像分類評価モジュール２０６のその他のモジュールに結合され得る。幾つかの実施形態では、分類器スコア受信モジュール４０６は、画像群の評価セットの特定の画像が視覚的パターンテンプレートに相関する程度を示すスコアを分類器２０８から受信し得る。
【００６８】
視覚的属性ランク付けモジュール４０８は、画像分類評価モジュール２０６のその他のモジュールに結合され得る。様々な実施形態では、視覚的属性ランク付けモジュール４０８は、画像の各評価セットのスコアが視覚的パターンテンプレートに相関する程度に基づいて、画像群の評価セットをランク付けし得る。幾つかの実施形態では、視覚的属性ランク付けモジュール４０８は、インデックス付け又は検索のために画像の分類済セットを構成する再ランク付けされた画像セットを提供し得る。
【００６９】
評価画像提供モジュール４１０は、画像分類評価モジュール２０６のその他のモジュールに結合され得る。幾つかの実施形態では、評価画像提供モジュール４１０は、視覚的属性ランク付けモジュール４０８から再ランク付け又は分類された画像を受信し得る。評価画像提供モジュール４１０は、再ランク付けされた各画像が指定された画像クラスに相関する程度を反映したインデックス又は他の情報と共に、分類画像データストア２１０に再ランク付けされた画像を提供し得る。
【００７０】
図５は、幾つかの実施形態による分類器２０８の例を示す。分類器２０８は、視覚的パターン作成モジュール５０２、視覚的パターン認識モジュール５０４、及び分類画像インターフェースモジュール５０６を含み得る。
【００７１】
視覚的パターン作成モジュール５０２は、視覚的パターン認識モジュール５０４に結合され得る。視覚的パターン作成モジュール５０２は、分類器２０８のトレーニングフェーズ中、画像分類トレーニングモジュール２０４から画像群のトレーニングセットを受信し、画像クラスに関連付けられた画像群のトレーニングセットに共通する特徴の視覚的パターンテンプレートを作成し得る。視覚的パターンテンプレートを作成するために、視覚的パターン作成モジュール５０２は、画像の各トレーニングセット内の局所的画像特徴の語彙の発生をカウントするコンピュータビジョン又は技法でのバッグオブワードモデル等の視覚的パターン認識アルゴリズムを実施し得る。実施形態では、視覚的パターン作成モジュール５０２は、画像をセグメントに分割し得、視覚的特徴の存在について画像の各セグメントを評価し得る。視覚的パターン作成モジュール５０２は、画像の各セグメントで識別された視覚的特徴を更に抽出し得、視覚的特徴をベクトルとして表し得る。ベクトルを使用して、視覚的パターン作成モジュール５０２は、画像群のトレーニングセットに共通する特徴の視覚的パターンテンプレートを作成し得る。
【００７２】
様々な実施形態では、視覚的パターン作成モジュール５０２は、画像群のトレーニングセットで最も共通して見つけられた特徴に基づいて、視覚的パターンテンプレートを作成し得る。例えば、これらの実施形態では、画像分類トレーニングモジュール２０４は、整数「Ｋ」の画像を視覚的パターン作成モジュール５０２に提供し得、視覚的パターン作成モジュール５０２は、Ｋの画像内で最も共通して見つけられる画像を認識し得る。
【００７３】
視覚的パターン認識モジュール５０４は、視覚的パターン作成モジュール５０２に結合され得る。視覚的パターン認識モジュール５０４は、評価フェーズ中、画像分類評価モジュール２０６から画像群の評価セットを受信し得、画像の各評価セットが、画像クラスに関連付けられた特定の視覚的パターンテンプレートに相関する程度を識別し得る。幾つかの実施形態では、視覚的パターン認識モジュール５０４は、バッグオブワードアルゴリズム等の視覚的パターン認識を利用し得る。視覚的パターン認識は、幾つかの実施形態では、ニューラルネットワーク画像分類技法を含み得る。視覚的パターン認識モジュール５０４は、画像群の評価セット内の様々な視覚的特徴を特定し、各画像について、抽出された視覚的特徴を１組のベクトルとして表し得る。視覚的パターン認識モジュール５０４は、画像の各評価セットのベクトルを特徴の様々な視覚的パターンテンプレートと比較することもできる。幾つかの実施形態では、視覚的パターン認識モジュール５０４は、画像の各評価セットがトレーニングフェーズ中に生成された様々な視覚的パターンテンプレートに相関する程度をスコア付けし得る。
【００７４】
分類画像インターフェースモジュール５０６は、視覚的パターン作成モジュール５０２及び視覚的パターン認識モジュール５０４に結合され得る。幾つかの実施形態では、分類画像インターフェースモジュール５０６は、視覚的パターン認識モジュール５０４から分類画像をスコアと共に受信し得る。分類画像インターフェースモジュール５０６は、分類画像及び／又はスコアを分類画像データストア２１０に提供し得る。分類画像インターフェースモジュール５０６は、視覚的パターンテンプレートを分類画像データストア２１０に提供することもできる。
【００７５】
図６は、幾つかの実施形態による画像を分類するプロセス６００の例を示す。プロセス６００について、図２Ａに示される画像分類モジュール１０４と併せて考察する。プロセス６００は、トレーニングフェーズ６００ａ及び評価フェーズ６００ｂを含み得る。プロセス６００のブロック６０２において、画像分類トレーニングモジュール２０４は、未分類画像データストア２０２から画像群のサンプルセットを収集し得る。ブロック６０４において、画像分類トレーニングモジュール２０４は、画像群のサンプルセットに関連付けられたコンテキストキューを収集し得る。ブロック６０６において、画像分類トレーニングモジュール２０４は、コンテキストキューを使用し、関心のある画像クラスとの相関に基づいて画像をスコア付けし、順序付けて、本明細書に考察するように、画像群のトレーニングセットを作成し得る。スコア付け及び順序付けに基づいて、画像群のトレーニングセットが決定され得る。ブロック６０７において、画像分類トレーニングモジュール２０４は、トレーニングセットに基づいて分類器２０８をトレーニングし得る。ブロック６０８において、画像分類評価モジュール２０６は、未分類画像データストア２０２から画像群の評価セットを収集し得る。ブロック６１０において、分類器２０８は、画像群の評価セットの視覚的属性を画像クラスに関連付けられた１組の視覚的パターンテンプレートと比較し得る。ブロック６１２において、分類器２０８は、比較に基づいて、画像群の評価セットの各画像がその画像クラスに入るか否かを判断し得る。
【００７６】
図７は、幾つかの実施形態による分類器をトレーニングするプロセス７００の例を示す。プロセス７００について、図３に示される画像分類トレーニングモジュール２０４と併せて考察する。ブロック７０１において、画像分類指定モジュール３０６は、認識するように分類器２０８をトレーニングするための画像クラスを指定し得る。ブロック７０２において、トレーニング画像収集モジュール３０２は、画像群のサンプルセットを受信し得、画像の各サンプルセットは、関連付けられたコンテキストキューを有する。ブロック７０４において、コンテキストキュー抽出モジュール３０４は、画像群のサンプルセットからコンテキストキューを抽出し得る。ブロック７０８において、画像クラス相関付けモジュール３０８は、画像に関連付けられた１つ又は複数のコンテキストキューに基づいて、画像群のサンプルセット内の各画像の相関を画像クラスによりスコア付け得る。ブロック７１０において、画像クラス相関付けモジュール３０８は、各画像のスコアに基づいて、画像群のサンプルセットをランク付け得る。ブロック７１２において、画像クラス相関付けモジュール３０８は、サンプルセットから、分類器２０８をトレーニングする画像群のトレーニングセットを決定し得る。幾つかの実施形態では、トレーニングセットの決定は、スコア付けに基づいてサンプルセット内の各画像をランク付けすることを含み得る。決定は、画像群のサンプルセットのトップスコアサブセットを選択することを含むこともできる。トップスコアサブセットは、画像群のトレーニングセットを含み得る。ブロック７１４において、分類器トレーニングモジュール３１０は、画像群のトレーニングセット内の共通の視覚的パターンを識別するように、分類器２０８をトレーニングし得る。
【００７７】
図８は、幾つかの実施形態による画像を分類するプロセス８００の例を示す。プロセス８００について、図４に示される画像分類評価モジュール２０６及び図５に示される分類器２０８と併せて考察する。ブロック８０２において、評価画像収集モジュール４０２は、未分類画像データストア２０２から画像群の評価セットを収集し得る。ブロック８０４において、評価画像収集モジュール４０２は、画像群の評価セットの視覚的属性を評価するための画像を決定し得る。幾つかの実施形態では、分類器入力モジュール４０４は、画像群の評価セット及び画像クラスを分類器２０８に提供し得る。ブロック８０６において、視覚的パターン認識モジュール５０４は、画像クラスに関連付けられた視覚的パターンテンプレートにより、画像群の評価セットの各画像の相関をスコア付けし得る。ブロック８０８において、視覚的パターン認識モジュール５０４は、画像群の評価セットの各画像のスコア付けされた相関に基づいて、画像群の評価セットの各画像をランク付けし得る。ブロック８１０において、視覚的パターン認識モジュール５０４は、画像群の評価セットのトップスコアサブセットに画像クラスを関連付け得る。幾つかの実施形態では、次に、分類画像インターフェースモジュール５０６は、トップスコアサブセットをソーシャルネットワーキングシステム内の様々な他のモジュールに提供し得る。
【００７８】
図９は、幾つかの実施形態による、画像分類モジュール１０４による画像群のコンテキスト生成分類のプレビュー９００の例を示す。プレビュー９００は、画像の未分類群９０２、画像の第１の分類群９０４、画像の第２の分類群９０６、画像の第３の分類群９０８、及び画像の第４の分類群９１０を含む。図９の例では、画像の未分類群９０２は、関連付けられたコンテキストキューを有する画像群を含む。コンテキストキューは、画像タグ及び他のコンテキスト情報を含み得る。画像の第１の分類群９０４、画像の第２の分類群９０６、画像の第３の分類群９０８、及び画像の第４の分類群９１０を生成するために、画像の未分類群９０２の１つ又は複数は、画像分類トレーニングモジュール２０４に提供されている。画像分類トレーニングモジュール２０４は、トレーニングフェーズ中、コンテキストキューに基づいてソートされた画像の未分類群９０２を使用して、４つの画像クラス、すなわち、合成的な見た目／感覚を有する画像の第１の画像クラス、クローズアップ画像の第２の画像クラス、屋外で撮影された画像の第３の画像クラス、及び水を示す画像の第４の画像クラスに関連付けられた視覚的属性を認識するように分類器２０８をトレーニングしている。画像分類評価モジュール２０６は、評価フェーズ中、画像の未分類群９０２を分類器２０８に提供しており、分類器２０８は、画像の未分類群９０２の視覚的属性を４つの画像クラスに関連付けられた視覚的パターンテンプレートと比較するようにトレーニングされている。分類器２０８の出力は、分類器２０８が認識するようにトレーニングされた４つの画像クラスに対応している。より具体的には、分類器２０８は、第１の画像クラスに対応する画像の第１の分類群９０４、第２の画像クラスに対応する画像の第２の分類群９０６、第３の画像クラスに対応する画像の第３の分類群９０８、及び第４の画像クラスに対応する画像の第４の分類群９１０を生成している。
【００７９】
図１０は、幾つかの実施形態による、画像分類モジュール１０４による画像群のコンテキスト生成画像フィルタ分類のプレビュー１０００の例を示す。プレビュー１０００は、画像の未分類群１００２及び画像の分類群１００４を含む。画像の未分類群１００２は、ソーシャルネットワーキングシステム内の未分類画像の部分を表し得る。画像群のサンプルセットにはタグ及び他のコンテキストキューが関連付けられている。コンテキストキューに基づいて、画像群のサンプルセットの各画像は、関心のある画像クラスとの相関に基づいてスコア付けされている。この例では、「猫」が関心のある画像クラスである。次に、画像群のサンプルセットの画像は、スコアに基づいてランク付けられている。この例では、画像群のサンプルセットの最高ランクの２００の画像は、画像群のトレーニングセットとして指定されている。次に、画像群のトレーニングセットが適用されて、画像に示された共通の視覚的パターンが認識される。視覚的パターンテンプレートが、トレーニングセットに基づいて生成され、「猫」画像クラスが関連付けられている。画像の未分類群１００２は、画像群の評価セットとして利用されている。画像群の評価セットは分類器に適用され、「猫」画像クラスに関連付けられた視覚的パターンテンプレートとの相関がスコア付けされている。画像群の評価セットのスコアはランク付けされ、画像群の評価セットからの最高ランク画像は、画像の分類群１００４として選択されている。
【００８０】
［ソーシャルネットワーキングシステム−実施例］
図１１は、幾つかの実施形態による、コンテキスト画像分類システム１０２を実施する例としてのソーシャルネットワーキングシステム１１００のネットワーク図である。ソーシャルネットワーキングシステム１１００は、１つ又は複数のユーザデバイス１１１０、１つ又は複数の外部システム１１２０、ソーシャルネットワーキングシステム１１３０、及びネットワーク１１５０を含む。実施形態では、上述した実施形態に関連して考察したソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステム１１３０として実施され得る。例示のために、図１１に示されるソーシャルネットワーキングシステム１１００の実施形態は、単一の外部システム１１２０及び単一のユーザデバイス１１１０を含む。しかし、他の実施形態では、ソーシャルネットワーキングシステム１１００は、より多数のユーザデバイス１１１０及び／又はより多数の外部システム１１２０を含み得る。特定の実施形態では、ソーシャルネットワーキングシステム１１３０は、ソーシャルネットワーキングシステムプロバイダによって運営され、一方、外部システム１１２０は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム１１３０とは別個である。しかし、様々な実施形態では、ソーシャルネットワーキングシステム１１３０及び外部システム１１２０は、併せて動作して、ソーシャルネットワーキングサービスをソーシャルネットワーキングシステム１１３０のユーザ（又はメンバ）に提供する。この意味では、ソーシャルネットワーキングシステム１１３０は、外部システム１１２０等の他のシステムが、インターネットにわたりソーシャルネットワーキングサービス及び機能をユーザに提供するために使用し得るプラットフォーム又はバックボーンを提供する。
【００８１】
ユーザデバイス１１１０は、ユーザから入力を受信し、ネットワーク１１５０を介してデータを受信することができる１つ又は複数の計算デバイスを含む。一実施形態では、ユーザデバイス１１１０は、例えば、マイクロソフトウィンドウズ（Microsoft Windows）（登録商標）互換性オペレーティングシステム）、アップル（Apple）（登録商標）ＯＳ−Ｘ、及び／又はリナックス（Linux）（登録商標）ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態では、ユーザデバイス１１１０は、スマートフォン、タブレット、個人情報端末（ＰＤＡ）、モバイル電話等のコンピュータ機能を有するデバイスとすることができる。ユーザデバイス１１１０は、ネットワーク１１５０を介して通信するように構成される。ユーザデバイス１１１０は、アプリケーション、例えば、ユーザデバイス１１１０のユーザがソーシャルネットワーキングシステム１１３０と対話できるようにするブラウザアプリケーションを実行することができる。別の実施形態では、ユーザデバイス１１１０は、ｉＯＳ（登録商標）及びアンドロイド（ANDROID）（登録商標）等のユーザデバイス１１１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェース（ＡＰＩ）を通して、ソーシャルネットワーキングシステム１１３０と対話する。ユーザデバイス１１１０は、ネットワーク１１５０を介して外部システム１１２０及びソーシャルネットワーキングシステム１１３０と通信するように構成され、ネットワーク１１５０は、有線及び／又は無線通信システムを使用するローカルエリアネットワーク及び／又は広域ネットワークの任意の組合せを含み得る。
【００８２】
一実施形態では、ネットワーク１１５０は、標準通信技術及びプロトコルを使用する。したがって、ネットワーク１１５０は、イーサネット（Ethernet）（登録商標）、８０２．１１、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（ＷｉＭＡＸ）（登録商標）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル加入者回線（ＤＳＬ）等の技術を使用するリンクを含むことができる。同様に、ネットワーク１１５０で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）等を含むことができる。ネットワーク１１５０を介して交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）及び拡張可能マークアップ言語（ＸＭＬ）を含む技術及び／又はフォーマットを使用して表すことができる。加えて、全て又は幾つかのリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、及びインターネットプロトコルセキュリティ（ＩＰｓｅｃ）等の従来の暗号化技術を使用して暗号化することができる。
【００８３】
一実施形態では、ユーザデバイス１１１０は、ブラウザアプリケーション１１１２を使用して外部システム１１２０及びソーシャルネットワーキングシステム１１３０から受信されるマークアップ言語ドキュメント１１１４を処理することにより、外部システム１１２０及び／又はソーシャルネットワーキングシステム１１３０からのコンテンツを表示し得る。マークアップ言語ドキュメント１１１４は、コンテンツと、コンテンツのフォーマット又はプレゼンテーションを記述する１つ又は複数の命令とを識別する。マークアップ言語ドキュメント１１１４に含まれる命令を実行することにより、ブラウザアプリケーション１１１２は、マークアップ言語ドキュメント１１１４によって記述されるフォーマット又はプレゼンテーションを使用して、識別されたコンテンツを表示する。例えば、マークアップ言語ドキュメント１１１４は、外部システム１１２０及びソーシャルネットワーキングシステム１１３０から検索されたテキスト及び／又は画像データを含む複数のフレームを有するウェブページを生成し表示する命令を含む。様々な実施形態において、マークアップ言語ドキュメント１１１４は、拡張可能マークアップ言語（ＸＭＬ）データ、拡張可能ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、又は他のマークアップ言語データを含むデータファイルを含む。更に、マークアップ言語ドキュメント１１１４は、外部システム１１２０とユーザデバイス１１１０との間でのデータ交換を促進するために、ジャバスクリプト（JavaScript）（登録商標）オブジェクト表記（ＪＳＯＮ）データ、パディングを有するＪＳＯＮ（ＪＳＯＮＰ）、及びジャバスクリプト（JavaScript）（登録商標）データを含み得る。ユーザデバイス１１１０のブラウザアプリケーション１１１２は、ジャバスクリプト（JavaScript）（登録商標）コンパイラを使用して、マークアップ言語ドキュメント１１１４を復号化し得る。
【００８４】
マークアップ言語ドキュメント１１１４は、フラッシュ（FLASH）（商標）又はユニティ（Unity）（商標）アプリケーション、シルバーライト（SilverLight）（商標）アプリケーションフレームワーク等のアプリケーション又はアプリケーションフレームワークを含むか、又はそれらにリンクすることもできる。
【００８５】
一実施形態では、ユーザデバイス１１１０は、ユーザデバイス１１１０のユーザがソーシャルネットワーキングシステム１１３０にログインするか否かを示すデータを含む１つ又は複数のクッキー１１１６も含み、クッキーは、ソーシャルネットワーキングシステム１１３０からユーザデバイス１１１０に通信されるデータの変更を可能にし得る。
【００８６】
外部システム１１２０は、１つ又は複数のウェブページ１１２２ａ、１１２２ｂを含む１つ又は複数のウェブサーバを含み、ウェブページは、ネットワーク１１５０を使用してユーザデバイス１１１０に通信される。外部システム１１２０は、ソーシャルネットワーキングシステム１１３０とは別個である。例えば、外部システム１１２０には第１のドメインが関連付けられ、一方、ソーシャルネットワーキングシステム１１３０には別個のソーシャルネットワーキングドメインが関連付けられる。外部システム１１２０に含まれるウェブページ１１２２ａ、１１２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマット又はプレゼンテーションを指定する命令を含むマークアップ言語ドキュメント１１１４を含む。
【００８７】
ソーシャルネットワーキングシステム１１３０は、複数のユーザを含み、ソーシャルネットワーキングシステムの他のユーザと通信し、対話する能力をソーシャルネットワーキングシステムのユーザに提供する、ソーシャルネットワーキングシステムの１つ又は複数の計算デバイスを含む。幾つかの場合、ソーシャルネットワーキングシステムは、グラフ、すなわち、エッジ及びノードを含むデータ構造によって表すことができる。ソーシャルネットワーキングシステムを表すために、データベース、オブジェクト、クラス、メタ要素、ファイル、又は任意の他のデータ構造を含むが、これらに限定されない他のデータ構造を使用することもできる。ソーシャルネットワーキングシステム１１３０は、オペレータによって監督され、管理され、又は制御され得る。ソーシャルネットワーキングシステム１１３０のオペレータは、人間、自動アプリケーション、又はコンテンツを管理し、ポリシーを調整し、ソーシャルネットワーキングシステム１１３０内の使用尺度を収集する一連のアプリケーションとし得る。任意のタイプのオペレータが使用され得る。
【００８８】
ユーザは、ソーシャルネットワーキングシステム１１３０に加わり、次に、結び付きたいソーシャルネットワーキングシステム１１３０の任意の数の他のユーザへのコネクションを追加し得る。本明細書で使用される場合、「友人」という用語は、ユーザがソーシャルネットワーキングシステム１１３０を介してコネクション、関連、又は関係を形成したソーシャルネットワーキングシステム１１３０の任意の他のユーザを指す。例えば、実施形態では、ソーシャルネットワーキングシステム１１３０内のユーザが、ソーシャルグラフ内のノードとして表される場合、「友人」という用語は、２つのユーザノード間に形成され、２つのユーザノードを直接結び付けるエッジを指すことができる。
【００８９】
コネクションは、ユーザによって明示的に追加されてもよく、又はユーザ（例えば、同じ教育機関の卒業生であるユーザ）の共通の特徴に基づいてソーシャルネットワーキングシステム１１３０によって自動的に作成されてもよい。例えば、第１のユーザは特に、友人である特定の他のユーザを選択する。ソーシャルネットワーキングシステム１１３０でのコネクションは通常、両方向であるが、両方である必要はなく、したがって、「ユーザ」及び「友人」という用語は枠組みに依存する。ソーシャルネットワーキングシステム１１３０のユーザ間のコネクションは通常、２者間（「双方向」）又は「相互」であるが、一方的又は「一方向」であってもよい。例えば、ボブ及びジョーは両方ともソーシャルネットワーキングシステム１１３０のユーザであり、互いに結び付けられる場合、ボブ及びジョーは互いのコネクションである。他方、ボブがジョーに結び付けられ、ジョーによってソーシャルネットワーキングシステム１１３０に通信されたデータを見ることを希望するが、ジョーは相互コネクションを形成することを希望しない場合、一方的なコネクションが確立され得る。ユーザ間のコネクションは、直接的なコネクションであり得るが、ソーシャルネットワーキングシステム１１３０の幾つかの実施形態では、１つ又は複数のレベルのコネクション又は分離度を介して間接的であることができる。
【００９０】
ユーザ間にコネクションを確立し維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム１１３０は、ソーシャルネットワーキングシステム１１３０によってサポートされる様々なタイプのアイテムに対して行動をとる能力をユーザに提供する。これらのアイテムは、ソーシャルネットワーキングシステム１１３０のユーザが属し得るグループ又はネットワーク（すなわち、人々、エンティティ、及び概念のソーシャルネットワーク）、ユーザが関心を有し得るイベント又はカレンダーエントリ、ユーザがソーシャルネットワーキングシステム１１３０を介して使用し得るコンピュータベースのアプリケーション、ユーザがソーシャルネットワーキングシステム１１３０により又はソーシャルネットワーキングシステム１１３０を通して提供されるサービスを介してアイテムを購入又は販売できるようにするトランザクション、及びユーザがソーシャルネットワーキングシステム１１３０内外で実行し得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム１１３０に対して作用し得るアイテムの少数の例にすぎず、多くの他のアイテムが可能である。ユーザは、ソーシャルネットワーキングシステム１１３０内又はソーシャルネットワーキングシステム１１３０とは別個であるか、若しくはネットワーク１１５０を介してソーシャルネットワーキングシステム１１３０に結合される外部システム１１２０内で表されることが可能ないかなるものとでも対話し得る。
【００９１】
ソーシャルネットワーキングシステム１１３０は、様々なエンティティをリンクすることも可能である。例えば、ソーシャルネットワーキングシステム１１３０は、ユーザが、ＡＰＩ、ウェブサービス、又は他の通信チャネルを通して互いと、並びに外部システム１１２０又は他のエンティティと対話できるようにする。ソーシャルネットワーキングシステム１１３０は、複数のエッジで相互接続された複数のノードを含む「ソーシャルグラフ」を生成し維持する。ソーシャルグラフ内の各ノードは、別のノードに作用することができ、且つ／又は別のノードによる作用が可能なエンティティを表し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例としては、ユーザ、非人エンティティ、コンテンツアイテム、ウェブページ、グループ、活動、メッセージ、概念、及びソーシャルネットワーキングシステム１１３０内のオブジェクトによって表すことができる任意の他のものが挙げられる。ソーシャルグラフ内の２つのノード間のエッジは、ノード関係又はノードのうちの一方によって他方のノードに実行された行動に起因し得る２つのノード間の特定の種類のコネクション又は関連を表し得る。幾つかの場合、ノード間のエッジは重み付けされることができる。エッジの重みは、ノード間のコネクション又は関連の強さ等のエッジに関連付けられる属性を表すことができる。異なるタイプのエッジに異なる重みが提供されることができる。例えば、あるユーザが別のユーザを「好き」な場合に作成されるエッジにある重みが与えられ得、一方、ユーザが別のユーザの友人である場合に作成されるエッジには異なる重みが与えられ得る。
【００９２】
例として、第１のユーザが第２のユーザを友人として識別する場合、第１のユーザを表すノード及び第２のユーザを表す第２のノードを結ぶソーシャルグラフ内のエッジが生成される。様々なノードが互いに関係又は対話するため、ソーシャルネットワーキングシステム１１３０は、関係及び対話を反映するように、様々なノードを結ぶエッジを変更する。
【００９３】
ソーシャルネットワーキングシステム１１３０は、ユーザ生成コンテンツも含み、ユーザ生成コンテンツは、ソーシャルネットワーキングシステム１１３０とのユーザの対話を強化する。ユーザ生成コンテンツは、ユーザがソーシャルネットワーキングシステム１１３０に追加し、アップロードし、送信し、又は「掲示」することができるいかなるものも含み得る。例えば、ユーザは、掲示をユーザデバイス１１１０からソーシャルネットワーキングシステム１１３０に通信する。掲示は、ステータス更新若しくは他のテキストデータ、ロケーション情報、写真等の画像、ビデオ、リンク、音楽、又は他の同様のデータ及び／又はメディア等のデータを含み得る。コンテンツは、第３者によってソーシャルネットワーキングシステム１１３０に追加されることもできる。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム１１３０においてオブジェクトとして表される。このようにして、ソーシャルネットワーキングシステム１１３０のユーザは、様々な通信チャネルを通してテキスト及び様々なタイプのメディアのコンテンツアイテムを掲示することにより、互いと通信するように促される。そのような通信は、互いとのユーザの対話を増大させ、ユーザがソーシャルネットワーキングシステム１１３０と対話する頻度を増大させる。
【００９４】
ソーシャルネットワーキングシステム１１３０は、ウェブサーバ１１３２、ＡＰＩ要求サーバ１１３４、ユーザプロフィールストア１１３６、コネクションストア１１３８、行動ロガー１１４０、活動ログ１１４２、認証サーバ１１４４、画像分類モジュール１１４６、及び画像適用モジュール１１４８を含む。実施形態では、ソーシャルネットワーキングシステム１１３０は、様々なアプリケーションの追加、より少数、又は異なる構成要素を含み得る。ネットワークインターフェース、セキュリティメカニズム、ロードバランサー、フェイルオーバサーバ、管理及びネットワーク動作コンソール等の他の構成要素は、システムの詳細を曖昧にしないために示されていない。
【００９５】
ユーザプロフィールストア１１３６は、経歴、人口統計、及びユーザによって宣言されたか、又はソーシャルネットワーキングシステム１１３０によって推測される仕事経験、教育履歴、趣味又は好み、ロケーション等の他のタイプの説明的情報を含め、ユーザアカウントについての情報を保持する。この情報は、各ユーザが一意に識別されるように、ユーザプロフィールストア１１３６に記憶される。ソーシャルネットワーキングシステム１１３０は、異なるユーザ間の１つ又は複数のコネクションを記述するデータもコネクションストア１１３８に記憶する。コネクション情報は、同様又は共通の仕事経験、グループメンバシップ、趣味、又は教育履歴を有するユーザを示し得る。更に、ソーシャルネットワーキングシステム１１３０は、異なるユーザ間のユーザ定義コネクションを含み、ユーザが他のユーザとの関係を指定できるようにする。例えば、ユーザ定義コネクションは、ユーザが、友人、同僚、パートナ等のユーザの現実世界の関係と同様の他のユーザとの関係を生成できるようにする。ユーザは、予め定義されたタイプのコネクションから選択してもよく、又は必要に応じて自身のコネクションタイプを定義してもよい。非人エンティティ、バケツ、クラスタセンター、画像、関心、ページ、外部システム、概念等のソーシャルネットワーキングシステム１１３０での他のノードとのコネクションも、コネクションストア１１３８に記憶される。
【００９６】
ソーシャルネットワーキングシステム１１３０は、ユーザが対話し得るオブジェクトについてのデータを保持する。このデータを保持するために、ユーザプロフィールストア１１３６及びコネクションストア１１３８が、ソーシャルネットワーキングシステム１１３０によって保持される対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクトタイプは、そのタイプのオブジェクトに適切な情報を記憶するのに適する情報フィールドを有する。例えば、ユーザプロフィールストア１１３６は、ユーザのアカウント及びユーザのアカウントに関連する情報の記述に適するデータ構造を含む。特定のタイプの新しいオブジェクトが作成される場合、ソーシャルネットワーキングシステム１１３０は、対応するタイプの新しいデータ構造を初期化し、一意のオブジェクト識別子を割り当て、必要に応じてデータをオブジェクトに追加し始める。これは、例えば、ユーザがソーシャルネットワーキングシステム１１３０のユーザになるときに行われ得、ソーシャルネットワーキングシステム１１３０は、ユーザプロフィールストア１１３６にユーザプロフィールの新しいインスタンスを生成し、一意の識別子をユーザアカウントに割り当て、ユーザアカウントのフィールドに、ユーザによって提供された情報を入れ始める。
【００９７】
コネクションストア１１３８は、他のユーザへのユーザのコネクション、外部システム１１２０へのコネクション、又は他のエンティティへのコネクションを記述するのに適するデータ構造を含む。コネクションストア１１３８は、コネクションタイプもユーザのコネクションに関連付け得、コネクションタイプは、ユーザについての情報へのアクセスを規制するために、ユーザのプライバシー設定と併せて使用され得る。実施形態では、ユーザプロフィールストア１１３６及びコネクションストア１１３８は、連合データベースとして実施され得る。
【００９８】
コネクションストア１１３８、ユーザプロフィールストア１１３６、及び活動ログ１１４２に記憶されたデータは、ソーシャルネットワーキングシステム１１３０が、ノードを使用して様々なオブジェクトを識別し、ノードを結ぶエッジを使用して、異なるオブジェクト間の関係を識別するソーシャルグラフを生成できるようにする。例えば、第１のユーザが、ソーシャルネットワーキングシステム１１３０において第２のユーザとの接続を確立する場合、ユーザプロフィールストア１１３６からの第１のユーザ及び第２のユーザのユーザアカウントは、ソーシャルグラフにおいてノードとして機能し得る。コネクションストア１１３８に記憶される第１のユーザと第２のユーザとのコネクションは、第１のユーザ及び第２のユーザに関連付けられたノード間のエッジである。この例を続けると、次に、第２のユーザは、ソーシャルネットワーキングシステム１１３０内でメッセージを第１のユーザに送信し得る。記憶され得るメッセージを送信するという行動は、ソーシャルグラフで第１のユーザ及び第２のユーザを表す２つのノード間の別のエッジである。更に、メッセージそれ自体が識別され、第１のユーザ及び第２のユーザを表すノードに結ばれた別のノードとして、ソーシャルグラフに含まれ得る。
【００９９】
別の例では、第１のユーザは、ソーシャルネットワーキングシステム１１３０によって保持される画像（又は代替的に、ソーシャルネットワーキングシステム１１３０外の別のシステムによって保持される画像）において、第２のユーザをタグ付けし得る。画像はそれ自体、ソーシャルネットワーキングシステム１１３０内のノードとして表され得る。このタグ付け動作は、第１のユーザと第２のユーザとの間にエッジを作成し得るとともに、各ユーザと画像との間にエッジを作成し得、画像もソーシャルグラフのノードである。更に別の例では、ユーザがイベントへの参加を確認する場合、ユーザ及びイベントは、ユーザプロフィールストア１１３６から得られるノードであり、イベントの参加は、活動ログ１１４２から検索され得るノード間のエッジである。ソーシャルグラフを生成して保持することにより、ソーシャルネットワーキングシステム１１３０は、多くの異なるタイプのオブジェクト及びそれらのオブジェクト間のコネクションを記述するデータを含み、ソーシャル関連情報の豊富なソースを提供する。
【０１００】
ウェブサーバ１１３２は、ネットワーク１１５０を介してソーシャルネットワーキングシステム１１３０を１つ又は複数のユーザデバイス１１１０及び／又は１つ又は複数の外部システム１１２０にリンクする。ウェブサーバ１１３２は、ウェブページ及びジャバ（Java）（登録商標）、ジャバスクリプト（JavaScript）（登録商標）、フラッシュ（Flash）、ＸＭＬ等の他のウェブ関連コンテンツにサービングする。ウェブサーバ１１３２は、メッセージを受信し、ソーシャルネットワーキングシステム１１３０と１つ又は複数のユーザデバイス１１１０との間でメッセージをルーティングするメールサーバ又は他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、待ち行列型メッセージ（例えば、電子メール）、テキスト及びＳＭＳメッセージ、又は任意の他の適するメッセージングフォーマットとすることができる。
【０１０１】
ＡＰＩ要求サーバ１１３４は、１つ又は複数の外部システム１１２０及びユーザデバイス１１１０が、１つ又は複数のＡＰＩ機能を呼び出すことによってソーシャルネットワーキングシステム１１３０からのアクセス情報を呼び出せるようにする。ＡＰＩ要求サーバ１１３４は、ＡＰＩを呼び出すことにより、外部システム１１２０が情報をソーシャルネットワーキングシステム１１３０に送信できるようにもする。外部システム１１２０は、一実施形態では、ネットワーク１１５０を介してＡＰＩ要求をソーシャルネットワーキングシステム１１３０に送信し、ＡＰＩ要求サーバ１１３４はＡＰＩ要求を受信する。ＡＰＩ要求サーバ１１３４は、ＡＰＩ要求に関連付けられたＡＰＩを呼び出して、適切な応答を生成することによって要求を処理し、ＡＰＩ要求サーバ１１３４は、ネットワーク１１５０を介して適切な応答を外部システム１１２０に通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ１１３４は、外部システム１１２０にログインしたことがあるユーザのコネクション等のユーザに関連付けられたデータを収集し、収集されたデータを外部システム１１２０に通信する。別の実施形態では、ユーザデバイス１１１０は、外部システム１１２０と同じように、ＡＰＩを介してソーシャルネットワーキングシステム１１３０と通信する。
【０１０２】
行動ロガー１１４０は、ソーシャルネットワーキングシステム１１３０内外でのユーザ行動についての通信をウェブサーバ１１３２から受信することが可能である。行動ロガー１１４０は、ユーザ行動についての情報を活動ログ１１４２に入れ、ソーシャルネットワーキングシステム１１３０が、ソーシャルネットワーキングシステム１１３０内及びソーシャルネットワーキングシステム１１３０外でユーザがとった様々な行動を発見できるようにする。特定のユーザがソーシャルネットワーキングシステム１１３０での別のノードに関してとった任意の行動には、活動ログ１１４２又は同様のデータベース若しくは他のデータリポジトリに保持された情報を通して、各ユーザのアカウントが関連付けられ得る。識別された記憶されたソーシャルネットワーキングシステム１１３０内のユーザがとった行動の例は、例えば、別のユーザへのコネクションの追加、別のユーザへのメッセージの送信、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツの閲覧、別のユーザによって掲示されたイベントへの参加、画像の掲示、画像を掲示する試み、又は別のユーザ若しくは別のオブジェクトと対話する他の行動を含み得る。ユーザがソーシャルネットワーキングシステム１１３０内で行動をとる場合、その行動は活動ログ１１４２に記録される。一実施形態では、ソーシャルネットワーキングシステム１１３０は、エントリのデータベースとして活動ログ１１４２を保持する。行動がソーシャルネットワーキングシステム１１３０内でとられる場合、その行動のエントリが活動ログ１１４２に追加される。活動ログ１１４２は行動ログと呼ばれ得る。
【０１０３】
更に、ユーザ行動には、ソーシャルネットワーキングシステム１１３０とは別個の外部システム１１２０等のソーシャルネットワーキングシステム１１３０外のエンティティ内で生じる概念及び行動を関連付け得る。例えば、行動ロガー１１４０は、ウェブサーバ１１３２から、外部システム１１２０とのユーザの対話を記述するデータを受信し得る。この例では、外部システム１１２０は、ソーシャルグラフ内の構造化された行動及びオブジェクトに従ってユーザの対話を報告する。
【０１０４】
ユーザが外部システム１１２０と対話する行動の他の例としては、ユーザが外部システム１１２０又は別のエンティティ内で関心を表現すること、ユーザが、外部システム１１２０又は外部システム１１２０内のウェブページ１１２２ａを考察するコメントをソーシャルネットワーキングシステム１１３０に掲示すること、ユーザが外部システム１１２０に関連付けられたユニフォームリソースロケータ（ＵＲＬ）又は他の識別子をソーシャルネットワーキングシステム１１３０に掲示すること、ユーザが外部システム１１２０に関連付けられたイベントに参加すること、又は外部システム１１２０に関連するユーザによる任意の他の行動が挙げられる。したがって、活動ログ１１４２は、ソーシャルネットワーキングシステム１１３０のユーザと、ソーシャルネットワーキングシステム１１３０とは別個の外部システム１１２０との対話を記述する行動を含み得る。
【０１０５】
認証サーバ１１４４は、ソーシャルネットワーキングシステム１１３０のユーザの１つ又は複数のプライバシー設定を施行する。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がいかに共有されることができるかを決定する。プライバシー設定は、ユーザに関連付けられた特定の情報の指定と、情報を共有することができる１つ又は複数のエンティティの指定とを含む。情報を共有することができるエンティティの例は、他のユーザ、アプリケーション、外部システム１１２０、又は情報に潜在的にアクセスすることができる任意のエンティティを含み得る。ユーザによって共有することができる情報は、プロフィール写真等のユーザアカウント情報、ユーザに関連付けられた電話番号、ユーザのコネクション、コネクションの追加、ユーザプロフィール情報の変更等のユーザがとった行動等を含む。
【０１０６】
プライバシー設定指定は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき特定の情報を識別し得、プライバシー設定は、プロフィール写真、家の電話番号、及びステータスを含む個人情報等の仕事用電話番号又は特定の関連情報セットを識別する。代替的には、プライバシー設定は、ユーザに関連付けられた全ての情報に適用され得る。特定の情報にアクセスすることができるエンティティセットの指定も、様々なレベルの粒度で指定することができる。情報を共有することができる様々なエンティティセットは、例えば、ユーザの全ての友人、友人の全ての友人、全てのアプリケーション、又は全ての外部システム１１２０を含み得る。一実施形態では、エンティティセットの指定はエンティティの一覧を含むことができる。例えば、ユーザは、特定の情報にアクセス許可されている外部システム１１２０のリストを提供し得る。別の実施形態では、指定は、情報にアクセス許可されていない例外と共にエンティティセットを含むことができる。例えば、ユーザは、全ての外部システム１１２０がユーザの仕事情報にアクセスすることを許可し得るが、仕事情報にアクセス許可されていない外部システム１１２０のリストを指定し得る。特定の実施形態は、特定の情報にアクセス許可されていない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって指定されたブロックリストに属する外部システム１１２０は、プライバシー設定で指定される情報へのアクセスから遮断される。情報の指定の粒度及び情報が共有されるエンティティの指定の粒度の様々な組合せが可能である。例えば、全ての個人情報は友人と共有され得、一方、全ての仕事情報は、友人の友人と共有され得る。
【０１０７】
認証サーバ１１４４は、ユーザに関連付けられた特定の情報にユーザの友人、外部システム１１２０、及び／又は他のアプリケーション及びエンティティがアクセスすることができるか否かを判断する論理を含む。外部システム１１２０は、ユーザの仕事用電話番号等のユーザのより私的で機密性のある情報にアクセスするため、認証サーバ１１４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ１１４４は、別のユーザ、外部システム１１２０、アプリケーション、又は別のエンティティが、ユーザがとった行動についての情報を含め、ユーザに関連付けられた情報にアクセス許可されているか否かを判断する。
【０１０８】
図１１の例では、ソーシャルネットワーキングシステム１１３０は、本明細書により詳細に説明されるように、画像分類モジュール１１４６及び画像適用モジュール１１４８を含み得る。実施形態では、画像分類モジュール１１４６は、画像群のサンプルセットのコンテキストキューを収集し、コンテキストキューを使用して、画像群のトレーニングセットを生成し得る。画像群のトレーニングセットが使用されて、画像クラスの視覚的パターンテンプレートを生成するように分類器がトレーニングされ得る。分類器は、視覚的パターンテンプレートとの相関に基づいて、画像群の評価セットをスコア付けし得る。画像群の評価セットの最高スコア画像は、画像クラスに最も密に関連すると考えられ得る。実施形態では、画像分類モジュール１１４６は、画像分類モジュール１０４として実施され得る。画像適用モジュール１１４８は、他のアプリケーションとインターフェースして、分類画像の検索を可能にし得る。実施形態では、画像適用モジュール１１４８は、画像適用モジュール１０６として実施され得る。
【０１０９】
［ハードウェア実施］
上記プロセス及び特徴は、広範囲のマシン及びコンピュータシステムアーキテクチャにより、広範囲のネットワーク及び計算環境で実施することができる。図１２は、実施形態により本明細書に記載される実施形態の１つ又は複数の実施に使用され得るコンピュータシステム１２００の例を示す。コンピュータシステム１２００は、コンピュータシステム１２００に本明細書に記載されるプロセス及び特徴を実行させる命令セットを含む。コンピュータシステム１２００は、他のマシンに接続（例えば、ネットワーク接続）され得る。ネットワーク接続された展開では、コンピュータシステム１２００は、クライアント−サーバネットワーク環境でのサーバマシン若しくはクライアントマシンとして、又はピアツーピア（若しくは分散）ネットワーク環境でのピアマシンとして動作し得る。実施形態では、コンピュータシステム１２００は、ソーシャルネットワーキングシステム１１３０、ユーザデバイス１１１０、及び外部システム１１２０、又はそれらの構成要素とし得る。実施形態では、コンピュータシステム１２００は、ソーシャルネットワーキングシステム１１３０の全て又は部分を構成する多くのうちの１つのサーバとし得る。
【０１１０】
コンピュータシステム１２００は、プロセッサ１２０２、キャッシュ１２０４、及び本明細書に記載されるプロセス及び特徴に向けられた、コンピュータ可読媒体に記憶された１つ又は複数の実行可能モジュール及びドライバを含む。更に、コンピュータシステム１２００は、高性能入／出力（Ｉ／Ｏ）バス１２０６及び標準Ｉ／Ｏバス１２１２を含む。ホストブリッジ１２１０は、プロセッサ１２０２を高性能Ｉ／Ｏバス１２０６に結合し、一方、Ｉ／Ｏバスブリッジ１２１２は、２つのバス１２０６及び１２１２を互いに結合する。システムメモリ１２１４及びネットワークインターフェース１２１６は、高性能Ｉ／Ｏバス１２０６に結合する。コンピュータシステム１２００は、ビデオメモリ（図示せず）に結合されたビデオメモリ及び表示装置を更に含み得る。大容量記憶装置１２１８及びＩ／Ｏポート１２２０は、標準Ｉ／Ｏバス１２１２に結合する。コンピュータシステム１２００は任意選択的に、キーボード及びポインティングデバイス、表示装置、又は標準Ｉ／Ｏバス１２１２に結合された他の入／出力デバイス（図示せず）を含み得る。まとめて、これらの要素は、カリフォルニア州サンタクララに所在のインテル社（Intel Corporation）製のｘ１２６互換性プロセッサ、カリフォルニア州サニーベールに所在のアドバンストマイクロデバイセズ（Advanced Micro Devices）（ＡＭＤ）社製のｘ１２６互換性プロセッサ、及び任意の他の適するプロセッサに基づくコンピュータシステムを含むが、これらに限定されない広いカテゴリのコンピュータハードウェアシステムを表すことが意図される。
【０１１１】
オペレーティングシステムは、ソフトウェアアプリケーション（図示せず）とのデータの入出力を含め、コンピュータシステム１２００の動作を管理し制御する。オペレーティングシステムは、システムで実行中のソフトウェアアプリケーションとシステムのハードウェア構成要素との間のインターフェースを提供する。リナックス（LINUX）（登録商標）オペレーティングシステム、カリフォルニア州クパチーノに所在のアップルコンピュータ社（Apple Computer Inc.）から入手可能なアップルマッキントッシュ（Apple Macintosh）（登録商標）オペレーティングシステム、ユニックス（UNIX）（登録商標）オペレーティングシステム、マイクロソフト（Microsoft）（登録商標）ウィンドウズ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステム等の任意の適するオペレーティングシステムが使用され得る。他の実施も可能である。
【０１１２】
コンピュータシステム１２００の要素について、更に詳細に以下に説明する。特に、ネットワークインターフェース１２１６は、コンピュータシステム１２００と、イーサネット（Ethernet）（登録商標）（例えば、ＩＥＥＥ１２０２．３）ネットワーク、バックプレーン等の任意の広範囲のネットワークとの間の通信を提供する。大容量記憶装置１２１８は、上記で識別された各計算システムによって実施される上記プロセス及び特徴を実行するためのデータ及びプログラミング命令の永続的な記憶を提供し、一方、システムメモリ１２１４（例えば、ＤＲＡＭ）は、プロセッサ１２０２によって実行される場合、データ及びプログラミング命令の一時的な記憶を提供する。Ｉ／Ｏポート１２２０は、コンピュータシステム１２００に結合され得る追加の周辺デバイス間に通信を提供する１つ又は複数のシリアル及び／又はパラレル通信ポートとし得る。
【０１１３】
コンピュータシステム１２００は、様々なシステムアーキテクチャを含み得、コンピュータシステム１２００の様々な構成要素は再構成され得る。例えば、キャッシュ１２０４は、プロセッサ１２０２と共にオンチップであり得る。代替的には、キャッシュ１２０４及びプロセッサ１２０２は、「プロセッサモジュール」として一緒にパッケージされ得、プロセッサ１２０２は「プロセッサコア」と呼ばれる。更に、特定の実施形態は、上記構成要素の全てを必要とせず、且つ含まないことがある。例えば、標準Ｉ／Ｏバス１２１２に結合された周辺デバイスは、高性能Ｉ／Ｏバス１２０６に結合し得る。加えて、幾つかの実施形態では、単一のバスのみが存在し得、コンピュータシステム１２００の構成要素は単一のバスに結合される。更に、コンピュータシステム１２００は、追加のプロセッサ、記憶デバイス、又はメモリ等の追加の構成要素を含み得る。
【０１１４】
一般に、本明細書に記載されるプロセス及び特徴は、オペレーティングシステムの一環として又は特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「プログラム」と呼ばれる一連の命令として実施され得る。例えば、１つ又は複数のプログラムが、本明細書に記載される特定のプロセスの実行に使用され得る。プログラムは通常、１つ又は複数のプロセッサによって読み取られて実行されると、本明細書に記載されるプロセス及び特徴を実行する動作をコンピュータシステム１２００に実行させる、コンピュータシステム１２００内の様々なメモリ及び記憶デバイス内の１つ又は複数の命令を含む。本明細書に記載されるプロセス及び特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば、特定用途向け集積回路）、又はそれらの任意の組合せで実施され得る。
【０１１５】
一実装形態では、本明細書に記載されるプロセス及び特徴は、個々に又は分散計算環境で集合的にコンピュータシステム１２００によって実行される一連の実行可能モジュールとして実施される。上記モジュールは、ハードウェア、コンピュータ可読媒体（又はマシン可読媒体）に記憶された実行可能モジュール、又は両方の組合せによって実現され得る。例えば、モジュールは、プロセッサ１２０２等のハードウェアシステム内のプロセッサによって実行される複数又は一連の命令を含み得る。まず、一連の命令は、大容量記憶装置１２１８等の記憶デバイスに記憶され得る。しかし、一連の命令は、任意の適するコンピュータ可読記憶媒体に記憶することができる。更に、一連の命令は、ローカルに記憶される必要はなく、ネットワークインターフェース１２１６を介して、ネットワーク上のサーバ等のリモート記憶デバイスから受信することができる。命令は、大容量記憶装置１２１８等の記憶デバイスからシステムメモリ１２１４にコピーされ、次に、プロセッサ１２０２によってアクセスされ実行される。様々な実装形態では、１つ又は複数のモジュールは、並列処理環境での複数のサーバ等の１つ又は複数のロケーションにある１つ又は複数のプロセッサによって実行することができる。
【０１１６】
コンピュータ可読媒体の例としては、揮発性メモリデバイス及び不揮発性メモリデバイス等の記録可能型媒体、固体状態メモリ、フロッピー（登録商標）及び他のリムーバブルディスク、ハードディスクドライブ、磁気媒体、光ディスク（例えば、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的（又は一時的）有形（又は非有形）記憶媒体、又はコンピュータシステム１２００によって実行されて、本明細書に記載されるプロセス及び特徴の任意の１つ又は複数を実行する一連の命令の記憶、符号化、又は搬送に適する任意のタイプの媒体が挙げられるが、これらに限定されない。
【０１１７】
説明のため、説明の完全な理解を提供するために、多くの特定の詳細が記載されている。しかし、これらの特定の詳細なしで本開示の実施形態が実施可能なことが当業者には明らかである。幾つかの場合、説明を曖昧にしないように、モジュール、構造、プロセス、特徴、及びデバイスがブロック図の形態で示されている。他の場合、機能ブロック図及び流れ図は、データ及び論理フローを表すために示されている。ブロック図及び流れ図（例えば、モジュール、ブロック、構造、デバイス、特徴等）の構成要素は、本明細書に明示的に記載され示される以外の方法で様々に組み合せられ、分離され、除去され、記録され、置換され得る。
【０１１８】
本明細書での「一実施形態」、「実施形態」、「幾つかの実施形態」、「様々な実施形態」、「特定の実施形態」、「他の実施形態」、「一連の実施形態」等への参照は、その実施形態に関連して説明された特定の特徴、設計、構造、又は特性が、本開示の少なくとも一つの実施形態に含まれることを意味する。例えば、本明細書での様々な箇所での「一実施形態において」又は「実施形態において」という語句の出現は必ずしも、全てが同じ実施形態を指すわけではなく、他の実施形態と相互に排他的な別個又は代替の実施形態であるわけでもない。更に、「実施形態」等の明示的な参照があるか否かに関係なく、様々な特徴が記載され、様々な特徴は、様々に組合せられ得、幾つかの実施形態に含まれ得るが、他の実施形態では様々に省かれることもできる。同様に、幾つかの実施形態では好ましいか、又は必要とされ得るが、他の実施形態ではそうではない様々な特徴が記載されている。
【０１１９】
本明細書で使用される用語は主に、読みやすさ及び教示を目的として選択され、本発明の主題を描写するか、又は限定するために選択されていない。したがって、範囲がこの詳細な説明によってではなく、本明細書に基づく出願に対して発行される任意の特許請求の範囲によって限定されることが意図される。したがって、実施形態の開示は、範囲の限定ではなく例示を意図し、範囲は以下の特許請求の範囲に記載される。
【図１】
0006612229.tif 000002
【図２Ａ】
0006612229.tif 000003
【図２Ｂ】
0006612229.tif 000004
【図３】
0006612229.tif 000005
【図４】
0006612229.tif 000006
【図５】
0006612229.tif 000007
【図６】
0006612229.tif 000008
【図７】
0006612229.tif 000009
【図８】
0006612229.tif 000010
【図９】
0006612229.tif 000011
【図１０】
0006612229.tif 000012
【図１１】
0006612229.tif 000013
【図１２】
0006612229.tif 000014