(57)【要約】【課題】ユーザによって未評価である評点を、従来よりも高い予測精度で予測できる協調フィルタリング方法、協調フィルタリング装置、および協調フィルタリングプログラムならびにそのプログラムを記録した記録媒体を提供する。【解決手段】多数のアイテムに対して多数のユーザが離散値で評価した評点を含む評点履歴を用いて、あるユーザの未評価アイテムの評点を予測する協調フィルタリング方法であって、入力データ読込部２２１は、入力データである行列Ｒを読み込み、予測評点初期値算出部２２２は、行列Ｒの未評価の評点に初期値を代入する。そして、予測評点更新部２２３は、評価済みの評点集合と、未評価の評点集合とのＫＬダイバージェンスが小さくなるようにして、未評価の評点を予測し、予測評点書込部２２４は、こうして得られた予測評点を記憶手段４に書き込む。【選択図】図５
2007323315.tif 000002
【特許請求の範囲】
【請求項１】
多数のアイテムに対して多数のユーザが離散値で評価した評点を含む評点履歴を用いて、あるユーザの未評価アイテムの評点を予測する協調フィルタリング方法であって、
前記評点履歴を入力され評価済みの評点の分布を示す経験評点分布を出力する経験評点分布算出ステップと、
未評価の評点に所定の予測初期値を代入して予測評点分布を出力する予測評点分布算出ステップと、
前記経験評点分布と前記予測評点分布との非類似度を出力する非類似度算出ステップと、
前記非類似度が小さくなるように非線形の最適化計算を行って未評価の評点を逐次推定し出力する評点推定ステップと、
を備えることを特徴とする協調フィルタリング方法。
【請求項２】
前記経験評点分布算出ステップは、
前記ユーザごとに評価済みのアイテムに渡って離散値の評点の頻度を算出し、前記ユーザごとの経験評点分布を出力するステップと、
前記アイテムごとに評価済みユーザに渡って離散値の評点の頻度を算出し、前記アイテムごとの経験評点分布を出力するステップと、
すべての評点データに対し離散値の評点を算出し、前記ユーザおよび前記アイテムごとの経験評点分布を出力するステップと、
を備えることを特徴とする請求項１に記載の協調フィルタリング方法。
【請求項３】
前記予測評点分布算出ステップは、
前記ユーザごとに評価済みのアイテムに渡って離散値の評点の頻度を算出し、前記ユーザごとの予測評点分布を出力するステップと、
前記アイテムごとに評価済みユーザに渡って離散値の評点の頻度を算出し、前記アイテムごとの予測評点分布を出力するステップと、
すべての評点データに対し離散値の評点を算出し、前記ユーザおよび前記アイテムごとの予測評点分布を出力するステップと、
を備えることを特徴とする請求項１に記載の協調フィルタリング方法。
【請求項４】
前記非類似度算出ステップは、前記経験評点分布と前記予測評点分布とのＫＬダイバージェンスを算出することにより前記非類似度を算出することを特徴とする請求項１に記載の協調フィルタリング方法。
【請求項５】
前記評点推定ステップは、前記経験評点分布と前記予測評点分布とのカルバック情報量の総和が最小化するように前記最適化計算を行うことを特徴とする請求項１に記載の協調フィルタリング方法。
【請求項６】
多数のアイテムに対して多数のユーザが離散値で評価した評点を含む評点履歴を用いて、あるユーザの未評価アイテムの評点を予測する協調フィルタリング装置であって、
前記評点履歴を基に評価済みの評点の分布を示す経験評点分布を出力する経験評点分布算出部と、
未評価の評点に所定の予測初期値を代入して予測評点分布を出力する予測評点分布算出部と、
前記経験評点分布と前記予測評点分布との非類似度を出力する非類似度算出部と、
前記非類似度が小さくなるように非線形の最適化計算を行って未評価の評点を逐次推定し出力する評点推定部と、
を備えることを特徴とする協調フィルタリング装置。
【請求項７】
コンピュータに、請求項１に記載の協調フィルタリング方法を実行させることを特徴とする協調フィルタリングプログラム。
【請求項８】
請求項７に記載の協調フィルタリングプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによって未評価である評点を、従来よりも高い予測精度で予測できる協調フィルタリング方法、協調フィルタリング装置、および協調フィルタリングプログラムならびにそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
膨大なアイテム群の中から、ユーザが高い評価を与えると予測されるアイテムを選択し、推薦するリコメンデーションサービスが、主に電子商取引（E-Commerce）分野などで活用されている（例えば、商品、レンタルビデオ、ＴＶ番組、あるいは、レストランなどの推薦システム）。推薦対象ユーザ（以降、アクティブユーザという）に対し、その評点履歴のみならず、他のユーザの評点履歴も用いて、アクティブユーザの未評点を予測する技術は、協調フィルタリングと呼ばれている。
【０００３】
協調フィルタリングにより、高い予測評点のアイテムを優先的に推薦することにより、アクティブユーザにとって、アイテム選択にかかる負担を軽減することができ、同時に、アクティブユーザが知らなかったアイテムを提示することが可能となる。また、アイテム提供者側では、ユーザに適切なアイテムが推薦されることで、アイテムの販売活動の活性化、効率化を促進することができる。
【０００４】
協調フィルタリングは、多くのユーザの評点履歴（例えば、表１のような、ユーザがアイテムに対して与えた評点の履歴データ上で、ユーザＩＤが１９６のユーザが、アイテムＩＤが２４２のアイテムに評点として３を与えた、と見る）を基に、アクティブユーザの未評点アイテムに対する評点を予測する。そして、予測評点値が高いアイテムを優先的に推薦する。したがって、推薦システムでは、評点履歴から未評点の評点値をいかに精度高く予測するか、すなわち、高精度の評点予測方法の実現が重要課題となる。
【０００５】
【表１】
2007323315.tif 000003
【０００６】
従来の評点予測方法は、（ｉ）最近傍法に基づく方法（例えば、非特許文献１参照）、（ｉｉ）確率モデルに基づく方法（例えば、非特許文献２参照）、の２つのアプローチに大別できる。（ｉ）は、アクティブユーザの評点履歴と類似した評点履歴を持つ複数のユーザを探索し、探索したユーザの評点履歴を利用して、アクティブユーザの未評点アイテムの評点を予測する。（ｉｉ）は、最初に、ユーザの評点履歴を表現する確率モデルを仮定し、実際の評点履歴を用いてモデルを学習する。その後、学習したモデルを利用してアクティブユーザの未評点アイテムの評点を予測する。
【０００７】
いずれの方法によるアプローチも、ユーザ間で何らかの類似性の仮定を用いて予測を行っているといえる。つまり、（ｉ）ではアクティブユーザと探索対象となるユーザの共通する評点済みアイテムの評点が互いに類似していれば、未評点の部分も類似しているという仮定を用いている。
【０００８】
また、（ｉｉ）では、ユーザは嗜好の似通ったいくつかのクラスに属し（（ｉｉ）ではこのようなクラスが潜在的に存在すると仮定している。以下、このグループのことを潜在クラスという）、同一の潜在クラスに属すユーザの、アイテムの評点はその潜在クラス内では同じ確率分布に従うという仮定を設けている。
【０００９】
これらいずれの方式による類似性も、未評点の評点を予測する際、ユーザもしくはアイテムの一部の情報しか用いられないという意味で“局所的類似性”といえる。すなわち、評点全体の大局的な特徴を捉えずに未評点の評点を予測するため、高い予測精度が得られない可能性が大きい問題点がある。
【００１０】
【非特許文献１】P. Resnick, N. Iacovou, M. Suchak, P. Bergstrom, and J. Riedl. Grouplens: An Open Architecture for Collaborative Filtering of Netnews.  In Proceedings of ACM CSCW1994, pages 175-186, October 1994.
【非特許文献２】T. Hofmann, "Latent Semantic Models for Collaborative Filtering", ACM Trans. Information Systems, 22(1):89-115, January 2004.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、前記した問題点を鑑みてなされたものであり、ユーザおよびアイテムに関するすべての情報を用いた“大局的類似性”に基づき未評点の評点を予測する評点予測方法によって高精度に評点を予測できる協調フィルタリング方法、協調フィルタリング装置、および協調フィルタリングプログラムならびにそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するため、請求項１に記載の協調フィルタリング方法は、多数のアイテムに対して多数のユーザが離散値で評価した評点を含む評点履歴を用いて、あるユーザの未評価アイテムの評点を予測する協調フィルタリング方法であって、評点履歴を入力され評価済みの評点の分布を示す経験評点分布を出力する経験評点分布算出ステップと、未評価の評点に所定の予測初期値を代入して予測評点分布を出力する予測評点分布算出ステップと、経験評点分布と予測評点分布との非類似度を出力する非類似度算出ステップと、非類似度が小さくなるように非線形の最適化計算を行って未評価の評点を逐次推定し出力する評点推定ステップと、を備えることを特徴とする。
【００１３】
かかる手順によれば、経験評点分布算出ステップにおいて、評価済みの評点の分布を示す経験評点分布を出力し、予測評点分布算出ステップにおいて、未評価の評点に所定の予測初期値を代入して予測評点分布を出力し、非類似度算出ステップにおいて、経験評点分布と予測評点分布との非類似度を出力し、評点推定ステップにおいて、この非類似度が小さくなるように、すなわち、予測評点分布が経験評点分布に近づくように、非線形の最適化計算を行って未評価の評点を推定している。
【００１４】
また、請求項２に記載の協調フィルタリング方法は、請求項１に記載の協調フィルタリング方法において、経験評点分布算出ステップは、ユーザごとに評点済みのアイテムに渡って離散値の評点の頻度を算出し、ユーザごとの経験評点分布を出力するステップと、アイテムごとに評点済みユーザに渡って離散値の評点の頻度を出力し、アイテムごとの経験評点分布を出力するステップと、すべての評点データに対し離散値の評点を算出し、ユーザおよびアイテムごとの経験評点分布を出力するステップと、を備えることを特徴とする。
【００１５】
かかる手順によれば、経験評点分布算出ステップでは、（１）ユーザごとに評点済みのアイテムに渡って離散値の評点の頻度を算出し、ユーザごとの経験評点分布を出力し、（２）アイテムごとに評点済みユーザに渡って離散値の評点の頻度を出力し、アイテムごとの経験評点分布を出力し、（３）すべての評点データに対し離散値の評点を算出し、ユーザおよびアイテムごとの経験評点分布を出力する。
【００１６】
また、請求項３に記載の協調フィルタリング方法は、請求項１に記載の協調フィルタリング方法において、予測評点分布算出ステップは、ユーザごとに評点済みのアイテムに渡って離散値の評点の頻度を算出し、ユーザごとの予測評点分布を出力するステップと、アイテムごとに評点済みユーザに渡って離散値の評点の頻度を算出し、アイテムごとの予測評点分布を出力するステップと、すべての評点データに対し離散値の評点を算出し、ユーザおよびアイテムごとの予測評点分布を出力するステップと、を備えることを特徴とする。
【００１７】
かかる手順によれば、予測評点分布算出ステップでは、（１）ユーザごとに評点済みのアイテムに渡って離散値の評点の頻度を算出し、ユーザごとの予測評点分布を出力し、（２）アイテムごとに評点済みユーザに渡って離散値の評点の頻度を算出し、アイテムごとの予測評点分布を出力し、（３）すべての評点データに対し離散値の評点を算出し、ユーザおよびアイテムごとの予測評点分布を出力する。
【００１８】
また、請求項４に記載の協調フィルタリング方法は、請求項１に記載の協調フィルタリング方法において、非類似度算出ステップは、経験評点分布と予測評点分布とのＫＬダイバージェンスを算出することにより非類似度を算出することを特徴とする。
【００１９】
かかる手順によれば、非類似度算出ステップにおいて、経験評点分布と予測評点分布とのＫＬダイバージェンスを算出することにより非類似度が算出される。
【００２０】
また、請求項５に記載の協調フィルタリング方法は、請求項１に記載の協調フィルタリング方法において、評点推定ステップは、経験評点分布と予測評点分布とのカルバック情報量の総和が最小化するように最適化計算を行うことを特徴とする。
【００２１】
かかる手順によれば、評点推定ステップにおいて、経験評点分布と予測評点分布とのカルバック情報量の総和が最小化するように最適化計算が行われる。
【００２２】
また、請求項６に記載の協調フィルタリング装置は、多数のアイテムに対して多数のユーザが離散値で評価した評点を含む評点履歴を用いて、あるユーザの未評点アイテムの評点を予測する協調フィルタリング装置であって、評点履歴データを基に評価済みの評点の分布を示す経験評点分布を出力する経験評点分布算出部と、未評点の評点に所定の予測初期値を代入して予測評点分布を出力する予測評点分布算出部と、経験評点分布と予測評点分布との非類似度を算出する非類似度算出部と、非類似度が小さくなるように非線形の最適化計算を行って未評価の評点を逐次推定する評点推定部と、を備えることを特徴とする。
【００２３】
かかる構成によれば、経験評点分布算出部において、評価済みの評点の分布を示す経験評点分布を出力し、予測評点分布算出部において、未評価の評点に所定の予測初期値を代入して予測評点分布を出力し、非類似度算出部において、経験評点分布と予測評点分布との非類似度を出力し、評点推定部において、この非類似度が小さくなるように、すなわち、予測評点分布が経験評点分布に近づくように、非線形の最適化計算を行って未評価の評点を推定している。
【００２４】
また、請求項７に記載の協調フィルタリングプログラムは、コンピュータに、請求項１に記載の協調フィルタリング方法を実行させることを特徴とする。この構成により、このコンピュータは、請求項１に記載の方法を実現できる。すなわち、このような評点予測方式による協調フィルタリング方法を実行させる協調フィルタリングプログラムによれば、大局的類似性に基づき予測対象のすべての評点を同時予測する評点予測方式による、協調フィルタリング装置と同様の機能をコンピュータに実行させることが可能である。
【００２５】
また、請求項８に記載の記録媒体は、請求項７に記載の協調フィルタリングプログラムを記録したことを特徴とする。この構成により、所望のコンピュータに請求項１に記載の方法を実行させることができる。すなわち、このような評点予測方式による協調フィルタリング方法を実行させる協調フィルタリングプログラムを格納した記録媒体によれば、大局的類似性に基づき予測対象のすべての評点を同時に予測する評点予測方式による、協調フィルタリング装置と同様の機能をコンピュータに実行させるプログラムを記録媒体内に記録させることが可能である。
【発明の効果】
【００２６】
本発明によれば、従来よりも多くの情報を含んだ大局的類似性、すなわち、評点済みデータに関する経験周辺評点分布と予測対象の未評点データに関する予測評点分布の類似性に基づいて高精度に評点予測を行うことが可能となる。
【発明を実施するための最良の形態】
【００２７】
本発明は、前記課題を解決するために創案されたものであり、大局的類似性に基づき予測対象の評点を予測する評点予測方法を提供する。
本発明における評点予測方法では、まず、評点済みのデータから、ユーザごとの周辺評点分布、アイテムごとの周辺評点分布、および全評点の周辺評点分布を各々算出する。これらは、実際の観測値から頻度をカウントすることで求まる。これらの評点分布を経験周辺評点分布と呼ぶこととする。
【００２８】
なお、本説明において、複数の評点分布のうち、所定の条件に基づき周辺化を行ったものを周辺評点分布、または、単に評点分布ということとする。また、「評点」とは、評価された点を意味するほか、評価すること（点数を付けること）をも意味することとする。
【００２９】
ここで、周辺評点分布とは、ある観点での評点分布を意味する。例えば、図１のような評点履歴の行列（テーブル）で表現され、正の値は評点値を、０は未評点値を各々表す。例えば、ユーザ１はアイテム１，３，４に各々評点２，３，１をつけ、アイテム２，５は評点をつけていないことを意味する。このデータに対するユーザごとの経験周辺評点分布とは、図２（ａ）の行列の行方向の評点分布（Ｐ~ｉ，ｉ＝１，…，６）を指し、アイテムごとの経験周辺評点分布とは、図２（ａ）の行列の列方向の評点分布（Ｑ~ｊ，ｊ＝１，…，５）を指し、全評点の評点分布とは、図２（ａ）の行列全体の評点分布（Ｓ~）を指す。例えば、Ｐ~１は、評点１，２，３の確率がすべて１／３であることを表す。
【００３０】
そして、予測対象の未評点データに対し、前記周辺評点分布を予測値の関数として表現する。例えば、図２（ｂ）のＰｉ，Ｑｊ，Ｓは、未評点の評点にある予測値が代入されたときに算出される予測周辺評点分布の例を表す。次いで、対応する周辺評点分布（Ｐ~ｉとＰｉ，Ｑ~ｊとＱｊ，Ｓ~とＳ）が各々できるだけ類似するように、両者の分布間の非類似度（例えば、ＫＬダイバージェンス）を最小化することにより未評点の予測値を求める。
【００３１】
予測対象評点群はユーザごとの周辺評点分布、アイテムごとの周辺評点分布、全評点の評点分布に寄与するため、予測対象評点同士が直接あるいは間接的に関連しているという意味で“大局的類似性”に基づいた予測がなされることになる。それ故、従来よりも予測精度の向上が期待できる。同様の機能をコンピュータに実行させることが可能である。さらに、このような評点予測方式を実行させる評点予測プログラムを格納した記録媒体によれば、大局的類似性に基づき予測対象のすべての評点を同時に予測する装置と同様の機能をコンピュータに実行させるプログラムを記録媒体内に記録させることが可能である。
【００３２】
次に、添付した各図を参照し、本発明の実施形態について詳細に説明する。
図３は、本発明の実施形態に係る協調フィルタリング装置１を示すブロック図である。
図３に示すように、協調フィルタリング装置１は、演算手段２と、入力手段３と、記憶手段４と、出力手段５と、これらの各手段を接続するバスライン１１と、を備えている。
【００３３】
演算手段２は、ＣＰＵおよびＲＡＭなどから構成されるコンピュータの中枢部である。演算手段２は、前処理部２１と、評点予測部２２と、メモリ２３とを含んで構成される。演算手段２は、記憶手段４から前処理プログラム４１と、評点予測プログラム４２とを読み込み、メモリ２３に格納し、実行することで、前処理部２１と、評点予測部２２を実現する。
【００３４】
入力手段３は、キーボードやディスクドライブ装置など（いずれも図示せず）から構成される。評点履歴は、入力手段３を介して入力され、記憶手段４に記憶される。
【００３５】
記憶手段４は、ハードディスク装置などから構成される。記憶手段４は、前処理プログラム４１、評点予測プログラム４２を記憶させておくことが可能である。また、記憶手段４は、評点履歴４３、入力データ４４、予測評点４５と、を含んで構成される。
【００３６】
ここで、表１に示すように、評点履歴は、ユーザＩＤ、アイテムＩＤ、評点、タイムスタンプなどの履歴である。ユーザＩＤがｉ(ｉ＝１，２，…，Ｎ)で、アイテムＩＤがｊ(ｊ＝１，２，…，Ｎ)に対する評点ｒｉ，ｊは、離散値{１，２，…，Ｖ}を持つとする。評点ｒｉ，ｊの値は、大きいほど良い評価とする。
【００３７】
出力手段５は、例えば、グラフィックボードおよびこれに接続されたモニタであり、アクティブユーザに対して推薦するアイテムなどを表示する。
【００３８】
図４は、本実施形態の前処理部２１を示すブロック図である。
この前処理部２１は、評点履歴読込部２１１と、入力データ書込部２１２とを備えている。
【００３９】
評点履歴読込部２１１は、評点履歴４３から、ユーザＩＤ、アイテムＩＤ、評点を読み込む。
【００４０】
そして、入力データ書込部２１２は、ユーザＩＤ、アイテムＩＤ、評点を、入力データ４４に格納する。入力データ４４は、図１に示すように、ユーザＩＤを行、アイテムＩＤを列、要素に評点、を持つ行列である。ユーザが未評点である評点には、“０”が入っているものとする。以降、入力データの行列をＲと表記する。行列Ｒの(ｉ，ｊ)要素は評点ｒｉ，ｊを表す。
【００４１】
ここで、説明の簡略化のため、行列Ｒに関して、以下の変数を定義しておく。
ユーザＩＤがｉで評点済みのｒｉ，ｊ，ｊ∈Ｊｉ１の集合をＢｉ１、未評点のｒｉ，ｊ，ｊ∈Ｊｉ０の集合をＢｉ０と表記する。ここでＪｉ１(Ｊｉ０)はユーザＩＤがｉのユーザが評点した（未評点の）アイテムインデックス集合を表す。また、便宜上、行列Ｒ中のアイテムＩＤ、ｉに関する評点集合をＢｊ１、未評点の評点集合をＢｊ０と表記する。すなわち、行列Ｒにおいて、第ｉ行の（未）評点集合がＢｉ１(Ｂｉ０)であり、第ｊ列の（未）評点集合がＢｊ１(Ｂｊ０)である。さらに、特にｉ，ｊを意識しない場合、行列Ｒにおける評点済みの評点集合をＢ１＊、未評点の評点集合をＢ０＊と表記する。
【００４２】
図５は、本実施形態に係る評点予測部２２のブロック図である。
この評点予測部２２は、入力データ読込部２２１と、予測評点初期値算出部２２２と、予測評点更新部２２３と、予測評点書込部２２４とを備えている。
【００４３】
入力データ読込部２２１は、入力データ４４から、行列Ｒを読み込む。
【００４４】
予測評点初期値算出部２２２は、入力データ読込部２２１が読み込んだ行列Ｒの要素のうち、予測対象となる未評点の評点{ｒｉ，ｊ∈Ｂ０＊}すべてに対して、未評点であることを示す０の代わりに、初期値として何らかの数値を代入する。例えば、０の代わりに、３を{ｒｉ，ｊ∈Ｂ０＊}に代入することが可能である。また、何らかの手段によって計算された値を代入することも可能である。初期値が代入された評点を{ｒ(０)ｉ，ｊ∈Ｂ０＊}と表記する。
初期値として、実数値も代入可能である。以降の説明において、評点ｒｉ，ｊは実数値をとるものとする。
【００４５】
予測評点更新部２２３は、予測評点初期値算出部２２２で作成された、未評点の評点集合に対する初期値を基に、ある目的関数を最小化する未評点の評点集合を算出する。
【００４６】
より詳細に説明すると、まず、Ｎユーザ、Ｍアイテムからなる評点履歴データ（Ｎ×Ｍ行列Ｒ、行列Ｒの第ｉ，ｊ要素ｒｉ，ｊ{０，１，…，Ｖ}はユーザｉのアイテムｊの評点を表す。評点の最高値をＶとし、０は未評点を表す。）に対し、以下の３種類の周辺分布を計算する。
【００４７】
・行列Ｒの行方向（ユーザごと）の経験周辺評点分布Ｐ~ｉ，ｉ＝１，２，…，Ｎ，および予測周辺評点分布Ｐ~ｉ，ｉ＝１，２，…，Ｎ。
・行列Ｒの行方向（アイテムごと）の経験周辺評点分布Ｑ~ｉ，ｉ＝１，２，…，Ｎ，および予測周辺評点分布Ｑ~ｉ，ｉ＝１，２，…，Ｎ。
・行列Ｒの行列全体の経験評点分布Ｓ~，および予測周辺評点分布Ｓ。
【００４８】
図２に、Ｎ＝６，Ｍ＝５の例を示す。
例えば、ユーザｉの経験周辺評点分布Ｐ~ｉは、ユーザｉの評点済みの評点集合Ｂｉ１{ｒｉ，ｊ；ｒｉ，ｊ＞０，ｊ＝１，…，Ｍ}を用いて、次式により計算する。
【００４９】
【数１】
2007323315.tif 000004
【００５０】
ここに、δ(ｘ)はデルタ関数を表し、ｘが真のとき１、それ以外は０の値をとる。つまりＰ~ｉ(ｋ)は、評点ｋの他の評点ｌ≠ｋに対する頻度比に相当する。明らかに、ΣｋＰ~ｉ(ｋ)＝１である。
【００５１】
一方、未評点の評点に関する予測周辺評点分布Ｐｉは、予測評点初期値算出部２２２で作成した初期値{ｒ（０）ｉ，ｊ∈Ｂｉ０}を用いて、次式により計算する。
【００５２】
【数２】
2007323315.tif 000005
【００５３】
Ｂｉ０は、ユーザｉの未評点の評点集合Ｂｉ０＝{ｒｉ，ｊ|ｒｉ，ｊ＝０，ｊ＝１，…，Ｍ}を表す。σ(＞０)はスムージングパラメータで、σが大きいほど予測値と真値との偏差を緩和させる効果を持つ。σ→０の極限で式（２）は、式（１）の形式に一致する。
【００５４】
次に、前記の計算により作成された周辺評点分布を用いて、予測評点初期値算出部２２２で作成された初期値{ｒ(０)ｉ，ｊ∈Ｂ０＊}と、評点済みの評点{ｒｉ，ｊ∈Ｂ１＊}の各々の周辺分布の非類似度を算出する。非類似度としてＫＬダイバージェンスなる公知の尺度が適用可能である。例えば、ユーザｉに関する周辺分布のＫＬダイバージェンスは、次式により計算される。
【００５５】
【数３】
2007323315.tif 000006
【００５６】
Ｑｊ，Ｓに関しても、同様に、非類似度ＫＬ(Ｑ~ｊ||Ｑｊ)、ＫＬ(Ｓ~ｊ||Ｓｊ)が以下の式により算出される。
【００５７】
【数４】
2007323315.tif 000007
【００５８】
【数５】
2007323315.tif 000008
【００５９】
以上の計算により、予測評点初期値算出部２２２で作成された初期値{ｒ(０)ｉ，ｊ∈Ｂ０＊}と、評点済みの評点{ｒｉ，ｊ∈Ｂ１＊}との大局的類似性を、次に示す、目的関数Ｊ{ｒ(０)ｉ，ｊ∈Ｂ０＊}によって計算する。
【００６０】
【数６】
2007323315.tif 000009
【００６１】
大局的類似性に基づく目的関数を計算した後、続いて、目的関数Ｊ{ｒ(０)ｉ，ｊ∈Ｂ０＊}を最小化する未評点の評点集合{ｒｉ，ｊ|ｒｉ，ｊ∈Ｂ０＊}を求める。目的関数を最小化した結果得られた未評点の評点集合を{ｒ(ｆ)ｉ，ｊ|ｒ(ｆ)ｉ，ｊ∈Ｂ０＊}とおく。ここで、目的関数を最小化する手段として、準ニュートン法などの非線形最適化手段が適用可能である。
最後に、未評点の評点集合{ｒ(ｆ)ｉ，ｊ|ｒ(ｆ)ｉ，ｊ∈Ｂ０＊}を予測評点４５に格納する。
【００６２】
図６は、協調フィルタリング装置１のデータ流れ図である。
評点履歴４３が入力されると、前処理部２１は、前記した前処理を行って、入力データを生成し、記憶手段４（図３参照）に一時的に蓄積する。前処理部２１は、この入力データを、評点予測部２２へ送る。評点予測部２２は、評点に関する予測を行って、予測評点４５を出力し、この予測評点４５は、記憶手段４に蓄積される。
【００６３】
また、本発明は、大局的類似性の基となる周辺評点分布間の類似度を測る尺度として、ＫＬダイバージェンス（式（３），式（４），式（５）以外の尺度を用いても、同様にして導出される目的関数を最小化することで、未評点の評点予測が可能である。さらに、本発明は、目的関数（式（６））の最小化方法として、種々の最適化手法が適用可能である。
【実施例】
【００６４】
実データに対して、次の３つの方式を適用した。
・本発明における評点予測方式（以下、「発明方式」と呼ぶ）
・最近傍法に基づく方式（以下、「従来方式Ａ」と呼ぶ）
・確率モデルに基づく方式（以下、「従来方式Ｂ」と呼ぶ）
なお、従来方式Ａについては、非特許文献１参照、従来方式Ｂについては、非特許文献２参照のこと。
【００６５】
従来方式Ａは、最初に、アクティブユーザａと類似した評点履歴を持つ“類似ユーザ”を探索し、次に、探索した類似ユーザｕの評点済みの評点ｒｕ，ｊを用いて予測を行う。評点ｒａ，ｊに対する予測値ｒ＾ａ，ｊを求める予測式は以下で与えられる。
【００６６】
【数７】
2007323315.tif 000010
【００６７】
ここで、Ｓａは、アクティブユーザａに対する類似ユーザの集合、ｗａ，ｕは、アクティブユーザａとユーザｕの類似度、ｒ￣ａは、アクティブユーザａの評点済みのｒａ，ｊの平均値をそれぞれ表す。類似度ｗａ，ｕは、アクティブユーザａとユーザｕとの共通する評点済みの評点を用いて、ピアソン相関係数、コサイン類似度などによって計算する。
【００６８】
従来方式Ｂは、“ユーザは嗜好の似通ったＣ個の潜在クラスｚｃ(ｃ＝１，２，…，Ｃ)に分かれ、評点は潜在クラスごとに設定された正規分布からのサンプリング”という混合正規分布モデルを仮定する。ただし、評点はユーザごとに標準化（原評点からそのユーザの平均を引き、そのユーザの評点の標準偏差で割る）し実数化しておく。すなわち、アクティブユーザａの標準化された評点ｒａ，ｊが従う分布をｐ(ｒ|ａ，ｊ)、アクティブユーザａの潜在クラスｚｃへの帰属確率をＰ(ｚｃ|ａ)、潜在クラスｚｃの評点が従う正規分布をｐ(ｒ|ｚｃ，ｊ)とおくと、次式のように書ける。なお、確率関数は大文字、確率密度関数を小文字で表記している。
【００６９】
【数８】
2007323315.tif 000011
【００７０】
評点ｒａ，ｊに対する予測値ｒ＾ａ，ｊを求める予測式は、次式で与えられる。
【００７１】
【数９】
2007323315.tif 000012
【００７２】
ただし、Ｐ＾(ｚｃ|ａ)は学習の結果得られた帰属確率の推定値、μ＾ｊｃは潜在クラスｚｃにおけるアイテムｊの評点が従う正規分布の平均値の推定値をそれぞれ表す。
【００７３】
（使用したデータ）
本実施例では、映画に対する評点のデータである“MovieLens(ＭＬデータ)”を用いた。このデータでの評点は１，…，５の値をとる。実際に各方式を適用したデータは、ＭＬデータを若干加工した次のデータを用いた。
すなわち、行列Ｒにおけるすべての要素が評点済みとなるように、ユーザとアイテムを原データから抽出して作成し、４１人のユーザ、５０本の映画からなるデータである。
【００７４】
（評価尺度）
予測精度の良さを評価する尺度として、正規化平均絶対予測誤差（Normalized Mean Absolute Error; NMAE）を用いた。ＮＭＡＥを次に示す。
【００７５】
【数１０】
2007323315.tif 000013
【００７６】
ここで、ＭＡＥ（平均絶対予測誤差）は、次式で与えられる。
【００７７】
【数１１】
2007323315.tif 000014
【００７８】
ｒ＾ｉ，ｊは、未評点のｒｉ，ｊに対する予測評点を表し、＃{}は集合の要素数を表す。ＮＭＡＥの最良値は０で、１より大きい場合にはランダムに評点を予測するよりも悪いことを意味する。Ｅ{ＭＡＥ}は、Ｎ，Ｍ，Ｖが既知であれば、容易に計算できる。
【００７９】
（実施方法）
行列Ｒにおける評点済みの評点に対して、ユーザごとにランダムに２０％を選んで未評点データ（テストデータ）とし、残りの８０％を評点済みデータ（学習データ）とする。これらを５セット作成し、これら５セットに対するＮＭＡＥの平均値を求めて、各方式を評価した。
【００８０】
（実施結果）
表２に各予測方式におけるＮＭＡＥを示す。
【００８１】
【表２】
2007323315.tif 000015
【００８２】
また、図７に、本発明による評点予測方式によって予測した値の一部を示す。表２の計算時間は、ＣＰＵの内部クロック周波数が３．６０ＧＨｚで、メインメモリが２ＧＢの計算機上で、Ｃ言語で実装したものの処理時間である。
【産業上の利用可能性】
【００８３】
本発明によれば、特に、電子商取引分野、具体的には、商品販売、レンタルビデオ、ＴＶ番組、あるいは、レストランなどの推薦システムにおいて、膨大なアイテム（サービスを含む）群の中から、ユーザが高い評価を与えると予測されるアイテムを従来よりも適切に選択し、推薦できる。
【００８４】
ひいては、協調フィルタリングにより、高い予測評点のアイテムを優先的に推薦することにより、アクティブユーザにとって、アイテム選択にかかる負担を軽減することができ、同時に、アクティブユーザが知らなかったアイテムを提示することが可能となる。また、アイテム提供者側では、ユーザに適切なアイテムが推薦されることで、アイテムの販売活動の活性化、効率化を促進することができる。
【図面の簡単な説明】
【００８５】
【図１】評点履歴の行列（テーブル）で表現した評点分布例を示す図である。
【図２】評価済みの周辺評点分布と、未評価の周辺評点分布を対比して示す模式図である。
【図３】本発明の実施形態に係る協調フィルタリング装置を示すブロック図である。
【図４】本実施形態の前処理部を示すブロック図である。
【図５】本実施形態に係る評点予測部のブロック図である。
【図６】協調フィルタリング装置のデータ流れ図である。
【図７】本発明による評点予測方式によって予測した値の一部を示す図である。
【符号の説明】
【００８６】
１      協調フィルタリング装置
２      演算手段
３      入力手段
４      記憶手段
５      出力手段
１１    バスライン
２１    前処理部
２２    評点予測部
２３    メモリ
４１    前処理プログラム
４２    評点予測プログラム
４３    評点履歴
４４    入力データ
４５    予測評点
２１１  評点履歴読込部
２１２  入力データ書込部
２２１  入力データ読込部
２２２  予測評点初期値算出部
２２３  予測評点更新部
２２４  予測評点書込部
【図１】
2007323315.tif 000016
【図２】
2007323315.tif 000017
【図３】
2007323315.tif 000018
【図４】
2007323315.tif 000019
【図５】
2007323315.tif 000020
【図６】
2007323315.tif 000021
【図７】
2007323315.tif 000022