説明

情報推薦システム、方法、及び、プログラム

【課題】計算量の増大を招かずに、推薦結果の多様性や精度を調整可能な情報推薦システムを提供する。
【解決手段】情報推薦システム100は、アイテム推薦部101を有する。アイテム推薦部101は、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報推薦システム、方法、及び、プログラムに関し、更に詳しくは、ユーザの嗜好に合うと考えられる情報を、ユーザに推薦する情報推薦システム、方法、及び、プログラムに関する。
【背景技術】
【0002】
情報推薦システムは、ユーザに情報推薦を行うシステムである。特許文献1及び特許文献2は、情報推薦を行うシステムが記載された文献である。特許文献1には、ユーザにテレビ番組を推薦する情報処理装置が記載されている。特許文献1に記載の情報処理装置は、類似系番組推薦部と、定番系番組推薦部と、推薦番組決定部と、受入率計算部とを有する。類似系番組決定部は、ユーザベクトルと、番組ベクトルとのコサイン距離に応じた値を類似度として計算し、類似度が高い番組を推薦番組として決定する。定番系番組推薦部は、あらかじめ設定されたユーザの嗜好と、番組のメタデータとから、推薦番組を決定する。
【0003】
受入率計算部は、ユーザに対して推薦した番組の数と、ユーザが推薦された番組の中から実際に録画予約を行った番組の数との割合を示す受入率を計算する。受入率計算部は、類似系番組決定部が決定した推薦番組(類似系番組)の受入率と、定番系番組決定部が決定した推薦番組(定番系番組)の受入率とをそれぞれ計算する。推薦番組決定部は、類似系番組の受入率と、定番系番組の受入率とに基づいて、類似系番組推薦部が推薦する類似系番組、及び、定番系番組推薦部が推薦する定番系番組のうち、録画再生装置の表示部に表示する番組の数を決定する。
【0004】
特許文献2には、番組推薦を行うテレビジョン受信装置が記載されている。特許文献2のテレビジョン受信装置は、視聴している視聴者を検出し、視聴している視聴者間の相関を、視聴者間の相関を示す相関データから求める。その後、テレビジョン受信装置は、求められた相関に応じて番組を評価し、評価値を計算する。テレビジョン受信装置は、評価値が高い番組のリストを、視聴者に提示する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−39749号公報
【特許文献2】特開2008−219182号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、推薦結果を計算するための入力であるユーザ間の類似度を計測する手法は多様である。特許文献1及び2に記載のシステム問題点は、推薦結果の多様性及び精度に対して、ユーザが満足しない場合があるということである。この問題点が生じる理由は、特許文献1及び2では、適切な計測方法の選択や複数の測定結果を用いることが考慮されていないためである。
【0007】
特許文献1では、類似系番組推薦部と定番系番組推薦部とを用いて、類似系番組と定番系番組とを推薦している。特許文献1では、アルゴリズムごとの推薦結果から、推薦する番組を決定しており、類似系番組を決定する推薦プログラムと、定番系番組を決定する推薦プログラムとを同時に動作させる必要がある。このため、計算量が多く、特に推薦対象のアイテムが大量に存在すると、計算に要する時間が長くなるという問題がある。
【0008】
本発明は、計算量の増大を招かずに、推薦結果の多様性や精度を調整可能な情報推薦システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明は、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦部を備える情報推薦システムを提供する。
【0010】
本発明は、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦ステップを有する情報推薦方法を提供する。
【0011】
本発明は、コンピュータに、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦処理を実行させるプログラムを提供する。
【発明の効果】
【0012】
本発明の情報推薦システム、方法、及び、プログラムは、計算量の増大を招かずに、推薦結果の多様性や精度を調整することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の情報推薦システムの概略を示すブロック図。
【図2】本発明の第1実施形態の情報推薦システムを示すブロック図。
【図3】ユーザ嗜好情報を示す図。
【図4】嗜好マトリクスの分解を示す図。
【図5】解析フェーズの動作手順を示すフローチャート。
【図6】推薦実行フェーズの動作手順を示すフローチャート。
【図7】アイテム推薦の実行を示す模式図。
【図8】本発明の第2実施形態の情報推薦システムを示すブロック図。
【発明を実施するための形態】
【0014】
本発明の実施の形態の説明に先立って、本発明の概略について説明する。図1は、本発明の情報推薦システムを示している。情報推薦システム100は、アイテム推薦部101を有する。アイテム推薦部101は、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦する。
【0015】
アイテム推薦部101は、情報推薦の際に用いるクラスタ分割結果の組み合わせを変更可能であり、複数のユーザ分類手法を用いて行ったクラスタ分割結果を使い分けたり、複数のクラスタ分割結果を任意の割合で組み合わせたりして情報推薦を行うことができる。アイテム推薦部101が情報推薦の際に用いるクラスタ分割結果の組み合わせや、用いるクラスタ分割結果の切り替えを考慮することで、推薦結果の精度や多様性の調整を行うことができる。
【0016】
複数のアルゴリズムでユーザに推薦するアイテムを決定する方式では、アルゴリズムごとに推薦アイテムを計算する必要がある。本発明では、複数のクラスタ分割結果を組み合わせてアイテムを推薦しており、複数の推薦結果を組み合わせてアイテムを推薦する方式に比して、計算量の増大を抑制できる。
【0017】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図2は、本発明の第1実施形態の情報推薦システムを示している。情報推薦システムは、嗜好情報入力部11、嗜好情報蓄積部12、嗜好概念ベクトル抽出部13、ユーザ分類部14、分類結果記憶部15、アイテム分類部16、アイテム分類記憶部17、要求受信部18、アイテム推薦部19を備える。情報推薦システム内の各部の機能は、コンピュータシステムが所定のプログラムに従って動作することで実現可能である。
【0018】
嗜好情報入力部11は、ユーザのアイテムに対する嗜好情報を入力する。嗜好情報蓄積部12は、ユーザのアイテムに対する嗜好情報を記憶する。嗜好概念ベクトル抽出部13は、ユーザのアイテムに対する嗜好情報から、ユーザの嗜好概念ベクトルと、アイテムの被嗜好概念ベクトルとを抽出する。
【0019】
ユーザ分類部14は、ユーザの集合を、複数のユーザ分類手法を用いて複数のユーザクラスタに分割する。より詳細には、ユーザ分類部14は、ユーザの嗜好を示すベクトル間の距離を複数のユーザ分類手法を用いて計算する。ユーザ分類部14は、計算したベクトル間の距離に基づいて、ユーザ分類手法ごとに、ユーザの集合を複数のユーザクラスタに分割する。ユーザ分類部14は、各ユーザ分類手法を用いてクラスタ分割した分類結果(クラスタ分割結果)を分類結果記憶部15に記憶する。
【0020】
また、ユーザ分類部14は、クラスタ分割後、ユーザ分類手法ごとに、クラスタ分割で得られた各ユーザクラスタの代表ベクトルを計算する。代表ベクトルは、同じユーザクラスタに所属するユーザの嗜好を示すベクトルである。ユーザ分類部14は、例えば、各ユーザクラスタに所属するユーザの嗜好概念ベクトルの平均を求め、求めた平均を代表ベクトルとする。ユーザ分類部14は、各手法に対応したクラスタ分割結果と、各ユーザクラスタの代表ベクトルとを、分類結果記憶部15に記憶する。
【0021】
アイテム分類部16は、アイテムの集合を、複数のアイテムクラスタに分割する。アイテム分類部16は、例えば、アイテムの被嗜好概念ベクトルに基づいて、アイテムの集合を複数のアイテムクラスタに分割する。
【0022】
アイテム分類部16は、クラスタ分割後、クラスタ分割で得られた各アイテムクラスタの代表ベクトルを計算する。アイテムクラスタの代表ベクトルは、同じアイテムクラスタに所属するアイテムの被嗜好概念を表すベクトルである。アイテム分類部16は、例えば、各アイテムクラスタに所属するアイテムの被嗜好概念ベクトルの平均を求め、求めた平均を代表ベクトルとする。アイテム分類部16は、アイテムの分類結果(クラスタ分割結果)と、各アイテムクラスタの代表ベクトルとを、アイテム分類記憶部17に記録する。また、アイテム分類部16は、各アイテムの被嗜好概念ベクトルをアイテム分類記憶部17に記憶する。
【0023】
要求受信部18は、ユーザから、情報推薦要求を受け取る。アイテム推薦部19は、情報推薦要求があると、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られた、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦する。
【0024】
アイテム推薦部19は、ベクトル合成部20と推薦アイテム決定部21とを有する。ベクトル合成部20は、要求受信部18から、推薦対象ユーザを識別する情報を受け取る。ベクトル合成部20は、分類結果記憶部15を参照し、ユーザ分類手法ごとに、各ユーザ分類手法を用いて分割したユーザクラスタのうちで、推薦対象ユーザが所属するユーザを特定する。ベクトル合成部20は、ユーザ分類手法ごとに、推薦対象ユーザが所属するクラスタの代表ベクトルを求める。ベクトル合成部20は、ユーザ分類手法ごとの代表ベクトルを合成し、クエリベクトルを生成する。
【0025】
ユーザ分類で用いるユーザ分類手法の数をN(Nは2以上の整数)とする。分類結果記憶部15には、N通りのユーザクラスタ分割結果が記憶されている。推薦対象ユーザは、ユーザ分類手法ごとに、各ユーザ分類手法を用いて分割されたクラスタのうちの1つに所属している。各ユーザ分類手法で、推薦対象ユーザが所属するクラスタの代表ベクトルをU〜Uとする。ベクトル合成部20は、代表ベクトルU〜Uを所定の重みで合成し、クエリベクトルを生成する。具体的には、ベクトル合成部20は、ω〜ωを重みとし、クエリベクトルをUΩとして、
Ω=ω+ω+・・・+ω (1)
で、クエリベクトルUΩを計算する。
【0026】
式1における重みω〜ωは、各ユーザ分類手法に対応する代表ベクトルU〜Uをが、どの程度の割合で合成されるかを示す値である。重みの総和は、例えば1とする。重みの大きさは、ユーザが推薦要求を行うときに直接指定することができる。或いは、ベクトル合成部20に、重みの定義(重みのセット)を複数用意しておき、推薦要求に含まれる情報に基づいて、使用する重みのセットを変えてもよい。
【0027】
例えば、ある特定のユーザ分類手法を用いてクラスタ分割を行った結果のみを用いて情報推薦を行いたいときは、そのユーザ分類手法に対応する重みの値を1にし、その他のユーザ分類手法に対応した重みの値を0にすればよい。また、ある特定のユーザ分類手法を用いてクラスタ分割を行った結果を情報推薦に用いたくないときは、そのユーザ分類手法に対応する重みの値を0とすればよい。このように、重みの値を変更することで、情報推薦の際に用いるクラスタ分割結果の組み合わせや使い分けを任意に設定可能である。
【0028】
推薦アイテム決定部21は、ベクトル合成部20が合成したクエリベクトルを用いて、推薦対象ユーザに推薦するアイテムを決定する。推薦アイテム決定部21は、推薦アイテムの決定に際して、アイテム分類記憶部17から、アイテムのクラスタ分割結果と、各アイテムクラスタの代表ベクトルとを取得する。推薦アイテム決定部21は、クエリベクトルと、各アイテムクラスタの代表ベクトルとの積(内積)を計算し、アイテムクラスタごとにアイテムクラスタスコアを求める。推薦アイテム決定部21は、アイテムクラスタスコアに基づいて、推薦対象ユーザに推薦すべきアイテムを含むアイテムクラスタを決定し、そのアイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定する。
【0029】
図3は、嗜好情報蓄積部12に記録された嗜好情報を示している。嗜好情報は、図3に示すマトリクスで表すことができる。図3にて、各行(“ア”〜“ク”)は、ユーザに対応しており、各列(“A”〜“H”)は、アイテムに対応している。例えば、“ア”の行と“C”の列とが交差する箇所の値は、“ア”に対応するユーザが、“C”に対応するアイテムに対して行った評価に対応する。各ユーザは、任意の時点で、任意のアイテムに対する評価などを入力する。嗜好情報入力部11は、嗜好情報蓄積部12に、嗜好情報を記録していく。
【0030】
嗜好概念ベクトル抽出部13は、嗜好情報のマトリクスの分解を行う。図4は、嗜好情報のマトリクスの分解を示している。図4では、嗜好情報蓄積部12に蓄積された蓄積情報(嗜好マトリクス)を、n行m列の行列で表している。nは、ユーザ数であり、mはアイテム数である。嗜好マトリクスの要素は、ri,j(i:1〜n、j:1〜m)で表わされる。嗜好マトリクスのi行目(ri,1、ri,2、・・・、ri,m)は、i番目のユーザのユーザ嗜好ベクトルに対応している。
【0031】
嗜好概念ベクトル抽出部13は、n行×m列の嗜好マトリクスを、n行×k列のマトリクス(ユーザの嗜好概念ベクトル)と、k行×m列のマトリクス(アイテムの被嗜好概念ベクトル)とに分解する。kの値は、嗜好概念の次元数を表し、2以上でmよりも小さい値を取る。分解されたn行×k列のマトリクスのi行目(ui,1〜ui,k)は、i番目のユーザの嗜好概念ベクトルを表している。また、k行×m列のマトリクスのj列目(i1,j〜ik,j)は、j番目のアイテムの被嗜好概念ベクトルを表している。嗜好概念ベクトル(ui,1,・・・,ui,k)と(i1,j,・・・,ik,j)との内積をとることで、i番目のユーザのj番目のアイテムに対する嗜好情報(ri,j)が得られる。マトリクスの分解には、特異値分解やNon-Negative Matrix Factorizationなど、任意のものを用いることができる。
【0032】
情報推薦システムの動作は、解析フェーズと推薦実行フェーズとに大別される。まず、解析フェーズの動作について説明する。図5は、解析フェーズの動作手順を示している。ユーザは、嗜好情報入力部11に対して、アイテムに対する嗜好情報を入力する(ステップA1)。嗜好情報とは、例えば、評価を5段階として、「ユーザ1のアイテム1に対する評価は5」といった事実や、或いは、「ユーザ1がアイテム1を購入した」といった事実を表す情報である。嗜好情報入力部11は、入力された嗜好情報を、嗜好情報蓄積部12に記録する。
【0033】
嗜好概念ベクトル抽出部13は、嗜好情報蓄積部12に蓄積された嗜好情報に対してマトリクスの分解を行い、ユーザの嗜好概念ベクトルとアイテムの被嗜好概念ベクトルとを抽出する(ステップA2)。ユーザ分類部14は、複数のユーザ分類手法を用いて、ユーザ分類を行う(ステップA3)。ユーザ分類部14は、ステップA3では、例えば、嗜好概念ベクトル抽出部13が抽出したユーザの嗜好概念ベクトル間の類似度を計算し、クラスタリングを行う。クラスタリングには、k-means法、Repeated-Bisection法など、任意のクラスタリング手法を用いることができる。
【0034】
ユーザ分類部14は、ステップA3では、複数のユーザ類似度メトリックを用いて嗜好概念ベクトル間の類似度を計算し、用いるユーザ類似度メトリックごとにクラスタリングを行う。ユーザ分類部14は、例えば、ユーザの嗜好概念ベクトル間の相関係数をユーザ類似度メトリックとした用いたクラスタリングと、ユーザの嗜好概念ベクトル間のコサイン距離をユーザ類似度メトリックとした用いたクラスタリングとを行う。ユーザ分類部14は、「本に関する好みの距離」や、「食べ物に関する好みの距離」を、ユーザ類似度メトリックとして用いてクラスタリングを行ってもよい。ユーザ分類部14は、ユーザ分類結果(クラスタ分割結果)を、分類結果記憶部15に記憶する。
【0035】
なお、ユーザ分類部14が行うユーザ分類は、ユーザの嗜好概念ベクトルを用いたユーザ分類には限定されない。例えば、ユーザ分類部14が、別途用意された、ユーザの年齢や所属、趣味などの情報を参照し、それらに基づいて、ユーザの集合を複数のユーザクラスタに分割するという構成でもよい。また、ユーザ分類部14を用いずに、人手で、ユーザ分類を行い、ユーザ分類結果を分類結果記憶部15に記憶しておいてもよい。
【0036】
ユーザ分類部14は、ユーザ分類で得られた各ユーザクラスタの代表ベクトルを求める。ユーザ分類部14は、例えば、同じユーザクラスタに所属するユーザの嗜好概念ベクトルに基づいて、各クラスタの代表ベクトルを計算する。具体的には、ユーザ分類部14は、同じユーザクラスタに所属するユーザの嗜好概念ベクトルの平均を、代表ベクトルとする。或いは、ユーザ分類部14は、同じユーザクラスタに所属するユーザの嗜好概念ベクトルの重心位置を、代表ベクトルとしてもよい。
【0037】
ユーザ分類部14は、ステップA3では、複数のユーザ分類手法を用いてユーザ分類を行うので、クラスタ分割結果は、ユーザ分類に用いるユーザ分類手法の数だけ存在する。ユーザ分類部14は、複数のユーザ分類手法に対応しクラスタ分割結果のそれぞれで、各クラスタの代表ベクトルを計算する。ユーザ分類部14は、各ユーザクラスタの代表ベクトルを、クラスタ分割結果と共に、分類結果記憶部15に記憶する。ユーザ分類部14は、分類結果記憶部15に、事前に、人手などで分類されたユーザ分類結果が記憶されている場合は、分類結果記憶部15からユーザ分類結果を読み出して各ユーザクラスタの代表ベクトルを計算し、分類結果記憶部15に記憶すればよい。
【0038】
アイテム分類部16は、アイテムの集合を複数のクラスタに分割し、アイテム分類を行う(ステップA4)。アイテム分類部16は、ステップA4では、例えば、嗜好概念ベクトル抽出部13が抽出したアイテムの被嗜好概念ベクトルを利用してアイテム間の類似度を計算し、クラスタリングを行う。クラスタリングには、ユーザ分類部14におけるクラスタリングと同様に、k-means法、Repeated-Bisection法など、任意の手法を用いることができる。
【0039】
アイテム分類部16は、アイテムのクラスタ分割結果を、アイテム分類記憶部17に記憶する。なお、アイテム分類部16が行うアイテム分類は、アイテムの被嗜好概念ベクトルを用いた分類には限定されない。例えば、アイテム分類部16が、別途用意されたアイテムのカテゴリ情報などを参照し、それらに基づいて、アイテムの集合を複数のアイテムクラスタに分割するという構成でもよい。また、アイテム分類部16を用いずに、人手で、アイテム分類を行い、アイテム分類結果をアイテム分類記憶部17に記憶してもよい。
【0040】
アイテム分類部16は、アイテム分類で得られた各アイテムクラスタの代表ベクトルを求める。アイテム分類部16は、同じアイテムクラスタに所属するアイテムの被嗜好概念ベクトルに基づいて、各クラスタの代表ベクトルを計算する。具体的には、アイテム分類部16は、同じアイテムクラスタの所属するアイテムの被嗜好概念ベクトルの平均を、代表ベクトルとする。或いは、アイテム分類部16は、同じアイテムクラスタに所属するアイテムの被嗜好概念ベクトルの重心位置を、代表ベクトルとしてもよい。
【0041】
アイテム分類部16は、各アイテムクラスタの代表ベクトルを、クラスタ分割結果と共に、アイテム分類記憶部17に記憶する。また、アイテム分類部16は、各アイテムの被嗜好概念ベクトルをアイテム分類記憶部17に記憶する。なお、アイテム分類部16は、アイテム分類記憶部17に、事前に、人手などで分類されたアイテム分類結果が記憶されている場合は、アイテム分類記憶部17からアイテム分類結果を読み出して各アイテムクラスタの代表ベクトルを計算し、アイテム分類記憶部17に記憶すればよい。以上で、解析フェーズの動作は終了する。
【0042】
図6は、推薦実行フェーズの動作手順を示している。ユーザは、要求受信部18に、推薦要求を送信する(ステップB1)。要求受信部18は、推薦対象ユーザを識別する情報をベクトル合成部20に渡す。ベクトル合成部20は、分類結果記憶部15を参照して、各ユーザ分類手法で、推薦対象ユーザが所属するユーザクラスタを特定する。ベクトル合成部20は、分類結果記憶部15から、ユーザ分類手法ごとに、推薦対象ユーザが所属するユーザクラスタの代表ベクトルを取得する(ステップB2)。
【0043】
ベクトル合成部20は、ユーザ分類手法ごとのユーザクラスタの代表ベクトルを結合し、クエリベクトルを生成する(ステップB3)。ベクトル合成部20は、ステップB3では、結合する代表ベクトルにそれぞれ所定の重みを乗じた上で、代表ベクトルを合成する。ベクトル合成部20は、代表ベクトルを結合したクエリベクトルを推薦アイテム決定部21に渡す。
【0044】
推薦アイテム決定部21は、アイテム分類記憶部17から、各アイテムクラスタの代表ベクトルを読み出す。推薦アイテム決定部21は、クエリベクトルと、各アイテムクラスタの代表ベクトルとの内積をとり、アイテムクラスタごとのスコア(アイテムクラスタスコア)を計算する(ステップB4)。推薦アイテム決定部21は、アイテムクラスタスコアに基づいて、推薦対象ユーザに推薦すべきアイテムを含むアイテムクラスタを決定する(ステップB5)。
【0045】
推薦アイテム決定部21は、例えば、アイテムクラスタスコアが最も高いアイテムクラスタを、推薦すべきアイテムを含むアイテムクラスタとして決定する。或いは、推薦アイテム決定部21は、アイテムクラスタスコアが所定のしきい値以上のアイテムクラスタを、推薦すべきアイテムを含むアイテムクラスタとしてもよい。
【0046】
推薦アイテム決定部21は、ステップB5で決定したアイテムクラスタに所属するアイテムのうちの少なくとも1つを、推薦対象ユーザに推薦するアイテムとして決定する(ステップB6)。推薦アイテム決定部21は、ステップB6では、まず、アイテム分類記憶部17から決定したアイテムクラスタに所属するアイテムの被嗜好概念ベクトルを読み出す。次いで、推薦アイテム決定部21は、クエリベクトルと、読み出した各アイテムの被嗜好概念ベクトルとの内積をとり、決定したアイテムクラスタに所属する各アイテムのアイテムスコアを計算する。その後、推薦アイテム決定部21は、アイテムスコアに基づいて、推薦アイテムを決定する。
【0047】
推薦アイテム決定部21は、例えば、推薦対象ユーザの嗜好情報がないアイテムのうち、アイテムスコアが最も高く、推薦対象ユーザの嗜好情報がないアイテムを推薦アイテムとして決定する。或いは、推薦アイテム決定部21は、アイテムスコアが所定のしきい値以上のアイテムを、推薦アイテムとして決定してもよい。推薦アイテム決定部21は、決定したアイテムに関する情報を推薦対象ユーザに送信し、推薦対象ユーザにアイテムを推薦する(ステップB7)。
【0048】
図7は、推薦アイテムの決定を模式的に示している。ユーザ分類手法として、手法Aと、手法Bとを考える。手法Aは、ユーザの嗜好ベクトル間の類似度を、ピアソン相関係数で評価し、ユーザ分類を行う手法であり、手法Bは、ユーザ嗜好ベクトル間の類似度を、コサイン距離で評価して、ユーザ分類を行う手法である。ユーザ分類部14は、手法Aでユーザの集合を複数のクラスタに分割し、クラスタ分割結果としてユーザクラスタ群Aを生成する。また、ユーザ分類部14は、手法Bでユーザの集合を複数のクラスタに分割し、クラスタ分割結果としてユーザクラスタ群Bを生成する。
【0049】
ユーザ分類部14は、ユーザクラスタ群Aに含まれる各ユーザクラスタの代表ベクトルを計算する。また、ユーザ分類部14は、ユーザクラスタ群Bに含まれる各ユーザクラスタの代表ベクトルを計算する。ユーザ分類部14は、ユーザクラスタ群Aの各クラスタが、どのユーザで構成されるかを示す情報と、ユーザクラスタ群Aの各ユーザクラスタの代表ベクトルとを、分類結果記憶部15に記憶する。また、ユーザ分類部14は、ユーザクラスタ群Bの各クラスタが、どのユーザで構成されるかを示す情報と、ユーザクラスタ群Bの各ユーザクラスタの代表ベクトルとを、分類結果記憶部15に記憶する。
【0050】
アイテム分類部16は、アイテムの集合を複数のアイテムクラスタに分割し、各アイテムクラスタの代表ベクトルを計算する。分割されたアイテムクラスタをC1、C2、C3とし、各アイテムクラスタの代表ベクトルをIC1、IC2、IC3とする。アイテム分類部16は、各アイテムクラスタが、どのアイテムで構成されるかを示す情報と、各アイテムクラスタの代表ベクトルとを、アイテム分類記憶部17に記憶する。また、アイテム分類部16は、各アイテムの被嗜好概念ベクトルをアイテム分類記憶部17に記憶する。
【0051】
あるユーザが、情報推薦要求を行ったとする。要求受信部18は、ベクトル合成部20に、推薦対象ユーザの識別情報を渡す。ベクトル合成部20は、分類結果記憶部15を参照し、推薦対象ユーザが、手法Aでクラスタ分割されたユーザクラスタ群Aのどのユーザクラスタに所属しているかを特定する。ベクトル合成部20は、分類結果記憶部15から、ユーザクラスタ群Aで推薦対象ユーザが所属するユーザクラスタの代表ベクトルUを読み出す。
【0052】
また、ベクトル合成部20は、分類結果記憶部15を参照し、推薦対象ユーザが、手法Bでクラスタ分割されたユーザクラスタ群Bのどのユーザクラスタに所属しているかを特定する。ベクトル合成部20は、分類結果記憶部15から、ユーザクラスタ群Bで推薦対象ユーザが所属するユーザクラスタの代表ベクトルUを読み出す。手法Aと、手法Bとでは、用いるユーザ類似度メトリックが異なっている。このため、一般に、ユーザクラスタ群Aで推薦対象ユーザが所属するユーザクラスタと、ユーザクラスタ群Bで推薦対象ユーザが所属するユーザクラスタとでは、所属ユーザ(近傍ユーザ)が異なり、代表ベクトルUとUとは、異なるベクトルになる。
【0053】
ベクトル合成部20は、手法Aに対応する代表ベクトルUと、手法Bに対応する代表ベクトルUとを、所定の重みづけて線形結合する。具体的には、ベクトル合成部20は、クエリベクトルUΩを、
Ω=ω+ω
で生成する。重みの値は、例えば、推薦対象ユーザが「相関係数重視」を指定したときは、ωの値を相対的に大きく、ωの値を相対的に小さくする。推薦対象ユーザが、逆に、「コサイン距離重視」を指定したときは、ωの値を相対的に小さくし、ωの値を相対的に大きくする。
【0054】
推薦アイテム決定部21は、クエリベクトルUΩと、アイテムクラスタC1の代表ベクトルIC1との内積(UΩ・IC1)をとり、アイテムクラスタC1のスコアを求める。また、推薦アイテム決定部21は、クエリベクトルUΩと、アイテムクラスタC2の代表ベクトルIC2との内積(UΩ・IC2)をとり、アイテムクラスタC2のスコアを求める。推薦アイテム決定部21は、クエリベクトルUΩと、アイテムクラスタC3の代表ベクトルIC3との内積(UΩ・IC3)をとり、アイテムクラスタC3のスコアを求める。アイテムクラスタC1のスコアは4.05となり、アイテムクラスタC2のスコアは3.18となる。また、アイテムクラスタC3のスコアは2.92となる。推薦アイテム決定部21は、スコアが最も高いアイテムクラスタC1を、推薦対象ユーザに推薦すべくアイテムを含むアイテムクラスタとして決定する。
【0055】
推薦アイテム決定部21は、アイテムクラスタの決定後、クエリベクトルUΩと、決定したアイテムクラスタに所属する各アイテムの被嗜好概念ベクトルとの内積をとり、アイテムスコアを求める。アイテムクラスタC1は、アイテム1、5、7で構成されているとする。推薦アイテム決定部21は、クエリベクトルUΩと、アイテム1の被嗜好概念ベクトルIとの内積(UΩ・I)をとり、アイテム1のスコアを求める。また、推薦アイテム決定部21は、クエリベクトルUΩと、アイテム5の被嗜好概念ベクトルIとの内積(UΩ・I)をとり、アイテム5のスコアを求める。推薦アイテム決定部21は、クエリベクトルUΩと、アイテム7の被嗜好概念ベクトルIとの内積(UΩ・I)をとり、アイテム7のスコアを求める。アイテム1のスコアは4.3となり、アイテム5のスコアは3.8となる。また、アイテム7のスコアは3.6となる。推薦アイテム決定部21は、アイテムスコアが最も高いアイテム1を、推薦アイテムとして決定し、アイテム1を推薦する旨を推薦対象ユーザに送信する。
【0056】
本実施形態では、アイテム推薦部19は、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦する。アイテム推薦部19は、情報推薦の際に用いるクラスタ分割結果の組み合わせを変更可能であり、複数のユーザ分類手法を用いて行ったクラスタ分割結果を使い分けたり、複数のクラスタ分割結果を任意の割合で組み合わせたりして情報推薦を行うことができる。アイテム推薦部19が情報推薦の際に用いるクラスタ分割結果の組み合わせや、用いるクラスタ分割結果の切り替えを考慮することで、推薦結果の精度や多様性の調整を行うことができる。
【0057】
本実施形態では、ベクトル合成部20は、複数のクラスタ分割結果のそれぞれで推薦対象ユーザが所属するクラスタを特定し、ユーザ分類手法ごとに、推薦対象ユーザが所属するクラスタの代表ベクトルを求める。ユーザが所属するクラスタの代表ベクトル同士を合成し、クエリベクトルとする。推薦アイテム決定部21は、クエリベクトルに基づいて、推薦するアイテムを決定する。クエリベクトルは、単一のベクトルであり、推薦アイテム決定部での計算量は、単一のユーザ分類手法を用いてクラスタ分割を行った場合の計算量と変わらない。従って、ユーザ分類手法ごとに推薦プログラムを用意し、ベクトル計算を用いるユーザ分類手法の数だけ行う場合に比して、計算量を減らすことができる。
【0058】
続いて、第2実施形態を説明する。図8は、本発明の第2実施形態の情報推薦システムを示している。第2実施形態の情報推薦システムは、図2に示す第1実施形態の情報推薦システムの構成に加えて、フィードバック受信部22を有する。フィードバック受信部22は、アイテムを推薦したユーザから、推薦結果の評価を受信する。ベクトル合成部20は、フィードバック受信部22が受信した推薦結果に基づいて、ベクトル合成の際の重みを学習する。学習は、合成に用いた各代表ベクトルの重みのセットを重みベクトルとして、推薦が成功したか、失敗したかをそれぞれ正例、負例として訓練データ化し、既存の二値分類学習の手法を用いて実現可能である。
【0059】
なお、上記各実施形態では、解析フェーズで、各ユーザ分類手法を用いて得られたクラスタ分割結果の各クラスタの代表ベクトルを計算したが、これには限定されない。代表ベクトルを計算する手段は、ユーザ分類部14には限定されず、ベクトル合成部20でもよい。例えば、推薦実行フェーズで、ベクトル合成部20が、推薦対象ユーザが所属するクラスタを特定し、特定したクラスタに所属するユーザの嗜好概念ベクトルから代表ベクトルを計算してもよい。
【0060】
上記各実施形態では、ユーザ分類部14は、ユーザの嗜好概念ベクトルに基づいてクラスタ分割を行ったが、これには限定されない。例えば、ユーザ分類部14は、分解前のユーザの嗜好情報(嗜好マトリクス)を参照して、クラスタ分割を行ってもよい。また、分類結果記憶部15には、ユーザ分類部14が行ったクラスタ分割結果と、組織情報などに基づいて事前に人手などで行ったクラスタ分割結果との双方を記憶してもおよい。
【0061】
上記各実施形態では、アイテム分類部16を用いるなどして、アイテムの集合をクラスタに分割したが、これには限定されない。推薦アイテム決定部21は、クエリベクトルと、各アイテムの被嗜好概念ベクトルとの内積を計算し、各アイテムのアイテムスコアを求め、アイテムスコアに基づいて推薦アイテムを決定してもよい。ただし、アイテムの数が多いと、アイテムスコアの計算量が増大することになるので、アイテムの集合をアイテムクラスタに分割し、スコアの高いアイテムクラスタを求めた後にアイテムスコアを計算する方が効率的である。
【0062】
上記各実施形態では、ユーザの嗜好を、ユーザの嗜好概念ベクトルと、アイテムの被嗜好概念ベクトルとに分割したがこれらには限定されない。例えば、ユーザの嗜好マトリクスをそのまま用いて、クラスタ分割やアイテム推薦を行ってもよい。その場合、各クラスタの代表ベクトルは、各アイテムへのユーザの嗜好を要素とするので、代表ベクトルの各要素の値がアイテムスコアに相当することになる。ただし、アイテムの数が多いと、計算量が増えて効率が悪く、また、クラスタ分割がうまくいかなくなることも考えられるので、マトリクス分割を行い、アイテム数の次元を減らしておくことが望ましい。次元圧縮は、実施形態で説明した手法には限定されず、任意の次元圧縮手法を用いることが可能である。
【0063】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の情報推薦システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【符号の説明】
【0064】
11:嗜好情報入力部
12:嗜好情報蓄積部
13:嗜好概念ベクトル抽出部
14:ユーザ分類部
15:分類結果記憶部
16:アイテム分類部
17:アイテム分類記憶部
18:要求受信部
19:アイテム推薦部
20:ベクトル合成部
21:推薦アイテム決定部
22:フィードバック受信部
100:情報推薦システム
101:アイテム推薦部

