IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン・フル・ソフトウェア・テクノロジー・デベロップメント、カンパニー・リミテッドの特許一覧

特開2024-87762エージェントを使用するコンテンツ配信ネットワークの選択
<>
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図1
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図2
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図3
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図4
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図5
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図6
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図7
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図8
  • 特開-エージェントを使用するコンテンツ配信ネットワークの選択 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024087762
(43)【公開日】2024-07-01
(54)【発明の名称】エージェントを使用するコンテンツ配信ネットワークの選択
(51)【国際特許分類】
   H04N 21/21 20110101AFI20240624BHJP
   H04N 21/24 20110101ALI20240624BHJP
   H04N 21/258 20110101ALI20240624BHJP
   H04L 67/1012 20220101ALI20240624BHJP
【FI】
H04N21/21
H04N21/24
H04N21/258
H04L67/1012
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023173635
(22)【出願日】2023-10-05
(31)【優先権主張番号】202211632854.2
(32)【優先日】2022-12-19
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】18/166,920
(32)【優先日】2023-02-09
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】523380346
【氏名又は名称】ベイジン・フル・ソフトウェア・テクノロジー・デベロップメント、カンパニー・リミテッド
【氏名又は名称原語表記】BEIJING HULU SOFTWARE TECHNOLOGY DEVELOPMENT CO., LTD.
【住所又は居所原語表記】Room 2101-2108 21/F, 2201-2208 22/F, Building B, No.13 Building, Wangjing East Park, 4th Block, POSCO, Chaoyang District, Beijing 100102, PRC
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】チェンイー・ティエン
(72)【発明者】
【氏名】トンギュ・ダイ
(72)【発明者】
【氏名】スー・チェン
(72)【発明者】
【氏名】ラーメイ・フアン
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164SA51P
5C164SB21S
5C164SB29S
5C164SB41P
5C164SC11P
5C164YA11
5C164YA24
(57)【要約】      (修正有)
【課題】より高いサービス品質をもたらす可能性が最も高くあり得るコンテンツ配信ネットワークを映像のための再生セッションに割り当てる方法を提供する。
【解決手段】方法は、コンテンツを求める要求についての入力値を決定し、複数のコンテンツ配信ネットワークについての分散に基づく成分を含む複数の状態を取り出す。複数のコンテンツ配信ネットワークについての複数のスコアは、入力値及び複数の状態に基づいて生成される。コンテンツ配信ネットワークについてのスコアは、成分についてのパラメータ値と入力値とを使用して生成される。方法はまた、コンテンツ配信ネットワークについてのスコアに基づいて複数のコンテンツ配信ネットワークからコンテンツ配信ネットワークを選択し、選択されたコンテンツ配信ネットワークに、コンテンツを配信することを求める要求にサービスさせるために、選択されたコンテンツ配信ネットワークについての情報を出力する。
【選択図】図2
【特許請求の範囲】
【請求項1】
方法であって、
コンピューティングデバイスによって、コンテンツを求める要求についての入力値を決定することと、
前記コンピューティングデバイスによって、複数のコンテンツ配信ネットワークについての複数の状態を取り出すことと、ここにおいて、状態は、分散に基づく成分を含み、
前記コンピューティングデバイスによって、前記入力値及び前記複数の状態に基づいて前記複数のコンテンツ配信ネットワークについての複数のスコアを生成することと、ここにおいて、コンテンツ配信ネットワークについてのスコアは、前記成分についてのパラメータ値と前記入力値とを使用して生成され、
前記コンピューティングデバイスによって、前記コンテンツ配信ネットワークについての前記スコアに基づいて前記複数のコンテンツ配信ネットワークからコンテンツ配信ネットワークを選択することと、
前記コンピューティングデバイスによって、前記選択されたコンテンツ配信ネットワークに、前記コンテンツを配信することを求める前記要求にサービスさせるために、前記選択されたコンテンツ配信ネットワークについての情報を出力することと
を備える、方法。
【請求項2】
前記複数のスコアを生成することは、
前記コンテンツ配信ネットワークについてのそれぞれの状態と前記入力値とに基づいて前記複数のコンテンツ配信ネットワーク中の各コンテンツ配信ネットワークについての前記スコアを生成すること
を備える、請求項1に記載の方法。
【請求項3】
前記パラメータ値は、第1のパラメータ値を備え、
前記スコアは、前記第1のパラメータ値及び第2のパラメータ値を使用して生成され、
前記第2のパラメータ値は、前記それぞれのコンテンツ配信ネットワークに対するコンテンツの配信の履歴観察に基づく、
請求項1に記載の方法。
【請求項4】
前記第1のパラメータ値は、それぞれのコンテンツ配信ネットワークに対する履歴観察の数が増加するにつれて減少する、請求項3に記載の方法。
【請求項5】
前記スコアは、上限の予測に基づく、請求項1に記載の方法。
【請求項6】
コンテンツを求める前記要求は、クライアントから受信され、前記複数のコンテンツ配信ネットワーク中のコンテンツ配信ネットワークは、前記クライアントに前記コンテンツを配信することが可能である、請求項1に記載の方法。
【請求項7】
前記入力値は、前記要求に関連付けられたコンテキストに基づく入力値のセットを備える、請求項1に記載の方法。
【請求項8】
前記コンテキストは、前記要求を送り、前記コンテンツの配信を受信するクライアントに関連付けられる、請求項7に記載の方法。
【請求項9】
前記複数のスコアを生成することは、
前記複数のスコアを生成するために複数のエージェントを使用することを備え、各コンテンツ配信ネットワークは、それぞれのエージェントに関連付けられる、請求項1に記載の方法。
【請求項10】
状態が、前記複数のエージェントの各々について記憶される、請求項9に記載の方法。
【請求項11】
前記選択されたコンテンツ配信ネットワークによる前記コンテンツの配信からフィードバックを受信することと、
前記フィードバックに基づいて前記パラメータ値を調整することと
を更に備える、請求項1に記載の方法。
【請求項12】
前記フィードバックは、前記選択されたコンテンツ配信ネットワークによる前記コンテンツの前記配信に基づいて測定された性能メトリックに基づく、
請求項11に記載の方法。
【請求項13】
前記フィードバックは、リバッファが前記選択されたコンテンツ配信ネットワークによる前記コンテンツの前記配信中に生じたかどうかを備える、請求項12に記載の方法。
【請求項14】
前記パラメータ値は、リバッファが生じないときにより高いスコアを予測するための値に変更される、請求項13に記載の方法。
【請求項15】
前記パラメータ値を調整することは、前記フィードバックが受信されるときにリアルタイムで実行される、請求項11に記載の方法。
【請求項16】
前記パラメータ値を調整することは、前記フィードバックを使用して前記パラメータ値を第1の値から第2の値に調整するための動作によって実行される、請求項11に記載の方法。
【請求項17】
前記コンテンツ配信ネットワークを選択することは、
前記複数のスコアから最も高くランク付けされたスコアを選択することを備える、請求項1に記載の方法。
【請求項18】
コンピュータ実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
コンテンツを求める要求についての入力値を決定することと、
複数のコンテンツ配信ネットワークについての複数の状態を取り出すことと、ここにおいて、状態は、分散に基づく成分を含み、
前記入力値及び前記複数の状態に基づいて前記複数のコンテンツ配信ネットワークについての複数のスコアを生成することと、ここにおいて、コンテンツ配信ネットワークについてのスコアは、前記成分についてのパラメータ値と前記入力値とを使用して生成され、
前記コンテンツ配信ネットワークについての前記スコアに基づいて前記複数のコンテンツ配信ネットワークからコンテンツ配信ネットワークを選択することと、
前記選択されたコンテンツ配信ネットワークに、前記コンテンツを配信することを求める前記要求にサービスさせるために、前記選択されたコンテンツ配信ネットワークについての情報を出力することと
を行うように動作可能にさせる、非一時的コンピュータ可読記憶媒体。
【請求項19】
前記パラメータ値は、第1のパラメータ値を備え、
前記スコアは、前記第1のパラメータ値及び第2のパラメータ値を使用して生成され、
前記第2のパラメータ値は、前記それぞれのコンテンツ配信ネットワークに対するコンテンツの配信の履歴観察に基づく、
請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
装置であって、
1つ以上のコンピュータプロセッサと、
コンピュータ可読記憶媒体と
を備え、前記コンピュータ可読記憶媒体は、
コンテンツを求める要求についての入力値を決定することと、
複数のコンテンツ配信ネットワークについての複数の状態を取り出すことと、ここにおいて、状態は、分散に基づく成分を含み、
前記入力値及び前記複数の状態に基づいて前記複数のコンテンツ配信ネットワークについての複数のスコアを生成することと、ここにおいて、コンテンツ配信ネットワークについてのスコアは、前記成分についてのパラメータ値と前記入力値とを使用して生成され、
前記コンテンツ配信ネットワークについての前記スコアに基づいて前記複数のコンテンツ配信ネットワークからコンテンツ配信ネットワークを選択することと、
前記選択されたコンテンツ配信ネットワークに、前記コンテンツを配信することを求める前記要求にサービスさせるために、前記選択されたコンテンツ配信ネットワークについての情報を出力することと
を行うように動作可能となるように前記1つ以上のコンピュータプロセッサを制御するための命令を備える、装置。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]35U.S.C.§119(a)に準じて、本出願は、2022年12月19日に出願され、「Selection of Content Delivery Networks Using Agents」と題された中国特許出願第202211632854.2号の出願日の利益を享受する権利を有し、且つその利益を主張し、その内容は、あらゆる目的のためにその全体が参照によって本明細書に援用される。
【背景技術】
【0002】
[0002]映像配信システムは、映像をクライアントに配信するために複数のコンテンツ配信ネットワーク(CDN)を使用し得る。クライアントが映像を要求すると、映像配信システムは、再生セッション中に要求を処理するためにコンテンツ配信ネットワークのうちの1つを選択し得る。コンテンツ配信ネットワークを選択すると、クライアントは、映像をストリーミングするためにコンテンツ配信ネットワークと通信する。
【0003】
[0003]異なるコンテンツ配信ネットワークは、異なるサービス品質(QoS)を異なるクライアントに提供し得る。それ故に、クライアントに割り当てられたコンテンツ配信ネットワークは、再生セッション中の再生体験に影響を及ぼし得る。例えば、映像を再生するためにクライアントに、第1のコンテンツ配信ネットワークは、第1のサービス品質を提供し、第2のコンテンツ配信ネットワークは、第2のサービス品質を提供し得る。第1のサービス品質再生体験と第2のサービス品質再生体験とが異なるとき、映像配信システムが、より高いサービス品質をもたらす可能性が最も高くあり得るコンテンツ配信ネットワークを映像のための再生セッションに割り当てることが望ましくあり得る。しかしながら、ランダム選択を使用して、映像配信システムは、任意選択で、映像を求める要求にコンテンツ配信ネットワークを割り当てない場合がある。
【0004】
[0004]含まれる図面は、例示を目的とするものであり、開示される本発明のシステム、装置、方法、及びコンピュータプログラム製品のための可能な構造及び動作の例を提供する役割のみを果たす。これらの図面は、開示される実装形態の趣旨及び範囲から逸脱することなく、当業者によって行われ得る任意の形態及び詳細の変更を決して限定しない。
【図面の簡単な説明】
【0005】
図1】[0005]いくつかの実施形態による、コンテンツ配信ネットワークを選択するための簡略化されたシステムを図示する。
図2】[0006]いくつかの実施形態による、CDN選択システムのより詳細な例を図示する。
図3】[0007]いくつかの実施形態による、QoS予測を実行するための方法についての簡略化されたフローチャートを図示する。
図4】[0008]いくつかの実施形態による、割り振り方法を使用してコンテンツ配信ネットワークを選択するための方法の簡略化されたフローチャートを図示する。
図5】[0009]いくつかの実施形態による、信頼上限を説明するグラフを図示する。
図6】[0010]いくつかの実施形態による、信頼上限を使用するコンテンツ配信ネットワークの選択を実行するための方法の簡略化されたフローチャートを図示する。
図7】[0011]いくつかの実施形態による、エージェントを使用して計算された状態の例を図示する。
図8】[0012]一実施形態による、1つ以上の通信ネットワークを介して複数のクライアントデバイスと通信している映像ストリーミングシステムを図示する。
図9】[0013]映像コンテンツ及び広告を視聴するための装置の線図を図示する。
【発明を実施するための形態】
【0006】
[0014]本明細書では、映像配信システムのための技法が説明される。以下の説明では、説明を目的として、数多くの例及び特定の詳細が、いくつかの実施形態の完全な理解を提供するために記載される。特許請求の範囲によって定義されるいくつかの実施形態は、これらの例におけるいくつか又は全ての特徴を、単独で又は以下で説明される他の特徴と組み合わせて含み得、本明細書で説明される特徴及び概念の修正形態及び同等物を更に含み得る。
【0007】
[0015]上記で議論されたように、映像配信システムは、コンテンツをクライアントに配信するために複数のコンテンツ配信ネットワーク(CDN)を使用し得る。クライアントがメディアコンテンツのインスタンスを要求すると、映像配信システムは、再生セッション中に要求を処理するためにコンテンツ配信ネットワークのうちの1つを選択し得る。コンテンツ配信ネットワーク(CDN)選択システムは、予測エンジン及び割り振りエンジンを含み得る。予測エンジンは、性能メトリックを予測し得る。性能メトリックは、クライアントへのメディアコンテンツの配信に基づき得るが、適応ビットレートアルゴリズムにおけるプロファイルの性能など、他のアプリケーションのためのメトリックでもあり得る。メトリックは、サービス品質(QoS)性能であり得るが、他のメトリックが使用され得る。いくつかの実施形態では、CDN選択システムは、メディアコンテンツをクライアントに配信することができる複数のコンテンツ配信ネットワークについてのQoS性能スコアを予測し得る。QoS性能スコアを予測した後、割り振りエンジンは、トップにランク付けされた(例えば、最も高い)QoS性能スコアを有するコンテンツ配信ネットワークを選択することなどによって、それぞれのコンテンツ配信ネットワークについての予測されたQoS性能スコアに基づいて、利用可能なコンテンツ配信ネットワークからコンテンツ配信ネットワークを選択し得る。
【0008】
[0016]従来、QoS性能の予測は、機械学習問題としてモデル化され得る。例えば、機械学習モデルに入力されるであろう特徴が選択され得、特徴についての履歴データが収集され、大量の履歴データを用いてモデルが訓練されて、QoS性能が予測される。機械学習モデルを使用するときの1つの欠点は、機械学習モデルが、履歴観察を活用するためにQoS性能の期待を予測することである。期待は、履歴データに基づいて性能を最大化する試みであり得る。これは、不十分なQoS性能を経験するコンテンツ配信ネットワークが、機械学習モデルによって予測される劣悪なQoS性能スコアを有し得ることを意味する。それぞれのコンテンツ配信ネットワークについてのQoS履歴観察がほとんどない場合、アベレージQoS性能は、不十分であるという高いリスクにさらされ得、また、コンテンツ配信ネットワークは、割り振りエンジンによってあまり頻繁に選択されない場合がある(例えば、割り振りエンジンが、より高いスコアを有するコンテンツ配信ネットワークを選択するように歪められる場合)。しかしながら、コンテンツ配信ネットワークは、実際には、選択された場合、経時的に良好なQoS性能を提供することが可能であり得る。しかし、コンテンツ配信ネットワークは、少数の不十分なQoS性能の履歴観察に基づいて生成される不十分なQoS性能スコアに起因して選択されない場合がある。
【0009】
[0017]いくつかの実施形態は、QoS性能予測を実行するエージェントを使用することによって、従来の方法に勝る利点を提供する。エージェントは、活用及び探索を測定するためのパラメータを含み得る。活用は、期待される性能(例えば、平均)であり得、探索は、潜在的であり得、それは、ランダム変数の分散に基づき得る。活用及び探索を使用するQoS性能スコアは、信頼上限(UCB)であり得る。信頼上限は、期待される性能及び潜在性の探索に基づく上限であり得、それは、以下でより詳細に説明される。それ故に、エージェントは、履歴データの活用に基づく予測を生成し、コンテンツ配信ネットワークが予測された性能を配信する潜在性も生成し得る。これは、QoS予測が少数の履歴観察を補償し得るので、QoS性能についてのより正確な予測を提供し、それは、少数の観察が受信され得るときでも、コンテンツ配信ネットワークが依然としてその潜在的性能を探索するために選択されることを可能にし得る。
【0010】
[0018]また、機械学習モデル方法は、一般化可能性の欠点を有し得る。即ち、QoS性能は、様々な要因に起因して経時的に変化し得、それは、条件が変化し、モデルが適応しないときに、機械学習モデルの出力の劣化につながる。機械学習モデルの出力を更新するために、機械学習モデルは、かなりの量のデータを使用して再訓練される必要がある。機械学習モデルの更新は、機械学習モデルのパラメータがデータを使用して再訓練される必要があるため、時間が掛かり得、この再訓練は、要求に対するセッションが終了した(例えば、映像配信が終了した)後など、リアルタイムで実行されることができない。むしろ、機械学習モデルは、オフラインにされ、再訓練され、次いで新しいパラメータ値を用いて再インストールされなければならない場合がある。それ故に、機械学習モデルは、データが経時的に変化するので、QoS性能を正確に予測しない場合がある。
【0011】
[0019]いくつかの実施形態では、エージェントは、現在の要求に対する割り振りの結果を使用してリアルタイムで更新されることができる。例えば、クライアントからのメディアコンテンツを求める要求が受信され得、複数のコンテンツ配信ネットワークについてのQoS性能スコアが予測される。割り振りエンジンは、次いで、要求にサービスするためにコンテンツ配信ネットワークを選択し得る。要求に対するコンテンツの配信が、次いで観察され得る。例えば、コンテンツの再生の性能が観察され得、コンテンツの配信が、生じる任意のリバッファインスタンスに対して観察されるなど、QoS性能が測定される。次いで、コンテンツの配信からのフィードバックが、エージェントをリアルタイムで調整するために使用され得る。例えば、CDN選択システムは、QoS性能スコアの予測を実行するために使用されるエージェントの1つ以上のパラメータ値を調整するためにフィードバックを使用する。いくつかの例では、CDN選択システムは、リバッファが生じたか否かに基づいて、選択されたコンテンツ配信ネットワークのためのそれぞれのエージェントのパラメータを調整し得る。いくつかの実施形態では、CDN選択システムは、更新が、機械学習モデルの再訓練を実行しなければならないこととは対照的に、エージェントのパラメータを更新するために1つ以上の加算演算などの1つ以上の演算を必要とするなど、軽量であり得るので、リアルタイムで更新を実行し得る。
【0012】
[0020]システムの概要
【0013】
[0021]図1は、いくつかの実施形態による、コンテンツ配信ネットワーク106を選択するための簡略化されたシステム100を図示する。システム100は、コンテンツ配信ネットワーク(CDN)106-1~106-N、クライアント102、オリジンサーバ104、及びサーバシステム108を含む。コンテンツプロバイダは、エンティティがオンデマンド映像及びライブ映像などのメディアコンテンツのライブラリにメディアコンテンツを要求し、メディアコンテンツのライブラリからメディアコンテンツを受信することを可能にする映像配信サービスを提供するようにサーバシステム108を動作させる。コンテンツプロバイダは、クライアント102へのメディアコンテンツの配布を調整するためにサーバシステム108を使用し得る。メディアコンテンツは、コンピューティングデバイス上でレンダリングされることができる映像、オーディオ、又は他のタイプのコンテンツ情報などの、異なるタイプのコンテンツを含み得る。映像は、議論の目的で使用され得るが、他のタイプのコンテンツが認識され得る。メディアコンテンツのインスタンスは、要求に対して要求されるインスタンスであり得る。例えば、メディアコンテンツの第1のインスタンスは、第1のショーのためのものであり得、メディアコンテンツの第2のインスタンスは、第2のショーのためのものであり得、第3のインスタンスは、第1のショーのためのものであり得る、等である。
【0014】
[0022]コンテンツ配信ネットワーク106は、映像配信サービス用のメディアコンテンツのインスタンスを配信し得る。コンテンツ配信ネットワーク106は、メディアコンテンツのインスタンスをクライアント102に配信する、サーバなどの1つ以上のコンピューティングデバイスを含み得る。コンテンツプロバイダは、クライアント102へのそのメディアコンテンツの配信を支援するために複数のサードパーティコンテンツ配信ネットワークと契約することに加えて、それ自体のコンテンツ配信ネットワークを動作させる。クライアント102のインスタンスが示されているが、コンテンツ配信ネットワーク106は、メディアコンテンツをクライアント102の1つ以上のインスタンスに配信している場合がある。また、コンテンツ配信ネットワーク106は、エッジノードなどの複数のコンピューティングデバイスを含み得、それらは、地理的に分散され得る。エッジノードは、オリジンサーバ104からメディアコンテンツのセグメントを受信し、セグメントを異なるクライアント102に配信し得る。コンテンツ配信ネットワーク106に関連付けられた任意のサーバが、本明細書で説明される機能を実行し得る。また、サーバシステム108及びコンテンツ配信ネットワーク106が説明され得るが、いずれかによって実行される機能は、2つのエンティティ間に分散され得るか、又は他のエンティティによって実行され得る。
【0015】
[0023]クライアント102は、スマートフォン、セットトップボックス、タブレットデバイス、リビングルームデバイス、ゲームコンソール、等などのコンピューティングデバイスを含み得る。クライアント102は、コンテンツを再生することができるメディアプレーヤ114を含む。クライアント102は、メディアプレーヤ114でメディアコンテンツのインスタンスを再生し始めるために、コンテンツ配信ネットワーク#2などのコンテンツ配信ネットワーク106のうちの1つを使用し得る。
【0016】
[0024]サーバシステム108は、クライアント102からのメディアコンテンツのインスタンスを求める要求を処理し得る。示されていないが、サーバシステム108は、複数のクライアント102からの要求を、順次に且つ同時に処理している場合がある。例えば、クライアント102は、同時に又はある時間期間内に映像を要求するために映像配信サービスを使用している場合がある。
【0017】
[0025]オリジンサーバ104は、メディアコンテンツの表現を記憶装置112中に記憶し得る。表現は、異なるビットレート又は品質(例えば、解像度)で符号化されたメディアコンテンツの異なる表現など、コンテンツについての異なる再生特性を含み得る。例えば、映像は、異なるビットレートで符号化され得る。いくつかの例では、クライアント102は、各コンテンツ配信ネットワーク106からメディアコンテンツのインスタンスを要求することが可能であり得、各コンテンツ配信ネットワーク106は、メディアコンテンツのインスタンスの表現で独立して応答することが可能であり得る。例えば、各コンテンツ配信ネットワーク106は、オリジンサーバ104にメディアコンテンツの表現を要求し、オリジンサーバ104からメディアコンテンツの表現を受信することができる1つ以上のサーバを含み得る。次いで、各コンテンツ配信ネットワーク106は、メディアコンテンツのインスタンスをクライアント102に配信することができる。
【0018】
[0026]サーバシステム108は、メディアコンテンツのインスタンスを求める要求を処理するためにコンテンツ配信ネットワーク106のうちの1つを選択するように構成される。コンテンツ配信ネットワーク(CDN)選択システム110は、要求に対してコンテンツ配信ネットワークを選択し、コンテンツ配信ネットワーク106の選択を表す選択データをクライアント102に提供し得る。選択データは、クライアント102に提供することに加えて又はその代わりにのうちのいずれかで、選択されたコンテンツ配信ネットワーク106に提供され得る。クライアント102は、次いで、メディアコンテンツのインスタンスのセグメントを要求するために、コンテンツ配信ネットワーク#2 106-2などの選択されたコンテンツ配信ネットワーク106と対話し得る。コンテンツ配信ネットワーク#2 106-2は、次いで、セグメントをクライアント102に配信し得、クライアント102は、メディアプレーヤ114上にセグメントを表示する。
【0019】
[0027]クライアント102は、メディアコンテンツのインスタンスの再生中に異なる再生条件を経験し得る。例えば、再生条件は、コンテンツ配信ネットワーク106毎に異なり得る。これは、メディアコンテンツのインスタンスが、性能メトリックの異なる値でクライアント102に配信されることをもたらし得る。性能メトリックは、サービス品質と呼ばれ得、それは、メディアコンテンツのインスタンスをコンテンツ配信ネットワーク106からクライアント102に配信するサービスの性能の測定値であり得る。サービス品質性能メトリックを測定するために使用され得るいくつかのメトリックは、接続誘導リバッファ、パケット損失、ビットレート、スループット、伝送遅延、ネットワーク利用可能性、ジッタ、等など、ネットワーク性能に関連し得る。性能メトリックは、1つ以上のメトリックに基づき得る。
【0020】
[0028]CDN選択システム110は、選択プロセスに基づいて要求に対してコンテンツ配信ネットワーク106を選択し得る。例えば、CDN選択システム110は、要求に対してコンテンツ配信ネットワーク106を選択するために、コンテンツ配信ネットワーク106についての性能メトリックの分析を使用し得る。例えば、CDN選択システム110は、コンテンツ配信ネットワーク106についてのQoS性能スコアを予測し得る。いくつかの実施形態では、QoS性能スコアは、リバッファが生じる尤度を測定し得る。例えば、接続誘導リバッファが使用され得る。接続誘導リバッファは、クライアントデバイス102とそれぞれのコンテンツ配信ネットワーク106との間のネットワーク条件を反映し得る。即ち、接続に起因して経験される接続誘導リバッファは、コンテンツのネットワーク配信に起因して接続誘導リバッファが生じ得るなど、ネットワーク接続に問題があることを示唆し得る。これは、クライアント102上のコンピュータ処理リソースの欠如に起因して生じ得るリバッファとは異なり得る。接続誘導リバッファは、受信され、バッファ中に記憶されたデータの量に基づいて測定され得る。コンテンツの再生をサポートするのに十分なデータが受信されない場合、クライアント102は、接続誘導リバッファが生じたと決定し得る。再生をサポートするのに十分なデータがバッファ中にあるときに別のリバッファが生じ得、クライアント102は、これを接続誘導リバッファとみなさない場合がある。他の実施形態では、ほとんどのリバッファはネットワーク問題によって引き起こされ得るので、リバッファ発生は単に測定され得る。一般に、より高い予測されたQoS性能スコアは、リバッファを経験する可能性がより低いことを示し得る。
【0021】
[0029]いくつかの実施形態では、CDN選択システム110は、メディアコンテンツのインスタンスを求める要求を受信すると、リアルタイムで選択を実行し得る。即ち、CDN選択システム110は、メディアコンテンツ(例えば、プログラム)のインスタンスを求める要求を受信し、コンテンツ配信ネットワーク#1~#Nのうちの1つを選択する。次いで、CDN選択システム110は、選択されたコンテンツ配信ネットワークの識別情報をクライアント102に送り得、クライアント102は、次いで、その選択されたコンテンツ配信ネットワーク106にメディアコンテンツのインスタンスを要求し得る。要求に対してコンテンツ配信ネットワーク106の選択を通信するための他の方法もまた認識され得る。例えば、CDN選択システム110は、選択されたコンテンツ配信ネットワーク106に要求を送り得、選択されたコンテンツ配信ネットワーク106は、次いで、クライアント102と通信し得る。選択プロセスは、図2から開始して以下でより詳細に説明される。
【0022】
[0030]選択されたコンテンツ配信ネットワーク106からクライアント102へのメディアコンテンツのインスタンスの配信時に、性能メトリックが測定され得る。性能メトリックの測定は、クライアント102が性能メトリックを測定するために使用される情報を送り得る、コンテンツ配信ネットワーク106が情報を送り得る、等などの、異なる方法を使用して実行され得る。例えば、接続誘導リバッファが使用されている場合、1つ以上のリバッファが生じるかどうかを決定することが測定され得るか、又は配信されたデータの量に基づいてリバッファの数の比が使用される。上述されたように、リバッファは、異なる要因によって引き起こされ得る。接続誘導リバッファが測定され得る。他の実施形態では、ほとんどのリバッファはネットワーク問題によって引き起こされ得るので、リバッファ発生は単に測定され得る。リバッファ発生を測定することが説明されたが、映像起動時間又はスループットなどの他の要因も測定され得る。性能メトリックからのフィードバックは、フィードバックが受信された後に、このクライアント102又は他のクライアント102からのメディアコンテンツを求める後続の要求に対してコンテンツ配信ネットワーク106を選択するために使用され得る。例えば、CDN選択システム110は、測定された性能メトリックを使用してエージェントのパラメータ値を更新し得、それは、図4から開始して以下でより詳細に説明される。
【0023】
[0031]以下は、CDN選択システム110をより詳細に説明し、その後にQoS予測プロセス及び割り振りプロセスを説明する。
【0024】
[0032]CDN選択システム
【0025】
[0033]図2は、いくつかの実施形態による、CDN選択システム110のより詳細な例を図示する。CDN選択システム110は、クライアント102からメディアコンテンツのインスタンスを求める要求を受信する。示されていないが、CDN選択システム110は、複数のクライアント102からメディアコンテンツのインスタンスを求める複数の要求を受信している場合がある。要求は、異なるメディアコンテンツ、又は同じメディアコンテンツを求めるものであり得る。例えば、第1の要求は、第1のプログラムを求めるものであり、第2の要求は、第2のプログラムを求めるものであり、第3の要求は、第1のプログラムを求めるものである。
【0026】
[0034]予測エンジン202は、要求に対する入力を受信し、コンテンツ配信ネットワークについてのQoS性能スコアを出力する。いくつかの実施形態では、特徴は、予測エンジン202に対する入力として選択され得る。要求に対する入力は、要求の特性に関連付けられた特徴についての値を含む。いくつかの実施形態では、表Iの以下の特徴が使用され得るが、他の特徴も認識され得る:
【0027】
【表1】
【0028】
[0035]表Iでは、特徴は、デバイスプラットフォーム、地域、都市、インターネットサービスプロバイダ、指定された商圏、ネットワークタイプ、地理的地域、時刻、等を含み得る。特徴はカテゴリ特徴であり得、カテゴリ値の数は変化し得る。例えば、都市という特徴については、アメリカ合衆国には20,000の都市があり得、カナダには5000の都市があり得る。特徴に関連付けられた値は、受信された要求に基づいて決定され得る。例えば、要求がクライアントデバイス102から受信され、クライアントデバイス102がサンタモニカにあるとき、GeoIPの値は、サンタモニカ又はサンタモニカに対する郵便番号に関連付けられ得る。同様に、時間が午後2時00分である場合、その時間が時刻の特徴に対して入力される。
【0029】
[0036]予測エンジン202は、コンテンツ配信ネットワークについての予測を生成し得る。例えば、要求にサービスすることが可能であり得る3つのコンテンツ配信ネットワークがあり得る。予測エンジン202は、次いで、各コンテンツ配信ネットワークについてのQoS性能スコアを生成し得る。例えば、QoS性能についての予測されるスコアは、[0.43、0.55、及び0.54]であり得る。スコアは、より高いスコアがより高くランク付けされるようにランク付けされ得る。いくつかの実施形態では、より高い予測されたQoS性能スコアは、それぞれのコンテンツ配信ネットワークが要求に対してより高いQoS性能を配信し得ることを示し得る。例えば、より高い値は、映像の再生中にリバッファを経験する尤度がより低いことを示し得る。他の実施形態では、スコアの値は、より低いスコアがリバッファを経験するより低い尤度を示し得るなど、他の尤度を示し得る。この場合、より低いスコアが、より高くランク付けされる。
【0030】
[0037]QoS性能値を出力した後、割り振りエンジン204は、要求にサービスするためにコンテンツ配信ネットワークを選択し得る。割り振りエンジン204は、コンテンツ配信ネットワークを選択するために異なる方法を使用し得る。いくつかの実施形態では、割り振りエンジン204は、最も高い予測されたQoS性能スコアを有するコンテンツ配信ネットワークを選択し得る。例えば、割り振りエンジンは、コンテンツ配信ネットワーク#2のQoS性能スコア0.55が3つの値[0.43、0.55、及び0.54]のうちで最も高いので、コンテンツ配信ネットワーク#2を選択する。しかしながら、重み付けランダム選択、関数、等などの他の方法が使用され得る。重み付けランダム選択は、スコアを使用してコンテンツ配信ネットワークに重み付けし得るが、重みを使用してコンテンツ配信ネットワークをランダムに選択し得る。しかしながら、リバッファなどのより低い性能を経験する尤度が最も低いコンテンツ配信ネットワークが選択されるので、最も高くランク付けされたコンテンツ配信ネットワークを選択することは、性能を改善し得る。重み付けランダム選択では、コンテンツ配信ネットワークは、ランダム変数に基づいて選択され得るが、より高く重み付けされたコンテンツ配信ネットワークは、選択されるより多くの機会を有し得る。コンテンツ配信ネットワークを選択した後、割り振りエンジン204は、選択されたコンテンツ配信ネットワークを出力する。
【0031】
[0038]CDN選択システム110は、クライアントデバイス102へのメディアコンテンツの配信からフィードバックを受信し得る。上記で議論されたように、異なるフィードバックメトリックが使用され得、図4において以下で議論される。
【0032】
[0039]ここから、予測プロセスがより詳細に説明される。
【0033】
[0040]予測プロセス
【0034】
[0041]予測エンジン202は、QoS性能についての値を生成するためにエージェントを使用する。エージェントは、要求に関連付けられた特徴についての値を受信し、コンテンツ配信ネットワークについてのQoS性能スコアを出力し得る。いくつかの実施形態では、各コンテンツ配信ネットワークは、エージェントに関連付けられ得る。即ち、コンテンツ配信ネットワークのための各エージェントは、それぞれのコンテンツ配信ネットワークの性能に基づいて異なるパラメータ値を含み得る。しかしながら、それぞれのコンテンツ配信ネットワークのためのエージェントは、異なる方法で実装され得る。例えば、単一のエージェントは、それぞれのコンテンツ配信ネットワークについてのQoS性能スコアを生成する異なる部分を含み得る。
【0035】
[0042]図3は、いくつかの実施形態による、QoS予測を実行するための方法についての簡略化されたフローチャート300を図示する。302において、CDN選択システム110は、要求を受信する。要求は、再生セッションにおいて再生される映像を求めるものであり得る。304において、CDN選択システム110は、要求に対する特徴についての値を受信する。上記で議論されたように、特徴についての値は、要求を送ったクライアントに基づく情報などの、要求に関連付けられた情報と、クライアントによって使用されているネットワークタイプと、再生セッションのコンテキストとに基づき得る。
【0036】
[0043]306において、CDN選択システム110は、特徴についての値を処理する。値の処理は、値に基づいてQoS性能スコアを生成するためにエージェントを使用することを含み得る。例えば、308において、エージェント#1は、特徴を使用してコンテンツ配信ネットワーク#1についての予測を生成する。同様に、310において、エージェント#2は、特徴を使用してコンテンツ配信ネットワーク#2についての予測を生成し、312において、エージェント#Nは、特徴を使用してコンテンツ配信ネットワーク#Nについての予測を生成する。即ち、同じ特徴値を使用して、N個のコンテンツ配信ネットワークの各々について予測が生成される。上記で議論されたように、コンテンツ配信ネットワークのための各それぞれのエージェントは、パラメータについての異なる値を有し得る。このことから、各それぞれのエージェントは、それぞれのパラメータ値及び同じ特徴値に基づいて、それぞれのコンテンツ配信ネットワークについての予測を生成し得る。これは、異なる値を有し得るか又はエージェントが同じパラメータ値を含む場合には同様の値を有し得る、予測をもたらし得る。エージェントによって生成される値の一例は、コンテンツ配信ネットワーク#1、#2、及び#Nについての[0.43、0.55、及び0.54]をそれぞれ含み得る。
【0037】
[0044]予測を実行した後、プロセスは、次いで、割り振りプロセスの実行に進む。
【0038】
[0045]割り振り
【0039】
[0046]図4は、いくつかの実施形態による、割り振り方法を使用してコンテンツ配信ネットワークを選択するための方法の簡略化されたフローチャート400を図示する。402において、CDN選択システム110は、コンテンツ配信ネットワークについてのQoS性能スコアを受信する。例えば、CDN選択システム110は、各コンテンツ配信ネットワークについてのQoS性能スコアを受信する。次いで、404で、CDN選択システム110は、予測に基づいてコンテンツ配信ネットワークを選択する。例えば、選択プロセスを使用して、CDN選択システム110は、そのそれぞれのQoS性能スコアに基づいてコンテンツ配信ネットワークのうちの1つを選択し得る。上記で議論されたように、3つのスコアが[0.43、0.55、及び0.54]である場合、CDN選択システム110は、0.55の最も高いQoS性能スコアを有するコンテンツ配信ネットワーク#2を選択し得る。
【0040】
[0047]406において、CDN選択システム110は、選択されたコンテンツ配信ネットワークとのセッションを開始し得る。例えば、コンテンツ配信ネットワーク#2が選択された場合、選択されたコンテンツ配信ネットワークを用いてクライアントデバイス102に情報が送られる。次いで、クライアントデバイス102は、次いで、コンテンツ配信ネットワーク#2を使用して、要求されたコンテンツを再生するための再生セッションを開始し得る。
【0041】
[0048]408において、CDN選択システム110は、セッション中に、選択されたコンテンツ配信ネットワークの性能メトリックについてのフィードバックを受信する。例えば、CDN選択システム110は、コンテンツ配信ネットワーク#2を使用してコンテンツの配信に関する情報を受信し得る。フィードバックは、リバッファが生じたかどうかなど、QoS性能として予測されているのと同じメトリックであり得る。しかしながら、生じたリバッファの数、再生開始時間、等などの他の情報も受信され得る。CDN選択システム110は、次いで、410のコンテンツ配信ネットワークのためのエージェントを更新するためにフィードバックを使用し得る。例えば、CDN選択システム110は、コンテンツ配信ネットワーク#2のエージェント#2についての1つ以上のパラメータ値を更新する。いくつかの実施形態では、リバッファが経験されない場合、パラメータは、次のセッションにおけるより高いQoS性能を予測するように更新され得るか、又はリバッファが経験される場合、パラメータは、より低いQoS性能を予測するように更新され得る。
【0042】
[0049]以下は、エージェントの更なる詳細を説明する。エージェントは、予測を生成するために異なる方法を使用し得ることに留意されたい。以下の方法が使用されるが、他の方法も認識され得る。
【0043】
[0050]エージェント
【0044】
[0051]いくつかの実施形態では、エージェントは、信頼上限を使用してQoS予測スコアを生成し得る。信頼上限は、分布のあるパーセンテージがそれ未満である点を定義し得る。ランダム変数について、値が10未満である可能性が95%である場合、95%の信頼水準における信頼上限は10である。図5は、いくつかの実施形態による、信頼上限を説明するグラフを図示する。グラフ500は、平均値と信頼上限との間の差を図示する。曲線502は、ランダム変数Aの分布を図示し、曲線504は、ランダム変数Bの分布を図示する。2つの曲線は、同じ平均値を共有するが、異なる分散を有する。平均値は、値のアベレージである。分散については、値の分布は、異なって変化し得る。一般的に見受けられるように、曲線502は、2の値と4の値との間にあるより多くのエリアを含み、曲線504は、1の値と5の値との間により広がった値を含む。
【0045】
[0052]506及び508において、曲線502及び曲線504の平均は、それぞれ、同じ値「3」である。510には、曲線502の信頼上限が示され、512には、曲線504の信頼上限が示されている。変数Bは、曲線504においてより大きな分散を有するので、より大きな信頼上限を含む。即ち、曲線504の下に分布する値は、曲線502の下の値よりも大きく変化する。
【0046】
[0053]従来の機械学習モデルは、ランダム変数の平均値を予測し得、その場合、機械学習モデルは、両方の曲線について同じ値を予測し得る。平均値がコンテンツ配信ネットワークについての不十分なQoS性能を表し、コンテンツ配信ネットワークについてのQoS履歴観察がほとんどない場合、コンテンツ配信ネットワークは、割り振りエンジンによってあまり頻繁に選択されない場合がある。しかしながら、コンテンツ配信ネットワークは、選択された場合、良好な性能を提供することが可能であり得る。対照的に、信頼上限は、平均値及び分散の両方を反映し得る。平均値は、変数の活用に関連付けられ得、分散は、変数の探索に関連付けられ得る。平均値及び分散の両方を利用することは、変数の期待及び潜在性の予測を形成し得る。図5では、504のその曲線を有する変数Bは、より高い信頼上限512を有し、それは、その曲線504が、その曲線502及び信頼上限510を有する変数Aよりも高い性能を配信するより高い潜在性を有することを反映し得る。
【0047】
[0054]図6は、いくつかの実施形態による、信頼上限を使用するコンテンツ配信ネットワークの選択を実行するための方法の簡略化されたフローチャート600を図示する。602において、CDN選択システム110は、コンテンツ配信ネットワーク106のためのそれぞれのエージェントについてのパラメータ値を初期化する。いくつかの実施形態では、エージェントは、行列A∈Rd×d及びベクトルb∈Rdであり得るパラメータを含み得、ここで、Rは、実数のセットであり、dは、埋め込み空間中の埋め込みの次元(dimension)を図示する。パラメータは、履歴観察に関する情報を記憶することを担い、ここで、行列Aは、特徴を記録し、ベクトルbは、特徴及び観察を異なる方法で記録する。信頼上限がその特徴において線形であるという仮定の下で、エージェントは、リッジ回帰などの異なる方法を使用して信頼上限を予測し得る。次いで、エージェントは、以下を使用して信頼上限を計算し得る:
【0048】
【数1】
【0049】
ここで、第1の成分は、期待(例えば、平均値)を予測することによる活用を表し、第2の成分は、探索(例えば、分散)を表し、αは、活用と探索との間のトレードオフを制御するハイパーパラメータである。また、「es」は、セッションについての特徴の埋め込みを表し、「s」は、セッションであり、「T」は、行列の転置を図示し、「-1」は、行列の逆を図示する。「c」は、コンテンツ配信ネットワークを示し、例えば、信頼上限境界値の各々は、コンテンツ配信ネットワークについて別々に計算される。一般に、観察の数が少ないとき、第2の成分の値は、より高くなり得る。しかしながら、観察の数が増加すると、第2の成分の値は減少し得る。パラメータについての値は、エージェントについての状態として記憶装置中に記憶され得、エージェントは、信頼上限スコアを生成するためにそれら値を使用する。
【0050】
[0055]604において、CDN選択システム110は、特徴から埋め込みを生成する。例えば、埋め込みは、埋め込み空間内の特徴についての値の表現であり得る。606において、CDN選択システム110は、各それぞれのエージェントについての埋め込み及び関連するパラメータ値を使用して、全てのコンテンツ配信ネットワークについての信頼上限についての値を生成する。例えば、CDN選択システム110は、記憶装置からパラメータについての値を取り出し、その値に埋め込みを適用する。CDN選択システム110は、信頼上限を決定するために乗算及び加算などの演算を実行し得る。608において、CDN選択システム110は、信頼上限値に基づいてコンテンツ配信ネットワークを選択する。
【0051】
[0056]コンテンツ配信ネットワークを選択した後、610において、CDN選択システム110は、フィードバックのためにどのコンテンツ配信ネットワークを監視するかを決定する。選択されたコンテンツ配信ネットワークについて、612において、CDN選択システム110は、コンテンツの配信を監視し、性能に基づいて報酬を生成する。いくつかの実施形態では、CDN選択システム110は、コンテンツの配信から受信されたフィードバックに基づいて報酬値を決定し得る。いくつかの実施形態では、セッション中にリバッファが生じた場合、報酬は、「0」などの第1の値として設定され得るか、又はリバッファが経験されない場合、報酬は、「1」などの第2の値として設定される。値「1」は、値「0」と比較して、このセッションが成功であったことを示す、より価値のあるより高い報酬であり得る。614において、CDN選択システム110は、報酬に基づいてエージェントを更新する。例えば、更新は、加算などの演算を伴い得る。例えば、CDN選択システム110は、2つの行列加算を実行して、エージェントのパラメータ値を更新し、新しい値を記憶装置中に記憶する。機械学習モデルについてのパラメータを再訓練することと比較して、更新は、モデルを再訓練する必要なくリアルタイムで加算が実行されることができるので、より高速且つ軽量である。いくつかの実施形態では、エージェントは、以下のように更新される:
【0052】
【数2】
【0053】
即ち、セッションの埋め込みを使用して、行列Aが更新される。行列Aは、特徴の情報を記録する全ての履歴セッションに関する
【0054】
【数3】
【0055】
の総和であり得る。また、ベクトルbは、報酬及び特定のセッションの埋め込みを使用して更新されている。ベクトルbは、正のセッションの特徴の情報を記録する正の履歴セッションに関するesの総和であり得る。例えば、報酬値に埋め込みを掛けたものがベクトルbiに加算されるので、正の報酬は、セッションについてのベクトルbiの値を増加させ得る。報酬の値「0」は、第2項を値「0」にするので、負の報酬は、ベクトルbiについての値を同じに保ち得る。
【0056】
[0057]以下は、信頼上限スコアの生成を示す例を説明する。
【0057】
[0058]例
【0058】
[0059]図7は、いくつかの実施形態による、エージェントを使用して計算された状態の例を図示する。CDN選択システム110は、コンテンツ配信ネットワーク#1、コンテンツ配信ネットワーク#2、及びコンテンツ配信ネットワーク#3と名付けられ得る3つのコンテンツ配信ネットワークの中から選択している。3つのエージェント、エージェント#1、エージェント#2、及びエージェント#3が初期化され得る。それぞれのエージェント#iのパラメータは、A#i及びB#iであり得る。各セッションに対して、地域及びDMAの2つの特徴が使用され得るが、他の特徴もまた認識され得る。ハイパーパラメータαは0.5に等しく、それは、活用と探索の2つの成分のバランスを等しく取り得る。活用又は探索のうちのいずれかの成分がより優先されるべきである場合、ハイパーパラメータの値は変更され得る。特徴の値は、エージェントのための埋め込みとして符号化される。信頼上限についての予測されたQoS値が出力されると、CDN選択システム110は、要求にサービスするためにコンテンツ配信ネットワークとして最大値を選択し得る。コンテンツをクライアント102に配信した後、再生セッションについてのフィードバックが受信され、CDN選択システム110は、選択されたコンテンツ配信ネットワークに関連付けられたそれぞれのエージェントについての記憶された値を更新する。
【0059】
[0060]以下は、複数のセッションにわたるエージェントのパラメータについての値の状態を説明する。表700-1では、パラメータの初期状態が示されている。上記で記載されたように、パラメータAは行列であり、パラメータbはベクトルである。これらのパラメータは、コンテンツ配信ネットワークが選択されたときの履歴観察を反映する情報を記憶する。コンテンツ配信ネットワーク#1についてのパラメータ値は702-1で示され、コンテンツ配信ネットワーク#2についてのパラメータ値は702-2で示され、コンテンツ配信ネットワーク#3についてのパラメータ値は702-3で示される。パラメータ値Aについての行列は、第1の行に値「1 0」を有し、第2の行に値「0 1」を有する2×2行列である。行列は、2×2の単位行列であり得、それは、示されるように、主対角線上に値「1」を含み、他の場所に値「ゼロ」を含む。ベクトルbについての値は0 0である。ベクトルは、2次元ベクトルであり得る。A及びbの初期状態は、両方とも空状態である。A及びbのサイズは、埋め込みのサイズに対応し、2つの代わりにより多くの特徴が使用される場合には、異なり得る。
【0060】
[0061]セッション#1では、埋め込みは[-1、0]であり得、それは、地域についての値-1、DMAについての値0を表す。エージェント#1、#2、#3は、[0.5、0.5、0.5]として信頼上限をそれぞれ計算する。この場合、CDN選択システム110は、各コンテンツ配信ネットワークについての信頼上限についての値が同じであっても、コンテンツ配信ネットワーク#1を選択し得る。他の例では、コンテンツ配信ネットワーク#2又は#3も選択され得る。いくつかの実施形態では、CDN選択システム110は、信頼上限についての最も高い値が同じであるときにタイブレーカを使用し得る。ランダム選択、他のコンテンツ配信ネットワークよりも少なく選択されたコンテンツ配信ネットワークを選択すること、コンテンツを配信するためのコストに基づいてコンテンツ配信ネットワークを選択すること、等など、タイブレークのための異なる方法が認識され得る。コンテンツ配信ネットワーク#1を選択した後、コンテンツ配信ネットワーク#1のための再生セッションが観察され、リバッファが生じる。この場合、報酬は、0に等しい。表700-2は、
【0061】
【数4】
【0062】
によって定義されるような、セッション#1後の値の更新された状態を示す。エージェント#1のための704において、第1の行における行列Aの値は、コンテンツ配信ネットワーク#1の選択を反映するために、[1 0]から[2 0]に変更される。リバッファがあったので、ベクトルbについての値は変更されない。他のエージェント#2及び#3についての値は、他のエージェントのための関連するコンテンツ配信ネットワークが選択されなかったので変更されない。しかしながら、他の例では、これらのエージェントについての値は、エージェント#1についてのフィードバックに基づいて調整され得る。例えば、エージェント#1及び#2についての値は、QoS性能のより正の予測がコンテンツ配信ネットワーク#1で生じるリバッファに起因して生成されるべきであることを反映するように調整され得る。
【0063】
[0062]セッション#2では、埋め込みは[1、0.5]である。エージェント#1、#2、#3は、信頼上限を[0.43、0.55、0.55]として計算する。CDN選択システム110は、コンテンツ配信ネットワーク#2を選択する。コンテンツ配信ネットワーク#2及びコンテンツ配信ネットワーク#3は、同じ予測された信頼上限を有するが、コンテンツ配信ネットワーク#2が選択される。コンテンツ配信ネットワーク#2を使用したコンテンツの配信中、セッション中にリバッファはない。それ故に、報酬値は1に等しい。表700-3では、706において、行列A#2が、示された値に更新され、708において、ベクトルb#2が、示された値に更新される。例えば、行列A#2は、コンテンツ配信ネットワーク#2が選択されたことを反映するために、第1の行が[1 0]から[2.01 0.35]に更新され、第2の行が[0 1]から[0.35 3.5]に更新される。ベクトルb#2は、正の報酬の効果を示すために、[0 0]から[1 0.5]に更新される。
【0064】
[0063]セッション#3では、埋め込みは[-0.1、1.5]であり、信頼上限は[0.750、1.0、0.751]である。CDN選択システム110は、コンテンツ配信ネットワーク#2が1.0の最も高い信頼上限スコアを有するので、コンテンツ配信ネットワーク#2を選択する。コンテンツ配信ネットワーク#2のための再生セッションの観察後、リバッファがあり、報酬は0に等しい。表700-4では、710において、行列A#2は、コンテンツ配信ネットワーク#2の選択を反映するように示された値に更新され、ベクトルb#2は、報酬が0であったので同じままである。例えば、行列A#2は、[1.01 0.35]から[2 0.5]に更新された第1の行と、[0.35 3.5]から[0.5 0.125]に更新された第2の行とを有する。
【0065】
[0064]上記の例では、ハイパーパラメータアルファが0.5に設定されたとき、セッション#3が生じると、信頼上限は2つの部分の総和である:
UCB#1=0+0.5*1.501
UCB#2=0.28+0.5*1.4
UCB#3=0+0.5*1.503
【0066】
[0065]第1の成分は活用を反映し、第2の成分は分散を反映する。エージェント#2は、2倍の数の観察及び更新を有し、それは、1.4の最低分散につながる(例えば、第2の成分は0.5のハイパーパラメータ*1.4の分散である)。エージェント#3は、選択されなかったため、観察を受けず、これは、値を探索するためのより大きい潜在的能力を示唆する。これは、1.503でのグループの最大分散につながる。エージェント#1は、リバッファを伴う1つの観察を有し、エージェント#2は、リバッファを伴う1つの観察と、リバッファを伴わない1つの他の観察とを有する。選択された履歴観察から、エージェント#2は、エージェント#1についての期待値0と比較して、より大きな期待値0.28を有する。平均が分散なしに単に使用された場合、コンテンツ配信ネットワーク#1によって経験されるリバッファは、負の観察が、不十分なQoS性能スコアが予測されることを引き起こし得るので、後続の要求に対してそれが選択される機会を低減し得る。しかしながら、コンテンツ配信ネットワーク#1が(例えば、リバッファを伴わない)許容可能な性能を提供する潜在性が依然としてあり得る。1.501の分散は、コンテンツ配信ネットワーク#1の潜在的性能が依然として探索されることを可能にし得る。
【0067】
[0066]結論
【0068】
[0067]いくつかの実施形態は、予測されたQoS性能に基づいてコンテンツ配信ネットワークを選択する。これは、リバッファなどの悪いネットワーク条件を経験する可能性が最も小さいと予測されるコンテンツ配信ネットワークが要求に割り当てられ得るので、より良好なネットワーク接続につながり得る。予測はまた、選択されたコンテンツ配信ネットワークのセッションが完了し、フィードバックが受信された後に、フィードバックがリアルタイムで組み込まれることを可能にすることによって、改善されたプロセスを使用して計算される。更新は、機械学習モデルと比較してより高速に実行され得る。
【0069】
[0068]以前の解決策と比較して、本解決策は、活用及び探索を使用して、異なるコンテンツ配信ネットワーク間の性能差を考慮し得る。これは、全体的なサービス品質性能及びユーザ体験を改善し得る。ハイパーパラメータαを調整することによって、探索と活用とのバランスを取るトレードオフも調整され得る。潜在的能力を探索するパラメータを使用して、それぞれのコンテンツ配信ネットワークについての観察がほとんどないとき、又はコンテンツ配信ネットワークについての少量の悪い観察があり得るとき、コンテンツ配信ネットワークの潜在性は無視されない場合がある。
【0070】
[0069]システム
【0071】
[0070]本明細書で開示されるような特徴及び態様は、図8に示されるように、1つ以上の通信ネットワークを介して複数のクライアントデバイスと通信している映像ストリーミングシステム800と共に実装され得る。映像ストリーミングシステム800の態様は、単に、本開示に従って準備されたコンテンツの配布及び配信を可能にするためのアプリケーションの例を提供するために説明される。本技術は、ストリーミング映像アプリケーションに限定されず、他のアプリケーション及び配信機構に適合され得ることが認識されるべきである。
【0072】
[0071]一実施形態では、メディアプログラムプロバイダは、メディアプログラムのライブラリを含み得る。例えば、メディアプログラムは、サイト(例えば、ウェブサイト)、アプリケーション、又はブラウザを通じて集約及び提供され得る。ユーザは、メディアプログラムプロバイダのサイト又はアプリケーションにアクセスし、メディアプログラムを要求することができる。ユーザは、メディアプログラムプロバイダによって提供されるメディアプログラムのみを要求することに限定され得る。
【0073】
[0072]システム800では、映像データは、映像コンテンツサーバ802への入力として使用するために、1つ以上のソースから、例えば、映像ソース810から得られ得る。入力映像データは、任意の適切なデジタルフォーマット、例えば、MPEG(Moving Pictures Experts Group)-1、MPEG-2、MPEG-4、VC-1、H.264/AVC(Advanced Video Coding)、HEVC(High Efficiency Video Coding)、又は他のフォーマットの未加工又は編集されたフレームベースの映像データを備え得る。代替では、映像は、非デジタルフォーマットで提供され、スキャナ又はトランスコーダを使用してデジタルフォーマットに変換され得る。入力映像データは、様々なタイプの映像クリップ又はプログラム、例えば、テレビエピソード、映画、及び消費者が関心を持つ主要コンテンツとして制作された他のコンテンツを備え得る。映像データはまた、オーディオを含み得るか、又はオーディオのみが使用され得る。
【0074】
[0073]映像ストリーミングシステム800は、1つ以上のコンピュータにわたって分散された1つ以上のコンピュータサーバ又はモジュール802、804、及び807を含み得る。各サーバ802、804、807は、1つ以上のデータストア809、例えば、データベース、インデックス、ファイル、又は他のデータ構造を含み得るか、又はそれらに動作可能に結合され得る。映像コンテンツサーバ802は、様々な映像セグメントのデータストア(図示せず)にアクセスし得る。映像コンテンツサーバ802は、クライアントデバイスと通信するユーザインタフェースコントローラによって指示されるように映像セグメントを供給し得る。本明細書で使用される場合、映像セグメントは、テレビエピソード、映画、記録されたライブ公演、又は他の映像コンテンツを視聴するためにストリーミング映像セッションにおいて使用され得るような、フレームベースの映像データの明確な部分を指す。
【0075】
[0074]いくつかの実施形態では、映像広告サーバ804は、特定の広告主又はメッセージのための広告として構成された比較的短い映像(例えば、10秒、30秒、又は60秒の映像広告)のデータストアにアクセスし得る。広告は、ある種の支払いと引き換えに広告主のために提供され得るか、又はシステム800のためのプロモーションメッセージ、公共サービスメッセージ、又は何らかの他の情報を備え得る。映像広告サーバ804は、ユーザインタフェースコントローラ(図示せず)によって指示されるように映像広告セグメントを供給し得る。
【0076】
[0075]映像ストリーミングシステム800はまた、CDN選択システム110を含み得る。
【0077】
[0076]映像ストリーミングシステム800は、映像コンテンツ及び映像広告をストリーミング映像セグメントに統合する統合及びストリーミング構成要素807を更に含み得る。例えば、ストリーミング構成要素807は、コンテンツサーバ又はストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の適切なアルゴリズム又はプロセスに基づいて、ストリーミング映像中の広告の選択又は構成を決定し得る。映像ストリーミングシステム800は、図8に図示されていない他のモジュール又はユニット、例えば、管理サーバ、商取引サーバ、ネットワークインフラストラクチャ、広告選択エンジンなどを含み得る。
【0078】
[0077]映像ストリーミングシステム800は、データ通信ネットワーク812に接続し得る。データ通信ネットワーク812は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、例えば、インターネット、電話ネットワーク、ワイヤレスネットワーク814(例えば、ワイヤレスセルラ電気通信ネットワーク(WCS))、又はこれら若しくは同様のネットワークの何らかの組み合わせを備え得る。
【0079】
[0078]1つ以上のクライアントデバイス820は、データ通信ネットワーク812、ワイヤレスネットワーク814、又は別のネットワークを介して映像ストリーミングシステム800と通信している場合がある。そのようなクライアントデバイスは、LAN用のルータ818を介して、ワイヤレスネットワーク814用の基地局817を介して、又は何らかの他の接続を介して、例えば、1つ以上のラップトップコンピュータ820-1、デスクトップコンピュータ820-2、「スマート」携帯電話820-3、タブレットデバイス820-4、ネットワーク対応テレビ820-5、又はそれらの組み合わせを含み得る。動作中、そのようなクライアントデバイス820は、ユーザ入力デバイスから受信されたユーザ入力又は他の入力に応答して、システム800にデータ又は命令を送受信し得る。それに応答して、システム800は、メディアプログラムの選択に応答してデータストア809からの映像セグメント及びメタデータをクライアントデバイス820に供給し得る。クライアントデバイス820は、ディスプレイスクリーン、プロジェクタ、又は他の映像出力デバイスを使用してメディアプレーヤ中のストリーミング映像セグメントから映像コンテンツを出力し、映像コンテンツと対話するためのユーザ入力を受信し得る。
【0080】
[0079]オーディオ映像データの配布は、様々な方法、例えばストリーミングを使用して、コンピュータネットワーク、電気通信ネットワーク、及びそのようなネットワークの組み合わせを通して、ストリーミング構成要素807から遠隔クライアントデバイスに実施され得る。ストリーミングでは、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤ構成要素にオーディオ映像データを連続的にストリーミングし、メディアプレーヤ構成要素は、サーバからストリーミングデータを受信すると同時にオーディオ映像データを再生し得る。ストリーミングが議論されたが、他の配信方法が使用され得る。メディアプレーヤ構成要素は、コンテンツプロバイダからデータの最初の部分を受信した直後に映像データの再生を開始し得る。従来のストリーミング技法は、1組のエンドユーザにデータのストリームを配信する単一のプロバイダを使用する。多数の視聴者に単一のストリームを配信するために、高い帯域幅及び処理能力が必要とされ得、エンドユーザの数が増加するにつれて、プロバイダの必要とされる帯域幅が増大し得る。
【0081】
[0080]ストリーミングメディアは、オンデマンド又はライブで配信されることができる。ストリーミングは、ファイル内の任意の一点における即時再生を可能にする。エンドユーザは、再生を開始するためにメディアファイルをスキップし得るか、又はメディアファイル中の任意の一点に再生を変更し得る。故に、エンドユーザは、ファイルが徐々にダウンロードされるのを待つ必要がない。典型的には、ストリーミングメディアは、高帯域幅能力を有する少数の専用サーバから、映像ファイルを求める要求を受け入れ、それらのファイルのフォーマット、帯域幅、及び構造についての情報と共に、映像を再生するのに必要なデータ量だけを、それを再生するのに必要とされる速度で配信する専用デバイスを介して配信される。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの伝送帯域幅及び能力を考慮し得る。ストリーミング構成要素807は、制御メッセージ及びデータメッセージを使用してクライアントデバイス820と通信して、映像が再生されるにつれて変化するネットワーク状態に適応し得る。これらの制御メッセージは、早送り、早戻し、一時停止、又はクライアントにおけるファイルの特定の部分へのシークなどの制御機能を有効にするためのコマンドを含むことができる。
【0082】
[0081]ストリーミング構成要素807は、必要に応じて及び必要とされる速度でのみ映像データを送信するので、供給されるストリームの数に対する精密な制御が維持されることができる。視聴者は、より低いデータレートの伝送媒体を通して高いデータレートの映像を視聴することができないであろう。しかしながら、ストリーミングメディアサーバは、(1)ユーザに映像ファイルへのランダムアクセスを提供し、(2)誰が何の映像プログラムを視聴しているか、及びどれだけ長くそれらが見られているかを監視することを可能にし、(3)視聴体験をサポートするのに必要とされるデータ量だけが送信されるので、伝送帯域幅をより効率的に使用し、(4)映像ファイルは、視聴者のコンピュータ中に記憶されず、メディアプレーヤによって破棄され、このことから、コンテンツに対するより多くの制御を可能にする。
【0083】
[0082]ストリーミング構成要素807は、HTTP(HyperText Transfer Protocol)及びRTMP(Real Time Messaging Protocol)などのTCPベースのプロトコルを使用し得る。ストリーミング構成要素807はまた、ライブウェブキャストを配信することができ、1つよりも多くのクライアントが単一のストリームに同調することを可能にし、このことから帯域幅を節約する、マルチキャストを行うことができる。ストリーミングメディアプレーヤは、メディアプログラム中の任意の一点へのランダムアクセスを提供するために、映像全体をバッファリングすることに依拠しない場合がある。代わりに、これは、メディアプレーヤからストリーミングメディアサーバに送信される制御メッセージを使用して達成される。ストリーミングに使用される他のプロトコルは、HLS(HTTP live streaming)又はDASH(Dynamic Adaptive Streaming over HTTP)である。HLS及びDASHプロトコルは、典型的には1つ以上のコンテンツ配信ネットワーク(CDN)から様々なビットレートで利用可能にされる小セグメントのプレイリストを介してHTTP経由で映像を配信する。これは、メディアプレーヤがビットレートとコンテンツソースとの両方をセグメント毎に切り替えることを可能にする。切り替えは、映像の再生中に生じ得るネットワーク帯域幅分散及びインフラストラクチャの故障を補償するのに役立つ。
【0084】
[0083]ストリーミングによる映像コンテンツの配信は、様々なモデルの下で達成され得る。1つのモデルでは、ユーザは、映像プログラムの視聴に対して支払い、例えば、メディアプログラムのライブラリ若しくは制限されたメディアプログラムの一部分へのアクセスに対する料金を支払うか、又はペイパービューサービスを使用する。テレビ放送によってその開始直後に広く採用されている別のモデルでは、スポンサーは、プログラムの提示中又は提示に隣接して広告を提示する権利と引き換えに、メディアプログラムの提示に対して支払う。いくつかのモデルでは、広告は、映像プログラム中に所定の時間に挿入され、その時間は、「広告スロット」又は「広告ブレイク」と呼ばれ得る。ストリーミング映像を用いて、メディアプレーヤは、クライアントデバイスが、指定された広告スロット中に所定の広告も再生することなく映像を再生することができないように構成され得る。
【0085】
[0084]図9を参照すると、映像コンテンツ及び広告を視聴するための装置900の線図が例示されている。選択された実施形態では、装置900は、プロセッサメモリ904に動作可能に結合されたプロセッサ(CPU)902を含み得、プロセッサメモリ904は、プロセッサ902による実行のためにバイナリコーディングされた機能モジュールを保持する。そのような機能モジュールは、入力/出力及びメモリアクセスなどのシステム機能を処理するためのオペレーティングシステム906と、ウェブページを表示するためのブラウザ908と、映像を再生するためのメディアプレーヤ910とを含み得る。メモリ904は、図9に示されていない追加のモジュール、例えば、本明細書の他の場所で説明される他の動作を実行するためのモジュールを保持し得る。
【0086】
[0085]バス914又は他の通信構成要素は、装置900内の情報の通信をサポートし得る。プロセッサ902は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書で開示される特徴及び態様に従って特定のタスクを実行するように構成された又は動作可能な特化又は専用マイクロプロセッサであり得る。プロセッサメモリ904(例えば、ランダムアクセスメモリ(RAM)又は他の動的記憶デバイス)は、バス914に接続され得るか、又はプロセッサ902に直接接続され得、プロセッサ902によって実行される情報及び命令を記憶し得る。メモリ904はまた、そのような命令の実行中に一時変数又は他の中間情報を記憶し得る。
【0087】
[0086]記憶デバイス924中のコンピュータ可読媒体は、バス914に接続され、プロセッサ902のための静的情報及び命令を記憶し得、例えば、記憶デバイス(CRM)924は、装置900の電源がオフにされたときにシステム906、ブラウザ908、及びメディアプレーヤ910を操作するためのモジュールを記憶し得、装置900の電源がオンにされたときにそこからモジュールがプロセッサメモリ904中にロードされ得る。記憶デバイス924は、情報、命令、又はそれらの何らかの組み合わせ、例えば、プロセッサ902によって実行されると、装置900を、本明細書で説明されるような方法の1つ以上の動作を実行するように構成又は動作可能にさせる命令を保持する非一時的コンピュータ可読記憶媒体を含み得る。
【0088】
[0087]ネットワーク通信(comm.)インタフェース916もまた、バス914に接続され得る。ネットワーク通信インタフェース916は、任意選択で、ルータ/モデム926及びワイヤード又はワイヤレス接続925を介して、装置900と1つ以上の外部デバイス、例えばストリーミングシステム800との間の双方向データ通信を提供又はサポートし得る。代替では又は加えて、装置900は、アンテナ929に接続されたトランシーバ918を含み得、それを通して、装置900は、ワイヤレス通信システムのための基地局と、又はルータ/モデム926とワイヤレスに通信し得る。代替では、装置900は、ローカルエリアネットワーク、仮想プライベートネットワーク、又は他のネットワークを介して映像ストリーミングシステム800と通信し得る。別の代替では、装置900は、システム800のモジュール又は構成要素として組み込まれ、バス914を介して又は何らかの他のモダリティによって他の構成要素と通信し得る。
【0089】
[0088]装置900は、(例えば、バス914及びグラフィックス処理ユニット920を介して)ディスプレイユニット928に接続され得る。ディスプレイ928は、装置900のオペレータに情報を表示するための任意の適切な構成を含み得る。例えば、ディスプレイ928は、液晶ディスプレイ(LCD)、タッチスクリーンLCD(例えば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、又は視覚表示において装置900のユーザに情報を提示するための他のディスプレイデバイスを含み得るか又は利用し得る。
【0090】
[0089]1つ以上の入力デバイス930(例えば、英数字キーボード、マイクロフォン、キーパッド、リモコン、ゲームコントローラ、カメラ、又はカメラアレイ)は、装置900に情報及びコマンドを通信するために、ユーザ入力ポート922を介してバス914に接続され得る。選択された実施形態では、入力デバイス930は、カーソルの位置決めに対する制御を提供又はサポートし得る。ポインティングデバイスとも呼ばれるそのようなカーソル制御デバイスは、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、又は物理的移動を受信又は追跡し、その移動をカーソル移動を示す電気信号に変換するための他のデバイスとして構成され得る。カーソル制御デバイスは、例えばタッチセンシティブスクリーンを使用して、ディスプレイユニット928中に組み込まれ得る。カーソル制御デバイスは、プロセッサ902に方向情報及びコマンド選択を通信し、ディスプレイ928上のカーソル移動を制御し得る。カーソル制御デバイスは、2つ以上の自由度を有し得、例えば、デバイスが平面又は3次元空間中のカーソル位置を指定することを可能にし得る。
【0091】
[0090]いくつかの実施形態は、命令実行システム、装置、システム、若しくは機械によって、又はそれらに関連して使用するための非一時的コンピュータ可読記憶媒体において実装され得る。コンピュータ可読記憶媒体は、いくつかの実施形態によって説明される方法を実行するようにコンピュータシステムを制御するための命令を包含する。コンピュータシステムは、1つ以上のコンピューティングデバイスを含み得る。命令は、1つ以上のコンピュータプロセッサによって実行されると、いくつかの実施形態において説明されるものを実行するように構成され得るか、又は動作可能であり得る。
【0092】
[0091]本明細書の説明において、及び以下の特許請求の範囲全体を通して使用される場合、「a」、「an」、及び「the」は、文脈が明確に別段の指示をしない限り、複数の言及を含む。また、本明細書の説明において、及び以下の特許請求の範囲全体を通して使用される場合、「in」の意味は、文脈が明確に別段の指示をしない限り、「in」及び「on」を含む。
【0093】
[0092]上記の説明は、いくつかの実施形態の態様がどのように実装され得るかの例と共に、様々な実施形態を例示する。上記の例及び実施形態は、唯一の実施形態であるとみなされるべきではなく、以下の特許請求の範囲によって定義されるようないくつかの実施形態の柔軟性及び利点を例示するために提示された。上記の開示及び以下の特許請求の範囲に基づいて、他の配置、実施形態、実装形態、及び同等物が、特許請求の範囲によって定義されるような本発明の範囲から逸脱することなく用いられ得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【外国語明細書】