(58)【調査した分野】(Int.Cl.,DB名)
前記強度値は、前記行動に関連するタイプ、前記行動に関連する評価、前記行動に関連するビデオの視聴パーセンテージ、及び、前記特定のユーザが前記行動を行った回数を含む一又は二以上の要素に基づいている、請求項3に記載の方法。
前記ペアリング試験はルールの組を含み、前記ペアリング試験は、ルールの組におけるいずれのルールを適用することを視聴回数に基づいて決定するステップ及び前記ルールの組から決定される特定のルールを用いて、前記ビデオペアのための前記指標の組を維持するか否かを決定するステップを含む、請求項9に記載の方法。
【発明を実施するための形態】
【0009】
以下の説明では、本発明を完全に理解できるようにするために、説明を目的として数多くの特定の詳細を記載する。しかしながら、これらの特定の詳細を伴わずに本発明を実施できることが明らかになるであろう。その他の場合、本発明を不必要に曖昧にしないために、周知の構造及び装置についてはブロック図形式で示す。
【0010】
全体的概要
ユーザに候補ビデオを推奨することによって目標が満たされる程度を候補ビデオ毎に予測することにより、ユーザにビデオ資産を推奨するための技術を提供する。ユーザの関与を目標とする場合、予測は、ユーザが候補ビデオに興味を持つと思われる度合いを示すことができる。本発明の1つの態様によれば、訓練された機械学習エンジンに、協調フィルタリング(CF)パラメータ値及び内容ベースフィルタリング(CBF)パラメータ値の両方が与えられる。機械学習エンジンは、これらの入力パラメータ値に基づいて、ユーザに特定のビデオを推奨することによって特定の目標が満たされる度合いを反映した機械学習スコア(「MLスコア」)を生成する。目標がユーザの視聴興味を満たすことである場合、MLスコアは、特定のユーザがビデオを見ることにどれほど興味を示すかの予測となる。
【0011】
説明を目的として、本明細書では、MLスコアを生成する対象のユーザを「ターゲットユーザ」と呼び、MLスコアを生成する対象のビデオを「ターゲットビデオ」と呼ぶ。1つの実施形態では、候補ビデオの組内のビデオ毎に生成されるMLスコアを、候補ビデオの中からターゲットユーザに推奨するためのビデオを選択するための根拠として使用する。
【0012】
MLスコアを生成する際には、各入力パラメータがMLスコアに影響を与える度合いを変化させることができる。例えば、最近になってコレクションに追加されたビデオの消費履歴の量は多くない。従って、消費履歴に関連するパラメータがMLスコアに与える影響は、ビデオ自体の特徴(長さ、ジャンル、タグなど)が与える影響よりも少ない。一方、消費履歴の長いビデオでは、消費履歴に関連するパラメータがMLスコアに大きな影響を与える。1つの実施形態では、機械学習エンジンが、MLスコアと共に、どの特徴がMLスコアに最も大きなプラス効果を与えたかについての指示を生成する。各ビデオ推奨では、この情報に基づいて、この特定のビデオがなぜ推奨されているかについての説明をユーザに提供することができる。
【0013】
ビデオ・ツー・ビデオ推奨
ビデオ・ツー・ビデオ推奨とは、特定のビデオに対するユーザの興味の表れに基づくビデオ推奨のことを意味する。例えば、あるユーザが特定のビデオを見たり、閲覧したり、又は高く評価したりした場合、この特定のビデオはユーザにとって興味があると想定することができる。推奨システムは、この興味に基づいて他のビデオをユーザに推奨することができる。説明を目的として、本明細書では、ユーザが興味を示したビデオを「比較」ビデオと呼ぶ。
【0014】
機械学習を用いた協調フィルタリングと内容ベースフィルタリングの組み合わせ
図1を参照すると、訓練された機械学習エンジン102を用いて候補ビデオ資産のMLスコア150を生成するためのシステムを示している。機械学習エンジン102は、特定のユーザ/ビデオの組み合わせに固有の入力フィード106に基づいてMLスコア150を生成する。入力フィード106は、複数のタイプの入力パラメータを含む。図示の実施形態では、入力フィード106が、協調フィルタリング(CF)入力108、内容ベースフィルタリング(CBF)入力110、及びその他の入力112を含む。以下、これらの入力の各々について詳細に説明する。
【0015】
協調フィルタリング(CF)入力
協調フィルタリング入力108は、ユーザの意見又は行動に関するあらゆる入力である。協調フィルタリングは、1つの事柄に関して同様の意見を有する2人の人物は、別の事柄に関しても同様の意見を有する可能性が高いという仮定に基づく。ビデオ資産に対するユーザの興味を予測するという文脈では、協調フィルタリングは、ターゲットユーザが別のユーザと同じビデオのいくつかを楽しく視聴した場合、このターゲットユーザは、この別のユーザが楽しんだ、ターゲットユーザが未だ見ていないビデオも楽しく視聴する可能性が高いと仮定する。
【0016】
ユーザの意見に関する情報は、様々な方法で取得又は導出することができる。例えば、ユーザが興味を持っているビデオのタイプは、ユーザのビデオ視聴履歴に暗黙的に反映される。従って、協調フィルタリング入力108は、ターゲットユーザのビデオ視聴履歴、ターゲットユーザと同様のユーザの視聴履歴、及び/又は視聴者人口全体の視聴履歴に関するデータを含むことができる。
【0017】
協調フィルタリング入力108は、同じような人口学的特徴を有するユーザは同じようなビデオ視聴に興味があるという仮定に基づく人口学的情報を含むこともできる。このような人口学的情報は、例えば、ユーザの年齢、性別、地理的位置、所得階層などを含むことができる。協調フィルタリング入力108は、例えば、ユーザがビデオ嗜好調査に記入すること、又は以前に視聴したビデオを評価することによって明示的に特定した興味を含むこともできる。
【0018】
ビデオ・ツー・ビデオ推奨の文脈では、CF入力108が、比較ビデオ/ターゲットビデオのペア(「ビデオペア」)に関連するユーザ行動を具体的に示すことができる。以下、ビデオペアについて維持できる様々なタイプのCF指標の例について詳細に説明する。
【0019】
図1に示す実施形態では、機械学習エンジン102に、未加工のCF特徴120、及びこの未加工のCF特徴に基づいてCFアナライザ118が生成するCFスコア124の両方が与えられる。CFスコアとは、協調フィルタリングアルゴリズムを実施するCFアナライザ118による、ターゲットユーザにターゲットビデオを提供することによって目標が満たされる度合いの予測のことである。説明を目的として、この目標は、ターゲット視聴者の視聴興味を満たすことであると仮定する。しかしながら、以下でさらに詳細に説明するように、ターゲット目標は、視聴者の興味を満たすこと以外の何か、又は視聴者の興味を満たすことと1又はそれ以上のその他の目標の組み合わせとすることもできる。
【0020】
図1で明らかなように、CFスコア124は、ターゲットビデオに対するターゲットユーザの興味の予測として単純に使用されると言うよりも、むしろMLスコア150を生成するために機械学習エンジン102に与えられる複数の入力の1つにすぎない。最終的に、機械学習エンジン102は、どのビデオを推奨すべきかを選択するための根拠として使用されるMLスコア150を生成する上で、CFスコア124にどれほどの重み付けをすべきかを決定する。
【0021】
内容ベースフィルタリング(CBF)入力
内容ベースフィルタリング入力110は、ターゲットビデオの内容が他のビデオの内容にどれほど類似しているかに関するあらゆる入力である。説明を目的として、ビデオ・ツー・ビデオ推奨を生成する実施形態を説明する。従って、内容ベースフィルタリング入力は、ターゲットビデオと比較ビデオを含むビデオペア間の類似性に焦点を当てている。しかしながら、別の実施形態では、内容ベースフィルタリング入力110が、ターゲットユーザが最近視聴、閲覧又は評価を行ったビデオの組などのあらゆる数の他のビデオの特徴情報を含むこともできる。
【0022】
上述したように、通常、比較ビデオは、ターゲットユーザが既に興味を示しているビデオである。例えば、比較ビデオは、ターゲットユーザが最近視聴したビデオ、又はターゲットユーザが最近高い評価を与えたビデオとすることができる。
【0023】
協調フィルタ入力108と同様に、内容ベースの入力110も、未加工の入力から導出されるスコアを含む。具体的には、内容ベースフィルタリング入力110は、未加工のCBF特徴126、及びこの未加工のCBF特徴126に基づいてCBFアナライザ128が生成するCBFスコア130を含む。未加工のCBF特徴126は、ターゲットビデオ及び比較ビデオに関連するあらゆる数の特徴を含むことができる。例えば、未加工のCBF特徴126は、タイトル、ジャンル、放映時間、俳優、キーワード、タグなどの特徴を含むことができる。
【0024】
CBFスコア130は、ターゲットビデオと比較ビデオがどれほど類似しているかについての推定値である。恐らくは、CBFスコア130が高ければ高いほど、ターゲットビデオと比較ビデオの間の類似性も大きい。システムによっては、推奨すべきビデオを選択するための唯一の根拠としてCBFスコアを使用するものもあるが、
図1に示す実施形態では、CBFスコア130は、機械学習エンジン102に与えられる多くの入力パラメータの1つにすぎない。MLスコア150を導出する際にCBFスコア130に与えられる実際の重みは、機械学習エンジン102に対する他の入力、及び機械学習エンジン102を訓練した訓練セットに基づいて変化する。
【0025】
機械学習エンジンに対する他の入力
MLスコア150の精度を高めるために機械学習エンジン102に与えることができる他の入力112のタイプ及び性質には実質的に制限がない。例えば、他の入力は、推奨を行うべき時刻、推奨を行うべき曜日、ターゲットユーザの接続速度などを含むことができる。
【0026】
機械学習(ML)スコア
機械学習エンジン102は、協調フィルタリング入力108、内容ベースフィルタリング入力110及びあらゆる数の他の入力112に基づいてMLスコア150を生成する。MLスコア150の値は、ターゲットユーザにターゲットビデオを提供することによって特定の目標又は一連の目標がいかに十分に満たされるかについての予測である。ユーザの関与を目標とする実施形態では、MLスコア150は、ターゲットユーザがターゲットビデオを視聴することにどれほど興味があるかについての予測である。
【0027】
MLスコアを生成する処理は、候補ビデオの組内のビデオ毎に繰り返される。これらのそれぞれのMLスコアに基づいて、ターゲットユーザが最も興味を示しそうな候補ビデオを選択し、ターゲットユーザに推奨ビデオとして提示する。
【0028】
図1に示すように協調フィルタリング(CF)と内容ベースフィルタリング(CBF)を組み合わせることにより、各技術の長所を享受することができる。特に、機械学習エンジン102には、CF/CBFアナライザにより生成された判断、及びCF/CBFからの未加工の特徴が直接曝される。機械学習エンジン102に未加工の特徴へのアクセス権を与えることにより、いくつかの利点をもたらすことができる。
【0029】
第1に、未加工の特徴をCF/CBFスコアと共にMLシステムに提供することにより、MLシステムが、CF及びCBFからの信号強度にそれぞれ基づいてスコアを組み合わせることができるようになる。すなわち、CF/CBFスコアに与えられる相対的重みは、MLシステムに与えられる他の入力に基づいて反復毎に変化する。例えば、十分な行動データを有していない新作映画では、CFの信号強度は弱い。従って、MLシステムは、MLスコアを生成する際にCFスコアにそれほどの重みを与えない。この結果、MLスコアでは内容ベースの特徴が強調される。このビデオが多くの人々によって視聴されると行動データが増え、MLスコアを生成する際にMLシステムがCFスコアに与える重みも増す。
【0030】
第2に、未加工のCBF特徴を曝すことにより、MLシステムが、履歴的なCF及びCBFの学習全体に基づいて新たな内容の課題に効果的に対処できるようになる。例えば、MLシステムは、「a」、「the」などのキーワードを共有するビデオが必ずしも関連しているわけでなく、一方で「フットボール」、「49年代」などのその他の共有されるキーワードの方が強力な関係を示すことがあると学習することができる。この結果、機械学習エンジン102は、MLスコアを生成する際に、弱い非特異的な単語に起因する高いCBFスコアには低めの重みを与え、高度に特異的な単語に起因する高いCBFスコアにはより多くの重みを与えるようになる。
【0031】
説明可能な推奨
1つの実施形態によれば、推奨システムが、1又はそれ以上の推奨ビデオの組をターゲットユーザに提示することに加え、このユーザに対し、これらのビデオの各々がなぜ推奨されているかに関する情報も提示する。具体的には、1つの実施形態では、機械学習エンジン102が、各MLスコア150に最もプラス効果を与えた特徴を示す出力152を提供する。例えば、出力152は、CFスコア124が高く、MLスコア150を生成する際にCFスコア124が他の入力に基づいて大きく重み付けされたことに起因してターゲットビデオが高いMLスコア150を受け取った旨を示すことができる。一方、ターゲットビデオのための出力152は、CBFスコアが高く、MLスコア150を生成する際にCBFスコアが他の入力に基づいて大きく重み付けされた旨を示すことができる。これらは、ビデオのMLスコアに強いプラス効果を与えることができる特徴のタイプのほんの2つの例にすぎない。
【0032】
推奨システムは、出力152が示す、MLスコア150に最もプラスに作用した特徴に基づいて、対応するビデオがなぜターゲットユーザに推奨されたか(すなわち、なぜMLスコア150がターゲットビデオの推奨を正しいとするほど十分に高いか)についての「説明」を選択することができる。例えば、
・CBFスコア130が高く、機械学習エンジン102によって大きく重み付けされた場合、「このビデオはXに類似している」(この場合、Xは比較ビデオである)という説明をユーザに提示することができる。
・CFスコア124が高く、機械学習エンジン102によって大きく重み付けされた場合、「Xの視聴者はこのビデオを視聴することが多い」(この場合、Xは比較ビデオである)という説明をユーザに提示することができる。
・他の入力112が、ターゲットビデオが視聴人口全体において最も視聴されたビデオの1つであることを示し、この特徴がMLスコア150に大きな影響を与えた場合、「このビデオは全てのユーザにおいて最も視聴されたビデオの1つである」という説明をユーザに提示することができる。
・他の入力112が、ターゲットビデオに対する関心が現在上昇中であることを示し、この特徴がMLスコア150に大きな影響を与えた場合、「このビデオに対する関心が現在大きく上昇中である」という説明をユーザに提示することができる。
【0033】
これらは、ターゲットビデオがなぜ推奨されているかを説明するためにユーザに提示できる事実上無限数の説明のほんのいくつかの例にすぎない。これらの例は非常に一般的なものであるが、実際の説明は非常に具体的なものとすることができる。例えば、説明は、「このビデオはXに類似している」と示すことに加え、このビデオのXに類似している様々な側面(ジャンル、俳優、テーマ、タグ、放映時間、音楽スコアなど)を列挙することもできる。
【0034】
推奨システムのための指標
上述したように、協調フィルタリング入力108は、ビデオ消費者の視聴行動に関する情報を含むことができる。この視聴行動は、CFアナライザ118及び機械学習エンジン102の両方に与えられる未加工のCF特徴120に反映される。推奨システムは、このCF特徴を取得するために、(豊富な行動情報を含む)プレーヤログから得られるユーザ中心指標を処理して、最終的には、機械学習エンジン102への入力フィード106に含まれるビデオペア中心指標を生成することができる。
【0035】
図2は、本発明の実施形態による、推奨システムが維持できる様々なタイプの指標を示すブロック図である。これらの指標は、ユーザ中心指標240、ビデオ中心指標242及びビデオペア中心指標244を含むことができる。
【0036】
ユーザ中心指標
ユーザ中心指標240については、推奨システムが各ユーザのユーザログを維持する。ユーザのユーザログは、ユーザが視聴した、又は別様に興味を表したビデオを示す。
図2には、3つのユーザログ250、252及び254を示している。
【0037】
1つの実施形態によれば、これらのユーザログが、ユーザが興味を示したビデオをリスト化することに加え、ユーザの行動によって示された興味の量、及びいつ興味が表されたかを示すタイムスタンプも示す。1つの実施形態によれば、ユーザがビデオに対して表した興味の量が、ビデオリストと共にユーザログ内に記憶される「強度」値によって表される。
【0038】
この強度値は、ユーザがビデオと行った交信のタイプなどの様々な要因によって決定することができる。例えば、あるビデオを視聴したユーザは、そのビデオに対し、ビデオを閲覧しただけのユーザよりも多くの興味を示す。強度値は、各種の交信の中で他の要因によって影響を受けることもある。例えば、ビデオに5つ星の評価を与えたユーザは、ビデオに3つ星の評価を与えたユーザよりもそのビデオに強い興味を抱いている。別の例として、ビデオ全部を視聴したユーザは、そのビデオの最初の半分しか見ていないユーザよりも強い興味を抱いている。従って、「ビデオの視聴パーセンテージ」は、ユーザの興味の強さを判断する一因となり得る。さらに別の例として、あるビデオを繰り返し見るユーザは、そのビデオを1回見たユーザよりも強い興味を抱いている。
【0039】
ビデオ中心指標
推奨システムは、これらのユーザログを処理し、ビデオ毎に維持されているビデオ中心指標242に対して対応する更新を行う。
図2に示す実施形態では、推奨システムが、3つのビデオ202、204及び206の各々のための情報を維持している。推奨システムが維持する情報は、ビデオに興味を示したユーザのリストをビデオ毎に含む。ビデオ202、204及び206の「興味を持ったユーザのリスト」を、リスト222、224及び226としてそれぞれ示している。1つの実施形態では、これらのリストが、ユーザ、タイムスタンプ、及びタイムスタンプによって示される時点でユーザがそのビデオにどれほど強く興味を表したかを示す強度値を各々が特定する入力を含む。
【0040】
興味を持ったユーザのリスト222、224及び226に加え、ビデオ毎にビデオメタデータも維持される。このビデオ毎に維持されるビデオメタデータは、放映時間、制作日、タグ、タイトル、キーワード、言語などの、そのビデオに関するあらゆる数及びタイプの情報を含むことができる。しばしば、所与のビデオの初期ビデオメタデータは、ビデオの制作者によって提供されることも(タイトル、俳優、言語など)、又はこのメタデータをビデオ自体から導出できることもある(放映時間、符号化フォーマットなど)。しかしながら、出版環境によっては、ビデオのメタデータが時間と共に変化又は増加することもある。例えば、ビデオを視聴するユーザが増えると、ビデオにユーザタグが加わることがある。別の例として、ユーザがビデオを視聴して評価した時に、ビデオの視聴回数及び評価が継続的に変更されることもある。
図2に示す実施形態では、ビデオ202、204及び206のビデオメタデータを、それぞれビデオメタデータ232、234及び236として示している。
【0041】
ビデオペア中心指標
ビデオペア中心指標244は、ビデオのペアに関連する指標である。例えば、
図2には、ビデオのペア202及び204の指標、ビデオのペア202及び206の指標、及びビデオのペア204及び206の指標を示している。
図2に示す実施形態では、これらの指標が、CF指標及びCBF指標をビデオペア毎に含む。
【0042】
一般に、ビデオペアのCF指標は、ペアの一方のビデオを見たユーザがペアの他方のビデオも見る可能性を予測するための指標である。従って、CF指標262は、ビデオ202及び204の一方を見たユーザがビデオ202及び204の他方も見る可能性を予測するための指標である。同様に、CF指標264は、ビデオ202及び206の一方を見たユーザがビデオ202及び206の他方も見る可能性を予測するための指標である。最後に、CF指標266は、ビデオ204及び206の一方を見たユーザがビデオ204及び206の他方も見る可能性を予測するための指標である。
【0043】
1つの実施形態では、各ビデオペアのCF指標が、少なくとも以下を含む。
・ビデオペアの各ビデオに対して全てのユーザが費やした合計時間
・そのビデオペアに対して個々のユーザが費やした最小時間の総和
・ユーザがペアの両方のビデオを見た場合、2つのビデオを見る間にどれだけの時間が経過したか
・ユーザの分布(1人の人物が100回見たビデオと、100人の異なる人々が1回ずつ見たビデオを区別)
・ビデオペアを見た各ユーザが見たビデオの分布(このビデオを見たユーザが多くのビデオを見る傾向にあるか、それともあまり見ない傾向にあるかを示す)
・ペア内の各ビデオが、他のビデオに比べていかに「発見しやすい」か(例えば、同じページ又はリスト上に頻繁に現れるビデオと、同じページ又はリスト上にめったに現れないビデオとを区別)
【0044】
ビデオペアのCF指標は、ペア内の各ビデオのために維持される興味を持つユーザのリストから導出することができる。例えば、リスト222及び224内の情報に基づいて、202/204のビデオペア内の各ビデオに対して全てのユーザが費やした合計時間を求めることができる。同様に、リスト222及び226からCF指標264を導出することができる。同様に、リスト224及び226からCF指標266を導出することができる。
【0045】
ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである場合、このビデオペアのCF指標を、MLスコアの生成に使用する未加工のCF特徴120に含めることができる。具体的には、ビデオYに興味があることを示した特定のユーザにビデオXを推奨することによって目標が達成される度合いを求めるために、CFアナライザ118及び機械学習エンジン102の両方にビデオX/YのペアのCF指標を与えることができる。CFアナライザ118は、これらのCF指標に基づいてCFスコア124を生成する。このCFスコア124が機械学習エンジン102に与えられ、機械学習エンジン102は、これらのCF指標に少なくとも部分的に基づいて、CFスコア124にどれほどの重みを与えるべきかを決定する。
【0046】
各ビデオペアのビデオペア中心指標は、CF指標に加えてCBF指標も含む。ビデオペアのCBF指標は、ビデオペア内のビデオの内容がどれほど類似しているかを全体的に示す指標である。例えば、ビデオペアのCBF指標は、これらのビデオにどれほどのタグが共通しているか、これらのビデオにどのメタデータ(俳優、監督、キーワードなど)が共通しているか、などを示すことができる。
図2に示す実施形態では、ビデオペア202/204、202/206及び204/206のCBFメタデータを、それぞれCBF指標272、274及び276として示している。
【0047】
1つの実施形態によれば、ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである場合、このビデオペアのCBF指標を、MLスコアの生成に使用する未加工のCBF特徴126に含めることができる。具体的には、ユーザが興味を示したビデオYにビデオXが類似している度合いを求めるために、CBFアナライザ128及び機械学習エンジン102の両方にビデオX/YのペアのCBF指標を与えることができる。CBFアナライザ128は、これらのCBF指標に基づいてCBFスコア130を生成する。このCBFスコア130が機械学習エンジン102に与えられ、機械学習エンジン102は、これらのCBF指標に少なくとも部分的に基づいて、CBFスコア130にどれほどの重みを与えるべきかを決定する。
【0048】
行動データの増分更新
MLスコア150をできるだけ正確なものにするには、MLスコア150の生成に使用される未加工のCF特徴120をできるだけ最新のものにすべきである。しかしながら、ビデオ視聴人口が大きければ大きいほど、全候補ビデオのための未加工のCF特徴120を確実に最新に保つことはますます困難になる。
【0049】
例えば、ビデオコレクション内に100万本のビデオ資産が存在し、常に何万人もの視聴者がビデオを見ていると仮定する。これらの条件下では、視聴行動情報の量が膨大なものになる。行動データを更新するための1つのアプローチは、ユーザ中心指標をリアルタイムで収集し、各週の最後にビデオ中心指標242に対してバッチ更新を行い、その後ビデオペア中心指標244に対してもバッチ更新を行うことである。しかしながら、このようなアプローチでは、推奨システムが比較的古いビデオ中心指標242及びビデオペア中心指標244を使用するようになる。
【0050】
推奨システムが古いビデオ中心指標242及びビデオペア中心指標244を使用しないように、ビデオ中心指標242及びビデオペア中心指標を増分的に維持するための技術を提供する。1つの実施形態によれば、推奨システムが、過去の全ての視聴行動をまとめたユーザ履歴に新たなユーザ行動データを(ユーザ、ビデオ、強度)タプルの形で増分的に混ぜ込む。また、推奨システムは、新しい情報と古い情報を区別して、新たなユーザ活動を含むビデオペアのビデオペア中心指標244のみを更新する。
【0051】
具体的には、1つの実施形態では、特定のビデオに対する興味が新たに示されたことのみに応答して、この特定のビデオのビデオ中心CF指標を更新する。同様に、特定のビデオペアに属するビデオの少なくとも一方に対する興味が新たに示されたことのみに応答して、このビデオペアのビデオペア中心指標を更新する。多くのビデオは、どのユーザも興味を示さない期間が長いと考えられるので、再計算する必要があるビデオ中心指標の割合が減少し、これによりビデオ中心指標242及びビデオペア中心指標244をリアルタイムで最新の状態に維持するのに必要な処理が削減される。
【0052】
ビデオメタデータの増分更新
各ビデオ及びビデオペアのCBF指標は、推奨すべきビデオを選択するための根拠として使用されるMLスコアに影響を与えるので、CF指標と同様にこれらの指標も最新の状態に維持しておくことが重要である。CBF指標を効率的に最新の状態に維持するために、推奨システムが使用する内容ベースのパイプラインも増分的に維持する。例えば、1つの実施形態では、推奨システムに新しいビデオが取り込まれ、ビデオに関するメタデータが利用可能になると、このビデオが直ちに推奨可能になる。
【0053】
1つの実施形態では、内容ベースのパイプラインが、新しいビデオと既存のビデオが共通のメタデータを共有している場合にのみ新しいビデオがこれらのビデオと比較されるように実装される。1つの実施形態では、推奨が、(特徴名、特徴値)から(タイムスタンプ、ビデオ、ビデオメタデータ)へのマッピングを維持する。このような実施形態では、内容ベースのパイプラインが、以下の論理ステップを含むことができる。
・(特徴名、特徴値)から(タイムスタンプ、ビデオ、ビデオメタデータ)へのマッピングを生成し、新しいビデオをグローバルテーブルに混入する。
・同じ(特徴名、特徴値)を含むビデオをグループ分けする。
・グループ毎にビデオペアを生成する。
・ビデオペアを集約する。ペア毎に両者の差異(pairwise distance)を計算する。
【0054】
この両者の差異は、ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである時に、機械学習エンジン102に与えられるCBFスコアとすることができる。性能上の理由により、推奨システムは、タイプスタンプを調べて、新しいビデオと新しいビデオ、及び新しいビデオと古いビデオしか比較することができない(古いビデオと古いビデオは比較することができない)。
【0055】
1つの実施形態では、機械学習エンジン102に与えられるターゲットビデオの未加工のCBF特徴126が、このターゲットビデオの現在のビデオ中心指標242、及びこのビデオと比較ビデオとを含むビデオペアの現在のCBF指標を反映する。このことは、(例えば、ビデオに新たなタグが加えられるような)所与のビデオに関連するビデオメタデータが時間と共に大きく変化する環境では特に重要である。
【0056】
上述したように、1つの実施形態では、ビデオペア内の第2のビデオがコレクションに追加された時にこのペアのCBF指標が作成され、このCBF指標は、ビデオペア内のいずれかのビデオのビデオメタデータの変化に応答してのみ更新される。例えば、ビデオコレクションにビデオ204が追加された時にコレクション内にビデオ202が存在すると仮定する。コレクションにビデオ204が追加されたことに応答して、ビデオ202のビデオメタデータ232及びビデオ204のビデオメタデータ234に基づき、最初にビデオペア202/204のCBF指標272を作成することができる。
【0057】
CBF指標272は、一旦生成されると、ビデオ202又はビデオ204のいずれかのビデオメタデータが変化するまで変化しない。このような変化(例えば、ビデオペア内の一方のビデオへのタグの追加)が生じると、このペアのCBF指標272の再計算が引き起こされる。各ビデオは、複数のビデオペアに属することができるので、1つのビデオのビデオメタデータを更新することにより、多くのビデオペアのCBF指標の再計算を引き起こすことができる。例えば、ビデオ202のビデオメタデータ232を更新することにより、ビデオペア202/204のCBF指標272の再計算、及びビデオペア202/206のCBF指標274の再計算が引き起こされる。
【0058】
ビデオペアの事前計算スコア
図2には示していないが、各ビデオペアのビデオペア中心指標244は、事前に計算したCFスコア及び事前に計算したCBFスコアを含むこともできる。具体的には、ビデオ推奨が必要な時にビデオペアのCFスコア及びCBFスコアを生成するのではなく、元となるビデオペア指標が更新された時にこれらのスコアを事前に計算しておくことができる。この結果、ビデオ推奨が必要な時には、この事前に計算したスコアを記憶装置から単純に読み出して機械学習エンジン102に与えることができる。この計算を推奨(問合せ)時点で行うことと、映画情報の更新時点で行うことの間にはトレードオフが存在する。一般的な指針は、これらの相対的頻度を利用し、計算を行う頻度をできるだけ少なくする方法を利用することである。
【0059】
例えば、ビデオペア202/204のCFスコア124は、CF指標262に基づく。CF指標262は、ユーザがビデオ202又はビデオ204に興味を示したことに応答して更新される。ユーザが興味を示したことに応答してCF指標262を更新し、この更新されたCF指標262をCFアナライザ118に与えることにより、ビデオペア202/204のCFスコア124を生成することができる。その後、機械学習エンジン102を用いてビデオペア202/204に基づくMLスコア150を生成する際に、この事前に計算したCFスコアを、再計算するのではなく単純に読み取ればよい。
【0060】
同様に、ビデオペア202/204のCBFスコア130は、CBF指標272に基づく。CBF指標272は、ビデオ202又はビデオ204のビデオメタデータが更新されたことに応答して更新される。このようなメタデータ更新に応答してCBF指標272を更新し、この更新されたCBF指標272をCBFアナライザ128に与えることにより、ビデオペア202/204のCBFスコア130を生成することができる。その後、機械学習エンジン102を用いてビデオペア202/204に基づくMLスコア150を生成する際に、この事前に計算したCBFスコア130を、再計算するのではなく単純に読み取ればよい。
【0061】
指標を維持すべきビデオペアの選択
理論的には、コレクション内の2つのビデオの組み合わせ毎にビデオペア中心指標244を維持することができる。コレクション内の考えられるビデオペア毎にビデオペア中心指標を維持すると、コレクション内のビデオの数をNとした場合、N×(N−1)個の異なるビデオペア中心指標の組が生じる。多くのビデオペア中心指標の組を維持することは、コレクションが小さい場合には容易に実現されるが、コレクションが極めて大きな場合には不可能である。
【0062】
従って、ある実施形態によれば、あるビデオと所与のビデオとのビデオペアのビデオペア中心指標を維持することを正当化するために、このビデオが、所与のビデオと十分に類似していると見なされる前に、所与のビデオとの「ペアリング試験」に合格しなければならない。本明細書では、特定のビデオとのペアリング試験に合格したビデオを、その特定のビデオの「ペアビデオセット」と呼ぶ。従って、1つの実施形態では、ビデオYがビデオXのペアビデオセットである場合かつその場合に限り、所与のビデオペア(ビデオX/ビデオY)のビデオペア中心指標244が維持される。
【0063】
このペアリング試験は、例えば、これらのビデオが、ジャンル、俳優、監督といった特徴のいずれか1つを共有していなければならないものとすることができる。これは、特定のビデオペアのビデオペア中心指標を維持すべきかどうかを決定するために適用できる事実上無限の種類のペアリング試験のほんの一例にすぎない。このペアリング試験が厳しくなればなるほど、ビデオペア中心指標244を維持されるビデオペアは少なくなり、従ってビデオペア中心指標244を維持するオーバヘッドが低下する。
【0064】
しかしながら、ペアリング試験が厳しすぎる場合、推奨システムは、いくつかの有用な推奨を行わない可能性がある。例えば、ビデオXがビデオYのペアビデオセットでない場合には、たとえビデオYの多くの視聴者が実際にはビデオXの視聴を楽しめるとしても、ビデオYが比較ビデオである時に推奨システムがビデオXを推奨しないことがある。
【0065】
ペアリング試験は、任意に複雑化することもできる。例えば、この試験は以下のようなルールを有することができる。
・ビデオXの視聴率がN又はそれ以上である場合、このビデオXは、全てのビデオとのペアリング試験を満たすと自動的に見なされる。
・ビデオXの視聴率がN回の視聴未満であるが、M回の視聴よりも多い場合、このビデオXは、ジャンル、俳優、監督のうちの少なくとも1つを共有するビデオとのペアリング試験を満たすと見なされる。
・ビデオXの視聴回数がM未満である場合、このビデオXは、同じジャンル内のビデオとのペアリング試験を満たすと見なされる。
【0066】
これらのルールでは、ペアリング試験に合格するためにどの条件を満たさなければならないかがビデオの視聴率によって決まる。しかしながら、別のペアリング試験では、ペアリングのための動作条件が、他の要因に基づいて変動することができる。
【0067】
ペアリング試験は、ビデオペアのいずれかのビデオペア中心指標を記憶すべきかどうかを決定するために使用するというよりもむしろ、あるビデオペアの特定の種類のビデオペア中心指標を維持すべきかどうかを決定するために使用することができる。例えば、CF指標は、コレクション内の全てのビデオペアについて維持する一方で、CBF指標は、ペアリング試験に合格したビデオペアについてのみ維持することができる。或いは、CBF指標は、コレクション内の全てのビデオペアについて維持する一方で、CF指標は、ペアリング試験に合格したビデオペアについてのみ維持することもできる。
【0068】
さらに別の実施形態では、各タイプのビデオペア中心指標のための異なるペアリング試験が存在してもよい。例えば、推奨システムは、ペア内の両ビデオの視聴率が一定の閾値を超える場合に、このビデオペアのCF指標を記憶することができる。一方、推奨システムは、あるビデオペアが少なくとも1つの有意な特徴(ジャンル、俳優、監督など)を共有している場合に、このビデオペアのCBF指標を記憶することもできる。このような実施形態では、ビデオペアによって、ビデオペア中心指標244がCF指標とCBF指標をいずれも含むことができるものもあれば、CF指標又はCBF指標の両方ではなく一方しか有することができないものもある。
【0069】
ペアビデオセットに基づくビデオ・ツー・ビデオ推奨
1つの実施形態によれば、推奨システムが、ビデオ・ツー・ビデオ推奨を行う際に、ユーザが既に興味を示しているビデオのペアビデオセットであるビデオのMLスコアのみを生成する。例えば、あるユーザがビデオXを見終えたばかりであると仮定する。ユーザが見る次のビデオを推奨するために、機械学習エンジン102を用いて、ビデオXのペアビデオセット内の各ビデオのMLスコア150を生成する。
【0070】
この例では、ビデオXのペアビデオセット内の各ビデオの未加工のCF特徴120が、これらのビデオとビデオXとを含むビデオペアのCF指標を含む。これらの未加工のCF特徴120をCFアナライザ118に与えて、ビデオXの視聴者がターゲットビデオを視聴することにどれほどの興味を持っているかを予測するCFスコア124を生成する。
【0071】
同様に、未加工のCBF特徴126は、これらのビデオとビデオXとを含むビデオペアのCBF指標も含む。これらの未加工のCBF特徴126をCBFアナライザ128に与えて、ビデオXがターゲットビデオにどれほど類似しているかを予測するCBFスコア128を生成する。
【0072】
図1に示すように、未加工の特徴120及び126、並びに他の入力112を、スコア124及び130と共に機械学習エンジン102に与えることにより、機械学習エンジン102は、スコア124及び130の各々にどれほどの重みを与えるべきかを決定できるようになる。機械学習エンジン102は、この決定した重みに基づいて、ターゲットビデオのMLスコア150を生成する。
【0073】
ビデオXのペアビデオセット内の全てのビデオについてこの処理を繰り返した後、生成されたこれらのビデオのMLスコアを、どのビデオを推奨すべきかを決定するための根拠として使用する。
【0074】
減衰係数
一般に、あるユーザの最近の行動は、このユーザが遠い過去に取った行動よりもこのユーザの現在の興味を強く示す。従って、CFアナライザ118は、CFスコア124を生成する際に、ユーザ行動指標に与える重みをその行動がどれほど最近に行われたかに基づいて調整する「減衰」係数を適用することができる。
【0075】
例えば、CFアナライザ118は、CFスコア124を生成するために、ユーザがビデオペアの両ビデオを見たことを示すデータに対し、ユーザが両ビデオを見た直後には100%の、1週間後には80%の、及び2週間後には60%の重みを与えることができる。このユーザ行動の近時性は、ユーザログに取り込まれたタイムスタンプによって判断することができる。
【0076】
この減衰係数が高ければ高いほど、昔の行動に与えられる重みは低くなる。反対に、減衰係数が低ければ低いほど、昔の行動に与えられる重みは高くなる。高い減衰係数の例では、例えば、現在の行動には100%の重みが、1週間前の行動には10%の重みが与えられ、2週間よりも前の行動には重みが全く与えられない。
【0077】
CFアナライザ118が使用する減衰係数を変化させると、CFアナライザ118が生成するCFスコア124に影響が及ぶ。例えば、2週間前には多くのユーザが特定のビデオペアを見たが、同じビデオペアを先週見たユーザはほとんどいないと仮定する。これらの条件下では、高い減衰係数を使用すると、古い視聴情報にはほとんど重みが与えられなくなるのでCFスコア124が低くなる。一方、低い減衰係数を使用すると、古い使用情報がCFスコア124に大きく影響するようになるのでCFスコア124が高くなる。
【0078】
残念ながら、全ての状況において最適な結果をもたらす減衰係数は存在しない。例えば、高視聴ビデオの出版社からのビデオに高い減衰係数を使用すると、ビデオペア内の一方のビデオを見たユーザがビデオペア内の他方のビデオを見ることに興味があるかどうかを正確に予測するCFスコア124を生じることができる。このようなタイプのビデオでは、最近の視聴行動の量が、正確な予測を生成するのに十分であるため、高い減衰係数の使用が最適となり得る。この結果、これに応じて古い行動データを軽視することができる。
【0079】
一方、低い減衰係数を使用すると、ビデオがそれほど頻繁に見られていない出版社からのビデオのCFスコア124をより正確なものにすることができる。このような状況化では、CFスコア124が有用となるのに十分な行動データに基づくことを確実にするために、低い減衰係数を使用することが必要となり得る。従って、この例では、減衰係数とは無関係な入力パラメータ(ビデオ出版社)により、所与の状況において減衰係数を使用することが適切である旨の指示を機械学習エンジン102に与えることができる。
【0080】
ビデオペア毎にどの減衰要素が最も正確なCFスコア124を生じるかを推測しようとするのではなく、異なる減衰係数を使用することによって生じた複数のCFスコアをビデオペア毎に機械学習エンジン102に与える実施形態を提供する。このような実施形態を
図3に示す。
【0081】
図3を参照すると、3つの異なるCFスコア324、326、328を含むCF入力308が機械学習エンジン102に与えられる推奨システムを示している。CFスコア324、326及び328は、同じ未加工のCF特徴120に基づくものであるが、3つの異なる減衰係数314、31及び318を用いて生成される。機械学習エンジン102は、入力フィード306内の他の特徴(ビデオ制作者など)に基づいて、どのCFスコアがMLスコア150により大きな影響を与えるべきであるかを決定する。
【0082】
例えば、未加工のCBF特徴126が、ビデオペア内のビデオが特定の出版社からの視聴者の多い最新のニュースイベントに関するものであることを示す場合、機械学習エンジン102は、高い減衰係数に基づく重みを多くCFスコアに与えることができる。一方、未加工のCBF特徴126が、ビデオペア内のビデオが別の出版社からのめったに視聴されないクラシック映画であることを示す場合、機械学習エンジン102は、低い減衰係数に基づく重みを多くDVスコアに与えることができる。
【0083】
図3に示す実施形態では、3つの異なる減衰係数を使用しているが、使用する実際の減衰係数の数は実装毎に変化することができる。例えば、1つの実施形態では、所与のビデオペアに対し、各々が異なる減衰係数に基づく20個のCFスコアを生成することができる。以下でより詳細に説明するように、この技術は減衰係数に限定されず、あらゆる数の他のパラメータと共に使用することができる。
【0084】
オッズ比カットオフ
モデルを使用して予測を生成する場合、これらのモデルは、仮定に基づく一定の「モデルチューニングパラメータ」を使用する。上述した減衰係数は、このようなモデルチューニングパラメータの一例である。例えば、行動に与えられる重みを1週間後に50%減少させる減衰係数を使用するモデルは、将来的な行動を予測するための過去の行動の能力が1週間後に50%減少すると仮定する。
【0085】
この減衰係数は、CF及びCBFアナライザに実装されるモデルが使用できるモデルチューニングパラメータのほんの一例にすぎない。CFアナライザが使用するモデルは、減衰係数の他に、例えばオッズ比カットオフ閾値を用いて、2つのビデオが実際に関連し合っているかを予測する際に人気の高いビデオに起因する誤判定の数を減少させることができる。
【0086】
オッズ比カットオフを使用すると、極めて人気の高いビデオを非常に多くのユーザが見る可能性があり、これらのユーザがこの極めて人気の高いビデオに加えて他の何らかのビデオも見たからといって、この他のビデオがこの極めて人気の高いビデオに関連していることが正確に示されるわけではないという問題に対処することができる。極めて人気の高いビデオが関連性のない他のビデオに関連していると予測することを避けるために、CFアナライザ118が使用するモデルは、2つのビデオがユーザの視聴ログ内で(依存的に同時に見られるのとは対照的に)無関係に同時に見られる確率を計算することにより、2つのビデオに関連性があるかどうかを判定することができる。2つのビデオが無関係に同時に見られる確率が、モデルが使用するオッズ比カットオフ(例えば50%)よりも大きい場合、これらの2つのビデオは実際には互いに関連性がないと想定される。
【0087】
モデル(a)が使用するオッズ比カットオフは、減衰係数と同様に予測に影響を与え、(b)は、常に当てはまるとは限らない仮定に基づく。例えば、場合によっては、たとえ2つのビデオがユーザログ内で無関係に同時に見られる可能性は55%であると統計によって示された場合でも、これらは非常に関連性が高いこともある。この状況では、60%のオッズ比カットオフを使用すれば、モデルはこれらのビデオが実際に関連していると予測する。
【0088】
一方、たとえ2つのビデオがユーザログ内で無関係に同時に見られる可能性は45%であると統計によって示された場合でも、これらに関連性がないこともある。この状況では、40%のオッズ比カットオフを使用すれば、モデルはこれらのビデオが関連していないと予測する。
【0089】
正規化係数
正規化係数は、いくつかのモデルが使用できるモデルチューニングパラメータの別の例である。正規化係数は、一般にユーザの全体的な視聴行動に基づいてスコアを正規化しようと試みる。例えば、ユーザA及びユーザBが、いずれも50分間のビデオペア(v1、v2)を見たとする。しかしながら、ユーザAが見たのはビデオv1及びv2のみであるのに対し、ユーザBは何百本もの他のビデオを見たとする。このビデオペアに対するユーザBの注意は、より細かく分割されている。ビデオv1及びv2の関連性に関するユーザAからの承認の方を、ユーザBからのものよりも重要とすべきである。この考えは、外向きのリンクに与えられる重みは各ウェブページが有することができる外向きのリンクの数に部分的に依存するという、ウェブページのランキングで使用されるページランク(PageRank)と同じものである。
【0090】
異なるモデルチューニングパラメータを用いた並列計算
モデルがモデルチューニングパラメータに使用する値(減衰係数、正規化係数、オッズ比カットオフなど)は、必ずしも全ての状況に当てはまらない仮定に基づくので、異なるモデルチューニングパラメータ値の組み合わせに関するスコアが機械学習エンジン102に同時に与えられる実施形態を提供する。
【0091】
例えば、
図3には、各々が異なる減衰係数値に関連する3つのCFスコア324、326及び328を機械学習エンジン102に同時に与えることを示している。別の実施形態では、いくつかの(減衰係数、オッズ比カットオフ)値の組み合わせ毎に1つのCFスコアを生成することもできる。例えば、ある実施形態では、減衰係数を表す3つの異なる値(X、Y、Z)、及び2つの異なるオッズ比カットオフ閾値(A、B)を使用することができる。このような実施形態では、モデルチューニングパラメータ値の組み合わせ(X、A)、(X、B)、(Y、A)、(Y、B)、(Z、A)、(Z、B)毎に1つの6つのCFスコアが機械学習エンジン102に同時に与えられる。
【0092】
この例では、減衰係数とオッズ比カットオフ閾値のモデルチューニングパラメータを使用しているが、いずれのタイプ及び数のモデルチューニングパラメータにも同じ並列スコア生成技術を使用することができる。例えば、特定のCFアナライザは、4つの異なるモデルチューニングパラメータを採用するモデルを使用することができる。各モデルチューニングパラメータには、テストすべき実行可能値が3つ存在することができる。このような実施形態では、モデルチューニングパラメータ値の異なる組み合わせが81個存在する。従って、機械学習エンジン102には、(モデルチューニングパラメータ値の組み合わせ毎に1つの)81個のCFスコアを同時に与えることができる。
【0093】
上述した減衰係数の例と同様に、MLスコアを生成する際に各CFスコアに与えられる重みも、機械学習エンジン102が受け取る他の入力に少なくとも部分的に基づく。
図3に示すように、これらの他の入力は、未加工のCF特徴120、未加工のCBF特徴126、CBFスコア130及びあらゆる数の他の入力112を含む。
【0094】
柔軟な目的関数
機械学習エンジン102は、ビデオ・ツー・ビデオ推奨の文脈で使用される場合、ユーザが既にビデオA(比較ビデオ)を見たと仮定した時にこのユーザがビデオB(ターゲットビデオ)を見る確率を予測するMLスコアを生成する。実際には、出版社が達成を最適化したいと思う目標は複数存在する。目標の例は、限定ではないが以下を含む。
・総映画視聴時間を増やすこと
・各ユーザが見るビデオの数を増やすこと
・ユーザが各(推奨される)ビデオの視聴に費やす総分数を増やすこと
・各ビデオ視聴からの広告収益を増やすこと
・到達率を増やすこと
・1つの映画当たりの収益を増やすこと
【0095】
この課題に取り組むために、最初に予測を複数の異なる下位要素に反映させる実施形態を提供する。これらの要素は、例えば以下を含むことができる。
・P(B|A)−ユーザがAを見たと仮定した時にBの視聴を楽しむ確率
・R(B)−Bの各視聴からの予想収益(今後の活動)
・P(ad|u、B)−Bを見ているユーザuが広告をクリックする確率
【0096】
機械学習エンジンを用いてこれらの各要素のスコアを生成した後、特定の目標セットに基づいてこれらの要素スコアを組み合わせ、推奨すべき候補ビデオを選択するための根拠として使用する総合MLスコアを生成する。
【0097】
図4は、指定目標430に基づいて総合MLスコア440を生成するために目標ベースの要素結合器410により組み合わせられるML要素スコア404、406及び408を生成するように訓練された機械学習エンジン402のブロック図である。この例では、ML要素スコア404、406及び408が、上述した目的関数P(B|A)、R(B)、及びP(ad|u、B)に対応することができる。目標ベースの要素結合器410が総合MLスコア440を生成する際に各要素スコアに与える重みは、目標ベースの要素結合器410に与えられる目標情報430に基づく。
【0098】
例えば、目標430が、収益よりもユーザの関与の方が大いに重要であり、広告よりも収益の方がわずかに重要であることを示していると仮定する。目標ベースの結合器410は、このような目標情報430に基づいて、要素スコア404、406及び408にそれぞれ0.6、0.25及び0.15だけ重み付けすることができる。
【0099】
機械学習エンジン402は、単一のエンジンとして示しているが、各々が異なるML要素スコアを生成するように訓練された3つの異なるエンジンとして実装することもできる。実際の要素スコアの数、及び目標ベースの要素結合器410が総合MLスコア440を生成する際にこれらのスコアにどのように重みを割り当てるかは、実装毎に異なってもよい。例えば、各々が異なる目的関数に基づいて予測を反映する多数のML要素スコアを単一の推奨システムによって生成することもできる。目標ベースの要素結合器410は、目標情報430に基づいて、これらのML要素スコアを様々な方法で組み合わせることができる。
【0100】
1つの実施形態では、目標ベースの要素結合器410に複数の目標セットが与えられ、従って複数の総合MLスコアが生成される。このような実施形態では、各ビデオペアの組み合わせが複数の総合MLスコアを有し、ビデオを推奨すべきかどうかを決定するために使用する実際のMLスコアは、推奨を行うべき時点で有効な目標に基づく。
【0101】
要素スコアの入れ替え
特定の目標セットを満たす推奨を行うには、要素スコアを組み合わせて、推奨すべき候補ビデオを決定するための根拠として使用される総合MLスコア440にすればよい。別の実施形態では、総合MLスコア440が生成されない。代わりに、推奨システムは、推奨を行う際に要素スコアを入れ替えて、推奨すべきビデオを決定するための根拠として使用する。
【0102】
例えば、推奨システムは、ML要素スコア404、406及び408にそれぞれ0.6、0.25及び0.15の重みを与えることによって総合MLスコア440を生成する代わりに、時間の60%をML要素スコア404に基づいて、時間の25%をML要素スコア406に基づいて、及び時間の15%を要素スコア408に基づいて推奨を行うことができる。総合MLスコア440を生成する実施形態と同様に、ML要素スコアを入れ替える実施形態は、推奨を行うべき時点で有効な目標に基づいて入れ替えを行う。
【0103】
1つの実施形態によれば、ML要素スコアを入れ替えるパターンが一様である必要はない。例えば、推奨システムは、ユーザを中心にして入れ替えを行うことができ、この場合ユーザには、ユーザの関与を予測するML要素スコアに基づく推奨が最初に提供される。推奨システムは、ユーザの関与に焦点を当てたいくつかの推奨をユーザに提示して初めて、収益最大化などの他の目的関数に基づくいくつかの推奨を提供し始めることができる。収益を最大化させる推奨を提示された時のユーザの行動により、ユーザの関与が特定の閾値を下回ったことが示された場合、推奨システムは、主に又は排他的にユーザの関与に関連する要素スコアに基づく推奨を提供することに戻すことができる。
【0104】
制約付き調査
1つの実施形態によれば、上述したように、ユーザにビデオを推奨する際にユーザの行動を掌握し、このユーザの行動を用いて、推奨システムが使用するメタデータを更新する。しかしながら、ユーザに常に「最適な」ビデオ推奨(MLスコアの最も高いビデオなど)が提示されている限り、「最適でない」推奨に対してユーザがどのように反応するかに関する行動データは収集されない。推奨システムは、最適でない推奨に対するユーザの反応に関する情報を収集していなければ、推奨されなかったビデオを推奨すべきとなった場合にシステム自体を訂正することが困難になる。
【0105】
例えば、ビデオBの視聴者にとってビデオAが興味深いものであると仮定する。しかしながら、ビデオAの視聴履歴が存在しない場合、機械学習エンジン102は、ビデオペアA及びBに関して低いMLスコアを生成する。この低いMLスコアに起因して、ビデオBの視聴者にはビデオAが推奨されず、従ってビデオBのほとんどの視聴者はビデオAがどのようなものであるかが分からない。この結果、ビデオペアA及びBのMLスコアは低い状態のままとなる。
【0106】
このような問題を避けるために、最適でない推奨を定期的にユーザに提示することにより、最適でない推奨に関する行動データを収集することができる。最適でない推奨の提示は、本来ユーザに提示するビデオの組以外の推奨をユーザに提示するので、「調査」と呼ばれる。しかしながら、調査が多すぎたり、又は誤った状況下で調査を行ったりすると、ユーザ体験が受け入れ難いほど悪化することがある。
【0107】
従って、1つの実施形態によれば、推奨システムが調査に制約を課す。具体的には、調査がビデオ推奨の目標に与えるマイナス影響を制限する形で調査を行う。例えば、推奨システムは、ユーザに推奨すべきビデオの選択を定期的にランダム化することができる。一方、ランダム選択を行う元のプールから、マイナス影響が一定の閾値を上回ると予測されるあらゆるビデオを除外することにより、ランダム選択を制約することもできる。
【0108】
例えば、調査中には、ランダム選択を行う元のビデオのプールが、比較ビデオに対して何らかの閾値Xを上回るCFスコア、又は何らかの閾値Yを上回るCBFスコア、又は何らかの閾値Zを上回るMFスコアを有するビデオのみを含むことができる。ビデオの選択プールに課される特定の制約ルールは、任意に複雑なものとすることもできる。例えば、((いずれかの減衰係数に関するCFスコア>X)又は(ML要素スコアのいずれか1つ>Y)及び(総合MLスコア>Z))の場合に、ビデオを選択プールにふさわしいものとすることができる。
【0109】
1つの実施形態によれば、ビデオ推奨に多腕バンディット技術を用いて、調査選択処理における各変数が現在の目標の達成に与える影響を学習し、マイナス影響が最も低いと予測される変数を調整する。例えば、イプシロングリーディ法を用いて、MLシステムにより推奨されるビデオ(ベストリーバー)を試行の1−∈の割合で選択し、他のプールに属するビデオ(ランダム、動向、一定の閾値を上回るCBFスコア)を∈の割合で(一様な確率で)選択する。典型的なパラメータ値は、∈−0.1とすることができるが、この値は、状況及び偏りに応じて幅広く変化することができる。
【0110】
ランタイム性能強化
本明細書で説明した技術を用いてビデオ推奨を行う際には、様々なランタイム性能強化を行うことができる。例えば、いくつかの実施形態では、ユーザクリックデータ(非常に小さい)を特徴(比較的大きい)と統合する際にブルームフィルタを使用して、機械学習システムへのトレーニング入力を生成することができる。具体的には、1つの実施形態では、ユーザクリックデータを用いてブルームフィルタを構築し、このフィルタを用いて、関連するクリックデータを有していない全ての無関係なCF及びCBF特徴を除去する。このことは、様々なテーブルにインデックスが構築されないハドゥープなどのデータ処理システムにとって特に有用である。
【0111】
ビデオ推奨システムが使用できる別のランタイム強化には、非対称統合がある。具体的には、CBF特徴とCF特徴を統合する場合、非対称統合を用いて、新たな内容のための限られた行動データが存在するという事実を利用することができる。1つの実施形態では、これらの特徴を、生成された時点に応じて異なるバケットに編成する。推奨システムは、直前の数時間内に生成されたCF特徴にCBF特徴を統合することのみを行う。これにより、機械学習システムのための訓練データ及びテストデータを生成するのに必要な時間が大幅に削減される。
【0112】
ハードウェアの概要
1つの実施形態によれば、本明細書で説明する技術が、1又はそれ以上の専用コンピュータ装置により実装される。この専用コンピュータ装置は、これらの技術を実行するためのハードウェア組み込み型とすることもでき、或いはこれらの技術を実行するように永続的にプログラムされた1又はそれ以上の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などのデジタル電子装置を含むこともでき、或いはファームウェア、メモリ、その他の記憶装置、又はこれらの組み合わせに含まれるプログラム命令に従ってこれらの技術を実行するようにプログラムされた1又はそれ以上の汎用ハードウェアプロセッサを含むこともできる。このような専用コンピュータ装置は、カスタムハードワイヤードロジック、ASIC、又はFPGAと、これらの技術を実現するためのカスタムプログラミングとを組み合わせることもできる。この専用コンピュータ装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルド装置、ネットワーク装置、又はこれらの技術を実装するためのハードワイヤードロジック及び/又はプログラムロジックを組み込んだ他のいずれの装置であってもよい。
【0113】
例えば、
図5は、本発明の実施形態を実装できるコンピュータシステム500を示すブロック図である。コンピュータシステム500は、情報を通信するためのバス502又はその他の通信機構、及びバス502に結合された、情報を処理するためのハードウェアプロセッサ504を含む。ハードウェアプロセッサ504は、例えば汎用マイクロプロセッサとすることができる。
【0114】
コンピュータシステム500は、バス502に結合された、情報及びプロセッサ504により実行される命令を記憶するためのランダムアクセスメモリ(RAM)又はその他の動的記憶装置などのメインメモリ506も含む。メインメモリ506は、プロセッサ504により実行される命令の実行中に一時的変数又はその他の中間情報を記憶するために使用することもできる。このような命令は、プロセッサ504がアクセス可能な非一時的記憶媒体に記憶された場合、コンピュータシステム500を、命令内で指示される動作を実行するようにカスタマイズされた専用機械の状態にする。
【0115】
コンピュータシステム500は、バス502に結合された、静的情報及びプロセッサ504のための命令を記憶するリードオンリメモリ(ROM)508又はその他の静的記憶装置をさらに含む。情報及び命令を記憶するための磁気ディスク又は光学ディスクなどの記憶装置510も設けられ、バス502に結合される。
【0116】
コンピュータシステム500は、バス502を介して、コンピュータユーザに情報を表示するためのブラウン管(CRT)などのディスプレイ512に結合することができる。バス502には、プロセッサ504に情報及びコマンド選択を通信するための英数字キー及びその他のキーを含む入力装置514も結合される。別の種類のユーザ入力装置には、プロセッサ504に方向情報及びコマンド選択を通信してディスプレイ512上のカーソルの動きを制御するためのマウス、トラックボール又はカーソル方向キーなどのカーソル制御516がある。通常、この入力装置は、第1の軸(例えば、x)と第2の軸(例えば、y)からなる2つの軸内の2つの自由度を有して、装置が平面上の位置を指定できるようにする。
【0117】
コンピュータシステム500は、カスタマイズされたハードワイヤードロジック、1又はそれ以上のASIC又はFPGA、ファームウェア、及び/又はコンピュータシステムと組み合わせてコンピュータシステム500を専用機械にする、又はそのようにプログラムするプログラム論理を用いて、本明細書で説明した技術を実装することができる。1つの実施形態によれば、プロセッサ504がメインメモリ506に含まれる1又はそれ以上の命令の1又はそれ以上のシーケンスを実行することに応答して、本明細書の技術がコンピュータシステム500により実行される。このような命令は、記憶装置510などの別の記憶媒体からメインメモリ506に読み込むことができる。プロセッサ504は、メインメモリ506に含まれる命令シーケンスを実行することにより、本明細書で説明した処理ステップを実行するようになる。別の実施形態では、ソフトウェア命令の代わりに又はこれと組み合わせてハードワイヤード回路を使用することができる。
【0118】
本明細書で使用する「記憶媒体」という用語は、データ及び/又は機械を特定の方法で動作させる命令を記憶するあらゆる非一時的媒体を意味する。このような記憶媒体は、不揮発性媒体及び/又は揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶装置510などの光学又は磁気ディスクを含む。揮発性媒体は、メインメモリ506などの動的メモリを含む。一般的な記憶媒体としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、固体ドライブ、磁気テープ、又はその他のあらゆる磁気データ記憶媒体、CD−ROM、その他のあらゆる光学データ記憶媒体、穴パターンを有するあらゆる物理媒体、RAM、PROM、及びEPROM、FLASH−EPROM、NVRAM、その他のあらゆるメモリチップ又はカートリッジが挙げられる。
【0119】
記憶媒体は、送信媒体とは異なるが、これと共に使用することができる。送信媒体は、記憶媒体間の情報の転送に関与する。例えば、送信媒体としては、バス502を含む配線を含む、同軸ケーブル、銅線及び光ファイバが挙げられる。送信媒体は、電波及び赤外線データ通信中に生成されるような音波又は光波の形を取ることもできる。
【0120】
実行のためにプロセッサ504に1又はそれ以上の命令の1又はそれ以上のシーケンスを運ぶことには、様々な形の媒体が関与することができる。例えば、最初に遠隔コンピュータの磁気ディスク又は固体ドライブで命令を運ぶことができる。遠隔コンピュータは、その動的メモリにこれらの命令をロードし、モデムを用いて電話回線を介してこの命令を送信することができる。コンピュータシステム500のローカルなモデムが、電話回線上でデータを受け取り、赤外線送信機を使用してデータを赤外線信号に変換することができる。この赤外線信号内で運ばれるデータを赤外線検出器が受け取り、このデータを適当な回路によってバス702上に配置することができる。バス502は、このデータをメインメモリ506に運び、ここからプロセッサ504が命令を取り出して実行する。任意に、メインメモリ506が受け取った命令を、プロセッサ504による実行前又は実行後のいずれかに記憶装置510に記憶することもできる。
【0121】
コンピュータシステム500は、バス502に結合された通信インターフェイス518も含む。通信インターフェイス518は、ローカルネットワーク522に接続されたネットワークリンク520に結合して双方向データ通信を提供する。例えば、通信インターフェイス518は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、又は対応する種類の電話回線へのデータ通信接続を提供するモデムとすることができる。別の例として、通信インターフェイス518を、互換性のあるLANにデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードとすることもできる。無線リンクを実装することもできる。あらゆるこのような実装では、通信インターフェイス518が、様々な種類の情報を表すデジタルデータストリームを運ぶ電気、電磁又は光学信号を送受信する。
【0122】
通常、ネットワークリンク520は、1又はそれ以上のネットワークを介して他のデータ装置にデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を介したホストコンピュータ524への、又はインターネットサービスプロバイダ(ISP)526によって動作するデータ機器への接続を提供することができる。さらに、ISP526は、今では一般的に「インターネット」528と呼ばれるワールドワイドパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク522及びインターネット528はいずれも、デジタルデータストリームを運ぶ電気、電磁又は光学信号を使用する。コンピュータシステム500との間でデジタルデータを運ぶ、様々なネットワークを介した信号及びネットワークリンク520上の通信インターフェイス518を介した信号は、送信媒体の形態の一例である。
【0123】
コンピュータシステム500は、(単複の)ネットワーク、ネットワークリンク520及び通信インターフェイス518を介してメッセージを送信し、プログラムコードを含むデータを受け取ることができる。インターネットの例では、サーバ530が、インターネット528、ISP526、ローカルネットワーク522及び通信インターフェイス518を介して、アプリケーションプログラムのための要求されたコードを送信することができる。
【0124】
プロセッサ504は、この受信コードを受信時に実行することもでき、及び/又は後で実行できるように記憶装置510又はその他の不揮発性記憶装置に記憶することもできる。
【0125】
上述した明細書では、実装によって異なり得る数多くの特定の詳細に関連して本発明の実施形態を説明した。従って、明細書及び図面については、限定的な意味ではなく例示的な意味でとらえるべきである。本発明の範囲、及び出願人が何を発明の範囲として意図しているかを示す唯一かつ排他的なものは、本出願から特定の形で生じる請求項の組の逐語的及び等価的な範囲であり、これにはあらゆる今後の補正が含まれる。