(57)【要約】【課題】CF手法において一部のコンテンツに推薦が集中されてしまうことを抑止するとともに、履歴情報の少ない利用者に対してもコンテンツを推薦する。【解決手段】ステップＳ１１で、楽曲が推薦される利用者Ａと履歴情報が最も類似している他の利用者Ｘを検出し、ステップＳ１２で、利用者Ｘが有している（過去に購入した、または保有している）楽曲であって、利用者Ａが有していない楽曲ａを検出する。ステップＳ１３で、楽曲ａが属する各クラスタ層のクラスタを特定する。そして、ステップＳ１４で、特定した全てのクラスタに共通して分類されている楽曲を抽出して推薦候補とする。さらに、ステップＳ１５で、推薦候補の楽曲のうち、楽曲ａとクラスタ情報が最も類似している１楽曲を選択する。ここで選択した楽曲を利用者Ａに推薦する。本発明は、例えばインタネットに開設されるコンテンツ販売サイトに適用できる。【選択図】図７
2007122683.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置において、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類するコンテンツ分類手段と、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第１のクラスタとの対応関係を示すデータベースを保持する保持手段と、
前記利用者のコンテンツに対する履歴情報を管理する管理手段と、
前記履歴情報に基づき、注目する第１のクラスタを特定し、特定した前記第１のクラスタに分類されているコンテンツを選択する選択手段と、
選択された前記コンテンツを提示する提示手段と
を含む情報処理装置。
【請求項２】
前記選択手段は、
第１の利用者と前記履歴情報が類似している第２の利用者を検出する検出手段と、
前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段と、
特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する
請求項１に記載の情報処理装置。
【請求項３】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段と、
前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、
前記選択手段は、
第１の利用者と同じグループに属する第２の利用者を検出する検出手段と、
前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段と、
特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する
請求項１に記載の情報処理装置。
【請求項４】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段をさらに含み、
前記選択手段は、
第１の利用者と前記嗜好情報で示される嗜好が類似している第２の利用者を検出する検出手段と、
前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段と、
特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する
請求項１に記載の情報処理装置。
【請求項５】
前記検出手段は、
利用者の嗜好情報を正規化する正規化手段と、
正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段と、
階層毎の重みと前記嗜好情報とから、利用者のうちの第１の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段と
を含み、
計算された類似度から、第１の利用者と嗜好が類似している第２の利用者を検出する
請求項４に記載の情報処理装置。
【請求項６】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段と、
前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、
前記選択手段は、
第１の利用者と同じグループに属する第２の利用者を検出する検出手段と、
前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段と、
特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する
請求項１に記載の情報処理装置。
【請求項７】
前記コンテンツ分類手段によって前記メタデータが分類される第１のクラスタのそれぞれに対してキーワードを設定する設定手段と、
前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段とをさらに含み、
前記提示手段は、前記理由文も提示する
請求項１に記載の情報処理装置。
【請求項８】
コンテンツのメタデータを複数の第２のクラスタのいずれかに分類し、第２のクラスタに前記階層を割り当てるメタデータ分類手段を更に含み、
前記コンテンツ分類手段は、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類する
請求項１に記載の情報処理装置。
【請求項９】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段をさらに含み、
前記選択手段は、全部の前記階層の全部の前記第１のクラスタのうち、前記嗜好情報で示される前記第１のクラスタであって、最も多くの前記第１のクラスタに分類されているコンテンツを選択する
請求項１に記載の情報処理装置。
【請求項１０】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置の情報処理方法において、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、
前記利用者のコンテンツに対する履歴情報を管理し、
前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、
選択された前記コンテンツを提示する
ステップを含む情報処理方法。
【請求項１１】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に推薦するためのプログラムであって、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、
前記利用者のコンテンツに対する履歴情報を管理し、
前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、
選択された前記コンテンツを提示する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、コンテンツをクラスタに分類し、コンテンツが分類されたクラスタを用いてコンテンツの特徴を管理し、コンテンツの検索や推薦に利用するようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、利用者の嗜好に基づいてテレビジョン番組、楽曲などのコンテンツを検索して推薦する（いわゆる、コンテンツパーソナライゼーション）ための発明が提案されている（例えば、特許文献１参照）。
【０００３】
コンテンツパーソナライゼーションには、協調フィルタリング(CF)と称する手法やコンテントベーストフィルタリング(CBF)と称される手法が広く使われている。
【０００４】
CF手法は、各利用者の購入履歴を管理し、コンテンツを推薦しようとする利用者Ａに対し、購入履歴が似ている他の利用者Ｘを検出して、当該他の利用者Ｘが購入しており、かつ、利用者Ａが購入していないコンテンツを推薦するようにしたものであり、例えば、インタネット上の通信販売サイトにおいて採用されている。
【０００５】
CBF手法は、コンテンツに対して配信側や販売側によって予め付与されているメタデータが直接的に嗜好の抽出やコンテンツの推薦に利用されていた。すなわち、利用者の嗜好を示す特徴ベクトルと、候補となる各楽曲の特徴ベクトルとの距離（余弦相関など）を算出し、算出された距離の短い楽曲が利用者の嗜好に合致したものとして推薦されるようになされている。
【０００６】
【特許文献１】特開２００４−１９４１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したCF手法の以下の不都合が生じてしまう。
（１）どの利用者にも購入されていないコンテンツは、誰に対しても推薦されることがない。したがって、膨大に用意されているコンテンツのうち、推薦されるコネテンツが一部に集中し、残りの大多数のコンテンツが推薦されない。
（２）新規の利用者に対してコンテンツを推薦する場合、当該利用者の購入履歴が少ないので、履歴情報が類似している他の利用者を検出することができず、コンテンツを推薦することができない（いわゆる、コールドスタート問題）。
（３）通常、コンテンツの数も利用者の数も増加していくが、その場合、購入履歴が似ている他の利用者を検出する際の演算が多くなり、推薦するコンテンツを速やかに決定することができない。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、CF手法において一部のコンテンツに推薦が集中されてしまうことを抑止するとともに、履歴情報の少ない利用者に対してもコンテンツを推薦できるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面である情報処理装置は、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類するコンテンツ分類手段と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第１のクラスタとの対応関係を示すデータベースを保持する保持手段と、前記利用者のコンテンツに対する履歴情報を管理する管理手段と、前記履歴情報に基づき、注目する第１のクラスタを特定し、特定した前記第１のクラスタに分類されているコンテンツを選択する選択手段と、選択された前記コンテンツを提示する提示手段とを含む。
【００１０】
前記選択手段は、第１の利用者と前記履歴情報が類似している第２の利用者を検出する検出手段と、前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示するようにすることができる。
【００１１】
本発明の一側面である情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、前記選択手段は、第１の利用者と同じグループに属する第２の利用者を検出する検出手段と、前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示するようにすることができる。
【００１２】
本発明の一側面である情報処理装置には、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段をさらに設け、前記選択手段には、第１の利用者と前記嗜好情報で示される嗜好が類似している第２の利用者を検出する検出手段と、前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを設け、前記提示手段には、前記第１の利用者に対して抽出された前記コンテンツを提示させることができる。
【００１３】
前記検出手段には、利用者の嗜好情報を正規化する正規化手段と、正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段と、階層毎の重みと前記嗜好情報とから、利用者のうちの第１の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段とを設け、計算された類似度から、第１の利用者と嗜好が類似している第２の利用者を検出させることができる。
【００１４】
本発明の一側面である情報処理装置には、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに設け、前記選択手段には、第１の利用者と同じグループに属する第２の利用者を検出する検出手段と、前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段とを設け、前記提示手段には、前記第１の利用者に対して抽出された前記コンテンツを提示させることができる。
【００１５】
本発明の一側面である情報処理装置には、前記コンテンツ分類手段によって前記メタデータが分類される第１のクラスタのそれぞれに対してキーワードを設定する設定手段と、前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段とをさらに設け、前記提示手段には、前記理由文も提示させることができる。
【００１６】
コンテンツのメタデータを複数の第２のクラスタのいずれかに分類し、第２のクラスタに前記階層を割り当てるメタデータ分類手段を更に設け、前記コンテンツ分類手段には、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類させることができる。
【００１７】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段をさらに設け、前記選択手段には、全部の前記階層の全部の前記第１のクラスタのうち、前記嗜好情報で示される前記第１のクラスタであって、最も多くの前記第１のクラスタに分類されているコンテンツを選択させることができる。
【００１８】
本発明の一側面である情報処理方法は、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置の情報処理方法であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、前記利用者のコンテンツに対する履歴情報を管理し、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、選択された前記コンテンツを提示するステップを含む。
【００１９】
本発明の一側面であるプログラムは、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に推薦するためのプログラムであって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、前記利用者のコンテンツに対する履歴情報を管理し、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、選択された前記コンテンツを提示するステップを含む処理をコンピュータに実行させる。
【００２０】
本発明の一側面においては、前記コンテンツ群を構成する各コンテンツが、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類される。そして、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースが保持される。また、前記利用者のコンテンツに対する履歴情報が管理される。そして、前記履歴情報に基づき、注目するクラスタが特定され、特定された前記クラスタに分類されているコンテンツが選択され、選択された前記コンテンツが提示される。
【発明の効果】
【００２１】
以上のように、本発明の一側面によれば、CF手法により利用者にコンテンツを推薦することが可能となる。
【００２２】
また、本発明の一側面によれば、全コンテンツのうち、一部のコンテンツに推薦が集中されてしまうことを抑止することが可能となる。
【００２３】
さらに、本発明の一側面によれば、履歴情報の少ない利用者に対してもコンテンツを推薦することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２５】
請求項１に記載の情報処理装置は、コンテンツ群のなかから所定の条件を満たすコンテンツ（例えば、楽曲データ）を選択して利用者に提示する情報処理装置（例えば、図１の推薦システム１）であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類するコンテンツ分類手段（例えば、図１のクラスタリング部１２）と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第１のクラスタとの対応関係を示すデータベースを保持する保持手段（例えば、図１のクラスタリング済ＤＢ１４）と、前記利用者のコンテンツに対する履歴情報を管理する管理手段（例えば、図１の利用者履歴情報ＤＢ１７）と、前記履歴情報に基づき、注目する第１のクラスタを特定し、特定した前記第１のクラスタに分類されているコンテンツを選択する選択手段（例えば、図１の推薦候補選択部１８）と、選択された前記コンテンツを提示する提示手段（例えば、図１の提示部２８）とを含む。
【００２６】
請求項２に記載の情報処理装置において、前記選択手段（例えば、図１の推薦候補選択部１８）は、第１の利用者と前記履歴情報が類似している第２の利用者を検出する検出手段（例えば、図１の類似利用者検出部２１）と、前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段（例えば、図１の推薦クラスタ決定部２３）と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段（例えば、図１の抽出部２４）とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する。
【００２７】
請求項３に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段（例えば、図１の嗜好ベクトル生成部１９）と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段（例えば、図１の利用者グループ化部２０）とをさらに含み、前記選択手段は、第１の利用者と同じグループに属する第２の利用者を検出する検出手段（例えば、図１の類似利用者検出部２１）と、前記第１の利用者の履歴情報上に存在せず、前記第２の利用者の履歴情報上に存在するコンテンツが分類されている第１のクラスタを特定する特定手段（例えば、図１の推薦クラスタ決定部２３）と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段（例えば、図１の抽出部２４）とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する。
【００２８】
請求項４に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段（例えば、図１の嗜好ベクトル生成部１９）をさらに含み、前記選択手段は、第１の利用者と前記嗜好情報で示される嗜好が類似している第２の利用者を検出する検出手段（例えば、図１の類似利用者検出部２１）と、前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段（例えば、図１の推薦クラスタ決定部２３）と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段（例えば、図１の抽出部２４）とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する。
【００２９】
前記検出手段には、利用者の嗜好情報を正規化する正規化手段（例えば、図１８の正規化部２３１）と、正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段（例えば、図１８の重み計算部２３２）と、階層毎の重みと前記嗜好情報とから、利用者のうちの第１の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段（例えば、図１８の類似度計算部２３３）とを設け、計算された類似度から、第１の利用者と嗜好が類似している第２の利用者を検出させることができる。
【００３０】
請求項６に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段（例えば、図１の嗜好ベクトル生成部１９）と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段（例えば、図１の利用者グループ化部２０）とをさらに含み、前記選択手段は、第１の利用者と同じグループに属する第２の利用者を検出する検出手段（例えば、図１の類似利用者検出部２１）と、前記第１の利用者の嗜好情報と前記第２の利用者の嗜好情報に基づいて注目する第１のクラスタを特定する特定手段（例えば、図１の推薦クラスタ決定部２３）と、特定された前記第１のクラスタに分類されているコンテンツを抽出する抽出手段（例えば、図１の抽出部２４）とを含み、前記提示手段は、前記第１の利用者に対して抽出された前記コンテンツを提示する。
【００３１】
請求項７に記載の情報処理装置は、前記コンテンツ分類手段によって前記メタデータが分類される第１のクラスタのそれぞれに対してキーワードを設定する設定手段（例えば、図１のキーワード設定部１３）と、前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段（例えば、図１の選択理由生成部２７）とをさらに含み、前記提示手段は、前記理由文も提示する。
【００３２】
請求項８に記載の情報処理装置は、コンテンツのメタデータを複数の第２のクラスタのいずれかに分類し、第２のクラスタに前記階層を割り当てるメタデータ分類手段（例えば、図１３のメタデータクラスタリング部２０１）をさらに含み、前記コンテンツ分類手段（例えば、図１３の楽曲クラスタリング部２０２）は、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第１のクラスタのいずれかに分類する。
【００３３】
請求項９に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第１のクラスタ単位で示す嗜好情報を生成する生成手段（例えば、図１の嗜好ベクトル生成部１９）をさらに含み、前記選択手段は、全部の前記階層の全部の前記第１のクラスタのうち、前記嗜好情報で示される前記第１のクラスタであって、最も多くの前記第１のクラスタに分類されているコンテンツを選択する。
【００３４】
請求項１０に記載の情報処理方法および請求項１１に記載のプログラムは、コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し（例えば、図６のステップＳ１）、前記利用者のコンテンツに対する履歴情報を管理し（例えば、図６のステップＳ１１）、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し（例えば、図６のステップＳ１４）、選択された前記コンテンツを提示する（例えば、図６のステップＳ１７）ステップを含む。
【００３５】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００３６】
図１は本発明の一実施の形態である推薦システムの構成例を示している。この推薦システム１は、例えばインタネット上に開設された楽曲データの販売サイトにおいて、利用者の履歴情報（楽曲データの購入、試聴、検索、保有などの情報）を管理し、CF法を用いて推薦する楽曲を選択し、利用者に提示するものである。なお、推薦システム１は、楽曲以外のコンテンツ、例えばテレビジョン番組、映画、書籍などを販売する販売サイトにも適用することが可能である。
【００３７】
推薦システム１は、利用者に推薦して販売するための数多くの楽曲データ（以下、単に楽曲とも記述する）のメタデータが記録されている楽曲データベース（ＤＢ）１１、楽曲データベース１１に記録されている各楽曲のメタデータを基に、各楽曲をクラスタリングして各楽曲のクラスタ情報を生成するクラスタリング部１２、各クラスタ層とクラスタ層における各クラスタの特徴をそれぞれ示すキーワードを設定するキーワード設定部１３、および、各楽曲のクラスタリング結果を保持するクラスタリング済データベース（ＤＢ）１４から構成される。
【００３８】
クラスタリング済ＤＢ１４には、クラスタリング結果として、各クラスタに属する楽曲を示すクラスタ−楽曲対応表１５と、各楽曲が属するクラスタを示す楽曲−クラスタ対応表１６が保持されている。
【００３９】
さらに、推薦システム１は、各利用者の履歴情報を管理している利用者履歴情報データベース（ＤＢ）１７、利用者情報に基づいて推薦候補となる複数の楽曲を選択する推薦候補選択部１８、選択された複数の推薦候補の中から１楽曲を選択する楽曲選択部２５、選択された楽曲が推薦される利用者にとって新規性のあるものであるか否かを判定する新規性判定部２６、選択された楽曲を利用者に提示するときの推薦理由文を生成する選択理由生成部２７、および、選択された楽曲と推薦理由文を利用者に提示する提示部２８から構成される。
【００４０】
推薦候補選択部１８は、嗜好ベクトル生成部１９、利用者グループ化部２０、類似利用者検出部２１、差分検出部２２、推薦クラスタ決定部２３、および抽出部２４を含む。
【００４１】
楽曲ＤＢ１１は、音楽ＣＤに収録されている楽曲のメタデータを供給するインタネット上のデータサーバであるCDDB(CD Data Base)やMusic Naviなどと同様、推薦して販売する楽曲のメタデータを保持している。
【００４２】
クラスタリング部１２は、楽曲ＤＢ１１の全ての楽曲に対し、楽曲のメタデータの各項目（アーティスト名、ジャンル、アルバム、アーティストレビュー、楽曲レビュー、タイトル、テンポ、ビート、リズムなど）あるいはそれらの組み合わせ（テンポ、ビート、リズムなど）を基にして、図２に示すようなクラスタ層（第１乃至ｎ層）を作り、楽曲を各クラスタ層に設けられる複数のクラスタのいずれか、あるいは複数に分類する（クラスタリングする）。
【００４３】
ここでは楽曲を例に説明されているが、アーティスト、アルバムに対しても同様に多くのメタを使ってそれぞれ多層にクラスタリングする。楽曲推薦、アーティスト推薦、アルバム推薦のために、それぞれ楽曲用多層クラスタ、アーティスト用多層クラスタ、アルバム用多層クラスタを用いる。
【００４４】
クラスタリングはいかなる手法を用いてもよいが、クラスタ層毎に最適なクラスタリング手法、距離尺度を選ぶようにする。例えば、メタデータの実情報がテンポなどの数値属性であるならばそのまま、タイトルなどの名義属性の場合は主成分分析等の数量化手法を用いて数値にして、ユークリッド距離などの距離尺度を定義してクラスタリングすることになる。代表的なクラスタリング手法としては、K-means法、階層クラスタリング法（群平均法、最遠法、ウォード法）、ソフトクラスタリング法などを挙げることができる。
【００４５】
この際、嗜好距離を反映したクラスタリング（例えば、制約付きクラスタリング）によって実施することが望ましい。そのためには、事前調査により部分的な正解集（嗜好的に近い実情報の集合、遠い実情報の集合など）を作り、それに適合する数値表現、距離、クラスタリング手法を用いるものとする。またさらに、形成される各クラスタ層の独立性が高くなるクラスタリング手法（すなわち、特性の異なるクラスタリング手法）を選ぶことが望ましい。
【００４６】
なお、１つの実情報を同一クラスタ層の複数のクラスタに分類してもよい。同一クラスタ層に存在するクラスタ間の距離（類似の程度を示す）は既知であるものとする。このクラスタリングの手法については後述する。そして、メタデータの代わりに楽曲の特徴を示す情報として、メタデータの各項目の実情報を分類したクラスタのクラスタＩＤ（図２におけるＣＬ１１など）から成るクラスタ情報を生成してクラスタリング済ＤＢ１４に出力する。
【００４７】
なお、分類に適したクラスタが存在しない場合、新たにクラスタを新設してもよい。各クラスタのサイズは任意であって複数の実情報を包含できるものである。なお、単一の実情報だけしか分類することができないクラスタを設けてもよい。この場合、当該クラスタのクラスタＩＤに唯一分類可能な実情報のＩＤ（アーティストＩＤ、アルバムＩＤ、タイトルＩＤ）を用いてもよい。
【００４８】
クラスタリング済ＤＢ１４は、クラスタリング部１２によって生成された各楽曲のクラスタ情報に基づいて、クラスタ−楽曲対応表１５と楽曲−クラスタ対応表１６を生成して保持している。また、クラスタリング済ＤＢ１４は、キーワード設定部１３によって設定された各クラスタ層や各クラスタに対して設定されたキーワードも保持している。
【００４９】
図３は楽曲−クラスタ対応表１６の一例を示している。同図においては、例えば、楽曲ＩＤ＝ABC123の楽曲のクラスタ情報は、（ＣＬ１２、ＣＬ２１、ＣＬ３５，ＣＬ４７，ＣＬ５２，…，ＣＬｎ２）であることを示している。また例えば、楽曲ＩＤ＝CTH863の楽曲のクラスタ情報は、クラスタＩＤ（ＣＬ１１、ＣＬ２５、ＣＬ３１，ＣＬ４２，ＣＬ５３，…，ＣＬｎ１）であることを示している。
【００５０】
図４は、図３に示された楽曲−クラスタ対応表１６に応じたクラスタ−楽曲対応表１５の一例を示している。同図においては、例えば、クラスタＩＤ＝ＣＬ１１には、楽曲ＩＤ＝CTH863が対応することを示している。また例えば、クラスタＩＤ＝ＣＬ２１には、楽曲ＩＤ＝ABC123が対応することを示している。さらに例えば、クラスタＩＤ＝ＣＬ３２には、楽曲ＩＤ＝XYZ567が対応することを示している。
【００５１】
なお、クラスタリング部１２、キーワード設定部１３、およびクラスタリング済ＤＢ１４の処理は、楽曲ＤＢ１１に新たな楽曲のメタデータが追加される毎に実行しておく必要がある。
【００５２】
図１に戻る。利用者履歴情報ＤＢ１７には、各利用者が当該販売サイトにて購入、試聴、または検索した楽曲、あるいは、いずれかで購入し既に保有していることを申告した楽曲を示す履歴情報が保持されている。また、利用者履歴情報ＤＢ１７には、嗜好ベクトル生成部１９によって生成される各利用者の嗜好ベクトルが保持されている。さらに、利用者履歴情報ＤＢ１７には、利用者グループ化部２０による利用者のグループ化結果、すなわち、各利用者がどの利用者グループに属するかを示す情報が保持されている。
【００５３】
嗜好ベクトル生成部１９は、利用者履歴情報ＤＢ１７に保持されている各利用者の履歴情報に基づき、各利用者に対して、全てのクラスタをそれぞれ１次元とする多次元の嗜好ベクトルを生成し、利用者履歴情報ＤＢ１７に出力する。具体的には、利用者の履歴情報にある各楽曲について、クラスタリング済ＤＢ１４の楽曲−クラスタ対応表１６を参照し、楽曲の属するクラスタに対応する嗜好ベクトルの次元に所定の値を加算する。生成された各利用者の嗜好ベクトルは、利用者履歴情報ＤＢ１７で管理される。楽曲の購入などによって利用者の履歴情報が更新されれば、嗜好ベクトルも更新されることになる。
【００５４】
ここで説明の便宜上、全てのクラスタが図５に示すにように、第１層には３クラスタＣＬ１１，ＣＬ１２，ＣＬ１３、第２層には４クラスタＣＬ２１，ＣＬ２２，ＣＬ２３，ＣＬ２４、第３層には３クラスタＣＬ３１，ＣＬ３２，ＣＬ３３、第４層には３クラスタＣＬ４１，ＣＬ４２，ＣＬ４３のみが存在していると仮定する。この場合、嗜好ベクトルは１３次元である。
【００５５】
例えば、利用者Ａの履歴情報に２楽曲を購入した記録があり、１つ目の楽曲の属するクラスタＩＤがＣＬ１１，ＣＬ２２，ＣＬ３３，ＣＬ４１であれば、これらに対応する次元の値にそれぞれ１が加算される。また、２つ目の楽曲の属するクラスタＩＤがＣＬ１２，ＣＬ２４，ＣＬ３２，ＣＬ４３であれば、これらに対応する次元の値にそれぞれ１が加算される。そして、利用者Ａの嗜好ベクトル（１，１，０，０，１，０，１，０，１，１，１，０，１）が生成される。
【００５６】
また例えば、利用者Ｘの履歴情報に３楽曲を購入した記録があり、１つ目の楽曲の属するクラスタＩＤがＣＬ１１，ＣＬ２２，ＣＬ３２，ＣＬ４３であれば、これらに対応する次元の値にそれぞれ１が加算される。また、２つ目の楽曲の属するクラスタＩＤがＣＬ１２，ＣＬ２２，ＣＬ３３，ＣＬ４２であれば、これらに対応する次元の値にそれぞれ１が加算される。さらに、３つ目の楽曲の属するクラスタＩＤがＣＬ１３，ＣＬ２４，ＣＬ３３，ＣＬ４１であれば、これらに対応する次元の値にそれぞれ１が加算される。そして、利用者Ｘの嗜好ベクトル（１，１，１，０，２，０，１，０，１，２，１，１，１）が生成される。
【００５７】
なお、各次元への加算値は履歴情報の種別（すなわち、購入、試聴、検索、または保有）に応じて変更するようにしてもよい。例えば、購入または保有であれば１を加算し、試聴であれば０．５を加算し、検索であれば０．３を加算するようにしてもよい。
【００５８】
図１に戻る。利用者グループ化部２０は、利用者履歴情報ＤＢ１７に保持されている各利用者の嗜好ベクトルの類似性に基づき、全利用者をグループ化する。ただし、多次元の嗜好ベクトルの類似性を判定する処理を容易にするため、各利用者の嗜好ベクトルの各次元の値を２値化する。すなわち、各次元の値が１以上であるときには１に置換し、０であるときには０のままとする。このように、嗜好ベクトルの各次元の値を２値化すると、２値化しない場合に比較して類似性の判定これに要する演算量を減少させることができ、容易にグループ化を行うことができる。このグループ化結果は、利用者履歴情報ＤＢ１７で管理される。
【００５９】
類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている各利用者の履歴情報を比較することにより、楽曲が推薦される利用者と履歴情報が類似している他の利用者を検出する。また、類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている各利用者の嗜好ベクトルを比較することにより、楽曲が推薦される利用者と嗜好ベクトルが類似している他の利用者を検出する。差分検出部２２は、利用者履歴情報ＤＢ１７に保持されている各利用者の履歴情報に基づき、楽曲が推薦される利用者と、類似利用者検出部２１によって検出された他の利用者との履歴情報の差分を検出する。推薦クラスタ決定部２３は、楽曲が推薦される利用者と、類似利用者検出部２１によって検出された他の利用者との嗜好ベクトルの差に基づいて推薦クラスタを決定する。抽出部２４は、類似利用者検出部２１乃至推薦クラスタ決定部２３の処理結果と、クラスタリング済ＤＢ１４に基づき、推薦候補となる楽曲を抽出する。
【００６０】
楽曲選択部２５は、抽出された複数の楽曲の中から所定の条件に従って１楽曲を選択する。例えば、より多くの推薦クラスタに属しているもの、予め設定されている優先順位が高いクラスタ層における推薦クラスタに属しているもの、またはランダムで１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。新規性判定部２６は、楽曲が推薦される利用者の嗜好ベクトルに基づき、選択された楽曲が属するクラスタの、当該嗜好ベクトルに対する重複度が所定の割合（例えば３０％）以上である場合には新規性がないものと判定し、所定の割合未満である場合には新規性があるものと判定し、判定結果を選択理由生成部２７に出力する。
【００６１】
選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても例えば、新規性のあるものについては「意外な」、新規性のないものについては「いつもの」あるいは「なじみの」などの文言を含めて選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。
【００６２】
なお、選択された楽曲のレビューテキストをそのまま選択理由文として引用したり、選択された楽曲のレビューテキストから抽出した単語を用いて選択理由文を生成してもよい。なお、レビューテキストから選択理由文に用いる単語を抽出するにはTf/idf法を適用することができる。
【００６３】
提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。
【００６４】
次に、推薦システム１の動作について説明する。まず、楽曲を推薦する処理の準備であるオフライン時の前処理について、図６のフローチャートを参照して説明する。
【００６５】
ステップＳ１において、クラスタリング部１２は、楽曲ＤＢ１１の全ての楽曲を、楽曲のメタデータの各項目クラスタ層（第１乃至ｎ層）のいずれかに分類し、各項目の実情報を分類したクラスタ層に設けられる複数のクラスタのいずれかに分類（クラスタリング）する。そして、クラスタリング部１２は、メタデータの代わりに楽曲の特徴を示す情報として、メタデータの各項目の実情報を分類したクラスタのクラスタＩＤから成るクラスタ情報を生成してクラスタリング済ＤＢ１４に出力する。なお、既にクラスタリング済の楽曲については、クラスタリングを省略し、未クラスタリング済の楽曲についてのみ、クラスタリングするようにしてもかまわない。クラスタリング済ＤＢ１４は、クラスタリング部１２によって生成された各楽曲のクラスタ情報に基づいて、クラスタ−楽曲対応表１５と楽曲−クラスタ対応表１６を生成する。
【００６６】
ステップＳ２において、推薦候補選択部１８の嗜好ベクトル生成部１９は、利用者履歴情報ＤＢ１７に保持されている各利用者の履歴情報に基づき、各利用者に対して嗜好ベクトルを生成し、利用者履歴情報ＤＢ１７に出力する。ステップＳ３において、利用者グループ化部２０は、利用者履歴情報ＤＢ１７に保持されている各利用者の嗜好ベクトルの類似性に基づき、全利用者をグループ化する。ただし、多次元の嗜好ベクトルの類似性を判定する処理を容易にするため、各利用者の嗜好ベクトルの各次元の値を２値化する。そして、このグループ化結果を利用者履歴情報ＤＢ１７に出力する。以上で、オフライン時の前処理は終了される。
【００６７】
このように、楽曲ＤＢ１１に保持されている全楽曲のクラスタリングと、各利用者の嗜好ベクトルの生成、および利用者のグループ化を前処理として実施することにより、後述する第１乃至７の推薦処理を速やかに実行することができる。なお、第１乃至７の推薦処理のうち、利用者のグループ情報を利用しないものがあるので、利用者のグループ情報を利用しない推薦処理のみを実行するときには、ステップＳ３の処理を省略してもかまわない。
【００６８】
次に第１の推薦処理について、図７のフローチャートを参照して説明する。以下においては、楽曲が推薦される利用者を利用者Ａと記述する。この処理は、例えば、利用者Ａが当該販売サイトにアクセスしたときに開始される。
【００６９】
ステップＳ１１において、類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている利用者Ａの履歴情報と他の利用者の履歴情報を比較することにより、利用者Ａと履歴情報が最も類似している他の利用者Ｘを検出する。ステップＳ１２において、差分検出部２２は、利用者履歴情報ＤＢ１７に保持されている利用者Ａと利用者Ｘの履歴情報に基づき、利用者Ｘが有している（過去に購入した、または保有している）楽曲であって、利用者Ａが有していない楽曲を検出する。なお、この条件を満たす楽曲が複数存在する場合、そのうちの１楽曲を例えばランダムに選択する。検出された楽曲を楽曲ａとする。
【００７０】
ステップＳ１３において、推薦クラスタ決定部２３は、クラスタリング済ＤＢ１４の楽曲−クラスタ対応表１６を参照し、楽曲ａが属する各クラスタ層のクラスタを特定する。ステップＳ１４において、抽出部２４は、クラスタリング済ＤＢ１４のクラスタ−楽曲対応表１５を参照し、ステップＳ１３の処理で特定された全てのクラスタに共通して分類されている楽曲を抽出する。ここで抽出された楽曲を推薦候補とする。推薦候補は複数あってかまわない。なお、ステップＳ１３の処理で特定した全てのクラスタに共通して分類されている楽曲が存在しない場合、ステップＳ１３の処理で特定したクラスタのうち、できるだけ多くのクラスタに共通して分類されている楽曲を抽出し、推薦候補とする。
【００７１】
ステップＳ１５において、楽曲選択部２５は、推薦候補の楽曲のうち、ステップＳ１２で検出した楽曲ａとクラスタ情報が最も類似している１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。ステップＳ１６において、新規性判定部２６は、利用者Ａの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部２７に出力する。選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。ステップＳ１７において、提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。以上で第１の推薦処理が終了される。
【００７２】
次に第２および３の推薦処理について、図８のフローチャートを参照して説明する。まず第２の推薦処理について説明する。この処理は、例えば、利用者Ａが当該販売サイトにアクセスしたときに開始される。
【００７３】
ステップＳ２１において、類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている利用者Ａの嗜好ベクトルと他の利用者の嗜好ベクトルを比較することにより、利用者Ａと嗜好ベクトルが最も類似している他の利用者Ｘを検出する。なお、利用者Ａの嗜好ベクトルと他の利用者の嗜好ベクトルとの類似は、例えば両者の余弦相関値を算出して判断する。
【００７４】
ステップＳ２２において、差分検出部２２は、利用者Ａの嗜好ベクトルにおいては値が０であり、利用者Ｘの嗜好ベクトルにおいては０以外の値である嗜好ベクトルの次元を検出し、検出した次元に相当するクラスタを推薦クラスタに決定する。
【００７５】
例えば、利用者Ａの嗜好ベクトルが図５Ａに示す（１，１，０，０，１，０，１，０，１，１，１，０，１）であり、利用者Ｘの嗜好ベクトルが図５Ｂに示す（１，１，１，０，２，０，１，０，１，２，１，１，１）である場合、図５Ｂに斜線で示すように、クラスタＣＬ１３、およびＣＬ４２が推薦クラスタに決定される。
【００７６】
ステップＳ２３において、抽出部２４は、利用者履歴情報ＤＢ１７とクラスタリング済ＤＢ１４のクラスタ−楽曲対応表１５を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Ｘが有しており、利用者Ａが有していないものを抽出して推薦候補とする。
【００７７】
ステップＳ２４において、楽曲選択部２５は、推薦候補の楽曲のうち、以下の３方法のいずれか、または３方法を組み合わせた方法により、１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。１つ目の方法は、より多くの推薦クラスタに共通して属している楽曲を選択する方法である。２つ目の方法は、クラスタ層に予め優先順位を付与し、より優先順位の高いクラスタ層に属する推薦クラスタに分類されている楽曲を選択する方法である。３つ目の方法は、ランダムに選択する方法である。
【００７８】
ステップＳ２５において、新規性判定部２６は、利用者Ａの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部２７に出力する。選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。ステップＳ２６において、提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。以上で第２の推薦処理が終了される。
【００７９】
次に第３の推薦処理について説明する。第３の推薦処理は、上述した第２の推薦処理におけるステップＳ２３の処理で、推薦クラスタに分類されている全ての楽曲のうち、利用者Ａが有していないものを抽出して推薦候補とするようにする。すなわち、利用者Ｘが有していないものも推薦候補とすることができる。このほかの処理については第２の推薦処理と同様であるので、その説明は省略する。
【００８０】
次に第４の推薦処理について、図９のフローチャートを参照して説明する。この処理は、例えば、利用者Ａが当該販売サイトにアクセスしたときに開始される。
【００８１】
ステップＳ４１において、類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている利用者Ａのグループ情報に基づき、利用者Ａと同じグループに属する他の利用者Ｘをランダムに決定する。ステップＳ４２において、差分検出部２２は、利用者履歴情報ＤＢ１７に保持されている利用者Ａと利用者Ｘの履歴情報に基づき、利用者Ｘが有している楽曲であって、利用者Ａが有していない楽曲を検出する。なお、この条件を満たす楽曲が複数存在する場合、そのうちの１楽曲を例えばランダムに選択する。検出された楽曲を楽曲ａとする。
【００８２】
ステップＳ４３において、推薦クラスタ決定部２３は、クラスタリング済ＤＢ１４の楽曲−クラスタ対応表１６を参照し、楽曲ａが属する各クラスタ層のクラスタを特定する。ステップＳ４４において、抽出部２４は、クラスタリング済ＤＢ１４のクラスタ−楽曲対応表１５を参照し、ステップＳ４３の処理で特定された全てのクラスタに共通して分類されている楽曲を抽出する。ここで抽出された楽曲を推薦候補とする。推薦候補は複数あってかまわない。なお、ステップＳ４３の処理で特定した全てのクラスタに共通して分類されている楽曲が存在しない場合、ステップＳ４３の処理で特定したクラスタのうち、できるだけ多くのクラスタに共通して分類されている楽曲を抽出し、推薦候補とする。
【００８３】
ステップＳ４５において、楽曲選択部２５は、推薦候補の楽曲のうち、ステップＳ４２で検出した楽曲ａとクラスタ情報が最も類似している１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。ステップＳ４６において、新規性判定部２６は、利用者Ａの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部２７に出力する。選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。ステップＳ４７において、提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。以上で第４の推薦処理が終了される。
【００８４】
第４の推薦処理においては、オフライン時の前処理によってグループ化されている利用者のグループ情報を利用するので、利用者Ａの履歴に類似した利用者Ｘを速やかに決定することができる。
【００８５】
次に第５および６の推薦処理について、図１０のフローチャートを参照して説明する。まず第５の推薦処理について説明する。この処理は、例えば、利用者Ａが当該販売サイトにアクセスしたときに開始される。
【００８６】
ステップＳ５１において、類似利用者検出部２１は、利用者履歴情報ＤＢ１７に保持されている利用者Ａのグループ情報に基づき、利用者Ａと同じグループに属する他の利用者Ｘをランダムに決定する。
【００８７】
ステップＳ５２において、差分検出部２２は、利用者Ａの嗜好ベクトルにおいては値が０であり、利用者Ｘの嗜好ベクトルにおいては０以外の値である嗜好ベクトルの次元を検出し、検出した次元に相当するクラスタを推薦クラスタに決定する。
【００８８】
ステップＳ５３において、抽出部２４は、利用者履歴情報ＤＢ１７とクラスタリング済ＤＢ１４のクラスタ−楽曲対応表１５を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Ｘが有しており、利用者Ａが有していないものを抽出して推薦候補とする。
【００８９】
ステップＳ５４において、楽曲選択部２５は、推薦候補の楽曲のうち、以下の３方法のいずれか、または３方法を組み合わせた方法により、１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。１つ目の方法は、より多くの推薦クラスタに共通して属している楽曲を選択する方法である。２つ目の方法は、クラスタ層に予め優先順位を付与し、より優先順位の高いクラスタ層に属する推薦クラスタに分類されている楽曲を選択する方法である。３つ目の方法は、ランダムに選択する方法である。
【００９０】
ステップＳ５５において、新規性判定部２６は、利用者Ａの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部２７に出力する。選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。ステップＳ５６において、提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。以上で第５の推薦処理が終了される。
【００９１】
次に第６の推薦処理について説明する。第６の推薦処理は、上述した第５の推薦処理におけるステップＳ５３の処理で、推薦クラスタに分類されている全ての楽曲のうち、利用者Ａが有していないものを抽出して推薦候補とするようにする。すなわち、利用者Ｘが有していないものも推薦候補とすることができる。このほかの処理については第５の推薦処理と同様であるので、その説明は省略する。
【００９２】
第５および６の推薦処理においては、オフライン時の前処理によってグループ化されている利用者のグループ情報を利用するので、利用者Ａの履歴に類似した利用者Ｘを速やかに決定することができる。
【００９３】
次に第７の推薦処理について、図１１のフローチャートを参照して説明する。まず第７の推薦処理について説明する。この処理は、利用者Ａの履歴情報が極端に少ない場合、他の利用者が少ない場合などに適し、例えば、利用者Ａが当該販売サイトにアクセスしたときに開始される。
【００９４】
ステップＳ６１において、差分検出部２２は、利用者Ａの嗜好ベクトルの各次元のうち、その値が所定の値以上のものを検出し、その次元に相当するクラスタを推薦クラスタに決定する。
【００９５】
ステップＳ６２において、抽出部２４は、利用者履歴情報ＤＢ１７とクラスタリング済ＤＢ１４のクラスタ−楽曲対応表１５を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Ａが有していないものを抽出して推薦候補とする。
【００９６】
ステップＳ６３において、楽曲選択部２５は、推薦候補の楽曲のうち、最も多くの推薦クラスタに属する１楽曲を選択し、選択結果を新規性判定部２６、および選択理由生成部２７に出力する。なお、最も多くの推薦クラスタに属する楽曲が複数存在する場合、その中から例えばランダムに１楽曲を選択する。
【００９７】
ステップＳ６４において、新規性判定部２６は、利用者Ａの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部２７に出力する。選択理由生成部２７は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済ＤＢ１４から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部２６からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲ＩＤとともに提示部２８に出力する。ステップＳ６５において、提示部２９は、選択された楽曲に関する情報を楽曲ＤＢから取得して、生成された選択理由文とともに利用者側に提示する。以上で第７の推薦処理が終了される。
【００９８】
上述した第１乃至７の推薦処理によれば、利用者の履歴情報を、各クラスタを１次元とする嗜好ベクトルに置き換えてCF手法を適用するので、利用者Ａに対する楽曲の推薦が楽曲ＤＢ１１に存在する全楽曲のうちの一部に集中してしまうことを抑止することができる。また、履歴情報が少ない利用者に対しても楽曲を推薦することができ、いわゆるコールドスタート問題を回避することができる。さらに、推薦された楽曲が選択された理由を利用者Ａに提示することができ、例えば、利用者Ａは、推薦された楽曲が自身にとって新規性のあるものであるのか否かを知ることができる。
【００９９】
なお、本発明は、楽曲を推薦する場合のみならず、楽曲以外のコンテンツ、例えばテレビジョン番組、映画、書籍などを販売する販売サイトにも適用することが可能である。
【０１００】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１２に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１０１】
このパーソナルコンピュータ１００は、CPU(Central Processing Unit)１０１を内蔵している。CPU１０１にはバス１０４を介して、入出力インタフェース１０５が接続されている。バス１０４には、ROM(Read Only Memory)１０２およびRAM(Random Access Memory)１０３が接続されている。
【０１０２】
入出力インタフェース１０５には、利用者が操作コマンドを入力するキーボード、マウス等の入力デバイスよりなる入力部１０６、画面を表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等のディスプレイよりなる出力部１０７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１０８、およびモデム、LAN（Local Area Network）アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部１０９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどの記録媒体１１１に対してデータを読み書きするドライブ１１０が接続されている。
【０１０３】
このパーソナルコンピュータ１００に上述した一連の処理を実行させるプログラムは、記録媒体１１１に格納された状態でパーソナルコンピュータ１００に供給され、ドライブ１１０によって読み出されて記憶部１０８に内蔵されるハードディスクドライブにインストールされている。記憶部１０８にインストールされているプログラムは、入力部１０６に入力される利用者からのコマンドに対応するCPU１０１の指令によって、記憶部１０８からRAM１０３にロードされて実行される。
【０１０４】
図１３は、本発明の一実施の形態の推薦システム１の他の構成の例を示すブロック図である。図１３において、図１に示す場合と同様の部分には同一の符号を付してあり、その説明は省略する。
【０１０５】
図１３に示される推薦システム１は、楽曲ＤＢ１１、キーワード設定部１３、クラスタリング済ＤＢ１４、利用者履歴情報ＤＢ１７、推薦候補選択部１８、楽曲選択部２５、新規性判定部２６、選択理由生成部２７、提示部２８、メタデータクラスタリング部２０１、および楽曲クラスタリング部２０２から構成される。
【０１０６】
メタデータクラスタリング部２０１は、楽曲データベース１１に記録されている各楽曲のメタデータをクラスタリングする。すなわち、メタデータクラスタリング部２０１は、コンテンツである楽曲のメタデータを複数のクラスタのいずれかに分類し、クラスタに階層を割り当てる。
【０１０７】
メタデータクラスタリング部２０１は、各楽曲のメタデータのクラスタリングの結果を楽曲クラスタリング部２０２に供給する。
【０１０８】
楽曲クラスタリング部２０２は、メタデータクラスタリング部２０１による各楽曲のメタデータのクラスタリングの結果を基に、クラスタリング部１２と同様に、各楽曲をクラスタリングして各楽曲のクラスタ情報を生成する。すなわち、楽曲クラスタリング部２０２は、各楽曲のクラスタリングの結果に応じたクラスタ情報を生成してクラスタリング済ＤＢ１４に出力する。
【０１０９】
また、図１３に示される推薦システム１の推薦候補選択部１８は、嗜好ベクトル生成部１９、利用者グループ化部２０、差分検出部２２、推薦クラスタ決定部２３、抽出部２４、および類似利用者検出部２０３を含む。
【０１１０】
類似利用者検出部２０３は、利用者履歴情報ＤＢ１７に保持されている各利用者の嗜好ベクトルを比較することにより、楽曲が推薦される利用者と嗜好ベクトルが類似している他の利用者を検出する。より詳細には、類似利用者検出部２０３は、利用者の嗜好情報の一例である嗜好ベクトルを正規化し、正規化された各利用者の嗜好ベクトルから、利用者のそれぞれについて階層毎の重みを計算し、階層毎の重みと嗜好ベクトルとから、利用者間の嗜好の類似の度合いを示す類似度を計算し、計算された類似度から、第１の利用者と嗜好が類似している第２の利用者を検出する。
【０１１１】
次に、図１４のフローチャートを参照して、図１３に示される推薦システム１における、楽曲を推薦する処理の準備であるオフライン時の前処理の他の例について説明する。
【０１１２】
ステップＳ２０１において、メタデータクラスタリング部２０１は、楽曲ＤＢ１１から楽曲のメタデータを取得して、取得したメタデータの次元を圧縮する。例えば、ステップＳ２０１において、メタデータクラスタリング部２０１は、楽曲ＤＢ１１から取得した楽曲のメタデータの次元を、LSA（the latent semantic analysis）、PLSA（the probabilistic latent semantic analysis）、または数量化III類などの手法により圧縮する。
【０１１３】
なお、ステップＳ２０１において、メタデータクラスタリング部２０１は、楽曲のメタデータをベクトル化するようにしてもよい。
【０１１４】
ステップＳ２０２において、メタデータクラスタリング部２０１は、各楽曲のメタデータをクラスタリングする。例えば、ステップＳ２０２において、メタデータクラスタリング部２０１は、各楽曲のメタデータをソフトクラスタリングする。
【０１１５】
より具体的には、例えば、図１５で示されるように、メタデータクラスタリング部２０１は、それぞれの階層内において、アイテムの各クラスタへの帰属重みの和が１となるように、各楽曲のメタデータをソフトクラスタリングする。
【０１１６】
例えば、ABC123である楽曲ＩＤで特定される楽曲のメタデータの第１階層における第１のクラスタ、第２のクラスタ、第３のクラスタ、および第４のクラスタへの帰属重みは、それぞれ、０．０、０．８、０．０、および０．２である。ABC123である楽曲ＩＤで特定される楽曲のメタデータの第２階層における第５のクラスタ、第６のクラスタ、第７のクラスタ、および第８のクラスタへの帰属重みは、それぞれ、０．４、０．６、０．０、および０．０である。ABC123である楽曲ＩＤで特定される楽曲のメタデータの第３階層における第９のクラスタ、第１０のクラスタ、および第１１のクラスタへの帰属重みは、それぞれ、０．０、０．０、および１．０である。また、ABC123である楽曲ＩＤで特定される楽曲のメタデータの第ｎ階層における４つのクラスタのそれぞれへの帰属重みは、それぞれ、１．０、０．０、０．０、および０．０である。
【０１１７】
例えば、CTH863である楽曲ＩＤで特定される楽曲のメタデータの第１階層における第１のクラスタ、第２のクラスタ、第３のクラスタ、および第４のクラスタへの帰属重みは、それぞれ、１．０、０．０、０．０、および０．０である。CTH863である楽曲ＩＤで特定される楽曲のメタデータの第２階層における第５のクラスタ、第６のクラスタ、第７のクラスタ、および第８のクラスタへの帰属重みは、それぞれ、０．０、０．５、０．５、および０．０である。CTH863である楽曲ＩＤで特定される楽曲のメタデータの第３階層における第９のクラスタ、第１０のクラスタ、および第１１のクラスタへの帰属重みは、それぞれ、０．７、０．３、および０．０である。また、CTH863である楽曲ＩＤで特定される楽曲のメタデータの第ｎ階層における４つのクラスタのそれぞれへの帰属重みは、それぞれ、０．０、０．８、０．２、および０．０である。
【０１１８】
例えば、XYZ567である楽曲ＩＤで特定される楽曲のメタデータの第１階層における第１のクラスタ、第２のクラスタ、第３のクラスタ、および第４のクラスタへの帰属重みは、それぞれ、０．０、０．４、０．６、および０．０である。XYZ567である楽曲ＩＤで特定される楽曲のメタデータの第２階層における第５のクラスタ、第６のクラスタ、第７のクラスタ、および第８のクラスタへの帰属重みは、それぞれ、０．０、０．０、０．０、および１．０である。XYZ567である楽曲ＩＤで特定される楽曲のメタデータの第３階層における第９のクラスタ、第１０のクラスタ、および第１１のクラスタへの帰属重みは、それぞれ、０．９、０．０、および０．１である。また、XYZ567である楽曲ＩＤで特定される楽曲のメタデータの第ｎ階層における４つのクラスタのそれぞれへの帰属重みは、それぞれ、０．３、０．０、０．０、および０．７である。
【０１１９】
なお、各楽曲のメタデータのソフトクラスタリングは、それぞれの階層内において、アイテム、すなわち楽曲の各クラスタへの帰属重みの和が１となるものに限られない。また、各アイテムが各階層において、いずれのクラスタに属さないものとしてもよい。
【０１２０】
ステップＳ２０３において、メタデータクラスタリング部２０１は、クラスタの層を割り当てる。
【０１２１】
ここで、図１６および図１７を参照して、メタデータのクラスタリングおよびクラスタの層の割り当てについて説明する。図１６は、メタデータの例を示す図である。図１６で示されるメタデータは、簡単のため、０または１のいずれかの値のカテゴリカルデータとされている。
【０１２２】
高次の分類としてのメタグループ１には、メタデータ１、メタデータ２、およびメタデータ３が属し、高次の分類としてのメタグループ２には、メタデータ４、メタデータ５、およびメタデータ６が属する。例えば、メタグループ１には、アーティストに関するメタデータが属し、メタデータ１は、アーティストの外観を示し、メタデータ２は、グループであることを示す。また、例えば、メタグループ２には、ジャンルに関するメタデータが属し、メタデータ４は、ポップスであることを示し、メタデータ５は、ロックであることを示す。
【０１２３】
図１６に示す例において、ABC123である楽曲ＩＤで特定される楽曲のメタデータ１乃至メタデータ６は、それぞれ、１，１，１，１，１，１であり、CTH863である楽曲ＩＤで特定される楽曲のメタデータ１乃至メタデータ６は、それぞれ、０，１，０，０，１，１であり、XYZ567である楽曲ＩＤで特定される楽曲のメタデータ１乃至メタデータ６は、それぞれ、１，１，１，１，１，１である。また、EKF534である楽曲ＩＤで特定される楽曲のメタデータ１乃至メタデータ６は、それぞれ、１，０，１，０，０，１であり、OPQ385である楽曲ＩＤで特定される楽曲のメタデータ１乃至メタデータ６は、それぞれ、１，０，１，１，０，０である。
【０１２４】
このとき、ABC123である楽曲ＩＤで特定される楽曲乃至OPQ385である楽曲ＩＤで特定される楽曲についての、メタデータ１をベクトルとみなす。同様に、ABC123である楽曲ＩＤで特定される楽曲乃至OPQ385である楽曲ＩＤで特定される楽曲についての、メタデータ２乃至メタデータ６のそれぞれをベクトルとみなす。すなわち、複数の楽曲についての１つのメタデータの値をベクトルとみなす。
【０１２５】
このベクトル同士の距離に注目する。
【０１２６】
図１６で示される例において、ベクトルとみなされたメタデータ１、メタデータ３、メタデータ４が、マンハッタン距離１以内のクラスタに、また、メタデータ２、メタデータ５、メタデータ６が、マンハッタン距離１以内の他のクラスタに、まとまっている。
【０１２７】
そこで、これらのクラスタを、新たなメタデータの階層とする。すなわち、階層のそれぞれの層に、より近いメタデータが割り付けられる。
【０１２８】
図１７は、このようにクラスタリングされ、層が割り付けられたメタデータの例を示す。図１７に示す例において、第１層には、メタデータ１、メタデータ３、およびメタデータ４が属し、第２層には、メタデータ２、メタデータ５、およびメタデータ６が属する。
【０１２９】
このように、相関の高いメタデータの集まりでそれぞれの層が形成され、その中でコンテンツのクラスタリングが行われるので、ジャンルやアーティストなどをそのまま階層とするような通常の階層分けでは表現しきれない微妙なコンテンツ間の差をクラスタに反映することができる。
【０１３０】
図１４に戻り、ステップＳ２０４において、楽曲クラスタリング部２０２は、層毎に楽曲をクラスタリングする。すなわち、楽曲クラスタリング部２０２は、各コンテンツを、割り当てられた階層のそれぞれにおいて複数のクラスタのいずれかに分類する。
【０１３１】
ステップＳ２０５およびステップＳ２０６は、それぞれ、図６のステップＳ２およびステップＳ３と同様なので、その説明は省略する。
【０１３２】
このようにすることで、メタデータによるコンテンツの表現の詳細度（表現の詳細さの度合い）を保ったまま、データ量および計算量を削減して、コンテンツをクラスタリングすることができる。
【０１３３】
また、以上のように、メタデータを階層化することにより、コンテンツ間の微妙な相違がよく表現されるようにコンテンツをクラスタリングすることができる。
【０１３４】
次に、類似利用者検出部２０３の詳細について説明する。
【０１３５】
図１８は、類似利用者検出部２０３の構成の例を示すブロック図である。類似利用者検出部２０３は、正規化部２３１、重み計算部２３２、および類似度計算部２３３から構成される。
【０１３６】
正規化部２３１は、利用者の嗜好情報の一例である嗜好ベクトルを正規化する。重み計算部２３２は、正規化された各利用者の嗜好ベクトルから、利用者のそれぞれについて階層毎の重みを計算する。類似度計算部２３３は、階層毎の重みと嗜好ベクトルとから、楽曲を推薦しようとする利用者と、他の利用者との嗜好の類似の度合いを示す類似度を計算する。
【０１３７】
次に、図８のステップＳ２１に対応する、類似利用者検出部２０３による、嗜好の類似する利用者Ｘの検出の処理を、図１９のフローチャートを参照して説明する。
【０１３８】
ステップＳ２３１において、正規化部２３１は、利用者それぞれの嗜好ベクトルを正規化する。
【０１３９】
図２０および図２１を参照して、嗜好ベクトルの正規化について説明する。図２０は、嗜好ベクトル生成部１９において生成され、利用者履歴情報ＤＢ１７に保持されている各利用者の嗜好ベクトルの例を示す図である。すなわち、図２０は、正規化される前の嗜好ベクトルの例を示す。
【０１４０】
図２０で示される嗜好ベクトルの要素のうち、最初の４つの要素が第１層に属し、次の４つの要素が第２層に属し、さらに次の３つの要素が第３層に属し、最後の４つの要素が第４層に属する。
【０１４１】
図２０に示す例において、U001であるユーザＩＤで特定される利用者の嗜好ベクトルは、（０．０，２．８，０．０，２．２，０．４，０．６，０．８，０．０，０．５，０．４，０．４，０．０，０．５，０．４，０．０）である。ここで、それぞれ０．０，２．８，０．０，２．２である最初の４つの要素は、第１層に属し、それぞれ０．４，０．６，０．８，０．０である次の４つの要素は、第２層に属し、それぞれ０．５，０．４，０．４であるさらに次の３つの要素は、第３層に属し、それぞれ０．０，０．５，０．４，０．０である最後の４つの要素は、第４層に属する。
【０１４２】
図２０に示す例において、U002であるユーザＩＤで特定される利用者の嗜好ベクトルは、（０．２，０．８，０．５，０．６，０．０，０．５，０．５，０．０，０．７，０．３，０．６，０．０，０．６，０．２，０．０）である。ここで、それぞれ０．２，０．８，０．５，０．６である最初の４つの要素は、第１層に属し、それぞれ０．０，０．５，０．５，０．０である次の４つの要素は、第２層に属し、それぞれ０．７，０．３，０．６であるさらに次の３つの要素は、第３層に属し、それぞれ０．０，０．６，０．２，０．０である最後の４つの要素は、第４層に属する。
【０１４３】
図２０に示す例において、U003であるユーザＩＤで特定される利用者の嗜好ベクトルは、（０．０，２．２，０．１，１．６，０．０，１．０，２．０，１．４，０．０，１．２，０．１，０．３，０．４，０．６，０．７）である。ここで、それぞれ０．０，２．２，０．１，１．６である最初の４つの要素は、第１層に属し、それぞれ０．０，１．０，２．０，１．４である次の４つの要素は、第２層に属し、それぞれ０．０，１．２，０．１であるさらに次の３つの要素は、第３層に属し、それぞれ０．３，０．４，０．６，０．７である最後の４つの要素は、第４層に属する。
【０１４４】
例えば、ステップＳ２３１において、正規化部２３１は、それぞれの層におけるノルムが１になるように、それぞれの嗜好ベクトルを正規化する。
【０１４５】
図２１は、図２０の嗜好ベクトルを、それぞれの層におけるノルムが１になるように正規化した嗜好ベクトルの例を示す図である。
【０１４６】
図２１に示す例において、U001であるユーザＩＤで特定される利用者の正規化された嗜好ベクトルは、（０．０，０．８，０．０，０．６，０．４，０．６，０．７，０．０，０．７，０．５，０．５，０．０，０．５，０．４，０．０）である。ここで、それぞれ０．０，０．８，０．０，０．６である最初の４つの要素は、第１層に属し、それぞれ０．４，０．６，０．７，０．０である次の４つの要素は、第２層に属し、それぞれ０．７，０．５，０．５であるさらに次の３つの要素は、第３層に属し、それぞれ０．０，０．５，０．４，０．０である最後の４つの要素は、第４層に属する。
【０１４７】
図２１に示す例において、U002であるユーザＩＤで特定される利用者の正規化された嗜好ベクトルは、（０．２，０．７，０．４，０．５，０．０，０．７，０．７，０．０，０．７，０．３，０．６，０．０，０．８，０．３，０．０）である。ここで、それぞれ０．２，０．７，０．４，０．５である最初の４つの要素は、第１層に属し、それぞれ０．０，０．７，０．７，０．０である次の４つの要素は、第２層に属し、それぞれ０．７，０．３，０．６であるさらに次の３つの要素は、第３層に属し、それぞれ０．０，０．８，０．３，０．０である最後の４つの要素は、第４層に属する。
【０１４８】
図２１に示す例において、U003であるユーザＩＤで特定される利用者の正規化された嗜好ベクトルは、（０．０，０．８，０．０，０．６，０．０，０．４，０．８，０．５，０．０，１．０，０．１，０．３，０．２，０．２，０．３）である。ここで、それぞれ０．０，０．８，０．０，０．６である最初の４つの要素は、第１層に属し、それぞれ０．０，０．４，０．８，０．５である次の４つの要素は、第２層に属し、それぞれ０．０，１．０，０．１であるさらに次の３つの要素は、第３層に属し、それぞれ０．３，０．２，０．２，０．３である最後の４つの要素は、第４層に属する。
【０１４９】
図１９に戻り、ステップＳ２３２において、重み計算部２３２は、利用者それぞれの嗜好ベクトルの階層のそれぞれについて、重みを計算する。例えば、ステップＳ２３２において、重み計算部２３２は、それぞれの階層毎に、１つの階層に属する要素の分散である重みを計算する。
【０１５０】
図２２は、利用者それぞれについて階層毎に計算された、それぞれの階層に属する要素の分散である重みの例を示す図である。図２２に示す例において、U001であるユーザＩＤで特定される利用者についての第１層の重み、第２層の重み、第３層の重み、および第４層の重みは、それぞれ、０．１７、０．１０、０．０１、および０．０６である。
【０１５１】
U002であるユーザＩＤで特定される利用者についての第１層の重み、第２層の重み、第３層の重み、および第４層の重みは、それぞれ、０．０５、０．１７、０．０５、および０．１６である。また、U003であるユーザＩＤで特定される利用者についての第１層の重み、第２層の重み、第３層の重み、および第４層の重みは、それぞれ、０．１６、０．１０、０．３１、および０．００である。
【０１５２】
ステップＳ２３３において、類似度計算部２３３は、利用者のそれぞれについて、重み付けした嗜好の類似度を計算する。ステップＳ２３４において、類似利用者検出部２０３は、利用者から、最大の嗜好の類似度の利用者Ｘを検出して、処理は終了する。
【０１５３】
仮に、式（１）により、利用者uおよび利用者vの類似度sim（u,v）を重み付けせずに計算するとすれば、利用者ＸをU001であるユーザＩＤで特定される利用者とした場合、U002であるユーザＩＤで特定される利用者およびU003であるユーザＩＤで特定される利用者についての類似度は、図２３に示されるようになる。
【０１５４】
【数１】
2007122683.tif 000003
【０１５５】
式（１）において、Lは、嗜好ベクトルの階層の数を示す値であり、lは、嗜好ベクトルの階層を特定する値である。C(l)は、嗜好ベクトルのクラスタの全体を示し、cは、クラスタを特定する値である。hは、正規化された嗜好ベクトルの要素の値を示す。
【０１５６】
U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素と、U002であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図２３のU002であるユーザＩＤの第１層に配置した値である０．８８が求められる。同様に、第２層、第３層、および第４層について、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素と、U002であるユーザＩＤで特定される利用者の嗜好ベクトルの要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図２３のU002であるユーザＩＤの第２層、第３層、および第４層のそれぞれに配置した値である０．９２、０．９７、０．５０が求められる。
【０１５７】
最終的に、U001であるユーザＩＤで特定される利用者とU002であるユーザＩＤで特定される利用者との嗜好の類似度は、第１層、第２層、第３層、および第４層のそれぞれについて求められた０．８８、０．９２、０．９７、および０．５０を加算した値である３．２７とされる。
【０１５８】
同様に、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素と、U003であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図２３のU003であるユーザＩＤの第１層に配置した値である１．００が求められる。同様に、第２層、第３層、および第４層について、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素と、U003であるユーザＩＤで特定される利用者の嗜好ベクトルの要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図２３のU003であるユーザＩＤの第２層、第３層、および第４層のそれぞれに配置した値である０．７７、０．５７、０．１５が求められる。
【０１５９】
最終的に、U001であるユーザＩＤで特定される利用者とU003であるユーザＩＤで特定される利用者との嗜好の類似度は、第１層、第２層、第３層、および第４層のそれぞれについて求められた１．００、０．７７、０．５７、および０．１５を加算した値である２．５０とされる。
【０１６０】
このように、重み付けせずに類似度を計算すると、U001であるユーザＩＤで特定される利用者とU002であるユーザＩＤで特定される利用者との嗜好の類似度が、U001であるユーザＩＤで特定される利用者とU003であるユーザＩＤで特定される利用者との嗜好の類似度より大きいので、最大の嗜好の類似度の利用者Ｘとして、U002であるユーザＩＤで特定される利用者が検出されることになる。
【０１６１】
これに対して、ステップＳ２３３において、類似度計算部２３３は、式（２）により、重み付けした、利用者uおよび利用者vの類似度sim（u,v）を計算する。
【０１６２】
【数２】
2007122683.tif 000004
【０１６３】
式（１）において、Lは、嗜好ベクトルの階層の数を示す値であり、lは、嗜好ベクトルの階層を特定する値である。C(l)は、嗜好ベクトルのクラスタの全体を示し、cは、クラスタを特定する値である。hは、正規化された嗜好ベクトルの要素の値を示す。ｂは、階層のそれぞれについての重みを示す。
【０１６４】
図２４は、利用者ＸをU001であるユーザＩＤで特定される利用者とした場合、U002であるユーザＩＤで特定される利用者およびU003であるユーザＩＤで特定される利用者についての重み付けした嗜好の類似度の例を示す図である。なお、図２４に示される値は、式（２）で算出される類似度sim（u,v）を１００倍したものである。
【０１６５】
U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素のそれぞれに、U001であるユーザＩＤで特定される利用者の第１層の重みが乗算され、U002であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素のそれぞれに、U002であるユーザＩＤで特定される利用者の第１層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図２４のU002であるユーザＩＤの第１層に配置した値である０．７２が求められる。
【０１６６】
同様に、第２層、第３層、および第４層について、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のそれぞれに、U001であるユーザＩＤで特定される利用者の第１層の重みが乗算され、U002であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のそれぞれに、U002であるユーザＩＤで特定される利用者の第１層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図２４のU002であるユーザＩＤの第２層、第３層、および第４層のそれぞれに配置した値である１．５４、０．０３、０．４８が求められる。
【０１６７】
最終的に、U001であるユーザＩＤで特定される利用者とU002であるユーザＩＤで特定される利用者との重み付けされた嗜好の類似度は、第１層、第２層、第３層、および第４層のそれぞれについて求められた０．７２、１．５４、０．０３、および０．４８を加算した値である２．７６とされる。
【０１６８】
同様に、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素のそれぞれに、U001であるユーザＩＤで特定される利用者の第１層の重みが乗算され、U003であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のうち、第１層の要素のそれぞれに、U003であるユーザＩＤで特定される利用者の第１層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図２４のU003であるユーザＩＤの第１層に配置した値である２．７４が求められる。同様に、第２層、第３層、および第４層について、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のそれぞれに、U001であるユーザＩＤで特定される利用者の第１層の重みが乗算され、U003であるユーザＩＤで特定される利用者の嗜好ベクトルの要素のそれぞれに、U003であるユーザＩＤで特定される利用者の第１層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図２４のU003であるユーザＩＤの第２層、第３層、および第４層のそれぞれに配置した値である０．７９、０．１０、０．００が求められる。
【０１６９】
最終的に、U001であるユーザＩＤで特定される利用者とU003であるユーザＩＤで特定される利用者との重み付けされた嗜好の類似度は、第１層、第２層、第３層、および第４層のそれぞれについて求められた２．７４、０．７９、０．１０、および０．００を加算した値である３．６４とされる。
【０１７０】
この結果、重み付けして類似度を計算すると、U001であるユーザＩＤで特定される利用者とU003であるユーザＩＤで特定される利用者との嗜好の類似度が、U001であるユーザＩＤで特定される利用者とU002であるユーザＩＤで特定される利用者との嗜好の類似度より大きいので、最大の嗜好の類似度の利用者Ｘとして、U003であるユーザＩＤで特定される利用者が検出される。
【０１７１】
図２０で示される嗜好ベクトルに注目すると、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの各要素の値は、第２層乃至第４層に比較して、第１層において大きく変化しているので、第２層乃至第４層に比較して、第１層の各要素の値が、U001であるユーザＩＤで特定される利用者の嗜好により関係すると予測される。
【０１７２】
U002であるユーザＩＤで特定される利用者の嗜好ベクトル、およびU003であるユーザＩＤで特定される利用者の嗜好ベクトルの第１層の各要素の値について注目すると、U003であるユーザＩＤで特定される利用者の嗜好ベクトルの第１層の各要素の値が、U002であるユーザＩＤで特定される利用者の嗜好ベクトルの第１層の各要素の値より、U001であるユーザＩＤで特定される利用者の嗜好ベクトルの第１層の各要素の値に近似している。従って、U002であるユーザＩＤで特定される利用者に比較して、U003であるユーザＩＤで特定される利用者の嗜好は、U001であるユーザＩＤで特定される利用者の嗜好に類似していると予測される。
【０１７３】
このように、重み付けすることによって、利用者の嗜好にあまり関係しないと予測される値に比較して、利用者の嗜好により関係すると予測される値によって、その値がより大きく変化する嗜好の類似度を求めることができるので、より正確に、嗜好の類似する利用者を検出することができる。
【０１７４】
なお、ステップＳ２３２において、重み計算部２３２は、例えば、それぞれの階層に属する要素の分散である重みを計算すると説明したが、これに限らず、階層における要素のばらつきが大きい場合により大きい値となる重みを計算すればよく、例えば、式（３）によりエントロピーHを算出し、１からエントロピーHを引き算した結果得られる値である重みを計算するようにしてもよい。
【０１７５】
【数３】
2007122683.tif 000005
【０１７６】
このように、情報の欠落を最小限に抑えつつ、適切なコンテンツを選択するための計算量を削減することができる。また、利用者がどのような情報に着目してコンテンツを選択しているかを確実に反映したコンテンツを提示することができるようになる。
【０１７７】
なお、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７８】
また、プログラムは、１台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
【０１７９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１８０】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１８１】
【図１】本発明を適用した推薦システムの構成例を示すブロック図である。
【図２】楽曲のメタデータを分類するクラスタとクラスタ層の概念を示す図である。
【図３】楽曲−クラスタ対応表の一例を示す図である。
【図４】クラスタ−楽曲対応表の一例を示す図である。
【図５】利用者の嗜好ベクトルの一例を示す図である。
【図６】オフライン時の前処理を説明するフローチャートである。
【図７】第１の推薦処理を説明するフローチャートである。
【図８】第２および３の推薦処理を説明するフローチャートである。
【図９】第４の推薦処理を説明するフローチャートである。
【図１０】第５および６の推薦処理を説明するフローチャートである。
【図１１】第７の推薦処理を説明するフローチャートである。
【図１２】汎用パーソナルコンピュータの構成例を示すブロック図である。
【図１３】本発明の一実施の形態の推薦システムの他の構成の例を示すブロック図である。
【図１４】オフライン時の前処理の他の例を説明するフローチャートである。
【図１５】ソフトクラスタリングされた各楽曲のメタデータの例を示す図である。
【図１６】各楽曲のメタデータの例を示す図である。
【図１７】クラスタリングされた各楽曲のメタデータの例を示す図である。
【図１８】類似利用者検出部の構成の例を示すブロック図である。
【図１９】嗜好の類似する利用者Ｘの検出の処理を説明するフローチャートである。
【図２０】嗜好ベクトルの例を示す図である。
【図２１】正規化された嗜好ベクトルの例を示す図である。
【図２２】重みの例を示す図である。
【図２３】重み付けせずに計算した類似度の例を示す図である。
【図２４】重み付けして計算した類似度の例を示す図である。
【符号の説明】
【０１８２】
１  推薦システム，  １１  楽曲ＤＢ，  １２  クラスタリング部，  １３  キーワード設定部，  １４  クラスタリング済ＤＢ，  １５  クラスタ−楽曲対応表，  １６  楽曲−クラスタ対応表，  １７  利用者履歴情報ＤＢ，  １８  推薦候補選択部，  １９  嗜好ベクトル生成部，  ２０  類似利用者検出部，  ２１  利用者グループ化部，  ２２  差分検出部，  ２３  推薦クラスタ決定部，  ２４  抽出部，  ２５  楽曲選択部，  ２６  新規性判定部，  ２７  選択理由生成部，  ２８  提示部，  １００  パーソナルコンピュータ，  １０１  CPU，  １１１  記録媒体，  ２０１  メタデータクラスタリング部，  ２０２  楽曲クラスタリング部，  ２０３  類似利用者検出部，  ２３１  正規化部，  ２３２  重み計算部，  ２３３  類似度計算部
【図１】
2007122683.tif 000006
【図２】
2007122683.tif 000007
【図３】
2007122683.tif 000008
【図４】
2007122683.tif 000009
【図５】
2007122683.tif 000010
【図６】
2007122683.tif 000011
【図７】
2007122683.tif 000012
【図８】
2007122683.tif 000013
【図９】
2007122683.tif 000014
【図１０】
2007122683.tif 000015
【図１１】
2007122683.tif 000016
【図１２】
2007122683.tif 000017
【図１３】
2007122683.tif 000018
【図１４】
2007122683.tif 000019
【図１５】
2007122683.tif 000020
【図１６】
2007122683.tif 000021
【図１７】
2007122683.tif 000022
【図１８】
2007122683.tif 000023
【図１９】
2007122683.tif 000024
【図２０】
2007122683.tif 000025
【図２１】
2007122683.tif 000026
【図２２】
2007122683.tif 000027
【図２３】
2007122683.tif 000028
【図２４】
2007122683.tif 000029