(57)【要約】システム、方法、非一時的なコンピュータ可読記憶媒体は、コンピューティングシステムを介してコンテンツブロードキャストを実行するための情報を決定するためのブロードキャスタの要求を判定するように構成される。以前に実行された複数のブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを用いて、ブロードキャストの１つまたは複数のパラメータが決定される。１つまたは複数のパラメータを少なくとも記述する情報が、ブロードキャスタに供給される。
2019522421.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行される方法であって、
コンピューティングシステムが、該コンピューティングシステムを介してコンテンツブロードキャストを実行するための情報を決定するためのブロードキャスタの要求を判定すること、
前記コンピューティングシステムが、以前に実行された複数のブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定すること、
前記コンピューティングシステムが、前記１つまたは複数のパラメータを少なくとも記述する情報を前記ブロードキャスタに供給すること、を備える方法。
【請求項２】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記コンピューティングシステムが、前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの時間帯を決定することを含み、
少なくとも閾値数のユーザが、前記時間帯の少なくとも一部のブロードキャストにアクセスすることが期待される、請求項１に記載の方法。
【請求項３】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記コンピューティングシステムが、前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストの少なくとも１つのトピックを決定することを含み、
少なくとも閾値数のユーザが、前記少なくとも１つのトピックに関して実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１に記載の方法。
【請求項４】
前記ブロードキャストのための少なくとも1つのトピックは、
前記ブロードキャスタのソーシャルプロファイルにおいて特定される情報、前記コンピューティングシステムを介して前記ブロードキャスタによって公開された複数のポストに対応する複数のトピック、またはブロードキャスタに対応する地理的位置のうちの少なくとも１つに基づいて自動的に生成される、請求項３に記載の方法。
【請求項５】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記コンピューティングシステムが、前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの地理的位置を決定することを含み、
少なくとも閾値数のユーザが、前記少なくとも１つの地理的位置から実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１に記載の方法。
【請求項６】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストにアクセスすることが期待される複数のユーザを記述する情報を決定することを含む、請求項１に記載の方法。
【請求項７】
前記情報は、
前記複数のユーザの数、または前記複数のユーザを記述する人口統計情報のうちの少なくとも１つを含む、請求項６に記載の方法。
【請求項８】
前記コンピューティングシステムが、前記ブロードキャストの視聴者を構成することであって、前記視聴者は、前記ブロードキャストに関心のある１組のユーザを含む、前記構成すること、
前記コンピューティングシステムが、前記視聴者のサイズが閾値を満たすと判定すること、
前記コンピューティングシステムが、前記ブロードキャストに関心のある１組のユーザを記述する通知を前記ブロードキャスタに提供すること、をさらに備える請求項１に記載の方法。
【請求項９】
前記ブロードキャストの視聴者を構成することは、
前記コンピューティングシステムが、１つまたは複数の通知を前記１組のユーザに提供して前記１組のユーザに前記ブロードキャストについて知らせること、を含む、請求項８に記載の方法。
【請求項１０】
前記ブロードキャストの視聴者を構成することは、
前記コンピューティングシステムが、前記１組のユーザに１つまたは複数のポーリングの質問事項を提供し、前記１組のユーザに前記ブロードキャストについて知らせて前記ブロードキャストに関心のある前記複数のユーザの数を決定することを含む、請求項８に記載の方法。
【請求項１１】
システムであって、
少なくとも１つのプロセッサと、
複数の命令を記憶するメモリと、を備え、
前記複数の命令は、前記少なくとも１つのプロセッサによって実行されると、
コンピューティングシステムを介してコンテンツブロードキャストを実行するための情報を決定するためのブロードキャスタの要求を判定すること、
以前に実行された複数のブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定すること、
前記１つまたは複数のパラメータを少なくとも記述する情報を前記ブロードキャスタに供給すること、を前記システムに行わせる、システム。
【請求項１２】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記コンピューティングシステムが、前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの時間帯を決定することを前記システムに行わせ、
少なくとも閾値数のユーザが、前記時間帯の少なくとも一部のブロードキャストにアクセスすることが期待される、請求項１１に記載のシステム。
【請求項１３】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストの少なくとも１つのトピックを決定することを前記システムに行わせ、
少なくとも閾値数のユーザが、前記少なくとも１つのトピックに関して実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１１に記載のシステム。
【請求項１４】
前記ブロードキャストのための少なくとも1つのトピックは、
前記ブロードキャスタのソーシャルプロファイルにおいて特定される情報、前記コンピューティングシステムを介して前記ブロードキャスタによって公開された複数のポストに対応する複数のトピック、またはブロードキャスタに対応する地理的位置のうちの少なくとも１つに基づいて自動的に生成される、請求項１３に記載のシステム。
【請求項１５】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの地理的位置を決定することを前記システムに行わせ、
少なくとも閾値数のユーザが、前記少なくとも１つの地理的位置から実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１１に記載のシステム。
【請求項１６】
複数の命令を含む非一時的なコンピュータ可読記憶媒体であって、
前記複数の命令は、コンピューティングシステムの少なくとも１つのプロセッサによって実行されると、
該コンピューティングシステムを介してコンテンツブロードキャストを実行するための情報を決定するためのブロードキャスタの要求を判定すること、
以前に実行された複数のブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定すること、
前記１つまたは複数のパラメータを少なくとも記述する情報を前記ブロードキャスタに供給すること、を備える方法を前記コンピューティングシステムに行わせる、非一時的なコンピュータ可読記憶媒体。
【請求項１７】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記コンピューティングシステムが、前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの時間帯を決定することを前記コンピューティングシステムに行わせ、
少なくとも閾値数のユーザが、前記時間帯の少なくとも一部のブロードキャストにアクセスすることが期待される、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１８】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストの少なくとも１つのトピックを決定することを前記コンピューティングシステムに行わせ、
少なくとも閾値数のユーザが、前記少なくとも１つのトピックに関して実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１９】
前記ブロードキャストのための少なくとも1つのトピックは、
前記ブロードキャスタのソーシャルプロファイルにおいて特定される情報、前記コンピューティングシステムを介して前記ブロードキャスタによって公開された複数のポストに対応する複数のトピック、またはブロードキャスタに対応する地理的位置のうちの少なくとも１つに基づいて自動的に生成される、請求項１８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記機械学習モデルを用いて前記ブロードキャストの１つまたは複数のパラメータを決定することは、
前記機械学習モデルに少なくとも部分的に基づいて前記ブロードキャストを実行する少なくとも１つの地理的位置を決定することを前記コンピューティングシステムに行わせ、
少なくとも閾値数のユーザが、前記少なくとも１つの地理的位置から実行される場合に前記ブロードキャストにアクセスすることが期待される、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、コンテンツ提供の分野に関する。より詳細には、本技術は、複数のユーザにライブブロードキャストを提供するための技術に関する。
【背景技術】
【０００２】
今日、人々は、多種多様な目的のためにコンピューティングデバイス（またはシステム）を利用している。ユーザは、コンピューティングデバイスを使用して、例えば、相互に対話したり、コンテンツにアクセスしたり、コンテンツを共有したり、コンテンツを作成することができる。例えば、ユーザは、自身のコンピューティングデバイスを介してコンテンツをストリーミングすることができる。一般的に、コンテンツは、エンコードされたデータ（例えば、オーディオ、映像、またはその両方）をエンドユーザのコンピューティングデバイスに送信するコンテンツプロバイダからストリーミングされる。ストリーミングされたデータを受信するコンピューティングデバイスは、コンピューティングデバイスを介してコンテンツを復号化して提示することができる。
【発明の概要】
【０００３】
本開示の種々の実施形態は、コンピューティングシステムを介してコンテンツブロードキャストを実行するための情報を決定するためのブロードキャスタの要求を判定するように構成されたシステム、方法、非一時的なコンピュータ読み取り可能な記憶媒体を含む。以前に実行された複数のブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを用いて、ブロードキャストの１つまたは複数のパラメータが決定される。１つまたは複数のパラメータを少なくとも記述する情報が、ブロードキャスタに供給される。
【０００４】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、モデルに少なくとも部分的に基づいてブロードキャストを実行する少なくとも１つの時間帯を決定するように構成される。少なくとも閾値数のユーザが、時間帯の少なくとも一部のブロードキャストにアクセスすることが期待される。
【０００５】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、モデルに少なくとも部分的に基づいてブロードキャストの少なくとも１つのトピックを決定するように構成される。少なくとも閾値数のユーザが、少なくとも１つのトピックに関して実行される場合にブロードキャストにアクセスすることが期待される。
【０００６】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、ブロードキャストのための少なくとも1つのトピックは、ブロードキャスタのソーシャルプロファイルにおいて特定される情報、ソーシャルネットワーキングシステムを介してブロードキャスタによって公開された複数のポストに対応する複数のトピック、またはブロードキャスタに対応する地理的位置のうちの少なくとも１つに基づいて自動的に生成される。
【０００７】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、モデルに少なくとも部分的に基づいてブロードキャストを実行する少なくとも１つの地理的位置を決定するように構成される。少なくとも閾値数のユーザが、少なくとも１つの地理的位置から実行される場合にブロードキャストにアクセスすることが期待される。
【０００８】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、モデルに少なくとも部分的に基づいてブロードキャストにアクセスすることが期待される複数のユーザを記述する情報を決定するように構成される。
【０００９】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、情報は、複数のユーザの数、または複数のユーザを記述する人口統計情報のうちの少なくとも１つを含む。
【００１０】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、視聴者にブロードキャストを確立させることであって、視聴者は、ブロードキャストに関心のある１組のユーザを含む、確立させること、視聴者のサイズが閾値を満たすと判定すること、ブロードキャストに関心のある１組のユーザを記述する通知を前記ブロードキャスタに提供すること、を実行するように構成される。
【００１１】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、１つまたは複数の通知を前記１組のユーザに提供して１組のユーザにブロードキャストについて知らせるように構成される。
【００１２】
一実施形態では、システム、方法、非一時的なコンピュータ読み取り可能な記憶媒体は、１組のユーザに１つまたは複数のポーリングの質問事項を提供し、１組のユーザにブロードキャストについて知らせてブロードキャストに関心のある複数のユーザの数を決定するように構成される。
【００１３】
本開示の種々の実施形態は、コンピューティングシステムを介してコンテンツブロードキャストを開始するための第１のユーザに対する要求を判定するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含む。ブロードキャストの１つまたは複数のパラメータが決定される。要求を記述する少なくとも１つの通知が第１のユーザに提供され、その通知は１つまたは複数のパラメータを記述する情報を含む。
【００１４】
一実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンピューティングシステムの１人または複数のユーザにポーリングの質問事項を提供するように構成され、ポーリングの質問事項は、ブロードキャストの少なくとも１つのトピックに関するフィードバックを要求し、ポーリングの質問事項に応答して複数のユーザのうちの少なくとも１人からフィードバックを取得し、フィードバックは、第１のユーザに提供される通知に含まれる。
【００１５】
一実施形態では、ブロードキャストの少なくとも１つのトピックは、第１のユーザのソーシャルプロフィールで指定された情報に基づいて自動的に生成される。
一実施形態では、ブロードキャストの少なくとも１つのトピックは、ソーシャルネットワーキングシステムを介して第１のユーザによって公開された複数のポストに対応する複数のトピックに基づいて自動的に生成される。
【００１６】
一実施形態では、ブロードキャストの少なくとも１つのトピックは、第１のユーザに対応する地理的位置に基づいて自動的に生成される。
一実施形態では、ポーリングの質問事項は、ユーザに関連付けられたコンテンツフィード内のコンテンツアイテムとしてユーザに提供される。
【００１７】
一実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンピューティングシステムの１人または複数のユーザにポーリングの質問事項を提供するように構成され、ポーリングの質問事項は、ブロードキャストを実行する少なくとも１つの時刻に関するフィードバックを要求し、ポーリングの質問事項に応答して複数のユーザのうちの少なくとも１人からフィードバックを取得し、フィードバックは、第１のユーザに提供される通知に含まれる。
【００１８】
一実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンピューティングシステムの１人または複数のユーザにポーリングの質問事項を提供するように構成され、ポーリングの質問事項は、ブロードキャストを実行する少なくとも地理的位置に関するフィードバックを要求し、ポーリングの質問事項に応答して複数のユーザのうちの少なくとも１人からフィードバックを取得し、フィードバックは、第１のユーザに提供される通知に含まれる。
【００１９】
一実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、コンピューティングシステムの１人または複数のユーザにポーリングの質問事項を提供するように構成され、ポーリングの質問事項は、複数のユーザがブロードキャストを視聴することに関心があるかどうかに関するフィードバックを要求し、フィードバックに少なくとも部分的に基づいてブロードキャストに関心がある視聴者を記述する情報を決定し、情報は、第１のユーザに提供される通知に含まれる。
【００２０】
一実施形態では、視聴者を記述する情報は、ブロードキャストに関心があるユーザを記述する情報、視聴者のサイズ、ブロードキャストに関心があるユーザを記述する人口統計情報のうちの少なくとも１つを含む。
【００２１】
開示された技術の多くの他の特徴、応用、実施形態、および／または変形は、添付の図面および以下の詳細な説明から明らかとなることを理解されたい。開示された技術の原理から逸脱することなく、本明細書に記載の構造、システム、非一時的なコンピュータ可読媒体、および方法の追加の実施態様および代替の実施態様の両方または一方を採用することができる。
【図面の簡単な説明】
【００２２】
【図１】本開示の一実施形態による、例示的なコンテンツプロバイダモジュールを含む例示的なシステムを示す。
【図２】本開示の一実施形態による、ブロードキャスト最適化モジュールの一例を示す。
【図３】本開示の一実施形態による、ブロードキャスト最適化モジュールの一例を示す。
【図４】本開示の一実施形態による、ブロードキャスト提案モジュールの一例を示す。
【図５】本開示の様々な実施形態による、コンテンツブロードキャストを要求する例示的なプロセスを示す。
【図６】本開示の様々な実施形態による、コンテンツブロードキャストの情報を決定する例示的なプロセスを示す。
【図７】本開示の実施形態による、多様なシナリオで利用することができる例示的なソーシャルネットワーキングシステムを含む例示的なシステムのネットワーク図を示す。
【図８】本開示の実施形態による、多様なシナリオで利用可能なコンピュータシステムまたはコンピューティングデバイスの例を示す。
【発明を実施するための形態】
【００２３】
図面は、説明の目的のためだけに、開示された技術の多様な実施形態を示しており、図面は、同様の要素を識別するために同じ参照番号を使用している。当業者は、以下の説明から、本明細書に記載された開示技術の原理から逸脱することなく、図面に示された構造および方法の代替の実施形態を用いることができることを認識するであろう。
【００２４】
イベントブロードキャスト（EVENT BROADCAST）のためのアプローチ
今日、人々は、多種多様な目的のためにコンピューティングデバイス（またはシステム）を利用している。ユーザは、コンピューティングデバイスを使用して、例えば、相互に対話したり、コンテンツにアクセスしたり、コンテンツを共有したり、コンテンツを作成することができる。例えば、複数のユーザは、自身のコンピューティングデバイスを介してコンテンツをストリーミングすることができる。一般的に、コンテンツは、エンコードされたデータ（例えば、オーディオ、映像、またはその両方）をエンドユーザのコンピューティングデバイスに送信するコンテンツプロバイダからストリーミングされ得る。ストリーミングされたデータを受信するコンピューティングデバイスは、コンピューティングデバイスを介してコンテンツを復号化して提示することができる。
【００２５】
従来のアプローチでは、イベントのライブブロードキャスト（live broadcast）が何らかの記録装置を使用して撮像され、コンテンツプロバイダを介してユーザに利用可能にされる。コンピューティングデバイスを操作するユーザは、コンテンツプロバイダからライブブロードキャストのストリーミングを要求する。要求を処理すると、コンテンツプロバイダは、ライブストリームに対応するデータをユーザのコンピューティングデバイスに送信する。コンピューティングデバイスは、データを復号化してコンピューティングデバイスの表示画面上で提示する。ライブブロードキャストされる複数のイベントは、事前にスケジューリングされてもよいし、または即座に行われてもよい。複数のブロードキャストをスケジューリングするとき、複数のイベントのパブリッシャ（publisher）（例えば、ブロードキャスタ（broadcaster））は通常、最適な数の視聴者を引き付ける（elicit）可能性が最も高い、ブロードキャストを実行するための最適な１つまたは複数の時刻および／または１つまたは複数のトピックに気付かない。このような情報無しにブロードキャストを実行すると、視聴者の視聴率が低くなる可能性がある。したがって、このような従来のアプローチは、コンピュータ技術において生じるこれらの問題および他の問題に対処するのに効果的ではない場合がある。
【００２６】
いくつかの実施形態では、機械学習モデルは、いくつかの例を挙げると、ブロードキャストを行うための最適時刻、ブロードキャストのトピック、および／またはブロードキャストの地理的位置などのブロードキャスト関連情報を決定するために、パブリッシャによって用いられる。いくつかの実施形態では、クラウドソースアプローチ（crowd-sourced approach）は、いくつかの例を挙げると、ブロードキャストを行うための最適時刻、ブロードキャストのトピック、および／またはブロードキャストの地理的位置に関する複数の提案について、複数のパブリッシャが視聴者をポーリングする（poll）ために用いられる。いくつかの実施形態では、複数のユーザは、ユーザ（例えば、友人、有名人など）が指定された時刻および／または指定された時刻にライブブロードキャストを実行するように依頼する要求を該ユーザに送信する。概して、このようなアプローチにより、複数のパブリッシャが視聴者および／または到達度（reach）の程度を改善するために、最適な時刻および／または最良のトピックでブロードキャストを実行することができる。様々な実施形態において、ブロードキャストの時刻および／またはトピックは、所望の到達度を満たすように強化され得る。到達度は、ユーザの特定の人口統計のような、ターゲットにされている特定の視聴者を示すことができる。いくつかの実施形態では、到達度は、目的、例えば、指定された販売量を達成するためのターゲットにされる視聴者、指定されたクリック数、指定されたユーザエンゲージメント（user engagement）などの達成すべき特定の目的を示す。ブロードキャスタによって指定されたプライバシー設定に応じて、ブロードキャストは、例えば、一般大衆によるアクセスに利用可能であるか、またはブロードキャスタによって指定された１組のユーザに限定され得る。
【００２７】
図１は、本開示の実施形態による、例示的なコンテンツプロバイダモジュール１０２を含む例示的なシステム１００を示す。図１の例に示されるように、コンテンツプロバイダモジュール１０２は、コンテンツモジュール１０４と、ブロードキャスト要求モジュール１０６と、ブロードキャスト最適化モジュール１０８と、ブロードキャスト提案モジュール１１０と、ブロードキャストモジュール１１２と、を含み得る。いくつかの例では、例示的なシステム１００は、少なくとも１つのデータストア１１４を含み得る。この図および本明細書におけるすべての図に示される構成要素（例えば、モジュール、要素など）は、例示にすぎず、任意の他の実施態様は、追加の、より少ない、統合された、または異なる構成要素を含み得る。いくつかの構成要素は、関連する詳細が不明瞭とならないように図示されない場合がある。
【００２８】
いくつかの実施形態では、コンテンツプロバイダモジュール１０２は、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせとして、部分的にまたは全体的に具体化することができる。概して、本明細書で説明されるモジュールは、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせと関連付けることができる。いくつかの実施態様において、モジュールの１つもしくは複数の機能、タスク、および／または動作を、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはこれらの任意の組み合わせによって実行または行うことができる。いくつかの例では、コンテンツプロバイダモジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上などの、１つまたは複数のコンピューティングデバイスまたはコンピューティングシステム上で実行しているソフトウェアとして、部分的にまたは全体的に具体化することができる。一例では、コンテンツプロバイダモジュール１０２またはその少なくとも一部分は、図７のユーザデバイス７１０などのユーザまたはクライアントコンピューティングデバイス上で稼動するアプリケーション（例えば、ａｐｐ）、プログラム、またはアプレットなどとして具体化するか、またはこれらの中に実装することができる。他の例では、コンテンツプロバイダモジュール１０２またはその少なくとも一部分は、ネットワークサーバまたはクラウドサーバなどの１つもしくは複数のサーバを含む１つもしくは複数のコンピューティングデバイスまたはコンピューティングシステムを使用して実装することができる。いくつかの例では、コンテンツプロバイダモジュール１０２は、図７のソーシャルネットワーキングシステム７３０などのソーシャルネットワーキングシステム（またはソーシャルネットワーキングサービス）内で部分的にまたは全体的に実装されるか、またはこれと結合して部分的にまたは全体的に動作するように構成することができる。
【００２９】
コンテンツプロバイダモジュール１０２は、例示的なシステム１００に示すような少なくとも１つのデータストア１１４と通信および動作または通信もしくは動作するように構成され得る。少なくとも１つのデータストア１１４は、多様なタイプのデータを記憶および維持するように構成され得る。例えば、データストア１１４は、複数のコンテンツアイテム、例えば、作成されかつユーザに利用可能である複数のブロードキャストを記述する情報を記憶する。いくつかの実施態様において、少なくとも１つのデータストア１１４は、ソーシャルネットワーキングシステム（例えば、図７のソーシャルネットワーキングシステム７３０）に関連付けられた情報を格納することができる。ソーシャルネットワーキングシステムに関連付けられた情報としては、ユーザ、ソーシャルコネクション（social connection）、ソーシャル対話（social interaction）、位置、ジオフェンスエリア（geo-fenced area）、地図、場所、イベント、ページ、グループ、ポスト（post）、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフについてのデータ、および多様な他のタイプのデータが挙げられる。いくつかの実施態様において、少なくとも１つのデータストア１１４は、ユーザ識別子、ユーザ情報、プロファイル情報、ユーザ指定の設定、ユーザによって生成または投稿されたコンテンツ、多様な他のタイプのユーザデータなどの、ユーザに関連付けられた情報を格納することができる。
【００３０】
コンテンツモジュール１０４は、コンテンツプロバイダモジュール１０２を介して利用可能な様々なコンテンツアイテム、例えば、複数のブロードキャストへのアクセスを提供するように構成され得る。例えば、いくつかの実施形態では、コンピューティングデバイスを操作するユーザは、例えば、インタフェース（例えば、グラフィカルユーザインタフェース、アプリケーションプログラミングインタフェースなど）を介してコンテンツモジュール１０４と対話して、利用可能な様々なコンテンツアイテム（例えば、ストリーム）にアクセスすることができる。ユーザがコンテンツアイテムへのアクセスを要求する場合、コンテンツモジュール１０４は、コンテンツアイテムに対応するデータ（例えば、エンコードされたデータ）をユーザのコンピューティングデバイスに送信させることによって、要求に対するサービスをすることができる。ユーザのコンピューティングデバイスは、コンテンツアイテムがコンピューティングデバイスの表示画面上に提示されるように、受信されたデータを処理する（例えば、データを復号化する）ことができる。
【００３１】
ブロードキャスト要求モジュール１０６は、複数のユーザがブロードキャスト（例えば、ライブコンテンツストリーム）を行うように別のユーザ（例えば、友人、有名人等）に求める要求を送信可能にするように構成され得る。ブロードキャスト要求モジュール１０６に関するさらなる詳細は、図２を参照して以下に提供される。
【００３２】
ブロードキャスト最適化モジュール１０８は、ブロードキャストのための最適なユーザエンゲージメントが活発化すると予測される時刻および／またはトピックなどの情報をブロードキャスタに提供するように構成され得る。ブロードキャスト最適化モジュール１０８に関するさらなる詳細は、図３を参照して以下に提供される。
【００３３】
ブロードキャスト提案モジュール１１０は、ブロードキャスタのためのブロードキャストイベントを自動的に決定するように構成され得る。ブロードキャスト提案モジュール１１０はまた、ブロードキャストイベントの視聴者を生成し、適切な場合、ブロードキャストを行うための提案を第１のユーザに提供することができる。ブロードキャスト提案モジュール１１０に関する更なる詳細は、図４を参照して以下に提供される。
【００３４】
ブロードキャストモジュール１１２は、複数のブロードキャスト（例えば、ライブコンテンツストリーム）を開始するように、コンテンツプロバイダの複数のユーザによって利用され得る。ライブコンテンツストリームを開始するとき、ブロードキャストモジュール１１２は、ブロードキャスタのコンピューティングデバイスを用いてキャプチャされたコンテンツを記述するデータをコンテンツプロバイダに通信するように、ブロードキャスタによって利用され得る。ブロードキャストモジュール１１２は例えば、リアルタイムメッセージングプロトコル（RTMP:Real Time Messaging Protocol）を含む、コンテンツのライブストリーミングを可能にする任意の一般に知られている技法を利用することができる。
【００３５】
図２は、本開示の一実施形態によるブロードキャスト要求モジュール２０２の一例を示す。いくつかの実施形態では、図１のブロードキャスト要求モジュール１０６は、ブロードキャスト要求モジュール２０２として具体化され得る。図２に示すように、ブロードキャスト要求モジュール２０２は、要求モジュール２０４、ポーリングモジュール２０６、トピックモジュール２０８、およびイベントモジュール２１０を含み得る。
【００３６】
上述したように、ブロードキャスト要求モジュール２０２は、複数のユーザ（例えば、図７のソーシャルネットワーキングシステム７３０のユーザ）が、他のユーザにブロードキャストを行うように依頼する要求を送信可能にするように構成され得る。様々な実施形態では、複数のユーザは、要求モジュール２０４を介してそのような要求を行うことができる。要求モジュール２０４は例えば、インタフェース（例えば、グラフィカルユーザインタフェース、アプリケーションプログラミングインターフェースなど）を介して、１人または複数のユーザから複数のブロードキャストの要求を受け取るように構成され得る。要求は、ブロードキャストのための１つまたは複数のパラメータを指定することができる。例えば、いくつかの実施形態では、要求は、ブロードキャストを行うように依頼されているブロードキャスタを識別する。いくつかの実施形態では、要求はまた、ブロードキャストのための１つまたは複数の要求されたトピック、および／またはブロードキャストのための１つまたは複数の要求された時刻（例えば、日付、日時など）を指定してもよい。要求が受け取られると、要求モジュール２０４は、ブロードキャストを提供するように要求されているブロードキャスタに通知を送信することができる。例えば、通知は、ブロードキャスタのコンピューティングデバイス上で実行されるソフトウェアアプリケーションを介して通信され得る。次いで、ブロードキャスタは、要求において指定された複数のパラメータに基づいて、コンテンツプロバイダ（例えば、図７のソーシャルネットワーキングシステム７３０）を介してブロードキャストを開始するオプションを有する。いくつかの実施形態では、ブロードキャスタは、図１のブロードキャストモジュール１１２を用いてブロードキャストを開始することができる。
【００３７】
場合によっては、要求は、ブロードキャスタのトピックまたは時刻を指定せずに、ブロードキャスタを識別するだけでもよい。例えば、要求を送信したユーザは、ブロードキャスタが任意のトピックに関しておよび／または任意の時刻に話すことを聞くことに興味があるだけかもしれない。そのような場合、ポーリングモジュール（polling module）２０６は、ブロードキャストを計画するためにパブリッシャにとって有用であり得る追加の情報についてソーシャルネットワーキングシステムを通じて複数のユーザをポーリングするように構成され得る。例えば、ポーリングモジュール２０６は、様々なフィードバックを取得するためにユーザに質問事項（questionnaire）を提供することができる。いくつかの実施形態では、質問事項は、複数のユーザがブロードキャストの複数のトピックを提案することができる自由形式のフィールドを含み得る。最初のブロードキャストの要求が、提案された１組のトピックを指定した場合、ポーリングモジュール２０６は、ブロードキャストのために提案された複数のトピックのうちの１つまたは複数を選択するようにユーザに尋ねる質問事項をユーザに提供することができる。別の例では、質問事項は、ブロードキャストのために提案された１組の時刻から１つ以上の時刻を選択するようにユーザに求めることができる。同様に、いくつかの実施形態では、質問事項は、ユーザがまだ提案されていないブロードキャストの時刻を指定することができる自由形式のフィールドを含むことができる。いくつかの実施形態では、質問事項は、ブロードキャスタがブロードキャストを行うべき１つまたは複数の地理的位置を選択するかまたは指定するようにユーザに求めることができる。例えば、複数のユーザは、映画化している新しい映画のセットからブロードキャスタがブロードキャストを行うことを望む場合がある。
【００３８】
ポーリング時に、ポーリングモジュール２０６は、ポーリングされているユーザのコンテンツフィードにポーリングまたは質問事項を提示することができる。概して、コンテンツフィードは、ユーザのコンピューティングデバイスの表示画面を通して提示するために、ソーシャルネットワーキングシステムによって提供され得る。コンテンツフィードは、ソーシャルネットワーキングシステムによって、ユーザに関連するかまたは関心があると決定された様々なコンテンツアイテムを含むことができる。ポーリングまたは質問事項は、コンテンツフィード内のコンテンツアイテムとして含められ得る。様々な実施形態において、コンテンツフィードは、ユーザのコンピューティングデバイス上で実行されるソフトウェアアプリケーション（例えば、ソーシャルネットワーキングアプリケーション、ブラウザ等）を介してアクセスされ得る。いくつかの実施形態では、ポーリングモジュール２０６は、ソーシャルネットワーキングシステム内のブロードキャスタのソーシャルコネクションとして認識される複数のユーザをポーリングする。いくつかの実施形態では、ポーリングモジュール２０６は、要求を送信したユーザのソーシャルコネクションとして認識されるユーザをポーリングする。いくつかの実施形態では、ポーリングモジュール２０６は、ブロードキャスタに対応するページを「いいね（like）」または「ファン（fan）」を表明するための複数の選択肢を選択したソーシャルネットワーキングシステムのユーザおよび／またはソーシャルネットワーキングシステムによってブロードキャスタのファンとして識別されたユーザをポーリングする。当然のことながら、ポーリングされる複数のユーザは、具体化によって異なる可能性がある。例えば、いくつかの実施形態では、ポーリングは、ブロードキャスタ、要求を送信したユーザ、ブロードキャスタのソーシャルコネクション、および／または要求を送信したユーザのソーシャルコネクションからの追加の分離度（additional degrees of separation）（例えば、２次（second degree）のソーシャルコネクション、３次のソーシャルコネクション等）を有するソーシャルコネクションとして認識されるユーザに拡張され得る。
【００３９】
場合によっては、ブロードキャスタに送信されるブロードキャスト要求は、ブロードキャスタにブロードキャストを行うように促すのに十分ではない場合がある。そのような場合、ブロードキャスタに通知を送信する前にブロードキャストの視聴者が確立されると、要求はより説得的であり得る。したがって、いくつかの実施形態では、ブロードキャストの要求が受信されると、ポーリングモジュール２０６は、ブロードキャストに関心がある複数のユーザの視聴者を決定するように構成され得る。例えば、ポーリングモジュール２０６は、他のユーザをポーリングして、どのユーザがブロードキャストを視聴することに関心があるかを判定することができる。この例では、ポーリングの質問事項は、ブロードキャスタに１つまたは複数のトピックでブロードキャストを行わせることに関心があり、ポーリングされているユーザがブロードキャストを視聴することにも関心があるかどうか尋ねることを示すことができる（例えば、「あなたの友人のジョン・ドゥ（John Doe）は映像符号化（video encoding）についてジェーン・ドゥ（Jane Doe）に話すことに関心がある。あなたは関心があるか。」）。質問事項に応答したフィードバックに基づいて、ポーリングモジュール２０６は、どのユーザがブロードキャストに関心があるか、およびに関心を示したユーザの総数を決定することができる。いくつかの実施形態では、ポーリングモジュール２０６は、ブロードキャストに関心がある複数のユーザの人口統計情報（例えば、年齢層、性別、所属、関心等）を決定する。いくつかの実施形態では、そのような情報は、ブロードキャスタに送信される通知に含まれる。例えば、ブロードキャスタへの通知は、３０人のユーザが映像符号化に関する最初のユーザの話を聞くことに関心があること、およびこれらのユーザのすべてがカリフォルニアに居住していることを示すことができる。
【００４０】
いくつかの実施形態では、トピックモジュール２０８は、ブロードキャストのための複数のトピックを自動的に提案するように構成され得る。例えば、トピックモジュール２０８は、ブロードキャスタのソーシャルプロファイル（social profile）で指定された情報（例えば、関心、趣味等）に基づいてトピックを決定してもよい。いくつかの実施形態では、トピックモジュール２０８は、ブロードキャスタがソーシャルネットワーキングシステム内のメンバー（例えば、ファン）である任意のグループに基づいてトピックを決定してもよい。例えば、ソーシャルネットワーキングシステムにおけるさまざまなグループは、１つ以上のトピックに関連付けられてもよい。ブロードキャスタがメンバーであるグループに関連付けられたトピックは、ブロードキャストのトピックとして提案されてもよい。いくつかの実施形態では、トピックモジュール２０８は、ソーシャルネットワーキングシステムを通じてブロードキャスタによって公開された複数のポストに基づいてトピックを決定する。例えば、ブロードキャスタが映像符号化、火山活動、および鳥の観賞に関するトピックをポストすることが多い場合、そのようなトピックは、ブロードキャストのトピックとして提案される。いくつかの実施形態では、トピックモジュール２０８は、ブロードキャスタに対応する地理的位置に基づいて、提案された複数のトピックを決定する。例えば、ブロードキャスタが外国を旅行している場合、提案された複数のトピックは、いくつかの例を挙げると、文化、料理、観光、関心のある地点、地理的位置で発生するイベントなど、地理的位置に関連する。いくつかの実施形態では、トピックモジュール２０８は、ブロードキャスタに対応するイベントに基づいて、提案された複数のトピックを決定する。例えば、ブロードキャスタが新生児に関するソーシャルネットワーキングシステムへの更新をポストしている場合、トピックモジュール２０８は、第１のユーザが新しい親であると判定する。この判定に基づいて、トピックモジュール２０８は、ブロードキャストのための提案されたトピックとして新生児を提案することができる。
【００４１】
ブロードキャスタがブロードキャストを実行することを決定すると、ブロードキャスタは、ブロードキャストの任意の時刻、および任意選択でブロードキャストの任意のトピックを選択または指定することができる。この指定された情報に基づいて、イベントモジュール２１０は、ブロードキャストに対応するカレンダーイベントを作成することができる。いくつかの実施形態では、そのようなカレンダーイベントは、ブロードキャストへの関心を表明した複数のユーザのそれぞれのカレンダーにポストされる。このような複数のカレンダーは、例えば、ソーシャルネットワーキングシステムを介してアクセス可能であってもよい。いくつかの実施形態では、イベントモジュール２１０は、ブロードキャストに関心を示した複数のユーザに、ブロードキャストの詳細を記述する通知を送信する。そのような複数の通知は例えば、電子メールとして、および／または様々なネットワークを介したメッセージとして、ソーシャルネットワーキングシステムを介して複数のユーザに送信される。
【００４２】
図３は、本開示の一実施形態によるブロードキャスト最適化モジュール３０２の一例を示す。いくつかの実施形態では、図１のブロードキャスト最適化モジュール１０８は、ブロードキャスト最適化モジュール３０２として具体化され得る。図３に示すように、ブロードキャスト最適化モジュール３０２は、ブロードキャスト開始モジュール３０４、エンゲージメント予測モジュール（engagement prediction module）３０６、トピックモジュール３０８、およびブロードキャストタイムモジュール（broadcast time module）３１０を含み得る。
【００４３】
上述したように、ブロードキャスト最適化モジュール３０２は、ブロードキャストする複数のユーザ（例えば、図７のソーシャルネットワーキングシステム７３０の複数のユーザ）に、最適なユーザエンゲージメントが活発化すると予測されるブロードキャストの時刻および／またはブロードキャストのトピックなどの情報を提供するように構成され得る。様々な実施形態では、ソーシャルネットワーキングシステムを通じてブロードキャストを行うことに関心があるブロードキャスタは、ブロードキャスト開始モジュール３０４と対話して、ブロードキャストの視聴者を最適化するために時刻および／またはトピックを決定することができる。ブロードキャスト開始モジュール３０４は例えば、インタフェース（例えば、グラフィカルユーザインタフェース、アプリケーションプログラミングインタフェースなど）を介して、ブロードキャスタからそのようなブロードキャスト情報要求を受信するように構成される。例えば、ブロードキャスタは、ブロードキャスタのコンピューティングデバイス上で動作するソフトウェアアプリケーションを介してブロードキャスト開始モジュール３０４と対話する。
【００４４】
ブロードキャスト情報要求は、ブロードキャストの１つまたは複数のパラメータを提案することができる。いくつかの実施形態では、例えば、要求は、ブロードキャスタがブロードキャストしたい１つまたは複数の時刻および／またはブロードキャストの１つまたは複数のトピックを指定する。そのような実施形態では、エンゲージメント予測モジュール３０６は、指定された複数の時刻および複数のトピックの各々についてブロードキャストにアクセスまたは視聴することが期待される対応する視聴者（例えば、ユーザの総数）を予測するようにトレーニングされ得る。例えば、いくつかの実施形態では、エンゲージメント予測モジュール３０６は、様々な入力（例えば、ブロードキャスト時刻、トピック、または両方）に基づいて複数のブロードキャストの視聴者を予測するようにトレーニングされた１つまたは複数の機械学習モデルを利用することができる。いくつかの実施形態では、モデルは、ソーシャルネットワーキングシステムを通して以前に行われたブロードキャストをそれぞれ記述する１組のトレーニング例を使用してトレーニングされる。そのような実施形態では、トレーニング例は、ブロードキャストを行ったユーザの識別、ブロードキャストを行ったユーザの関心があること、ブロードキャストを行ったユーザの特徴、ブロードキャストが行われた地理的位置、ブロードキャストに関係するあらゆるトピック、ブロードキャストが行われた時間帯（time period）、ブロードキャスト時間帯のネットワーキングシステムにアクセスするソーシャルコネクションおよび／またはファンの数、ブロードキャストが通知されたブロードキャスト時間帯のユーザのオンラインのソーシャルコネクションおよび／またはファンの数、ブロードキャストにアクセスした（例えば、視聴した）ブロードキャスト時間帯のオンラインのソーシャルコネクションおよび／またはファンの数、ブロードキャストにアクセスして一組の反応から反応オプション、例えば「いいね」オプションまたはポジティブ／ネガティブオプション（例えば、幸せ、悲しい、面白い、関心がある、など）を選択したユーザの数、反応しなかったユーザの関心があること、ブロードキャストにアクセスして１組の反応から反応オプション、例えば「いいね」オプションまたは複数の反応（ポジティブまたはネガティブ）を選択しなかったユーザの数、およびブロードキャストにアクセスしたユーザおよびアクセスしなかったユーザの人口統計、の特徴のうちの１つまたは複数を含むことができる。一例では、モデルは、ブロードキャストを行ったユーザ、ブロードキャストが行われた期間、ブロードキャストに対応するトピック、およびブロードキャストにアクセスした（例えば、視聴した）ブロードキャスト期間中のオンラインの多数のファンをそれぞれ識別するトレーニング例を使用してトレーニングされる。この例では、トレーニングされたモデルは、ブロードキャストを行うユーザ、ブロードキャストが行われる期間、およびブロードキャストの１つまたは複数のトピックが付与されると、将来のブロードキャストにアクセス可能な視聴者（例えば、ユーザの総数）を予測することができる。いくつかの実施形態では、一般に知られているコンテン���処理および／または音声認識技法は、以前の複数のブロードキャストを記述するデータに適用され、ブロードキャストに関連する任意のトピックのそれぞれを判定することができる。このような複数のトピックは、上述のように機械学習モデルをトレーニングするように用いられ得る。
【００４５】
いくつかの実施形態では、開始要求は、任意のトピックも指定せずに、ブロードキャスタがブロードキャストを検討している１つまたは複数の時刻を指定する。そのような実施形態では、エンゲージメント予測モジュール３０６は、指定された時刻ごとにブロードキャストにアクセスまたは視聴することが期待される対応する視聴者（例えば、ユーザの総数）を予測することができる。上述したように、エンゲージメント予測モジュール３０６は、複数のブロードキャストの視聴者を予測するために、１つまたは複数のトレーニングされた機械学習モデルを利用することができる。一例では、モデルは、以前にブロードキャストを行ったユーザ、ブロードキャストが行われた期間、およびブロードキャストにアクセスした（例えば、視聴した）複数のソーシャルコネクションおよび／またはファンをそれぞれ識別するトレーニング例を使用してトレーニングされる。この例では、トレーニングされたモデルは、ブロードキャストを行うユーザおよびブロードキャストの時間帯（例えば、時刻、曜日、日付、月など）が付与されると、将来のブロードキャストにアクセスするかもしれない視聴者（例えば、ユーザの総数）を予測することができる。いくつかの実施形態では、トピックモジュール３０８は、ブロードキャストのための１つまたは複数のトピックを提案するように構成される。例えば、トピックモジュール３０８は、図２のトピックモジュール２０８を参照して上述したように、ユーザに対して提案された１組のトピックを生成することができる。そのような実施形態では、エンゲージメント予測モジュール３０６は、提案された複数のトピックのうちのどれが、ブロードキャストのために最大の視聴者を引き付ける可能性が高いかを予測するようにトレーニングされ得る。例えば、モデルは、以前にブロードキャストを行ったユーザ、ブロードキャストの時間帯、ブロードキャストの１つ以上のトピック、およびブロードキャストにアクセスした（例えば、視聴した）多数のソーシャルコネクションおよび／またはファンをそれぞれ識別するトレーニング例を使用してトレーニングされる。この例では、トレーニングされたモデルは、ブロードキャストを行うユーザ、ブロードキャストの時間帯、およびブロードキャストの１つまたは複数のトピックが付与されると、将来のブロードキャストにアクセスするかもしれない視聴者（例えば、ユーザの総数）を予測することができる。
【００４６】
いくつかの実施形態では、開始要求は、ブロードキャストの時刻を指定すること無しに、ブロードキャストの１つまたは複数のトピックを指定することができる。そのような実施形態では、エンゲージメント予測モジュール３０６は、指定された各トピックについてブロードキャストにアクセスまたは視聴することが期待される対応する視聴者（例えば、ユーザの総数）を予測するようにトレーニングされ得る。例えば、モデルは、以前にブロードキャストを行ったユーザ、ブロードキャストの１つまたは複数のトピック、およびユーザのブロードキャストにアクセスした（例えば、視聴した）多数のファンをそれぞれ識別するトレーニング例を使用してトレーニングされる。この例では、トレーニングされたモデルは、ブロードキャストを行うユーザおよびブロードキャストの１つまたは複数のトピックが付与されると、将来のブロードキャストにアクセスするかもしれない視聴者（例えば、ユーザの総数）を予測することができる。上述したように、いくつかの実施形態では、エンゲージメント予測モジュール３０６は、どの時刻がブロードキャストに最大の視聴者を引き付ける可能性があるかを予測するようにトレーニングされ得る。いくつかの実施形態では、ブロードキャストタイムモジュール３１０は、任意の時間帯にユーザによってブロードキャストに同調することが期待される対応する視聴者を決定するために、モデルへの入力として、異なる時間帯（例えば、時刻、曜日、日付、月など）を提供するように構成される。モデルからの複数の出力に基づいて、ブロードキャストタイムモジュール３１０は、ブロードキャストに最大の視聴者を引き付ける可能性が高い１つまたは複数の最適な時間帯を決定することができる。ブロードキャストタイムモジュール３１０は、ブロードキャストへの提案として１つまたは複数の最適な時間帯を提供することができる。当然のことながら、本明細書で説明されるモデルは、ブロードキャストを行うユーザのアイデンティティを認識せずに、ブロードキャストを行うことができる様々な時間帯の複数の視聴者および／またはブロードキャストの複数のトピックを予測するようにトレーニングされ得る。
【００４７】
概して、本明細書で説明されるモデルは、過去の複数のブロードキャスト（例えば、ライブコンテンツストリーム）および／またはオンデマンドコンテンツストリーム（on-demand content streams）（例えば、ユーザによってポストされた事前に記録されたコンテンツアイテム）を記述するデータを使用してトレーニングされ得る。場合によっては、ユーザは、視聴者を正確に予測するようにモデルをトレーニングすることを可能にするのに十分なブロードキャストを過去に行っていない可能性がある。いくつかの実施形態では、過去の複数のブロードキャストからのデータだけに依存するのではなく、本明細書で説明されるモデルは、ソーシャルネットワーキングシステムを通じて公開されるブロードキャスタの複数のポストに基づいてトレーニングされ得る。例えば、モデルは、ブロードキャスタによって以前に公開されたポストをそれぞれ記述する１組のトレーニング例を使用してトレーニングされる。そのような実施形態では、トレーニング例は、ポストしたブロードキャスタのアイデンティティ、ブロードキャスタの関心があること、ブロードキャスタの特性（例えば、ソーシャルネットワーキングシステムによって管理されるソーシャルグラフにおいて利用可能な複数のユーザを記述する情報）、ポストが送信された地理的位置、ポストに関連付けられた任意のトピック、ポストに関連付けられたタイムスタンプ、ポスト（または、ユーザのエンゲージメントの他の測定、例えば、ビュー、コメント、共有）に「いいね」を表明するオプションを選択したユーザのソーシャルコネクションおよび／またはファンの数、およびポストが最もユーザのエンゲージメント（例えば、いいね、ビュー、コメント、共有など）を受け取った時間帯（例えば、日時、曜日、日付、月など）、の特徴のうちの１つまたは複数を含むことができる。一例では、モデルは、ポストしたユーザ、ポストに関連付けられた任意のトピック、ポストが最もユーザのエンゲージメントを受け取った日中の時間帯、ポストにアクセスしたユーザの関心があること、ポストにアクセスしたユーザの数、ポストにアクセスしなかったユーザの関心があること、ポストにアクセスして一組の反応から反応オプション、例えば「いいね」またはポジティブ／ネガティブの反応（例えば、幸せ、悲しい、面白い、関心がある、など）を選択したユーザの数、ポストにアクセスして反応オプション、例えば「いいね」またはポジティブ／ネガティブの反応（例えば、ポジティブまたはマイナス）を選択しなかったユーザの数、ポストにアクセスしたユーザの人口統計、ポストにアクセスしなかったユーザの人口統計をそれぞれ識別するトレーニング例を使用してトレーニングされる。この例では、トレーニングされたモデルがユーザ、ブロードキャストの時間帯、およびブロードキャストのトピックが付与されると、将来のブロードキャストにアクセスすることができる視聴者（例えば、ユーザの総数）を予測することができる。上述したように、場合によっては、ユーザは、視聴者を正確に予測するようにモデルをトレーニングすることを可能にするのに十分なブロードキャストを過去に行っていない可能性がある。したがって、いくつかの実施形態では、本明細書で説��されるモデルは、どのくらいユーザが過去にブロードキャストを実行した他のブロードキャスタと類似しているかに基づいて、ユーザにブロードキャストの複数の提案を提供するようにトレーニングされる。例えば、いくつかの例を挙げると、複数のブロードキャスタ間の類似性は、彼らのアイデンティティ、関心、特性、ブロードキャストの位置、およびブロードキャストの時刻に基づいて決定される。
【００４８】
任意のブロードキャストに同調すると期待される視聴者を予測することに加えて、いくつかの実施形態では、本明細書に記載されたモデルは、複数のユーザが任意のユーザによって提供されるブロードキャストにアクセスすることが期待される平均時間、複数のユーザが任意の時間帯にわたって提供されるブロードキャストにアクセスすることが期待される平均時間、および／または複数のユーザが任意のトピックに関して提供されたブロードキャストにアクセスすると期待される平均時間などの他の形態のユーザエンゲージメントを予測するようにトレーニングされてもよい。他のモデルの例は、いくつかの例を挙げると、オプションを選択して、ブロードキャストに「いいね」を表明するか、ブロードキャストに応答してコメントをポストするか、またはブロードキャストを共有することが期待される多数のユーザを予測するようにトレーニングされ得る。いくつかの実施形態では、視聴者を予測するとき、モデルは、ブロードキャストに対する期待されるユーザのエンゲージメントを測定するスコアを出力することができる。例えば、スコアは、ブロードキャストを視聴することが期待される多数のユーザ、ユーザがブロードキャストを視聴することが期待される平均時間、および／またはブロードキャストと対話（例えば、コメント、共有など）することが期待される多数のユーザに基づいている。いくつかの実施形態では、モデルは、ブロードキャストを実行する期間中にユーザに提案を提供することができる。例えば、これらの提案は、複数のユーザがブロードキャストを視聴することが期待される平均時間に部分的に基づいて決定される。一例では、提案された時間は、時刻に基づいて影響される。例えば、朝（例えば、朝食時間）に行われているブロードキャストの時間提案の時間は、夕方（例えば、仕事時間後）に行われているブロードキャストの時間提案の時間よりも短くてもよい。いくつかの実施形態では、ブロードキャストのトピックに対する提案を提供する場合、モデルは、ブロードキャストにアクセスすることが期待される各視聴者の関心に部分的に基づいて、提案されたトピックを判定することもできる。例えば、複数のユーザは、対応するソーシャルプロファイルにおいて自分の関心を特定するか、又は場合によっては、アクセスするコンテンツのタイプに基づいて自分の関心を示すことができる。このようなユーザの関心は、あるトピックに対する提案を他のトピックに対して影響するように用いられてもよい。
【００４９】
図４は、本開示の一実施形態によるブロードキャスト提案モジュール４０２の一例を示す。いくつかの実施形態では、図１のブロードキャスト提案モジュール１１０は、ブロードキャスト提案モジュール４０２として具体化される。図４に示されるように、ブロードキャスト提案モジュール４０２は、エンゲージメント予測モジュール４０４、視聴者生成モジュール４０６、およびイベント通知モジュール４０８を含み得る。いくつかの実施形態では、図３のエンゲージメント予測モジュール３０６は、エンゲージメント予測モジュール４０４として具体化される。
【００５０】
上述したように、ブロードキャスト提案モジュール４０２は、ブロードキャスタ（例えば、図７のソーシャルネットワーキングシステム７３０のユーザ）のためのブロードキャストイベントを自動的に決定するように構成され得る。いくつかの実施形態では、ブロードキャスト提案モジュール４０２は、ブロードキャストの視聴者を生成することもできる。ブロードキャストイベントの視聴者が確立されると、ブロードキャスト提案モジュール４０２は、ブロードキャストをブロードキャスタに提案する通知を提供することができる。ブロードキャスト提案モジュール４０２によって実行される複数の動作は、具体化に応じて異なるように開始されてもよい。例えば、いくつかの実施形態では、動作がランダムに開始されてもよい。いくつかの実施形態では、複数の動作は、ブロードキャスタがライフイベント（例えば、ユーザが関わったり、結婚したり、赤ちゃんを出産したりなど）を経験したときに開始される。そのようなライフイベントは例えば、ポストされたメディアアイテム、ポスト、および／またはブロードキャスタのソーシャルプロファイルの更新（例えば、結婚した状況を示すためにプロファイルを更新すること）を含む、ソーシャルネットワーキングシステムを介したブロードキャスタの複数の行動に基づいて決定され得る。いくつかの実施形態では、複数の動作は、ブロードキャスタがそれらのホーム地理的領域（home geographic region）の外を移動していると判定されたときに開始されてもよい。
【００５１】
様々な実施形態において、エンゲージメント予測モジュール４０４は、ブロードキャスタの視聴者を予測するために１つ以上の機械学習モデルを利用することができる。例えば、いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタが任意のトピックでかつ任意の時刻にブロードキャストを行う場合に、ブロードキャスタの視聴者を予測するようにトレーニングされた複数のモデルを利用することができる。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタが任意の１つまたは複数のトピックでブロードキャストを行う場合、ブロードキャスタの視聴者を予測するようにトレーニングされた複数のモデルを利用することができる。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタが任意の時刻にブロードキャストを行う場合、ブロードキャスタの視聴者を予測するようにトレーニングされたモデルを利用することができる。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタが任意の時刻および任意の１つまたは複数のトピックでブロードキャストを行う場合、ブロードキャスタの視聴者を予測するようにトレーニングされたモデルを利用することができる。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタがある地理的位置および／または関心地点からブロードキャストを行う場合、ブロードキャスタの視聴者を予測するようにトレーニングされたモデルを利用することができる。このような複数のモデルは、上述したような様々なトレーニング例を用いてトレーニングされる。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャスタが共同ブロードキャスタとして１人または複数の他のユーザとブロードキャスタを実行する場合、ブロードキャスタの視聴者を予測するようにトレーニングされたモデルを利用することができる。例えば、ブロードキャスタは、（共同ブロードキャスタの地理的位置に関係なく）特定の共同ブロードキャスタを追加することにより、より多くの視聴者および／または視聴者からのより好意的な反応をもたらすことができると通知されてもよい。いくつかの実施形態では、エンゲージメント予測モジュール４０４は、ブロードキャストのためのディレクタ提案（directorial suggestion）を提供するようにトレーニングされたモデルを利用することができる。そのような複数のモデルは、いくつかの例示的な特徴を挙げると、使用される照明のタイプ、ブロードキャスタの位置、カメラ角度（例えば、ブロードキャスタの顔の背景に対する比）、ブロードキャスト中に再生される音楽のタイプ、ブロードキャスト中の周囲のノイズ、使用されるカメラ効果のタイプを特定する過去のブロードキャストデータを使用してトレーニングされる。これらの特徴は上述したように、複数のブロードキャストにアクセスした複数の視聴者を記述する１組のラベルを用いてトレーニングされ得る。これらの例示的な特徴は、オーディオおよび映像処理のための一般に知られている技法を使用して決定され得る。いったんトレーニングされると、これらのモデルは、ブロードキャスタに、それらの��回のブロードキャストのための様々なディレクタ提案を提供するように利用される。
【００５２】
いくつかの実施形態では、視聴者生成モジュール４０６は、予測された視聴者が閾値（例えば、ブロードキャストを視聴することが期待される最小数のユーザ）を満たすかどうかを判定することができる。閾値が満たされる場合、視聴者生成モジュール４０６は、ブロードキャストの視聴者を構築するように構成される。具体化に応じて、閾値は、ユーザ、トピック、および／またはブロードキャスト時刻に応じて変更されてもよい。いくつかの実施形態では、視聴者生成モジュール４０６が視聴者を構築するために閾値を満たす必要はない。視聴者を構築する場合、視聴者生成モジュール４０６は、ブロードキャストを視聴することに関心があるかもしれないユーザに通知を送信してもよい。例えば、ユーザ通知は、通知されるユーザのコンテンツフィードにおいて提示される。いくつかの実施形態では、視聴者生成モジュール４０６は、ブロードキャスタに対応するページに「いいね」または「ファンであること」を表示するオプションを選択した複数のユーザ、および／またはソーシャルネットワーキングシステムによってブロードキャスタのファンとして識別されている複数のユーザに通知する。いくつかの実施形態では、通知されたユーザは、ソーシャルネットワーキングシステムによってブロードキャスタのソーシャルコネクション（例えば、１次ソーシャルコネクション）として認識され得る。いくつかの実施形態では、通知されたユーザは、ブロードキャスタからの追加の分離度（例えば、２次ソーシャルコネクション、３次ソーシャルコネクション等）を有してもよい。いくつかの実施形態では、ユーザに通知するとき、視聴者生成モジュール４０６は、ユーザをポーリングしてブロードキャストを視聴することに関心があるユーザの数を決定することもできる。
【００５３】
イベント通知モジュール４０８は、提案されたブロードキャストイベントを記述する情報を含む通知をブロードキャスタに送信するように構成される。そのような情報は、いくつかの例を挙げると、イベントの期待される視聴者、提案された１つまたは複数のトピック、ブロードキャストを行うための提案された１つまたは複数の時刻、ブロードキャストを行うための提案された地理的位置を示してもよい。いくつかの実施形態では、複数のトピックが提案される場合、ブロードキャスタは、複数のトピックを説明するための提案された順序が提供され得る。いくつかの実施形態では、視聴者フィードバック（例えば、反応、コメントなど）は例えば、感情分析技術を使用して分析され、特定のトピックの放送（coverage）を中止し、異なるトピックに移るか、または複数のトピックが説明される順序を修正するためのリアルタイム提案をブロードキャスタに提供される。場合によっては、関連するブロードキャスト（例えば、関連するトピック、共有視聴者など）を実行することを計画する２つの異なるブロードキャスタは、同時におよび／または同じ場所でブロードキャストするための提案を提供され得る。視聴者を分ける可能性のある競合するブロードキャストを防ぐために、いくつかの実施形態では、そのようなブロードキャスタは、これらブロードキャストをずらすための提案を提供される。例えば、第１のブロードキャスタは、第１の期間にわたってそれらのブロードキャストを行うように求められ、第２のブロードキャスタは、遅延された第２の期間にわたってそれらのブロードキャストを行うように求められる。いくつかの実施形態では、ブロードキャスタは、ブロードキャスタによって行われたブロードキャストを視聴することが期待される視聴者の閾値（例えば、ユーザの最小数）を指定することができる。そのような実施形態では、イベント通知モジュール４０８は、特定の閾値が満たされない限り、ブロードキャスタに通知を送信しない。
【００５４】
図５は、本開示の種々の実施形態による複数のコンテンツアイテム間のマッチングを判定する例示的な処理５００を示す。別段の記載がない限り、本明細書で説明する様々な実施形態の範囲内で、同様の、または代替の順序で、または並行して実行される追加の、より少ない、または代替のステップが存在してもよいことを理解されたい。
【００５５】
ブロック５０２において、ソーシャルネットワーキングシステムを介してコンテンツブロードキャストを開始するための第１のユーザに対する要求がされたと判定される。要求は、第２のユーザによって送信される。ブロック５０４において、ブロードキャストの１つ以上のパラメータが決定される。ブロック５０６において、要求を記述する少なくとも１つの通知が、第１のユーザに提供される。その通知は、１つ以上のパラメータを記述する情報を含む。
【００５６】
図６は、本開示の様々な実施形態による、コンテンツブロードキャストの情報を決定する例示的なプロセス６００を示す。別段の記載がない限り、本明細書で説明する様々な実施形態の範囲内で、同様の、または代替の順序で、または並行して実行される追加の、より少ない、または代替のステップが存在してもよいことを理解されたい。
【００５７】
ブロック６０２において、ブロードキャスタからの要求がされたと判定して、ソーシャルネットワーキングシステムを介してコンテンツブロードキャストを行うための情報を決定する。ブロック６０４において、ブロードキャストの１つまたは複数のパラメータは、以前に実行されたブロードキャストを記述するデータに少なくとも部分的に基づいて１つまたは複数のパラメータを予測するようにトレーニングされた機械学習モデルを使用して決定される。ブロック６０６において、１つまたは複数のパラメータを記述する情報が、ブロードキャスタに提供される。
【００５８】
本開示の様々な実施形態に関連する多くの他の使用、用途、および／または変形があり得ることが企図される。例えば、場合によっては、ユーザは、開示された技術を利用するか否かを選択することができる。また、開示された技術は、様々なプライバシー設定および嗜好が維持され、個人情報が漏洩するのを防止することを保証することもできる。別の例では、本開示の様々な実施形態は、学習、改善、および／または経時的に改良され得る。
【００５９】
ソーシャルネットワーキングシステム−例示的な実装形態
図７は、本開示の一実施形態による、向上したビデオ符号化のための様々な実施形態で利用され得る例示的なシステム７００のネットワーク図を示す。システム７００は、１つまたは複数のユーザデバイス７１０と、１つまたは複数の外部システム７２０と、ソーシャルネットワーキングシステム（ソーシャルネットワーキングサービス）７３０と、ネットワーク７５０とを含む。一実施形態では、前述の実施形態との関連で論じられたソーシャルネットワーキングサービス、プロバイダ、および／またはシステムは、ソーシャルネットワーキングシステム７３０として実装されてよい。例示の目的のために、図７によって示される、システム７００の実施形態は、単一の外部システム７２０と、単一のユーザデバイス７１０とを含む。ただし、他の実施形態において、システム７００は、より多くのユーザデバイス７１０、および／または、より多くの外部システム７２０を含んでもよい。特定の実施形態において、ソーシャルネットワーキングシステム７３０は、ソーシャルネットワークプロバイダによって運営されるのに対して、外部システム７２０は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム７３０とは別個のものである。しかしながら、様々な実施形態において、ソーシャルネットワーキングシステム７３０および外部システム７２０は、共に動作して、ソーシャルネットワーキングシステム７３０のユーザ（またはメンバー）に対してソーシャルネットワーキングサービスを提供する。この意味において、ソーシャルネットワーキングシステム７３０は、外部システム７２０などの他のシステムがインターネット上のユーザに対してソーシャルネットワーキングサービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
【００６０】
ユーザデバイス７１０は、ユーザから入力を受信し、ネットワーク７５０を通じてデータを送受信することができる１つまたは複数のコンピューティングデバイス（またはコンピューティングシステム）を備える。一実施形態において、ユーザデバイス７１０は、例えば、マイクロソフトウィンドウズ（登録商標）と互換性のあるオペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態において、ユーザデバイス７１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス（例えば、眼鏡、腕時計、ブレスレット、その他）、カメラ、機器、その他などのコンピュータ機能を有するコンピューティングデバイスまたはデバイスであってもよい。ユーザデバイス７１０は、ネットワーク７５０を通じて通信するように構成される。ユーザデバイス７１０は、アプリケーション、例えば、ユーザデバイス７１０のユーザがソーシャルネットワーキングシステム７３０と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態において、ユーザデバイス７１０は、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）などの、ユーザデバイス７１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を通じてソーシャルネットワーキングシステム７３０を対話する。ユーザデバイス７１０は、ネットワーク７５０を通じて外部システム７２０およびソーシャルネットワーキングシステム７３０と通信するように構成される。ネットワーク７５０は、有線通信システムおよび／または無線通信システムを使用する、ローカルエリアネットワークおよび／または広域ネットワークの任意の組み合わせを備え得る。
【００６１】
１つの実施形態において、ネットワーク７５０は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク７５０は、イーサネット（登録商標）、８０２．１１、マイクロ波アクセスのための世界的相互運用性（ＷｉＭＡＸ：ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ｍｉｃｒｏｗａｖｅ  ａｃｃｅｓｓ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル加入者線（ＤＳＬ：ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）等などの技術を使用するリンクを含み得る。同様に、ネットワーク７５０上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ：ｍｕｌｔｉｐｒｏｔｏｃｏｌ  ｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇ）、送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ：ｓｉｍｐｌｅ  ｍａｉｌ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ファイル転送プロトコル（ＦＴＰ）などを含み得る。ネットワーク７５０上で交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、およびインターネットプロトコルセキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を使用して暗号化され得る。
【００６２】
１つの実施形態において、ユーザデバイス７１０は、外部システム７２０から、およびソーシャルネットワーキングシステム７３０から受信されるマークアップ言語文書７１４を、ブラウザアプリケーション７１２を使用して処理することによって、外部システム７２０からのコンテンツおよび／またはソーシャルネットワーキングシステム７３０からのコンテンツを表示し得る。マークアップ言語文書７１４は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する１つまたは複数の命令とを識別する。マークアップ言語文書７１４内に含まれる命令を実行することによって、ブラウザアプリケーション７１２は、マークアップ言語文書７１４によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書７１４は、外部システム７２０およびソーシャルネットワーキングシステム７３０から得られたテキストおよび／または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書７１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書７１４は、外部システム７２０とユーザデバイス７１０との間のデータ交換を容易にするためのジャバスクリプトオブジェクトノーテーション（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）データ、パディング付きのＪＳＯＮ（ＪＳＯＮＰ：ＪＳＯＮ  ｗｉｔｈ  ｐａｄｄｉｎｇ）データ、およびジャバスクリプトデータを含み得る。ユーザデバイス７１０上のブラウザアプリケーション７１２は、ジャバスクリプトコンパイラを使用して、マークアップ言語文書７１４を復号し得る。
【００６３】
マークアップ言語文書７１４は、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーションフレームワーク等などの、アプリケーションまたはアプリケーションフレームワークも含み、または、これらに対してもリンクし得る。
【００６４】
１つの実施形態において、ユーザデバイス７１０は、ユーザデバイス７１０のユーザがソーシャルネットワーキングシステム７３０へログインしたかを示すデータを含む、１つまたは複数のクッキー７１６も含む。クッキー７１６は、ソーシャルネットワーキングシステム７３０からユーザデバイス７１０へ通信されるデータのカスタム化を可能にし得る。
【００６５】
外部システム７２０は、１つまたは複数のウェブページ７２２ａ、７２２ｂを含む、１つまたは複数のウェブサーバを含む。１つまたは複数のウェブページ７２２ａ、７２２ｂは、ネットワーク７５０を使用して、ユーザデバイス７１０へ通信される。外部システム７２０は、ソーシャルネットワーキングシステム７３０とは別個である。例えば、外部システム７２０は、第１のドメインに対して関連付けられるが、ソーシャルネットワーキングシステム７３０は、別個のソーシャルネットワーキングドメインに対して関連付けられる。外部システム７２０に含まれるウェブページ７２２ａ、７２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書７１４を備える。前述したように、多くのバリエーションまたは他の可能性があり得ることを理解されたい。
【００６６】
ソーシャルネットワーキングシステム７３０は、複数のユーザを含み、ソーシャルネットワークのユーザに対して、ソーシャルネットワークの他のユーザと通信および対話するための能力を提供する、ソーシャルネットワークのための１つまたは複数のコンピューティングデバイスを含む。さらに詳細に説明されるように、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャルネットワークを表現するために使用され得る。ソーシャルネットワーキングシステム７３０は、オペレータによって監督、管理、または制御されてよい。ソーシャルネットワーキングシステム７３０のオペレータは、ソーシャルネットワーキングシステム７３０内でコンテンツを管理し、ポリシを統制し、使用メトリクスを収集するための、人間、自動化されたアプリケーション、または一連のアプリケーションであってよい。任意のタイプのオペレータが使用されてよい。
【００６７】
ユーザは、ソーシャルネットワーキングシステム７３０に加入し、次いで、そのユーザがつなげられることを望む、ソーシャルネットワーキングシステム７３０の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャルネットワーキングシステム７３０を通じてつながり、関連、または関係を形成した、ソーシャルネットワーキングシステム７３０の任意の他のユーザに及ぶ。例えば、一実施形態において、ソーシャルネットワーキングシステム７３０内のユーザが、ソーシャルグラフ内のノードとして表現される場合、「友達」という用語は、２つのユーザノード間に形成され、かつ、２つのユーザノードを直接的に接続するエッジを指し得る。
【００６８】
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性（例えば、同じ教育機関の卒業生であるユーザ）に基づいて、ソーシャルネットワーキングシステム７３０によって自動的に作成されてもよい。例えば、第１のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャルネットワーキングシステム７３０におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャルネットワーキングシステム７３０のユーザ間のつながりは、通常は、双務的（「二方向」）または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャルネットワーキングシステム７３０のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャルネットワーキングシステム７３０へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャルネットワーキングシステム７３０のいくつかの実施形態は、つながりが、１つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
【００６９】
ユーザ間のつながりを確立および維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム７３０は、ソーシャルネットワーキングシステム７３０によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャルネットワーキングシステム７３０のユーザが所属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク）、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャルネットワーキングシステム７３０を通じて使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム７３０によって提供されるサービスを通じてまたはソーシャルネットワーキングシステム７３０を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャルネットワーキングシステム７３０内外で実行し得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム７３０上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム７３０において、または、ソーシャルネットワーキングシステム７３０とは別個の外部システム７２０もしくはネットワーク７５０を通じてソーシャルネットワーキングシステム７３０に対して結合される外部システム７２０において表現されることが可能なありとあらゆるものと対話し得る。
【００７０】
ソーシャルネットワーキングシステム７３０は、多様なエンティティとリンクすることも可能である。例えば、ソーシャルネットワーキングシステム７３０は、ユーザが互いに対話すること、および、ＡＰＩ、ウェブサービス、または他の通信チャネルを通じて外部システム７２０または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム７３０は、複数のエッジによって相互接続された複数のノードを備える「ソーシャルグラフ」を生成および維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび／または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、人間以外のエンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム７３０内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ内の２つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、２つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかのケースでは、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに対して「いいね」を表明するときに作成されるエッジには、ある重みが与えられてよく、ユーザが別のユーザと友達になるときに作成されるエッジには、異なる重みが与えられてよい。
【００７１】
例として、第１のユーザが第２のユーザを友達として識別した場合、第１のユーザを表すノードと、第２のユーザを表す第２のノードとを接続するソーシャルグラフ中のエッジが生成される。様々なノードが互いに関係するかまたは対話するのに伴い、ソーシャルネットワーキングシステム７３０は、関係および対話を反映するように、様々なノードを接続するエッジを修正する。
【００７２】
ソーシャルネットワーキングシステム７３０は、ユーザによるソーシャルネットワーキングシステム７３０との対話を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム７３０に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザデバイス７１０からソーシャルネットワーキングシステム７３０への投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび／もしくはメディアを含み得る。コンテンツも、第三者によってソーシャルネットワーキングシステム７３０に対して追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム７３０においてオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム７３０のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の対話を増加させ、ユーザがソーシャルネットワーキングシステム７３０と対話する頻度を増加させる。
【００７３】
ソーシャルネットワーキングシステム７３０は、ウェブサーバ７３２と、ＡＰＩ要求サーバ７３４と、ユーザプロファイルストア７３６と、つながりストア７３８と、アクションロガー７４０と、アクティビティログ７４２と、認証サーバ７４４とを含む。本発明の一実施形態において、ソーシャルネットワーキングシステム７３０は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインタフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
【００７４】
ユーザプロファイルストア７３６は、ユーザによって申告され、またはソーシャルネットワーキングシステム７３０によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロファイルストア７３６内に記憶される。ソーシャルネットワーキングシステム７３０は、異なるユーザ間の１つまたは複数のつながりを記述するデータも、つながりストア７３８内に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャルネットワーキングシステム７３０は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザーによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャルネットワーキングシステム７３０内の他のノードとのつながりも、つながりストア７３８内に記憶される。
【００７５】
ソーシャルネットワーキングシステム７３０は、ユーザが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア７３６およびつながりストア７３８は、ソーシャルネットワーキングシステム７３０によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア７３６は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャルネットワーキングシステム７３０は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム７３０のユーザになった場合に発生し、ソーシャルネットワーキングシステム７３０は、ユーザプロファイルストア７３６内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザアカウントのフィールドへ投入し始める。
【００７６】
つながりストア７３８は、他のユーザに対するユーザのつながり、外部システム７２０に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア７３８は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザプロファイルストア７３６およびつながりストア７３８は、連合データベースとして実装され得る。
【００７７】
つながりストア７３８、ユーザプロファイルストア７３６、およびアクティビティログ７４２内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャルグラフをソーシャルネットワーキングシステム７３０が生成することを可能にする。例えば、第１のユーザが、ソーシャルネットワーキングシステム７３０内で第２のユーザとのつながりを確立する場合、ユーザプロファイルストア７３６からの第１のユーザおよび第２のユーザのユーザアカウントは、ソーシャルグラフ内のノードとして動作し得る。つながりストア７３８によって記憶される、第１のユーザと第２のユーザとの間のつながりは、第１のユーザおよび第２のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第２のユーザは、次いで、第１のユーザに対して、ソーシャルネットワーキングシステム７３０内でメッセージを送信し得る。メッセージを送信するアクションは、第１のユーザおよび第２のユーザを表現する、ソーシャルグラフ内の２つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第１のユーザを表現するノードおよび第２のユーザを表現するノードに対して接続される別のノードとして、ソーシャルグラフにおいて識別され、ソーシャルグラフに含まれ得る。
【００７８】
別の例において、第１のユーザは、ソーシャルネットワーキングシステム７３０によって維持される画像において（または、代替的に、ソーシャルネットワーキングシステム７３０の外部の別のシステムによって維持される画像において）第２のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム７３０内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第１のユーザと第２のユーザとの間のエッジも作成し得る。画像もソーシャルグラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザプロファイルストア７３６から取得されるノードであり、そのイベントへの参加は、アクティビティログ７４２から得られ得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム７３０は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の対話およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
【００７９】
ウェブサーバ７３２は、ソーシャルネットワーキングシステム７３０を、ネットワーク７５０を通じて、１つもしくは複数のユーザデバイス７１０および／または１つもしくは複数の外部システム７２０に対してリンクする。ウェブサーバ７３２は、ウェブページ、およびＪａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関連コンテンツを供給する。ウェブサーバ７３２は、メールサーバを含み、または、ソーシャルネットワーキングシステム７３０と１つもしくは複数のユーザデバイス７１０との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、キューメッセージ（例えば、電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
【００８０】
ＡＰＩ要求サーバ７３４は、１つまたは複数の外部システム７２０およびユーザデバイス７１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャルネットワーキングシステム７３０からのアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ７３４は、外部システム７２０が、ＡＰＩを呼び出すことによって、ソーシャルネットワーキングシステム７３０に対して情報を送信することも可能にし得る。外部システム７２０は、１つの実施形態において、ネットワーク７５０を通じてソーシャルネットワーキングシステム７３０へＡＰＩ要求を送信し、ＡＰＩ要求サーバ７３４は、そのＡＰＩ要求を受信する。ＡＰＩ要求サーバ７３４は、ＡＰＩ要求に対して関連付けられているＡＰＩを呼び出すことによって要求を処理して、適当な応答を生成する。ＡＰＩ要求サーバ７３４は、その適当な応答を、ネットワーク７５０を通じて外部システム７２０へ通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ７３４は、外部システム７２０に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられているデータを収集し、収集されたデータを外部システム７２０へ通信する。別の実施形態において、ユーザデバイス７１０は、外部システム７２０と同じ手法で、ＡＰＩを通じてソーシャルネットワーキングシステム７３０と通信する。
【００８１】
アクションロガー７４０は、ソーシャルネットワーキングシステム７３０内での、および／またはソーシャルネットワーキングシステム７３０外でのユーザアクションに関する通信をウェブサーバ７３２から受信することが可能である。アクションロガー７４０は、ユーザアクションに関する情報をアクティビティログ７４２へ投入し、ソーシャルネットワーキングシステム７３０の内部で、およびソーシャルネットワーキングシステム７３０の外部で、そのユーザによって行われた様々なアクションをソーシャルネットワーキングシステム７３０が発見することを可能にする。特定のユーザが、ソーシャルネットワーキングシステム７３０上の別のノードに関して行う任意のアクションは、アクティビティログ７４２内または同様のデータベースもしくは他のデータレポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム７３０内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと対話する他のアクションを含み得る。ユーザが、ソーシャルネットワーキングシステム７３０内でアクションを行う場合、そのアクションは、アクティビティログ７４２内に記録される。一実施形態において、ソーシャルネットワーキングシステム７３０は、アクティビティログ７４２をエントリのデータベースとして維持する。アクションが、ソーシャルネットワーキングシステム７３０内で行われる場合、そのアクションについてのエントリが、アクティビティログ７４２に対して追加される。アクティビティログ７４２は、アクションログと称され得る。
【００８２】
また、ユーザアクションは、ソーシャルネットワーキングシステム７３０とは別個の外部システム７２０などの、ソーシャルネットワーキングシステム７３０の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクションロガー７４０は、ユーザによる外部システム７２０との対話を記述するデータを、ウェブサーバ７３２から受信し得る。この例において、外部システム７２０は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる対話を報告する。
【００８３】
ユーザが外部システム７２０と対話するアクションの他の例は、ユーザが外部システム７２０もしくは別のエンティティにおいて興味を表現すること、外部システム７２０もしくは外部システム７２０内のウェブページ７２２ａと議論するソーシャルネットワーキングシステム７３０に対してユーザがコメントを投稿すること、ユーザがソーシャルネットワーキングシステム７３０に対してユニフォームリソースロケータ（ＵＲＬ）もしくは外部システム７２０に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム７２０に対して関連付けられるイベントへ参加すること、または、外部システム７２０に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティログ７４２は、ソーシャルネットワーキングシステム７３０のユーザと、ソーシャルネットワーキングシステム７３０とは別個の外部システム７２０との間の対話を記述するアクションを含み得る。
【００８４】
認証サーバ７４４は、ソーシャルネットワーキングシステム７３０のユーザの１つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る１つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム７２０、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザプロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
【００８５】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム７２０を含み得る。１つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム７２０のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム７２０がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム７２０のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって特定されるブロックリストに所属する外部システム７２０は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
【００８６】
認証サーバ７４４は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム７２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム７２０は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ７４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ７４４は、別のユーザ、外部システム７２０、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
【００８７】
いくつかの実施形態では、ソーシャルネットワーキングシステム７３０は、コンテンツプロバイダモジュール７４６を備えることができる。コンテンツプロバイダモジュール７４６は、例えば、図１のコンテンツプロバイダモジュール１０２として実装されてもよい。いくつかの実施形態では、コンテンツプロバイダモジュール７４６は、全体的にまたは部分的に、ユーザデバイス７１０または外部システム７２０に実装され得る。上述したように、多くの変形または他の可能性が存在し得ることを理解されたい。
【００８８】
ハードウェア実装形態
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図８は、本発明に応じて本明細書に記載された１つまたは複数の実施形態を実装するために使用され得るコンピュータシステム８００の例を例示する。コンピュータシステム８００は、コンピュータシステム８００に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータシステム８００は、他のマシンへ接続され（例えば、ネットワーク化され）得る。ネットワーク化された配置において、コンピュータシステム８００は、クライアント／サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格において動作し、または、ピアツーピア（もしくは分散）ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態において、コンピュータシステム８００は、ソーシャルネットワーキングシステム７３０、ユーザデバイス７１０、外部システム８２０、またはこれらの構成要素であってもよい。本発明の一実施形態において、コンピュータシステム８００は、ソーシャルネットワーキングシステム７３０の全てまたは部分を構成する多くのサー間のうちの１つのサーバであってもよい。
【００８９】
コンピュータシステム８００は、プロセッサ８０２と、キャッシュ８０４と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、１つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム８００は、高性能入出力（Ｉ／Ｏ）バス８０６と、標準Ｉ／Ｏバス８０８とを含む。ホストブリッジ８１０は、プロセッサ８０２を高性能Ｉ／Ｏバス８０６に対して結合する一方で、Ｉ／Ｏバスブリッジ８１２は、２つのバス８０６および８０８を互いに結合する。システムメモリ８１４および１つまたは複数のネットワークインタフェース８１６は、高性能Ｉ／Ｏバス８０６へ結合される。コンピュータシステム８００は、ビデオメモリと、ビデオメモリに対して結合される表示デバイスとをさらに含んでもよい（図示せず）。マスストレージ８１８およびＩ／Ｏポート８２０は、標準Ｉ／Ｏバス８０８へ結合される。コンピュータシステム８００は、バス８０８に対して結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス（図示せず）を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）によって製造されるｘ８６互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンストマイクロデバイス社（ＡＭＤ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ）によって製造されるｘ８６互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
【００９０】
オペレーティングシステムは、ソフトウェアアプリケーション（図示せず）へのデータの入力およびソフトウェアアプリケーションからのデータの出力を含む、コンピュータシステム８００の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインタフェースを提供する。任意の適切なオペレーティングシステム、例えば、ＬＩＮＵＸオペレーティングシステム、カリフォルニア州クパチーノのアップルコンピュータ社（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．）から市販されているアップルマッキントッシュオペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、マイクロソフト（登録商標）ウィンドウズ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステム等などが使用され得る。他の実装も可能である。
【００９１】
コンピュータシステム８００の要素は、下記においてより詳細に説明される。具体的には、ネットワークインタフェース８１６は、コンピュータシステム８００と、幅広いネットワークのうちの任意のもの、例えば、イーサネット（例えば、ＩＥＥＥ８０２．３）ネットワーク、バックプレーン等などとの間の通信を提供する。マスストレージ８１８は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ８１４（例えば、ＤＲＡＭ）は、プロセッサ８０２によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。Ｉ／Ｏポート８２０は、コンピュータシステム８００へ結合され得る付加的な周辺デバイス間の通信を提供する、１つまたは複数のシリアル通信ポートおよび／またはパラレル通信ポートであり得る。
【００９２】
コンピュータシステム８００は、多様なシステムアーキテクチャを含むことができ、コンピュータシステム８００の様々な構成要素は、再配置されてもよい。例えば、キャッシュ８０４は、プロセッサ８０２と共にチップ上に実装されてもよい。代替的に、キャッシュ８０４およびプロセッサ８０２は、「プロセッサモジュール」としてまとめられて、プロセッサ８０２が「プロセッサコア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準Ｉ／Ｏバス８０８へ結合される周辺デバイスは、高性能Ｉ／Ｏバス８０６へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータシステム８００の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータシステム８００は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
【００９３】
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティングシステムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、１つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、１つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータシステム８００に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、１つまたは複数の命令を、コンピュータシステム８００内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば、特定用途向け集積回路）、または、これらの任意の組み合わせにおいて実装され得る。
【００９４】
１つの実施形態において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム８００によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体（もしくはマシン読取可能な媒体）上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ８０２などの、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ８１８などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインタフェース８１６を通じて受信されてもよい。命令は、マスストレージ８１８などの記憶デバイスからシステムメモリ８１４内へコピーされ、次いで、プロセッサ８０２によってアクセスされ、実行される。様々な実施形態において、１つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、１つまたは複数の位置における、１つまたは複数のプロセッサによって実行され得る。
【００９５】
コンピュータ読取可能な媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピー（登録商標）ディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク（例えば、コンパクトディスク読取専用メモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的で（もしくは一時的で）、有形の（もしくは無形の）記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の１つもしくは複数を実行すべく、コンピュータシステム８００による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【００９６】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素（例えば、モジュール、ブロック、構造、デバイス、特徴等）は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【００９７】
この明細書における、「１つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書内の様々な部分における「１つの実施形態において」または「別の実施形態」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
【００９８】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。
【図１】
2019522421.tif 000003
【図２】
2019522421.tif 000004
【図３】
2019522421.tif 000005
【図４】
2019522421.tif 000006
【図５】
2019522421.tif 000007
【図６】
2019522421.tif 000008
【図７】
2019522421.tif 000009
【図８】
2019522421.tif 000010
【国際調査報告】
2019522421.tif 000011
2019522421.tif 000012