(57)【要約】【課題】レコメンドコンテンツの決定にあたりユーザの嗜好を精度良く反映する。【解決手段】レコメンドサーバは、全ての対象ユーザのユーザ特徴ベクトルについて各次元におけるばらつきをユーザ間分散として算出する処理、および、各対象ユーザのユーザ特徴ベクトルについて当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出する処理、のうち一方又は両方を行い、得られたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて複数の特徴語候補の各々の重要度スコアを算出し、各特徴語候補の重要度スコアに基づいて各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成し、最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて各対象ユーザについてのレコメンドコンテンツを決定する。【選択図】図１
2014215685.tif 000002
【特許請求の範囲】
【請求項１】
対象ユーザによるコンテンツ利用履歴を示すユーザ履歴データを保持し、複数の対象ユーザが操作する端末に対しレコメンドコンテンツを提供するレコメンドサーバであって、
コンテンツそれぞれについて、当該コンテンツを表すデータにおける予め定められた複数の特徴語候補それぞれの出現頻度に基づいてコンテンツ特徴ベクトルを生成するコンテンツ特徴ベクトル生成部と、
各対象ユーザについて、当該対象ユーザのユーザ履歴データに記録されたコンテンツに対応するコンテンツ特徴ベクトルを前記コンテンツ特徴ベクトル生成部から受け取り、当該コンテンツ特徴ベクトルに基づいてユーザ特徴ベクトルを生成するユーザ特徴ベクトル生成部と、
前記ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出するユーザ間分散算出部、および、前記ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出するユーザ内分散算出部、のうち一方又は両方を含む分散算出部と、
前記分散算出部によって算出されたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて、前記複数の特徴語候補の各々の重要度スコアを算出する重要度スコア算出部と、
前記重要度スコア算出部によって算出された各特徴語候補の重要度スコアに基づいて、各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成する最終的な特徴ベクトル生成部と、
前記最終的な特徴ベクトル生成部によって生成された最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて、各対象ユーザについてのレコメンドコンテンツを決定するレコメンドコンテンツ決定部と、
を具備するレコメンドサーバ。
【請求項２】
前記ユーザ間分散算出部は、
各対象ユーザについての過去のレコメンドコンテンツの数と当該レコメンドコンテンツのうち利用されたコンテンツの数とに基づき得られる各対象ユーザのレコメンド精度が高いほど大きな重みをつけて、前記ユーザ間分散を算出する、
請求項１に記載のレコメンドサーバ。
【請求項３】
前記ユーザ内分散算出部は、
前記過去の複数のユーザ特徴ベクトルに対し現在に近いものほど大きな重みをつけて、前記ユーザ内分散を算出する、
請求項１又は２に記載のレコメンドサーバ。
【請求項４】
前記ユーザ内分散算出部は、
前記過去の複数のユーザ特徴ベクトルに対し現在に近いものほど大きな重みをつけるとともに、各対象ユーザについての過去のレコメンドコンテンツの数と当該レコメンドコンテンツのうち利用されたコンテンツの数とに基づき得られる各対象ユーザのレコメンド精度が高いほど大きな重みをつけて、前記ユーザ内分散を算出する、
請求項１又は２に記載のレコメンドサーバ。
【請求項５】
前記分散算出部が前記ユーザ間分散算出部と前記ユーザ内分散算出部の両方を含む場合、前記重要度スコア算出部は、ユーザ間分散が大きいほど、ユーザ内分散が小さいほど、前記重要度スコアが大きくなるような算出式に基づいて、前記重要度スコアを算出する、
請求項１〜４の何れか一項に記載のレコメンドサーバ。
【請求項６】
前記最終的な特徴ベクトル生成部は、
前記コンテンツを表すデータにおける前記特徴語候補の出現頻度に対し、当該特徴語候補の重要度スコアに応じた重みをつけ、重みづけ後の出現頻度に基づいて最終的なコンテンツ特徴ベクトルを生成する、
請求項１〜５の何れか一項に記載のレコメンドサーバ。
【請求項７】
対象ユーザによるコンテンツ利用履歴を示すユーザ履歴データを保持し、複数の対象ユーザが操作する端末に対しレコメンドコンテンツを提供するレコメンドサーバ、により実行されるレコメンドコンテンツ決定方法であって、
コンテンツそれぞれについて、当該コンテンツを表すデータにおける予め定められた複数の特徴語候補それぞれの出現頻度に基づいてコンテンツ特徴ベクトルを生成するコンテンツ特徴ベクトル生成ステップと、
前記コンテンツ特徴ベクトル生成ステップによって生成された、各対象ユーザのユーザ履歴データに記録されたコンテンツに対応するコンテンツ特徴ベクトルを受け取り、当該コンテンツ特徴ベクトルに基づいてユーザ特徴ベクトルを生成するユーザ特徴ベクトル生成ステップと、
前記ユーザ特徴ベクトル生成ステップによって生成された全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出するユーザ間分散算出サブステップ、および、前記ユーザ特徴ベクトル生成ステップによって生成された全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出するユーザ内分散算出サブステップ、のうち一方又は両方を含む分散算出ステップと、
前記分散算出ステップによって算出されたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて、前記複数の特徴語候補の各々の重要度スコアを算出する重要度スコア算出ステップと、
前記重要度スコア算出ステップによって算出された各特徴語候補の重要度スコアに基づいて、各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成する最終的な特徴ベクトル生成ステップと、
前記最終的な特徴ベクトル生成ステップによって生成された最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて、各対象ユーザについてのレコメンドコンテンツを決定するレコメンドコンテンツ決定ステップと、
を具備するレコメンドコンテンツ決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のユーザ端末に対しレコメンドコンテンツを提供するレコメンドサーバ、および、提供すべきレコメンドコンテンツを決定するレコメンドコンテンツ決定方法に関する。なお、以下では、レコメンドコンテンツを提供する対象のユーザを「対象ユーザ」という。
【背景技術】
【０００２】
レコメンデーション技術においては、対象ユーザが過去に利用、視聴したコンテンツをもとに、個人の嗜好性を学習し、当該対象ユーザに特徴が類似するコンテンツを提供する。これを実現するための技術としては、例えば非特許文献１に記載された技術が用いられる。以下、既存のレコメンド技術の一例を説明する。
【０００３】
一例として１日１回レコメンドを更新するような動画視聴サービスを想定する。また、対象ユーザが利用する端末（以下「ユーザ端末」という）とレコメンドサーバとが互いに通信接続している形態で実現されているとする。このとき、対象ユーザがユーザ端末で１つ以上の動画を視聴すると、ユーザ端末はそれらの視聴ログをレコメンドサーバにアップロードする。その後、レコメンドサーバは、非特許文献１に記載されたように、以下の３ステップの処理を行うことによりコンテンツフィルタリングを実現する。なお、以下で述べるコンテンツ特徴ベクトルとは、コンテンツの特徴を示したものであり、ユーザ特徴ベクトルとは、各対象ユーザの嗜好性を示したものである。以下の処理は、例えば１日１回決まった時刻に起動するバッチ処理によって実行される。
（ステップ１）コンテンツの特徴をコンテンツ特徴ベクトルとして表現する。
（ステップ２）対象ユーザの視聴履歴に基づき対象ユーザの特徴をユーザ特徴ベクトルとして表現する。
（ステップ３）コンテンツ特徴ベクトルとユーザ特徴ベクトルとの類似度を計算し、類似度の高いコンテンツをレコメンド対象とする。
【０００４】
上記のステップ１においては、当該サービスで提供しているコンテンツそれぞれについてコンテンツ特徴ベクトルを計算する。コンテンツ特徴ベクトルにおけるベクトルの各要素は、そのコンテンツを特徴付けると考えられるキーワードである特徴要素により表される。どのようなキーワードを特徴要素とするかを規定したものが特徴辞書である。具体的には“野球、感動、空、・・・”などのキーワードの羅列がもっとも単純な特徴辞書の例である。ステップ１では、具体的には、各コンテンツに付随するメタデータに特徴辞書内のキーワードがどれだけ含まれているかについて、コンテンツごとに計算する。例えば、上記の単純な特徴辞書を用いる場合、あるコンテンツのメタデータに、「野球」という言葉が１つ入っており、「感動」という言葉は入っておらず、「空」という言葉が１つ入っていれば、当該コンテンツのコンテンツ特徴ベクトルにおける特徴要素は{1,0,1,・・・}で表すことができる。このような計算を当該サービスで提供しているコンテンツそれぞれについて実施する。
【０００５】
次のステップ２では、これまでの対象ユーザのコンテンツ利用履歴とステップ１で得られたコンテンツ特徴ベクトルから、対象ユーザの嗜好性を示すユーザ特徴ベクトルを計算する。即ち、対象ユーザのコンテンツ利用履歴に含まれるコンテンツＩＤに対応するコンテンツそれぞれのコンテンツ特徴ベクトルから、非特許文献１に記載のSVM（Support  Vector  Machine）という手法によって当該対象ユーザのユーザ特徴ベクトルを求める。このようにして各対象ユーザについてユーザ特徴ベクトルを求める。
【０００６】
最後に、ステップ３では、全てのユーザ特徴ベクトルと全てのコンテンツ特徴ベクトルとの類似度を計算し、各対象ユーザについて類似度の近いコンテンツ特徴ベクトルを持つコンテンツのコンテンツＩＤのリストを記載したレコメンドリストを作成する。ここでの類似度としては、ユーザ特徴ベクトルとコンテンツ特徴ベクトル間のコサイン距離を求めることが一般的である。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Y.  Fukazawa,  M.  Hara,  M.  Onogi,  H.  Ueno:  “Automatic  mobile  menu  customization  based  on  user  operation  history”,  Mobile  HCI  2009.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、不適切な特徴語が上述した特徴辞書に定義されていると、対象ユーザの嗜好を抽出する精度の低いユーザ特徴ベクトルが生成されるおそれがある。例えば、「そして」などの一般語（一般的に広く使われる語）が特徴語として特徴辞書に定義されている場合、ほぼ全ての対象ユーザの特徴ベクトルにおける当該一般語に対応する次元の値が「１」となってしまう。一方、ほぼ全ての対象ユーザが興味を示さないようなワードが特徴語として特徴辞書に定義されている場合、ほぼ全てのユーザ特徴ベクトルにおける当該ワードに対応する次元の値が「０」となってしまう。本来、ユーザ特徴ベクトルは、対象ユーザ間の嗜好の違いを表すことが重要であるのに、上記例のように、ほぼ全ての対象ユーザのユーザ特徴ベクトルが同じ値を持ってしまうと、結果的にどの対象ユーザにも同じようなコンテンツがレコメンドされてしまうという問題点がある。
【０００９】
一方、対象ユーザそれぞれにおいて嗜好が頻繁に変わることは一般に考えにくいため、同一対象ユーザにおける使用頻度が大きく変動するワード、即ち、同一対象ユーザにおけるユーザ内分散が大きい特徴語は、当該対象ユーザの嗜好を抽出する上では好ましくない、と考えられる。
【００１０】
そこで、本発明は、上記のような問題点を踏まえ、レコメンドコンテンツの決定にあたり、対象ユーザの嗜好を精度良く反映することを課題とする。
【課題を解決するための手段】
【００１１】
本発明に係るレコメンドサーバは、対象ユーザによるコンテンツ利用履歴を示すユーザ履歴データを保持し、複数の対象ユーザが操作する端末に対しレコメンドコンテンツを提供するレコメンドサーバであって、コンテンツそれぞれについて、当該コンテンツを表すデータにおける予め定められた複数の特徴語候補それぞれの出現頻度に基づいてコンテンツ特徴ベクトルを生成するコンテンツ特徴ベクトル生成部と、各対象ユーザについて、当該対象ユーザのユーザ履歴データに記録されたコンテンツに対応するコンテンツ特徴ベクトルを前記コンテンツ特徴ベクトル生成部から受け取り、当該コンテンツ特徴ベクトルに基づいてユーザ特徴ベクトルを生成するユーザ特徴ベクトル生成部と、前記ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出するユーザ間分散算出部、および、前記ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出するユーザ内分散算出部、のうち一方又は両方を含む分散算出部と、前記分散算出部によって算出されたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて、前記複数の特徴語候補の各々の重要度スコアを算出する重要度スコア算出部と、前記重要度スコア算出部によって算出された各特徴語候補の重要度スコアに基づいて、各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成する最終的な特徴ベクトル生成部と、前記最終的な特徴ベクトル生成部によって生成された最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて、各対象ユーザについてのレコメンドコンテンツを決定するレコメンドコンテンツ決定部と、を具備する。なお、本明細書における「コンテンツを表すデータ」としては、コンテンツに付随するメタデータや、コンテンツデータそのもの（例えばテキストデータから成るコンテンツの場合の当該コンテンツデータ）などが含まれる。「コンテンツを表すデータ」は、レコメンドサーバが予め保持していてもよいし、外部から入力してもよい。
【００１２】
本発明に係るレコメンドサーバは分散算出部を備えており、分散算出部は、ユーザ間分散算出部とユーザ内分散算出部のうち一方又は両方を含んでいる。このうちユーザ間分散算出部は、ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出し、一方、ユーザ内分散算出部は、ユーザ特徴ベクトル生成部によって生成された全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出する。そして、重要度スコア算出部は、算出されたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて、複数の特徴語候補の各々の重要度スコアを算出し、最終的な特徴ベクトル生成部は、各特徴語候補の重要度スコアに基づいて、各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成し、レコメンドコンテンツ決定部は、最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて、各対象ユーザについてのレコメンドコンテンツを決定する。
【００１３】
従って、分散算出部がユーザ間分散算出部を含む場合、ユーザ間分散算出部により、全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきがユーザ間分散として算出され、得られたユーザ間分散を基礎として、複数の特徴語候補の各々の重要度スコアが算出される。そのため、ユーザ間分散に応じた重要度スコア、例えばユーザ間分散が大きいほど、高くなるように設定された重要度スコアを得ることが可能となり、その結果、ユーザ間の嗜好の違いを明確に表す最終的なユーザ特徴ベクトルを得ることが可能となり、各対象ユーザの嗜好に沿ったコンテンツをレコメンドコンテンツとして決定することができる。
【００１４】
また、分散算出部がユーザ内分散算出部を含む場合、ユーザ内分散算出部により、全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきがユーザ内分散として算出され、得られたユーザ内分散を基礎として、複数の特徴語候補の各々の重要度スコアが算出される。そのため、ユーザ内分散に応じた重要度スコア、例えばユーザ内分散が小さいほど、高くなるように設定された重要度スコアを得ることが可能となり、その結果、各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを得ることが可能となり、各対象ユーザの嗜好に沿ったコンテンツをレコメンドコンテンツとして決定することができる。
【００１５】
更に、分散算出部がユーザ間分散算出部とユーザ内分散算出部の両方を含む場合は、ユーザ間分散とユーザ内分散の両方を基礎として、複数の特徴語候補の各々の重要度スコアが算出される。そのため、ユーザ間分散とユーザ内分散の両方に応じた重要度スコア、例えばユーザ間分散が大きいほど且つユーザ内分散が小さいほど、高くなるように設定された重要度スコアを得ることが可能となり、その結果、ユーザ間の嗜好の違いおよび各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを得ることが可能となり、各対象ユーザの嗜好をより精度良く反映したコンテンツをレコメンドコンテンツとして決定することができる。
【００１６】
上記のレコメンドサーバでは、ユーザ間分散算出部は、各対象ユーザについての過去のレコメンドコンテンツの数と当該レコメンドコンテンツのうち利用されたコンテンツの数とに基づき得られる各対象ユーザのレコメンド精度が高いほど大きな重みをつけて、ユーザ間分散を算出してもよい。この場合、レコメンド精度の高かったユーザに大きな重み付けをした上で、ユーザ間分散を算出することができ、レコメンドコンテンツの決定にあたり、より精度良くユーザの嗜好を反映することができる。
【００１７】
上記のレコメンドサーバでは、ユーザ内分散算出部は、過去の複数のユーザ特徴ベクトルに対し現在に近いものほど大きな重みをつけて、ユーザ内分散を算出してもよい。この場合、過去の古い世代のものより新しい世代のユーザ特徴ベクトルを重要視した重み付けをした上で、ユーザ内分散を算出することができ、レコメンドコンテンツの決定にあたり、より精度良くユーザの嗜好を反映することができる。
【００１８】
上記のレコメンドサーバでは、ユーザ内分散算出部は、過去の複数のユーザ特徴ベクトルに対し現在に近いものほど大きな重みをつけるとともに、各対象ユーザについての過去のレコメンドコンテンツの数と当該レコメンドコンテンツのうち利用されたコンテンツの数とに基づき得られる各対象ユーザのレコメンド精度が高いほど大きな重みをつけて、ユーザ内分散を算出してもよい。この場合、過去の古い世代のものより新しい世代のユーザ特徴ベクトルを重要視した重み付けをし、且つ、レコメンド精度の高かったユーザに大きな重み付けをした上で、ユーザ内分散を算出することができ、レコメンドコンテンツの決定にあたり、さらに精度良くユーザの嗜好を反映することができる。
【００１９】
また、上記のレコメンドサーバでは、分散算出部がユーザ間分散算出部とユーザ内分散算出部の両方を含む場合、重要度スコア算出部は、ユーザ間分散が大きいほど、ユーザ内分散が小さいほど、重要度スコアが大きくなるような算出式に基づいて、重要度スコアを算出してもよい。この場合、ユーザ間の嗜好の違いおよび各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを得ることが可能となり、各対象ユーザの嗜好をより精度良く反映したコンテンツをレコメンドコンテンツとして決定することができる。
【００２０】
また、上記のレコメンドサーバでは、最終的な特徴ベクトル生成部は、コンテンツを表すデータにおける特徴語候補の出現頻度に対し、当該特徴語候補の重要度スコアに応じた重みをつけ、重みづけ後の出現頻度に基づいて最終的なコンテンツ特徴ベクトルを生成してもよい。この場合、特徴語候補の重要度スコアに応じて重み付けされた出現頻度に基づいて、最終的なコンテンツ特徴ベクトルが生成されるため、各対象ユーザの嗜好をより精度良く反映したコンテンツをレコメンドコンテンツとして決定することができる。
【００２１】
以上説明したレコメンドサーバに係る発明は、レコメンドコンテンツ決定方法に係る発明として捉えることができる。レコメンドコンテンツ決定方法に係る発明は、以下のように記述することができ、レコメンドサーバに係る発明と同様の作用・効果を奏する。
【００２２】
本発明に係るレコメンドコンテンツ決定方法は、対象ユーザによるコンテンツ利用履歴を示すユーザ履歴データを保持し、複数の対象ユーザが操作する端末に対しレコメンドコンテンツを提供するレコメンドサーバ、により実行されるレコメンドコンテンツ決定方法であって、コンテンツそれぞれについて、当該コンテンツを表すデータにおける予め定められた複数の特徴語候補それぞれの出現頻度に基づいてコンテンツ特徴ベクトルを生成するコンテンツ特徴ベクトル生成ステップと、前記コンテンツ特徴ベクトル生成ステップによって生成された、各対象ユーザのユーザ履歴データに記録されたコンテンツに対応するコンテンツ特徴ベクトルを受け取り、当該コンテンツ特徴ベクトルに基づいてユーザ特徴ベクトルを生成するユーザ特徴ベクトル生成ステップと、前記ユーザ特徴ベクトル生成ステップによって生成された全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出するユーザ間分散算出サブステップ、および、前記ユーザ特徴ベクトル生成ステップによって生成された全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出するユーザ内分散算出サブステップ、のうち一方又は両方を含む分散算出ステップと、前記分散算出ステップによって算出されたユーザ間分散とユーザ内分散のうち一方又は両方に基づいて、前記複数の特徴語候補の各々の重要度スコアを算出する重要度スコア算出ステップと、前記重要度スコア算出ステップによって算出された各特徴語候補の重要度スコアに基づいて、各対象ユーザについて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成する最終的な特徴ベクトル生成ステップと、前記最終的な特徴ベクトル生成ステップによって生成された最終的なコンテンツ特徴ベクトルと最終的なユーザ特徴ベクトルとの類似度に基づいて、各対象ユーザについてのレコメンドコンテンツを決定するレコメンドコンテンツ決定ステップと、を具備する。
【発明の効果】
【００２３】
本発明によれば、レコメンドコンテンツの決定にあたり、ユーザの嗜好を精度良く反映することができる。
【図面の簡単な説明】
【００２４】
【図１】発明の実施形態に係るレコメンドサーバの機能ブロック構成図である。
【図２】レコメンドサーバにより実行される処理を示すフローチャートである。
【図３】特徴語候補すべてが規定された特徴辞書の一例を示す図である。
【図４】あるコンテンツＡのメタデータの一例を示す図である。
【図５】全ユーザのユーザ特徴ベクトルの今回計算分の一例を示す図である。
【図６】世代ごとの各ユーザ特徴ベクトルの一例を示す図である。
【図７】レコメンドコンテンツのうち実際に各ユーザがクリックしたコンテンツの数の一例を示す図である。
【図８】ユーザ間分散の重みの一例を示す図である。
【図９】各次元の重みつきユーザ間分散の一例を示す図である。
【図１０】ユーザごとの各次元のユーザ内分散の一例を示す図である。
【図１１】全ユーザにおける各次元のユーザ内分散の一例を示す図である。
【図１２】重要度スコアの一例を示す図である。
【図１３】最終的な特徴辞書の一例を示す図である。
【図１４】重要度スコアで重みづけされた特徴辞書の一例を示す図である。
【図１５】レコメンドサーバのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照しながら、本発明に係る実施形態を説明する。以下の実施形態では、１つのレコメンドサーバと複数（ここでは一例として７つ）の端末とが通信する形態を想定する。上記端末のユーザには、それぞれ１〜７のユーザＩＤが予め割り当てられており、以下、これらのユーザ（ユーザＩＤ＝１〜７のユーザ）を対象ユーザとして説明する。
【００２６】
［レコメンドサーバの構成について］
本実施形態におけるレコメンドサーバ１００の構成を図１に示す。この図１に示すように、レコメンドサーバ１００は、特徴語候補管理部１０１、メタデータ管理部１０２、ユーザ履歴蓄積部１０３、ユーザ特徴ベクトル生成部１０４、コンテンツ特徴ベクトル生成部１０５、分散算出部１０６、重要度スコア算出部１０７、最終的な特徴ベクトル生成部１０８、およびレコメンドコンテンツ決定部１０９を備える。以下、各部の機能・動作について説明する。
【００２７】
メタデータ管理部１０２は、各コンテンツに紐付くコンテンツデータであるメタデータを保持し、特徴語候補管理部１０１およびコンテンツ特徴ベクトル生成部１０５にメタデータを出力する。
【００２８】
特徴語候補管理部１０１は、メタデータ管理部１０２からメタデータを受け取り、形態素解析などにより特徴語の候補となるワード（以下「特徴語候補」という）をメタデータから抽出し、得られた特徴語候補を、コンテンツ特徴ベクトル生成部１０５に出力するとともに特徴辞書１０１Ａに保持する。なお、特徴語候補は、メタデータから抽出されることに限定されるものではなく、メタデータ以外のデータ、例えばコンテンツデータそのもの（例えばテキストデータから成るコンテンツの場合の当該コンテンツデータ）などから抽出してもよい。
【００２９】
ユーザ履歴蓄積部１０３は、ユーザが移動機でどのようなコンテンツをいつ視聴／利用したかを示す履歴（以下「ユーザ履歴」という）をネットワーク経由で移動機から受け取って保持する。保持されたユーザ履歴はユーザ特徴ベクトル生成部１０４に出力される。
【００３０】
コンテンツ特徴ベクトル生成部１０５は、メタデータ管理部１０２から受け取ったメタデータについて、特徴語候補管理部１０１から受け取った特徴語候補の出現頻度に基づいて従来の手法（例えば背景技術で述べたステップ１の処理など）によってコンテンツ特徴ベクトルを生成する。生成されたコンテンツ特徴ベクトルは、ユーザ特徴ベクトル生成部１０４および最終的なコンテンツ特徴ベクトル生成部１０８Ｃに出力される。
【００３１】
ユーザ特徴ベクトル生成部１０４は、各対象ユーザについて、ユーザ履歴蓄積部１０３から受け取ったユーザ履歴に書かれたコンテンツＩＤに対応するコンテンツ特徴ベクトルをコンテンツ特徴ベクトル生成部１０５から受け取り、該コンテンツ特徴ベクトルから、従来の手法（例えば非特許文献１に記載のSVMなど）によって各対象ユーザのユーザ特徴ベクトルを生成する。生成されたユーザ特徴ベクトルは、後述するユーザ間分散算出部１０６Ａ、ユーザ内分散算出部１０６Ｂおよび最終的なユーザ特徴ベクトル生成部１０８Ｂに出力される。
【００３２】
分散算出部１０６は、全ての対象ユーザのユーザ特徴ベクトルについて、各次元におけるばらつきをユーザ間分散として算出するユーザ間分散算出部１０６Ａ、および、全ての対象ユーザのユーザ特徴ベクトルの各々について、当該対象ユーザの過去の複数のユーザ特徴ベクトルとの各次元におけるばらつきをユーザ内分散として算出するユーザ内分散算出部１０６Ｂ、のうち一方又は両方を含んで構成される。本実施形態では、分散算出部１０６がユーザ間分散算出部１０６Ａとユーザ内分散算出部１０６Ｂの両方を含んで構成される例について説明し、ユーザ間分散算出部１０６Ａおよびユーザ内分散算出部１０６Ｂによる算出方法は、後に詳述する。ユーザ間分散算出部１０６Ａにより算出されたユーザ間分散およびユーザ内分散算出部１０６Ｂにより算出されたユーザ内分散は、重要度スコア算出部１０７へ出力される。
【００３３】
重要度スコア算出部１０７は、算出されたユーザ間分散およびユーザ内分散を受け取り、特徴ベクトルの各次元（即ち、各特徴語候補に対応する値）について、後述する計算式に従って重要度スコアを算出する。得られた各特徴語候補の重要度スコアは、後述する最終的な特徴辞書生成部１０８Ａに出力される。
【００３４】
最終的な特徴ベクトル生成部１０８は、最終的な特徴辞書生成部１０８Ａ、最終的なユーザ特徴ベクトル生成部１０８Ｂおよび最終的なコンテンツ特徴ベクトル生成部１０８Ｃを含んで構成される。
【００３５】
このうち最終的な特徴辞書生成部１０８Ａは、各特徴語候補の重要度スコアを重要度スコア算出部１０７から受け取り、重要度スコアの高いものを、最終的に使用する特徴語として採用し、最終的に使用する特徴語を集めた最終的な特徴辞書を生成する。
【００３６】
最終的なコンテンツ特徴ベクトル生成部１０８Ｃは、コンテンツ特徴ベクトル生成部１０５から受け取ったコンテンツ特徴ベクトルを基に、上記最終的な特徴辞書に記載された最終的に使用する特徴語に対応する次元のみで定義された特徴空間において、コンテンツ特徴ベクトルを再生成し、最終的なコンテンツ特徴ベクトルを得る。得られた最終的なコンテンツ特徴ベクトルは、レコメンドコンテンツ決定部１０９に出力される。なお、最終的なコンテンツ特徴ベクトル生成部１０８Ｃの動作の詳細は後述する。
【００３７】
最終的なユーザ特徴ベクトル生成部１０８Ｂは、ユーザ特徴ベクトル生成部１０４から受け取ったユーザ特徴ベクトルを基に、上記最終的な特徴辞書に記載された最終的に使用する特徴語に対応する次元のみで定義された特徴空間において、ユーザ特徴ベクトルを再生成し、最終的なユーザ特徴ベクトルを得る。得られた最終的なユーザ特徴ベクトルは、レコメンドコンテンツ決定部１０９に出力される。なお、最終的なユーザ特徴ベクトル生成部１０８Ｂの動作の詳細は後述する。
【００３８】
レコメンドコンテンツ決定部１０９は、最終的なユーザ特徴ベクトルそれぞれについて、最終的なコンテンツ特徴ベクトルに対する類似度を算出し、類似度の高いコンテンツを、当該最終的なユーザ特徴ベクトルに係る対象ユーザへのレコメンドコンテンツとして決定し、得られたレコメンドコンテンツをネットワーク経由で移動機へ出力するとともにレコメンドコンテンツ決定部１０９内に保持する。
【００３９】
図１５には、レコメンドサーバ１００のハードウェア構成例を示す。レコメンドサーバ１００は、物理的には、ＣＰＵ１００Ａ、主記憶装置であるＲＡＭ１００Ｂ及びＲＯＭ１００Ｃ、入力デバイスであるキーボード及びマウス等の入力装置１００Ｄ、ディスプレイ等の出力装置１００Ｅ、ネットワークカード等のデータ送受信デバイスである通信モジュール１００Ｆ、ハードディスク等の補助記憶装置１００Ｇなどを含むコンピュータシステムとして構成されている。図１において説明した各部の機能は、図１５に示すＣＰＵ１００Ａ、ＲＡＭ１００Ｂ等のハードウェア上に所定のコンピュータソフトウェアを読み込ませて実行することにより、ＣＰＵ１００Ａの制御のもとで入力装置１００Ｄ、出力装置１００Ｅ、通信モジュール１００Ｆを動作させ、ＲＡＭ１００Ｂや補助記憶装置１００Ｇにおけるデータの読み出し及び書き込みを行うことで実現される。
【００４０】
［レコメンドサーバにおける処理について］
以下、図２のフローチャートに沿って、レコメンドサーバにおける処理について説明する。なお、前述した構成を持ったレコメンドサーバ１００では、メタデータ管理部１０２が各コンテンツのメタデータを予め保持し、ユーザ履歴蓄積部１０３が各対象ユーザの端末から随時アップロードされてくるユーザ履歴を保持し、特徴語候補管理部１０１が特徴辞書を予め保持している。特徴辞書に記憶される特徴語候補は、形態素解析結果のワードでもよいし、オペレータにより投入されたワードでもよい。
【００４１】
ここでは、レコメンドサーバ１００は、定期的に（例えば１日１回所定の時刻に）、図２の処理を実行する。ただし、定期的なタイミング以外に、例えばオペレータによるコマンド投入時などの任意のタイミングで図２の処理を実行してもよい。
【００４２】
図２のステップＳ１では、コンテンツ特徴ベクトル生成部１０５が、メタデータ管理部１０２から受け取ったメタデータについて、特徴語候補管理部１０１から受け取った特徴語候補の出現頻度に基づいて、例えば以下のようにしてコンテンツ特徴ベクトルを生成する。その際、コンテンツ特徴ベクトルは、従来技術と同様に、特徴辞書に定義された全ての特徴語候補に基づいて生成される。以下、コンテンツ特徴ベクトルの生成例を説明する。
【００４３】
例えば、特徴語候補が定義された特徴辞書が図３に示す特徴辞書であるとする。ここで、あるコンテンツＡのメタデータが図４に示すデータである場合、各特徴語候補のメタデータ内出現数は以下となる。
スポーツ（ＩＤ＝４）：１
ドラマ（ＩＤ＝５）：２
ニュース（ＩＤ＝７）：２
その他の特徴語候補：０
これをベクトル化すると、以下のようになる。
{0,0,0,1,2,0,2,0,0,0}
【００４４】
さらに、これを正規化すれば当該コンテンツのコンテンツ特徴ベクトルは以下のように求められる。なお、ここでの「正規化」とは、各次元の値を２乗して全次元分を加算し平方根をとったものによって、各次元の値を除算することである。
{0,0,0,(1/3),(2/3),0,(2/3),0,0,0}
【００４５】
以上のようにして生成されたコンテンツ特徴ベクトルは、ユーザ特徴ベクトル生成部１０４および最終的なコンテンツ特徴ベクトル生成部１０８Ｃに出力される。
【００４６】
次のステップＳ２では、ユーザ特徴ベクトル生成部１０４が、各対象ユーザについて、ユーザ履歴蓄積部１０３から受け取ったユーザ履歴に書かれたコンテンツＩＤに対応するコンテンツ特徴ベクトルをコンテンツ特徴ベクトル生成部１０５から受け取り、該コンテンツ特徴ベクトルから、従来の手法（例えば非特許文献１に記載のＳＶＭなど）によって各対象ユーザのユーザ特徴ベクトルを生成する。生成されたユーザ特徴ベクトルは、後述するユーザ間分散算出部１０６Ａ、ユーザ内分散算出部１０６Ｂおよび最終的なユーザ特徴ベクトル生成部１０８Ｂに出力される。
【００４７】
なお、今回の算出で得られた各対象ユーザのユーザ特徴ベクトルが図５のようになったとする。レコメンドサーバ１００は、過去に算出されたユーザ特徴ベクトルも保持しており、今回の算出で得られた図５のユーザ特徴ベクトルも含めて、世代ごとの各対象ユーザのユーザ特徴ベクトルは図６のようにまとめられる。図６には、一例として、今回算出分も含め計４世代分の各対象ユーザのユーザ特徴ベクトルを示す。ここでのユーザ特徴ベクトルは、全て同じ特徴語候補に基づいた特徴空間で定義されたものである。
【００４８】
次のＳ３では、分散算出部１０６において、ユーザ間分散とユーザ内分散とが算出されるが、これらのユーザ間分散とユーザ内分散は、すべての特徴語候補から、採用すべき特徴語を選択することに用いられる。このように、すべての特徴語候補を用いずに特徴語を選択して採用する趣旨としては、特徴語候補の中には、対象ユーザの嗜好を表すには不適切なワードが含まれている可能性があり、不適切なワードがレコメンド精度を劣化させてしまう恐れがあるため、採用すべき特徴語から不適切なワードを除外するという趣旨がある。
【００４９】
「対象ユーザの嗜好を適切に表す」という観点で、採用すべき特徴語としては、(1)ある対象ユーザのユーザ特徴ベクトルと、他の対象ユーザのユーザ特徴ベクトルの値と異なっている次元の特徴語候補と、(2)ある対象ユーザのユーザ特徴ベクトルにおいて、大きな値の変動がない次元の特徴語候補とが挙げられる。上記(1)の特徴語候補を採用すべき理由としては、全対象ユーザが同じ値を持っているような特徴語では、対象ユーザそれぞれの嗜好の違いを表すことができず、結果的に全員に同じようなレコメンドになってしまう恐れがあるためである。つまり、「ユーザ間分散が大きい」特徴語候補の方が、対象ユーザ間の嗜好の違いをよく表している、ということになる。一方、上記(2)の特徴語候補を採用すべき理由としては、ある１人の対象ユーザの嗜好が頻繁に変る（例えば毎日嗜好が変わる）ことは考えにくく、当該対象ユーザのユーザ特徴ベクトルにおいて、安定して値をもつ（つまり当該特徴語候補を含むコンテンツを安定して視聴／利用している）次元の特徴語候補を外してしまうと、当該対象ユーザの嗜好を表すことが困難になってしまうからである。つまり、「ユーザ内分散の小さい」特徴語候補の方が、対象ユーザの嗜好を抽出するにあたり信頼性が高い、と考えられる。
【００５０】
本実施形態では、上記(1)の特徴語候補を採用するために、全対象ユーザのユーザ特徴ベクトルの各次元の値についてのばらつきを表す分散（以下「ユーザ間分散」と呼ぶ）を算出し、上記(2)の特徴語候補を採用するために、同一対象ユーザの過去のユーザ特徴ベクトルの各次元についてのばらつきを表す分散（以下「ユーザ内分散」と呼ぶ）を算出する。なお、ユーザ間分散の算出処理とユーザ内分散の算出処理とで実行順序はどちらが先でもよく、同時並行で実行してもよい。
【００５１】
具体的には、ステップＳ３では、ユーザ間分散算出部１０６Ａが、以下のようにしてユーザ間分散を算出する。以下、ユーザ間分散算出方法について２つの方法を説明するが、何れの方法を採用してもよい。
【００５２】
第１のユーザ間分散算出方法では、ユーザ間分散算出部１０６Ａが、i次元目の分散V(i)を以下の式により求める。
V(i)＝[{x(1,i)−E(i)}２＋{x(2,i)−E(i)}２＋・・・＋{x(U,i)−E(i)}２]／U
ここで、
E(i)＝{x(1,i)＋x(2,i)＋・・・＋x(U,i)]／U
であり、i、U、x(u,i)、E(i)はそれぞれ以下を表す。
i：特徴ベクトルの次元ID
U：全対象ユーザ数
x(u,i)：対象ユーザuのユーザ特徴ベクトルにおけるi次元の値
E(i)：ユーザ特徴ベクトルにおけるi次元の値の全対象ユーザにおける平均値
【００５３】
第２のユーザ間分散算出方法では、ユーザ間分散算出部１０６Ａが、ユーザ間分散を重みつき分散として求める。ここで重みをつける方針としては、例えばレコメンド精度の高かった対象ユーザに大きな重みをつけるという方法を説明する。この狙いは、レコメンド精度が高いということは、その対象ユーザの嗜好を上手く抽出できている、ということであるため、当該ユーザ特徴ベクトルの値を重要視する、という趣旨である。
【００５４】
ここでは、一例として、レコメンド精度の高さを「レコメンドコンテンツのうち実際に対象ユーザがクリックしたコンテンツ数÷レコメンドコンテンツ数」として算出する。例えば、レコメンドするコンテンツ数を対象ユーザ１人あたり２０コンテンツと想定し、前回レコメンドしたコンテンツのうち各対象ユーザが実際にクリックしたコンテンツ数が図７に示すコンテンツ数であるとすれば、各対象ユーザの重みは、図７に示す各対象ユーザがクリックしたコンテンツ数を「２０」で割り算することで、図８のように求められる。
【００５５】
なお、実際に対象ユーザがクリックしたコンテンツ数を求める上で、対象ユーザがどのコンテンツをクリックしたかについては、ユーザ履歴蓄積部１０３に蓄積されているユーザ履歴と前回レコメンドしたコンテンツリストとを照らし合わせることにより求められる。
【００５６】
このとき、ユーザ間分散算出部１０６Ａは、重みつき分散としてi次元目の分散V(i)を以下の式により求める。ここで求められた各次元の重みつきユーザ間分散は図９のようになる。
V(i)＝[w(1)*{x(1,i)−E(i)}２＋w(2)*{x(2,i)−E(i)}２＋・・・
＋w(U)*{x(U,i)−E(i)}２]／{w(1)＋w(2)＋・・・＋w(U)}
E(i)＝{w(1)*x(1,i)＋w(2)*x(2,i)＋・・・＋w(U)*x(U,i)]
／{w(1)＋w(2)＋・・・＋w(U)}
i：特徴ベクトルの次元ID
U：全対象ユーザ数
w(u)：対象ユーザuの重み
x(u,i)：対象ユーザuのユーザ特徴ベクトルにおけるi次元の値
E(i)：ユーザ特徴ベクトルにおけるi次元の値の全対象ユーザの重みつき平均値
【００５７】
また、ステップＳ３では、ユーザ内分散算出部１０６Ｂが、以下のようにしてユーザ内分散を算出する。以下、ユーザ内分散算出方法について第１〜第３の方法を説明するが、何れの方法を採用してもよい。
【００５８】
第１のユーザ内分散算出方法では、ユーザ内分散算出部１０６Ｂが、今回の計算分も含め各対象ユーザの過去N回分のユーザ特徴ベクトルについて、i次元目の分散値B(i)を以下の式により算出する。ここでは、すべての特徴語候補で定義された特徴空間のものであり、かつ、過去N回の特徴語候補はすべて同一のものである。本方法では、各次元について、対象ユーザごとに過去N世代分の分散値（ばらつき）を求め、得られた対象ユーザごとの過去N世代分の分散値に対し全対象ユーザで加算平均を算出する。これにより得られた各次元についての加算平均を各次元のユーザ内分散とする。
B(i)＝{Bu(1,i)＋Bu(2,i)＋・・・＋Bu(U,i)}／U
Bu(u,i)＝[{x(u,i,1)−Eu(u,i)}２＋{x(u,i,2)−Eu(u,i)}２＋・・・
＋{x(u,i,N)−Eu(u,i)}２]／N
Eu(u,i)＝{x(u,i,1)＋x(u,i,2)＋・・・＋x(u,i,N)}／N
i：特徴ベクトルの次元ID
n：今回の計算分をn=1としたときの過去の世代ＩＤ（例．n=2ならば前回算出分、n=3ならは前々回算出分）
x(u,i,n)：対象ユーザuの過去n世代目のユーザ特徴ベクトルにおけるi次元の値
Bu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の分散値
Eu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の平均値
【００５９】
次に、第２のユーザ内分散算出方法について説明する。第１のユーザ内分散算出方法との違いは、過去の古い世代のものより、新しい世代のユーザ特徴ベクトルをより重要視した重み付けをすることである。その狙いは、対象ユーザの嗜好は、時間の経過とともに徐々に変わっていく可能性があるため、この点をユーザ履歴からの特徴抽出に反映しよう、という趣旨である。具体的には、ユーザ内分散算出部１０６Ｂが、i次元目の分散値B(i)を以下の式により算出する。
B(i)＝{Bu(1,i)＋Bu(2,i)＋・・・＋Bu(U,i)}／U
Bu(u,i)＝[m(1)*{x(u,i,1)−Eu(u,i)}２＋m(2)*{x(u,i,2)−Eu(u,i)}２＋・・・
＋m(N)*{x(u,i,N)−Eu(u,i)}２]／{m(1)＋m(2)＋・・・＋m(N)}
Eu(u,i)＝{m(1)*x(u,i,1)＋m(2)*x(u,i,2)＋・・・＋m(N)*x(u,i,N)}
／{m(1)＋m(2)＋・・・＋m(N)}
i：特徴ベクトルの次元ID
n：今回のレコメンド計算分をn=1としたときの過去の世代ＩＤ（例．n=2ならば前回算出分、n=3ならは前々回算出分）
m(n)：第n世代の重み
x(u,i,n)：対象ユーザuの過去n世代目のユーザ特徴ベクトルにおけるi次元の値
Bu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の分散値
Eu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の平均値
【００６０】
なお、第n世代の重みm(n)は、nが小さいほど大きな値を持つようにする。ここでは一例として、m(n)＝1／nを採用するが、他の関数を採用してもよい。
【００６１】
次に、第３のユーザ内分散算出方法について説明する。第１および第２のユーザ内分散算出方法との違いは、対象ユーザごとに重みをつける、というところである。重みの計算式およびその狙いは、前述した第２のユーザ間分散算出方法と同様である。具体的には、ユーザ内分散算出部１０６Ｂが、i次元目の分散値B(i)を以下の式により算出する。
B(i)＝{w(1)*Bu(1,i)＋w(2)*Bu(2,i)＋・・・＋w(U)*Bu(U,i)}
／{w(1)＋w(2)＋・・・＋w(U)}
Bu(u,i)＝[m(1)*{x(u,i,1)−Eu(u,i)}２＋m(2)*{x(u,i,2)−Eu(u,i)}２
＋・・・＋m(N)*{x(u,i,N)−Eu(u,i)}２]／{m(1)＋m(2)＋・・・＋m(N)}
Eu(u,i)＝{m(1)*x(u,i,1)＋m(2)*x(u,i,2)＋・・・＋m(N)*x(u,i,N)}
／{m(1)＋m(2)＋・・・＋m(N)}
i：特徴ベクトルの次元ID
n：今回のレコメンド計算分をn=1としたときの過去の世代ＩＤ（例．n=2ならば前回算出分、n=3ならは前々回算出分）
m(n)：第n世代の重み（nが小さいほど大きな値を持つ。ここでは一例として、m(n)=1／nを採用する）
w(u)：対象ユーザuの重み
x(u,i,n)：対象ユーザuの過去n世代目のユーザ特徴ベクトルにおけるi次元の値
Bu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の分散値
Eu(u,i,N)：対象ユーザuの過去N回分のユーザ特徴ベクトルにおけるi次元の平均値
【００６２】
上記第３のユーザ内分散算出方法を採用した場合、対象ユーザごとの各次元のユーザ内分散は図１０のようになり、全対象ユーザにおける各次元のユーザ内分散は図１１のようになる。このように、過去の古い世代のものより新しい世代のユーザ特徴ベクトルを重要視した重み付けをした上で、さらに、レコメンド精度の高かった対象ユーザに大きな重み付けをしてユーザ内分散を算出することで、レコメンドコンテンツの決定にあたり、より精度良く対象ユーザの嗜好を反映できるというメリットがある。
【００６３】
以上のようにしてステップＳ３において、ユーザ間分散およびユーザ内分散が算出される。
【００６４】
次のステップＳ４では各特徴語候補の重要度スコアの算出処理が、ステップＳ５では最終的な特徴辞書の生成処理が、ステップＳ６では最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルの生成処理が、それぞれ実行される。これら一連のステップＳ４〜Ｓ６の処理については３つのバリエーションがあるため、以下、第１〜第３の処理方法として順に説明する。
【００６５】
第１の処理方法は、各特徴語候補について以下の式で得られる重要度スコアH(i)を算出し（ステップＳ４）、すべての特徴語候補のうち重要度スコアH(i)が高い特徴語候補を、最終的に採用する特徴語として最終的な特徴辞書を生成し（ステップＳ５）、該最終的な特徴辞書に基づいて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルを生成する（ステップＳ６）ものである。
H(i)＝aV(i)−bB(i)
V(i)：i次元目のユーザ間分散
B(i)：i次元目のユーザ内分散
ただし、係数a、bは0以上の数値である。
【００６６】
上記式を用いれば、ユーザ間分散が大きいほど、ユーザ内分散が小さいほど、重要度スコアが大きくなるように、重要度スコアH(i)を求めることができる。この場合、対象ユーザ間の嗜好の違いおよび各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを得ることができる。
【００６７】
なお、最終的に採用する特徴語を抽出する手法としては、重要度スコアが所定の閾値より高い特徴語候補を抽出してもよいし、以下の例のように重要度スコアが高い方から上位の所定数の特徴語候補を抽出してもよい。
【００６８】
一例としてa＝0.6、b＝0.4を採用したとすれば、重要度スコア算出部１０７により重要度スコアH(i)が図１２のように算出される。ここで、最終的に採用する特徴語を抽出する手法として、重要度スコアが高い方から「上位６件」の特徴語候補を抽出するとした場合、最終的な特徴辞書生成部１０８Ａは、最終的に採用する特徴語を、図１３に示す６つの特徴語候補とし、最終的な特徴辞書を生成する。そして、生成された最終的な特徴辞書に基づいて最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルが生成される。即ち、すべての特徴語候補で求められたユーザ特徴ベクトルのうち、最終的な特徴辞書に含まれる特徴語に対応する次元のもののみを取り出し、それらの値で再度正規化することで、最終的なユーザ特徴ベクトルを得ることができる。また、コンテンツ特徴ベクトルについても同様の処理を行うことで、最終的なコンテンツ特徴ベクトルを得ることができる。例えば、ユーザＩＤ＝１の対象ユーザについてのユーザ特徴ベクトルは、以下のように求められる。
【００６９】
すべての特徴語候補で求められたユーザ特徴ベクトルのうち、最終的な特徴辞書に含まれる特徴語に対応する次元のもののみを取り出すと、以下のようになる。
{0.170664,  0.398216,  0,  0.511992,  0.511992,  0.113776}
【００７０】
そして、これを正規化することで、以下に示すユーザＩＤ＝１の対象ユーザについての最終的なユーザ特徴ベクトルが得られる。
{0.200446,  0.467707,  0,  0.601338,  0.601338,  0.133631}
【００７１】
第２の処理方法は、各特徴語候補について以下の式で得られる重要度スコアH(i)を算出し（ステップＳ４）、すべての特徴語候補を特徴語として採用して最終的な特徴辞書を生成した上で（ステップＳ５）、ステップ２で生成された各対象ユーザのユーザ特徴ベクトルの各次元の値に重要度スコアH(i)を乗算して正規化することで、最終的なユーザ特徴ベクトルを生成する（ステップＳ６）ものである。即ち、重要度スコアH(i)が高い特徴語候補ほど特徴語としての信頼性が高い、ということを意味するので、重要度スコアH(i)が高い特徴語候補に対応する次元の値に大きな重みをつける、という趣旨である。
【００７２】
最終的なユーザ特徴ベクトル生成部１０８Ｂは、以下の計算式により、最終的なユーザ特徴ベクトルの各次元の値y(u,i)を算出する。
y(u,i)＝H(i)*x(u,i)／Norm
ここでNormは、正規化する（ベクトルの長さを１にする）ために用いる値であり、以下の式で求められる。なお、Dは特徴ベクトルの次元数（特徴語候補の総数）を意味する。
【数１】
2014215685.tif 000003
【００７３】
第３の処理方法は、最終的なコンテンツ特徴ベクトルの生成処理に関する改良であり、メタデータから各特徴語候補の出現頻度を抽出する際に、各特徴語候補の出現頻度を重要度スコアの値で重み付けする方法である。ここでは、図３で定義された特徴辞書および図４のメタデータを持つコンテンツＡを例に取って、どのように最終的なコンテンツ特徴ベクトルを生成するのかを、以下に説明する。
【００７４】
図１２の重要度スコアを「重み」として各特徴語候補に対応付けた特徴辞書は図１４のようになる。ここで前述の通り、コンテンツＡのメタデータ（図４）における図３の各特徴語候補の出現数は以下のようになる。
スポーツ（ＩＤ＝４）：１
ドラマ（ＩＤ＝５）：２
ニュース（ＩＤ＝７）：２
その他の特徴語候補：０
【００７５】
ここで、各特徴語候補の出現数に重みを乗算すると以下のようになる。
スポーツ：1×0.023562＝0.023562
ドラマ：2×0.033417＝0.066834
ニュース：2×(-0.01487)＝-0.02974
その他の特徴語候補：０
これらをベクトル化すると、以下のようになる。
{0,  0,  0,  0.023562,  0.066834,  0,  -0.02974,  0,  0,  0}
【００７６】
さらに、これを正規化すれば、当該コンテンツのコンテンツ特徴ベクトルは以下のように求められる。
{0,  0,  0,  0.306584,  0.869632,  0,  -0.38697,  0,  0,  0}
【００７７】
以降は、この処理方法で、全てのコンテンツについて最終的なコンテンツ特徴ベクトルを生成し、生成された最終的なコンテンツ特徴ベクトルに基づき既存技術と同様にして、最終的なユーザ特徴ベクトルを求めればよい。
【００７８】
なお、ステップＳ４〜Ｓ６に係る上記第１の処理方法によれば、従来のようにすべての特徴語候補を用いる場合に比べ、最終的に採用する特徴語候補の数が少なくなるため、特徴辞書の次元数が少なくなり、最終的なユーザ特徴ベクトルの生成処理などの処理負荷を軽減できる、というメリットがある。上記第２および第３の処理方法によれば、処理負荷は第１の処理方法よりも高いものの、重みをつけた上でより多くの特徴語候補を用いるので、対象ユーザの嗜好に沿った精度の良いレコメンドが可能となる、というメリットがある。特に、第３の処理方法では、各特徴語候補の出現頻度をさらに重要度スコアの値によって重み付けするため、対象ユーザの嗜好に沿った、より精度の良いレコメンドが可能となる。
【００７９】
さて、図２に戻り、最後のステップＳ７では、レコメンドコンテンツ決定部１０９は、ステップＳ６で得られた最終的なコンテンツ特徴ベクトルおよび最終的なユーザ特徴ベクトルに基づいて、従来と同様の手法で、レコメンドコンテンツを決定する。即ち、レコメンドコンテンツ決定部１０９は、最終的なユーザ特徴ベクトルのそれぞれについて最終的なコンテンツ特徴ベクトルとの類似度を算出し、得られた類似度の大きいコンテンツを、当該最終的なユーザ特徴ベクトルに係る対象ユーザに提供すべきレコメンドコンテンツとして決定し、決定されたレコメンドコンテンツを該当の対象ユーザの端末へ送信する。
【００８０】
以上説明した本実施形態によれば、ユーザ間分散とユーザ内分散の両方を基礎として複数の特徴語候補の各々の重要度スコアが算出され、ユーザ間分散とユーザ内分散の両方に応じた重要度スコア、例えばユーザ間分散が大きいほど且つユーザ内分散が小さいほど、高くなるように設定された重要度スコアを得ることが可能となる。その結果、対象ユーザ間の嗜好の違いおよび各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを得ることが可能となり、各対象ユーザの嗜好をより精度良く反映したコンテンツをレコメンドコンテンツとして決定することができる。
【００８１】
なお、重要度スコアの計算では、ユーザ間分散とユーザ内分散の両方を基礎とすることは必須要件ではなく、ユーザ内分散とユーザ間分散のどちらか一方のみを基礎とした場合でも、以下のように相応の効果を得ることができる。例えば、ユーザ内分散のみを基礎とする場合、ユーザ内分散に応じた重要度スコア、例えばユーザ内分散が小さいほど、高くなるように設定された重要度スコアを得ることが可能となり、その結果、各対象ユーザの嗜好を精度良く表す最終的なユーザ特徴ベクトルを算出し各対象ユーザの嗜好に沿ったレコメンドコンテンツを提供できる。一方、ユーザ間分散のみを基礎とする場合、ユーザ間分散に応じた重要度スコア、例えばユーザ間分散が大きいほど、高くなるように設定された重要度スコアを得ることが可能となり、その結果、対象ユーザ間の嗜好の違いを明確に表す最終的なユーザ特徴ベクトルを算出し各対象ユーザの嗜好に沿ったレコメンドコンテンツを提供できる。
【符号の説明】
【００８２】
１００…レコメンドサーバ、１００Ａ…ＣＰＵ、１００Ｂ…ＲＡＭ、１００Ｃ…ＲＯＭ、１００Ｄ…入力装置、１００Ｅ…出力装置、１００Ｆ…通信モジュール、１００Ｇ…補助記憶装置、１０１…特徴語候補管理部、１０１Ａ…特徴辞書、１０２…メタデータ管理部、１０３…ユーザ履歴蓄積部、１０４…ユーザ特徴ベクトル生成部、１０５…コンテンツ特徴ベクトル生成部、１０６…分散算出部、１０６Ａ…ユーザ間分散算出部、１０６Ｂ…ユーザ内分散算出部、１０７…重要度スコア算出部、１０８…最終的な特徴ベクトル生成部、１０８Ａ…最終的な特徴辞書生成部、１０８Ｂ…最終的なユーザ特徴ベクトル生成部、１０８Ｃ…最終的なコンテンツ特徴ベクトル生成部、１０９…レコメンドコンテンツ決定部。
【図１】
2014215685.tif 000004
【図２】
2014215685.tif 000005
【図３】
2014215685.tif 000006
【図４】
2014215685.tif 000007
【図５】
2014215685.tif 000008
【図６】
2014215685.tif 000009
【図７】
2014215685.tif 000010
【図８】
2014215685.tif 000011
【図９】
2014215685.tif 000012
【図１０】
2014215685.tif 000013
【図１１】
2014215685.tif 000014
【図１２】
2014215685.tif 000015
【図１３】
2014215685.tif 000016
【図１４】
2014215685.tif 000017
【図１５】
2014215685.tif 000018