(58)【調査した分野】(Int.Cl.,DB名)
追加の集約コンテンツデータ構造を前記選択された第1の集約コンテンツデータ構造のソースから受信するステップであって、前記追加の集約コンテンツデータ構造は、スコアに関連付けられている、ステップと、
前記選択された第1の集約コンテンツデータ構造を前記第1の複数の集約コンテンツデータ構造から除去して前記受信した追加の集約コンテンツデータ構造を追加することに基づいて、第2の複数の集約コンテンツデータ構造を作成するステップと、
前記選択された第1の集約コンテンツデータ構造および前記ユーザに関連付けられた複数の所定のタイプターゲットパーセンテージに基づいて、前記第2の複数の集約コンテンツデータ構造のうちの少なくとも1つに関連付けられた前記スコアを調整するステップと、
前記調整後のスコアに基づいて、第2の集約コンテンツデータ構造を前記第2の複数の集約コンテンツデータ構造から選択するステップと、
前記第2の集約コンテンツデータ構造を前記ユーザに関連付けられた前記コンテンツストリームにミキシングするステップと
をさらに含む、請求項1に記載の方法。
前記ユーザの前記コンテンツストリーム内にミキシングするための集約データ構造についてのそれぞれの以前の選択に基づいて、前記複数のカテゴリタイプに関する複数のタイプ選択パーセンテージを生成するステップと、
前記第1の集約コンテンツデータ構造を選択することに基づくとともに応じて前記複数のタイプ選択パーセンテージを更新するステップと
をさらに含む、請求項3に記載の方法。
前記調整するステップは、前記複数の所定のタイプターゲットパーセンテージと前記更新後の複数のタイプ選択パーセンテージとの間の差に基づく、請求項4に記載の方法。
ソーシャルネットワークにおいて提供したコンテンツアイテムとの前記ユーザの以前のインタラクションに基づいて、前記第1の集約コンテンツデータ構造に関連付けられた前記カテゴリタイプに関する前記所定のタイプターゲットパーセンテージを含む、前記複数のカテゴリタイプに関する複数のタイプターゲットパーセンテージを、前記ユーザについて、決定するステップをさらに含む、請求項1に記載の方法。
【発明を実施するための形態】
【0009】
詳細な説明を、主題とする技術の様々な構成の説明として以下に記載しており、主題とする技術が実施されることになるであろう構成のみを表すことを意図していない。添付の図面は、本明細書に組み込まれているとともに、詳細な説明の一部を構成している。詳細な説明は、主題とする技術の詳細な理解を提供することを目的とした特定の詳細を含む。しかしながら、主題とする技術は、本明細書に記載の特定の詳細に限定されず、これらの特定の詳細を用いることなく実施されてもよい。場合によっては、主題とする技術の概念を分かりにくくすることを避けるために、構造およびコンポーネントをブロック図形式で示している。
【0010】
ユーザは、ソーシャルネットワークサービスなどのウェブサービスを利用して、コンテンツアイテムを見つけ消費し得る。コンテンツアイテムは、例えば、インターネットを介してオンラインで利用可能な、オーディオ、ビデオ、グラフィック、テキスト、およびその組合せなどといった任意のタイプのコンテンツを含み得る。コンテンツアイテムは、ユーザが閲覧またはやりとりすることによって消費し得る、ニュース記事、ソーシャルネットワーク投稿、ソーシャルネットワークイベントアップデート、ユーザによってアップロードされたメディア、ユーザからのコメント、ユーザからの共有、ウェブサイトなどを含み得る。ソーシャルネットワークサービスは、またはコンテンツアイテムを様々なソースから収集および受信し、コンテンツアイテムをコンテンツストリーム内のユーザに提供し得る。コンテンツアイテムのためのソースは、コンテンツアイテムがそれぞれのサービスのサーバから要求および読み出され得るように、新規サービス、メディアサービス、写真共有サービス、および他のコンテンツサービスのためのサーバを含む。
【0011】
コンテンツストリームは、1つまたは複数のコンテンツアイテムを含み得る。例えば、コンテンツストリームは、新規コンテンツアイテムが作成または読み出されると更新され得るコンテンツアイテムのリストを含み得る。コンテンツストリームは、ソーシャルネットワークサービスに提供されまたはソーシャルネットワークサービスによって提供され、ソーシャルネットワークサービスによってユーザに提供されるユーザインターフェースなど上でソーシャルネットワークサービスを介してユーザにとってアクセス可能であり得る。例えば、ユーザのコンテンツストリームにアクセスするために、ユーザは、ユーザがソーシャルネットワークサービスのために作成していたアカウントにログインすることによって、ソーシャルネットワークサービスのためのログインセッションを開始する必要があってもよい。コンテンツストリームを表示するためのユーザインターフェースが、ユーザがソーシャルネットワークサービスのためのユーザのアカウントにログインする際に、ユーザに提供され得る。非限定的な例として、ソーシャルネットワークサービスは、ユーザのクライアントデバイス上で実行されたウェブブラウザアプリケーションによってロードされ得るウェブページを介してアクセスされ得る。ソーシャルネットワークサービスは、ユーザのクライアントデバイス上で実行された、ウェブアプリケーションまたはスタンドアローンクライアントアプリケーションを介してアクセスされ得る。
【0012】
いくつかの実施形態においては、コンテンツストリームは、一度に1ページ、ユーザに提供され得るし、各ページは、多数のコンテンツアイテム(例えば、10個のコンテンツアイテム)を含む。例えば、最初の10個のコンテンツアイテムが、ユーザが消費を目的としてコンテンツアイテムを検討、ナビゲート(例えば、スクロール)、および選択することができるように、ユーザのためにユーザインターフェースにロードされ得る。ユーザが最初の10個のコンテンツアイテムの終端に至ったことを示すユーザインターフェース内のあるポイントにユーザが至った際に、次の10個のコンテンツアイテムのセットが、コンテンツストリームを次のページに含めることを目的としてソーシャルネットワークサービスによって選択され得るし、次のページは、その後、ユーザインターフェースにロードされる。
【0013】
スコアは、基準のセットに基づいて、コンテンツアイテムに関連付けられ得る。基準のセットは、非限定的な例として、とりわけ、コンテンツアイテムに関連する日付(例えば、コンテンツアイテムがオンラインで投稿された時間)、コンテンツアイテムに関連付けられたトピック、コンテンツアイテムの作者を含み得る。所与のコンテンツアイテムについて、例えば、あるユーザのためにコンテンツアイテムに割り当てられたスコアは、それぞれのユーザプロファイルに基づいて、別のユーザのために同一のコンテンツアイテムに割り当てられたスコアとは異なり得る。スコアは、ユーザのコンテンツストリームのためのコンテンツアイテムを選択し、選択されたコンテンツアイテムをユーザのコンテンツストリーム内で順序付けるために利用され得る。
【0014】
様々なソースからのコンテンツアイテムが、分析され、集約コンテンツデータ構造に一緒にグループ化され得る。集約コンテンツデータ構造は、リスト、順序付きリスト、グラフ、または有限個のコンテンツアイテムのグループ化などといったデータ構造であり得る。コンテンツアイテムは、例えば、特定のトピックとの関連性、ロケーションとの関連性、またはあるユーザとの関連付けなどといった共通のテーマまたは関連性に基づいて、集約コンテンツデータ構造に構造化され得る。集約コンテンツデータ構造は、共通のテーマまたは関連性に基づいて、命名され得る。ユーザは、特定のトピックに関連付けられたおよび/またはある特性を有するコンテンツアイテムに関心を持ち得る。例えば、ユーザは、家族などといったユーザと特定の関係を有する人々からのコンテンツアイテムに関心を持ち得る。ユーザは、ユーザに関連付けられたロケーションに関連するコンテンツアイテムに関心を持ち得る。例として、コンテンツアイテムがジオタグ付きである場合またはロケーション情報を含む場合には、コンテンツアイテムは、ロケーション情報にコンテンツアイテムが関連付けられている集約コンテンツデータ構造の一部として集約され得る。
【0015】
主題とする技術の様々な態様に従って、集約コンテンツデータ構造は、ユーザのコンテンツストリームにミキシングされ得る。集約コンテンツデータ構造は、ユーザがコンテンツアイテムを消費を目的として集約コンテンツデータ構造から選択し得るように、ユーザのコンテンツストリームの一部としてユーザに提示され得る。各集約コンテンツデータ構造は、集約コンテンツデータ構造内のコンテンツアイテムのスコアに基づいて、スコアに関連付けられている。いくつかの実施形態においては、集約コンテンツデータ構造は、集約コンテンツデータ構造のスコアに基づいて、ユーザのコンテンツストリーム内で選択および順序付けされる。例えば、他の集約コンテンツデータ構造より高いスコアに関連付けられた集約コンテンツデータ構造が、ユーザのコンテンツストリームにミキシングするために選択され得る(例えば、集約コンテンツデータ構造を既存のコンテンツストリームに追加する、または、集約コンテンツデータ構造および他のコンテンツアイテムを使用してコンテンツストリームを生成する)。より高いスコアに関連付けられた集約コンテンツデータ構造は、一般的に、より低いスコアに関連付けられた集約コンテンツデータ構造と比較して、ユーザにとって関心あるものである可能性がより高い。
【0016】
集約コンテンツデータ構造をユーザのコンテンツストリームにミキシングすることは、ユーザが共通のテーマまたは関連性に関連する様々なソースからコンテンツアイテムを消費することを可能にし得る。そのようなミキシングは、ユーザが、コンテンツの様々なソースを個別に訪れる必要なしに、コンテンツの様々なソースのコンテンツアイテムを消費することを可能にし得る。様々なソースを個別に訪れることは、例えば、ユーザにとって重荷となり得る。さらに、共通のテーマまたは関連性に関連するコンテンツアイテムは、コンテンツストリームを介してではなく、ユーザがソースそのものを直接訪れた場合でさえも、ユーザが探し出すことが難しくなる場合がある。そのようなミキシングはまた、ユーザが認識し得ていないソースから共通のテーマまたは関連性に関連するコンテンツアイテムを案内することを可能にし得る。
【0017】
図1は、主題とする技術のいくつかの実施形態を実施することができる例示的なネットワーク環境100を図示している。ネットワーク環境100は、アグリゲーションサーバ110A、アグリゲーションサーバ110B、アグリゲーションサーバ110C、ミキシングサーバ115、ソーシャルネットワークサーバ120、ネットワーク130、サードパーティサーバ140、クライアントデバイス150A、およびクライアントデバイス150Bを含む。いくつかの態様においては、ネットワーク環境100は、ネットワーク130などの1つまたは複数のネットワークにわたる分散クライアント/サーバシステムであり得る。ネットワーク130は、任意の数のモバイルクライアント、固定クライアント、およびサーバを接続する、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、セルラネットワーク、またはその組合せを含む、大規模コンピュータネットワークであり得る。いくつかの態様においては、各クライアント(例えば、クライアントデバイス150Aおよび/または150B)は、バーチャルプライベートネットワーク(VPN)、セキュア・シェル(SSH)トンネル、または他のセキュアなネットワーク接続を介して、サーバ(例えば、アグリゲーションサーバ110A、110B、および110Cのうちの1つまたは複数、ミキシングサーバ115、ソーシャルネットワークサーバ120、ならびにサードパーティサーバ140)と通信し得る。いくつかの態様においては、ネットワーク130は、企業ネットワーク(例えば、イントラネット)および1つまたは複数の無線アクセスポイントをさらに含み得る。
【0018】
アグリゲーションサーバ110A、110B、および110C(以降、110A-Cと称する)、ミキシングサーバ115、ソーシャルネットワークサーバ120、ならびにサードパーティサーバ140の各々は、コンピュータサーバなどといったコンピュータデバイスである。いくつかの実施形態においては、アグリゲーションサーバ110A-C、ミキシングサーバ115、ソーシャルネットワークサーバ120、および/またはサードパーティサーバ140の各々は、サーバ(例えば、サーバファーム)のアクションを行うために協働する2つ以上のコンピュータデバイスを表し得る。あるいは、1つまたは複数のアグリゲーションサーバ110A-C、ミキシングサーバ115、ソーシャルネットワークサーバ120、および/またはサードパーティサーバ140は、共通のシステム内で実施され得る。例えば、共通のシステムは、アグリゲーションサーバ110Aおよび110Cならびにミキシングサーバ115を含み得る。
【0019】
クライアントデバイス150Aおよび150Bは、様々な形式のコンピュータデバイスを表し、プロセッサ、メモリ、およびネットワーク通信性能を有する任意のシステムまたはデバイスであり得る。コンピュータデバイスの例としては、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、プロセッサに接続されたまたはそこに内蔵されたプロセッサを有するテレビ、携帯情報端末(PDA)、ネットワーク機器、カメラ、スマートフォン、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、またはこれらのコンピュータデバイスもしくは他のコンピュータデバイスのうちの任意の組合せを含む。
図1はクライアントデバイス150Aおよび150Bのみを示しているが、より多くまたはより少ないクライアントデバイスがネットワーク130に通信可能に接続されていてもよい。
【0020】
いくつかの態様においては、クライアントデバイス150Aおよび/または150Bは、必要に応じてデジタル信号処理回路を含み得る通信インターフェース(図示せず)を介して、無線で通信し得る。通信インターフェースは、とりわけ、Global System for Mobile通信(GSM(登録商標))音声通話、Short Message Service(SMS)、Enhanced Messaging Service(EMS)、またはMultimedia Messaging Service(MMS)メッセージング、Code Division Multiple Access(CDMA)、Time Division Multiple Access(TDMA)、Personal Digital Cellular(PDC)、Wideband Code Division Multiple Access(WCDMA(登録商標))、CDMA2000、またはGeneral Packet Radio System(GPRS)などといった様々なモードまたはプロトコルにおける通信を提供し得る。例えば、通信は、無線周波数トランシーバ(図示せず)を介して行われ得る。加えて、近距離通信は、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバなどを使用して行われ得る。
【0021】
アグリゲーションサーバ110A-C、ミキシングサーバ115、ソーシャルネットワークサーバ120、サードパーティサーバ140、ならびにクライアントデバイス150Aおよび150Bは、ネットワーク130を介して通信可能に接続されている。いくつかの実施形態においては、クライアントデバイス150Aおよび150Bは、コンテンツを送信するとともにコンテンツをソーシャルネットワークサーバ120から受信する。ソーシャルネットワークサーバ120は、ソーシャルネットワークサービスを目的としたウェブサーバであり得る。ユーザは、クライアントデバイス150Aおよび/または150Bを使用して、ソーシャルネットワークサーバ120からのソーシャルネットワークサービスにアクセスし得る。クライアントデバイス150Aおよび/または150Bはまた、コンテンツアイテムをソーシャルネットワークサーバ120に投稿するために使用され得る。
【0022】
サードパーティサーバ140は、新規サービスまたはメディアサービスなどといった別のウェブサービスのためのサーバであり得る。クライアントデバイス150Aおよび150Bは、サードパーティサーバ140からのコンテンツアイテムを閲覧し得る、または、コンテンツアイテムをサードパーティサーバ140に投稿し得る。ソーシャルネットワークサーバ120は、サードパーティサーバ140からのコンテンツアイテムにアクセスし得る。いくつかの実施形態においては、サードパーティサーバ140は、1つまたは複数のアグリゲーションサーバ110A-Cおよび/またはソーシャルネットワークサーバ120ためのコンテンツアイテムのソースであってもよい。
【0023】
ソーシャルネットワークサーバ120は、アグリゲーションサーバ110A-Cが解析するためのコンテンツアイテムのためのリポジトリとして動作し得る。各コンテンツアイテムは、コンテンツおよび/またはコンテンツアイテムのソースに由来する1つまたは複数のエンティティに関連付けられている。エンティティは、人物であり得る、例えば、具体的な人物(例えば、ワシントン大統領)または人物の概略的なタイプ(例えば、大統領)などであり得る。エンティティは、場所であり得る、例えば、具体的なロケーション(例えば、ワシントンD.C)、または概略ロケーション(例えば、首都)などであり得る。エンティティは、オブジェクトであり得る、例えば、具体的なオブジェクト(例えば、ワシントン記念塔)、概略オブジェクト(例えば、建物)、または概念(例えば、遺産)などであり得る。
【0024】
エンティティとコンテンツアイテムとの間の関連付けは、コンテンツアイテムのコンテンツに基づく。コンテンツアイテムに関連付けられたエンティティは、コンテンツアイテムの分析に基づいて、決定され得る。分析は、コンテンツアイテムの作者および/またはパブリッシャなどによってコンテンツアイテムに割り当てられていたラベル(例えば、タグ)の探索を含み得る。分析はまた、1つまたは複数のエンティティと関連しているコンテンツアイテムにおけるキーワードおよび/またはキーフレーズを識別することを含み得る、ここで、関連付けは、エンティティをキーワードおよび/またはキーフレーズにマッピングするデータベースに提供され得る。例えば、コンテンツアイテムは、レッドウッド国立公園に関するウェブページであり得る。コンテンツアイテムに関連付けられたエンティティは、例えば、「レッドウッド国立公園」、「国立公園」、「森」、および「木」を含み得る。
【0025】
エンティティおよびエンティティ間の関係は、ソーシャルネットワークサーバ120上または別のサーバ上のナレッジグラフに記憶され得る。例えば、ナレッジグラフは、各エンティティに関するノードを有するグラフおよびエンティティ間の関係に基づいたノード間のリンクによって表され得る。ナレッジグラフ内のエンティティは、過去一年などといった期間から利用可能なコンテンツアイテムに基づき得る。関係は、コンテンツアイテムにおけるエンティティの共起性に基づき得る。
【0026】
ユーザに関連付けられた情報は、ソーシャルネットワークサーバ120上または別のサーバ上に記憶され得るユーザモデルにおいて利用可能であり得る。本明細書に記載のシステムが、ユーザに関する個人情報を収集する、または、個人情報を使用し得る場合には、ユーザは、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワークに関する情報、ユーザのブラウジングデータ、ユーザのソーシャルアクションまたはアクティビティ、ユーザの職業、ユーザのプリファレンス、またはユーザの現在のロケーション)を収集するかどうかを制御する、または、ユーザにより関連し得るコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会が提供される加えて、あるデータは、個人を識別可能な情報を除去するように、データが記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、個人を識別可能な情報がユーザを決定することができないように、ユーザの識別子を処理してもよいし、ユーザの詳細位置を決定することができないように、ユーザの地理的ロケーションをロケーション情報を取得できる程度に(市、ZIPコード、または州レベルなどに)汎化してもよい。そのため、ユーザは、どのようにして情報をユーザに関して収集してコンテンツサーバによって使用するかの制御を有する。
【0027】
ユーザがソーシャルネットワークサービス内のユーザのデータの使用を承諾した場合には、ユーザモデルは、例として、ソーシャルネットワークサービス内のユーザプロファイル、ソーシャルネットワーク内の関係、ソーシャルネットワークからのソーシャルグラフ、コンタクト、およびユーザ設定またはプリファレンスに基づき得る。ユーザがユーザのブラウジングデータの使用を承諾した場合には、ユーザのブラウジングデータは、ブラウジングデータの使用を承諾していた他のユーザからのブラウジングデータとともに集約され得る。集約したユーザブラウジングデータは、ユーザモデルを構築するために使用され得る。ユーザモデルは、他のユーザとの親和性と同様に、ナレッジグラフにおける様々なエンティティとのユーザの親和性の指示を提供し得る。
【0028】
ソーシャルネットワークサーバ120は、サードパーティサーバ140からコンテンツアイテムを要求し得る。ソーシャルネットワークサーバ120は、例えば、集約したブラウジングデータ、ユーザモデル、ナレッジグラフなどを含む、データを記憶し得る。アグリゲーションサーバ110A-Cは、コンテンツアイテムを分析し、コンテンツアイテムを集約コンテンツデータ構造に分類し得る。いくつかの態様においては、集約コンテンツデータ構造は、クライアントデバイス150Aおよび/または150Bに直接的にまたはソーシャルネットワークサーバ120などを介して間接的に提供され得る。あるいはまたは加えて、集約コンテンツデータ構造は、ミキシングサーバ115に提供されてもよい。ミキシングサーバ115は、集約コンテンツデータ構造をアグリゲーションサーバ110A-Cの各々から受信し、集約コンテンツデータ構造をユーザのコンテンツストリームにミキシングし得る。
【0029】
いくつかの実施形態においては、ソーシャルネットワークサーバ120は、属性をアグリゲーションサーバ110A-Cによって使用されることになるコンテンツアイテムにタグ付けしてもよい。あるいはまたは加えて、コンテンツアイテムの属性は、アグリゲーションサーバ110A-C、サードパーティサーバ140、コンテンツアイテムのソースもしくは発信元(例えば、作者、パブリッシャ)、および/または他のウェブサービス(例えば、クラウドベースのサービス)によってタグ付けされてもよい。非限定的な例として、コンテンツアイテムに関連付けられた属性は、コンテンツアイテムに関連付けられたエンティティ、コンテンツアイテムに関連付けられたトピック、ユーザロケーションに関するコンテンツアイテムに関連付けられたロケーション、コンテンツアイテムのサイズまたは長さ、コンテンツアイテムに関連付けられたメディア、コンテンツアイテムに関連付けられた時期、コンテンツアイテムの元のソース、コンテンツアイテムの作者および/またはパブリッシャ、ユーザとコンテンツアイテムの作者との間の関係、コンテンツアイテムの人気、属性に対応するコンテンツのパーセントなどを含み得る。例えば、コンテンツアイテム(例えば、ウェブページ)の人気は、ユーザによって消費された(例えば、訪問された)コンテンツアイテムの回数に基づき得る。
【0030】
いくつかの実施形態においては、1つまたは複数のアグリゲーションサーバ110A-Cおよびミキシングサーバ115は、同一のサーバシステムの一部であってもよい。いくつかの実施形態においては、ソーシャルネットワークサーバ120が、コンテンツアイテムを記憶してもよい。いくつかの実施形態においては、1つまたは複数のアグリゲーションサーバ110A-Cおよびソーシャルネットワークサーバ120は、同一のサーバシステムの一部であってもよい。いくつかの実施形態においては、サードパーティサーバ140およびソーシャルネットワークサーバ120は、同一のサーバシステムの一部であってもよい。
【0031】
図2は、主題とする技術の例示的な態様による、コンテンツストリームへの集約コンテンツデータ構造のミキシングを支援するための環境200を図示している。環境200は、アグリゲーションサーバ210A、210B、および210C(以降、210A-Cと称する)、ミキシングサーバ215、およびソーシャルネットワークサーバ220を含む。いくつかの実施形態においては、アグリゲーションサーバ210A-C、ミキシングサーバ215、および/またはソーシャルネットワークサーバ220は、それぞれ、
図1に示した、アグリゲーションサーバ110A-C、ミキシングサーバ115、および/またはソーシャルネットワークサーバ120であってもよい。ミキシングサーバ215によって受信された各集約コンテンツデータ構造は、1つのアグリゲーションサーバ210A-Cまたは
図2に示していない他のアグリゲーションサーバであり得る、それぞれのソースサーバに関連付けられている。
【0032】
図2はアグリゲーションサーバ210A-Cを示しているが、より多くまたはより少ないアグリゲーションサーバ210A-Cは、ミキシングサーバ215に通信可能に接続されていてもよい。アグリゲーションサーバ210A-Cは、ネットワーク(例えば、ネットワーク130)を介してミキシングサーバ215に通信可能に接続されていてもよい。ミキシングサーバ215は、ネットワーク(例えば、ネットワーク130)を介してソーシャルネットワークサーバ220に通信可能に接続されていてもよい。
【0033】
図3は、主題とする技術の例示的な態様による、集約コンテンツデータ構造300の例を図示している。集約コンテンツデータ構造300は、コンテンツアイテム302およびコンテンツアイテム304を含む。例示的な目的で、集約コンテンツデータ構造300は、アグリゲーションサーバ210Aによって作成されている。例えば、集約コンテンツデータ構造300は、
図2に示した集約コンテンツデータ構造232であってもよい。しかしながら、他のアグリゲーションサーバ(例えば、210B、210C)が、集約コンテンツデータ構造300を作成してもよい。集約コンテンツデータ構造300は、
図3に示していない追加のコンテンツアイテムを含み得る。
【0034】
いくつかの実施形態においては、アグリゲーションサーバ210Aは、コンテンツアイテムをソーシャルネットワークサーバ220から受信してもよい。コンテンツアイテムは、タグを含み得る。例えば、ソーシャルネットワークサーバ220は、ある属性に関してコンテンツアイテムをタグ付けするように構成されてもよい。
図3では、コンテンツアイテム302はタグ312でタグ付けされており、コンテンツアイテム304はタグ314でタグ付けられている。タグ312および314は、アグリゲーションサーバ210Aがある属性に基づいてコンテンツアイテムを要求および/または集約することを可能にし得る。コンテンツアイテムの属性は、コンテンツアイテムの1つまたは複数のエンティティ、特定のトピックとのコンテンツアイテムの関連性、コンテンツアイテムに関連付けられたロケーション、コンテンツアイテムのサイズまたは長さ、コンテンツアイテムに関連付けられたメディア、コンテンツアイテムの時期、コンテンツアイテムの元のソース、コンテンツアイテムの作者、属性に対応するコンテンツのパーセントなどに基づき得る。
【0035】
アグリゲーションサーバ210Aは、基準のセットに基づいて、コンテンツアイテムを集約コンテンツデータ構造300に集約することによって、集約コンテンツデータ構造300を作成し得る。アグリゲーションサーバ210Bおよび210Cは、基準の異なるそれぞれのセットに基づいて、それらのそれぞれの集約コンテンツデータ構造を作成し得る。例えば、アグリゲーションサーバ210Aは、共通のトピックを共有するコンテンツアイテム(例えば、スポーツを扱うコンテンツアイテム)を1つの集約コンテンツデータ構造に集約し得るし、アグリゲーションサーバ210Bは、共通のロケーションを共有するコンテンツアイテム(例えば、ローカルニュースに関連するコンテンツアイテム)を集約し得るし、アグリゲーションサーバ210Cは、世界各地のトップ(例えば、最新の)ニュース記事に関連するコンテンツアイテムを集約し得る。いくつかのケースにおいては、基準は、ある属性またはあるタグの有無を含み得る。アグリゲーションサーバ210A-Cによって使用される1つまたは複数の基準が重複していてもよいが、各基準に関連付けられた相対的重みがアグリゲーションサーバ210A-C間で異なっていてもよい。
【0036】
アグリゲーションサーバ210A-Cのうちのいずれかが、カテゴリタイプに基づいて、集約コンテンツデータ構造の異なるセットを作成してもよい。例えば、アグリゲーションサーバ210Aは、共通のトピックを共有する集約コンテンツデータ構造のセット(例えば、スポーツを扱うコンテンツアイテム)と、共通のロケーションを共有する集約コンテンツデータ構造のセット(例えば、ローカルニュースを扱うコンテンツアイテム)とを生成し得る。
【0037】
図2を参照すれば、アグリゲーションサーバ210A-Cは、各集約コンテンツデータ構造内の各コンテンツアイテムに関するスコアを決定し得るし、集約コンテンツデータ構造内のコンテンツアイテムのスコアのそれぞれに基づいて、各集約コンテンツデータ構造に関するスコアを決定し得る。アグリゲーションサーバ210A-Cの各々は、コンテンツアイテムおよび/または集約コンテンツデータ構造に関するスコアを決定するために異なる基準および/または数式を使用し得る。アグリゲーションサーバ210A-Cは、集約コンテンツデータ構造のスコアをミキシングサーバ215に提供し得る。アグリゲーションサーバ210A-Cは、コンテンツアイテムのスコアをミキシングサーバ215に提供し得る。
【0038】
コンテンツアイテムに関するスコアは、コンテンツアイテムに関連付けられた属性(例えば、コンテンツアイテムに含まれるエンティティ、特定のトピックとのコンテンツアイテムの関連性、コンテンツアイテムの時期など)に基づき得る。コンテンツアイテムに関するスコアはまた、これらの属性とのユーザの親和性に基づき得る、ここで、属性とのユーザの親和性は、ユーザモデルにおいて利用可能なユーザに関する情報に基づき得る。集約コンテンツデータ構造に関するスコアは、集約コンテンツデータ構造内の上位k個のコンテンツアイテムのスコアに基づき得る。例えば、集約コンテンツデータ構造に関するスコアは、最高スコアを有する5つのコンテンツアイテムのスコアの平均に基づき得る。それゆえ、集約コンテンツデータ構造のスコアのそれぞれは、集約コンテンツデータ構造の一群のコンテンツアイテムに関連付けられた1つまたは複数の属性に対するユーザの親和性に基づいて、決定され得る。
【0039】
図4は、主題とする技術の例示的な態様による、集約コンテンツデータ構造238をコンテンツストリーム240にミキシングするためのプロセスのフローチャート400を図示している。コンテンツストリーム240は、ソーシャルネットワークサービスを介してユーザにとってアクセス可能であるソーシャルネットワークサービス上のユーザのアカウントのために提供されるコンテンツストリームであり得る。
図2を参照してフローチャート400を説明する。
【0040】
ブロック405において、ミキシングサーバ215は、集約コンテンツデータ構造をアグリゲーションサーバ210A-Cから受信する。各集約コンテンツデータ構造は、コンテンツストリーム240に(例えば、コンテンツアイテムの個別のバンドルとして)表示されることになる一群のコンテンツアイテムのリファレンスを作る。アグリゲーションサーバ210Aは集約コンテンツデータ構造232をミキシングサーバ215に提供し、アグリゲーションサーバ210Bは集約コンテンツデータ構造234をミキシングサーバ215に提供し、アグリゲーションサーバ210Cは集約コンテンツデータ構造236をミキシングサーバ215に提供している。集約コンテンツデータ構造232、234、および236は、
図2中ではACDSとして示している。各集約コンテンツデータ構造232、234、および236は、そのそれぞれのアグリゲーションサーバによって提供されたスコアに関連付けられている。
【0041】
いくつかの実施形態においては、アグリゲーションサーバ210A-Cの各々は、複数の集約コンテンツデータ構造を作成し、これらの集約コンテンツデータ構造のうちから最高スコアに関連付けられた集約コンテンツデータ構造を選択し、選択された集約コンテンツデータ構造をミキシングサーバ215に提供する。残りの集約コンテンツデータ構造は、次の集約コンテンツデータ構造がミキシングサーバ215に送信される必要があるまで、アグリゲーションサーバ210A-Cにキューイングされたままとなり得る。
【0042】
いくつかの実施形態においては、ミキシングサーバ215は、アグリゲーションサーバ210A-Cに対する要求を送信して、ミキシングサーバ215に提供されることになる多数の集約コンテンツデータ構造を作成さもなければ準備をし得る。例えば、ミキシングサーバ215は、アグリゲーションサーバ210A-Cの各々が10個の集約コンテンツデータ構造を作成しこれらの10個の集約コンテンツデータ構造のうちから1つの集約コンテンツデータ構造を選択することを要求し得る。ミキシングサーバ215のために準備された複数の集約コンテンツデータ構造を有するアグリゲーションサーバ210A-Cは、1つまたは複数のアグリゲーションサーバ210A-Cによって作成されそこから受信されることになる集約コンテンツデータ構造を待機するミキシングサーバ215に関連する遅延を低減することを支援し得る。
【0043】
いくつかの実施形態においては、ミキシングサーバ215は、アグリゲーションサーバ210A-Cに対する要求を送信して、ミキシングサーバ215に提供されることになるあるカテゴリタイプに関連付けられた多数の集約コンテンツデータ構造を作成さもなければ準備をし得る。集約コンテンツデータ構造の各々は、カテゴリタイプに関連付けられ得る。このことに関連して、集約データ構造内および/または集約データ構造によって参照されるコンテンツアイテムの各々は、集約コンテンツデータ構造のカテゴリタイプに関連付けられている。例えばカテゴリタイプは、コンテンツアイテムに関連付けられた共通のテーマまたは関連性であり得る。例示的な目的で、
図2〜4中の集約コンテンツデータ構造は、3つのタイプのうちの1つであり得る。第1のタイプの集約コンテンツデータ構造は、スポーツを扱うコンテンツアイテムを含む。第2のタイプの集約コンテンツデータ構造は、ローカルニュースに関連するコンテンツアイテムを含む。第3のタイプの集約コンテンツデータ構造は、世界各地の最新のニュース記事に関連するコンテンツアイテムを含む。そのため、アグリゲーションサーバ210Aは第1のタイプおよび第2のタイプの集約コンテンツデータ構造を作成し、アグリゲーションサーバ210Bは第2のタイプの集約コンテンツデータ構造を作成し、アグリゲーションサーバ210Cは第3のタイプの集約コンテンツデータ構造を作成する。
【0044】
各カテゴリタイプは、それぞれのタイプ選択パーセンテージに関連付けられている。所与のカテゴリタイプについて、タイプ選択パーセンテージは、利用可能なアグリゲーションサーバ(例えば、
図2中のアグリゲーションサーバ210A-C)からのミキシングサーバ215によって選択されていたカテゴリタイプすべての集約コンテンツデータ構造の総数に対する、ミキシングサーバ215によって選択されていた所与のカテゴリタイプに関連付けられた集約コンテンツデータ構造の総数のパーセンテージである。換言すれば、アグリゲーションサーバ210A-Cから利用可能なカテゴリタイプに関するタイプ選択パーセンテージは、ユーザのコンテンツストリーム内にミキシングするための集約データ構造についてのそれぞれの以前の選択に基づいて、選択される。例えば、ミキシングサーバ215が、アグリゲーションサーバ210Aから2つの第1のタイプの集約コンテンツデータ構造を、アグリゲーションサーバ210Bから2つの第2のタイプの集約コンテンツデータ構造を選択し、第3のタイプの集約データ構造を選択していなかった場合には、第1のタイプ、第2のタイプ、および第3のタイプに関するタイプ選択パーセンテージは、それぞれ、50%(すなわち、4つのうち2つ)、50%(すなわち、4つのうち2つ)、および0%(すなわち、4つのうち0)となる。
【0045】
3つのタイプの集約コンテンツデータ構造各々は、それぞれの所定のタイプターゲットパーセンテージに関連付けられている。例えば、第1のタイプ、第2のタイプ、および第3のタイプの集約コンテンツデータ構造に関する所定のタイプターゲットパーセンテージが、それぞれ、40%、40%、および20%であってもよい。所定のタイプターゲットパーセンテージは、ユーザによって設定されてもよいし、または、ユーザモデルに基づいて、適応的に設定されてもよい。
【0046】
ソーシャルネットワークサービスにとって利用可能なユーザに関する情報が十分ではない場合には、所定のタイプターゲットパーセンテージは、ユーザ固有の属性に関連付けられた集約コンテンツデータ構造がより高い所定のタイプターゲットパーセンテージを有し得るように、設定され得る。例えば、世界各地のトップニュース記事に関するコンテンツアイテムを含む第3のタイプの集約コンテンツデータ構造は、そのようなコンテンツアイテムはユーザ固有の属性にはあまり関連付けられていないため、より高い所定のタイプターゲットパーセンテージに設定されてもよい。一方、スポーツコンテンツに関連するコンテンツアイテムを含む第1のタイプの集約コンテンツデータ構造は、コンテンツアイテムに関するユーザとスポーツとの間の親和性に関連する情報が利用できない場合には、より低い所定のタイプターゲットパーセンテージに設定されてもよい。ミキシングシステム215は、より多くのユーザに関する情報がソーシャルネットワークサービスにとって利用可能となるように、所定のタイプターゲットパーセンテージを調整し得る。このことに関連して、ユーザのための所定のタイプターゲットパーセンテージは、ソーシャルネットワークにおけるコンテンツアイテム(例えば、他のユーザによって提供された)とのユーザの以前のインタラクションに基づき得る。例えば、ユーザが特定のカテゴリタイプのコンテンツアイテムを(例えば、個々にまたは集約コンテンツデータ構造から)一貫して選択する場合には、所定のタイプターゲットパーセンテージは、特定のカテゴリタイプに関連付けられた所定のタイプターゲットパーセンテージを増大するように調整され得る。
【0047】
ブロック410において、ミキシングサーバ215は、受信した集約コンテンツデータ構造のスコアに基づいて、1つの受信した集約コンテンツデータ構造を選択する。いくつかの実施形態においては、ミキシングサーバ215は、最高スコアに関連付けられた集約コンテンツデータ構造を選択する。集約コンテンツデータ構造のタイプの各々に関するタイプ選択パーセンテージは、受信した集約コンテンツデータ構造の選択の後に、更新され得る。
【0048】
いくつかの実施形態においては、アグリゲーションサーバ210A-Cは、互いに異なるスコア決定方法および/または異なるスコア値を用いる。そのような実施形態においては、ミキシングサーバ215は、アグリゲーションサーバ210A-Cによって提供される集約コンテンツデータ構造スコアを正規化する。例えば、ミキシングサーバ215は、受信した集約コンテンツデータ構造の各々のスコアが第1の所定の値(例えば、0)と第2の所定の値(例えば、1)との間となるように、スコアを正規化してもよい。いくつかの実施形態においては、ミキシングサーバ215は、最高正規化されたスコアに関連付けられた集約コンテンツデータ構造を選択する。
【0049】
いくつかの実施形態においては、集約コンテンツデータ構造に関するスコアを正規化するために、ミキシングシステム215は、最高スコアを有するそれぞれのコンテンツリスト内のコンテンツアイテムのスコアで、各それぞれの集約コンテンツデータ構造の各コンテンツアイテムのスコアを除算してもよい。そのような実施形態においては、最高スコアを有するコンテンツアイテムは、集約コンテンツデータ構造の各々に関して1つである。ミキシングシステム210は、その後、各集約コンテンツデータ構造内のコンテンツアイテムの一部またはすべてのスコアに基づいて、集約コンテンツデータ構造に関するスコアを算出し得る。例えば、ミキシングシステム215は、最高スコアに関連付けられた5つのコンテンツアイテムの平均をとることによって、集約コンテンツデータ構造のスコアを算出してもよい。
【0050】
2つ以上の集約コンテンツデータ構造間で同順位が存在するケース、例えば、これらの集約コンテンツデータ構造が同一の正規化されたスコアを有する場合などには、ミキシングサーバ215は、同順位の状況を崩すための所定のルールを有し得る。例えば、ミキシングサーバ215は、最高の所定のタイプターゲットパーセンテージに関連付けられたタイプの集約コンテンツデータ構造および/またはミキシングサーバ215に最初に到来した集約コンテンツデータ構造を選択する所定のルールを有していてもよい。別の例としては、ミキシングサーバ215は、同順位の集約コンテンツデータ構造のうちからランダムに選択する所定のルールを有していてもよい。
【0051】
ブロック415において、ミキシングサーバ215は、選択された集約コンテンツデータ構造238をユーザのコンテンツストリーム240にミキシングする。このことに関連して、集約コンテンツデータ構造238は、既存のコンテンツストリームに追加され得る、または、コンテンツストリームのために選択された既存の一群のコンテンツアイテムに追加され得る。集約コンテンツデータ構造238は、ストリームが表示される際に(例えば、他の集約コンテンツデータ構造と順不同に)ストリーム内の他のコンテンツアイテムの間に配置されるようにミキシングされる。選択された集約コンテンツデータ構造238は、集約コンテンツデータ構造232、234、または236のうちの1つである。ブロック420において、ミキシングサーバ215は、そこでミキシングされた選択された集約コンテンツデータ構造を有するコンテンツストリーム240をソーシャルネットワークサーバ220に提供する。ユーザは、ソーシャルネットワークサーバ220によってユーザに提供されるユーザインターフェースを介してコンテンツストリーム240にアクセスし得る。それゆえ、ユーザは、コンテンツストリーム240内の他の個々のコンテンツアイテムのうちのバンドルされた一群のコンテンツアイテムとして集約コンテンツデータ構造238を閲覧し得る。
【0052】
いくつかの実施形態においては、ミキシングサーバ215は、アグリゲーションサーバ210A-Cからの集約コンテンツデータ構造内のコンテンツアイテムの順序を保持する。例えば、アグリゲーションサーバ210A-Cは、コンテンツアイテムのスコアに基づいて、コンテンツアイテムの順序付きリストとして集約コンテンツデータ構造を提供してもよい。アグリゲーションサーバ210A-Cからの集約コンテンツデータ構造がそれらのスコアのそれぞれに基づいた順序でコンテンツアイテムを含んでいないケースでは、ミキシングサーバ215は、スコアのそれぞれに基づいて、選択された集約コンテンツデータ構造内のコンテンツアイテムを順序付けし得る。
【0053】
タイプ選択パーセンテージは、コンテンツストリーム240における特定の時間にわたりおよび/または複数のコンテンツアイテムにわたって適用されてもよい。タイプ選択パーセンテージをリセットするために、集約コンテンツデータ構造の各タイプに関してミキシングサーバ215によって選択されていた集約コンテンツデータ構造の総数は0に設定され、すべてのタイプの集約コンテンツデータ構造のうちのミキシングサーバ215によって選択されていた集約コンテンツデータ構造の総数は0に設定される。そのため、リセットの際に、集約コンテンツデータ構造の異なるタイプの各々に関するタイプ選択パーセンテージは0%に設定される。
【0054】
タイプ選択パーセンテージのリセットは、ある時間において、または、コンテンツストリーム240内のコンテンツアイテムの数に基づいて、行われ得る。いくつかの実施形態においては、集約コンテンツデータ構造の異なるタイプの各々に関するタイプ選択パーセンテージは、ユーザがソーシャルネットワークサービスのための新規ログインセッションを開始した際に、リセットされてもよい。ユーザは、前回のログインセッションが期限切れとなった場合(例えば、ユーザがログインセッションを手動でログアウトした場合、ユーザのアクティビティがないことによりログインセッションがタイムアウトした場合など)には、新規ログインセッションを開始する必要があり得る。いくつかの実施形態においては、集約コンテンツデータ構造の異なるタイプの各々に関するタイプ選択パーセンテージは、コンテンツストリーム240の各ページに対してページ毎にリセットされてもよい。例えば、集約コンテンツデータ構造の異なるタイプの各々に関するタイプ選択パーセンテージは、ユーザがコンテンツストリーム240の第1のページ(例えば、現在のページ)からコンテンツストリーム240の第2のページ(例えば、次のページ)にナビゲートした場合に、リセットされてもよい。
【0055】
ソーシャルネットワークサービスのためのユーザログインセッションにおいて、コンテンツストリーム240の新規ページへのユーザのナビゲーションが、コンテンツストリーム240へのミキシングのために追加の集約コンテンツデータ構造を選択することをミキシングサーバ215に促し得る。ユーザログインセッションにおいて、コンテンツアイテムおよび集約コンテンツデータ構造を用いて以前生成されたコンテンツストリーム240の前のページへのユーザのナビゲーションが、同一のコンテンツアイテムおよび集約コンテンツデータ構造を有する前のページのリロードをもたらし得る。
【0056】
コンテンツストリーム240の以前生成したページが同一のコンテンツアイテムを用いて生成された状態のままとすることを可能にすることは、ユーザに以前提示されたコンテンツアイテムをユーザがより用意に探し出すことを可能にし得る。いくつかのケースにおいては、コンテンツストリーム240の以前生成したページは、別のページへの以前生成したページのコンテンツアイテムの移動を引き起こし得る、新規コンテンツアイテムがこれらの新規コンテンツアイテムを含むように生成または読み出されると、更新され得る。いくつかのケースにおいては、コンテンツストリーム240の各ページは、10個のコンテンツアイテムがユーザに提供されることを可能にし得るし、コンテンツストリーム240にミキシングされた各集約コンテンツデータ構造は、10個のコンテンツアイテムのうちの1つとみなし得る。いくつかの実施形態においては、ログインセッションが期限切れとなると、コンテンツストリーム240および集約コンテンツデータ構造は、それぞれ、例えば、ソーシャルネットワークサービスおよびミキシングサーバ215によって構築される必要があり得る。コンテンツストリーム240および集約コンテンツデータ構造の構築は、ユーザの前回のログインセッションにおいて構築されたものとは異なるコンテンツストリームおよび/または集約コンテンツデータ構造をもたらしてもよい。
【0057】
いくつかの実施形態においては、ミキシングサーバ215は、コンテンツストリーム240内のあるパーセンテージのコンテンツアイテムが集約コンテンツデータ構造であるように、集約コンテンツデータ構造をコンテンツストリーム240にミキシングする。例えば、ミキシングサーバ215は、コンテンツストリーム240内のすべてのコンテンツアイテムのうちの10%が集約コンテンツデータ構造であるように、集約コンテンツデータ構造をコンテンツストリーム240にミキシングしてもよい。パーセンテージは、コンテンツストリーム240の各ページに関するコンテンツアイテムの10%が集約コンテンツデータ構造であるように、各ページに関して設定されてもよい。コンテンツストリーム240に設定された集約コンテンツデータ構造について、ミキシングサーバ215は、集約コンテンツデータ構造の各タイプに関するそれぞれの所定のタイプターゲットパーセンテージに基づいて、異なるタイプの集約コンテンツデータ構造をミキシングする。
【0058】
図5は、主題とする技術の例示的な態様による、集約コンテンツデータ構造をコンテンツストリーム240にミキシングするためのプロセスのフローチャート500を図示している。コンテンツストリーム240は、ソーシャルネットワークサービスを介してユーザにとってアクセス可能であるユーザのコンテンツストリームであり得る。
図2および
図4を参照してフローチャート500を説明する。
【0059】
ブロック505において、ミキシングサーバ215は、選択された集約コンテンツデータ構造238を提供したソース(例えば、1つのアグリゲーションサーバ210A-C)から集約コンテンツデータ構造を読み出す。受信した集約コンテンツデータ構造は、選択された集約コンテンツデータ構造238を提供したアグリゲーションサーバのキューから提供され得る。例えば、選択された集約コンテンツデータ構造238がアグリゲーションサーバ210Aからの集約コンテンツデータ構造232である場合には、集約コンテンツデータ構造232は、アグリゲーションサーバ210Aによって作成された最高スコアを有する集約コンテンツデータ構造であり得る一方で、ブロック505においてミキシングサーバ215によって受信された集約コンテンツデータ構造は、アグリゲーションサーバ210Aによって作成された2番目に高いスコアを有する集約コンテンツデータ構造であり得る。
【0060】
ブロック510において、ミキシングサーバ215は、ミキシングサーバ215によって受信されていた少なくとも1つの集約コンテンツデータ構造のスコアを調整する。ミキシングサーバ215によって受信されていた集約コンテンツデータ構造は、ブロック405において受信された残りの(例えば、非選択)集約コンテンツデータ構造とともに、ブロック505において受信された集約コンテンツデータ構造を含む。
【0061】
いくつかの実施形態においては、ミキシングサーバ215は、タイプ選択パーセンテージおよび所定のタイプターゲットパーセンテージに基づいて、ミキシングサーバ215によって受信されていた1つまたは複数の集約コンテンツデータ構造のスコアを調整する。その所定のタイプターゲットパーセンテージを超過しているアグリゲーションコンテンツデータ構造タイプについては、このようなタイプの集約コンテンツデータ構造のスコアは、その所定のタイプターゲットパーセンテージを達成することを支援するために低減され得る。あるいはまたは加えて、そのそれぞれのターゲットパーセンテージに達していないアグリゲーションコンテンツデータ構造タイプについては、このようなタイプの集約コンテンツデータ構造のスコアは、その所定のタイプターゲットパーセンテージを達成することを支援するために増加されてもよい。
【0062】
いくつかの実施形態においては、集約コンテンツデータ構造のスコアは、スケール係数をスコアに適用されることによって調整されてもよい。スケール係数は、例えば、多項式関数f(x)=1+3x+5x
2を使用して算出され得る、ここで、xは、現在のタイプ選択パーセンテージと所定のタイプターゲットパーセンテージとの間の差である。一例として、第1のタイプの集約コンテンツデータ構造の所定のタイプターゲットパーセンテージが80%であり、第1のタイプの現在のタイプ選択パーセンテージが71%である場合には、x=0.09であり、f(x)=1.31である。ミキシングサーバ215によって受信された任意の第1のタイプの集約コンテンツデータ構造のスコアにスケール係数を乗算することによって、第1のタイプの集約コンテンツデータ構造のスコアは31%増加される。第1のタイプの集約コンテンツデータ構造に関する調整後のスコアを、その後、他の第1のタイプの集約コンテンツデータ構造の調整後のスコアと、もしあれば、他のタイプの集約コンテンツデータ構造のスコアと比較し得る。第1のタイプの集約コンテンツデータ構造のスコアを増加することは、第1のタイプの集約コンテンツデータ構造が選択されることになる可能性を(増大されたスコアも用いない場合と比較して)増大することになる、その結果、所定のタイプターゲットパーセンテージを達成することになる可能性を増大することになる。そのような増加は、第1のタイプの集約コンテンツデータ構造の昇格としてみなし得る。
【0063】
別の例としては、第1のタイプの集約コンテンツデータ構造の所定のタイプターゲットパーセンテージが80%であり、第1のタイプの集約コンテンツデータ構造の現在のタイプ選択パーセンテージが89%である場合には、x=-0.09であり、f(x)=77%である。任意の第1のタイプの集約コンテンツデータ構造のスコアにスケール係数を乗算することによって、第1のタイプの集約コンテンツデータ構造のスコアは23%低減される。第1のタイプの集約コンテンツデータ構造に関する調整後のスコアを、その後、他の第1のタイプの集約コンテンツデータ構造の調整後のスコアと、もしあれば、他のタイプの集約コンテンツデータ構造のスコアと比較し得る。第1のタイプの集約コンテンツデータ構造のスコアを低減することは、第1のタイプの集約コンテンツデータ構造が選択されることになる可能性を(低減されたスコアを用いない場合と比較して)減少することになる、その結果、所定のタイプターゲットパーセンテージを達成することになる可能性を増大することになる。そのような低減は、第1のタイプの集約コンテンツデータ構造の降格としてみなし得る。
【0064】
いくつかの実施形態においては、スケール係数は、第1のタイプの集約コンテンツデータ構造に関して以前算出および適用された上位のいくつかのスケール係数が適用される。このような複数のスケール係数の適用は、集約コンテンツデータ構造の異なるタイプに関する所定のタイプターゲットパーセンテージを達成することを支援するために、必要に応じて、第1のタイプの集約コンテンツデータ構造のスコアの連続的な増加または低減を可能にし得る。いくつかの実施形態においては、集約コンテンツデータ構造に適用されるスケール係数または係数が、コンテンツストリーム240の各ページに対してページ毎にリセットされてもよい。
【0065】
スケール係数を算出するために上記において提供した多項式関数は非限定的な例として提供したものであり、他の線形または非線形関数をスケール係数を計算するために使用してもよい。スコアにスケール係数を乗算することによってスコアを調整してもよいが、スコアを調整するために他の方法を使用してもよい。
【0066】
上述した例において、第1のタイプの集約コンテンツデータ構造のスコアが調整されている。あるいはまたは加えて、他のタイプの集約コンテンツデータ構造のスコアを調整してもよい。いくつかの実施形態においては、調整後のスコアが、その所定のタイプターゲットパーセンテージを超過している現在のタイプ選択パーセンテージを有する集約コンテンツデータ構造タイプに対してのみ算出されてもよい。他の実施形態においては、調整後のスコアが、その所定のタイプターゲットパーセンテージを超過していない現在のタイプ選択パーセンテージを有する集約コンテンツデータ構造タイプに対してのみ算出されてもよい。さらに他の実施形態においては、調整後のスコアが、その所定のタイプターゲットパーセンテージを超過している現在のタイプ選択パーセンテージを有する集約コンテンツデータ構造タイプの一部またはすべて、および/または、その所定のタイプターゲットパーセンテージを超過していない現在のタイプ選択パーセンテージを有する集約コンテンツデータ構造タイプの一部またはすべてに対して算出されてもよい。
【0067】
ブロック515において、ミキシングサーバ215は、集約コンテンツデータ構造の各々に関連付けられたスコアに基づいて、第2の集約コンテンツデータ構造を選択する。これらのスコアのいくつかは、ブロック510において調整されていてもよい。いくつかの実施形態においては、第2の集約コンテンツデータ構造は、他の集約コンテンツデータ構造のスコアのうちで最高となっているスコアに関連付けられる。集約コンテンツデータ構造タイプの各々に関するタイプ選択パーセンテージは、第2の集約コンテンツデータ構造の選択の後に、更新され得る。
【0068】
ブロック520において、ミキシングサーバ215は、選択された第2の集約コンテンツデータ構造をユーザのコンテンツストリーム240にミキシングする。ミキシングサーバ215は、そこでミキシングされた選択された集約コンテンツデータ構造を有するコンテンツストリーム240をソーシャルネットワークサーバ220に提供し得る。
【0069】
前述では3つのタイプの集約コンテンツデータ構造を構成するケースを説明しているが、より少ない、より多い、および/または異なるタイプの集約コンテンツデータ構造が使用されてもよい。さらに、前述では3つのアグリゲーションサーバ210A-Cを使用するケースを説明しているが、より少ないまたはより多いアグリゲーションサーバが使用されてもよい。集約コンテンツデータ構造のタイプの数は、アグリゲーションサーバの数と同一または異なっていてもよい。
【0070】
いくつかの実施形態においては、ルールのセットが、集約コンテンツデータ構造をコンテンツストリーム240にミキシングすることを支援するために使用されてもよい。ルールのセットは、ユーザが異なるアグリゲーションサーバから集約コンテンツデータ構造を提供されることを可能にすることを支援し、ユーザのコンテンツストリーム240を(例えば、無意識的にまたは意識的に)溢れさせるいくつかのアグリゲーションサーバを有することを回避することを支援し得る。例えば、集約コンテンツデータ構造のスコア(例えば、正規化されたスコア、調整後のスコア)およびタイプとは無関係に、ミキシングサーバ215が、コンテンツストリーム240に、同一のアグリゲーションサーバからの一連の所定の数(例えば、7つ)より多くの集約コンテンツデータ構造をミキシングし得ることがないように、ルールを設定してもよい。
【0071】
別の例としては、2つの連続した集約コンテンツデータ構造が同一のアグリゲーションサーバからのものとならないように、および/または、2つの連続した集約コンテンツデータ構造が同一のタイプのものとならないように、同一のアグリゲーションサーバからの集約コンテンツデータ構造を配置するようにルールを設定してもよい。いくつかのケースにおいては、ルールは、集約コンテンツデータ構造が選択された後に実施され得る。例えば、ミキシングサーバ215は、アグリゲーションサーバ210Aからの2つの連続した集約コンテンツデータ構造(例えば、第1および第2の集約コンテンツデータ構造)、続いて、アグリゲーションサーバ210Cから集約コンテンツデータ構造を順に選択し得る。しかしながら、これらの選択された集約コンテンツデータ構造をコンテンツストリーム240にミキシングする場合には、ミキシングサーバ215は、アグリゲーションサーバ210Aからの第1の集約コンテンツデータ構造、アグリゲーションサーバ210Cからの集約コンテンツデータ構造、およびアグリゲーションサーバ210Aからの第2の集約コンテンツデータ構造をコンテンツストリーム240に順にミキシングしてもよい。
【0072】
いくつかの実施形態においては、ミキシングサーバ215は、特定のアグリゲーションサーバからの集約コンテンツデータ構造のミキシングを停止してもよい。例えば、ミキシングサーバ215は、アグリゲーションサーバ210A-Cのアクティビティを監視してもよいし、他のアグリゲーションサーバ210Aおよび210Cからのアグリゲーションデータコンテンツ構造を選択することに先立ってそのアグリゲーションデータコンテンツ構造のうちの1つをミキシングサーバ215に常に選択させるようにアグリゲーションサーバ210Bがそのアグリゲーションデータコンテンツ構造を不適切にスコア決定していると決定してもよい。
【0073】
いくつかの実施形態においては、ユーザが、所定のタイプターゲットパーセンテージを手動で変更してもよい。例えば、ユーザが所定のタイプターゲットパーセンテージに設定することができるように、ボリュームコントロールがユーザインターフェース上にユーザに提供されていてもよい。ユーザは、フィードバックを提供する機会が提供され得る。例えば、ユーザは、集約コンテンツデータ構造において提供したコンテンツアイテムと類似したコンテンツアイテムを、より多く閲覧したい、より少なく閲覧したい、決して閲覧したくない、常に閲覧したい、または他の選択肢を示し得る。特定のアグリゲーションサーバからの集約コンテンツデータ構造を、より多く閲覧する、より少なく閲覧する、決して閲覧しない、常に閲覧する、または他の選択肢などといったユーザフィードバックがまた、全体として集約コンテンツデータ構造に関して提供され得る。
【0074】
図6は、主題とする技術のいくつかの実施形態を実施することができる例示的な電子システム600を概念的に図示している。電子システム600は、コンピュータ、電話、PDA、または任意の他の種類の電子デバイスであり得る。そのような電子システムは、様々なタイプのコンピュータ可読媒体および様々な他のタイプのコンピュータ可読媒体のためのインターフェースを含む。電子システム600は、バス608、処理ユニット612、システムメモリ604、リードオンリーメモリ(ROM)610、永久ストレージデバイス602、入力デバイスインターフェース614、出力デバイスインターフェース606、およびネットワークインターフェース616を含む。
【0075】
バス608は、電子システム600の多数の内部デバイスと通信可能に接続する、システム、周辺機器、およびチップセットバスのすべてをまとめて表している。例として、バス608は、処理ユニット612をROM610、システムメモリ604、および永久ストレージデバイス602に通信可能に接続している。
【0076】
これらの様々なメモリユニットから、処理ユニット612は、主題の開示のプロセスを実行するために実行することになる命令および処理することになるデータを読み出す。処理ユニットは、単一のプロセッサであり得るし、また異なる実施形態においてはマルチコアプロセッサであり得る。
【0077】
ROM610は、処理ユニット612および電子システムの他のモジュールによって必要とされる静的データおよび命令を記憶する。一方、永久ストレージデバイス602は、リード/ライトメモリデバイスである。このようなデバイスは、電子システム600が電源オフされた場合にでさえも命令およびデータを記憶する、不揮発性メモリユニットである。主題の開示のいくつかの実施形態は、永久ストレージデバイス602としてマスストレージデバイス(例えば、磁気または光ディスクおよびそれに対応するディスクドライブ)を使用する。
【0078】
他の実施形態は、永久ストレージデバイス602としてリムーバブルストレージデバイス(例えば、フロッピーディスク、フラッシュドライブ、およびそれに対応するディスクドライブ)を使用する。永久ストレージデバイス602と同様に、システムメモリ604は、リード/ライトメモリデバイスである。しかしながら、ストレージデバイス602とは異なって、システムメモリ604は、ランダムアクセスメモリなどといった揮発性リード/ライトメモリである。システムメモリ604は、プロセッサがランタイム時に必要とするいくつかの命令およびデータを記憶している。いくつかの実施形態においては、主題の開示のプロセスは、システムメモリ604、永久ストレージデバイス602、またはROM610に記憶されている。例えば、様々なメモリユニットは、集約コンテンツデータ構造を受信し、集約コンテンツデータ構造のうちから選択し、選択された集約コンテンツデータ構造をコンテンツストリームにミキシングするための命令を含む。これらの様々なメモリユニットから、処理ユニット612は、いくつかの実施形態のプロセスを実行するために実行することになる命令および処理することになるデータを読み出す。
【0079】
バス608はまた、入力および出力デバイスインターフェース614および606に接続している。入力デバイスインターフェース614は、ユーザが電子システムとの情報の通信することおよびコマンドの選択することを可能にする。入力デバイスインターフェース614に使用される入力デバイスは、例えば、英数字キーボードおよびポインティングデバイス(「カーソル制御デバイス」とも称する)を含む。出力デバイスインターフェース606は、例えば、電子システム600によって生成された画像の表示を可能にする。出力デバイスインターフェース606に使用される出力デバイスは、例えば、プリンタおよび例えば、陰極線管(CRT)または液晶ディスプレイ(LCD)といった表示デバイスを含む。いくつかの実施形態は、例えば、入力および出力双方のデバイスとして機能するタッチスクリーンといったデバイスを含む。
【0080】
最後に、
図6に示したように、バス608はまた、ネットワークインターフェース616を介してネットワーク(図示せず)に電子システム600を接続している。このように、コンピュータは、コンピュータのネットワーク(例えば、LAN、WAN、もしくはイントラネット、または、例えばインターネットといったネットワークのうちのネットワーク)の一部であり得る。電子システム600の任意のまたはすべてのコンポーネントは、主題の開示に関連して使用され得る。
【0081】
上述した機能およびアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも称する)上に記憶される命令のセットとして規定されるソフトウェアプロセスとして実装される。これらの命令が1つまたは複数の処理ユニット(例えば、1つまたは複数のプロセッサ、プロセッサのコア、または他の処理ユニット)によって実行されると、それらは命令に指示されたアクションを処理ユニットに行わせる。コンピュータ可読媒体の例としては、CD-ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROMなどを含むがそれらに限定されない。コンピュータ可読媒体は、無線でまたは有線接続を介して伝播する搬送波および電子信号を含まない。
【0082】
本明細書では、「ソフトウェア」という用語は、プロセッサによって処理するためにメモリに読み出され得る、リードオンリーメモリにあるファームウェアまたは磁気ストレージに記憶されているアプリケーションを含むことを意味する。また、いくつかの実施形態においては、主題の開示の複数のソフトウェア態様は、主題の開示の個別のソフトウェア態様のままである一方で、より大きなプログラムのサブ部分として実装されてもよい。いくつかの実施形態においては、複数のソフトウェア態様はまた、別個のプログラムとして実装されてもよい。最後に、本明細書に記載のソフトウェア態様をともに実装する別個のプログラムの任意の組合せも主題の開示の範囲にある。いくつかの実施形態においては、ソフトウェアプログラムは、1つまたは複数の電子システム上で動作するためにインストールされると、ソフトウェアプログラムの演算を実行および行う1つまたは複数の特定の機械実施形態を定義している。
【0083】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で記述され得るし、それは、スタンドアローンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む、任意の形式でデプロイされ得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)に、当該のプログラム専用の単一のファイルに、または、複数の協調ファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに位置するもしくは複数のサイトにわたって分散され通信ネットワークによって相互通信する複数のコンピュータ上で、実行されるようにデプロイされ得る。
【0084】
上述したこれらの機能は、デジタル電子回路内に、コンピュータソフトウェア、ファームウェア、またはハードウェア内に実装され得る。その技法は、1つまたは複数のコンピュータプログラム製品を使用して実装され得る。プログラマブルプロセッサおよびコンピュータは、モバイルデバイスに含まれ得る、または、モバイルデバイスとしてパッケージされ得る。プロセスおよびロジックフローは、1つまたは複数のプログラマブルプロセッサによって、および1つまたは複数のプログラマブル論理回路によって行われ得る。汎用および特殊用途コンピュータデバイスおよびストレージデバイスは、通信ネットワークを介して相互接続され得る。
【0085】
いくつかの実施形態は、機械可読またはコンピュータ可読媒体(あるいは、コンピュータ可読記憶媒体、機械可読媒体、または機械可読記憶媒体とも称する)にコンピュータプログラム命令を記憶する、例えば、マイクロプロセッサ、ストレージ、およびメモリといった電子コンポーネントを含む。そのようなコンピュータ可読媒体のいくつかの例としては、RAM、ROM、読出専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、書換可能コンパクトディスク(CD-RW)、読出専用デジタル多用途ディスク(例えば、DVD-ROM、二層DVD-ROM)、様々な記録可能/書換可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカードなど)、磁気またはソリッドステートハードドライブ、読出専用および記録可能Blu-Ray(登録商標)ディスク、超高密度光ディスク、任意の他の光学または磁気メディア、およびフロッピーディスクを含む。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能なファイルであり、様々な演算を行うための命令のセットを含む、コンピュータプログラムを記憶し得る。コンピュータプログラムまたはコンピュータコードの例としては、例えばコンパイラによって生成される機械コード、およびインタープリタを使用してコンピュータ、電子コンポーネント、またはマイクロプロセッサによって実行される高水準コードを含むファイルを含む。
【0086】
上記説明ではソフトウェアを実行するマイクロプロセッサまたはマルチコアプロセッサを主として参照しているが、いくつかの実施形態は、例えば、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)といった、1つまたは複数の集積回路によって行われる。いくつかの実施形態においては、そのような集積回路は、回路そのものに記憶されている命令を実行する。
【0087】
本出願の本明細書および任意の請求項において使用しているように、「コンピュータ」、「サーバ」、「プロセッサ」、および「メモリ」という用語はすべて、電子または他の技術的デバイスを指す。これらの用語は、人々または一群の人々を含まない。明確にすることを目的として、表示または表示するという用語は、電子デバイス上に表示することを意味している。本出願の本明細書および任意の請求項において使用しているように、「コンピュータ可読媒体」および「コンピュータ可読媒体」という用語は、コンピュータによって読み出し可能な形式で情報を記憶する有形、物理オブジェクトに完全に限定される。これらの用語は、任意の無線信号、有線ダウンロード信号、および任意の他の一時的信号を含まない。
【0088】
ユーザとのインタラクションを提供するために、本明細書において説明した主題の実施形態は、ユーザに情報を表示するために、例えば、CRTまたはLCDモニタといった、表示デバイスと、ユーザがそれによって入力をコンピュータに提供することができる、例えば、マウスまたはトラックボールといった、キーボードおよびポインティングデバイスとを有するコンピュータに実装され得る。他の種類のデバイスもユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどといった、任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信するとともにユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信した要求に応じてウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザとやりとりし得る。
【0089】
本明細書において説明した主題の実施形態は、例えば、データサーバとして、バックエンドコンポーネントを含む、または、例えば、アプリケーションサーバといった、ミドルウェアコンポーネントを含む、例えば、ユーザがそれを介して本明細書において説明した主題の実施形態とやりとりし得る、グラフィックユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータといった、フロントエンドコンポーネントを含む、コンピューティングシステムにおいて実装され得る、または、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントのうちの1つまたは複数の任意の組合せで実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、インターネットワーク(例えば、インターネット)、ならびにピア・ツー・ピアネットワーク(例えば、アドホックピア・ツー・ピアネットワーク)を含む。
【0090】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的に互いにリモートに存在しており、通信ネットワークを介して通常はやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態においては、サーバは、(例えば、データをクライアントデバイスに表示するとともに、ユーザのクライアントデバイスとのやり取りからユーザ入力を受信するために、)データ(例えば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイス(例えば、ユーザインタラクションの結果)において生成されたデータを、サーバにおいてクライアントデバイスから受信し得る。
【0091】
開示したプロセス内のステップの任意の特定の順序または序列が例示的なアプローチの図であることは理解されよう。設計選好に基づいて、プロセス内のステップの特定の順序または序列が並び替えられてもよいこと、または、図示したステップのすべてを行ってもよいことは理解されよう。いくつかのステップを同時に行ってもよい。例えば、ある状況においては、マルチタスク処理およびパラレル処理が有利となり得る。さらに、上述した実施形態における様々なシステムコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではないし、説明したプログラムコンポーネントおよびシステムは、一般的に、単一のソフトウェア製品に一緒に統合し得る、または、複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0092】
前述の説明は、任意の当業者が本明細書に記載の様々な態様を実施することができるようにするために提供している。これらの態様に対する様々な修正が当業者にとって容易に明白であろうし、本明細書で定義した包括的原理を他の態様に適用してもよい。そのため、特許請求の範囲は、本明細書に示した態様に限定されることを意図しておらず、言語上の主張と一致する全範囲と合致している、ここで、単数形の要素に対する参照は、特に記述がない限り、「1つおよびだた1つ」を意味することを意図しておらず、むしろ「1つまたは複数」を意味することを意図している。または特に記載がなければ、「いくつか」という用語は、1つまたは複数を指す。男性の代名詞(例えば、彼の)は、女性および中性(例えば、彼女のおよびその)も含み、逆の場合も同様である。見出しおよびサブ見出しは、例えあったとしても、便宜上のみ使用されており、主題の開示を限定するものではない。
【0093】
「態様」などの表現は、そのような態様が主題とする技術に必須であること、または、そのような態様が主題とする技術のすべての構成に適用されることを意味しているわけではない。態様に関連する開示は、すべての構成、または、1つまたは複数の構成に適用され得る。ある態様などの表現は、1つまたは複数の態様を指し得るし、逆の場合も同様である。「構成」などの表現は、そのような構成が主題とする技術に必須であること、または、そのような構成が主題とする技術のすべての構成に適用されることを意味しているわけではない。構成に関連する開示は、すべての構成、または、1つまたは複数の構成に適用され得る。ある構成などの表現は、1つまたは複数の構成を指し得るし、逆の場合も同様である。