(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
ユーザがネットワークサービス内で対話することのできるオブジェクト候補を受信すること、
前記ユーザが肯定的対話をもったことのある複数の第１オブジェクトの各々について、前記オブジェクト候補と前記複数の第１オブジェクトの各々との間の共通性を表す第１の値を判定すること、
ユーザが否定的対話をもったことのある複数の第２オブジェクトの各々について、前記オブジェクト候補と前記複数の第２オブジェクトの各々との間の共通性を表す第２の値を判定すること、
複数の第１の値を用いて総肯定的距離を判定することであって、前記総肯定的距離は、前記複数の第１の値の合計または平均を第１外れ値で除算することによって判定され、前記第１外れ値は、ユーザが肯定的対話をしたことがあるものの前記複数の第１オブジェクトの各々よりも前記オブジェクト候補との共通点が少ないオブジェクトに対応する、前記総肯定的距離を判定すること、
複数の第２の値を用いて総否定的距離を判定することであって、前記総否定的距離は、前記複数の第２の値の合計または平均を第２外れ値で除算して判定され、前記第２外れ値は、ユーザが否定的対話をもったことがあるものの前記複数の第２オブジェクトの各々よりも前記オブジェクト候補との共通点が少ないオブジェクトに対応する、前記総否定的距離を判定すること、
前記総肯定的距離と前記総否定的距離との差から、前記オブジェクト候補はユーザが否定的対話をしたことのあるオブジェクトよりもユーザが肯定的対話をしたことのあるオブジェクトと共通点が多いという判定に応じて、ユーザにオブジェクト候補を推奨すること、を備えるコンピュータ実装方法。
【請求項２】
前記ネットワークサービス内のユーザに接続されている１つ以上のユーザからの肯定的フィードバックに基づいて、オブジェクト候補とするオブジェクトを選択することをさらに備える請求項１に記載のコンピュータ実装方法。
【請求項３】
各第１の値は、第３および第４の値の組み合わせに基づいており、
前記第３の値は、前記オブジェクト候補と前記複数の第１オブジェクト内の対応するオブジェクトとの間のメタデータの共通性を表し、
前記第４の値は、前記オブジェクト候補および前記複数の第１オブジェクト内の対応するオブジェクトの両方と肯定的対話をした１つ以上の他のユーザを表しており、
各第２の値は、第５および第６の値の組み合わせに基づいており、
前記第５の値は、前記オブジェクト候補と前記複数の第２オブジェクト内の対応するオブジェクトとの間のメタデータの共通性を表し、
前記第６の値は、前記オブジェクト候補および前記複数の第２オブジェクト内の対応するオブジェクトの両方と否定的対話をした１つ以上のユーザを表す、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記第３の値の各々を、判定した第３の値と第１加重値との間の数学的演算の結果に修正すること、
前記第４の値の各々を、判定した第４の値と第２加重値との間の数学的演算の結果に修正すること、
前記第５の値の各々を、判定した第５の値と第３加重値との間の数学的演算の結果に修正すること、
前記第６の値の各々を、判定した第６の値と第４加重値との間の数学的演算の結果に修正すること、をさらに備える請求項３に記載のコンピュータ実装方法。
【請求項５】
前記オブジェクト候補のオブジェクトタイプに基づいて、前記第１〜第４加重値の１つ以上を選択することをさらに備える請求項４に記載のコンピュータ実装方法。
【請求項６】
前記複数の第１オブジェクト内のオブジェクトの数は、前記オブジェクト候補と共通の最大量を有すると判定されるオブジェクトの数に制限される、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記複数の第１オブジェクト内のオブジェクトの数は、前記オブジェクト候補のオブジェクトタイプに基づく、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記オブジェクト候補は、総肯定的値が総否定的値よりも閾値量だけ小さいとの判定、または前記総肯定的値が前記総否定的値よりも閾値量だけ大きいとの判定に応じて、ユーザに推奨される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記閾値量は、前記オブジェクト候補のオブジェクトタイプに基づく、請求項８に記載のコンピュータ実装方法。
【請求項１０】
１つ以上の第１または第２の外れ値は、総肯定的および否定的距離の判定から除かれている、請求項１に記載のコンピュータ実装方法。
【請求項１１】
処理デバイス内の１つ以上のプロセッサで実行したときに、前記処理デバイスに方法を実行させる命令を格納する非一時的コンピュータ読取可能媒体であって、前記方法は、
ユーザがネットワークサービス内で対話することのできるオブジェクト候補を受信すること、
前記ユーザが肯定的対話をもったことのある複数の第１オブジェクトの各々について、前記オブジェクト候補と前記複数の第１オブジェクトの各々との間の共通性を表す第１の値を判定すること、
前記ユーザが否定的対話をもったことのある複数の第２オブジェクトの各々について、前記オブジェクト候補と前記複数の第２オブジェクトとの間の共通性を表す第２の値を判定すること、
前記第１の値を複数個用いて総肯定的距離を判定することであって、前記総肯定的距離は、前記複数の第１の値の合計または平均を第１外れ値で除算して判定され、前記第１外れ値は、前記ユーザが肯定的対話をもったことがあるものの前記複数の第１オブジェクトの各々よりも前記オブジェクト候補との共通点が少ないオブジェクトに対応する、前記総肯定的距離を判定すること、
前記第２の値を複数個用いて総否定的距離を判定することであって、前記総否定的距離は、前記複数の第２の値の合計または平均を第２外れ値で除算して判定され、前記第２外れ値は、前記ユーザが否定的対話をもったことがあるものの前記複数の第２オブジェクトの各々よりも前記オブジェクト候補との共通点が少ないオブジェクトに対応する、前記総否定的距離を判定すること、
前記総肯定的距離と前記総否定的距離との差から、前記オブジェクト候補は、ユーザが否定的対話をもったことのあるオブジェクトよりも、ユーザが肯定的対話をもったことのあるオブジェクトとの共通点が多いという判定に応じて、前記オブジェクト候補をユーザに推奨すること、を備える非一時的コンピュータ読取可能媒体。
【請求項１２】
前記方法は、
前記ネットワークサービス内の前記ユーザとつながりのある１つ以上のユーザからの肯定的フィードバックに基づいて、オブジェクト候補とするオブジェクトを選択することをさらに備える、請求項１１の非一時的コンピュータ読取可能媒体。
【請求項１３】
各第１の値は、第３および第４の値の組み合わせに基づいており、
前記第３の値は、前記オブジェクト候補と前記複数の第１オブジェクト内の対応するオブジェクトとの間のメタデータの共通性を表し、
前記第４の値は、前記オブジェクト候補および前記複数の第１オブジェクト内の対応するオブジェクトの両方と肯定的対話をした１つ以上の他のユーザを表し、
各第２の値は、第５および第６の値の組み合わせに基づいており、
前記第５の値は、前記オブジェクト候補と前記複数の第２オブジェクト内の対応するオブジェクトとの間のメタデータの共通性を表し、
前記第６の値は、前記オブジェクト候補および前記複数の第２オブジェクト内の対応するオブジェクトの両方と否定的対話をした１つ以上の他のユーザを表す、請求項１１に記載の非一時的コンピュータ読取可能媒体。
【請求項１４】
前記方法は、
前記第３の値の各々を、判定した第３の値と第１加重値との間の数学的演算の結果に修正すること、
前記第４の値の各々を、判定した第４の値と第２加重値との間の数学的演算の結果に修正すること、
前記第５の値の各々を、判定した第５の値と第３加重値との間の数学的演算の結果に修正すること、
前記第６の値の各々を、判定した第６の値と第４加重値との間の数学的演算の結果に修正すること、をさらに備える、請求項１３に記載の非一時的コンピュータ読取可能媒体。
【請求項１５】
前記方法は、
前記第１〜第４加重値の１つ以上を前記オブジェクト候補のオブジェクトタイプに基づいて選択することをさらに備える、請求項１４に記載の非一時的コンピュータ読取可能媒体。
【請求項１６】
前記複数の第１オブジェクト内のオブジェクト数は、前記オブジェクト候補と共通の最大量を有すると判定されるオブジェクトの数に制限される、請求項１１に記載の非一時的コンピュータ読取可能媒体。
【請求項１７】
前記複数の第１オブジェクト内のオブジェクト数は、前記オブジェクト候補のオブジェクトタイプに基づく、請求項１６に記載の非一時的コンピュータ読取可能媒体。
【請求項１８】
前記オブジェクト候補は、総肯定的値が総否定的値よりも閾値量だけ小さいとの判定、または前記総肯定的値が前記総否定的値よりも閾値量だけ大きいとの判定に応じて、ユーザに推奨される、請求項１１に記載の非一時的コンピュータ読取可能媒体。
【請求項１９】
前記閾値量は、前記オブジェクト候補のオブジェクトタイプに基づく、請求項１８に記載の非一時的コンピュータ読取可能媒体。
【請求項２０】
１つ以上の第１または第２の外れ値が、総肯定的距離および総否定的距離の判定から除かれている、請求項１１に記載の非一時的コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明するさまざまな実施形態は、ネットワークサービス内のオブジェクトのランク付けおよび推奨に関わる。具体的には、実施形態は、各オブジェクト候補と、ユーザが肯定的および否定的対話をもったことのある１つ以上のオブジェクトとの共通性に基づいた、オブジェクトのランク付けおよび推奨に関わる。
【背景技術】
【０００２】
ネットワークサービスによりユーザはさまざまなオブジェクトと対話することができる。例えば、ソーシャル・ネットワーキング・システムは、ユーザが他のユーザもしくは団体を仲間として指定し（または、他のユーザもしくは団体とその他つながる、または関係を作る）、その仲間に寄与して対話し、画像もしくはコメントを投稿し、アプリケーションを使用し、グループに参加し、イベントの出席者を列挙して確認し、仲間を招待し、社会的交流を容易にする他の作業を行うことを可能にする。外部アプリケーションはソーシャル・ネットワーキング・システムのサービスを利用して、認証ユーザに上記社会的交流のいくつかを外部アプリケーションの使用と融合することも可能にする。同様な交流は他のネットワークサービス内のユーザ体験の一部である。
【０００３】
これらの交流内で、ユーザはソーシャル・ネットワーキング・システムで表されるオブジェクトに関して肯定的および否定的フィードバックを発する。例えば、ユーザは、ある特定の本が気に入ったことを示すアクションを取ることができる（すなわち、肯定的フィードバック）。さらに、ユーザは、別の本に興味があるのではないかというネットワークサービス内の推奨を断ることができる（すなわち、否定的フィードバック）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例示的な方法、装置およびシステムは、ユーザがネットワークサービス内で対話することのできるオブジェクト候補を受信する。ユーザが肯定的対話をもったことのある複数の第１オブジェクトの各々について、オブジェクト候補と複数の第１オブジェクトの各々との間の共通性を表す第１の値を判定する。ユーザが否定的対話をもったことのある複数の第２オブジェクトの各々について、オブジェクト候補と複数の第２オブジェクトの各々との間の共通性を表す第２の値を判定する。複数の第１の値を用いて、総肯定的距離を判定する。複数の第２の値を用いて、総否定的距離を判定する。総肯定的距離と総否定的距離との差に基づいて、オブジェクト候補を推奨項目としてユーザに対して表示し、または表示しない。
【課題を解決するための手段】
【０００５】
ある実施形態において、総肯定的距離は複数の第１の値の合計または平均を第１外れ値で除して判定し、該第１外れ値はユーザが肯定的対話をもったことがあるものの複数の第１オブジェクトの各々よりもオブジェクト候補との共通点が少ないオブジェクトに対応する。同様に、総否定的距離は、複数の第２の値の合計または平均を第２外れ値で除して判定し、該第２外れ値はユーザが否定的対話をもったことがあるものの複数の第２オブジェクトの各々よりもオブジェクト候補との共通点が少ないオブジェクトに対応する。
【０００６】
他の特徴および利点は、添付の図面および詳細な説明から明らかになろう。
【図面の簡単な説明】
【０００７】
【図１】オブジェクト候補を推奨項目として表示するかどうかを判定する例示的な方法を示すフローチャートである。
【図２】ソーシャルネットワーク内のオブジェクトに関するユーザアクションの例示的なグラフを示す。
【図３】オブジェクト候補と、ユーザが肯定的または否定的対話をもったことのあるオブジェクトとの間の例示的な肯定的および否定的距離を示す。
【図４】ブロック図として、例示的なソーシャルネットワークを示す。
【図５】ブロック図として、ソーシャルネットワーク内のオブジェクトをランク付けして推奨する例示的な処理システムを示す。
【発明を実施するための形態】
【０００８】
本発明は、添付の図面の図に制限ではなく、例として図示しており、図面において同じ符号は同様な要素を示す。
本明細書で説明する実施形態は、オブジェクト候補を推奨項目としてユーザに対して表示するべきかどうかを判定する。他のオブジェクトとの肯定的および否定的対話のユーザ履歴を用いて、実施形態はオブジェクト候補が肯定的オブジェクトまたは否定的オブジェクトのどちらとより共通点が多いかを判定する。その結果、ネットワークサービスは、ただ人気があるものよりもユーザの確かな嗜好に基づいて、ユーザに個別化された推奨項目を提示することができる。さらに、ユーザの対話履歴の広がりを考慮することで、ネットワークサービスはオブジェクト候補の多種多様な集合を推奨することができる。
【０００９】
図１は、オブジェクト候補を推奨項目として表示するかどうかを判定する例示的な方法１００を示すフローチャートである。ブロック１０５で、ネットワークサービスはオブジェクト候補を受信または選択する。本明細書で使用されるオブジェクト（また、そのためオブジェクト候補）とは、ユーザがネットワークサービス内で対話することのできるアイテムをいう。例えば、ソーシャルネットワーク内のオブジェクトはユーザ、団体、（さまざまな形態の）媒体、有形（例：購入することができる）アイテムの表象物、組織、公人等を含む。ある実施形態において、オブジェクト候補はカテゴリまたは業種に基づいて選択または受信される。例えば、ユーザは音楽を表すオブジェクト（歌手／バンド、アルバム／楽曲等）を視聴、評価またはその他対話することができ、ネットワークサービスは推奨項目の候補として音楽オブジェクトを受信し、または選択する。例示的なカテゴリ／業種には、音楽、テレビ、映画、本、スポーツ、ファッション、場所、技術製品、自動車、金融等を含む。
【００１０】
ある実施形態において、ネットワークサービスはオブジェクト候補を選択する。例えば、ネットワークサービスのユーザに関するオブジェクト候補は、１つ以上のネットワークサービスの全人口集団内の人気、１つ以上のネットワークサービス内のユーザの特定の人口集団内の人気、１つ以上のネットワークサービス内のユーザにつながりのあるまたはその他関連するユーザからの肯定的フィードバック、１つ以上のネットワークサービス内のユーザのネットワークサービス履歴のオブジェクトとの関連性もしくは類似度、１つ以上のネットワークサービス内に列記もしくはその他表現されるユーザの興味に基づいて選択することができる。あるいは、ネットワークサービスは別のネットワークサービスまたはツールが選択するオブジェクト候補を受信する。
【００１１】
ある実施形態において、ネットワークサービスは、前述したオブジェクト候補の選択のためにソーシャルネットワークデータを利用する。図２は、ソーシャルネットワークデータの例示的なグラフ２００を示す。グラフ２００において、オブジェクトは円で図示され、アクションは円と円の間のラベル付きのつながりとして図示される。ソーシャルネットワークまたは対応するソーシャルネットワークアプリケーションの開発者は、ユーザがソーシャルネットワークおよびそのアプリケーション、もしくはソーシャルネットワークまたはそのアプリケーションと対話できる様々な方法を表すアクションを定義する。ユーザがアクションを行うと、ユーザとオブジェクトとの間につながりが作られる。例えば、ユーザＡは、かつてボストンに住んでいたこと、現在ワシントンＤＣに住んでいること、民主党員および憲法支持者のグループに参加したこと、ホワイト・ソックスを応援していること、およびユーザＢと友達であることを示すソーシャルネットワーク内で多数のアクションを行ってきた。ユーザＢおよびユーザＣもグラフ２００内のオブジェクトに関して多数のアクションを行ってきた。
【００１２】
ある実施形態において、ユーザはユーザプロフィール２０５〜２１５に人口統計学的情報を付け加えることができる。ある実施形態では、ユーザがこれまで入力していなかった人口統計学的情報について、ソーシャルネットワークアプリケーションはユーザのアクション、仲間および／または仲間のアクションに基づいて推定を生成する。例えば、ユーザＢはユーザプロフィール２１０に出身校を入力していない。ソーシャルネットワークアプリケーションはユーザＢの連絡先、活動、居住都市等から、ユーザＢのありうる出身校がブリガムヤング大学およびハーバード大学のうちの一方または両方であると判定することができる。ある実施形態では、ユーザプロフィール２０５〜２１０は、他のユーザとの関係、ユーザの過去の勤務地、ユーザの興味等など、追加情報を含む。
【００１３】
ある実施形態において、人口統計学的データは、ユーザとオブジェクトとのアフィニティ（affinity）を示す加重またはスコアをさらに含む。例えば、あるオブジェクトに関して繰り返されるユーザアクションは、ユーザが限られた対話しかもたない別のオブジェクトよりも強いオブジェクトに対するアフィニティを示すであろう。第１のつながり度、例えば、ユーザＡとユーザＢの交友関係は、第２のつながり度、例えばユーザＡがユーザＣの友人であるユーザＢの友人で、ユーザＡとユーザＣとの間に第２のつながり度を生むよりも強いアフィニティを示すであろう。２名のユーザが結婚している指示は、２名のユーザが友人である場合よりも強いアフィニティを示すであろう。さらに、アクション／ユーザの時間的および地理的な近さは、他の例示的なアフィニティの指標である。
【００１４】
図示されるオブジェクト、つながり、プロフィールおよびアフィニティの値は、上記説明したようにオブジェクト候補を選択するために使用される例示的なネットワークサービスデータである。例えば、ユーザＢはザ・キラーズの音楽を聴いた。ユーザＡがユーザＢの友人である（またはその他つながりがある）結果、ザ・キラーズの音楽をユーザＡに推奨する可能性のあるオブジェクト候補として選択することができる。ある実施形態では、ユーザはネットワークサービスデータを共有するもの、データを共有する人、および／またはオブジェクト候補を選択するために用いられるデータを制御するためのプライバシー設定を選択することができる。
【００１５】
図１に戻ると、ブロック１１０で、ネットワークサービスは、ユーザが肯定的対話をもったことのある各オブジェクトについて、オブジェクト候補と肯定的オブジェクトとの間の共通性を表す第１の値を判定する。同様に、ブロック１１５で、ネットワークサービスは、ユーザが否定的対話をもったことのある各オブジェクトについて、オブジェクト候補と否定的オブジェクトとの間の共通性を表す第２の値を判定する。例えば、ネットワークサービスはユーザが対話したことのあるオブジェクトの履歴を維持し、または（例：第三者アプリケーションから）受信することができる。ネットワークサービスは、ユーザが肯定的対話をもったことのあるオブジェクトおよびユーザが否定的対話をもったことのあるオブジェクトのリストに履歴を維持し、または受信する。例えば、肯定的および否定的対話は、前述したグラフ２００に格納することができる。ユーザが肯定的対話をもったオブジェクトを、本明細書では「肯定的オブジェクト」という。ユーザが否定的対話をもったことのあるオブジェクトを、本明細書では「否定的オブジェクト」という。例示的な肯定的対話は、オブジェクトを気に入る、見る、聞く、ファンになる、フォローする、共有する、コメントを書く、良い評価を与える、ウイッシュリストに追加する、クリックスルーする（例：広告される製品／サービスのページへの広告用のリンクをフォローする）、および購入することを含む。例示的な否定的対話には、（例：推奨または共有されるオブジェクトを）無視もしくは拒否する、類似のオブジェクトを閲覧して選択する（例：現在のオブジェクトを閲覧した後に競合製品を購入する）、悪い評価を与える、オブジェクトを最小化する（例：広告を最小化し、もしくは表示されないようにする）、オブジェクトに関するコメントを書くことが含まれる。ある実施形態において、ネットワークサービスは、例えば、オブジェクトに関するコメントの内容を構文解析して、コメントを肯定的対話または否定的対話として扱うかどうかを判定することにより、感情分析を適用する。例えば、構文解析は、肯定的もしくは否定的なキーワード、文言、または顔文字などの感情指標の検索を含むことができる。ある実施形態では、ネットワークサービスは、肯定的および否定的な割り当てへの対話間のマッピングを格納する。割り当てを用いて、ネットワークサービスは特定のユーザの対話とそれに対応するオブジェクトを、肯定的オブジェクトおよび否定的オブジェクトのリストにマッピングする。
【００１６】
本明細書で使用される第１および第２の値は、距離値（distance value）ともいう。小さな距離値は、オブジェクト候補と肯定的／否定的オブジェクトとが互いに「近く」、同様な対話の対象となる可能性が高いことの指標である。大きな距離値は、オブジェクト候補と肯定的／否定的オブジェクトとが互いに「遠く」、同様な対話の対象となる可能性が低いことの指標である。あるいは、大きな第１／第２の値はオブジェクトが同様な対話の対象となる可能性が高いことを示し、小さな第１／第２の値はオブジェクトが同様な対話の対象となる可能性が低いことを示す。本説明を通して説明を簡単にするために、距離の使用は、オブジェクトが同様な対話の対象となる確率を記述するために使用する。
【００１７】
距離値は、オブジェクト候補と、ユーザが肯定的または否定的対話をしたことのある各オブジェクトとの共通性に基づいて判定される。例示的な共通性は、オブジェクト候補および肯定的オブジェクトの両方と肯定的対話をもつユーザ数（全人口集団内もしくはある特定の人口集団内）、オブジェクト候補および否定的オブジェクトの両方と否定的対話をもつユーザ数（全人口集団内もしくはある特定の人口集団内）、およびオブジェクト候補と肯定的／否定的オブジェクトとの間の共通のメタデータ（例：同じ監督の２本の映画は共通の監督メタデータを有する）。肯定的および否定的対話は一般に距離値に関して述べたが、ある実施形態では、肯定的／否定的対話の各種類が個別の共通性として扱われる。例えば、ユーザは、１つのオブジェクトに対して気に入る、共有する、およびコメントを書くことがある。ネットワークサービスはこれら３つの対話の各々を個別の共通性として扱うであろう。同様に、各共有メタデータ項目を個別の共通性として扱うことができる。
【００１８】
ある実施形態において、各共通性に対して値が割り当てられて、共通性が総計される。例えば、ネットワークサービスは、オブジェクトとの共通の対話をもつユーザが多いユーザ数に対応する共通性には、オブジェクトとの共通の対話をもつユーザが少ないユーザ数に対応する共通性よりも高い値を割り当てる。さらに、各共通性の値に加重を与えることができる。例えば、特定の種類の共通性または共通性の特定の場合には、他の共通性よりも多いまたは少ない加重を与えることができる。各共通性の値は加重値と総計して、または加重値を乗じて、他の共通性と合わせて考えるときに、その共通性により多くまたはより少ない影響を与える。オブジェクト候補と肯定的／否定的オブジェクトとの間の各共通性は、距離値全体に値／加重値を与える。
【００１９】
ある実施形態において、共通性の加重値はオブジェクト候補の種類の判定に応じて選択される。ネットワークサービスはオブジェクトタイプを共通性に適用される加重セットにマッピングする。例えば、本のオブジェクトタイプの場合は共通の著者により大きな加重を与えることができるのに対し、映画のオブジェクトタイプの場合は共通の主演者により大きな加重を与えることができる。
【００２０】
図３は、オブジェクト候補と、ユーザが肯定的または否定的対話をもったことのあるオブジェクトとの間の例示的な肯定的および否定的距離を示す。ネットワークサービスはオブジェクト候補３０５を受信または選択し、（オブジェクト候補３０５と肯定的／否定的オブジェクト３１０〜３３５との間の線によって表される）オブジェクト候補と肯定的オブジェクト３１０〜３１５および否定的オブジェクト３２５〜３３５の各々との間の距離値を計算する（前述のとおり）。
【００２１】
図１に戻ると、ブロック１２０で、ネットワークサービスは前述した複数の第１／肯定的距離値を用いて、総肯定的距離（aggregate positive distance）を判定する。同様に、ブロック１２５で、ネットワークサービスは前述した複数の第２／否定的距離値を用いて、総否定的距離を判定する。ある実施形態において、ネットワークサービスはある数の第１距離値および同じ数の肯定的距離値を選択する。例えば、ネットワークサービスは、各リストで、オブジェクト候補との共通点が最も多い（他の肯定的／否定的オブジェクトと比較して）Ｋ個の肯定的オブジェクトおよびＫ個の否定的オブジェクトを表す上位Ｋ個の距離値を判定する。ある実施形態では、ネットワークサービスはＫの値に対するさまざまなオブジェクトタイプのマッピングを格納する。ネットワークサービスは、オブジェクト候補のタイプの判定に応じて、かつマッピングに基づいて、数値Ｋの値を選択する。
【００２２】
ある実施形態において、ネットワークサービスは、複数の第１の値の合計または平均を計算することによって、総肯定的距離を判定する。例えば、Ｋ個の肯定的距離値ｘ１からｘＫの場合、総肯定的距離値はｘ１＋ｘ２＋・・・ｘＫまたは
【００２３】
【数１】
0006273024.tif 000002
に等しい。同様に、Ｋ個の第２／否定的距離値ｙ１からｙＫの場合、総否定的距離値はｙ１＋ｙ２＋・・・＋ｙＫまたは
【００２４】
【数２】
0006273024.tif 000003
に等しい。Ｋは総肯定的距離および総否定的距離の両方に使用されるので、ネットワークサービスが複数の第１の値の平均と、複数の第２の値の平均とを計算する場合、ネットワークサービスは第２の値の数とは異なる数の第１の値を使用することができる。
【００２５】
別の実施形態において、ネットワークサービスは、複数の第１の値の合計または平均を第１外れ値（outlier value）で除して総肯定的距離を判定する。第１外れ値は、ユーザが肯定的対話をしたことがあるものの、複数の第１のオブジェクトの各々よりもオブジェクト候補との共通点が少ないオブジェクトに対応する。同様に、ネットワークサービスは、複数の第１の値の合計または平均を第２外れ値で除して総否定的距離を判定する。第２外れ値は、ユーザが否定的対話をしたことがあるものの、複数の第２のオブジェクトの各々よりもオブジェクト候補との共通点が少ないオブジェクトに対応する。例えば、再び図３を参照すると、Ｋの例示的な値は２である。ネットワークサービスは上位Ｋ個の肯定的オブジェクトとしてオブジェクト３１０および３１５を選択し、上位Ｋ個の否定的オブジェクトとしてオブジェクト３２５および３３０を選択する。オブジェクト３２０は、肯定的オブジェクト３１０および３１５よりもオブジェクト候補３０５との共通点が少ない肯定的外れ値である。オブジェクト３３５は、否定的オブジェクト３２５および３３０よりもオブジェクト候補３０５との共通点が少ない否定的外れ値である。
【００２６】
ある実施形態において、ネットワークサービスは距離値が最大の外れ値（すなわち、オブジェクト候補との共通点が最も少ないもの）を選択する。例えば、Ｋ個の肯定的距離値ｘ１からｘＫの場合、総肯定的距離値は
【００２７】
【数３】
0006273024.tif 000004
に等しい。同様に、Ｋ個の否定的値ｙ１からｙＫの場合、総否定的距離値は
【００２８】
【数４】
0006273024.tif 000005
に等しい。外れ値を使用して、ネットワークサービスは総距離値の計算にユーザの対話の履歴の広がりを考慮する。その結果、総距離値はオブジェクト候補の多種多様な集合をより正確に表すことができる。代替実施形態では、ネットワークサービスは距離値および最新の対話、もしくは距離値または最新の対話に基づいて外れ値を選択する。例えば、距離値が大きい最近の対話は、嗜好の変化の指標であるかもしれない。
【００２９】
ブロック１３０で、ネットワークサービスは、オブジェクト候補とのユーザ対話がより肯定的または否定的になりそうかどうかを判定する。ある実施形態において、ネットワークサービスは、例えば、総計値同士を減算もしくは除算して、またはその他の比較を行って判定されるように、総肯定的値が総否定的値より小さいまたは大きいかどうかを判定する。例えば、総肯定的値が総否定的値よりも小さい場合、オブジェクト候補は否定的対話よりも肯定的対話の対象となる可能性が高い。上記の例示的な式を用いて、
【００３０】
【数５】
0006273024.tif 000006
の場合、オブジェクト候補は肯定的対話の対象になる可能性が高い。代替実施形態において、ネットワークサービスは、総肯定的値が総否定的値よりも閾値量だけ小さいかどうかを判定する。例えば、
【００３１】
【数６】
0006273024.tif 000007
の場合、オブジェクト候補は肯定的対話の対象となる可能性が高い。ある実施形態において、ネットワークサービスはＣの値に対するさまざまなオブジェクトタイプのマッピングを格納する。ネットワークサービスは、オブジェクト候補のタイプの判定に応じて、かつマッピングに基づいて、閾値Ｃの値を選択する。
【００３２】
前述したように、本明細書に記載される実施例は、小さい距離値が同様な対話の対象となりそうなオブジェクトを表すという仮定に基づいている。しかし、大きな距離値が同様な対話の対象となりそうなオブジェクトを表す場合、上記の比較はそれに応じて変わるであろう。例えば、ネットワークサービスは、総肯定的値が総否定的値よりも大きい場合、オブジェクト候補が否定的対話よりも肯定的対話の対象となる可能性が高いと判定するであろう。
【００３３】
ある実施形態において、１つ以上の第１または第２の外れ値は、総肯定的距離および総否定的距離の判定から除かれる。例えば、オブジェクト候補から閾値距離を超えるオブジェクトは、肯定的または否定的オブジェクトから除くことができる。このような実施形態では、閾値距離内の外れ値から最大外れ値（前述のｘｍａｘまたはｙｍａｘ）が選択される。
【００３４】
オブジェクト候補が否定的対話よりも肯定的対話の対象となる可能性が高い場合、ブロック１３５で、ネットワークサービスはユーザに対してオブジェクト候補を表示する。ある実施形態において、複数のオブジェクト候補について方法１００が繰り返される。このような実施形態では、オブジェクト候補はランク付け順に表示される。例えば、肯定的対話の対象となる可能性が高いと判定されるオブジェクト候補は、総肯定的値が最小のオブジェクト候補から、総肯定的値が最大のオブジェクト候補まで順に表示することができる。
【００３５】
オブジェクト候補が肯定的対話よりも否定的対話の対象となる可能性が高い場合、ブロック１４０で、ネットワークサービスはユーザに対してオブジェクト候補を表示しない判定をする。前述したように、複数のオブジェクト候補について方法１００を繰り返すことができる。
【００３６】
図４は、ソーシャルネットワークなどの例示的なネットワークサービス４００をブロック図として示している。ソーシャルネットワーク４００はユーザデバイス４０５と、ソーシャル・ネットワーキング・システム４１０と、１つ以上のネットワーク４２０に連結されている外部サーバ４１５とを含む。ユーザは、パーソナルコンピュータまたは携帯電話などのユーザデバイス４０５を用いて、ソーシャル・ネットワーキング・システム４１０と対話する。例えば、ユーザデバイス４０５は、ウェブブラウザまたはネイティブアプリケーションなどのアプリケーションを介して、ソーシャル・ネットワーキング・システム４１０と通信する。ユーザデバイス４０５とソーシャル・ネットワーキング・システム４１０との間の代表的な対話は、ソーシャル・ネットワーキング・システム４１０の他のユーザのプロフィールの閲覧、ならびにメディアアイテムへの関与、グループへの参加、イベントへの出席の一覧表示および確認、場所へのチェックイン、一定のページ／投稿のリンク貼り、ページの作成、および本明細書で説明するようなソーシャル対話を促進させる他の作業の実施などの操作を含む。
【００３７】
ソーシャル・ネットワーキング・システム４１０はプラットフォーム・ストレージ４２５と、推奨サービス４３０と、１つ以上のアプリケーション・プログラミング・インターフェース（ＡＰＩ）４３５と、ソーシャル・グラフ４４０（例：図３に図示されるようなもの）と、１つ以上のプラットフォーム・アプリケーション４４５とを含む。プラットフォーム・ストレージ４２５は、ユーザの選好／設定、プロフィールデータ、対話データ、オブジェクトメタデータ、人口統計学的データ等を格納する。例示的なプラットフォーム・アプリケーション４５５は、社会的交流（例：投稿、画像の発表等）のプラットフォームならびにソーシャルゲーム、メッセージングサービス、およびソーシャル・ネットワーキング・システム４１０が提供するソーシャル・プラットフォームを利用する他のアプリケーションを含む。
【００３８】
ある実施形態において、前述した方法１００は推奨サービス４３０およびプラットフォーム・アプリケーション４４５、もしくは推奨サービス４３０またはプラットフォーム・アプリケーション４４５によって行われ、対話データ、オブジェクトメタデータ、人口統計学的データ等はプラットフォーム・ストレージ４２５およびソーシャル・グラフ４４０、もしくはプラットフォーム・ストレージ４２５またはソーシャル・グラフ４４０から受信され、マッピングはプラットフォーム・ストレージ４２５に格納される。あるいは、方法およびデータ、もしくは方法またはデータのうちの１つ以上は、ソーシャル・ネットワーキング・システム４１０の外部で実行／格納される。
【００３９】
１つ以上のＡＰＩ４３５は外部アプリケーション４５０がソーシャル・ネットワーキング・システム４１０と連携できるようにする。例えば、外部アプリケーション４５０はＡＰＩ４３５を利用して、ユーザ名およびパスワードのユーザのソーシャル・ネットワーキング・ログに基づいてユーザを認証する。さらに、外部アプリケーション４５０は１つ以上のＡＰＩ４３５を利用して、プラットフォーム・アプリケーション４３０内でアプリケーションを実行して、プラットフォーム・アプリケーションに投稿を発表し、ユーザのソーシャルネットワークの仲間にアクセスする等を行う。ある実施形態において、前述した方法１００の少なくとも一部は外部アプリケーション４５０で行って、データは外部ストレージ４５５もしくはプラットフォーム・ストレージ４２５のうちの一方または両方から受信し、および／またはそのうちの一方または両方に格納する。例えば、ユーザは外部アプリケーション４５０に、ＡＰＩ４３５および外部アプリケーション４５０、もしくはＡＰＩ４３５または外部アプリケーション４５０内のプラグインを介して、ユーザの代わりにネットワークサービス４００と対話する許可を与えることができる。ＡＰＩ４３５を用いて、外部アプリケーション４５０はユーザ情報、オブジェクト情報、ユーザとオブジェクトとの関係等を取得および提供、もしくは取得または提供することができる。外部アプリケーション４５０は、データオブジェクトとのユーザの対話に基づいて、ネットワークサービスから、もしくはネットワークサービスに肯定的および否定的対話データもしくは他の感情データ（sentiment data、例：個々のオブジェクトとの対話もしくはその他）を受信または提供することができる。ユーザ対話はネットワークサービス４００内、またはネットワークサービス４００外（例：ネットワークサービス４００外のウェブページ内）で行うことができる。ある実施形態では、外部のユーザ対話はネットワークサービスプラグインを介して起こり、これは外部ウェブページ内のインラインフレームとして実装することができる。ある実施形態では、ネットワークサービス４００は外部アプリケーション４５０から受信した感情データを解析して（parse）、感情データを個々のオブジェクトに適用する方法を判定する。例えば、感情データはオブジェクトのカテゴリに関するあるユーザの肯定的および否定的な指標を提供することができ、ネットワークサービス４００はどの個々のオブジェクトがそのカテゴリに入るかを判定する。
【００４０】
図５は、ソーシャルネットワーク内のオブジェクトをランク付けして推奨する例示的な処理システム５００をブロック図として示している。データ処理システム５００は１つ以上のマイクロプロセッサ５０５と、接続されているシステムコンポーネント（例：接続されている複数のチップ）とを含む。あるいは、データ処理システム５００はチップ上のシステムである。
【００４１】
データ処理システム５００は、マイクロプロセッサ５０５に連結されているメモリ５１０を含む。メモリ５１０は、データ、メタデータおよびマイクロプロセッサ５０５で実行するプログラムを格納するために使用することができる。メモリ５１０はランダム・アクセス・メモリ（「ＲＡＭ」）、読取専用メモリ（「ＲＯＭ」）、ソリッドステートディスク（「ＳＳＤ」）、フラッシュ、相変化メモリ（「ＰＣＭ」）、または他の種類のデータストレージなど、揮発性メモリおよび不揮発性メモリの１つ以上を含むことができる。メモリ５１０は内部メモリであってもよく、または分散型メモリであってもよい。
【００４２】
データ処理システム５００はオーディオ入出力サブシステム５１５も含み、これは、例えば、音楽もしくは他のオーディオを再生し、マイクロプロセッサ５０５が実行する音声命令を受信し、可聴通知を発する等のために、マイクロフォンおよびスピーカ、もしくはマイクロフォンまたはスピーカを含むことができる。ディスプレイ・コントローラおよびディスプレイ装置５２０は、ユーザに視覚的ユーザインターフェースを提供する。
【００４３】
データ処理システム５００は１つ以上の入力もしくは出力（「Ｉ／Ｏ」）デバイスおよびインターフェース５２５も含み、これらはユーザがシステムに入力を提供し、システムから出力を受信し、その他システムとデータをやり取りするのを可能にするために提供される。これらのＩ／Ｏデバイス５２５はマウス、キーパッドもしくはキーボード、タッチパネルもしくはマルチタッチ入力パネル、カメラ、光学スキャナ、ネットワークインターフェース、モデム、その他周知のＩ／Ｏデバイス、または当該Ｉ／Ｏデバイスの組み合わせを含むことができる。タッチ入力パネルは、タッチペンもしくは指で起動されるシングルタッチ入力パネルであってもよく、または１本の指もしくはタッチペンまたは複数本の指で駆動されるマルチタッチ入力パネルであってもよく、パネルは１回もしくは２回もしくは３回またはそれ以上のタッチを区別することができ、さらにそれらのタッチから発生した入力を処理システム５００に提供することができる。
【００４４】
Ｉ／Ｏデバイスおよびインターフェース５２５はドック用のコネクタまたはＵＳＢインターフェース、ファイヤーワイヤー、サンダーボルト、イーサネット（登録商標）等用のコネクタを含んで、システム５００を別のデバイス、外部コンポーネントまたはネットワークに接続することもできる。例示的なＩ／Ｏデバイスおよびインターフェース５２５は、ＩＥＥＥ８０２．１１トランシーバ、赤外線トランシーバ、ＢＬＵＥＴＯＯＴＨ（登録商標）トランシーバ、無線携帯電話トランシーバ（例：２Ｇ、３Ｇ、４Ｇ等）、または別のワイヤレスプロトコルも含んで、データ処理システム５００を別のデバイス、外部コンポーネント、またはネットワークに接続し、格納されている命令、データ、トークン等を受信する。
【００４５】
図５に図示されるさまざまなコンポーネントを相互接続するために、１つ以上のバスを使用できることが認識されるであろう。
データ処理システム５００は、ユーザデバイス４０５、ソーシャル・ネットワーキング・システム４１０の少なくとも一部、または外部サーバ４１５のうちの１つ以上の例示的な図である。データ処理システム５００はパーソナルコンピュータ、タブレット型デバイス、携帯情報端末（ＰＤＡ）、ＰＤＡと同様な機能付きの携帯電話、Ｗｉ−Ｆｉベースの電話、携帯電話を含むハンドヘルドコンピュータ、メディアプレーヤー、エンターテインメントシステム、または１台のデバイスでＰＤＡや携帯電話を兼ね備えるメディアプレーヤーなど、これらのデバイスの特徴もしくは機能を組み合わせたデバイスとすることができる。他の実施形態では、データ処理システム５００はネットワークコンピュータ、サーバ、または別のデバイスもしくは消費者向け電子製品内に埋め込まれた処理デバイスとすることができる。本明細書で使用するコンピュータ、デバイス、システム、処理システム、処理デバイスおよび「処理デバイスを具備する装置」という用語はデータ処理システム５００と入れ替え可能に使用することができ、上記列記した例示的な実施形態を含む。
【００４６】
図示されていない追加コンポーネントもシステム５００の一部とすることができ、一定の実施形態においては、図５に図示されるものよりも少ないコンポーネントをデータ処理システム５００に使用できることも認識されるであろう。本明細書から、本発明の諸側面は少なくとも部分的にソフトウェアで実施できることは明らかであろう。すなわち、コンピュータ実装方法１００は、そのプロセッサまたは処理システム５０５がメモリ５１０または他の非一時的マシン読取可能記憶媒体などのメモリに含まれる命令のシーケンスを実行することに応答して、コンピュータシステムまたは他のデータ処理システム４１０／４１５／５００で行うことができる。さらに、ソフトウェアはネットワーク・インターフェース・デバイス５２５を介してネットワーク（図示せず）上で送信または受信することができる。さまざまな実施形態において、本実施形態を実施するために、ソフトウェア命令と組み合わせてハードワイヤード回路を使用することができる。したがって、その技術はハードウェア回路およびソフトウェアの特定の組み合わせ、またはデータ処理システム５００によって実行される命令の特定のソースに限らない。
【００４７】
前述した実施形態の機能の少なくとも一部を提供するプログラムコードを格納するための製造物を使用することができる。さらに、前述した実施形態の機能の少なくとも一部を使用して作成されるプログラムコードを格納するための製造物を使用することもできる。プログラムコードを格納する製造物は、１つ以上のメモリ（例：静的、動的もしくはその他の１つ以上のフラッシュメモリ、ランダム・アクセス・メモリ）、光学ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光学カード、または電子的命令の格納に適した他の種類の非一時的マシン読取可能媒体として埋め込むことができるが、これらだけに限らない。さらに、本発明の実施形態は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を利用するハードウェアもしくはファームウェア、特定用途向け集積回路（ＡＳＩＣ）、プロセッサ、コンピュータ、またはネットワーク化されたコンピュータシステムを含むコンピュータシステムに実装することができるが、これらだけに限らない。ハードウェアまたはソフトウェア実装のモジュールおよびコンポーネントは、本発明の実施形態を大幅に変更せずに分割、または組み合わせを行うことができる。
【００４８】
以上の明細書において、本発明はその特定の例示的な実施形態を参照して説明してきた。本発明のさまざまな実施形態および側面は本明細書で述べた明細を参照して説明され、添付の図面はさまざまな実施形態を図示している。上記説明および図面は本発明を例証するものであり、本発明を制限すると解釈してはならない。本明細書において「ある実施形態」、「実施形態」、「例示的な実施形態」等の言葉は、説明される実施形態が特定の特徴、構造または特性を含むことができるが、必ずしもすべての実施形態がその特定の特徴、構造または特性を含まなくてもよいことを示す。また、当該文言は必ずしも同じ実施形態をいうわけではない。さらに、実施形態に関連してある特定の特徴、構造または特性が記述される場合、当該特徴、構造または特性は明示的に記述されるかどうかを問わず他の実施形態に関連して実施してもよい。境界線が破線（例：大きい破線、小さい破線、鎖線、点線）のブロックは、本明細書において、本発明の実施形態に追加の特徴を追加するオプション操作を図示するために使用される。しかし、このような意向が、これらが唯一のオプションまたはオプション操作であること、境界線が実線のブロックが本発明の一定の実施形態においてオプションではないことを意味すると解釈するべきではない。本発明のさまざまな実施形態を完全に理解してもらうため、多数の特定の明細を記述している。しかし、ある場合においては、本発明の実施形態を簡潔に述べるために、よく知られたまたは従来の明細は記述していない。
【００４９】
それにさまざまな修正を、以下の請求項に記載される本発明の広義の主旨および範囲を逸脱することなく行えることは明らかであろう。例えば、本明細書で説明する方法は、特徴／ブロックを少なくして、もしくは多くして行うことができ、または特徴／ブロックは異なる順序で行うことができる。さらに、本明細書で説明する方法は繰り返すことができ、または互いに並行して、もしくは同じ・類似した方法の異なる事例と並行して行うことができる。
【図１】
0006273024.tif 000008
【図２】
0006273024.tif 000009
【図３】
0006273024.tif 000010
【図４】
0006273024.tif 000011
【図５】
0006273024.tif 000012