【特許請求の範囲】
【請求項1】
複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦部を備える情報推薦システム。
【請求項2】
前記アイテム推薦部は、
各ユーザ分類手法に対応したクラスタ分割結果を記憶する分類結果記憶部を参照し、前記ユーザ分類手法ごとに、各ユーザ分類手法を用いて分割したユーザクラスタのうちで推薦対象ユーザが所属するユーザクラスタを特定し、該特定したユーザクラスタに所属するユーザの嗜好をベクトルで表した代表ベクトルを前記ユーザ分類手法ごとに求め、該ユーザ分類手法ごとの代表ベクトルを合成しクエリベクトルを生成するベクトル合成部と、
前記クエリベクトルに基づいて、前記推薦対象ユーザに推薦するアイテムを決定する推薦アイテム決定部とを有する、請求項1に記載の情報推薦システム。
【請求項3】
前記ベクトル合成部は、用いるユーザ分類手法の数をNとし、前記ユーザ分類手法ごとの前記特定したユーザクラスタの代表ベクトルをU〜Uとし、ω〜ωを重みとして、クエリベクトルUΩを、
Ω=ω+ω+・・・+ω
で求める、請求項2に記載の情報推薦システム。
【請求項4】
ユーザの集合を、複数のユーザ分類手法を用いて複数のクラスタに分割し、各ユーザ分類手法に対応したクラスタ分割結果を分類結果記憶部に記憶するユーザ分類部を更に備える、請求項2又は3に記載の情報推薦システム。
【請求項5】
前記ユーザ分類部は、各ユーザの嗜好を示すベクトル間の距離を複数のユーザ類似度メトリックで計測し、各ユーザ類似度メトリックで計測したベクトル間の距離に基づいてユーザの集合を複数のクラスタに分割する、請求項4に記載の情報推薦システム。
【請求項6】
前記ユーザ分類部は、複数のユーザ類似度判断手法を用いてクラスタ分割を行った後、クラスタ分割で得られた各クラスタの代表ベクトルを計算し、該代表ベクトルを前記クラスタ分割結果と共に分類結果記憶部に記憶する、請求項4又は5に記載の情報推薦システム。
【請求項7】
ユーザの数をn、アイテムの数をmとして、各ユーザの各アイテムに対するユーザ嗜好情報をn行m列に配列した嗜好マトリクスを、n行k列(kは2以上でmよりも小さい整数)のユーザの嗜好概念マトリクスと、k行m列のアイテムの被嗜好概念マトリクスとに分解する嗜好概念ベクトル抽出部を更に備え、
前記ユーザの嗜好概念マトリクスの各行で表されるベクトルをユーザの嗜好概念ベクトルとして、前記代表ベクトルが、前記ユーザの嗜好概念ベクトルに基づいて生成される、請求項2乃至6の何れか一に記載の情報推薦システム。
【請求項8】
アイテムの集合が複数のアイテムクラスタに分割されており、前記推薦アイテム決定部は、前記クエリベクトルと、前記アイテムクラスタに所属するアイテムの被嗜好概念ベクトルに基づく代表ベクトルとの内積を計算してアイテムクラスタごとにアイテムクラスタスコアを求め、該アイテムクラスタスコアに基づいて推薦対象ユーザに推薦すべきアイテムを含むアイテムクラスタを決定し、該決定したアイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定する、請求項7に記載の情報推薦システム。
【請求項9】
前記推薦アイテム決定部は、前記クエリベクトルと、前記決定したアイテムクラスタに所属するアイテムの被嗜好概念ベクトルとの内積を計算して、前記決定したアイテムクラスタに所属するアイテムのアイテムスコアを求め、該アイテムスコアに基づいて、前記推薦対象ユーザにするアイテムを決定する、請求項8に記載の情報推薦システム。
【請求項10】
前記推薦対象ユーザから推薦したアイテムに対する評価を受信するフィードバック受信部を更に備え、前記ベクトル合成部は、前記評価に基づいて前記重みを学習する、請求項2乃至9の何れか一に記載の情報推薦システム。
【請求項11】
コンピュータが、複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦ステップを有する情報推薦方法。
【請求項12】
前記アイテム推薦ステップが、
前記コンピュータが、各ユーザ分類手法に対応したクラスタ分割結果を記憶する分類結果記憶部を参照し、前記ユーザ分類手法ごとに、各ユーザ分類手法を用いて分割したユーザクラスタのうちで推薦対象ユーザが所属するユーザクラスタを特定するステップと、
前記コンピュータが、前記特定したユーザクラスタに所属するユーザの嗜好をベクトルで表した代表ベクトルを前記ユーザ分類手法ごとに求め、該ユーザ分類手法ごとの代表ベクトルを合成しクエリベクトルを生成するステップと、
前記コンピュータが、前記クエリベクトルに基づいて、前記推薦対象ユーザに推薦するアイテムを決定するステップとを含む、請求項11に記載の情報推薦方法。
【請求項13】
前記クエリベクトルを合成するステップでは、前記コンピュータは、用いるユーザ分類手法の数をNとし、前記ユーザ分類手法ごとの前記特定したユーザクラスタの代表ベクトルをU〜Uとし、ω〜ωを重みとして、クエリベクトルUΩを、
Ω=ω+ω+・・・+ω
で求める、請求項12に記載の情報推薦方法。
【請求項14】
前記アイテム推薦ステップに先行して、ユーザの集合を、複数のユーザ分類手法を用いて複数のクラスタに分割し、各ユーザ分類手法に対応したクラスタ分割結果を分類結果記憶部に記憶するユーザ分類ステップを更に有する、請求項12又は13に記載の情報推薦方法。
【請求項15】
前記ユーザ分類ステップでは、前記コンピュータは、各ユーザの嗜好を示すベクトル間の距離を複数のユーザ類似度メトリックで計測し、各ユーザ類似度メトリックで計測したベクトル間の距離に基づいてユーザの集合を複数のクラスタに分割する、請求項14に記載の情報推薦方法。
【請求項16】
前記ユーザ分類ステップに後続して、前記コンピュータが、クラスタ分割で得られた各クラスタの代表ベクトルを計算し、該代表ベクトルを前記分類結果記憶部に記憶するステップを更に有する、請求項14又は15に記載の情報推薦方法。
【請求項17】
前記コンピュータが、ユーザの数をn、アイテムの数をmとして、各ユーザの各アイテムに対するユーザ嗜好情報をn行m列に配列した嗜好マトリクスを、n行k列(kは2以上でmよりも小さい整数)のユーザの嗜好概念マトリクスと、k行m列のアイテムの被嗜好概念マトリクスとに分解する嗜好概念ベクトル抽出ステップを更に有し、
前記ユーザの嗜好概念マトリクスの各行で表されるベクトルをユーザの嗜好概念ベクトルとして、前記代表ベクトルが、前記ユーザの嗜好概念ベクトルに基づいて生成される、請求項12乃至16の何れか一に記載の情報推薦方法。
【請求項18】
アイテムの集合が複数のアイテムクラスタに分割されており、前記推薦アイテムを決定するステップが、
前記コンピュータが、前記クエリベクトルと、前記アイテムクラスタに所属するアイテムの被嗜好概念ベクトルに基づく代表ベクトルとの内積を計算してアイテムクラスタごとにアイテムクラスタスコアを求めるステップと、
前記コンピュータが、前記アイテムクラスタスコアに基づいて推薦対象ユーザに推薦すべきアイテムを含むアイテムクラスタを決定するステップと、
前記コンピュータが、前記決定したアイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定するステップとを含む、請求項17に記載の情報推薦方法。
【請求項19】
前記アイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定するステップが、
コンピュータが、前記クエリベクトルと、前記決定したアイテムクラスタに所属するアイテムの被嗜好概念ベクトルとの内積を計算して、前記決定したアイテムクラスタに所属するアイテムのアイテムスコアを求めるステップと、
前記コンピュータが、前記アイテムスコアに基づいて、前記推薦対象ユーザにする推薦するアイテムを決定するステップとを含む、請求項18に記載の情報推薦方法。
【請求項20】
前記アイテム推薦ステップに後続して、前記コンピュータが、前記推薦対象ユーザから推薦したアイテムに対する評価を受信し、前記評価に基づいて前記重みを学習するステップを更に有する、請求項12乃至19の何れか一に記載の情報推薦方法。
【請求項21】
コンピュータに、
複数のユーザ分類手法を用いてユーザの集合を複数のクラスタに分割することで得られる、各ユーザ分類手法に対応した複数のクラスタ分割結果を組み合わせて、ユーザにアイテムを推薦するアイテム推薦処理を実行させるプログラム。
【請求項22】
前記アイテム推薦処理が、
各ユーザ分類手法に対応したクラスタ分割結果を記憶する分類結果記憶部を参照し、前記ユーザ分類手法ごとに、各ユーザ分類手法を用いて分割したユーザクラスタのうちで推薦対象ユーザが所属するユーザクラスタを特定する処理と、
前記特定されたユーザクラスタに所属するユーザの嗜好をベクトルで表した代表ベクトルを前記ユーザ分類手法ごとに求め、該ユーザ分類手法ごとの代表ベクトルを合成しクエリベクトルを生成する処理と、
前記クエリベクトルに基づいて、前記推薦対象ユーザに推薦するアイテムを決定する処理とを含む、請求項21に記載のプログラム。
【請求項23】
前記クエリベクトルを合成する処理では、用いるユーザ分類手法の数をNとし、前記ユーザ分類手法ごとの前記特定したユーザクラスタの代表ベクトルをU〜Uとし、ω〜ωを重みとして、クエリベクトルUΩを、
Ω=ω+ω+・・・+ω
で求める、請求項22に記載のプログラム。
【請求項24】
前記アイテム推薦処理に先行して、前記コンピュータに、ユーザの集合を、複数のユーザ分類手法を用いて複数のクラスタに分割し、各ユーザ分類手法に対応したクラスタ分割結果を分類結果記憶部に記憶するユーザ分類処理を更に実行させる、請求項22又は23に記載のプログラム。
【請求項25】
前記ユーザ分類処理では、各ユーザの嗜好を示すベクトル間の距離を複数のユーザ類似度メトリックで計測し、各ユーザ類似度メトリックで計測したベクトル間の距離に基づいてユーザの集合を複数のクラスタに分割する、請求項24に記載のプログラム。
【請求項26】
前記ユーザ分類処理に後続して、前記コンピュータに、クラスタ分割で得られた各クラスタの代表ベクトルを計算し、該代表ベクトルを前記分類結果記憶部に記憶する処理を更に実行させる、請求項24又は25に記載のプログラム。
【請求項27】
前記コンピュータに、ユーザの数をn、アイテムの数をmとして、各ユーザの各アイテムに対するユーザ嗜好情報をn行m列に配列した嗜好マトリクスを、n行k列(kは2以上でmよりも小さい整数)のユーザの嗜好概念マトリクスと、k行m列のアイテムの被嗜好概念マトリクスとに分解する嗜好概念ベクトル抽出処理を更に実行させ、
前記ユーザの嗜好概念マトリクスの各行で表されるベクトルをユーザの嗜好概念ベクトルとして、前記代表ベクトルが、前記ユーザの嗜好概念ベクトルに基づいて生成される、請求項22乃至26の何れか一に記載のプログラム。
【請求項28】
アイテムの集合が複数のアイテムクラスタに分割されており、前記推薦アイテムを決定する処理が、
前記クエリベクトルと、前記アイテムクラスタに所属するアイテムの被嗜好概念ベクトルに基づく代表ベクトルとの内積を計算してアイテムクラスタごとにアイテムクラスタスコアを求める処理と、
前記アイテムクラスタスコアに基づいて推薦対象ユーザに推薦すべきアイテムを含むアイテムクラスタを決定する処理と、
前記決定されたアイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定する処理とを含む、請求項27に記載のプログラム。
【請求項29】
前記アイテムクラスタに所属するアイテムのうちの少なくとも1つを推薦アイテムとして決定する処理が、
前記クエリベクトルと、前記決定したアイテムクラスタに所属するアイテムの被嗜好概念ベクトルとの内積を計算して、前記決定したアイテムクラスタに所属するアイテムのアイテムスコアを求める処理と、
前記アイテムスコアに基づいて、前記推薦対象ユーザにする推薦するアイテムを決定する処理とを含む、請求項28に記載のプログラム。
【請求項30】
前記アイテム推薦処理に後続して、前記コンピュータに、前記推薦対象ユーザから推薦したアイテムに対する評価を受信し、前記評価に基づいて前記重みを学習する処理を更に実行させる、請求項22乃至29の何れか一に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−29872(P2013−29872A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2009−239960(P2009−239960)
【出願日】平成21年10月19日(2009.10.19)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】