(57)【特許請求の範囲】
【請求項１】
複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列を入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値を推定して、推定された前記評価値である予測評価値を求める予測演算手段と、
前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数を線形回帰によって求める学習手段と、
複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する最終的な前記予測評価値を求める線形結合手段と
を備える推定装置。
【請求項２】
前記学習手段は、
前記複数の前記推定式を、前記最終的な前記予測評価値の演算に用いられる新たな複数の前記推定式の候補である推定式候補とするとともに、前記推定式候補として、任意の新たな推定式、および前記複数の前記推定式のうちのいくつかの一部が変更された新たな推定式を生成する推定式候補生成手段と、
前記推定式候補ごとに、前記推定式候補および前記評価行列に基づいて、前記評価行列における各前記ユーザの前記複数の前記評価対象のそれぞれに対する前記予測評価値を演算し、その演算により得られた前記予測評価値からなる推定結果を生成する推定結果生成手段と、
複数の前記推定結果のうちのいくつかを使用推定結果として、前記使用推定結果を生成するために用いられた前記推定式候補である使用推定式候補を、前記推定式として採用する場合における前記線形結合係数を、線形結合された前記使用推定結果の前記評価行列に対する予測誤差が最小となるように、線形回帰により求める線形結合係数算出手段と、
前記線形結合係数、前記使用推定結果、および前記評価行列を用いて、前記使用推定式候補および前記線形結合係数に対する評価として、線形結合された前記使用推定結果の前記評価行列に対する予測誤差が小さく、かつ前記使用推定式候補の数が少ないほど評価が高くなる情報量基準を算出する評価手段と、
前記使用推定式候補および前記線形結合係数のうち、前記情報量基準による評価の最も高い前記使用推定式候補および前記線形結合係数を、前記最終的な前記予測評価値の演算に用いられる新たな前記複数の前記推定式および前記線形結合係数として選択する選択手段と
を備える
請求項１に記載の推定装置。
【請求項３】
前記線形結合係数算出手段は、前記ユーザの前記評価値を用いたクラスタリングにより得られた複数のグループのうちの何れかに属す前記複数の前記ユーザのうち、同じ前記グループに属す前記ユーザの前記評価値および前記使用推定結果を用いて、前記グループごとに前記線形結合係数を求める
請求項２に記載の推定装置。
【請求項４】
複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列を入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値を推定して、推定された前記評価値である予測評価値を求める予測演算手段と、
前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数を線形回帰によって求める学習手段と、
複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する最終的な前記予測評価値を求める線形結合手段と
を備える推定装置の推定方法であって、
前記学習手段が、前記線形回帰により前記線形結合係数を求め、
前記予測演算手段が、前記複数の前記推定式について、前記推定式および前記評価行列に基づいて前記予測評価値を求め、
前記線形結合手段が、前記推定式ごとに求められた前記予測評価値のそれぞれを、前記線形結合係数を用いて線形結合し、前記ユーザの前記評価対象に対する前記最終的な前記予測評価値を求める
ステップを含む推定方法。
【請求項５】
複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列を入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値を推定して、推定された前記評価値である予測評価値を求め、
前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数を線形回帰によって求め、
複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する最終的な前記予測評価値を求める
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は推定装置および方法、並びにプログラムに関し、特に、ユーザにコンテンツを推薦する場合に用いて好適な推定装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、協調フィルタリングアルゴリズムにより、所定のコンテンツに対するユーザの評価を推定する技術が知られている。
【０００３】
具体的には、協調フィルタリングアルゴリズムを利用した情報処理装置として、注目するユーザに類似する他のユーザのコンテンツの視聴履歴を用いて協調フィルタリング処理を行い、注目するユーザの各コンテンツに対する評価を推定するものがある（例えば、特許文献１参照）。この情報処理装置では、複数のコンテンツのうち、推定された評価の最も高いコンテンツが、注目するユーザが好むコンテンツであるとされて、そのユーザに推薦される。
【０００４】
【特許文献１】特開２００５−１６７６２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した技術では、ユーザのコンテンツに対する評価を精度よく推定することは困難であった。
【０００６】
例えば、協調フィルタリングアルゴリズムを利用した情報処理装置では、注目しているユーザと類似しているとされたユーザの視聴履歴だけが用いられて、注目しているユーザのコンテンツに対する評価が推定される。そのため、コンテンツに対する評価の推定には、そのコンテンツに対する一般的な評価、つまり全体のユーザの評価が反映されなくなってしまい、推定により得られた評価が、注目しているユーザの真の評価とは大きく異なるものとなってしまう恐れがある。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、より精度よくユーザのコンテンツに対する評価を推定することができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の推定装置は、複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列を入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値を推定して、推定された前記評価値である予測評価値を求める予測演算手段と、前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数を線形回帰によって求める学習手段と、複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する最終的な前記予測評価値を求める線形結合手段とを備える。
【００１０】
前記学習手段には、前記複数の前記推定式を、前記最終的な前記予測評価値の演算に用いられる新たな複数の前記推定式の候補である推定式候補とするとともに、前記推定式候補として、任意の新たな推定式、および前記複数の前記推定式のうちのいくつかの一部が変更された新たな推定式を生成する推定式候補生成手段と、前記推定式候補ごとに、前記推定式候補および前記評価行列に基づいて、前記評価行列における各前記ユーザの前記複数の前記評価対象のそれぞれに対する前記予測評価値を演算し、その演算により得られた前記予測評価値からなる推定結果を生成する推定結果生成手段と、複数の前記推定結果のうちのいくつかを使用推定結果として、前記使用推定結果を生成するために用いられた前記推定式候補である使用推定式候補を、前記推定式として採用する場合における前記線形結合係数を、線形結合された前記使用推定結果の前記評価行列に対する予測誤差が最小となるように、線形回帰により求める線形結合係数算出手段と、前記線形結合係数、前記使用推定結果、および前記評価行列を用いて、前記使用推定式候補および前記線形結合係数に対する評価として、線形結合された前記使用推定結果の前記評価行列に対する予測誤差が小さく、かつ前記使用推定式候補の数が少ないほど評価が高くなる情報量基準を算出する評価手段と、前記使用推定式候補および前記線形結合係数のうち、前記情報量基準による評価の最も高い前記使用推定式候補および前記線形結合係数を、前記最終的な前記予測評価値の演算に用いられる新たな前記複数の前記推定式および前記線形結合係数として選択する選択手段とを設けることができる。
【００１１】
前記線形結合係数算出手段には、前記ユーザの前記評価値を用いたクラスタリングにより得られた複数のグループのうちの何れかに属す前記複数の前記ユーザのうち、同じ前記グループに属す前記ユーザの前記評価値および前記使用推定結果を用いて、前記グループごとに前記線形結合係数を求めさせることができる。
【００１２】
本発明の一側面の推定方法またはプログラムは、複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値を推定して、推定された前記評価値である予測評価値を求め、前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数を線形回帰によって求め、複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する評価の最終的な前記予測評価値を求めるステップを含む。
【００１３】
本発明の一側面においては、複数の評価対象のそれぞれに対する、複数のユーザごとの評価を示す評価値からなる評価行列と、前記評価行列を入力し前記評価値の推定値を出力する推定式であって、協調フィルタリングにより前記評価行列から前記評価値を推定する演算を行う処理を示す演算子を含む、複数の演算子からなる推定式とに基づいて、前記ユーザにより評価が行われていない前記評価対象の前記評価値が推定されて、推定された前記評価値である予測評価値が求められ、前記評価行列と所定の推定式により得られた、互いに異なる複数の前記推定式を用いて求められた複数の前記予測評価値を線形結合して前記評価行列の前記評価値を推定する線形結合式の線形結合係数が線形回帰によって求められ、複数の前記予測評価値のそれぞれに、前記線形回帰により得られた線形結合係数を乗算し、前記線形結合係数が乗算された前記予測評価値の総和を求めて前記予測評価値を線形結合することにより、前記ユーザの前記評価が行われていない前記評価対象に対する最終的な前記予測評価値が求められる。
【発明の効果】
【００１４】
本発明の一側面によれば、ユーザのコンテンツに対する評価をより精度よく推定することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【００１６】
まず、図１および図２を参照して、本発明を適用したコンテンツ推薦システムの概要について説明する。
【００１７】
このコンテンツ推薦システムにおいては、例えば図１に示すように、複数のユーザおよびコンテンツが予め登録されている。なお、図１において、横方向のＣ１乃至ＣＭはコンテンツを示しており、縦方向のＵ１乃至ＵＮはユーザを示している。
【００１８】
すなわち、コンテンツ推薦システムには、Ｍ個のコンテンツＣ１乃至コンテンツＣＭと、Ｎ人のユーザＵ１乃至ユーザＵＮとが予め登録されている。各ユーザは、登録されているコンテンツのうちのいくつかに対して、そのコンテンツの評価を示す評価値を入力する。例えば、コンテンツの評価は、大嫌い、嫌い、どちらでもない、好き、大好きの５段階とされ、各評価を示す１から５までの数値が評価値として入力される。ここでは、評価値が大きいほどユーザのコンテンツに対する評価が高いものとする。
【００１９】
例えば、図１では、ユーザＵ４は、コンテンツＣ１およびコンテンツＣ５に対して評価を行っており、コンテンツＣ５の評価値として「５」が入力されている。つまり、ユーザＵ４のコンテンツＣ５に対する評価が高いことが分かる。なお、ユーザの評価の対象となるコンテンツは、例えば動画像や書籍など、ユーザの嗜好により評価される評価対象物であればどのようなものであってもよい。
【００２０】
このようにして、各ユーザによりコンテンツに対する評価値が入力されると、ユーザごとのコンテンツに対する評価値を示す情報が得られる。このようにして得られた各ユーザのコンテンツに対する評価値を示す情報は、ユーザ評価行列としてコンテンツ推薦システムに保持される。
【００２１】
コンテンツ推薦システムは、ユーザ評価行列が得られると、ユーザ評価行列における既入力評価値に基づいて、まだ入力されていないコンテンツの評価値を予測（推定）し、予測により得られた予測評価値と、既入力評価値とからなる予測評価行列を生成する。
【００２２】
ここで、既入力評価値とは、ユーザにより入力された評価値をいう。例えば、図１では、ユーザＵ１のコンテンツＣ１に対する評価値として「１」が入力されており、この評価値「１」が既入力評価値とされる。また、以下の説明では、ユーザにより入力されていない評価値、つまり図１の空欄の値を未入力評価値と呼ぶこととする。例えば、ユーザＵ２のコンテンツＣ１に対する評価値は、実際には入力されていないので存在しないが、ユーザＵ２のコンテンツＣ１に対する未入力の評価値を未入力評価値と称する。
【００２３】
このようにして、コンテンツ推薦システムが、ユーザ評価行列における未入力評価値を予測して、その予測結果である予測評価値が得られると、予測評価値と、既入力評価値とからなる予測評価行列が得られる。これにより、例えば、図１のユーザ評価行列から、図２に示す予測評価行列が得られる。なお、図２において、斜線が施されている欄内の評価値は、予測評価値を表している。例えば、図２の予測評価行列では、ユーザＵ２のコンテンツＣ１に対する評価値は、予測により得られた予測評価値「２」とされている。
【００２４】
コンテンツ推薦システムは、ユーザ評価行列における各空欄の値、つまり未入力評価値について予測評価値を求めて予測評価行列が得られると、予測評価行列に基づいて、所定のユーザに対して、そのユーザが好むと推定されるコンテンツを示す情報を提示し、コンテンツを推薦する。
【００２５】
例えば、コンテンツ推薦システムは、ユーザＵ２にコンテンツを推薦する場合、登録されているコンテンツのうち、最も予測評価値の大きいコンテンツをユーザＵ２に対して推薦する。つまり、コンテンツＣ１乃至コンテンツＣＭのうち、ユーザＵ２の予測評価値が最も大きい値「５」であるコンテンツＣ５が、ユーザＵ２の好みのコンテンツであると推定されて、ユーザＵ２に推薦されることになる。
【００２６】
このように、ユーザ評価行列から予測評価行列を求めて、ユーザにコンテンツを推薦する推薦システムは、例えば、図３に示すように構成される。
【００２７】
図３では、コンテンツ推薦システムは、インターフェース処理装置１１と、推薦装置１２とから構成され、インターフェース処理装置１１および推薦装置１２は、相互に接続されている。
【００２８】
インターフェース処理装置１１は、ユーザにより操作され、ユーザに対するインターフェース処理を行う。例えば、インターフェース処理装置１１は、ユーザにより入力された評価値を推薦装置１２に供給したり、推薦装置１２から供給された、ユーザに対して推薦されたコンテンツを示す情報を表示したりする。
【００２９】
推薦装置１２は、インターフェース処理装置１１から供給された評価値に基づいて、ユーザ評価行列を生成するとともに、ユーザ評価行列に基づいて予測評価行列を生成し、ユーザにコンテンツを推薦する。推薦装置１２は、入力受付部２１、ユーザ評価行列保持部２２、学習部２３、推定式保持部２４、予測評価値算出部２５、予測評価行列保持部２６、および推薦部２７を備えている。
【００３０】
入力受付部２１は、ユーザの評価値の入力を受け付ける。すなわち、入力受付部２１は、インターフェース処理装置１１から供給された評価値をユーザ評価行列保持部２２に供給する。ユーザ評価行列保持部２２は、入力受付部２１から供給された評価値に基づいて、ユーザ評価行列を生成し、保持する。より詳細には、ユーザ評価行列保持部２２は、入力受付部２１から評価値が供給されるごとに、供給された評価値を用いて、保持しているユーザ評価行列を更新する。また、ユーザ評価行列保持部２２は、保持しているユーザ評価行列を学習部２３および予測評価値算出部２５に供給する。
【００３１】
学習部２３は、ユーザ評価行列保持部２２から供給されたユーザ評価行列を用いて、ユーザ評価行列から予測評価行列を生成するときに用いられる推定式と、線形結合係数とを生成し、推定式保持部２４に供給する。学習部２３では、１または複数の推定式と、ユーザごとの線形結合係数とが生成される。推定式保持部２４は、学習部２３から供給された推定式および線形結合係数を保持し、保持している推定式および線形結合係数を予測評価値算出部２５に供給する。
【００３２】
予測評価値算出部２５は、ユーザ評価行列保持部２２からのユーザ評価行列と、推定式保持部２４からの推定式および線形結合係数とを用いて、ユーザ評価行列における未入力評価値に対する予測評価値を算出し、予測評価行列保持部２６に供給する。
【００３３】
予測評価行列保持部２６は、予測評価値算出部２５からの予測評価値に基づいて、予測評価行列を生成して保持するとともに、保持している予測評価行列を推薦部２７に供給する。推薦部２７は、予測評価行列保持部２６から供給された予測評価行列に基づいて、所定のユーザに対して推薦するコンテンツを検索し、その結果得られたコンテンツを示す推薦情報をインターフェース処理装置１１に供給する。
【００３４】
図４は、図３の予測評価値算出部２５の詳細な構成例を示すブロック図である。
【００３５】
予測評価値算出部２５は、仮予測部５１および予測部５２を備えており、仮予測部５１には、ユーザ評価行列保持部２２および推定式保持部２４からユーザ評価行列および推定式が供給され、予測部５２には、推定式保持部２４から線形結合係数が供給される。
【００３６】
ここで、推定式は、例えば協調フィルタリング（Collaborative Filtering）アルゴリズムにより、未入力評価値の予測評価値を求める演算を行うための演算式である。換言すれば、協調フィルタリングアルゴリズムを用いた所定の推定方法により予測評価値を求めるための演算式が、推定式とされる。また、推定式に対応するユーザごとの線形結合係数は、複数の推定式による予測結果を線形結合するときに用いられる係数である。
【００３７】
仮予測部５１は、供給されたユーザ評価行列と推定式とを用いて、ユーザ評価行列における未入力評価値の仮の予測評価値を算出し、予測部５２に供給する。より詳細には、仮予測部５１は、ユーザ評価行列と同一の行列（情報）を仮予測行列とし、推定式を用いて仮予測行列に対する演算を行う。そして、仮予測部５１は、仮予測行列のうちの１人のユーザの各コンテンツに対する評価値からなる情報を仮ユーザ予測行列とする。
【００３８】
したがって、仮ユーザ予測行列は、１人のユーザのコンテンツに対する既入力評価値と、仮の予測評価値とからなり、仮予測行列は各ユーザの仮ユーザ予測行列からなる。
【００３９】
例えば図１のユーザ評価行列が供給されたとすると、仮予測部５１は、ユーザＵ１の未入力評価値について、つまりコンテンツＣ３およびコンテンツＣ５乃至コンテンツＣＭについて、１つの推定式Ｆｋを用いてユーザＵ１の仮の予測評価値を求める。そして、仮予測部５１は、コンテンツＣ１、コンテンツＣ２、およびコンテンツＣ４の既入力評価値と、コンテンツＣ３およびコンテンツＣ５乃至コンテンツＣＭの仮の予測評価値とからなる情報を、推定式Ｆｋに対するユーザＵ１の仮ユーザ予測行列として予測部５２に供給する。
【００４０】
したがって、例えば、仮予測部５１にＫ個の推定式Ｆ１乃至推定式ＦＫが供給された場合、仮予測部５１から予測部５２には、各ユーザＵ１乃至ユーザＵＮについて求められた、推定式Ｆｋ（但し１≦ｋ≦Ｋ）ごとの仮ユーザ予測行列Ｔｎｋ（但し１≦ｋ≦Ｋ，１≦ｎ≦Ｎ）が供給される。つまり、合計Ｎ×Ｋ個の仮ユーザ予測行列Ｔｎｋが予測部５２に供給される。
【００４１】
予測部５２は、仮予測部５１からの仮の予測評価値と、推定式保持部２４から供給された線形結合係数とを用いて最終的な予測評価値を求め、予測評価行列保持部２６に供給する。より詳細には、予測部５２は、ユーザごとの仮ユーザ予測行列をユーザごとの線形結合係数を用いて線形結合し、その結果得られたユーザ予測行列を予測評価行列保持部２６に供給する。
【００４２】
例えば、ユーザＵｎ（但し、１≦ｎ≦Ｎ）について得られたＫ個の仮ユーザ予測行列Ｔｎ１乃至仮ユーザ予測行列ＴｎＫが、ユーザＵｎの線形結合係数により線形結合されて、ユーザＵｎのユーザ予測行列Ａｎとされる。そして、Ｎ人のユーザについて求められた、合計Ｎ個のユーザ予測行列Ａ１乃至ユーザ予測行列ＡＮが予測評価行列保持部２６に供給され、それらのユーザ予測行列からなる予測評価行列が生成される。
【００４３】
次に、図５は、図３の学習部２３のより詳細な構成例を示すブロック図である。
【００４４】
学習部２３は、遺伝的探索手法（Genetic Programming）により、予測評価行列を生成するのにより適した推定式および線形結合係数を生成する。換言すれば、学習部２３は、遺伝的探索手法により、協調フィルタリングアルゴリズムを利用した推定式と、線形結合係数とを最適化することで、ユーザがより好むと推定されるコンテンツを、ユーザに対して推薦する推薦アルゴリズムを人手によらず構築する。
【００４５】
学習部２３は、候補生成部９１、推定結果計算部９２、グループ生成部９３、および推定式選別部９４から構成され、ユーザ評価行列保持部２２からのユーザ評価行列は、推定結果計算部９２乃至推定式選別部９４に供給される。
【００４６】
候補生成部９１は、推定式選別部９４から供給されたＫ個の推定式Ｆ１乃至推定式ＦＫを用いて、新たな推定式の候補である推定式候補Ｊ１乃至推定式候補ＪＳ（但し、Ｋ≦Ｓ）を生成し、推定結果計算部９２に供給する。つまり、候補生成部９１は、遺伝的探索手法における前世代の推定式から、次世代の推定式の候補であるＳ個の推定式候補を生成する。
【００４７】
候補生成部９１は、突然変異処理部１１１、交差処理部１１２、およびランダム処理部１１３を備えている。
【００４８】
突然変異処理部１１１は、推定式選別部９４から供給された推定式を用いて突然変異処理を行うことにより、推定式候補を生成する。ここで、突然変異処理とは、１つの推定式の一部分を変更することにより、１つの新たな推定式を生成する処理をいう。
【００４９】
交差処理部１１２は、推定式選別部９４から供給された推定式を用いて交差処理を行うことにより、推定式候補を生成する。ここで、交差処理とは、１つの推定式の一部分を、他の１つの推定式の一部分に変更することにより、１つの新たな推定式を生成する処理をいう。つまり交差処理では、１つの推定式の一部分が他の推定式の一部分に組み替えられることになる。
【００５０】
ランダム処理部１１３はランダム処理を行うことにより、推定式候補を生成する。ここで、ランダム処理とは、無作為に選択された演算子等を組み合わせることにより、１つの新たな推定式を生成する処理をいう。つまりランダム処理によれば、前世代の推定式が全く用いられずに、任意の新たな推定式候補が生成される。
【００５１】
候補生成部９１は、推定式選別部９４から供給された前世代の推定式と、突然変異処理、交差処理、およびランダム処理により生成された新たな推定式とからなる合計Ｓ個の推定式を、推定式候補として推定結果計算部９２に供給する。
【００５２】
推定結果計算部９２は、ユーザ評価行列保持部２２から供給されたユーザ評価行列と、候補生成部９１から供給された推定式候補とを用いて、推定式候補Ｊｓ（但し、１≦ｓ≦Ｓ）ごとに、ユーザ評価行列における評価値の推定を行い、その推定結果Ｈｓ（但し、１≦ｓ≦Ｓ）を推定式選別部９４に供給する。
【００５３】
すなわち、推定結果計算部９２は、ユーザ評価行列と同一の行列（情報）を１つの推定式候補に対する推定結果（の行列）とし、その推定式候補を用いて、推定結果（ユーザ評価行列）における各ユーザの各コンテンツに対する評価値を推定する。そして、推定結果計算部９２は、推定により各評価値が得られた推定結果を、用いた推定式候補に対する最終的な推定結果とする。したがって、推定結果計算部９２から推定式選別部９４には、推定式候補の数だけ推定結果が供給されることになる。
【００５４】
グループ生成部９３は、ユーザ評価行列保持部２２から供給されたユーザ評価行列を用いて、予め登録されているユーザＵ１乃至ユーザＵＮについてグループ分けを行い、各ユーザグループと、そのユーザグループに属すユーザとを示すユーザグループ情報を推定式選別部９４に供給する。
【００５５】
例えば、グループ生成部９３には、必要に応じて、各ユーザの年齢、性別、住所、好みのジャンル等を示す情報であるユーザプロファイルが供給される。グループ生成部９３は、供給されたユーザプロファイルを適宜用いて、ユーザＵ１乃至ユーザＵＮのそれぞれが、予め定められたユーザグループＧ１乃至ユーザグループＧＱのうちの何れかのユーザグループに属すようにグルーピングを行う。
【００５６】
推定式選別部９４は、ユーザ評価行列保持部２２からのユーザ評価行列、推定結果計算部９２からの推定結果Ｈｓ、およびグループ生成部９３からのユーザグループ情報を用いて、次世代の推定式および線形結合係数を生成し、候補生成部９１および推定式保持部２４に供給する。
【００５７】
推定式選別部９４は、結合係数算出部１１４、評価部１１５、および選択部１１６を備えている。
【００５８】
結合係数算出部１１４は、Ｓ個の推定結果のうちのいくつかを選択し、選択した推定結果のそれぞれを求めるのに用いた推定式候補のそれぞれの組み合わせを、推定式として採用すると仮定する。そして、結合係数算出部１１４は、供給されたユーザ評価行列、推定結果、およびユーザグループ情報を用いて、推定式候補の組み合わせを推定式とした場合におけるユーザグループごとの線形結合係数を、線形結合係数の候補である線形結合係数候補として求める。
【００５９】
評価部１１５は、結合係数算出部１１４により求められた、推定式候補の組み合わせと、線形結合係数候補とについて、推定式候補および線形結合係数候補に対する評価を求める。つまり、これらの推定式候補および線形結合係数候補が、予測評価行列の生成により適したものであるほど、その評価は高くなる。例えば、推定式候補および線形結合係数候補に対する評価指標として、情報量基準が算出される。
【００６０】
選択部１１６は、いくつか求められた、推定式候補の組み合わせと線形結合係数候補とのうち、最も評価の高い推定式候補の組み合わせと線形結合係数候補とを選択し、次の世代の推定式および線形結合係数として採用する。
【００６１】
推定式選別部９４は、選択部１１６により選択された、次世代の推定式および線形結合係数を、候補生成部９１および推定式保持部２４に供給する。ここで、各世代の推定式の個数Ｋは常に一定の数になるとは限らず、１から、Ｋの上限の数Ｋｍａｘまでの間で世代ごとに変動する。
【００６２】
ところで、コンテンツ推薦システムに予め登録されているユーザＵｎ（但し、１≦ｎ≦Ｎ）が、インターフェース処理装置１１を操作して、所定のコンテンツＣｍ（但し、１≦ｍ≦Ｍ）に対する評価値を入力すると、入力された評価値はインターフェース処理装置１１から入力受付部２１に供給される。すると、推薦装置１２により、ユーザ評価行列を更新するユーザ評価行列の更新処理が開始される。以下、図６のフローチャートを参照して、推薦装置１２によるユーザ評価行列の更新処理について説明する。
【００６３】
ステップＳ１１において、入力受付部２１は、インターフェース処理装置１１から、ユーザにより入力された評価値を取得する。そして、入力受付部２１は、取得した評価値をユーザ評価行列保持部２２に供給する。
【００６４】
ステップＳ１２において、ユーザ評価行列保持部２２は、入力受付部２１から供給された評価値に基づいて、保持しているユーザ評価行列を更新し、ユーザ評価行列の更新処理は終了する。例えば、ユーザ評価行列保持部２２が図１に示したユーザ評価行列を保持しており、入力受付部２１からユーザＵ１のコンテンツＣ３に対する評価値が供給された場合、ユーザ評価行列保持部２２は、保持しているユーザ評価行列における、ユーザＵ１とコンテンツＣ３とにより特定される欄に、供給された評価値を書き込んでユーザ評価行列を更新する。
【００６５】
このようにして推薦装置１２は、保持しているユーザ評価行列を更新する。このように、ユーザにより評価値が入力されるごとにユーザ評価行列を更新することで、より確からしい予測評価行列を得ることができるようになる。
【００６６】
予測評価値算出部２５では、このようにして随時、更新されていくユーザ評価行列と、推定式保持部２４からの推定式および線形結合係数とが用いられて、予測評価値の計算が行われる。
【００６７】
ところで、予測評価値の計算に用いられる推定式は、例えば図７に示すように、ユーザのコンテンツに対する評価の推定に用いられる、基本的なアルゴリズムによる演算を行うための演算子、つまりオペレータの組み合わせで構成される。また、推定式には、協調フィルタリングの演算、つまり協調フィルタリングアルゴリズムに従った演算を行う演算子が少なくとも１つ含まれている。
【００６８】
図７に示される推定式のＷ１１乃至Ｗ１４の部分には、それぞれ１つのオペレータが含まれており、推定式は、それらのオペレータの組み合わせにより構成される。例えば、Ｗ１１の部分には、処理軸パラメータ「Ｕ＃」と、オペレータ「Normalize Avg」とが含まれている。
【００６９】
ここで、処理軸パラメータとは、ユーザ評価行列（仮予測行列）の評価値（既入力評価値または未入力評価値の少なくとも何れか一方の評価値）のうち、処理の対象となる評価値を特定する情報である。すなわち、処理軸パラメータ「Ｕ＃」は、同じユーザの評価値が処理対象とされることを示している。例えば、ユーザＵ１のコンテンツＣ１乃至コンテンツＣＭに対する評価値が処理の対象となる。また、オペレータ「NormalizeAvg」は、ユーザ評価行列における評価値を、評価値の平均値により正規化することを示している。
【００７０】
推定式におけるＷ１２の部分には、同じコンテンツに対する評価値を処理の対象とすることを示す処理軸パラメータ「Ｃ＃」と、ユーザ評価行列（仮予測行列）における空欄、つまり未入力評価値の欄を評価値の平均値で埋めることを示すオペレータ「FillAvg」とが含まれている。
【００７１】
また、推定式のＷ１３の部分には、同じユーザの評価値を処理対象とした後、さらに同じコンテンツに対する評価値を処理対象とすることを示す処理軸パラメータ「Ｕ；Ｃ＃」と、ピアソン相関の高い順に８人のユーザの評価値から予測評価値を算出するオペレータ「CF‐Pearson(8)」とが含まれている。このオペレータにより実行されるピアソン相関を利用した演算は、協調フィルタリングアルゴリズムの代表的な例である。
【００７２】
なお、オペレータ「CF‐Pearson(8)」における数字「８」は、オペレータによる演算処理における変数の値を示すパラメータを示している。つまり、ここでは、パラメータ「８」は、８人のユーザの評価値を用いることを示している。
【００７３】
さらに、推定式のＷ１４の部分には、各評価値の平方根を求めることを示すオペレータ「Sqrt」が含まれている。
【００７４】
このように、複数のオペレータからなる推定式は、図中、左側のオペレータから右端のオペレータまで順番に演算が行われていく。すなわち、図７に示す推定式によれば、まずユーザごとにユーザ評価行列（仮予測行列）の既入力評価値が正規化され、コンテンツごとの評価値の平均が、そのコンテンツの未入力評価値とされる。そして、ユーザ同士のピアソン相関が求められ、ユーザごとに、そのユーザとピアソン相関の高い８人のユーザの評価値から、そのユーザの未入力評価値が求められ、最後に各評価値の平方根が求められ、求められた値が最終的な既入力評価値または予測評価値とされる。
【００７５】
このように、ユーザ評価行列（仮予測行列）における既入力評価値は、推定式に含まれるオペレータによっては、オペレータの演算処理により加工される場合がある。
【００７６】
また、推定式に含まれるオペレータには、例えば図８に示すものが考えられる。図８では、図中、左側のオペレータ名の欄にはオペレータが示されており、右側の処理内容の欄には、左側の欄のオペレータにより示される演算の処理内容が示されている。
【００７７】
すなわち、オペレータ「NormalizeMaxMin」は、評価値を最大値および最小値により正規化するオペレータであり、オペレータ「NormalizeAvg」は、評価値の平均値により評価値を正規化するオペレータである。
【００７８】
また、オペレータ「FillMax」は、ユーザ評価行列の空欄を評価値の最大値で埋めるオペレータであり、オペレータ「FillMin」は、ユーザ評価行列の空欄を評価値の最小値で埋めるオペレータである。さらに、オペレータ「FillMedian」は、ユーザ評価行列の空欄を評価値の中央値で埋めるオペレータであり、オペレータ「FillAvg」は、ユーザ評価行列の空欄を評価値の平均値で埋めるオペレータである。
【００７９】
さらに、オペレータ「CF‐Correl(num)」は、コサイン距離による相関の高い方からnum個の評価値の平均値を予測評価値とするオペレータであり、オペレータ「CF‐Pearson(num)」は、ピアソン相関の高い方からnum個の評価値の平均値を予測評価値とするオペレータである。さらに、また、オペレータ「CF‐Euclid(num)」は、ユークリッド距離の近い方からnum個の評価値の平均値を予測評価値とするオペレータである。ここで、オペレータ「CF‐Correl(num)」、オペレータ「CF‐Pearson(num)」、およびオペレータ「CF‐Euclid(num)」における「num」は、パラメータを表している。
【００８０】
また、オペレータには、対数を演算するオペレータ「Log」、指数関数を演算するオペレータ「Exp」、平方根を演算するオペレータ「Sqrt」などの指数関数に関する演算を行うものがある。さらにオペレータには、正弦関数の演算を行うオペレータ「Sin」、余弦関数の演算を行うオペレータ「Cos」、正接関数の演算を行うオペレータ「Tan」などの三角関数の演算を行うものなどもある。
【００８１】
なお、ユーザ評価行列（仮予測行列Ｔｋまたは推定結果Ｈｓ）の空欄を埋めるオペレータ、つまり未入力評価値の予測評価値を求めるオペレータの演算においては、演算対象の欄の評価値は、その欄の予測評価値を求める演算には用いられないものとする。
【００８２】
このようなオペレータを組み合わせてできる推定式の他の例として、例えば、図９Ａ乃至図９Ｃに示す推定式がある。
【００８３】
図９Ａに示す推定式では、まずユーザ評価行列（仮予測行列）の評価値が、ユーザごとに０から１までの値に正規化された後、各評価値に対して正弦関数の演算が行われ、ユーザ同士のコサイン距離が求められる。そして、各ユーザについて、コンテンツＣｍを評価しているユーザのうち、処理対象のユーザと最もコサイン距離による相関の高い１人のユーザのコンテンツＣｍに対する評価値が、その処理対象のユーザのコンテンツＣｍに対する予測評価値とされる。
【００８４】
また、図９Ｂに示す推定式では、ユーザが評価したコンテンツのうち、処理対象のコンテンツと最もユークリッド距離による相関の高い３つのコンテンツが選択され、選択されたコンテンツに対するユーザの評価値の平均値が、処理対象のコンテンツの予測評価値とされる。
【００８５】
さらに、図９Ｃに示す推定式では、ユーザ評価行列（仮予測行列）の各評価値に対して対数関数の演算が行われ、コンテンツごとに、コンテンツに対する各ユーザの評価値の平均値が求められ、求められた平均値がコンテンツの予測評価値とされる。
【００８６】
推薦装置１２では、以上において説明した推定式と、線形結合係数とを用いてユーザ評価行列における未入力評価値の予測評価値を求めることにより、各ユーザにコンテンツを推薦することが可能となる。
【００８７】
例えば、推薦装置１２は、定期的に、またはインターフェース処理装置１１からの指示に応じて推薦処理を行い、ユーザに対して推薦するコンテンツを示す推薦情報を生成する。以下、図１０のフローチャートを参照して、推薦装置１２による推薦処理について説明する。
【００８８】
ステップＳ４１において、予測評価値算出部２５は、推定式保持部２４から供給された推定式Ｆｋ（但し、１≦ｋ≦Ｋ）を特定するための推定式パラメータｋを１とする。すなわち、推定式パラメータｋを１とすると、推定式パラメータｋ＝１により推定式Ｆ１が特定され、推定式Ｆ１が処理に用いられる。
【００８９】
ステップＳ４２において、仮予測部５１は、ユーザＵ１乃至ユーザＵＮのコンテンツに対する評価値を示す仮予測行列Ｔｋに、ユーザ評価行列保持部２２から供給されたユーザ評価行列の評価値を代入する。すなわち、ユーザ評価行列と同一の情報（行列）が、推定式Ｆｋに対する仮予測行列Ｔｋ（但し、１≦ｋ≦Ｋ）とされる。例えば、推定式パラメータｋ＝１である場合、ユーザ評価行列と同一の情報が、推定式Ｆ１に対する仮予測行列Ｔ１とされる。
【００９０】
ステップＳ４３において、仮予測部５１は、処理に用いる推定式として選択されている推定式Ｆｋを構成する１つのオペレータを選択する。例えば、図７に示す推定式が推定式Ｆｋとして供給された場合、図７中、左側のオペレータから右側のオペレータまで、右方向に順番に選択されていく。したがって、例えば図７の推定式においては、オペレータ「NormalizeAvg」が最初に選択される。
【００９１】
ステップＳ４４において、仮予測部５１は仮予測行列Ｔｋに対して、選択したオペレータにより示される演算処理を施す。
【００９２】
ステップＳ４５において、仮予測部５１は処理に用いる推定式Ｆｋ、つまり推定式パラメータｋにより特定される推定式Ｆｋについて、推定式Ｆｋを構成する全てのオペレータによる演算処理を行ったか否かを判定する。
【００９３】
ステップＳ４５において、全てのオペレータによる演算処理を行っていないと判定された場合、つまりまだ全てのオペレータが選択されていない場合、処理はステップＳ４３に戻り、上述した処理が繰り返される。すなわち、推定式Ｆｋを構成する次のオペレータが選択されて、そのオペレータによる演算処理が行われる。
【００９４】
これに対して、ステップＳ４５において、全てのオペレータによる演算処理を行ったと判定された場合、処理に用いる推定式Ｆｋを用いて仮予測行列Ｔｋに対する演算が行われたので、仮予測部５１は、推定式Ｆｋを用いて演算処理が施された仮予測行列Ｔｋを、予測部５２に供給する。そして、その後、処理はステップＳ４６に進む。
【００９５】
すなわち、例えば図７の推定式Ｆｋが選択されていたとすると、推定式Ｆｋに含まれる４つのオペレータが順番に選択されて仮予測行列Ｔｋに対する演算が行われたことになる。
【００９６】
より具体的には、図１のユーザ評価行列が供給され、図７に示す推定式Ｆｋが選択されたとすると、図１１の図中、左側に示すように図１のユーザ評価行列と同一の情報が仮予測行列Ｔｋとされる。そして、仮予測行列Ｔｋに対して図７のＷ１１の部分に含まれるオペレータによる演算が行われ、各ユーザについて、ユーザの各コンテンツに対する評価値の平均値が１となるように、ユーザごとに評価値が正規化される。これにより、図１１中、右側に示す仮予測行列Ｔｋが得られる。
【００９７】
例えば、正規化前の仮予測行列ＴｋにおいてユーザＵ１に注目すると、ユーザＵ１によりコンテンツＣ１、コンテンツＣ２、およびコンテンツＣ４に対して評価値「１」、「２」、および「４」が入力されている。そこで、仮予測部５１は、これらのコンテンツに対する評価値の平均値が１となるように、コンテンツＣ１、コンテンツＣ２、およびコンテンツＣ４の評価値を正規化する。
【００９８】
これにより、例えば図１１中、右側に示すように、オペレータの演算後におけるユーザＵ１のコンテンツＣ１に対する評価値として、評価値「0.43」（0.43≒1×3/(1＋2＋4)）が得られる。
【００９９】
このようにして、図７の推定式ＦｋのＷ１１の部分に含まれるオペレータの演算が行われると、次に、Ｗ１２の部分に含まれるオペレータが選択され、図１２に示すように、そのオペレータによる演算が仮予測行列Ｔｋに施される。
【０１００】
すなわち、図１２中、左側に示される、評価値が正規化された仮予測行列Ｔｋにおける空欄が、各コンテンツの評価値の平均値で埋められ、図中、右側に示す仮予測行列Ｔｋが得られる。例えば、正規化された仮予測行列ＴｋにおいてコンテンツＣ１に注目すると、ユーザＵ１、ユーザＵ４、およびユーザＵ６により評価がされており、それらの評価値は、「0.43」、「0.89」、および「0.57」となっている。
【０１０１】
そこで仮予測部５１は、それらの評価値の平均値を求め、仮予測行列ＴｋのコンテンツＣ１に対する評価値のうちの未入力評価値の予測評価値を、求められた平均値「0.63」（0.63≒（0.43+0.89+0.57）÷3）とする。これにより、図中、右側に示すように、ユーザＵ１、ユーザＵ４、およびユーザＵ６を除く、他の全てのユーザのコンテンツＣ１に対する評価の欄が予測評価値「0.63」で埋められる。なお、図１２中、右側に示す仮予測行列Ｔｋにおいて、斜線の施されている欄は、未入力評価値に対する予測評価値で埋められた欄を示している。
【０１０２】
図７のＷ１２の部分の演算が行われると、さらにＷ１３の部分に含まれるオペレータが選択され、選択されたオペレータによる演算が仮予測行列Ｔｋに施される。つまり、まず、各コンテンツについて、コンテンツに対する評価を行ったユーザ同士のピアソン相関が計算される。
【０１０３】
例えば、仮予測行列の空欄が埋められた結果、図１３に示す仮予測行列が得られたとする。なお、図１３において、斜線が施されている欄は、未入力評価値に対する予測評価値で埋められた欄を示している。仮予測部５１が仮予測行列において、ユーザＵ２のコンテンツＣ１に対する評価（予測評価値）に注目し、ユーザＵ２と、コンテンツＣ１に対する評価を行った他のユーザとのピアソン相関を求めるものとする。
【０１０４】
そのような場合、コンテンツＣ１に対して評価値を入力したユーザは、ユーザＵ１、ユーザＵ４、およびユーザＵ６であるので、それらのユーザと、ユーザＵ２とのピアソン相関が求められる。例えば、ユーザＵ１とユーザＵ２とのピアソン相関が求められる場合、ユーザＵ１のコンテンツＣ２乃至コンテンツＣＭに対する評価値（既入力評価値または予測評価値）と、ユーザＵ２のコンテンツＣ２乃至コンテンツＣＭに対する評価値とが用いられてピアソン相関が求められる。
【０１０５】
図１３では、図中、右側に示されるように、ユーザＵ２と、ユーザＵ１、ユーザＵ４、およびユーザＵ６とのピアソン相関の度合いを示す相関値「0.593014」、「0.83773」、および「0.761491」が得られている。
【０１０６】
ユーザごとに、そのユーザが評価を行っていないコンテンツについて、ユーザと、コンテンツに対する評価を行った他のユーザとのピアソン相関が求められると、仮予測部５１は、得られた相関値に基づいて、評価値のソートを行う。つまり、仮予測部５１は、ユーザごとに、そのユーザが評価を行っていないコンテンツについて、他のユーザの評価値を相関値の高い順に並べる。
【０１０７】
例えば、ユーザＵ２のコンテンツＣ１に対する評価に注目した場合、図１４に示すように、ユーザＵ２とのピアソン相関の高い順に各ユーザの評価値が並べられる。図１４では、図中、右側にユーザＵ２とのピアソン相関の相関値が示されている。仮予測部５１は、他のユーザの評価値を相関値の高い順に並べると、注目しているユーザとの相関の高い順に８人のユーザを選択し、選択された８人のユーザの注目しているコンテンツに対する評価値の平均値を求める。そして、仮予測部５１は、求めた平均値を、注目しているユーザの注目しているコンテンツに対する予測評価値とする。
【０１０８】
したがって、例えば、図１４の例では、ユーザＵ２との相関の高い８人のユーザＵ１２４、ユーザＵ９８７、ユーザＵ２５、ユーザＵ５３９、ユーザＵ２３５、ユーザＵ１６９４、ユーザＵ２０６、およびユーザＵ８３が選択される。そして、それらの選択されたユーザのコンテンツＣ１に対する評価値「0.55」、「0.83」、「0.9」、「1.21」、「0.41」、「0.88」、「0.52」、および「0.46」の平均値が求められる。さらに、仮予測部５１は、求められた平均値「0.72」（0.72＝（0.55+0.83+0.9+1.21+0.41+0.88+0.52+0.46）/8）を、ユーザＵ２のコンテンツＣ１に対する予測評価値とする。
【０１０９】
このように、図７の推定式ＦｋのＷ１３の部分の演算が行われ、各ユーザについて、未評価のコンテンツに対する予測評価値が求められると、図１５に示す仮予測行列Ｔｋが得られる。なお、図１５において、斜線が施されている欄は、未入力評価値に対する予測評価値で埋められた欄を示している。
【０１１０】
図１５の仮予測行列Ｔｋでは、ユーザＵ２のコンテンツＣ１に対する評価の欄は、上述した図７の推定式ＦｋのＷ１３の部分の演算により求められた、相関の高い上位８人のユーザの評価値の平均値「0.72」で埋められている。また、各ユーザについて、未評価のコンテンツの欄が、ピアソン相関を用いて求められた予測評価値で埋められている。
【０１１１】
仮予測行列Ｔｋに対して、図７の推定式ＦｋのＷ１３の部分の演算が行われると、さらに、仮予測部５１は、図７の推定式ＦｋのＷ１４に示されるオペレータの演算を、仮予測行列Ｔｋに施す。これにより、図１６に示すように、図中、左側の仮予測行列Ｔｋの各欄の評価値の平方根が求められ、図中、右側に示す仮予測行列Ｔｋが得られる。なお、図１６において、斜線が施されている欄は、未入力評価値に対する予測評価値で埋められた欄を示している。
【０１１２】
例えば、仮予測行列ＴｋにおけるユーザＵ１のコンテンツＣ１に対する評価の欄に注目すると、図中、左側に示される仮予測行列Ｔｋの欄の評価値「0.43」の平方根が求められ、求められた平方根の値「0.66」（0.66≒（0.43）1/2）で、図中、右側に示される仮予測行列Ｔｋの欄が埋められている。
【０１１３】
図１０のフローチャートの説明に戻り、以上のように推定式Ｆｋを構成する全てのオペレータの演算が行われると、ステップＳ４５において、全てのオペレータによる演算処理を行ったと判定され、処理はステップＳ４６に進む。
【０１１４】
ステップＳ４６において、仮予測部５１は、供給された全ての推定式Ｆｋについて、仮予測行列Ｔｋを求めたか否か、つまり全ての仮予測行列Ｔｋに対して、対応する推定式Ｆｋを用いた演算を行ったか否かを判定する。例えば、仮予測部５１が保持している推定式パラメータが、供給された推定式の数Ｋである場合に、全ての推定式Ｆｋについて仮予測行列Ｔｋを求めたと判定される。
【０１１５】
ステップＳ４６において、まだ全ての推定式Ｆｋについて仮予測行列Ｔｋを求めていないと判定された場合、仮予測部５１は、保持している推定式パラメータｋをインクリメントし、その後、処理はステップＳ４２に戻る。推定式パラメータがインクリメントされると、推定式パラメータにより特定される新たな推定式Ｆｋが選択され、選択された推定式Ｆｋが用いられて仮予測行列Ｔｋに対する処理が行われる。
【０１１６】
一方、ステップＳ４６において、全ての推定式Ｆｋについて仮予測行列Ｔｋを求めたと判定された場合、処理はステップＳ４７に進む。全ての推定式Ｆｋについて仮予測行列Ｔｋを求めたと判定された場合には、例えば、図１７に示すように、供給されたＫ個の推定式Ｆ１乃至推定式ＦＫのそれぞれに対して、対応するＫ個の仮予測行列Ｔ１乃至仮予測行列ＴＫのそれぞれが生成されたことになる。つまり、Ｋ通りの推定方法のそれぞれにより、合計Ｋ個の仮予測行列のそれぞれが生成されたことになる。
【０１１７】
ステップＳ４７において、予測部５２は、仮予測部５１からの仮予測行列Ｔｋと、推定式保持部２４からの線形結合係数とを用いて、ユーザＵｎ（但し、１≦ｎ≦Ｎ）の各コンテンツに対する最終的な予測評価値を算出する。
【０１１８】
すなわち、予測部５２は、予め登録されているユーザＵ１乃至ユーザＵＮのうちの１人のユーザＵｎを選択する。例えば、ユーザＵ１からユーザＵＮまで順番に選択されていく。そして、予測部５２は、仮予測部５１から供給された仮予測行列Ｔｋにおける、選択したユーザＵｎの各コンテンツに対する評価値のそれぞれからなる情報を、仮ユーザ予測行列Ｔｎｋとして抽出する。これにより、Ｋ個の仮予測行列Ｔｋのそれぞれから、ユーザＵｎの合計Ｋ個の仮ユーザ予測行列Ｔｎｋのそれぞれが得られることになる。
【０１１９】
さらに、予測部５２は、図１８に示すように、得られたＫ個の仮ユーザ予測行列Ｔｎ１乃至仮ユーザ予測行列ＴｎＫを、推定式保持部２４からのユーザＵｎの線形結合係数ｂｎｋ（但し、０≦ｋ≦Ｋ）を用いて線形結合する。これにより、ユーザＵｎの最終的な予測評価値と既入力評価値（演算により加工された既入力評価値）とからなるユーザ予測行列Ａｎが得られる。
【０１２０】
より具体的には、予測部５２は、次式（１）を演算することにより、ユーザＵｎのユーザ予測行列Ａｎを求める。
【０１２１】
【数１】
0004591793.tif 000002
【０１２２】
なお、式（１）において、（Σｂｎｋ×Ｔｎｋ）は、線形結合係数ｂｎｋおよび仮ユーザ予測行列Ｔｎｋの変数ｋを１からＫまで変えて、線形結合係数ｂｎｋが乗算された仮ユーザ予測行列Ｔｎｋの総和を求めることを示している。また、線形結合係数ｂｎ１乃至線形結合係数ｂｎＫは、仮ユーザ予測行列Ｔｎ１乃至仮ユーザ予測行列ＴｎＫに対応する線形結合係数であり、線形結合係数ｂｎ０は、仮ユーザ予測行列Ｔｎｋの線形和に加算される係数である。
【０１２３】
したがって、線形結合係数ｂｎｋが乗算された仮ユーザ予測行列Ｔｎｋの総和に、線形結合係数ｂｎ０を加算することにより、ユーザＵｎのユーザ予測行列Ａｎが求められる。例えば、ユーザＵｎのコンテンツＣｍに対する最終的な予測評価値は、仮ユーザ予測行列ＴｎｋのそれぞれにおけるユーザＵｎのコンテンツＣｍに対する予測評価値のそれぞれに、線形結合係数ｂｎｋのそれぞれが乗算されて、線形結合係数ｂｎｋが乗算された予測評価値の総和が求められ、さらにその総和に線形結合係数ｂｎ０が加算されたものとされる。
【０１２４】
予測部５２は、ユーザ予測行列Ａｎを求めると、求めたユーザ予測行列Ａｎを予測評価行列保持部２６に供給する。
【０１２５】
ステップＳ４８において、予測部５２は、全てのユーザについてユーザ予測行列Ａｎを求めたか否かを判定する。ステップＳ４８において、まだ全てのユーザについてユーザ予測行列Ａｎを求めていないと判定された場合、処理はステップＳ４７に戻り、まだ選択されていないユーザＵｎが選択されて、そのユーザＵｎのユーザ予測行列Ａｎが求められる。
【０１２６】
これに対して、ステップＳ４８において、全てのユーザについてユーザ予測行列Ａｎを求めたと判定された場合、処理はステップＳ４９に進む。全てのユーザＵ１乃至ユーザＵＮについてのユーザ予測行列Ａ１乃至ユーザ予測行列ＡＮが、予測部５２から予測評価行列保持部２６に供給されると、予測評価行列保持部２６は、供給されたＮ個のユーザ予測行列Ａ１乃至ユーザ予測行列ＡＮからなる、１つの予測評価行列Ａを生成する。そして、予測評価行列保持部２６は、生成した予測評価行列Ａを保持するとともに、予測評価行列Ａを推薦部２７に供給する。
【０１２７】
ステップＳ４９において、推薦部２７は、予測評価行列保持部２６から供給された予測評価行列に基づいてユーザにコンテンツを推薦し、推薦処理は終了する。例えば、推薦部２７は、各ユーザＵｎについて、ユーザＵｎの予測評価値の最も高いコンテンツを、そのユーザＵｎに推薦するコンテンツとして、推薦するコンテンツを示す推薦情報を生成する。そして、推薦部２７は、生成した推薦情報をインターフェース処理装置１１に供給して表示させる。これにより、ユーザは、表示された推薦情報を見ることで、興味のありそうな新たなコンテンツを探し出すことができる。
【０１２８】
以上のようにして、推薦装置１２は、複数の推定式を用いて、それらの推定式に対応する仮予測行列を生成し、仮予測行列を線形結合係数により線形結合することにより、最終的な予測評価行列を生成する。
【０１２９】
このように、複数の推定式に対応する、複数の仮予測行列を線形結合係数により線形結合することで、複数のアルゴリズムにより得られる推薦結果のそれぞれを考慮して、ユーザがより好むと推定されるコンテンツを、より高い精度で検出できるようになる。
【０１３０】
例えば、所定のユーザＵｎに対して、ユーザＵｎが好むと推定されるコンテンツを検出したい場合に、全体のユーザが高く評価するコンテンツを抽出する推定式Ｆ１と、ユーザＵｎとの相関の高いユーザが高く評価するコンテンツを抽出する推定式Ｆ２とがあるとする。この場合、仮に推定式Ｆ１だけを用いてユーザＵｎに推薦するコンテンツを検出すると、検出により得られるコンテンツは、ユーザ全体での評価が高くても、ユーザＵｎの好みのものであるとは限らない。
【０１３１】
逆に、推定式Ｆ２だけを用いてユーザＵｎに推薦するコンテンツを検出すると、ユーザ全体が考慮されずに、一部のユーザの好みだけが考慮されてコンテンツの検索が行われるため、やはり検出により得られるコンテンツは、ユーザＵｎが好むものとなるとは限らない。
【０１３２】
これに対して、推薦装置１２では、学習部２３により最適化された複数の推定式を用いて、それらの推定式による推定結果を線形結合することで最終的な推定結果が求められる。そのため、ユーザ全体や、ユーザＵｎとの相関の高いユーザなど、複数の推定方法が考慮されて最終的な推定結果（予測評価行列）が得られることになり、ユーザＵｎが好むと推定されるコンテンツを、より精度よく得ることができるようになる。
【０１３３】
ところで、予測評価行列の生成に用いられる各世代の推定式および線形結合係数は、学習部２３が前世代の推定式を用いた学習処理を行うことにより、順次、生成されていく。以下、図１９のフローチャートを参照して、学習部２３による学習処理について説明する。
【０１３４】
ステップＳ８１において、候補生成部９１は、推定式選別部９４から供給された前世代のＫ個の推定式を用いて推定式候補生成処理を行い、次世代の推定式の候補であるＳ個の推定式候補Ｊｓを生成する。そして、候補生成部９１は、生成した推定式候補Ｊｓを推定結果計算部９２に供給する。
【０１３５】
ステップＳ８２において、推定結果計算部９２は、候補生成部９１からの推定式候補Ｊｓと、ユーザ評価行列保持部２２からのユーザ評価行列とを用いて推定処理を行い、ユーザ評価行列における各評価値を推定して、推定式候補ごとの推定結果Ｈｓを算出する。推定結果計算部９２は、算出したＳ個の推定結果Ｈｓおよび推定式候補Ｊｓを推定式選別部９４に供給する。
【０１３６】
なお、推定式候補生成処理および推定処理の詳細は後述する。
【０１３７】
ステップＳ８３において、グループ生成部９３は、ユーザ評価行列保持部２２から供給されたユーザ評価行列に基づいて、ユーザのクラスタリングを行う。すなわち、グループ生成部９３は、必要に応じて供給されるユーザプロファイルを用いて、予め登録されたユーザＵ１乃至ユーザＵＮのそれぞれを、予め定められたＱ個のユーザグループＧ１乃至ユーザグループＧＱの何れかに分類する。
【０１３８】
例えば、グループ生成部９３は、供給されたユーザ評価行列の各ユーザのコンテンツに対する評価値に基づいて、Ｋ−ｍｅａｎｓ法によりクラスタリングを行って、ユーザＵ１乃至ユーザＵＮのグループ分けを行う。これにより、図２０に示すように、各ユーザがユーザグループＧ１乃至ユーザグループＧＱのうちの何れかのユーザグループに分類される。例えば、図２０では、ユーザＵ１、ユーザＵ３、ユーザＵ１０、およびユーザＵ１５２０はユーザグループＧ１に属すようにグループ分けされている。
【０１３９】
図１９のフローチャートの説明に戻り、グループ生成部９３は、ユーザのグループ分けを行うと、そのグループ分けの結果を示すユーザグループ情報を推定式選別部９４に供給する。
【０１４０】
ステップＳ８４において、推定式選別部９４は、ユーザ評価行列保持部２２からのユーザ評価行列、推定結果計算部９２からの推定結果Ｈｓおよび推定式候補Ｊｓ、並びにグループ生成部９３からのユーザグループ情報を用いて推定式選別処理を行い、次世代の推定式および線形結合係数を生成する。そして、推定式選別部９４は、生成した推定式および線形結合係数を候補生成部９１および推定式保持部２４に供給する。推定式保持部２４は、推定式選別部９４からの推定式および線形結合係数を保持する。なお、推定式選別処理の詳細は後述する。
【０１４１】
ステップＳ８５において、学習部２３は、次世代の推定式および線形結合係数を生成する処理を終了するか否かを判定する。例えば、コンテンツ推薦システムの動作の停止が指示された場合、処理を終了すると判定される。
【０１４２】
ステップＳ８５において、処理を終了しないと判定された場合、処理はステップＳ８１に戻り、次の世代の推定式および線形結合係数が生成される。
【０１４３】
これに対して、ステップＳ８５において、処理を終了すると判定された場合、学習部２３の各部は行っている処理を停止して、学習処理は終了する。
【０１４４】
このようにして、学習部２３は、前世代の推定式を用いて遺伝的探索手法により、次世代の推定式および線形結合係数を生成する。このように、遺伝的探索手法により次世代の推定式および線形結合係数を生成することで、ユーザの各コンテンツに対するより適切な予測評価値を得ることができるようになる。
【０１４５】
しかも、学習部２３では、推薦装置１２の管理者等の指示を必要とせずに、より簡単かつ迅速に、コンテンツをユーザに推薦する推薦アルゴリズムを構築することができる。つまり、より精度よく予測評価値を推定できる推定式を得ることができるとともに、より適切な推定式の組み合わせと、線形結合係数とを得ることができる。
【０１４６】
次に、図２１のフローチャートを参照して、図１９のステップＳ８１の処理に対応する推定式候補生成処理について説明する。
【０１４７】
ステップＳ１２１において、候補生成部９１は、初めての学習であるか否かを判定する。すなわち、学習が行われると、推定式および線形結合係数が生成されて、推定式が推定式選別部９４から候補生成部９１に供給される。一方、全く初めての学習の場合は、推定式および線形結合係数は生成されたことがないので、候補生成部９１には、推定式は供給されない。そこで、候補生成部９１は、推定式選別部９４から推定式が供給されなかった場合、初めての学習であると判定する。
【０１４８】
ステップＳ１２１において、初めての学習であると判定された場合、ステップＳ１２２において、候補生成部９１は、選択数NumSlct＝０、突然変異数NumMts＝０、交差数NumCrs＝０、およびランダム生成数NumRnd＝Ｓとする。
【０１４９】
ここで、選択数NumSlctは、前世代の推定式のうち、次世代の推定式候補Ｊｓとして選択される推定式の数を示している。また、突然変異数NumMts、交差数NumCrs、およびランダム生成数NumRndのそれぞれは、突然変異処理、交差処理、およびランダム処理のそれぞれにより生成される推定式候補Ｊｓの数を示している。
【０１５０】
初めての学習時には前世代の推定式は存在しないため、ランダム生成数NumRndがＳとされて、Ｓ個全ての推定式候補がランダム処理により生成される。選択数、突然変異数、交差数、およびランダム生成数が定められると、処理はステップＳ１２４に進む。
【０１５１】
一方、ステップＳ１２１において、初めての学習ではないと判定された場合、ステップＳ１２３において、候補生成部９１は、選択数NumSlct＝Ｋ、突然変異数NumMts＝（Ｓ−Ｋ）／３、交差数NumCrs＝（Ｓ−Ｋ）／３、およびランダム生成数NumRnd＝Ｓ−（２×（Ｓ−Ｋ）／３）−Ｋとする。
【０１５２】
すなわち、推定式選別部９４から供給された前世代のＫ個の推定式、つまり前世代の全ての推定式が次世代の推定式候補とされる。また、突然変異処理、交差処理、およびランダム処理により、それぞれ推定式候補の総数ＳからＫを減算した数の３分の１の個数ずつ推定式候補Ｊｓが生成されることになる。選択数、突然変異数、交差数、およびランダム生成数が定められると、その後、処理はステップＳ１２４に進む。
【０１５３】
ステップＳ１２２またはステップＳ１２３において、選択数、突然変異数、交差数、およびランダム生成数が定められると、ステップＳ１２４において候補生成部９１は、推定式選別部９４から供給された前世代の推定式から、選択数NumSlctの数だけ推定式候補を選択する。例えば、選択数NumSlct＝Ｋである場合、供給されたＫ個の前世代の推定式Ｆ１乃至推定式ＦＫの全てが、推定式候補Ｊ１乃至推定式候補ＪＫとされる。
【０１５４】
ステップＳ１２５において、突然変異処理部１１１は、推定式選別部９４から供給された推定式を用いて突然変異処理を行うことにより、突然変異数NumMtsに示される数だけ推定式候補Ｊｓを生成する。
【０１５５】
すなわち、突然変異処理部１１１は、前世代の推定式Ｆ１乃至推定式ＦＫから任意に１つの推定式を選択する。そして、突然変異処理部１１１は選択した推定式に対して、任意にオペレータの挿入、オペレータの削除、処理軸パラメータの変更、オペレータ内のパラメータの変更、オペレータの順序の入れ替え等を行うことにより、１つの推定式候補を生成する。
【０１５６】
例えば、前世代の推定式から、図２２Ａに示す推定式が選択されたとする。図２２Ａに示す推定式は、Ｗ３１乃至Ｗ３３の３つの部分からなり、Ｗ３１乃至Ｗ３３の部分のそれぞれには、オペレータ「NormalizeMaxMin」、「Sin」、および「CF-Correl(1)」のそれぞれが含まれている。
【０１５７】
例えば、突然変異処理により、図２２Ａの推定式におけるＷ３２の部分と、Ｗ３３の部分との間に、新たな処理軸パラメータおよびオペレータが追加されると、図２２Ｂに示す推定式候補が生成される。図２２Ｂに示される推定式候補は、図２２Ａの推定式のＷ３２の部分と、Ｗ３３の部分との間に、新たな処理軸パラメータ「Ｃ＃」と、オペレータ「FillAvg」とが追加されたものとなっている。
【０１５８】
また、突然変異処理により、図２２Ａの推定式の一部が削除されると、例えば図２２Ｃに示す推定式候補が生成される。図２２Ｃに示される推定式候補は、図２２Ａの推定式のＷ３１の部分が削除されたものとなっている。
【０１５９】
さらに、突然変異処理により、図２２Ａの推定式におけるＷ３１の部分の処理軸パラメータが変更されると、図２２Ｄに示す推定式候補が生成される。図２２Ｄに示される推定式候補は、図２２Ａの推定式のＷ３１の部分の処理軸パラメータ「Ｕ＃」が「Ｃ＃」に変更されたものとなっている。
【０１６０】
さらに、突然変異処理により、図２２Ａの推定式が図２２Ｄの状態となった後、さらに推定式におけるオペレータ「CF-Correl(1)」内のパラメータが変更されると、例えば図２２Ｅに示す推定式候補が生成される。図２２Ｅに示す推定式候補は、図２２Ｄの推定式の図中、右端のオペレータ「CF-Correl(1)」のパラメータが変更されて「CF-Correl(5)」とされたものとなっている。
【０１６１】
さらに、また、突然変異処理により、図２２Ａの推定式が図２２Ｅの状態となった後、さらにオペレータの順番が入れ替えられると、例えば図２２Ｆに示す推定式候補が生成される。図２２Ｆに示す推定式候補は、図２２Ｅの推定式のオペレータ「Sin」と、オペレータ「CF-Correl(5)」との順番が入れ替えられて、「U;C#CF-Correl(5)，Sin」とされたものとなっている。
【０１６２】
このように、突然変異処理によって、推定式の一部が変更されて新たな推定式候補とされる。なお、生成された推定式候補を用いたユーザ評価行列に対する演算を行った場合に、ユーザ評価行列の空欄が埋まらないような推定式候補、つまり未入力評価値の予測評価値が求まらない推定式候補が生成されたときには、その推定式候補は採用されず、推定式候補が再生成される。
【０１６３】
図２１のフローチャートの説明に戻り、突然変異処理により推定式候補が生成されると、ステップＳ１２６において、交差処理部１１２は、推定式選別部９４から供給された推定式を用いて交差処理を行うことにより、交差数NumCrsに示される数だけ推定式候補Ｊｓを生成する。
【０１６４】
すなわち、交差処理部１１２は、前世代の推定式Ｆ１乃至推定式ＦＫから任意に２つの推定式を選択する。そして、交差処理部１１２は、選択した２つの推定式の一部を組み替えることにより、１つの新たな推定式候補を生成する。
【０１６５】
例えば、図２３に示すように、Ｗ５１およびＷ５２の部分からなる推定式と、Ｗ５３およびＷ５４の部分からなる推定式とが選択されたとする。ここで、Ｗ５２には、２つのオペレータ「Sin」と「CF-Correl(1)」とが含まれており、Ｗ５３の部分には、１つのオペレータ「CF‐Pearson(3)」が含まれている。そして、Ｗ５１およびＷ５２の部分からなる推定式のＷ５１の部分が、他の推定式のＷ５３の部分に組み替えられると（変更されると）、図中、下側に示す新たな推定式候補「C;U#CF‐Pearson(3)，Sin，U;C#CF-Correl(1)」が生成される。
【０１６６】
このように、交差処理によって、推定式の一部が、他の推定式の一部に組み替えられて新たな推定式候補とされる。なお、生成された推定式候補を用いたユーザ評価行列に対する演算を行った場合に、ユーザ評価行列の空欄が埋まらないような推定式候補が生成されたときには、その推定式候補は採用されず、推定式候補が再生成される。
【０１６７】
図２１のフローチャートの説明に戻り、交差処理により推定式候補が生成されると、ステップＳ１２７において、ランダム処理部１１３はランダム処理を行うことにより、ランダム生成数NumRndに示される数だけ推定式候補Ｊｓを生成する。
【０１６８】
すなわち、ランダム処理部１１３は、任意の処理軸パラメータや、任意のパラメータの任意のオペレータを無作為に組み合わせて推定式候補を生成する。この場合、オペレータの数や順番も無作為に定められる。なお、生成された推定式候補を用いたユーザ評価行列に対する演算を行った場合に、ユーザ評価行列の空欄が埋まらないような推定式候補が生成されたときには、その推定式候補は採用されず、推定式候補が再生成される。
【０１６９】
選択数、突然変異数、交差数、およびランダム生成数だけ推定式候補が生成されると、それらの生成された推定式候補Ｊ１乃至推定式候補ＪＳは、候補生成部９１から推定結果計算部９２に供給されて推定式候補生成処理は終了し、処理は図１９のステップＳ８２に進む。
【０１７０】
このようにして、候補生成部９１は、前世代の推定式を用いて、次世代の推定式候補を生成する。このように、前世代の推定式から次世代の推定式候補を生成することで、その推定式候補のいくつかの組み合わせを評価して、ユーザのコンテンツに対する評価を推定するのに、より適した推定式を得ることができるようになる。
【０１７１】
次に、図２４のフローチャートを参照して、図１９のステップＳ８２の処理に対応する処理である推定処理について説明する。
【０１７２】
ステップＳ１５１において、推定結果計算部９２は、候補生成部９１から供給されたＳ個の推定式候補Ｊ１乃至推定式候補ＪＳのうちの１つを、処理に用いる推定式候補として選択する。例えば、処理に用いる推定式候補Ｊｓ（但し、１≦ｓ≦Ｓ）は、推定式候補Ｊ１から推定式候補ＪＳまで順番に選択される。
【０１７３】
ステップＳ１５２において、推定結果計算部９２は、ユーザ評価行列保持部２２から供給されたユーザ評価行列と同一の行列（情報）を、選択した推定式候補Ｊｓに対する推定結果Ｈｓとし、推定結果Ｈｓの各欄にユーザ評価行列の各欄の評価値を代入する。すなわち、ユーザ評価行列と同一の情報が推定結果Ｈｓとされる。
【０１７４】
ステップＳ１５３において、推定結果計算部９２は、処理に用いる推定式候補Ｊｓのオペレータを１つ選択する。例えば、図２５に示す推定式候補が推定式候補Ｊｓとされている場合、図２５中、左側のオペレータから右側のオペレータまで、右方向に順番に選択される。図２５では、推定式候補Ｊｓには、４つのオペレータ「CF‐Pearson(3)」、「Sin」、「CF-Correl(1)」、および「Cos」が含まれているため、オペレータ「CF‐Pearson(3)」、「Sin」、「CF-Correl(1)」、および「Cos」の順番で選択されていく。
【０１７５】
ステップＳ１５４において、推定結果計算部９２は、選択したオペレータは、推定結果Ｈｓの空欄を埋める最後のオペレータか否かを判定する。
【０１７６】
例えば、図２５に示した推定式候補Ｊｓには、４つのオペレータが含まれている。そして、オペレータ「CF‐Pearson(3)」および「CF-Correl(1)」は、それぞれピアソン相関およびコサイン距離による相関を利用して、推定結果Ｈｓの空欄を埋めるオペレータ、つまり未入力評価値の予測評価値を求めるオペレータである。これに対して、オペレータ「Sin」および「Cos」は、評価値の正弦および余弦を求めるオペレータであって、推定結果Ｈｓの空欄を埋めるオペレータではない。
【０１７７】
また、推定式候補Ｊｓでは、オペレータ「CF‐Pearson(3)」、「Sin」、「CF-Correl(1)」、および「Cos」の順番で、それらのオペレータが選択されて処理に用いられる。したがって、推定式候補Ｊｓでは、推定結果Ｈｓの空欄を埋める最後のオペレータはオペレータ「CF-Correl(1)」であり、このオペレータが選択されている場合に、ステップＳ１５４において、最後のオペレータであると判定される。
【０１７８】
ステップＳ１５４において、空欄を埋める最後のオペレータでないと判定された場合、ステップＳ１５５において、推定結果計算部９２は、選択されているオペレータに示される演算を推定結果Ｈｓに対して行う。
【０１７９】
ここで、選択されているオペレータが、推定結果Ｈｓの全ての欄の評価値を対象とするオペレータ、例えば各欄の評価値の正弦を演算するオペレータ「Sin」である場合、推定結果計算部９２は、推定結果Ｈｓの各欄の評価値に対して選択されたオペレータによる演算を行う。また、選択されているオペレータが、推定結果Ｈｓの空欄を埋めるオペレータである場合、推定結果計算部９２は、適宜、推定結果Ｈｓの各欄の評価値、つまり既入力評価値および未入力評価値を用いて、未入力評価値の予測評価値を求める。
【０１８０】
選択されたオペレータの演算が行われると、処理はステップＳ１５５からステップＳ１５７に進む。
【０１８１】
これに対して、ステップＳ１５４において、空欄を埋める最後のオペレータであると判定された場合、ステップＳ１５６において、推定結果計算部９２は、選択されているオペレータに示される演算を推定結果Ｈｓの全ての評価値に対して行う。
【０１８２】
すなわち、推定結果計算部９２は、空欄を埋める最後のオペレータでの演算時には、推定結果Ｈｓの各欄の評価値のうち、未入力評価値だけでなく既入力評価値の予測評価値も求める。なお、この場合においても、推定結果Ｈｓの空欄を埋めるオペレータの演算においては、演算対象の欄の評価値は、その欄の予測評価値を求める演算には用いられない。
【０１８３】
このように、空欄を埋める最後のオペレータでの演算時に、既入力評価値が入力された欄についても予測評価値を求めることで、その欄について求めた予測評価値と、ユーザ評価行列における対応する欄の既入力評価値とを用いて、推定式候補の予測（推定）の精度を評価できるようになる。ステップＳ１５６において、選択されたオペレータの演算が行われると、その後、処理はステップＳ１５７に進む。
【０１８４】
ステップＳ１５７において、推定結果計算部９２は、選択されている推定式候補Ｊｓのオペレータは、推定式候補Ｊｓに含まれる最後のオペレータであるか否かを判定する。例えば、図２５に示す推定式候補Ｊｓが選択されている場合、推定式候補Ｊｓの選択されているオペレータが、最後に演算が行われるオペレータ「Cos」であるときに、最後のオペレータであると判定される。
【０１８５】
ステップＳ１５７において、最後のオペレータでないと判定された場合、処理はステップＳ１５３に戻り、次のオペレータが選択されて推定結果Ｈｓに対する演算が行われる。
【０１８６】
これに対して、ステップＳ１５７において、最後のオペレータであると判定された場合、ステップＳ１５８において、推定結果計算部９２は、供給された全ての推定式候補Ｊｓについて推定結果Ｈｓを求めたか否かを判定する。
【０１８７】
例えば、全ての推定式候補Ｊｓについて推定結果Ｈｓを求めたと判定された場合には、図２６に示すように、供給されたＳ個の推定式候補Ｊ１乃至推定式候補ＪＳのそれぞれに対して、対応するＳ個の推定結果Ｈ１乃至推定結果ＨＳのそれぞれが得られたことになる。つまり、Ｓ通りの推定方法のそれぞれにより、合計Ｓ個の推定結果のそれぞれが生成されたことになる。
【０１８８】
ステップＳ１５８において、まだ全ての推定式候補Ｊｓについて推定結果Ｈｓを求めていないと判定された場合、処理はステップＳ１５１に戻り、上述した処理が繰り返される。すなわち、次の推定式候補Ｊｓが選択されて、その推定式候補Ｊｓに対応する推定結果Ｈｓが生成される。
【０１８９】
これに対して、ステップＳ１５８において、全ての推定式候補Ｊｓについて推定結果Ｈｓを求めたと判定された場合、推定結果計算部９２は、得られたＳ個の推定結果Ｈ１乃至推定結果ＨＳと、推定式候補Ｊ１乃至推定式候補ＪＳとを推定式選別部９４に供給する。そして、推定結果計算部９２から推定式選別部９４に推定式候補および推定結果が供給されると推定処理は終了し、処理は図１９のステップＳ８３に進む。
【０１９０】
このようにして、推定結果計算部９２は、Ｓ個の推定式候補のそれぞれを用いて、対応する推定結果のそれぞれを生成する。このように、推定式候補を用いて、対応する推定結果を生成することで、推定式候補の組み合わせを評価して、ユーザのコンテンツに対する評価を推定するのに、より適した推定式の組み合わせを得ることができるようになる。
【０１９１】
次に、図２７のフローチャートを参照して、図１９のステップＳ８４の処理に対応する推定式選別処理について説明する。
【０１９２】
ステップＳ１９１において、結合係数算出部１１４は、推定結果計算部９２から供給された推定結果Ｈｓごとの使用状況を示す変数Ｚを初期化する。
【０１９３】
すなわち、推定式選別部９４では、Ｓ個の推定式候補のうちのいくつかが選択されて、選択された推定式候補Ｊｓが次世代の推定式として採用されると仮定される。そして、選択された推定式候補Ｊｓを用いて各ユーザの予測評価値を求めた場合について、その予測評価値、つまり推定結果Ｈｓの予測の精度が評価される。
【０１９４】
変数Ｚは、各推定式候補Ｊｓに対応する推定結果Ｈｓの使用状況を示す情報からなり、それらの使用状況は、推定結果に対応する推定式候補が次世代の推定式として仮に採用されているか否かを示している。つまり、変数Ｚにおいて、使用状況が「使用」とされている推定結果に対応する推定式候補は、次世代の推定式として仮に採用されている推定式候補である。また、変数Ｚにおいて、使用状況が「未使用」とされている推定結果に対応する推定式候補は、次世代の推定式として仮に採用されていない推定式候補である。
【０１９５】
結合係数算出部１１４は、変数Ｚにおける各推定結果の使用状況を「未使用」とすることにより、変数Ｚを初期化する。
【０１９６】
ステップＳ１９２において、結合係数算出部１１４は、推定結果計算部９２から供給された推定式候補Ｊｓ（但し、１≦ｓ≦Ｓ）を１つ選択する。例えば、推定式候補Ｊｓは、推定式候補Ｊ１から推定式候補ＪＳまで順番に選択される。
【０１９７】
ステップＳ１９３において、結合係数算出部１１４は、変数Ｚにおける、選択した推定式候補Ｊｓに対応する推定結果Ｈｓの使用状況を反転させ、使用状況の反転された変数Ｚを、変数Ｚｓ’（但し、１≦ｓ≦Ｓ）とする。例えば、変数Ｚにおける選択された推定式候補Ｊｓに対応する推定結果Ｈｓの使用状況が「未使用」である場合、使用状況が反転されて「使用」とされ、逆に使用状況が「使用」である場合、使用状況が反転されて「未使用」とされる。
【０１９８】
ステップＳ１９４において、結合係数算出部１１４は、変数Ｚｓ’において、「使用」となっている使用状況の数、つまり使用状況が「使用」である推定結果に対応する推定式候補の数が、予め定められた推定式の数Ｋの上限の数Ｋｍａｘ以下であるか否かを判定する。
【０１９９】
ステップＳ１９４において、「使用」である使用状況の数が、上限の数Ｋｍａｘ以下であると判定された場合、ステップＳ１９５において、結合係数算出部１１４は、グループ生成部９３から供給されたユーザグループ情報を参照して、ユーザグループＧｑを１つ選択する。例えば、ユーザグループＧｑ（但し、１≦ｑ≦Ｑ）は、ユーザグループＧ１からユーザグループＧＱまで順番に選択される。
【０２００】
ステップＳ１９６において、結合係数算出部１１４は、推定結果計算部９２から供給された推定結果Ｈｓのうち、変数Ｚｓ’における使用状況が「使用」となっている推定結果Ｈｓを選択し、選択した推定結果Ｈｓを新たに推定結果Ｈｖ’とする。なお、新たな推定結果Ｈｖ’が複数ある場合、それらの推定結果Ｈｖ’における変数ｖは、連続する番号となるように付されるものとする。
【０２０１】
例えば、変数Ｚｓ’において、推定結果Ｈ１乃至推定結果ＨＶ（但し、１≦Ｖ≦Ｓ）の使用状況が「使用」となっており、他の推定結果Ｈ（Ｖ＋１）乃至推定結果ＨＳの使用状況が「未使用」となっていたとする。この場合、結合係数算出部１１４は、推定結果Ｈ１乃至推定結果ＨＶを新たに推定結果Ｈ１’乃至推定結果ＨＶ’とするとともに、推定結果Ｈ１’乃至推定結果ＨＶ’に対応する推定式候補Ｊｓを新たに推定式候補Ｊ１’乃至推定式候補ＪＶ’とする。
【０２０２】
ステップＳ１９７において、結合係数算出部１１４は推定結果Ｈｖ’、ユーザ評価行列保持部２２からのユーザ評価行列、およびグループ生成部９３からのユーザグループ情報を用いて、選択されているユーザグループＧｑについての線形結合係数候補Ｂｓｑを求める。
【０２０３】
ここで、ユーザグループＧｑについての線形結合係数候補Ｂｓｑは、ユーザグループＧｑに属すユーザＵｎの線形結合係数の候補であり、線形結合係数候補Ｂｓｑは、線形結合係数ｂｎｋに対応する、（Ｖ＋１）個の線形結合係数ｂｓｑ０乃至線形結合係数ｂｓｑＶからなる。つまり、線形結合係数候補Ｂｓｑは、推定式候補Ｊ１’乃至推定式候補ＪＶ’を次世代の新たな推定式として採用した場合における線形結合係数である。
【０２０４】
なお、各線形結合係数ｂｓｑｖ（但し、０≦ｖ≦Ｖ）における変数ｓ，ｑ，ｖは、変数Ｚｓ’のｓ，ユーザグループＧｑのｑ，推定結果Ｈｖ’のｖに対応している。また、線形結合係数ｂｓｑ０は、線形結合係数ｂｎ０に対応する係数である。
【０２０５】
例えば、結合係数算出部１１４は、線形回帰により、次式（２）における所定の要素からなるエラー行列Ｅｑが最小となる線形結合係数候補Ｂｓｑ、つまり線形結合係数ｂｓｑｖの組み合わせを求める。
【０２０６】
【数２】
0004591793.tif 000003
【０２０７】
式（２）において、行列Ｒｑは、ユーザ評価行列におけるユーザグループＧｑに属すユーザのコンテンツに対する既入力評価値を要素とする行列（ベクトル）である。
【０２０８】
また、式（２）における行列Ｈｑｖ’は、推定結果Ｈｖ’の予測評価値のうち、ユーザ評価行列におけるユーザグループＧｑに属すユーザのコンテンツに対する既入力評価値に対応する予測評価値を要素とする行列（ベクトル）である。つまり、行列Ｒｑの所定の要素ｒｑは、所定のユーザＵｎの所定のコンテンツＣｍに対する真の評価値であり、その要素ｒｑに対応する行列Ｈｑｖ’の要素ｈｑｖは、推定式候補Ｊｖ’を用いて推定されたユーザＵｎのコンテンツＣｍに対する評価の予測評価値である。
【０２０９】
さらに、式（２）において、（Σｂｓｑｖ×Ｈｑｖ’）は、線形結合係数ｂｓｑｖおよび行列Ｈｑｖ’の変数ｖを１からＶまで変えて、線形結合係数ｂｓｑｖが乗算された行列Ｈｑｖ’の総和を求めることを示している。
【０２１０】
式（２）によれば、行列Ｒｑの要素ｒｑに対応する、行列Ｈｑ１’乃至行列ＨｑＶ’の要素ｈｑ１乃至要素ｈｑＶのそれぞれに対して、線形結合係数ｂｓｑ１乃至線形結合係数ｂｓｑＶのそれぞれが乗算されたものの和に、線形結合係数ｂｓｑ０およびエラー行列Ｅｑの要素ｅｑが加算されたものが、要素ｒｑに等しいとされている。つまり、要素ｅｑは、線形結合係数ｂｓｑｖが乗算された要素ｈｑｖの総和に線形結合係数ｂｓｑ０が加算されたもの、すなわち要素ｒｑの推定値と、真の要素ｒｑとの誤差を示している。
【０２１１】
したがって、要素ｅｑがより小さくなるほど、そのときの線形結合係数ｂｓｑｖの組と、推定結果Ｈｖ’に対応する推定式候補Ｊｖ’とを用いて、ユーザのコンテンツに対する評価をより精度よく推定できるはずである。そこで、結合係数算出部１１４は、式（２）の関係が成立し、各要素ｅｑが最小となる線形結合係数ｂｓｑｖの組み合わせを求め、それらの組み合わせを線形結合係数候補Ｂｓｑとする。
【０２１２】
変数Ｚｓ’についてのユーザグループＧｑの線形結合係数候補Ｂｓｑが求められると、処理は、ステップＳ１９７からステップＳ１９８に進む。
【０２１３】
ステップＳ１９８において、結合係数算出部１１４は、全てのユーザグループＧｑについて、線形結合係数候補Ｂｓｑを求めたか否かを判定する。
【０２１４】
ステップＳ１９８において、まだ全てのユーザグループＧｑについて、線形結合係数候補Ｂｓｑを求めていないと判定された場合、処理はステップＳ１９５に戻り、上述した処理が繰り返される。つまり、次のユーザグループＧｑが選択され、変数Ｚｓ’についての新たに選択されたユーザグループＧｑの線形結合係数候補Ｂｓｑが求められる。
【０２１５】
これに対して、ステップＳ１９８において、全てのユーザグループＧｑについて、線形結合係数候補Ｂｓｑを求めたと判定された場合、処理はステップＳ１９９に進む。例えば、全てのユーザグループについて、線形結合係数候補を求めたと判定された場合、変数Ｚｓ’について、各ユーザグループＧ１乃至ユーザグループＧＱのそれぞれに対して、線形結合係数候補Ｂｓ１乃至線形結合係数候補ＢｓＱのそれぞれが得られたことになる。
【０２１６】
ステップＳ１９９において、評価部１１５は、ユーザ評価行列と、推定結果Ｈｖ’、つまり式（２）による線形結合係数の演算結果とに基づいて、変数Ｚｓ’について、ＡＩＣ（Akaike Information Criteria）を算出する。すなわち、評価部１１５は、ユーザのコンテンツに対する評価を推定するための推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑの評価の指標である情報量基準として、次式（３）を計算することにより、変数Ｚｓ’についてのＡＩＣを算出する。
【０２１７】
【数３】
0004591793.tif 000004
【０２１８】
式（３）において、Ｗは、ユーザ評価行列における既入力評価値の数を示しており、ＰＩはπを示している。また、式（３）において、||Ｅ||は、エラー行列Ｅ１乃至エラー行列ＥＱの要素からなる行列Ｅのノルム、つまり行列Ｅの各要素の二乗和を示している。さらに、式（３）において、ＱおよびＶは、ユーザグループＧｑの数、および推定結果Ｈｖ’の数を示している。
【０２１９】
式（３）により示されるＡＩＣは、行列Ｅの要素が小さくなればなるほど小さくなる。つまり、ユーザのコンテンツに対する評価をより精度よく推定することができる推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑに対する変数Ｚｓ’ほど、その変数Ｚｓ’のＡＩＣは小さくなる。
【０２２０】
また、推定式候補Ｊｖ’の数（自由パラメータの数）が多いほど、式（３）により示される変数Ｚｓ’のＡＩＣは大きくなる。推薦装置１２が予測評価行列を生成する場合、推定式候補Ｆｋの数が多いほど、予測評価行列を求めるための演算量は多くなるので、推定式候補Ｆｋ、つまり推定式候補Ｊｖ’の数は少なければ少ないほどよい。すなわち、演算量の観点からは、変数Ｚｓ’のＡＩＣがより小さいほど、変数Ｚｓ’の推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑは、ユーザのコンテンツに対する評価の推定に用いる場合に、より適しているといえる。
【０２２１】
したがって、結局、変数Ｚｓ’のＡＩＣが小さいほど、その変数Ｚｓ’について求められた推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑに対する評価は高く、推定式および線形結合係数とするのに適しているといえる。
【０２２２】
ステップＳ１９９において、変数Ｚｓ’のＡＩＣが算出されると、その後、処理はステップＳ２００に進む。
【０２２３】
また、ステップＳ１９４において、変数Ｚｓ’で「使用」となっている使用状況の数が、推定式の数Ｋの上限の数Ｋｍａｘ以下でないと判定された場合、ステップＳ１９５乃至ステップＳ１９９の処理はスキップされて、処理はステップＳ２００に進む。
【０２２４】
すなわち、変数Ｚｓ’で「使用」となっている使用状況の数が、上限の数Ｋｍａｘより多い場合、それらの「使用」となっている推定結果を用いて推定式を生成すると、推定式の上限の数Ｋｍａｘを超える数の推定式が生成されてしまうことになる。そこで、「使用」となっている使用状況の数が上限の数Ｋｍａｘより多い場合には、ステップＳ１９５乃至ステップＳ１９９の処理はスキップされる。
【０２２５】
ステップＳ１９９においてＡＩＣが算出されたか、またはステップＳ１９４において上限の数Ｋｍａｘ以下でないと判定されると、ステップＳ２００において、結合係数算出部１１４は、全ての推定式候補Ｊｓを選択したか否かを判定する。すなわち、ステップＳ１９２の処理において、Ｓ個全ての推定式候補Ｊｓが選択された場合、全ての推定式候補が選択されたと判定される。
【０２２６】
ステップＳ２００において、まだ全ての推定式候補Ｊｓが選択されていないと判定された場合、処理はステップＳ１９２に戻り、上述した処理が繰り返される。すなわち、次の推定式候補Ｊｓが選択されて、これまでの変数Ｚｓ’における、新たに選択された推定式候補Ｊｓに対応する推定結果Ｈｓの使用状況が反転されたものが、新たな変数Ｚｓ’とされる。そして、選択された推定式候補Ｊｓに対応する変数Ｚｓ’について、ユーザグループＧｑごとに線形結合係数候補Ｂｓｑが求められ、変数Ｚｓ’のＡＩＣが算出される。
【０２２７】
これに対して、ステップＳ２００において、全ての推定式候補Ｊｓを選択したと判定された場合、処理はステップＳ２０１に進む。全ての推定式候補Ｊ１乃至推定式候補ＪＳが選択されると、それらの推定式候補に対応する変数Ｚ１’乃至変数ＺＳ’のそれぞれに対するＡＩＣのそれぞれが得られたことになる。なお、より詳細には、変数Ｚｓ’において「使用」となっている使用状況の数がＫｍａｘ以下でないときには、線形結合係数候補およびＡＩＣは求められない。
【０２２８】
ステップＳ２０１において、選択部１１６は、各変数Ｚ１’乃至変数ＺＳ’のうち、求めたＡＩＣが最も小さい変数Ｚｓ’を選択する。ここで、選択された変数Ｚｓ’の推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑは、変数Ｚ１’乃至変数ＺＳ’について求めた推定式候補および線形結合係数候補のうち、推定式および線形結合係数とするのに最も適したものであるといえる。
【０２２９】
ステップＳ２０２において、選択部１１６は、選択された変数Ｚｓ’のＡＩＣが、これまでの処理において最小であったＡＩＣよりも小さいか否かを判定する。例えば、選択部１１６は、これまでの処理において、最もＡＩＣが小さかった変数Ｚｓ’、その変数Ｚｓ’についてのＡＩＣ、推定式候補Ｊｖ’、および線形結合係数候補Ｂｓｑを保持している。そして、選択部１１６は、今回最小であったＡＩＣ、つまりステップＳ２０１で選択された変数Ｚｓ’のＡＩＣと、保持しているＡＩＣとを比較する。
【０２３０】
ステップＳ２０２において、選択された変数Ｚｓ’のＡＩＣが、これまでの処理において最小であったＡＩＣよりも小さいと判定された場合、ステップＳ２０３において、結合係数算出部１１４は、選択された変数Ｚｓ’を新たな変数Ｚとする。そして、変数Ｚｓ’が新たな変数Ｚとされると、その後、処理はステップＳ１９２に戻り、上述した処理が繰り返される。
【０２３１】
すなわち、選択された変数Ｚｓ’のＡＩＣが、これまでのＡＩＣよりも小さい場合、今回得られた変数Ｚｓ’の推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑは、これまでに得られた推定式候補および線形結合係数候補よりも、推定式および線形結合係数により適している。したがって、変数Ｚｓ’の一部の使用状況を変更して得られる新たな変数Ｚｓ’のＡＩＣは、今回選択された変数Ｚｓ’のＡＩＣよりもさらに小さくなり、推定式および線形結合係数により適した推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑが得られる可能性がある。
【０２３２】
そこで、推定式選別部９４は、今回選択された変数Ｚｓ’を新たな変数Ｚとして、ＡＩＣが改善されなくなるまで、つまりステップＳ２０２において、選択された変数Ｚｓ’のＡＩＣが、これまでの最小であったＡＩＣ以上であると判定されるまで、上述した処理を繰り返し行う。
【０２３３】
一方、ステップＳ２０２において、選択された変数Ｚｓ’のＡＩＣが、これまでの最小であったＡＩＣ以上であると判定された場合、選択された変数Ｚｓ’を新たに変数Ｚとして推定式候補および線形結合係数候補を求めてもＡＩＣが改善される可能性は低いので、処理はステップＳ２０４に進む。
【０２３４】
ステップＳ２０４において、選択部１１６は、これまでの処理でＡＩＣが最小となった変数Ｚｓ’の推定式候補Ｊｖ’および線形結合係数候補Ｂｓｑを、次世代の推定式および線形結合係数として出力する。
【０２３５】
すなわち、選択部１１６は、ＡＩＣが最小となった変数Ｚｓ’に対するＶ個の推定式候補Ｊ１’乃至推定式候補ＪＶ’を、次世代の推定式とするとともに、変数Ｚｓ’に対して求められた線形結合係数候補Ｂｓｑを次世代の線形結合係数とする。このとき、ユーザＵｎ（但し、１≦ｎ≦Ｎ）が属すユーザグループＧｑ（但し、１≦ｑ≦Ｑ）の線形結合係数候補Ｂｓｑ、つまり線形結合係数ｂｓｑ０乃至線形結合係数ｂｓｑＶがユーザＵｎの次世代の線形結合係数とされる。
【０２３６】
このようにして得られた次世代の推定式は、推定式選別部９４から候補生成部９１および推定式保持部２４に供給され、次世代のユーザごとの線形結合係数は、推定式選別部９４から推定式保持部２４に供給される。
【０２３７】
次世代の推定式および線形結合係数が出力されると、推定式選別処理は終了し、処理は図１９のステップＳ８５に進む。
【０２３８】
このようにして、学習部２３は、推定式候補を生成して、推定式候補のうちのいくつかを次世代の推定式として採用すると仮定する。そして、学習部２３は、それらの推定式候補と、推定式候補に対応する線形結合係数候補との評価を行い、ユーザのコンテンツに対する評価の推定に、より適した推定式候補および線形結合係数候補を、次世代の推定式および線形結合係数として選択する。
【０２３９】
このように、繰り返し推定式候補の生成を行うとともに、推定式候補および線形結合係数候補の評価を行って、より適した推定式候補および線形結合係数候補を選択していくことで、推定式選別処理を行うごとに、より精度よくユーザのコンテンツに対する評価を推定できる推定式および線形結合係数を得ることができる。
【０２４０】
すなわち、ユーザのコンテンツに対する評価を推定するのに、より適した協調フィルタリングアルゴリズム、つまり推定式を簡単に構築することができ、評価の推定の精度を簡単に向上させることができる。そして、推定式候補の組み合わせおよび線形結合係数候補の評価を行って、より適した推定式候補および線形結合係数候補を選択し、次世代の推定式および線形結合係数とすることで、さらに、ユーザのコンテンツに対する評価の推定精度を向上させることができる。これにより、簡単かつ迅速に、より精度よくユーザの評価を推定する推薦アルゴリズムを構築することが可能となる。
【０２４１】
また、学習部２３によれば、推薦アルゴリズムの構築、つまり推定式および線形結合係数を生成するにあたって、ユーザ（管理者）による操作は必要とされない。特に、推薦アルゴリズムの一部を変更する必要がある場合、例えば、ユーザがコンテンツに対する評価をし直した場合や、評価対象として新たなコンテンツが追加された場合などにおいても、学習部２３による学習処理によって、人手によらず適切な推定式および線形結合係数が得られる。つまり、管理者は、推薦アルゴリズムを構築し直す必要はない。
【０２４２】
なお、以上において、推定式の数Ｋは、上限の数Ｋｍａｘ以下であると説明した。したがって、推定式の数Ｋが１である場合には、仮ユーザ予測行列Ｔｎ１に乗算される線形結合係数ｂｎ１と、線形結合係数が乗算された仮ユーザ予測行列、つまり予測評価値に加算される線形結合係数ｂｎ０とが生成される。また、推定式の数Ｋが１である場合には、線形結合係数ｂｎ０は常に０とされるようにしてもよい。
【０２４３】
さらに、推定式の数Ｋが１である場合には、線形結合係数は用いられず、推定式Ｆ１だけが用いられて予測評価行列が求められるようにしてもよい。そのような場合、推定式候補の評価は、ユーザ評価行列と、推定結果Ｈｓとが用いられて行われ、複数の推定式候補のうち、推定式候補を用いて得られた予測評価値と、実際の既入力評価値との誤差が小さい推定式候補ほど高い評価とされる。
【０２４４】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２４５】
図２８は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０２４６】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０２４７】
バス２０４には、さらに、入出力インターフェース２０５が接続されている。入出力インターフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７、ハードディスクや不揮発性のメモリなどよりなる記録部２０８、ネットワークインターフェースなどよりなる通信部２０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２１１を駆動するドライブ２１０が接続されている。
【０２４８】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記録部２０８に記録されているプログラムを、入出力インターフェース２０５及びバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０２４９】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０２５０】
そして、プログラムは、リムーバブルメディア２１１をドライブ２１０に装着することにより、入出力インターフェース２０５を介して、記録部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記録部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記録部２０８に、あらかじめインストールしておくことができる。
【０２５１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２５２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２５３】
【図１】本発明を適用したコンテンツ推薦システムの概要について説明する図である。
【図２】本発明を適用したコンテンツ推薦システムの概要について説明する図である。
【図３】コンテンツ推薦システムの構成例を示すブロック図である。
【図４】予測評価値算出部のより詳細な構成例を示すブロック図である。
【図５】学習部のより詳細な構成例を示すブロック図である。
【図６】ユーザ評価行列の更新処理について説明するフローチャートである。
【図７】推定式の例を示す図である。
【図８】オペレータの例を示す図である。
【図９】推定式の例を示す図である。
【図１０】推薦処理を説明するフローチャートである。
【図１１】オペレータの演算の具体例について説明する図である。
【図１２】オペレータの演算の具体例について説明する図である。
【図１３】オペレータの演算の具体例について説明する図である。
【図１４】オペレータの演算の具体例について説明する図である。
【図１５】オペレータの演算の具体例について説明する図である。
【図１６】オペレータの演算の具体例について説明する図である。
【図１７】仮予測行列の生成について説明する図である。
【図１８】ユーザ予測行列の生成について説明する図である。
【図１９】学習処理を説明するフローチャートである。
【図２０】ユーザのグループ分けについて説明する図である。
【図２１】推定候補生成処理について説明するフローチャートである。
【図２２】突然変異処理の例について説明する図である。
【図２３】交差処理の例について説明する図である。
【図２４】推定処理を説明するフローチャートである。
【図２５】推定式候補の演算について説明する図である。
【図２６】推定結果の生成について説明する図である。
【図２７】推定式選別処理を説明するフローチャートである。
【図２８】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０２５４】
１２  推薦装置，  ２２  ユーザ評価行列保持部，  ２３  学習部，  ２４  推定式保持部，  ２５  予測評価値算出部，  ２６  予測評価行列保持部，  ２７  推薦部，  ５１  仮予測部，  ５２  予測部，  ９１  候補生成部，  ９２  推定結果計算部，  ９３  グループ生成部，  ９４  推定式選別部，  １１１  突然変異処理部，  １１２  交差処理部，  １１３  ランダム処理部，  １１４  結合係数算出部，  １１５  評価部，  １１６  選択部
【図１】
0004591793.tif 000005
【図２】
0004591793.tif 000006
【図３】
0004591793.tif 000007
【図４】
0004591793.tif 000008
【図５】
0004591793.tif 000009
【図６】
0004591793.tif 000010
【図７】
0004591793.tif 000011
【図８】
0004591793.tif 000012
【図９】
0004591793.tif 000013
【図１０】
0004591793.tif 000014
【図１１】
0004591793.tif 000015
【図１２】
0004591793.tif 000016
【図１３】
0004591793.tif 000017
【図１４】
0004591793.tif 000018
【図１５】
0004591793.tif 000019
【図１６】
0004591793.tif 000020
【図１７】
0004591793.tif 000021
【図１８】
0004591793.tif 000022
【図１９】
0004591793.tif 000023
【図２０】
0004591793.tif 000024
【図２１】
0004591793.tif 000025
【図２２】
0004591793.tif 000026
【図２３】
0004591793.tif 000027
【図２４】
0004591793.tif 000028
【図２５】
0004591793.tif 000029
【図２６】
0004591793.tif 000030
【図２７】
0004591793.tif 000031
【図２８】
0004591793.tif 000032