(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022018077
(43)【公開日】2022-01-26
(54)【発明の名称】映像品質選択装置、映像品質選択方法及びプログラム
(51)【国際特許分類】
H04N 21/266 20110101AFI20220119BHJP
H04N 21/254 20110101ALI20220119BHJP
【FI】
H04N21/266
H04N21/254
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021084646
(22)【出願日】2021-05-19
(31)【優先権主張番号】P 2020120365
(32)【優先日】2020-07-14
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】木村 拓人
(72)【発明者】
【氏名】山岸 和久
(72)【発明者】
【氏名】木村 達明
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164SC01P
5C164SC11S
5C164SC31P
5C164YA10
(57)【要約】
【課題】適切な映像品質を選択するための試行回数を削減すること。
【解決手段】一実施形態に係る映像品質選択装置は、映像配信サービスにおける品質目標値を選択する映像品質選択装置であって、過去の品質情報とエンゲージメント指標情報と配信コスト情報とを用いて、前記映像配信サービスのユーザ、前記映像配信サービスで配信される映像コンテンツ、又は前記ユーザと前記映像コンテンツとの組のいずれかを対象として1以上のクラスタにクラスタリングするクラスタリング手段と、前記クラスタ毎に、前記クラスタに対する品質目標値を計算する計算手段と、を有することを特徴とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
映像配信サービスにおける品質目標値を選択する映像品質選択装置であって、
過去の品質情報とエンゲージメント指標情報と配信コスト情報とを用いて、前記映像配信サービスのユーザ、前記映像配信サービスで配信される映像コンテンツ、又は前記ユーザと前記映像コンテンツとの組のいずれかを対象として1以上のクラスタにクラスタリングするクラスタリング手段と、
前記クラスタ毎に、前記クラスタに対する品質目標値を計算する計算手段と、
を有することを特徴とする映像品質選択装置。
【請求項2】
前記ユーザが利用する端末からの要求に応じて、前記端末のユーザ、前記端末で視聴される映像コンテンツ又は前記ユーザと前記映像コンテンツの組に対応するクラスタの品質目標値を前記端末に応答する品質目標値応答手段を有することを特徴とする請求項1に記載の映像品質選択装置。
【請求項3】
前記計算手段は、
前記エンゲージメント指標情報と前記配信コスト情報から定義される効用関数の値が最大となる品質目標値を計算する、ことを特徴とする請求項1又は2に記載の映像品質選択装置。
【請求項4】
前記計算手段は、
ベイズ最適化により前記効用関数の値が最大となる品質目標値を計算する、ことを特徴とする請求項3に記載の映像品質選択装置。
【請求項5】
前記クラスタリング手段は、
前記クラスタリングに用いる距離として分布間に定義された距離を用いて、前記1以上のクラスタにクラスタリングする、ことを特徴とする請求項1乃至4の何れか一項に記載の映像品質選択装置。
【請求項6】
前記クラスタリング手段は、
前記ユーザの特徴間に定義される関数を用いた条件に基づいて、前記条件を満たさない場合は前記ユーザ間に定義されるエッジを削除し、
互いに連結なユーザ同士を同一のクラスタとすることで、前記1以上のクラスタにクラスタリングする、ことを特徴とする請求項1乃至4の何れか一項に記載の映像品質選択装置。
【請求項7】
前記エンゲージメント指標情報は、前記映像コンテンツの視聴時間を、前記映像コンテンツの長さで除した値で定義される情報であり、
前記配信コスト情報は、前記映像コンテンツの視聴した際の通信データ量を、最大通信データ量で除した値で定義される情報である、ことを特徴とする請求項1乃至6の何れか一項に記載の映像品質選択装置。
【請求項8】
映像配信サービスにおける品質目標値を選択する映像品質選択装置が、
過去の品質情報とエンゲージメント指標情報と配信コスト情報とを用いて、前記映像配信サービスのユーザ、前記映像配信サービスで配信される映像コンテンツ、又は前記ユーザと前記映像コンテンツとの組のいずれかを対象として1以上のクラスタにクラスタリングするクラスタリング手順と、
前記クラスタ毎に、前記クラスタに対する品質目標値を計算する計算手順と、
を実行することを特徴とする映像品質選択方法。
【請求項9】
コンピュータを、請求項1乃至7の何れか一項に記載の映像品質選択装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像品質選択装置、映像品質選択方法及びプログラムに関する。
【背景技術】
【0002】
現在、インターネットを通じた映像配信(以下、映像のことを「動画」ともいう。)が広く普及している。映像配信事業者にとっては、視聴時間等で表されるエンゲージメント指標をなるべく伸ばしつつ、同時に通信量等で表される配信コストをなるべく低減することが重要となる。視聴時間は事業の継続性に直結する指標であり、通信量はCDN(Content Distribution Network)に支払う金額に大きく影響するためである。視聴時間は動画の体感品質(QoE(Quality of Experience))に影響を受けることが知られており(例えば、非特許文献1)、視聴時間を伸ばすためにはなるべく動画の体感品質を高くする必要がある。一方で、体感品質を高くするために映像の品質を高くし過ぎると通信量が増大してしまう。したがって、視聴時間と通信量との間にはトレードオフの関係が存在する。
【0003】
また、同じ品質であって、ユーザやコンテンツによって視聴時間が異なると考えられる。例えば、動きの激しいスポーツのようなコンテンツの場合には高品質でないとユーザはすぐに視聴をやめてしまうと考えられるが、音楽が流れているだけのコンテンツであれば品質が低くともユーザは視聴をやめにくいことが想定される。
【0004】
映像配信において品質を制御するためには、ABR(Adaptive Bitrate)という仕組みが一般に使われる。ABRは配信サーバと再生クライアントで構成される。ABRでは、動画データは予め数秒おきのチャンクと呼ばれるデータに分割され、各チャンクが複数のビットレートで符号化されて配信サーバに保存される。以降では、例えば、ネットワークの通信状況や再生バッファ長等の条件に応じて符号化された動画データのことを、「リプレゼンテーション」と呼ぶこととする。再生クライアントは、ネットワークの通信状況や再生バッファ長等の自身の状況を踏まえて、適切なリプレゼンテーションをチャンク毎に選択し、選択した動画データを配信サーバに要求する、という動作を繰り返す。このとき、リプレゼンテーションを選択するアルゴリズムが最終的な体感品質及び通信量に大きく影響する。したがって、エンゲージメント指標及び配信コストを適切に制御するためには、ユーザやコンテンツ等の特性に応じて適切なリプレゼンテーションを選択することが重要である。
【0005】
上記の選択を実現するためのリプレゼンテーション選択手法として、ベイズ最適化を用いた手法が提案されている(例えば、非特許文献2)。この手法は、或る品質を選択した結果、ユーザから得られるフィードバック(視聴時間、通信量)を利用することで、エンゲージメント指標と配信コストのバランスがとれた品質を効率的に探索する手法である。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】"Study on Viewing Time with Regards to Quality Factors in Adaptive Bitrate Video Streaming," 2018, IEEE 20th International Workshop on Multimedia Signal Processing (MMSP), Vancouver, BC, Canada, 2018, pp.1-6.
【非特許文献2】木村 拓人,木村 達明,松本 存史,岡本 淳,"ベイズ最適化による動画エンゲージメント制御," 信学技報, vol.118, no.503, CQ-2018-100, Mar. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、エンゲージメント指標と配信コストのバランスをとったリプレゼンテーション選択手法は既に提案されている。しかしながら、既存の手法は、選択される品質が収束するまでに不適切な品質を選択してしまう回数が多かった。
【0008】
例えば、或る映像配信サービスにおいて新規ユーザが視聴を開始したという状況に非特許文献2に記載されているリプレゼンテーション選択手法を適用すると、過去の視聴ログが存在しないため、様々な品質を試し、徐々にエンゲージメント指標と配信コストのバランスがとれた品質に収束させていくという動作になる。しかしながら、高い品質を求めるユーザに対して低品質の映像を提供すると、体感品質が低下するため、サービスの利用をやめてしまう可能性がある。一方で、高い品質を求めないユーザに対して過剰な品質の映像を提供すると、一視聴あたりの通信量が増加してしまう。一視聴あたりの通信量が増加すると、モバイル環境からアクセスするユーザにとっては、通信量がデータキャップ(月あたりに通信可能なデータ量の上限)に達してしまう可能性が高くなり、月あたりのサービス利用回数が減少する可能性がある。
【0009】
これに対して、不適切な品質が選択される回数を削減する方法として、例えば、或る程度視聴ログを蓄積してからベイズ最適化を適用する方法、平均的なユーザの特性を初期特性として徐々にユーザの嗜好に適した品質に収束させていく方法等が考えられるが、これらはいずれもユーザの特性を捉えるまでに多数の視聴回数が必要になるという課題がある。
【0010】
本発明の一実施形態は、上記の点に鑑みてなされたもので、適切な映像品質を選択するための試行回数を削減することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、一実施形態に係る映像品質選択装置は、映像配信サービスにおける品質目標値を選択する映像品質選択装置であって、過去の品質情報とエンゲージメント指標情報と配信コスト情報とを用いて、前記映像配信サービスのユーザ、前記映像配信サービスで配信される映像コンテンツ、又は前記ユーザと前記映像コンテンツとの組のいずれかを対象として1以上のクラスタにクラスタリングするクラスタリング手段と、前記クラスタ毎に、前記クラスタに対する品質目標値を計算する計算手段と、を有することを特徴とする。
【発明の効果】
【0012】
適切な映像品質を選択するための試行回数を削減することができる。
【図面の簡単な説明】
【0013】
【
図1】一実施形態に係る映像品質選択装置が含まれる映像配信システムの全体構成の一例を示す図である。
【
図2】クラスタDBに格納されているデータの一例を示す図である。
【
図3】QoE目標値DBに格納されているデータの一例を示す図である。
【
図4】視聴情報DBに格納されているデータの一例を示す図である。
【
図5】クラスタリングの概略の一例を説明するための図である。
【
図6】一実施形態に係るクラスタリング処理の流れの一例を示すフローチャートである。
【
図7】一実施形態に係る映像品質選択装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態として第一の実施形態と第二の実施形態を説明する。これらの各実施形態においては、従来手法と比較して少ない試行回数で適切な映像品質(つまり、エンゲージメント指標と配信コストのバランスがとれた映像品質)を選択することが可能な映像品質選択装置10が含まれる映像配信システム1について説明する。
【0015】
[第一の実施形態]
まず、第一の実施形態について説明する。本実施形態では、参考文献1「Takuto Kimura, Tatsuaki Kimura, Arifumi Matsumoto, Jun Okamoto. "BANQUET: Balancing Quality of Experience and Traffic Volume in Adaptive Video Streaming," to appear in International Conference on Network and Service Management (CNSM), Halifax, Oct. 2019.」に記載されているリプレゼンテーション選択手法に与えるQoE目標値を自動的に最適化することで、エンゲージメント指標と配信コストからなる効用関数の最大化を行う。上記の非特許文献2では、この最適化をユーザ単位又はコンテンツ単位に行っていたが、本実施形態では、似た特性を持つユーザ・コンテンツ間では同様の視聴時間特性が得られるという点に着目する。より具体的には、ユーザ・コンテンツをクラスタリングし、そのクラスタ単位で制御を行うことで、少ないデータ量でも適切な映像品質の選択を可能にする(つまり、少ない試行回数でも適切な映像品質の選択を可能にする。)。ここでのクラスタとは、似た特性を持つユーザの集合、コンテンツの集合、ユーザとコンテンツの組の集合のいずれかであると定義する。
【0016】
以降では、一例として、ユーザ単位でクラスタリングを行う場合について説明する。ただし、これに限られず、本実施形態は、コンテンツ単位又はユーザとコンテンツの組単位にクラスタリングする場合についても同様に適用することが可能である。
【0017】
上記の参考文献1に記載されているリプレゼンテーション選択手法は、各ユーザに対して、与えられたQoE目標値を満たしながら、配信コスト(以下、単に「コスト」ともいう。)を最小化するリプレゼンテーション選択手法である。また、効用関数は、エンゲージメント指標の増加に対して広義単調増加し、コストの増加に対して広義単調減少する関数であれば、任意の関数を用いることができる。
【0018】
具体的な効用関数の例としては、Utility=e-w×cやUtility=e/cで表されるものが挙げられる。ただし、これらの効用関数は一例であって、本実施形態は、他の効用関数を用いる場合にも同様に適用可能である。
【0019】
ここで、eはエンゲージメント指標を表し、本実施形態では、動画長(コンテンツ長)に対する視聴時間の割合で求める。具体的には、e=(視聴時間)/(コンテンツ長)である。例えば、或るユーザがコンテンツ長180秒のコンテンツを135秒間視聴した場合はe=135/180=0.75となる。また、cは配信コストを表し、本実施形態では、発生し得る最大のデータ量と実際に転送したデータ量との比である。具体的には、c=(実際に転送したデータ量)/(転送し得る最大のデータ量)である。例えば、最大ビットレートが3000kbpsのコンテンツを135秒間視聴し、実際に転送したデータ量が30MBであった場合はc=30/(3000×135/8/1000)≒0.59となる。これらのエンゲージメント指標及びコストの値は各ユーザの各視聴に対して算出する。wは配信コストに対する重みを表し、実数で与えるものとする。wを小さく設定するほど体感品質を優先した制御となり、wを大きく設定するほど配信コストを優先した制御となる。重みwは映像配信事業者又はユーザのいずれかによって設定されればよい。なお、QoE目標値は、後述するベイズ最適化を用いて最適化を行う。
【0020】
<本実施形態に係る映像配信システム1の全体構成及び動作>
図1に、本実施形態に係る映像品質選択装置10が含まれる映像配信システム1の全体構成の一例を示す。
図1に示されるように、当該映像配信システム1には、映像品質選択装置10と、クライアント20と、配信サーバ30とが含まれる。なお、映像品質選択装置10、クライアント20及び配信サーバ30は、例えば、インターネット等の通信ネットワークを介して通信可能に接続される。
【0021】
映像品質選択装置10は、ユーザの特性に応じてQoE目標値を選択し、選択したQoE目標値をクライアント20に与えるサーバである。クライアント20は、ユーザが映像視聴に用いる各種端末(例えば、スマートフォン、タブレット端末、PC(パーソナルコンピュータ)等)である。配信サーバ30は、クライアント20からの要求に応じて映像データを提供するサーバである。
【0022】
ここで、映像品質選択装置10は、DB更新部110と、QoE目標値応答部120と、視聴情報蓄積部130とを有する。なお、これら各部のそれぞれが単独の装置又はシステムであってもよい。
【0023】
DB更新部110は、後述するクラスタDB122及びQoE目標値DB124を更新する。DB更新部110には、クラスタDB122を更新するクラスタ計算部111と、QoE目標値DB124を更新するQoE目標値計算部112とが含まれる。
【0024】
QoE目標値応答部120は、クライアント20から受信したユーザIDに応じたQoE目標値を当該クライアント20に応答する。QoE目標値応答部120には、クライアント20から受信したユーザIDに対応するクラスタIDを特定するクラスタ特定部121と、ユーザIDとクラスタIDとを対応付けたデータが格納されているクラスタDB122と、クラスタIDに対応するQoE目標値をクライアントに応答するQoE目標値応答部123と、クラスタIDとQoE目標値とを対応付けたデータが格納されているQoE目標値DB124とが含まれる。
【0025】
視聴情報蓄積部130は、クライアント20の視聴情報を蓄積する。視聴情報蓄積部130には、クライアント20から受信した視聴情報を視聴情報DB132に格納する蓄積部131と、視聴情報を表すデータが格納される視聴情報DB132とが含まれる。なお、視聴情報を表すデータとは、例えば、視聴開始時刻とユーザIDとQoEとUtilityとを対応付けたデータである。
【0026】
本実施形態に係る映像配信システム1の動作は、視聴開始前の動作、視聴中の動作、視聴終了後の動作、クラスタ更新動作の4つに分類される。以降では、それぞれの動作について説明する。
【0027】
≪視聴開始前の動作≫
クライアント20が所望の映像の視聴を開始する際には、その開始前において以下のS1-1~S1-5の動作が実行される。
【0028】
S1-1)クライアント20は、クラスタ特定部121に対して自身のユーザID(つまり、このクライアント20を利用しているユーザのユーザID)を送信する。なお、クライアント20は、例えば、自身のユーザIDが含まれるQoE目標値応答要求をクラスタ特定部121に対して送信すればよい。また、ユーザ単位のクラスタリングではなく、コンテンツ単位のクラスタリングが行われた場合はコンテンツID、ユーザとコンテンツの組単位のクラスタリングが行われた場合はユーザID及びコンテンツIDが送信されればよい。
【0029】
S1-2)クラスタ特定部121は、クラスタDB122に格納されているデータを参照して、当該クライアント20から受信したユーザIDに対応するクラスタIDを特定する。
【0030】
S1-3)次に、クラスタ特定部121は、上記のS1-2で特定したクラスタIDをQoE目標値応答部123に送信する。
【0031】
S1-4)QoE目標値応答部123は、QoE目標値DB124に格納されているデータを参照して、クラスタ特定部121から受信したクラスタIDに対応するQoE目標値を特定する。
【0032】
S1-5)そして、QoE目標値応答部123は、上記のS1-4で特定したQoE目標値をQoE目標値DB124から取得し、取得したQoE目標値を当該クライアント20に送信(応答)する。
【0033】
このように、本実施形態では、ユーザが属するクラスタ単位で最適なQoE目標値を計算しておき、ユーザが視聴を開始する際には当該ユーザが属するクラスタに対応するQoE目標値を当該ユーザのクライアント20に応答する。これにより、視聴数が少ないユーザのクライアント20に対しても適切なQoE目標値を与えることが可能となる。
【0034】
具体例を用いて視聴開始前の動作について説明する。例えば、クラスタDB122には、
図2に示されるようなデータが格納されているものとする。また、例えば、QoE目標値DB124には、
図3に示されるようなデータが格納されているものとする。
【0035】
このとき、上記のS1-1でユーザID「uid0002」がクライアント20から送信された場合、上記のS1-2ではユーザID「uid0002」に対応するクラスタID「cid0001」がクラスタ特定部121によって特定される。よって、上記のS1-3ではクラスタID「cid0001」がクラスタ特定部121からQoE目標値応答部123に送信され、上記のS1-4ではクラスタID「cid0001」に対応するQoE目標値「3.0」が特定される。したがって、上記のS1-5では、このQoE目標値「3.0」が当該クライアント20に送信(応答)される。
【0036】
なお、もしクラスタDB122に存在しないユーザID(例えば、ユーザID「uid0005」等)がクライアント20から送信された場合、クラスタ特定部121は、ユーザID「default」に対応するクラスタID(
図2に示す例ではクラスタID「cid0000」)をQoE目標値応答部123に送信するものとする。
【0037】
≪視聴中の動作≫
QoE目標値がクライアント20に応答された後は、以下のS2-1~S2-4の動作が実行される。なお、以下のS2-1~S2-4の動作は映像を視聴している間、繰り返し実行される。
【0038】
S2-1)クライアント20は、上記の参考文献1に記載されている方法を用いて、QoE目標値応答部123から与えられたQoE目標値を満たしながらコストを最小にするリプレゼンテーション選択を行う。
【0039】
S2-2)次に、クライアント20は、上記のS2-1で選択したリプレゼンテーションに対応するチャンクの映像データを配信サーバ30に要求する。
【0040】
S2-3)配信サーバ30は、クライアント20から要求されたチャンクの映像データを当該クライアントに送信(応答)する。
【0041】
S2-4)そして、クライアント20は、配信サーバ30から受信した映像データを再生しながら、上記のS2-1を実行して次のリプレゼンテーション選択を行う。
【0042】
≪視聴終了後の動作≫
クライアント20が映像の視聴を終了した後は、以下のS3-1~S3-2の動作が実行される。
【0043】
S3-1)クライアント20は、蓄積部131に対して視聴情報を送信する。なお、視聴情報には、例えば、視聴開始時刻と、ユーザIDと、QoEと、Utilityとが含まれる。QoEについては、例えば、参考文献2「K. Yamagishi and T. Hayashi, "Parametric Quality-Estimation Model for Adaptive-Bitrate Streaming Services,"IEEE Transactions on Multimedia, Vol.19, Issue. 7, pp.1545-1557, 2017.」に記載されている方法を用いた推定MOS(Mean Opinion Score)が用いられてもよいし、ユーザから直接取得した評価値を利用してもよい。また、推定MOSを計算するために必要な情報(例えば、選択リプレゼンテーション履歴の配列、再生停止回数、再生停止の開始・終了時刻等)をクライアント20から蓄積部131に送信し、蓄積部131がQoEの計算を行ってもよい。また、Utilityについても、クライアント20でUtilityを計算して蓄積部131に送信されてもよいし、Utilityを計算するために必要な情報(例えば、エンゲージメント指標eやコストc等)をクライアント20から蓄積部131に送信し、蓄積部131がUtilityの計算を行ってもよい。
【0044】
S3-2)そして、蓄積部131は、視聴情報を表すデータを視聴情報DB132に格納する。これにより、視聴情報を表すデータが視聴情報DB132に蓄積される。視聴情報DB132に格納されているデータの一例を
図4に示す。
【0045】
≪クラスタ更新動作≫
ユーザによる映像の視聴の開始や終了とは独立に、以下のS4-1~S4-2のクラスタ更新動作が実行される。
【0046】
S4-1)クラスタ計算部111は、視聴情報DB132に格納されているデータ(つまり、視聴情報を表すデータ)を用いて、クラスタDB122を更新する。なお、クラスタDB122の更新方法の詳細については後述する。
【0047】
S4-2)次に、QoE目標値計算部112は、上記のS4-1で更新されたクラスタDB122に格納されているデータと視聴情報DB132に格納されているデータとを用いて、QoE目標値DB124を更新する。なお、QoE目標値DB124の更新方法の詳細については後述する。
【0048】
上記のS4-1~S4-2が実行されることで、クラスタDB122及びQoE目標値DB124が更新され、ユーザの視聴履歴(つまり、そのユーザの視聴情報の履歴)に応じた適切なQoE目標値をクライアント20に応答することが可能となる。なお、ユーザの視聴履歴はそのユーザの視聴傾向等の特性を表すと考えることができる。
【0049】
ここで、上記のS4-1~S4-2が実行される頻度を高くするほど直近の視聴履歴が反映されやすくなるが、計算負荷が大きくなる。一方で、その頻度を低くするほど計算負荷は低くなるが、直近の視聴履歴が反映されにくくなる。このため、上記のS4-1~S4-2が実行される頻度は予め設定されていてもよいが、例えば、視聴完了毎、1時間毎、1日毎、1週間毎等の頻度をユーザに選択させてもよい。また、整数値T(≧0)を入力とする関数f(T)を用いて、f(T)回目の視聴回数のときに上記のS4-1~S4-2が実行されてもよい。このとき、f(T)としては、例えば、f(T)=2Tと設定すること等が考えられる。これにより、視聴回数が1回目、2回目、4回目、8回目、16回目、32回目等のときに上記のS4-1~S4-2が実行される、といったようにユーザの視聴回数の増加に伴って更新頻度を下げることが可能となる。
【0050】
<クラスタDB122の更新>
次に、上記のS4-1でクラスタ計算部111がクラスタDB122を更新する際の動作について説明する。クラスタ計算部111では、ユーザ単位でその視聴履歴をクラスタリングすることで、クラスタDB122を更新する。なお、この動作を開始する際には、クラスタDB122に格納されているデータは初期化(例えば、全データの削除等)される。
【0051】
このクラスタリングの概略の一例を
図5に示す。
図5に示す例では、ユーザID「uid0001」のユーザと、ユーザID「uid0002」のユーザと、ユーザID「uid0003」のユーザとが存在するものとして、横軸をQoE、縦軸をUtilityとした場合における各ユーザの過去の視聴情報の履歴(以下、「視聴履歴」ともいう。)をプロットした点及びその回帰曲線を示す。
図5に示す例では、ユーザID「uid0001」のユーザ(以下、ユーザA)とユーザID「uid0003」のユーザ(以下、ユーザC)の視聴数は多い一方で、ユーザID「uid0002」のユーザ(以下、ユーザB)の視聴数は少ないという状況を表している。
【0052】
このとき、ユーザBがユーザAとユーザCのどちらに似た視聴傾向を示すかということを考える。
図5に示す例の場合、Utilityが最大となるQoEを比較すると、ユーザAの方がユーザBと似ていると考えられる。したがって、この例の場合、ユーザAとユーザBを同一クラスタ(
図5に示す例ではクラスタID「cid0001」のクラスタ)とし、ユーザCを他のクラスタ(
図5に示す例ではクラスタID「cid0002」のクラスタ)とする。このように、本実施形態では、各ユーザの視聴履歴を用いて、ユーザ単位でクラスタリングを行う。
【0053】
以上で概略を説明したクラスタリングの詳細な流れについて、
図6を参照しながら説明する。
図6は、一実施形態に係るクラスタリング処理の流れの一例を示すフローチャートである。なお、
図6では、一例として、参考文献3「MacQueen, J. B., "Some Methods for classification and Analysis of Multivariate Observations," Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability. University of California Press, pp. 281-297, 1967.」に記載されているk-means法によりクラスタリングを行う場合について説明する。ただし、これに限られず、例えば、参考文献4「Joe H., Ward Jr.,"Hierarchical Grouping to Optimize an Objective Function," Journal of the American Statistical Association, Vol. 58, No. 301, pp. 236-244, 1963.」に記載されているWard法によりクラスタリングを行う等、他のクラスタリング手法が用いられてもよい。
【0054】
ここで、以降では、視聴情報DB132に格納されている全てのデータ(以下、これらの各データを「視聴情報データ」ともいう。)の集合をXallで表し、Xallの各要素(つまり、各視聴情報データ)のうち、ユーザiの視聴情報データの集合をxiで表す。また、xi={(t1i,q1i,u1i),(t2i,q2i,u2i),・・・}と表す。iはユーザのインデックス(例えば、ユーザID)であり、tjiはユーザiのj番目の視聴情報データに含まれる視聴開始時刻、qjiはユーザiのj番目の視聴情報データに含まれるQoE、ujiはユーザiのj番目の視聴情報データに含まれるUtility(効用)である。すなわち、上記のxiはユーザiの視聴履歴を表す。
【0055】
まず、クラスタ計算部111は、Xallに対して所定のフィルタ関数によってフィルタリングを行う(ステップS101)。すなわち、Xallに対してフィルタ関数を適用した後の集合をXとすれば、クラスタ計算部111は、X=filter(Xall)とする。ここで、filter(・)はフィルタ関数を表す。フィルタ関数としては、例えば、Xallに含まれる各要素のうちtjiが指定値よりも大きいもののみを出力する関数と設計したり、Xallに含まれる各要素のうちujiが所定の範囲内にあるもののみを出力する関数と設計したりすることが考えられる。このようなフィルタ関数を適用することで、外れ値の影響を排除したり、新しい視聴情報データのみを用いたクラスタ集合を生成したりすることが可能となる。
【0056】
次に、クラスタ計算部111は、クラスタ集合をC={Cj}として、各クラスタCjを初期化する(ステップS102)。ここで、本実施形態では、k-means法によりクラスタリングを行うため、クラスタ集合を構成するクラスタ数cは事前に与えられているものとする。このとき、ユーザ数をN(≧c)として、クラスタ計算部111は、1からNまでのN個の整数の中からc個の整数をランダムに選択し、j(1≦j≦c)番目に選択した整数に対応するユーザをクラスタCjに追加することで、各クラスタCj(1≦j≦c)の初期化を行う。
【0057】
次に、クラスタ計算部111は、各クラスタCjの重心mjを計算する(ステップS103)。クラスタCjの重心mjとしては、当該クラスタCjに属するユーザiの視聴履歴xiの和集合、すなわち
【0058】
【0059】
次に、クラスタ計算部111は、各クラスタCjをφで初期化する(ステップS104)。
【0060】
続いて、クラスタ計算部111は、いずれのクラスタにも属していないユーザiをランダムに選択する(ステップS105)。
【0061】
次に、クラスタ計算部111は、各jに対して、上記のステップS105で選択したユーザiの視聴履歴xiとクラスタCjの重心mjとの距離d(xi,mj)をそれぞれ計算する(ステップS106)。ここで、距離d(xi,mj)としては、例えば、JSダイバージェンスJS(xi,mj)、KLダイバージェンスKL(xi,mj)又はガウス過程間のダイバージェンス等を用いる。ただし、距離d(xi,mj)は、これらに限られず、分布間の類似度を定義できる任意の距離関数又はダイバージェンス関数を用いることが可能である。
【0062】
なお、JSダイバージェンスJS(xi,mj)は以下で定義される。
【0063】
【数2】
また、KLダイバージェンスKL(x
i,m
j)は以下で定義される。
【0064】
【数3】
ここで、p(x)及びq(x)は横軸をQoE、縦軸をUtilityとした場合におけるQoEと効用の関係性を表す関数である。例えば、x
i={(t
1i,q
1i,u
1i),(t
2i,q
2i,u
2i),・・・}である場合、p(x
i)は、Utilityを要素とする集合{u'
1,u'
2,・・・}を出力する関数である。このp(x
i)は、例えば、次のように構成することができる。まず、x
iの各要素からq
ji及びu
jiを取り出した組を要素として持つ集合x'
iを作成する。次に、この集合x'
iに含まれる各q
jiの定義域を固定の幅で等分割し、各幅について、その幅に含まれるu
jiの平均値を計算する。ただし、或る幅にu
jiが一つも含まれない場合には、その幅の周辺の値から線形補間することで当該幅におけるUtilityの値を計算する。これにより、各QoEに対してUtilityが定義されるため、これを関数とみなしてp(x)と定義する。q(x)についても同様である。
【0065】
また、ガウス過程間のダイバージェンスを用いる際には、まず、各ユーザもしくはクラスタで得られた観測を用いて、ガウス過程による報酬のモデル化を行う。例えば、ユーザAに関するn組の観測値(つまり、n個の視聴情報データで構成される視聴履歴)と、ユーザBに関するm組の観測値とが得られており、各ユーザに関する観測値を用いて、ガウス過程による報酬(Utility)をモデル化する方法を考える。このとき、ユーザAに関して、或る選択q(QoE)に対する報酬の予測分布は以下のようにモデル化できる。
【0066】
【数4】
ただし、u
1,・・・,u
nは観測されたUtility、I
nはn×nの単位行列、σ
2は報酬の期待値分布の事前分布における分散、βは近傍のqに対応するuが、今着目しているqに対してどの程度影響を及ぼすかを表すパラメータである。ここで、k(x,x')はガウシアンカーネルに従うものとしたが、本実施形態はこれに限られるものではなく、例えば、カーネル関数として多項式カーネルや線形カーネル等が用いられてもよい。
【0067】
上記のモデル化をユーザBに関しても行うことで、各ユーザの任意のqに対する予測分布を得ることができる。次に、qの定義域を任意の間隔で区切った変数列を用意する。例えば、上記の参考文献2に記載されている推定技術を用いた場合、qの定義域は[1,5]となる。したがって、これをS個の変数列t1,t2,・・・,tS(ただし、1≦t1≦t2≦・・・≦tS,Sは予め設定されたパラメータ)で分割する。そして、これらを各ユーザの予測分布への入力し、S個のサンプル列を得る。すなわち、ユーザAの予測分布からサンプル列(ai1,ai2,・・・,aiS)を得る。同様に、ユーザBの予測分布からサンプル列(bi1,bi2,・・・,biS)を得る。
【0068】
上記のサンプル列を得る操作をM回繰り返し、以下の式に従ってユーザAとユーザBの予測分布の距離を求める。
【0069】
【数5】
ただし、Mは十分に大きな整数とする。上記の数5で定義される距離をガウス過程間のダイバージェンスとする。
【0070】
ステップS106に続いて、クラスタ計算部111は、上記のステップS106で計算された各距離d(xi,mj)のうち、その値が最も小さい距離に対応するクラスタに対して、上記のステップS105で選択されたユーザiを追加する(ステップS107)。すなわち、クラスタ計算部111は、
【0071】
【0072】
次に、クラスタ計算部111は、全てのユーザがいずれかのクラスタに属しているか否かを判定する(ステップS108)。
【0073】
上記のステップS108で全てのユーザがいずれかのクラスタに属していると判定されなかった場合(つまり、いずれのクラスタにも属していないユーザが存在する場合)、クラスタ計算部111は、上記のステップS105に戻る。これにより、全てのユーザがいずれかのクラスタに属するまで、上記のステップS105~ステップS107が繰り返し実行される。
【0074】
一方で、上記のステップS108で全てのユーザがいずれかのクラスタに属していると判定された場合、クラスタ計算部111は、クラスタ集合C={Cj}が直近の重心計算時と同じであるか否かを判定する(ステップS109)。もし直近の重心計算時と同じでない場合(つまり、直近の重心計算時からクラスタ集合Cが変化している場合)、クラスタリングが収束していないと考えられるため、クラスタ計算部111は、上記のステップS103に戻り、再度、重心の計算と各ユーザのクラスタリングを行う。一方で、直近の重心計算時と同じである場合はクラスタリングが収束したと考えられるため、クラスタ計算部111は、そのクラスタ集合CでクラスタDB122を更新する。すなわち、クラスタ計算部111は、このクラスタ集合Cを構成する各クラスタCjに対してクラスタIDを付与した上で、クラスタIDと、このクラスタIDのクラスタに属するユーザのユーザIDとを対応付けたデータをクラスタDB122に格納する。
【0075】
なお、本実施形態では、一例として、或る品質に対するユーザの視聴履歴のみを用いてクラスタリングを行ったが、これに限られず、例えば、ユーザの属性をクラスタリングの要素としてもよい。ユーザの特性としては、例えば、動画配信サービスの契約プラン、年代、性別、コンテンツの視聴傾向、視聴時間帯、視聴時間の統計量等が挙げられる。
【0076】
<QoE目標値DB124の更新>
次に、上記のS4-2でQoE目標値計算部112がQoE目標値DB124を更新する際の動作について説明する。なお、この動作を開始する際には、QoE目標値DB124に格納されているデータは初期化(例えば、全データの削除やQoE目標値の初期化等)される。
【0077】
QoE目標値計算部112は、更新後のクラスタDB122に格納されているデータと視聴情報DB132に格納されているデータとを用いて、参考文献5「Jonas Mockus, "On Bayesian Methods for Seeking the Extremum. Optimization Techniques," 1974: 400-404」に記載されたベイズ最適化に基づいてQoE目標値を計算する。ただし、QoE目標値計算部112は、ユーザ毎やコンテンツ毎にQoE目標値を計算するのではなく、クラスタ毎にQoE目標値を計算する。そして、QoE目標値計算部112は、各クラスタに対して推定効用が最大となるQoE目標値と当該クラスタのクラスタIDとを対応付けたデータをQoE目標値DB124に格納する。なお、ベイズ最適化を適用する方式としては、参考文献6「Niranjan Srinivas, Andreas Krause, Sham Kakade, and Matthias Seeger. 2010. Gaussian process optimization in the bandit setting: no regret and experimental design. In Proceedings of the 27th International Conference on International Conference on Machine Learning (ICML'10). Omnipress, Madison, WI, USA, 1015-1022.」に記載されているUCB(Upper Confidence Bound)法が用いられてもよいし、参考文献7「W.R. Thompson. On the likelihood that one unknown probability exceeds another in view of the evidence of two samples. Biometrika, 25:285-294, 1933.」に記載されているTS(Thompson Sampling)法が用いられてもよい。また、ユーザID「default」に対応するクラスタのQoE目標値については、例えば、全てのクラスタの視聴情報データを用いて、QoE目標値を計算するものとする。
【0078】
[第二の実施形態]
次に、第二の実施形態について説明する。なお、本実施形態に係る映像配信システム1の全体構成及び動作は第一の実施形態と同様であり、視聴開始前の動作、視聴中の動作、視聴終了後の動作、クラスタ更新動作の実行タイミングはいずれも第一の実施形態と同様である。本実施形態が第一の実施形態と異なる点は、クラスタDB122の更新とQoE目標値DB124の更新であるため、以下では、これらの点について説明する。
【0079】
<クラスタDB122の更新>
まず、クラスタDB122の更新について説明する。本実施形態では、以下のステップS201~ステップS205によりクラスタリングすることで、クラスタDB122を更新する。
【0080】
ステップS201:まず、クラスタ計算部111は、上記のステップS101と同様に、X=filter(Xall)により集合Xを計算する。
【0081】
ステップS202:次に、クラスタ計算部111は、視聴情報DB132に格納されているデータに含まれるユーザをノードとした完全グラフG(V,E)を作成する。ここで、Vはユーザの集合、Eはユーザ間のエッジの集合である。なお、完全グラフとは任意の2つのノード間にエッジが存在するグラフのことである。
【0082】
ステップS203:次に、クラスタ計算部111は、クラスタ集合をC={C1}と初期化(つまり、全ユーザが属するクラスタC1のみが含まれるクラスタ集合に初期化)する。ただし、この初期化が一度以上実行されている場合は、本ステップは行わずに、スキップする。
【0083】
ステップS204:次に、クラスタ計算部111は、クラスタCj(1≦j≦|C|)に属する任意のユーザi及びi'間のエッジei,i'について、以下の数7に示す条件を満たすか否かを判定し、この条件を満たす場合は当該エッジei,i'を削除する。
【0084】
【数7】
ここで、^m
i(正確には、m
iの真上にハット「^」を付与した記号)は、ユーザiに関する視聴情報データのみを用いて、上記の数4によりモデル化したときの^mを表しており、ユーザiの特徴を表している。また、Ω=[1,5]である。p(x)は、入力候補集合Dを構成する際に利用する確率分布であり、Ω上で定義された任意の確率分布を用いることができる。Dは、確率分布p(x)に従ってサンプリングされたL個の要素で構成される集合である。なお、入力候補集合Dを用いたQoE目標値の決定方法については後述する。
【0085】
また、F(T)は任意の関数としてよいが、例えば、以下の関数を用いることができる。
【0086】
【数8】
なお、上記の数7のα
1と上記の数8のα
2は任意に設定することができる定数である。
【0087】
ステップS205:次に、クラスタ計算部111は、クラスタ集合Cの更新を行う。具体的には、クラスタ計算部111は、上記のステップS204を行った後のグラフGについて、各連結成分を各クラスタとしてクラスタ集合Cを更新する。また、クラスタ計算部111は、各クラスタに属するユーザの視聴情報データを用いて、上記の数4により、クラスタ毎にuを推定する。
【0088】
<QoE目標値DB124の更新>
次に、QoE目標値DB124の更新について説明する。
【0089】
QoE目標値計算部112は、まず、確率分布p(x)に従ってL個の入力候補をサンプリングする。これらL個の入力候補で構成される集合をDとする。次に、QoE目標値計算部112は、Dに属する要素を用いて、上記の参考文献6に記載されているUCB法又は上記の参考文献7に記載されているTS法によりQoE目標値を計算する。なお、上述したように、p(x)はΩ上で定義された任意の確率分布であり、例えば、一様関数等としてもよい。
【0090】
<映像品質選択装置10のハードウェア構成>
最後に、第一の実施形態及び第二の実施形態に係る映像品質選択装置10のハードウェア構成について、
図7を参照しながら説明する。
図7は、一実施形態に係る映像品質選択装置10のハードウェア構成の一例を示す図である。
【0091】
図7に示すように、第一の実施形態及び第二の実施形態に係る映像品質選択装置10は一般的なコンピュータ又はコンピュータシステムで実現され、ハードウェアとして、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、プロセッサ205と、メモリ装置206とを有する。これらの各ハードウェアは、それぞれがバス207を介して通信可能に接続されている。
【0092】
入力装置201は、例えば、キーボードやマウス、タッチパネル等である。表示装置202は、例えば、ディスプレイ等である。なお、映像品質選択装置10は、入力装置201及び表示装置202のうちの少なくとも一方を有していなくてもよい。
【0093】
外部I/F203は、記録媒体203a等の外部装置とのインタフェースである。映像品質選択装置10は、外部I/F203を介して、記録媒体203aの読み取りや書き込み等を行うことができる。記録媒体203aには、映像品質選択装置10が実行する各種処理を実現する1以上のプログラムが格納されていてもよい。なお、記録媒体203aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
【0094】
通信I/F204は、映像品質選択装置10を通信ネットワークに接続するためのインタフェースである。なお、映像品質選択装置10が実行する各種処理を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
【0095】
プロセッサ205は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の各種演算装置である。メモリ装置206は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。
【0096】
第一の実施形態及び第二の実施形態に係る映像品質選択装置10は、
図7に示すハードウェア構成により、上述した各種処理を実現することができる。なお、
図7に示すハードウェア構成は一例であって、映像品質選択装置10は、他のハードウェア構成を有していてもよい。例えば、映像品質選択装置10は、複数のプロセッサ205を有していてもよいし、複数のメモリ装置206を有していてもよい。
【0097】
本発明は、具体的に開示された上記の各実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0098】
1 映像配信システム
10 映像品質選択装置
20 クライアント
30 配信サーバ
110 DB更新部
111 クラスタ計算部
112 QoE目標値計算部
120 QoE目標値応答部
121 クラスタ特定部
122 クラスタDB
123 QoE目標値応答部
124 QoE目標値DB
130 視聴情報蓄積部
131 蓄積部
132 視聴情報DB
201 入力装置
202 表示装置
203 外部I/F
203a 記録媒体
204 通信I/F
205 プロセッサ
206 メモリ装置
207 バス