(57)【特許請求の範囲】
【請求項１】
一又は二以上のプロセッサが一又は二以上のコンピュータ読出可能な媒体に保存されている指示を実行することによって、コンピュータが実行する方法であって、
候補ビデオの組内の各ビデオについて、入力フィードを機械学習エンジンに与えることによって複数の機械学習（ＭＬ）スコアを前記一又は二以上のプロセッサによって生成するステップを含み、
前記候補ビデオの組内の特定のビデオのための前記入力フィードは、
１又はそれ以上の未加工の協調フィルタリング特徴と、
前記１又はそれ以上の未加工の協調フィルタリング特徴に基づいて生成された協調フィルタリングスコアと、
１又はそれ以上の未加工の内容ベースフィルタリング特徴と、
前記１又はそれ以上の未加工の内容ベースフィルタリング特徴に基づいて生成された内容ベースフィルタリングスコアと、
を少なくとも有し、
方法は、
前記特定のビデオの前記ＭＬスコアを生成する際に、前記機械学習エンジンが、前記１又はそれ以上の未加工の協調フィルタリング特徴及び前記１又はそれ以上の未加工の内容ベースフィルタリング特徴に少なくとも部分的に基づいて、前記協調フィルタリングスコア及び前記内容ベースフィルタリングスコアに与えるべき重みを決定するステップと、
前記ＭＬスコアに少なくとも部分的に基づいて、特定のユーザに推奨すべき１又はそれ以上のビデオを前記候補ビデオの組から選択するステップと、
を含むことを特徴とする方法。
【請求項２】
前記特定のビデオのための前記入力フィードは、前記特定のビデオと比較対象のビデオとを含むビデオペアのビデオペア中心指標を含み、
前記１又はそれ以上の未加工の協調フィルタリング特徴は、前記ビデオペアの協調フィルタリング指標を含み、
前記１又はそれ以上の未加工の内容ベースフィルタリング特徴は、前記ビデオペアの内容ベースフィルタリング指標を含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ビデオペアの前記協調フィルタリング指標は、前記ビデオペア内の前記ビデオの一方又はそれ以上に対するユーザの関心が新たに示されたことを検出したことのみに応答して更新される、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記ビデオペアの前記内容ベースフィルタリング指標は、前記ビデオペアの前記ビデオの一方又はそれ以上のビデオメタデータの新たな変化を検出したことのみに応答して更新される、
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記ビデオペアの前記ビデオペア中心指標は、特定の指標の組を含み、
前記特定の指標の組は、前記ビデオペアが特定のペアリング試験を満たす場合かつその場合に限り前記ビデオペアのために維持される、
ことを特徴とする請求項２に記載の方法。
【請求項６】
前記特定の指標の組は、前記ビデオペア中心指標を全て含む、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記特定の指標の組は、
前記ビデオペアの前記協調フィルタリング指標、
前記ビデオペアの前記内容ベースフィルタリング指標、
のうちの一方のみを含む、
ことを特徴とする請求項５に記載の方法。
【請求項８】
前記特定のペアリング試験とは異なる第２のペアリング試験を用いて、前記ビデオペアに関し、
前記ビデオペアの前記協調フィルタリング指標、
前記ビデオペアの前記内容ベースフィルタリング指標、
のうちの他方を維持すべきかどうかを決定するステップをさらに含む、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記特定のビデオのための前記入力フィードは、複数の協調フィルタリングスコアを含み、
前記複数の協調フィルタリングスコアの各協調フィルタリングスコアは、前記複数の協調フィルタリングスコアの他の各協調フィルタリングスコアと前記同じ未加工の協調フィルタリング特徴に基づくが、異なる減衰係数に基づく、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記特定のビデオについて生成される前記ＭＬスコアは、前記機械学習エンジンが前記特定のビデオについて生成する複数の要素スコアのうちの１つであり、
前記方法は、目標情報に基づき複数の要素スコアを組み合わせて、前記特定のビデオの総合ＭＬスコアを生成するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記特定のビデオについて生成される前記ＭＬスコアは、前記機械学習エンジンが前記特定のビデオについて生成する複数の要素スコアのうちの１つであり、
前記方法は、前記複数の要素スコアのうちの、前記特定のユーザにどのビデオを推奨すべきかを選択するための根拠として使用する要素スコアを入れ替えるステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１２】
一又は二以上のプロセッサが一又は二以上のコンピュータ読出可能な媒体に保存されている指示を実行することによって、コンピュータが実行する方法であって、
候補ビデオの組内の各ビデオのための対応する入力フィードを機械学習エンジンに与えることによって複数の機械学習（ＭＬ）スコアを前記一又は二以上のプロセッサによって生成するステップを含み、前記候補ビデオの組内の特定のビデオに対応する入力フィードは複数のパラメータ値を有し、
前記ＭＬスコアに少なくとも部分的に基づいて、特定のユーザに推奨すべき、前記特定のビデオを含む１又はそれ以上のビデオを前記候補ビデオの組から選択するステップと、
前記特定のビデオについて、前記特定のビデオのＭＬスコアを生成した際に、前記機械学習エンジンが前記複数のパラメータ値をどのように重み付けしたかに基づいて、複数の考えられる推奨理由から推奨理由を決定するステップと、
前記特定のビデオの推奨に関連して、前記特定のユーザに前記推奨理由の表示が提示されるようにするステップと、
をさらに含むことを特徴とする方法。
【請求項１３】
一又は二以上のプロセッサが一又は二以上のコンピュータ読出可能な媒体に保存されている指示を実行することによって、コンピュータが実行する方法であって、
候補ビデオの組内の各ビデオのための対応する入力フィードを機械学習エンジンに与えることによって複数の機械学習（ＭＬ）スコアを前記一又は二以上のプロセッサによって生成するステップを含み、
前記候補ビデオの組内の特定のビデオに対応する前記入力フィードは、複数のパラメータ値を含み、
前記複数のパラメータ値は、第１のパラメータ値の組及び第２のパラメータ値の組を含み、
前記第１のパラメータ値の組は、特定のモデルチューニングパラメータを採用するモデルに基づいて生成され、
前記第１のパラメータ値の組は、前記特定のモデルチューニングパラメータの複数のモデルチューニングパラメータ値の各モデルチューニングパラメータ値毎に、前記モデルチューニングパラメータ値に基づく少なくとも１つのパラメータ値を含み、
前記第２のパラメータ値の組は、前記モデルチューニングパラメータとは無関係な１又はそれ以上のパラメータ値を含み、
前記機械学習エンジンは、前記特定のビデオのＭＬスコアを生成する際に、前記第２のパラメータ値の組内の前記パラメータ値に少なくとも部分的に基づいて、前記第１のパラメータ値の組内の各パラメータ値に与えるべき重みを決定し、
前記ＭＬスコアに少なくとも部分的に基づいて、特定のユーザに推奨すべき１又はそれ以上のビデオを前記候補ビデオの組から選択するステップをさらに含む、
ことを特徴とする方法。
【請求項１４】
前記特定のモデルチューニングパラメータは、前記モデルにより使用される減衰係数である、
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記特定のモデルチューニングパラメータは、前記モデルにより使用されるオッズ比カットオフである、
ことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記特定のモデルチューニングパラメータは、前記モデルにより使用される正規化係数である、
ことを特徴とする請求項１３に記載の方法。
【請求項１７】
前記モデルは、複数のモデルチューニングパラメータを使用し、
前記第１のパラメータ値の組内の各パラメータ値は、前記複数のモデルチューニングパラメータのモデルチューニングパラメータ値の異なる組み合わせに基づく、
ことを特徴とする請求項１３に記載の方法。
【請求項１８】
ユーザが最近交信したビデオを示す行動データに基づいてブルームフィルタを構築するステップと、
前記ブルームフィルタを用いて、前記ユーザが最近交信したビデオに関連しない協調フィルタリング特徴及び内容ベースフィルタリング特徴を除去することにより、前記機械学習エンジンのための訓練入力を生成するステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１９】
内容ベースフィルタリング特徴が、閾値期間内に生成された協調フィルタリング特徴のみと統合されるように、前記内容ベースフィルタリング特徴と前記協調フィルタリング特徴の非対称統合を行うステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項２０】
前記ＭＬスコアに少なくとも部分的に基づいて候補ビデオをプールに編成することによって制約付き調査を行い、多腕バンディット技術を用いて前記プールから推奨すべきビデオを選択するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項２１】
前記多腕バンディット技術は、イプシロングリーディ法を含む、
ことを特徴とする請求項２０に記載の方法。
【請求項２２】
１又はそれ以上のプロセッサによって実行された時に、請求項１から２１のいずれか１項に記載の方法を実行させる命令を有する、
ことを特徴とする１又はそれ以上のコンピュータ可読媒体。
【請求項２３】
請求項１から２１のいずれか１項に記載の方法を実行させるように構成された１又はそれ以上のコンピュータ装置を備える、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自動推奨に関し、具体的には、ユーザにコンテンツを自動的に推奨するためのシステムに関する。
【背景技術】
【０００２】
ネットワークを介してビデオ資産などのコンテンツをユーザに配信することはますます一般的になってきた。映画、テレビ番組、家庭用ビデオ、ハウツービデオ及び音楽ビデオは、インターネット、電話ネットワーク、イントラネット、ケーブル接続などを介して現在提供されているビデオ資産の種類のわずかな例にすぎない。ネットワークを介して取得されるビデオ資産は、ビデオ資産全体をダウンロードした後に、又はビデオ資産の配信（ストリーミング）中に再生することができる。
【０００３】
消費に利用できる大量のビデオ資産を考えた場合、ユーザが最も興味を持ちそうなビデオ資産を識別する援助を行うことがますます重要になってきた。例えば、ユーザが大きな興味を持っている１０本のビデオをユーザに推奨するシステムがあれば、１００万本のそれほど興味のないビデオの中からこれらの同じ１０本のビデオを検索するためのツールを提供するだけのシステムよりも、ユーザの体験ははるかに良いものになると思われる。
【０００４】
ユーザにビデオ資産を推奨するための様々な方法が使用されているが、これらはそれぞれ何らかの欠点を有する。例えば、１つの「動向的」アプローチは、利用人口全体としてどのビデオ資産が最も消費されているかを追跡し、これらの最も消費されているビデオ資産を全てのユーザに推奨することである。別の動向的アプローチは、利用人口全体の中で現在関心が高まっているビデオを追跡し、これらのビデオを全てのユーザに推奨することである。これらの「ワン・シュー・フィッツ・オール（万能サイズ）」の動向的アプローチは、平均的ユーザに対応する興味を有しているユーザには功を奏するが、全てのユーザに功を奏するものではない。
【０００５】
「ビデオ・ツー・ビデオ（ビデオ対ビデオ）」アプローチは、各ユーザに対し、そのユーザが消費したばかりのビデオ資産と何らかの共通点があるビデオ資産を推奨するものである。例えば、あるユーザが映画Ｘを消費した後に、このユーザに対し、映画Ｘと同じジャンル、映画Ｘと同じ主演俳優、映画Ｘと同じ監督、映画Ｘと同じ年代などの映画を推奨することができる。ビデオ・ツー・ビデオアプローチは、ユーザの興味の範囲が狭い場合には功を奏するが、特定のタイプのビデオに対するユーザの欲求が満たされており、今度は何か異なるものを消費したいと望む場合にはそれほど功を奏しない。
【０００６】
ビデオ資産を推奨するための「ユーザ・ツー・ビデオ（ユーザ対ビデオ）」アプローチは、ある期間にわたるユーザの資産消費行動をモニタするものである。あるユーザのビデオ消費履歴に基づいて、そのユーザの一般的興味を引き出すことができる。次に、これらの引き出された興味を使用して、ユーザが興味を持つと思われる、推奨として提案できる他のビデオを識別することができる。ユーザ・ツー・ビデオアプローチは、ユーザの消費履歴がユーザの現在の興味を正確に反映している限りは功を奏する。しかしながら、ユーザの履歴が不十分であり、又はユーザの現在の興味が過去に消費したものとは異なる何かにある場合には、ユーザ・ツー・ビデオに基づく推奨は特に有用でない。
【０００７】
本節で説明したアプローチは、追求できるアプローチではあるが、必ずしも以前に想到又は追求されたことのあるアプローチではない。従って、他に指示がない限り、本節で説明したアプローチを、いずれも本節に含まれているという理由のみで先行技術と見なすべきではない。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態による、ビデオの関心スコアを予測するために機械学習エンジンをどのように使用できるかを示すブロック図である。
【図２】本発明の実施形態による、推奨システムが維持できる様々なタイプのメタデータを示すブロック図である。
【図３】本発明の実施形態による、モデルチューニングパラメータの異なる値について機械学習エンジンに複数のスコアをどのように与えることができるかを示すブロック図である。
【図４】本発明の実施形態による、複数の異なるスコア要素を生成し、目標に基づいて要素スコアを組み合わせることを示すブロック図である。
【図５】本発明の実施形態による、ビデオ推奨システムを実装するために使用できるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の説明では、本発明を完全に理解できるようにするために、説明を目的として数多くの特定の詳細を記載する。しかしながら、これらの特定の詳細を伴わずに本発明を実施できることが明らかになるであろう。その他の場合、本発明を不必要に曖昧にしないために、周知の構造及び装置についてはブロック図形式で示す。
【００１０】
全体的概要
ユーザに候補ビデオを推奨することによって目標が満たされる程度を候補ビデオ毎に予測することにより、ユーザにビデオ資産を推奨するための技術を提供する。ユーザの関与を目標とする場合、予測は、ユーザが候補ビデオに興味を持つと思われる度合いを示すことができる。本発明の１つの態様によれば、訓練された機械学習エンジンに、協調フィルタリング（ＣＦ）パラメータ値及び内容ベースフィルタリング（ＣＢＦ）パラメータ値の両方が与えられる。機械学習エンジンは、これらの入力パラメータ値に基づいて、ユーザに特定のビデオを推奨することによって特定の目標が満たされる度合いを反映した機械学習スコア（「ＭＬスコア」）を生成する。目標がユーザの視聴興味を満たすことである場合、ＭＬスコアは、特定のユーザがビデオを見ることにどれほど興味を示すかの予測となる。
【００１１】
説明を目的として、本明細書では、ＭＬスコアを生成する対象のユーザを「ターゲットユーザ」と呼び、ＭＬスコアを生成する対象のビデオを「ターゲットビデオ」と呼ぶ。１つの実施形態では、候補ビデオの組内のビデオ毎に生成されるＭＬスコアを、候補ビデオの中からターゲットユーザに推奨するためのビデオを選択するための根拠として使用する。
【００１２】
ＭＬスコアを生成する際には、各入力パラメータがＭＬスコアに影響を与える度合いを変化させることができる。例えば、最近になってコレクションに追加されたビデオの消費履歴の量は多くない。従って、消費履歴に関連するパラメータがＭＬスコアに与える影響は、ビデオ自体の特徴（長さ、ジャンル、タグなど）が与える影響よりも少ない。一方、消費履歴の長いビデオでは、消費履歴に関連するパラメータがＭＬスコアに大きな影響を与える。１つの実施形態では、機械学習エンジンが、ＭＬスコアと共に、どの特徴がＭＬスコアに最も大きなプラス効果を与えたかについての指示を生成する。各ビデオ推奨では、この情報に基づいて、この特定のビデオがなぜ推奨されているかについての説明をユーザに提供することができる。
【００１３】
ビデオ・ツー・ビデオ推奨
ビデオ・ツー・ビデオ推奨とは、特定のビデオに対するユーザの興味の表れに基づくビデオ推奨のことを意味する。例えば、あるユーザが特定のビデオを見たり、閲覧したり、又は高く評価したりした場合、この特定のビデオはユーザにとって興味があると想定することができる。推奨システムは、この興味に基づいて他のビデオをユーザに推奨することができる。説明を目的として、本明細書では、ユーザが興味を示したビデオを「比較」ビデオと呼ぶ。
【００１４】
機械学習を用いた協調フィルタリングと内容ベースフィルタリングの組み合わせ
図１を参照すると、訓練された機械学習エンジン１０２を用いて候補ビデオ資産のＭＬスコア１５０を生成するためのシステムを示している。機械学習エンジン１０２は、特定のユーザ／ビデオの組み合わせに固有の入力フィード１０６に基づいてＭＬスコア１５０を生成する。入力フィード１０６は、複数のタイプの入力パラメータを含む。図示の実施形態では、入力フィード１０６が、協調フィルタリング（ＣＦ）入力１０８、内容ベースフィルタリング（ＣＢＦ）入力１１０、及びその他の入力１１２を含む。以下、これらの入力の各々について詳細に説明する。
【００１５】
協調フィルタリング（ＣＦ）入力
協調フィルタリング入力１０８は、ユーザの意見又は行動に関するあらゆる入力である。協調フィルタリングは、１つの事柄に関して同様の意見を有する２人の人物は、別の事柄に関しても同様の意見を有する可能性が高いという仮定に基づく。ビデオ資産に対するユーザの興味を予測するという文脈では、協調フィルタリングは、ターゲットユーザが別のユーザと同じビデオのいくつかを楽しく視聴した場合、このターゲットユーザは、この別のユーザが楽しんだ、ターゲットユーザが未だ見ていないビデオも楽しく視聴する可能性が高いと仮定する。
【００１６】
ユーザの意見に関する情報は、様々な方法で取得又は導出することができる。例えば、ユーザが興味を持っているビデオのタイプは、ユーザのビデオ視聴履歴に暗黙的に反映される。従って、協調フィルタリング入力１０８は、ターゲットユーザのビデオ視聴履歴、ターゲットユーザと同様のユーザの視聴履歴、及び／又は視聴者人口全体の視聴履歴に関するデータを含むことができる。
【００１７】
協調フィルタリング入力１０８は、同じような人口学的特徴を有するユーザは同じようなビデオ視聴に興味があるという仮定に基づく人口学的情報を含むこともできる。このような人口学的情報は、例えば、ユーザの年齢、性別、地理的位置、所得階層などを含むことができる。協調フィルタリング入力１０８は、例えば、ユーザがビデオ嗜好調査に記入すること、又は以前に視聴したビデオを評価することによって明示的に特定した興味を含むこともできる。
【００１８】
ビデオ・ツー・ビデオ推奨の文脈では、ＣＦ入力１０８が、比較ビデオ／ターゲットビデオのペア（「ビデオペア」）に関連するユーザ行動を具体的に示すことができる。以下、ビデオペアについて維持できる様々なタイプのＣＦ指標の例について詳細に説明する。
【００１９】
図１に示す実施形態では、機械学習エンジン１０２に、未加工のＣＦ特徴１２０、及びこの未加工のＣＦ特徴に基づいてＣＦアナライザ１１８が生成するＣＦスコア１２４の両方が与えられる。ＣＦスコアとは、協調フィルタリングアルゴリズムを実施するＣＦアナライザ１１８による、ターゲットユーザにターゲットビデオを提供することによって目標が満たされる度合いの予測のことである。説明を目的として、この目標は、ターゲット視聴者の視聴興味を満たすことであると仮定する。しかしながら、以下でさらに詳細に説明するように、ターゲット目標は、視聴者の興味を満たすこと以外の何か、又は視聴者の興味を満たすことと１又はそれ以上のその他の目標の組み合わせとすることもできる。
【００２０】
図１で明らかなように、ＣＦスコア１２４は、ターゲットビデオに対するターゲットユーザの興味の予測として単純に使用されると言うよりも、むしろＭＬスコア１５０を生成するために機械学習エンジン１０２に与えられる複数の入力の１つにすぎない。最終的に、機械学習エンジン１０２は、どのビデオを推奨すべきかを選択するための根拠として使用されるＭＬスコア１５０を生成する上で、ＣＦスコア１２４にどれほどの重み付けをすべきかを決定する。
【００２１】
内容ベースフィルタリング（ＣＢＦ）入力
内容ベースフィルタリング入力１１０は、ターゲットビデオの内容が他のビデオの内容にどれほど類似しているかに関するあらゆる入力である。説明を目的として、ビデオ・ツー・ビデオ推奨を生成する実施形態を説明する。従って、内容ベースフィルタリング入力は、ターゲットビデオと比較ビデオを含むビデオペア間の類似性に焦点を当てている。しかしながら、別の実施形態では、内容ベースフィルタリング入力１１０が、ターゲットユーザが最近視聴、閲覧又は評価を行ったビデオの組などのあらゆる数の他のビデオの特徴情報を含むこともできる。
【００２２】
上述したように、通常、比較ビデオは、ターゲットユーザが既に興味を示しているビデオである。例えば、比較ビデオは、ターゲットユーザが最近視聴したビデオ、又はターゲットユーザが最近高い評価を与えたビデオとすることができる。
【００２３】
協調フィルタ入力１０８と同様に、内容ベースの入力１１０も、未加工の入力から導出されるスコアを含む。具体的には、内容ベースフィルタリング入力１１０は、未加工のＣＢＦ特徴１２６、及びこの未加工のＣＢＦ特徴１２６に基づいてＣＢＦアナライザ１２８が生成するＣＢＦスコア１３０を含む。未加工のＣＢＦ特徴１２６は、ターゲットビデオ及び比較ビデオに関連するあらゆる数の特徴を含むことができる。例えば、未加工のＣＢＦ特徴１２６は、タイトル、ジャンル、放映時間、俳優、キーワード、タグなどの特徴を含むことができる。
【００２４】
ＣＢＦスコア１３０は、ターゲットビデオと比較ビデオがどれほど類似しているかについての推定値である。恐らくは、ＣＢＦスコア１３０が高ければ高いほど、ターゲットビデオと比較ビデオの間の類似性も大きい。システムによっては、推奨すべきビデオを選択するための唯一の根拠としてＣＢＦスコアを使用するものもあるが、図１に示す実施形態では、ＣＢＦスコア１３０は、機械学習エンジン１０２に与えられる多くの入力パラメータの１つにすぎない。ＭＬスコア１５０を導出する際にＣＢＦスコア１３０に与えられる実際の重みは、機械学習エンジン１０２に対する他の入力、及び機械学習エンジン１０２を訓練した訓練セットに基づいて変化する。
【００２５】
機械学習エンジンに対する他の入力
ＭＬスコア１５０の精度を高めるために機械学習エンジン１０２に与えることができる他の入力１１２のタイプ及び性質には実質的に制限がない。例えば、他の入力は、推奨を行うべき時刻、推奨を行うべき曜日、ターゲットユーザの接続速度などを含むことができる。
【００２６】
機械学習（ＭＬ）スコア
機械学習エンジン１０２は、協調フィルタリング入力１０８、内容ベースフィルタリング入力１１０及びあらゆる数の他の入力１１２に基づいてＭＬスコア１５０を生成する。ＭＬスコア１５０の値は、ターゲットユーザにターゲットビデオを提供することによって特定の目標又は一連の目標がいかに十分に満たされるかについての予測である。ユーザの関与を目標とする実施形態では、ＭＬスコア１５０は、ターゲットユーザがターゲットビデオを視聴することにどれほど興味があるかについての予測である。
【００２７】
ＭＬスコアを生成する処理は、候補ビデオの組内のビデオ毎に繰り返される。これらのそれぞれのＭＬスコアに基づいて、ターゲットユーザが最も興味を示しそうな候補ビデオを選択し、ターゲットユーザに推奨ビデオとして提示する。
【００２８】
図１に示すように協調フィルタリング（ＣＦ）と内容ベースフィルタリング（ＣＢＦ）を組み合わせることにより、各技術の長所を享受することができる。特に、機械学習エンジン１０２には、ＣＦ／ＣＢＦアナライザにより生成された判断、及びＣＦ／ＣＢＦからの未加工の特徴が直接曝される。機械学習エンジン１０２に未加工の特徴へのアクセス権を与えることにより、いくつかの利点をもたらすことができる。
【００２９】
第１に、未加工の特徴をＣＦ／ＣＢＦスコアと共にＭＬシステムに提供することにより、ＭＬシステムが、ＣＦ及びＣＢＦからの信号強度にそれぞれ基づいてスコアを組み合わせることができるようになる。すなわち、ＣＦ／ＣＢＦスコアに与えられる相対的重みは、ＭＬシステムに与えられる他の入力に基づいて反復毎に変化する。例えば、十分な行動データを有していない新作映画では、ＣＦの信号強度は弱い。従って、ＭＬシステムは、ＭＬスコアを生成する際にＣＦスコアにそれほどの重みを与えない。この結果、ＭＬスコアでは内容ベースの特徴が強調される。このビデオが多くの人々によって視聴されると行動データが増え、ＭＬスコアを生成する際にＭＬシステムがＣＦスコアに与える重みも増す。
【００３０】
第２に、未加工のＣＢＦ特徴を曝すことにより、ＭＬシステムが、履歴的なＣＦ及びＣＢＦの学習全体に基づいて新たな内容の課題に効果的に対処できるようになる。例えば、ＭＬシステムは、「ａ」、「ｔｈｅ」などのキーワードを共有するビデオが必ずしも関連しているわけでなく、一方で「フットボール」、「４９年代」などのその他の共有されるキーワードの方が強力な関係を示すことがあると学習することができる。この結果、機械学習エンジン１０２は、ＭＬスコアを生成する際に、弱い非特異的な単語に起因する高いＣＢＦスコアには低めの重みを与え、高度に特異的な単語に起因する高いＣＢＦスコアにはより多くの重みを与えるようになる。
【００３１】
説明可能な推奨
１つの実施形態によれば、推奨システムが、１又はそれ以上の推奨ビデオの組をターゲットユーザに提示することに加え、このユーザに対し、これらのビデオの各々がなぜ推奨されているかに関する情報も提示する。具体的には、１つの実施形態では、機械学習エンジン１０２が、各ＭＬスコア１５０に最もプラス効果を与えた特徴を示す出力１５２を提供する。例えば、出力１５２は、ＣＦスコア１２４が高く、ＭＬスコア１５０を生成する際にＣＦスコア１２４が他の入力に基づいて大きく重み付けされたことに起因してターゲットビデオが高いＭＬスコア１５０を受け取った旨を示すことができる。一方、ターゲットビデオのための出力１５２は、ＣＢＦスコアが高く、ＭＬスコア１５０を生成する際にＣＢＦスコアが他の入力に基づいて大きく重み付けされた旨を示すことができる。これらは、ビデオのＭＬスコアに強いプラス効果を与えることができる特徴のタイプのほんの２つの例にすぎない。
【００３２】
推奨システムは、出力１５２が示す、ＭＬスコア１５０に最もプラスに作用した特徴に基づいて、対応するビデオがなぜターゲットユーザに推奨されたか（すなわち、なぜＭＬスコア１５０がターゲットビデオの推奨を正しいとするほど十分に高いか）についての「説明」を選択することができる。例えば、
・ＣＢＦスコア１３０が高く、機械学習エンジン１０２によって大きく重み付けされた場合、「このビデオはＸに類似している」（この場合、Ｘは比較ビデオである）という説明をユーザに提示することができる。
・ＣＦスコア１２４が高く、機械学習エンジン１０２によって大きく重み付けされた場合、「Ｘの視聴者はこのビデオを視聴することが多い」（この場合、Ｘは比較ビデオである）という説明をユーザに提示することができる。
・他の入力１１２が、ターゲットビデオが視聴人口全体において最も視聴されたビデオの１つであることを示し、この特徴がＭＬスコア１５０に大きな影響を与えた場合、「このビデオは全てのユーザにおいて最も視聴されたビデオの１つである」という説明をユーザに提示することができる。
・他の入力１１２が、ターゲットビデオに対する関心が現在上昇中であることを示し、この特徴がＭＬスコア１５０に大きな影響を与えた場合、「このビデオに対する関心が現在大きく上昇中である」という説明をユーザに提示することができる。
【００３３】
これらは、ターゲットビデオがなぜ推奨されているかを説明するためにユーザに提示できる事実上無限数の説明のほんのいくつかの例にすぎない。これらの例は非常に一般的なものであるが、実際の説明は非常に具体的なものとすることができる。例えば、説明は、「このビデオはＸに類似している」と示すことに加え、このビデオのＸに類似している様々な側面（ジャンル、俳優、テーマ、タグ、放映時間、音楽スコアなど）を列挙することもできる。
【００３４】
推奨システムのための指標
上述したように、協調フィルタリング入力１０８は、ビデオ消費者の視聴行動に関する情報を含むことができる。この視聴行動は、ＣＦアナライザ１１８及び機械学習エンジン１０２の両方に与えられる未加工のＣＦ特徴１２０に反映される。推奨システムは、このＣＦ特徴を取得するために、（豊富な行動情報を含む）プレーヤログから得られるユーザ中心指標を処理して、最終的には、機械学習エンジン１０２への入力フィード１０６に含まれるビデオペア中心指標を生成することができる。
【００３５】
図２は、本発明の実施形態による、推奨システムが維持できる様々なタイプの指標を示すブロック図である。これらの指標は、ユーザ中心指標２４０、ビデオ中心指標２４２及びビデオペア中心指標２４４を含むことができる。
【００３６】
ユーザ中心指標
ユーザ中心指標２４０については、推奨システムが各ユーザのユーザログを維持する。ユーザのユーザログは、ユーザが視聴した、又は別様に興味を表したビデオを示す。図２には、３つのユーザログ２５０、２５２及び２５４を示している。
【００３７】
１つの実施形態によれば、これらのユーザログが、ユーザが興味を示したビデオをリスト化することに加え、ユーザの行動によって示された興味の量、及びいつ興味が表されたかを示すタイムスタンプも示す。１つの実施形態によれば、ユーザがビデオに対して表した興味の量が、ビデオリストと共にユーザログ内に記憶される「強度」値によって表される。
【００３８】
この強度値は、ユーザがビデオと行った交信のタイプなどの様々な要因によって決定することができる。例えば、あるビデオを視聴したユーザは、そのビデオに対し、ビデオを閲覧しただけのユーザよりも多くの興味を示す。強度値は、各種の交信の中で他の要因によって影響を受けることもある。例えば、ビデオに５つ星の評価を与えたユーザは、ビデオに３つ星の評価を与えたユーザよりもそのビデオに強い興味を抱いている。別の例として、ビデオ全部を視聴したユーザは、そのビデオの最初の半分しか見ていないユーザよりも強い興味を抱いている。従って、「ビデオの視聴パーセンテージ」は、ユーザの興味の強さを判断する一因となり得る。さらに別の例として、あるビデオを繰り返し見るユーザは、そのビデオを１回見たユーザよりも強い興味を抱いている。
【００３９】
ビデオ中心指標
推奨システムは、これらのユーザログを処理し、ビデオ毎に維持されているビデオ中心指標２４２に対して対応する更新を行う。図２に示す実施形態では、推奨システムが、３つのビデオ２０２、２０４及び２０６の各々のための情報を維持している。推奨システムが維持する情報は、ビデオに興味を示したユーザのリストをビデオ毎に含む。ビデオ２０２、２０４及び２０６の「興味を持ったユーザのリスト」を、リスト２２２、２２４及び２２６としてそれぞれ示している。１つの実施形態では、これらのリストが、ユーザ、タイムスタンプ、及びタイムスタンプによって示される時点でユーザがそのビデオにどれほど強く興味を表したかを示す強度値を各々が特定する入力を含む。
【００４０】
興味を持ったユーザのリスト２２２、２２４及び２２６に加え、ビデオ毎にビデオメタデータも維持される。このビデオ毎に維持されるビデオメタデータは、放映時間、制作日、タグ、タイトル、キーワード、言語などの、そのビデオに関するあらゆる数及びタイプの情報を含むことができる。しばしば、所与のビデオの初期ビデオメタデータは、ビデオの制作者によって提供されることも（タイトル、俳優、言語など）、又はこのメタデータをビデオ自体から導出できることもある（放映時間、符号化フォーマットなど）。しかしながら、出版環境によっては、ビデオのメタデータが時間と共に変化又は増加することもある。例えば、ビデオを視聴するユーザが増えると、ビデオにユーザタグが加わることがある。別の例として、ユーザがビデオを視聴して評価した時に、ビデオの視聴回数及び評価が継続的に変更されることもある。図２に示す実施形態では、ビデオ２０２、２０４及び２０６のビデオメタデータを、それぞれビデオメタデータ２３２、２３４及び２３６として示している。
【００４１】
ビデオペア中心指標
ビデオペア中心指標２４４は、ビデオのペアに関連する指標である。例えば、図２には、ビデオのペア２０２及び２０４の指標、ビデオのペア２０２及び２０６の指標、及びビデオのペア２０４及び２０６の指標を示している。図２に示す実施形態では、これらの指標が、ＣＦ指標及びＣＢＦ指標をビデオペア毎に含む。
【００４２】
一般に、ビデオペアのＣＦ指標は、ペアの一方のビデオを見たユーザがペアの他方のビデオも見る可能性を予測するための指標である。従って、ＣＦ指標２６２は、ビデオ２０２及び２０４の一方を見たユーザがビデオ２０２及び２０４の他方も見る可能性を予測するための指標である。同様に、ＣＦ指標２６４は、ビデオ２０２及び２０６の一方を見たユーザがビデオ２０２及び２０６の他方も見る可能性を予測するための指標である。最後に、ＣＦ指標２６６は、ビデオ２０４及び２０６の一方を見たユーザがビデオ２０４及び２０６の他方も見る可能性を予測するための指標である。
【００４３】
１つの実施形態では、各ビデオペアのＣＦ指標が、少なくとも以下を含む。
・ビデオペアの各ビデオに対して全てのユーザが費やした合計時間
・そのビデオペアに対して個々のユーザが費やした最小時間の総和
・ユーザがペアの両方のビデオを見た場合、２つのビデオを見る間にどれだけの時間が経過したか
・ユーザの分布（１人の人物が１００回見たビデオと、１００人の異なる人々が１回ずつ見たビデオを区別）
・ビデオペアを見た各ユーザが見たビデオの分布（このビデオを見たユーザが多くのビデオを見る傾向にあるか、それともあまり見ない傾向にあるかを示す）
・ペア内の各ビデオが、他のビデオに比べていかに「発見しやすい」か（例えば、同じページ又はリスト上に頻繁に現れるビデオと、同じページ又はリスト上にめったに現れないビデオとを区別）
【００４４】
ビデオペアのＣＦ指標は、ペア内の各ビデオのために維持される興味を持つユーザのリストから導出することができる。例えば、リスト２２２及び２２４内の情報に基づいて、２０２／２０４のビデオペア内の各ビデオに対して全てのユーザが費やした合計時間を求めることができる。同様に、リスト２２２及び２２６からＣＦ指標２６４を導出することができる。同様に、リスト２２４及び２２６からＣＦ指標２６６を導出することができる。
【００４５】
ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである場合、このビデオペアのＣＦ指標を、ＭＬスコアの生成に使用する未加工のＣＦ特徴１２０に含めることができる。具体的には、ビデオＹに興味があることを示した特定のユーザにビデオＸを推奨することによって目標が達成される度合いを求めるために、ＣＦアナライザ１１８及び機械学習エンジン１０２の両方にビデオＸ／ＹのペアのＣＦ指標を与えることができる。ＣＦアナライザ１１８は、これらのＣＦ指標に基づいてＣＦスコア１２４を生成する。このＣＦスコア１２４が機械学習エンジン１０２に与えられ、機械学習エンジン１０２は、これらのＣＦ指標に少なくとも部分的に基づいて、ＣＦスコア１２４にどれほどの重みを与えるべきかを決定する。
【００４６】
各ビデオペアのビデオペア中心指標は、ＣＦ指標に加えてＣＢＦ指標も含む。ビデオペアのＣＢＦ指標は、ビデオペア内のビデオの内容がどれほど類似しているかを全体的に示す指標である。例えば、ビデオペアのＣＢＦ指標は、これらのビデオにどれほどのタグが共通しているか、これらのビデオにどのメタデータ（俳優、監督、キーワードなど）が共通しているか、などを示すことができる。図２に示す実施形態では、ビデオペア２０２／２０４、２０２／２０６及び２０４／２０６のＣＢＦメタデータを、それぞれＣＢＦ指標２７２、２７４及び２７６として示している。
【００４７】
１つの実施形態によれば、ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである場合、このビデオペアのＣＢＦ指標を、ＭＬスコアの生成に使用する未加工のＣＢＦ特徴１２６に含めることができる。具体的には、ユーザが興味を示したビデオＹにビデオＸが類似している度合いを求めるために、ＣＢＦアナライザ１２８及び機械学習エンジン１０２の両方にビデオＸ／ＹのペアのＣＢＦ指標を与えることができる。ＣＢＦアナライザ１２８は、これらのＣＢＦ指標に基づいてＣＢＦスコア１３０を生成する。このＣＢＦスコア１３０が機械学習エンジン１０２に与えられ、機械学習エンジン１０２は、これらのＣＢＦ指標に少なくとも部分的に基づいて、ＣＢＦスコア１３０にどれほどの重みを与えるべきかを決定する。
【００４８】
行動データの増分更新
ＭＬスコア１５０をできるだけ正確なものにするには、ＭＬスコア１５０の生成に使用される未加工のＣＦ特徴１２０をできるだけ最新のものにすべきである。しかしながら、ビデオ視聴人口が大きければ大きいほど、全候補ビデオのための未加工のＣＦ特徴１２０を確実に最新に保つことはますます困難になる。
【００４９】
例えば、ビデオコレクション内に１００万本のビデオ資産が存在し、常に何万人もの視聴者がビデオを見ていると仮定する。これらの条件下では、視聴行動情報の量が膨大なものになる。行動データを更新するための１つのアプローチは、ユーザ中心指標をリアルタイムで収集し、各週の最後にビデオ中心指標２４２に対してバッチ更新を行い、その後ビデオペア中心指標２４４に対してもバッチ更新を行うことである。しかしながら、このようなアプローチでは、推奨システムが比較的古いビデオ中心指標２４２及びビデオペア中心指標２４４を使用するようになる。
【００５０】
推奨システムが古いビデオ中心指標２４２及びビデオペア中心指標２４４を使用しないように、ビデオ中心指標２４２及びビデオペア中心指標を増分的に維持するための技術を提供する。１つの実施形態によれば、推奨システムが、過去の全ての視聴行動をまとめたユーザ履歴に新たなユーザ行動データを（ユーザ、ビデオ、強度）タプルの形で増分的に混ぜ込む。また、推奨システムは、新しい情報と古い情報を区別して、新たなユーザ活動を含むビデオペアのビデオペア中心指標２４４のみを更新する。
【００５１】
具体的には、１つの実施形態では、特定のビデオに対する興味が新たに示されたことのみに応答して、この特定のビデオのビデオ中心ＣＦ指標を更新する。同様に、特定のビデオペアに属するビデオの少なくとも一方に対する興味が新たに示されたことのみに応答して、このビデオペアのビデオペア中心指標を更新する。多くのビデオは、どのユーザも興味を示さない期間が長いと考えられるので、再計算する必要があるビデオ中心指標の割合が減少し、これによりビデオ中心指標２４２及びビデオペア中心指標２４４をリアルタイムで最新の状態に維持するのに必要な処理が削減される。
【００５２】
ビデオメタデータの増分更新
各ビデオ及びビデオペアのＣＢＦ指標は、推奨すべきビデオを選択するための根拠として使用されるＭＬスコアに影響を与えるので、ＣＦ指標と同様にこれらの指標も最新の状態に維持しておくことが重要である。ＣＢＦ指標を効率的に最新の状態に維持するために、推奨システムが使用する内容ベースのパイプラインも増分的に維持する。例えば、１つの実施形態では、推奨システムに新しいビデオが取り込まれ、ビデオに関するメタデータが利用可能になると、このビデオが直ちに推奨可能になる。
【００５３】
１つの実施形態では、内容ベースのパイプラインが、新しいビデオと既存のビデオが共通のメタデータを共有している場合にのみ新しいビデオがこれらのビデオと比較されるように実装される。１つの実施形態では、推奨が、（特徴名、特徴値）から（タイムスタンプ、ビデオ、ビデオメタデータ）へのマッピングを維持する。このような実施形態では、内容ベースのパイプラインが、以下の論理ステップを含むことができる。
・（特徴名、特徴値）から（タイムスタンプ、ビデオ、ビデオメタデータ）へのマッピングを生成し、新しいビデオをグローバルテーブルに混入する。
・同じ（特徴名、特徴値）を含むビデオをグループ分けする。
・グループ毎にビデオペアを生成する。
・ビデオペアを集約する。ペア毎に両者の差異（ｐａｉｒｗｉｓｅ  ｄｉｓｔａｎｃｅ）を計算する。
【００５４】
この両者の差異は、ビデオペア内の一方のビデオがターゲットビデオであり、他方のビデオが比較ビデオである時に、機械学習エンジン１０２に与えられるＣＢＦスコアとすることができる。性能上の理由により、推奨システムは、タイプスタンプを調べて、新しいビデオと新しいビデオ、及び新しいビデオと古いビデオしか比較することができない（古いビデオと古いビデオは比較することができない）。
【００５５】
１つの実施形態では、機械学習エンジン１０２に与えられるターゲットビデオの未加工のＣＢＦ特徴１２６が、このターゲットビデオの現在のビデオ中心指標２４２、及びこのビデオと比較ビデオとを含むビデオペアの現在のＣＢＦ指標を反映する。このことは、（例えば、ビデオに新たなタグが加えられるような）所与のビデオに関連するビデオメタデータが時間と共に大きく変化する環境では特に重要である。
【００５６】
上述したように、１つの実施形態では、ビデオペア内の第２のビデオがコレクションに追加された時にこのペアのＣＢＦ指標が作成され、このＣＢＦ指標は、ビデオペア内のいずれかのビデオのビデオメタデータの変化に応答してのみ更新される。例えば、ビデオコレクションにビデオ２０４が追加された時にコレクション内にビデオ２０２が存在すると仮定する。コレクションにビデオ２０４が追加されたことに応答して、ビデオ２０２のビデオメタデータ２３２及びビデオ２０４のビデオメタデータ２３４に基づき、最初にビデオペア２０２／２０４のＣＢＦ指標２７２を作成することができる。
【００５７】
ＣＢＦ指標２７２は、一旦生成されると、ビデオ２０２又はビデオ２０４のいずれかのビデオメタデータが変化するまで変化しない。このような変化（例えば、ビデオペア内の一方のビデオへのタグの追加）が生じると、このペアのＣＢＦ指標２７２の再計算が引き起こされる。各ビデオは、複数のビデオペアに属することができるので、１つのビデオのビデオメタデータを更新することにより、多くのビデオペアのＣＢＦ指標の再計算を引き起こすことができる。例えば、ビデオ２０２のビデオメタデータ２３２を更新することにより、ビデオペア２０２／２０４のＣＢＦ指標２７２の再計算、及びビデオペア２０２／２０６のＣＢＦ指標２７４の再計算が引き起こされる。
【００５８】
ビデオペアの事前計算スコア
図２には示していないが、各ビデオペアのビデオペア中心指標２４４は、事前に計算したＣＦスコア及び事前に計算したＣＢＦスコアを含むこともできる。具体的には、ビデオ推奨が必要な時にビデオペアのＣＦスコア及びＣＢＦスコアを生成するのではなく、元となるビデオペア指標が更新された時にこれらのスコアを事前に計算しておくことができる。この結果、ビデオ推奨が必要な時には、この事前に計算したスコアを記憶装置から単純に読み出して機械学習エンジン１０２に与えることができる。この計算を推奨（問合せ）時点で行うことと、映画情報の更新時点で行うことの間にはトレードオフが存在する。一般的な指針は、これらの相対的頻度を利用し、計算を行う頻度をできるだけ少なくする方法を利用することである。
【００５９】
例えば、ビデオペア２０２／２０４のＣＦスコア１２４は、ＣＦ指標２６２に基づく。ＣＦ指標２６２は、ユーザがビデオ２０２又はビデオ２０４に興味を示したことに応答して更新される。ユーザが興味を示したことに応答してＣＦ指標２６２を更新し、この更新されたＣＦ指標２６２をＣＦアナライザ１１８に与えることにより、ビデオペア２０２／２０４のＣＦスコア１２４を生成することができる。その後、機械学習エンジン１０２を用いてビデオペア２０２／２０４に基づくＭＬスコア１５０を生成する際に、この事前に計算したＣＦスコアを、再計算するのではなく単純に読み取ればよい。
【００６０】
同様に、ビデオペア２０２／２０４のＣＢＦスコア１３０は、ＣＢＦ指標２７２に基づく。ＣＢＦ指標２７２は、ビデオ２０２又はビデオ２０４のビデオメタデータが更新されたことに応答して更新される。このようなメタデータ更新に応答してＣＢＦ指標２７２を更新し、この更新されたＣＢＦ指標２７２をＣＢＦアナライザ１２８に与えることにより、ビデオペア２０２／２０４のＣＢＦスコア１３０を生成することができる。その後、機械学習エンジン１０２を用いてビデオペア２０２／２０４に基づくＭＬスコア１５０を生成する際に、この事前に計算したＣＢＦスコア１３０を、再計算するのではなく単純に読み取ればよい。
【００６１】
指標を維持すべきビデオペアの選択
理論的には、コレクション内の２つのビデオの組み合わせ毎にビデオペア中心指標２４４を維持することができる。コレクション内の考えられるビデオペア毎にビデオペア中心指標を維持すると、コレクション内のビデオの数をＮとした場合、Ｎ×（Ｎ−１）個の異なるビデオペア中心指標の組が生じる。多くのビデオペア中心指標の組を維持することは、コレクションが小さい場合には容易に実現されるが、コレクションが極めて大きな場合には不可能である。
【００６２】
従って、ある実施形態によれば、あるビデオと所与のビデオとのビデオペアのビデオペア中心指標を維持することを正当化するために、このビデオが、所与のビデオと十分に類似していると見なされる前に、所与のビデオとの「ペアリング試験」に合格しなければならない。本明細書では、特定のビデオとのペアリング試験に合格したビデオを、その特定のビデオの「ペアビデオセット」と呼ぶ。従って、１つの実施形態では、ビデオＹがビデオＸのペアビデオセットである場合かつその場合に限り、所与のビデオペア（ビデオＸ／ビデオＹ）のビデオペア中心指標２４４が維持される。
【００６３】
このペアリング試験は、例えば、これらのビデオが、ジャンル、俳優、監督といった特徴のいずれか１つを共有していなければならないものとすることができる。これは、特定のビデオペアのビデオペア中心指標を維持すべきかどうかを決定するために適用できる事実上無限の種類のペアリング試験のほんの一例にすぎない。このペアリング試験が厳しくなればなるほど、ビデオペア中心指標２４４を維持されるビデオペアは少なくなり、従ってビデオペア中心指標２４４を維持するオーバヘッドが低下する。
【００６４】
しかしながら、ペアリング試験が厳しすぎる場合、推奨システムは、いくつかの有用な推奨を行わない可能性がある。例えば、ビデオＸがビデオＹのペアビデオセットでない場合には、たとえビデオＹの多くの視聴者が実際にはビデオＸの視聴を楽しめるとしても、ビデオＹが比較ビデオである時に推奨システムがビデオＸを推奨しないことがある。
【００６５】
ペアリング試験は、任意に複雑化することもできる。例えば、この試験は以下のようなルールを有することができる。
・ビデオＸの視聴率がＮ又はそれ以上である場合、このビデオＸは、全てのビデオとのペアリング試験を満たすと自動的に見なされる。
・ビデオＸの視聴率がＮ回の視聴未満であるが、Ｍ回の視聴よりも多い場合、このビデオＸは、ジャンル、俳優、監督のうちの少なくとも１つを共有するビデオとのペアリング試験を満たすと見なされる。
・ビデオＸの視聴回数がＭ未満である場合、このビデオＸは、同じジャンル内のビデオとのペアリング試験を満たすと見なされる。
【００６６】
これらのルールでは、ペアリング試験に合格するためにどの条件を満たさなければならないかがビデオの視聴率によって決まる。しかしながら、別のペアリング試験では、ペアリングのための動作条件が、他の要因に基づいて変動することができる。
【００６７】
ペアリング試験は、ビデオペアのいずれかのビデオペア中心指標を記憶すべきかどうかを決定するために使用するというよりもむしろ、あるビデオペアの特定の種類のビデオペア中心指標を維持すべきかどうかを決定するために使用することができる。例えば、ＣＦ指標は、コレクション内の全てのビデオペアについて維持する一方で、ＣＢＦ指標は、ペアリング試験に合格したビデオペアについてのみ維持することができる。或いは、ＣＢＦ指標は、コレクション内の全てのビデオペアについて維持する一方で、ＣＦ指標は、ペアリング試験に合格したビデオペアについてのみ維持することもできる。
【００６８】
さらに別の実施形態では、各タイプのビデオペア中心指標のための異なるペアリング試験が存在してもよい。例えば、推奨システムは、ペア内の両ビデオの視聴率が一定の閾値を超える場合に、このビデオペアのＣＦ指標を記憶することができる。一方、推奨システムは、あるビデオペアが少なくとも１つの有意な特徴（ジャンル、俳優、監督など）を共有している場合に、このビデオペアのＣＢＦ指標を記憶することもできる。このような実施形態では、ビデオペアによって、ビデオペア中心指標２４４がＣＦ指標とＣＢＦ指標をいずれも含むことができるものもあれば、ＣＦ指標又はＣＢＦ指標の両方ではなく一方しか有することができないものもある。
【００６９】
ペアビデオセットに基づくビデオ・ツー・ビデオ推奨
１つの実施形態によれば、推奨システムが、ビデオ・ツー・ビデオ推奨を行う際に、ユーザが既に興味を示しているビデオのペアビデオセットであるビデオのＭＬスコアのみを生成する。例えば、あるユーザがビデオＸを見終えたばかりであると仮定する。ユーザが見る次のビデオを推奨するために、機械学習エンジン１０２を用いて、ビデオＸのペアビデオセット内の各ビデオのＭＬスコア１５０を生成する。
【００７０】
この例では、ビデオＸのペアビデオセット内の各ビデオの未加工のＣＦ特徴１２０が、これらのビデオとビデオＸとを含むビデオペアのＣＦ指標を含む。これらの未加工のＣＦ特徴１２０をＣＦアナライザ１１８に与えて、ビデオＸの視聴者がターゲットビデオを視聴することにどれほどの興味を持っているかを予測するＣＦスコア１２４を生成する。
【００７１】
同様に、未加工のＣＢＦ特徴１２６は、これらのビデオとビデオＸとを含むビデオペアのＣＢＦ指標も含む。これらの未加工のＣＢＦ特徴１２６をＣＢＦアナライザ１２８に与えて、ビデオＸがターゲットビデオにどれほど類似しているかを予測するＣＢＦスコア１２８を生成する。
【００７２】
図１に示すように、未加工の特徴１２０及び１２６、並びに他の入力１１２を、スコア１２４及び１３０と共に機械学習エンジン１０２に与えることにより、機械学習エンジン１０２は、スコア１２４及び１３０の各々にどれほどの重みを与えるべきかを決定できるようになる。機械学習エンジン１０２は、この決定した重みに基づいて、ターゲットビデオのＭＬスコア１５０を生成する。
【００７３】
ビデオＸのペアビデオセット内の全てのビデオについてこの処理を繰り返した後、生成されたこれらのビデオのＭＬスコアを、どのビデオを推奨すべきかを決定するための根拠として使用する。
【００７４】
減衰係数
一般に、あるユーザの最近の行動は、このユーザが遠い過去に取った行動よりもこのユーザの現在の興味を強く示す。従って、ＣＦアナライザ１１８は、ＣＦスコア１２４を生成する際に、ユーザ行動指標に与える重みをその行動がどれほど最近に行われたかに基づいて調整する「減衰」係数を適用することができる。
【００７５】
例えば、ＣＦアナライザ１１８は、ＣＦスコア１２４を生成するために、ユーザがビデオペアの両ビデオを見たことを示すデータに対し、ユーザが両ビデオを見た直後には１００％の、１週間後には８０％の、及び２週間後には６０％の重みを与えることができる。このユーザ行動の近時性は、ユーザログに取り込まれたタイムスタンプによって判断することができる。
【００７６】
この減衰係数が高ければ高いほど、昔の行動に与えられる重みは低くなる。反対に、減衰係数が低ければ低いほど、昔の行動に与えられる重みは高くなる。高い減衰係数の例では、例えば、現在の行動には１００％の重みが、１週間前の行動には１０％の重みが与えられ、２週間よりも前の行動には重みが全く与えられない。
【００７７】
ＣＦアナライザ１１８が使用する減衰係数を変化させると、ＣＦアナライザ１１８が生成するＣＦスコア１２４に影響が及ぶ。例えば、２週間前には多くのユーザが特定のビデオペアを見たが、同じビデオペアを先週見たユーザはほとんどいないと仮定する。これらの条件下では、高い減衰係数を使用すると、古い視聴情報にはほとんど重みが与えられなくなるのでＣＦスコア１２４が低くなる。一方、低い減衰係数を使用すると、古い使用情報がＣＦスコア１２４に大きく影響するようになるのでＣＦスコア１２４が高くなる。
【００７８】
残念ながら、全ての状況において最適な結果をもたらす減衰係数は存在しない。例えば、高視聴ビデオの出版社からのビデオに高い減衰係数を使用すると、ビデオペア内の一方のビデオを見たユーザがビデオペア内の他方のビデオを見ることに興味があるかどうかを正確に予測するＣＦスコア１２４を生じることができる。このようなタイプのビデオでは、最近の視聴行動の量が、正確な予測を生成するのに十分であるため、高い減衰係数の使用が最適となり得る。この結果、これに応じて古い行動データを軽視することができる。
【００７９】
一方、低い減衰係数を使用すると、ビデオがそれほど頻繁に見られていない出版社からのビデオのＣＦスコア１２４をより正確なものにすることができる。このような状況化では、ＣＦスコア１２４が有用となるのに十分な行動データに基づくことを確実にするために、低い減衰係数を使用することが必要となり得る。従って、この例では、減衰係数とは無関係な入力パラメータ（ビデオ出版社）により、所与の状況において減衰係数を使用することが適切である旨の指示を機械学習エンジン１０２に与えることができる。
【００８０】
ビデオペア毎にどの減衰要素が最も正確なＣＦスコア１２４を生じるかを推測しようとするのではなく、異なる減衰係数を使用することによって生じた複数のＣＦスコアをビデオペア毎に機械学習エンジン１０２に与える実施形態を提供する。このような実施形態を図３に示す。
【００８１】
図３を参照すると、３つの異なるＣＦスコア３２４、３２６、３２８を含むＣＦ入力３０８が機械学習エンジン１０２に与えられる推奨システムを示している。ＣＦスコア３２４、３２６及び３２８は、同じ未加工のＣＦ特徴１２０に基づくものであるが、３つの異なる減衰係数３１４、３１及び３１８を用いて生成される。機械学習エンジン１０２は、入力フィード３０６内の他の特徴（ビデオ制作者など）に基づいて、どのＣＦスコアがＭＬスコア１５０により大きな影響を与えるべきであるかを決定する。
【００８２】
例えば、未加工のＣＢＦ特徴１２６が、ビデオペア内のビデオが特定の出版社からの視聴者の多い最新のニュースイベントに関するものであることを示す場合、機械学習エンジン１０２は、高い減衰係数に基づく重みを多くＣＦスコアに与えることができる。一方、未加工のＣＢＦ特徴１２６が、ビデオペア内のビデオが別の出版社からのめったに視聴されないクラシック映画であることを示す場合、機械学習エンジン１０２は、低い減衰係数に基づく重みを多くＤＶスコアに与えることができる。
【００８３】
図３に示す実施形態では、３つの異なる減衰係数を使用しているが、使用する実際の減衰係数の数は実装毎に変化することができる。例えば、１つの実施形態では、所与のビデオペアに対し、各々が異なる減衰係数に基づく２０個のＣＦスコアを生成することができる。以下でより詳細に説明するように、この技術は減衰係数に限定されず、あらゆる数の他のパラメータと共に使用することができる。
【００８４】
オッズ比カットオフ
モデルを使用して予測を生成する場合、これらのモデルは、仮定に基づく一定の「モデルチューニングパラメータ」を使用する。上述した減衰係数は、このようなモデルチューニングパラメータの一例である。例えば、行動に与えられる重みを１週間後に５０％減少させる減衰係数を使用するモデルは、将来的な行動を予測するための過去の行動の能力が１週間後に５０％減少すると仮定する。
【００８５】
この減衰係数は、ＣＦ及びＣＢＦアナライザに実装されるモデルが使用できるモデルチューニングパラメータのほんの一例にすぎない。ＣＦアナライザが使用するモデルは、減衰係数の他に、例えばオッズ比カットオフ閾値を用いて、２つのビデオが実際に関連し合っているかを予測する際に人気の高いビデオに起因する誤判定の数を減少させることができる。
【００８６】
オッズ比カットオフを使用すると、極めて人気の高いビデオを非常に多くのユーザが見る可能性があり、これらのユーザがこの極めて人気の高いビデオに加えて他の何らかのビデオも見たからといって、この他のビデオがこの極めて人気の高いビデオに関連していることが正確に示されるわけではないという問題に対処することができる。極めて人気の高いビデオが関連性のない他のビデオに関連していると予測することを避けるために、ＣＦアナライザ１１８が使用するモデルは、２つのビデオがユーザの視聴ログ内で（依存的に同時に見られるのとは対照的に）無関係に同時に見られる確率を計算することにより、２つのビデオに関連性があるかどうかを判定することができる。２つのビデオが無関係に同時に見られる確率が、モデルが使用するオッズ比カットオフ（例えば５０％）よりも大きい場合、これらの２つのビデオは実際には互いに関連性がないと想定される。
【００８７】
モデル（ａ）が使用するオッズ比カットオフは、減衰係数と同様に予測に影響を与え、（ｂ）は、常に当てはまるとは限らない仮定に基づく。例えば、場合によっては、たとえ２つのビデオがユーザログ内で無関係に同時に見られる可能性は５５％であると統計によって示された場合でも、これらは非常に関連性が高いこともある。この状況では、６０％のオッズ比カットオフを使用すれば、モデルはこれらのビデオが実際に関連していると予測する。
【００８８】
一方、たとえ２つのビデオがユーザログ内で無関係に同時に見られる可能性は４５％であると統計によって示された場合でも、これらに関連性がないこともある。この状況では、４０％のオッズ比カットオフを使用すれば、モデルはこれらのビデオが関連していないと予測する。
【００８９】
正規化係数
正規化係数は、いくつかのモデルが使用できるモデルチューニングパラメータの別の例である。正規化係数は、一般にユーザの全体的な視聴行動に基づいてスコアを正規化しようと試みる。例えば、ユーザＡ及びユーザＢが、いずれも５０分間のビデオペア（ｖ１、ｖ２）を見たとする。しかしながら、ユーザＡが見たのはビデオｖ１及びｖ２のみであるのに対し、ユーザＢは何百本もの他のビデオを見たとする。このビデオペアに対するユーザＢの注意は、より細かく分割されている。ビデオｖ１及びｖ２の関連性に関するユーザＡからの承認の方を、ユーザＢからのものよりも重要とすべきである。この考えは、外向きのリンクに与えられる重みは各ウェブページが有することができる外向きのリンクの数に部分的に依存するという、ウェブページのランキングで使用されるページランク（ＰａｇｅＲａｎｋ）と同じものである。
【００９０】
異なるモデルチューニングパラメータを用いた並列計算
モデルがモデルチューニングパラメータに使用する値（減衰係数、正規化係数、オッズ比カットオフなど）は、必ずしも全ての状況に当てはまらない仮定に基づくので、異なるモデルチューニングパラメータ値の組み合わせに関するスコアが機械学習エンジン１０２に同時に与えられる実施形態を提供する。
【００９１】
例えば、図３には、各々が異なる減衰係数値に関連する３つのＣＦスコア３２４、３２６及び３２８を機械学習エンジン１０２に同時に与えることを示している。別の実施形態では、いくつかの（減衰係数、オッズ比カットオフ）値の組み合わせ毎に１つのＣＦスコアを生成することもできる。例えば、ある実施形態では、減衰係数を表す３つの異なる値（Ｘ、Ｙ、Ｚ）、及び２つの異なるオッズ比カットオフ閾値（Ａ、Ｂ）を使用することができる。このような実施形態では、モデルチューニングパラメータ値の組み合わせ（Ｘ、Ａ）、（Ｘ、Ｂ）、（Ｙ、Ａ）、（Ｙ、Ｂ）、（Ｚ、Ａ）、（Ｚ、Ｂ）毎に１つの６つのＣＦスコアが機械学習エンジン１０２に同時に与えられる。
【００９２】
この例では、減衰係数とオッズ比カットオフ閾値のモデルチューニングパラメータを使用しているが、いずれのタイプ及び数のモデルチューニングパラメータにも同じ並列スコア生成技術を使用することができる。例えば、特定のＣＦアナライザは、４つの異なるモデルチューニングパラメータを採用するモデルを使用することができる。各モデルチューニングパラメータには、テストすべき実行可能値が３つ存在することができる。このような実施形態では、モデルチューニングパラメータ値の異なる組み合わせが８１個存在する。従って、機械学習エンジン１０２には、（モデルチューニングパラメータ値の組み合わせ毎に１つの）８１個のＣＦスコアを同時に与えることができる。
【００９３】
上述した減衰係数の例と同様に、ＭＬスコアを生成する際に各ＣＦスコアに与えられる重みも、機械学習エンジン１０２が受け取る他の入力に少なくとも部分的に基づく。図３に示すように、これらの他の入力は、未加工のＣＦ特徴１２０、未加工のＣＢＦ特徴１２６、ＣＢＦスコア１３０及びあらゆる数の他の入力１１２を含む。
【００９４】
柔軟な目的関数
機械学習エンジン１０２は、ビデオ・ツー・ビデオ推奨の文脈で使用される場合、ユーザが既にビデオＡ（比較ビデオ）を見たと仮定した時にこのユーザがビデオＢ（ターゲットビデオ）を見る確率を予測するＭＬスコアを生成する。実際には、出版社が達成を最適化したいと思う目標は複数存在する。目標の例は、限定ではないが以下を含む。
・総映画視聴時間を増やすこと
・各ユーザが見るビデオの数を増やすこと
・ユーザが各（推奨される）ビデオの視聴に費やす総分数を増やすこと
・各ビデオ視聴からの広告収益を増やすこと
・到達率を増やすこと
・１つの映画当たりの収益を増やすこと
【００９５】
この課題に取り組むために、最初に予測を複数の異なる下位要素に反映させる実施形態を提供する。これらの要素は、例えば以下を含むことができる。
・Ｐ（Ｂ｜Ａ）−ユーザがＡを見たと仮定した時にＢの視聴を楽しむ確率
・Ｒ（Ｂ）−Ｂの各視聴からの予想収益（今後の活動）
・Ｐ（ａｄ｜ｕ、Ｂ）−Ｂを見ているユーザｕが広告をクリックする確率
【００９６】
機械学習エンジンを用いてこれらの各要素のスコアを生成した後、特定の目標セットに基づいてこれらの要素スコアを組み合わせ、推奨すべき候補ビデオを選択するための根拠として使用する総合ＭＬスコアを生成する。
【００９７】
図４は、指定目標４３０に基づいて総合ＭＬスコア４４０を生成するために目標ベースの要素結合器４１０により組み合わせられるＭＬ要素スコア４０４、４０６及び４０８を生成するように訓練された機械学習エンジン４０２のブロック図である。この例では、ＭＬ要素スコア４０４、４０６及び４０８が、上述した目的関数Ｐ（Ｂ｜Ａ）、Ｒ（Ｂ）、及びＰ（ａｄ｜ｕ、Ｂ）に対応することができる。目標ベースの要素結合器４１０が総合ＭＬスコア４４０を生成する際に各要素スコアに与える重みは、目標ベースの要素結合器４１０に与えられる目標情報４３０に基づく。
【００９８】
例えば、目標４３０が、収益よりもユーザの関与の方が大いに重要であり、広告よりも収益の方がわずかに重要であることを示していると仮定する。目標ベースの結合器４１０は、このような目標情報４３０に基づいて、要素スコア４０４、４０６及び４０８にそれぞれ０．６、０．２５及び０．１５だけ重み付けすることができる。
【００９９】
機械学習エンジン４０２は、単一のエンジンとして示しているが、各々が異なるＭＬ要素スコアを生成するように訓練された３つの異なるエンジンとして実装することもできる。実際の要素スコアの数、及び目標ベースの要素結合器４１０が総合ＭＬスコア４４０を生成する際にこれらのスコアにどのように重みを割り当てるかは、実装毎に異なってもよい。例えば、各々が異なる目的関数に基づいて予測を反映する多数のＭＬ要素スコアを単一の推奨システムによって生成することもできる。目標ベースの要素結合器４１０は、目標情報４３０に基づいて、これらのＭＬ要素スコアを様々な方法で組み合わせることができる。
【０１００】
１つの実施形態では、目標ベースの要素結合器４１０に複数の目標セットが与えられ、従って複数の総合ＭＬスコアが生成される。このような実施形態では、各ビデオペアの組み合わせが複数の総合ＭＬスコアを有し、ビデオを推奨すべきかどうかを決定するために使用する実際のＭＬスコアは、推奨を行うべき時点で有効な目標に基づく。
【０１０１】
要素スコアの入れ替え
特定の目標セットを満たす推奨を行うには、要素スコアを組み合わせて、推奨すべき候補ビデオを決定するための根拠として使用される総合ＭＬスコア４４０にすればよい。別の実施形態では、総合ＭＬスコア４４０が生成されない。代わりに、推奨システムは、推奨を行う際に要素スコアを入れ替えて、推奨すべきビデオを決定するための根拠として使用する。
【０１０２】
例えば、推奨システムは、ＭＬ要素スコア４０４、４０６及び４０８にそれぞれ０．６、０．２５及び０．１５の重みを与えることによって総合ＭＬスコア４４０を生成する代わりに、時間の６０％をＭＬ要素スコア４０４に基づいて、時間の２５％をＭＬ要素スコア４０６に基づいて、及び時間の１５％を要素スコア４０８に基づいて推奨を行うことができる。総合ＭＬスコア４４０を生成する実施形態と同様に、ＭＬ要素スコアを入れ替える実施形態は、推奨を行うべき時点で有効な目標に基づいて入れ替えを行う。
【０１０３】
１つの実施形態によれば、ＭＬ要素スコアを入れ替えるパターンが一様である必要はない。例えば、推奨システムは、ユーザを中心にして入れ替えを行うことができ、この場合ユーザには、ユーザの関与を予測するＭＬ要素スコアに基づく推奨が最初に提供される。推奨システムは、ユーザの関与に焦点を当てたいくつかの推奨をユーザに提示して初めて、収益最大化などの他の目的関数に基づくいくつかの推奨を提供し始めることができる。収益を最大化させる推奨を提示された時のユーザの行動により、ユーザの関与が特定の閾値を下回ったことが示された場合、推奨システムは、主に又は排他的にユーザの関与に関連する要素スコアに基づく推奨を提供することに戻すことができる。
【０１０４】
制約付き調査
１つの実施形態によれば、上述したように、ユーザにビデオを推奨する際にユーザの行動を掌握し、このユーザの行動を用いて、推奨システムが使用するメタデータを更新する。しかしながら、ユーザに常に「最適な」ビデオ推奨（ＭＬスコアの最も高いビデオなど）が提示されている限り、「最適でない」推奨に対してユーザがどのように反応するかに関する行動データは収集されない。推奨システムは、最適でない推奨に対するユーザの反応に関する情報を収集していなければ、推奨されなかったビデオを推奨すべきとなった場合にシステム自体を訂正することが困難になる。
【０１０５】
例えば、ビデオＢの視聴者にとってビデオＡが興味深いものであると仮定する。しかしながら、ビデオＡの視聴履歴が存在しない場合、機械学習エンジン１０２は、ビデオペアＡ及びＢに関して低いＭＬスコアを生成する。この低いＭＬスコアに起因して、ビデオＢの視聴者にはビデオＡが推奨されず、従ってビデオＢのほとんどの視聴者はビデオＡがどのようなものであるかが分からない。この結果、ビデオペアＡ及びＢのＭＬスコアは低い状態のままとなる。
【０１０６】
このような問題を避けるために、最適でない推奨を定期的にユーザに提示することにより、最適でない推奨に関する行動データを収集することができる。最適でない推奨の提示は、本来ユーザに提示するビデオの組以外の推奨をユーザに提示するので、「調査」と呼ばれる。しかしながら、調査が多すぎたり、又は誤った状況下で調査を行ったりすると、ユーザ体験が受け入れ難いほど悪化することがある。
【０１０７】
従って、１つの実施形態によれば、推奨システムが調査に制約を課す。具体的には、調査がビデオ推奨の目標に与えるマイナス影響を制限する形で調査を行う。例えば、推奨システムは、ユーザに推奨すべきビデオの選択を定期的にランダム化することができる。一方、ランダム選択を行う元のプールから、マイナス影響が一定の閾値を上回ると予測されるあらゆるビデオを除外することにより、ランダム選択を制約することもできる。
【０１０８】
例えば、調査中には、ランダム選択を行う元のビデオのプールが、比較ビデオに対して何らかの閾値Ｘを上回るＣＦスコア、又は何らかの閾値Ｙを上回るＣＢＦスコア、又は何らかの閾値Ｚを上回るＭＦスコアを有するビデオのみを含むことができる。ビデオの選択プールに課される特定の制約ルールは、任意に複雑なものとすることもできる。例えば、（（いずれかの減衰係数に関するＣＦスコア＞Ｘ）又は（ＭＬ要素スコアのいずれか１つ＞Ｙ）及び（総合ＭＬスコア＞Ｚ））の場合に、ビデオを選択プールにふさわしいものとすることができる。
【０１０９】
１つの実施形態によれば、ビデオ推奨に多腕バンディット技術を用いて、調査選択処理における各変数が現在の目標の達成に与える影響を学習し、マイナス影響が最も低いと予測される変数を調整する。例えば、イプシロングリーディ法を用いて、ＭＬシステムにより推奨されるビデオ（ベストリーバー）を試行の１−∈の割合で選択し、他のプールに属するビデオ（ランダム、動向、一定の閾値を上回るＣＢＦスコア）を∈の割合で（一様な確率で）選択する。典型的なパラメータ値は、∈−０．１とすることができるが、この値は、状況及び偏りに応じて幅広く変化することができる。
【０１１０】
ランタイム性能強化
本明細書で説明した技術を用いてビデオ推奨を行う際には、様々なランタイム性能強化を行うことができる。例えば、いくつかの実施形態では、ユーザクリックデータ（非常に小さい）を特徴（比較的大きい）と統合する際にブルームフィルタを使用して、機械学習システムへのトレーニング入力を生成することができる。具体的には、１つの実施形態では、ユーザクリックデータを用いてブルームフィルタを構築し、このフィルタを用いて、関連するクリックデータを有していない全ての無関係なＣＦ及びＣＢＦ特徴を除去する。このことは、様々なテーブルにインデックスが構築されないハドゥープなどのデータ処理システムにとって特に有用である。
【０１１１】
ビデオ推奨システムが使用できる別のランタイム強化には、非対称統合がある。具体的には、ＣＢＦ特徴とＣＦ特徴を統合する場合、非対称統合を用いて、新たな内容のための限られた行動データが存在するという事実を利用することができる。１つの実施形態では、これらの特徴を、生成された時点に応じて異なるバケットに編成する。推奨システムは、直前の数時間内に生成されたＣＦ特徴にＣＢＦ特徴を統合することのみを行う。これにより、機械学習システムのための訓練データ及びテストデータを生成するのに必要な時間が大幅に削減される。
【０１１２】
ハードウェアの概要
１つの実施形態によれば、本明細書で説明する技術が、１又はそれ以上の専用コンピュータ装置により実装される。この専用コンピュータ装置は、これらの技術を実行するためのハードウェア組み込み型とすることもでき、或いはこれらの技術を実行するように永続的にプログラムされた１又はそれ以上の特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのデジタル電子装置を含むこともでき、或いはファームウェア、メモリ、その他の記憶装置、又はこれらの組み合わせに含まれるプログラム命令に従ってこれらの技術を実行するようにプログラムされた１又はそれ以上の汎用ハードウェアプロセッサを含むこともできる。このような専用コンピュータ装置は、カスタムハードワイヤードロジック、ＡＳＩＣ、又はＦＰＧＡと、これらの技術を実現するためのカスタムプログラミングとを組み合わせることもできる。この専用コンピュータ装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルド装置、ネットワーク装置、又はこれらの技術を実装するためのハードワイヤードロジック及び／又はプログラムロジックを組み込んだ他のいずれの装置であってもよい。
【０１１３】
例えば、図５は、本発明の実施形態を実装できるコンピュータシステム５００を示すブロック図である。コンピュータシステム５００は、情報を通信するためのバス５０２又はその他の通信機構、及びバス５０２に結合された、情報を処理するためのハードウェアプロセッサ５０４を含む。ハードウェアプロセッサ５０４は、例えば汎用マイクロプロセッサとすることができる。
【０１１４】
コンピュータシステム５００は、バス５０２に結合された、情報及びプロセッサ５０４により実行される命令を記憶するためのランダムアクセスメモリ（ＲＡＭ）又はその他の動的記憶装置などのメインメモリ５０６も含む。メインメモリ５０６は、プロセッサ５０４により実行される命令の実行中に一時的変数又はその他の中間情報を記憶するために使用することもできる。このような命令は、プロセッサ５０４がアクセス可能な非一時的記憶媒体に記憶された場合、コンピュータシステム５００を、命令内で指示される動作を実行するようにカスタマイズされた専用機械の状態にする。
【０１１５】
コンピュータシステム５００は、バス５０２に結合された、静的情報及びプロセッサ５０４のための命令を記憶するリードオンリメモリ（ＲＯＭ）５０８又はその他の静的記憶装置をさらに含む。情報及び命令を記憶するための磁気ディスク又は光学ディスクなどの記憶装置５１０も設けられ、バス５０２に結合される。
【０１１６】
コンピュータシステム５００は、バス５０２を介して、コンピュータユーザに情報を表示するためのブラウン管（ＣＲＴ）などのディスプレイ５１２に結合することができる。バス５０２には、プロセッサ５０４に情報及びコマンド選択を通信するための英数字キー及びその他のキーを含む入力装置５１４も結合される。別の種類のユーザ入力装置には、プロセッサ５０４に方向情報及びコマンド選択を通信してディスプレイ５１２上のカーソルの動きを制御するためのマウス、トラックボール又はカーソル方向キーなどのカーソル制御５１６がある。通常、この入力装置は、第１の軸（例えば、ｘ）と第２の軸（例えば、ｙ）からなる２つの軸内の２つの自由度を有して、装置が平面上の位置を指定できるようにする。
【０１１７】
コンピュータシステム５００は、カスタマイズされたハードワイヤードロジック、１又はそれ以上のＡＳＩＣ又はＦＰＧＡ、ファームウェア、及び／又はコンピュータシステムと組み合わせてコンピュータシステム５００を専用機械にする、又はそのようにプログラムするプログラム論理を用いて、本明細書で説明した技術を実装することができる。１つの実施形態によれば、プロセッサ５０４がメインメモリ５０６に含まれる１又はそれ以上の命令の１又はそれ以上のシーケンスを実行することに応答して、本明細書の技術がコンピュータシステム５００により実行される。このような命令は、記憶装置５１０などの別の記憶媒体からメインメモリ５０６に読み込むことができる。プロセッサ５０４は、メインメモリ５０６に含まれる命令シーケンスを実行することにより、本明細書で説明した処理ステップを実行するようになる。別の実施形態では、ソフトウェア命令の代わりに又はこれと組み合わせてハードワイヤード回路を使用することができる。
【０１１８】
本明細書で使用する「記憶媒体」という用語は、データ及び／又は機械を特定の方法で動作させる命令を記憶するあらゆる非一時的媒体を意味する。このような記憶媒体は、不揮発性媒体及び／又は揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶装置５１０などの光学又は磁気ディスクを含む。揮発性媒体は、メインメモリ５０６などの動的メモリを含む。一般的な記憶媒体としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、固体ドライブ、磁気テープ、又はその他のあらゆる磁気データ記憶媒体、ＣＤ−ＲＯＭ、その他のあらゆる光学データ記憶媒体、穴パターンを有するあらゆる物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ、その他のあらゆるメモリチップ又はカートリッジが挙げられる。
【０１１９】
記憶媒体は、送信媒体とは異なるが、これと共に使用することができる。送信媒体は、記憶媒体間の情報の転送に関与する。例えば、送信媒体としては、バス５０２を含む配線を含む、同軸ケーブル、銅線及び光ファイバが挙げられる。送信媒体は、電波及び赤外線データ通信中に生成されるような音波又は光波の形を取ることもできる。
【０１２０】
実行のためにプロセッサ５０４に１又はそれ以上の命令の１又はそれ以上のシーケンスを運ぶことには、様々な形の媒体が関与することができる。例えば、最初に遠隔コンピュータの磁気ディスク又は固体ドライブで命令を運ぶことができる。遠隔コンピュータは、その動的メモリにこれらの命令をロードし、モデムを用いて電話回線を介してこの命令を送信することができる。コンピュータシステム５００のローカルなモデムが、電話回線上でデータを受け取り、赤外線送信機を使用してデータを赤外線信号に変換することができる。この赤外線信号内で運ばれるデータを赤外線検出器が受け取り、このデータを適当な回路によってバス７０２上に配置することができる。バス５０２は、このデータをメインメモリ５０６に運び、ここからプロセッサ５０４が命令を取り出して実行する。任意に、メインメモリ５０６が受け取った命令を、プロセッサ５０４による実行前又は実行後のいずれかに記憶装置５１０に記憶することもできる。
【０１２１】
コンピュータシステム５００は、バス５０２に結合された通信インターフェイス５１８も含む。通信インターフェイス５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に結合して双方向データ通信を提供する。例えば、通信インターフェイス５１８は、総合デジタル通信網（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、又は対応する種類の電話回線へのデータ通信接続を提供するモデムとすることができる。別の例として、通信インターフェイス５１８を、互換性のあるＬＡＮにデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ）カードとすることもできる。無線リンクを実装することもできる。あらゆるこのような実装では、通信インターフェイス５１８が、様々な種類の情報を表すデジタルデータストリームを運ぶ電気、電磁又は光学信号を送受信する。
【０１２２】
通常、ネットワークリンク５２０は、１又はそれ以上のネットワークを介して他のデータ装置にデータ通信を提供する。例えば、ネットワークリンク５２０は、ローカルネットワーク５２２を介したホストコンピュータ５２４への、又はインターネットサービスプロバイダ（ＩＳＰ）５２６によって動作するデータ機器への接続を提供することができる。さらに、ＩＳＰ５２６は、今では一般的に「インターネット」５２８と呼ばれるワールドワイドパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク５２２及びインターネット５２８はいずれも、デジタルデータストリームを運ぶ電気、電磁又は光学信号を使用する。コンピュータシステム５００との間でデジタルデータを運ぶ、様々なネットワークを介した信号及びネットワークリンク５２０上の通信インターフェイス５１８を介した信号は、送信媒体の形態の一例である。
【０１２３】
コンピュータシステム５００は、（単複の）ネットワーク、ネットワークリンク５２０及び通信インターフェイス５１８を介してメッセージを送信し、プログラムコードを含むデータを受け取ることができる。インターネットの例では、サーバ５３０が、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２及び通信インターフェイス５１８を介して、アプリケーションプログラムのための要求されたコードを送信することができる。
【０１２４】
プロセッサ５０４は、この受信コードを受信時に実行することもでき、及び／又は後で実行できるように記憶装置５１０又はその他の不揮発性記憶装置に記憶することもできる。
【０１２５】
上述した明細書では、実装によって異なり得る数多くの特定の詳細に関連して本発明の実施形態を説明した。従って、明細書及び図面については、限定的な意味ではなく例示的な意味でとらえるべきである。本発明の範囲、及び出願人が何を発明の範囲として意図しているかを示す唯一かつ排他的なものは、本出願から特定の形で生じる請求項の組の逐語的及び等価的な範囲であり、これにはあらゆる今後の補正が含まれる。
【符号の説明】
【０１２６】
１０２  機械学習エンジン
１０６  入力フィード
１０８  ＣＦ入力
１１０  ＣＢＦ入力
１１２  その他の入力
１１８  ＣＦアナライザ
１２０  未加工のＣＦ特徴
１２４  ＣＦスコア
１２６  未加工のＣＢＦ特徴
１２８  ＣＢＦアナライザ
１３０  ＣＢＦスコア
１５０  ＭＬスコア
１５２  スコアに強く影響する特徴
１５４  推奨の理由
【図１】
0005926823.tif 000002
【図２】
0005926823.tif 000003
【図３】
0005926823.tif 000004
【図４】
0005926823.tif 000005
【図５】
0005926823.tif 000006