説明

情報処理装置、情報処理方法、およびプログラム

【課題】CF手法において一部のコンテンツに推薦が集中されてしまうことを抑止するとともに、履歴情報の少ない利用者に対してもコンテンツを推薦する。
【解決手段】ステップS11で、楽曲が推薦される利用者Aと履歴情報が最も類似している他の利用者Xを検出し、ステップS12で、利用者Xが有している(過去に購入した、または保有している)楽曲であって、利用者Aが有していない楽曲aを検出する。ステップS13で、楽曲aが属する各クラスタ層のクラスタを特定する。そして、ステップS14で、特定した全てのクラスタに共通して分類されている楽曲を抽出して推薦候補とする。さらに、ステップS15で、推薦候補の楽曲のうち、楽曲aとクラスタ情報が最も類似している1楽曲を選択する。ここで選択した楽曲を利用者Aに推薦する。本発明は、例えばインタネットに開設されるコンテンツ販売サイトに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、コンテンツをクラスタに分類し、コンテンツが分類されたクラスタを用いてコンテンツの特徴を管理し、コンテンツの検索や推薦に利用するようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、利用者の嗜好に基づいてテレビジョン番組、楽曲などのコンテンツを検索して推薦する(いわゆる、コンテンツパーソナライゼーション)ための発明が提案されている(例えば、特許文献1参照)。
【0003】
コンテンツパーソナライゼーションには、協調フィルタリング(CF)と称する手法やコンテントベーストフィルタリング(CBF)と称される手法が広く使われている。
【0004】
CF手法は、各利用者の購入履歴を管理し、コンテンツを推薦しようとする利用者Aに対し、購入履歴が似ている他の利用者Xを検出して、当該他の利用者Xが購入しており、かつ、利用者Aが購入していないコンテンツを推薦するようにしたものであり、例えば、インタネット上の通信販売サイトにおいて採用されている。
【0005】
CBF手法は、コンテンツに対して配信側や販売側によって予め付与されているメタデータが直接的に嗜好の抽出やコンテンツの推薦に利用されていた。すなわち、利用者の嗜好を示す特徴ベクトルと、候補となる各楽曲の特徴ベクトルとの距離(余弦相関など)を算出し、算出された距離の短い楽曲が利用者の嗜好に合致したものとして推薦されるようになされている。
【0006】
【特許文献1】特開2004−194107号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したCF手法の以下の不都合が生じてしまう。
(1)どの利用者にも購入されていないコンテンツは、誰に対しても推薦されることがない。したがって、膨大に用意されているコンテンツのうち、推薦されるコネテンツが一部に集中し、残りの大多数のコンテンツが推薦されない。
(2)新規の利用者に対してコンテンツを推薦する場合、当該利用者の購入履歴が少ないので、履歴情報が類似している他の利用者を検出することができず、コンテンツを推薦することができない(いわゆる、コールドスタート問題)。
(3)通常、コンテンツの数も利用者の数も増加していくが、その場合、購入履歴が似ている他の利用者を検出する際の演算が多くなり、推薦するコンテンツを速やかに決定することができない。
【0008】
本発明はこのような状況に鑑みてなされたものであり、CF手法において一部のコンテンツに推薦が集中されてしまうことを抑止するとともに、履歴情報の少ない利用者に対してもコンテンツを推薦できるようにするものである。
【課題を解決するための手段】
【0009】
本発明の一側面である情報処理装置は、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類するコンテンツ分類手段と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第1のクラスタとの対応関係を示すデータベースを保持する保持手段と、前記利用者のコンテンツに対する履歴情報を管理する管理手段と、前記履歴情報に基づき、注目する第1のクラスタを特定し、特定した前記第1のクラスタに分類されているコンテンツを選択する選択手段と、選択された前記コンテンツを提示する提示手段とを含む。
【0010】
前記選択手段は、第1の利用者と前記履歴情報が類似している第2の利用者を検出する検出手段と、前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示するようにすることができる。
【0011】
本発明の一側面である情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、前記選択手段は、第1の利用者と同じグループに属する第2の利用者を検出する検出手段と、前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示するようにすることができる。
【0012】
本発明の一側面である情報処理装置には、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段をさらに設け、前記選択手段には、第1の利用者と前記嗜好情報で示される嗜好が類似している第2の利用者を検出する検出手段と、前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを設け、前記提示手段には、前記第1の利用者に対して抽出された前記コンテンツを提示させることができる。
【0013】
前記検出手段には、利用者の嗜好情報を正規化する正規化手段と、正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段と、階層毎の重みと前記嗜好情報とから、利用者のうちの第1の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段とを設け、計算された類似度から、第1の利用者と嗜好が類似している第2の利用者を検出させることができる。
【0014】
本発明の一側面である情報処理装置には、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに設け、前記選択手段には、第1の利用者と同じグループに属する第2の利用者を検出する検出手段と、前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを設け、前記提示手段には、前記第1の利用者に対して抽出された前記コンテンツを提示させることができる。
【0015】
本発明の一側面である情報処理装置には、前記コンテンツ分類手段によって前記メタデータが分類される第1のクラスタのそれぞれに対してキーワードを設定する設定手段と、前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段とをさらに設け、前記提示手段には、前記理由文も提示させることができる。
【0016】
コンテンツのメタデータを複数の第2のクラスタのいずれかに分類し、第2のクラスタに前記階層を割り当てるメタデータ分類手段を更に設け、前記コンテンツ分類手段には、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類させることができる。
【0017】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段をさらに設け、前記選択手段には、全部の前記階層の全部の前記第1のクラスタのうち、前記嗜好情報で示される前記第1のクラスタであって、最も多くの前記第1のクラスタに分類されているコンテンツを選択させることができる。
【0018】
本発明の一側面である情報処理方法は、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置の情報処理方法であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、前記利用者のコンテンツに対する履歴情報を管理し、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、選択された前記コンテンツを提示するステップを含む。
【0019】
本発明の一側面であるプログラムは、コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に推薦するためのプログラムであって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、前記利用者のコンテンツに対する履歴情報を管理し、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、選択された前記コンテンツを提示するステップを含む処理をコンピュータに実行させる。
【0020】
本発明の一側面においては、前記コンテンツ群を構成する各コンテンツが、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類される。そして、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースが保持される。また、前記利用者のコンテンツに対する履歴情報が管理される。そして、前記履歴情報に基づき、注目するクラスタが特定され、特定された前記クラスタに分類されているコンテンツが選択され、選択された前記コンテンツが提示される。
【発明の効果】
【0021】
以上のように、本発明の一側面によれば、CF手法により利用者にコンテンツを推薦することが可能となる。
【0022】
また、本発明の一側面によれば、全コンテンツのうち、一部のコンテンツに推薦が集中されてしまうことを抑止することが可能となる。
【0023】
さらに、本発明の一側面によれば、履歴情報の少ない利用者に対してもコンテンツを推薦することが可能となる。
【発明を実施するための最良の形態】
【0024】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0025】
請求項1に記載の情報処理装置は、コンテンツ群のなかから所定の条件を満たすコンテンツ(例えば、楽曲データ)を選択して利用者に提示する情報処理装置(例えば、図1の推薦システム1)であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類するコンテンツ分類手段(例えば、図1のクラスタリング部12)と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第1のクラスタとの対応関係を示すデータベースを保持する保持手段(例えば、図1のクラスタリング済DB14)と、前記利用者のコンテンツに対する履歴情報を管理する管理手段(例えば、図1の利用者履歴情報DB17)と、前記履歴情報に基づき、注目する第1のクラスタを特定し、特定した前記第1のクラスタに分類されているコンテンツを選択する選択手段(例えば、図1の推薦候補選択部18)と、選択された前記コンテンツを提示する提示手段(例えば、図1の提示部28)とを含む。
【0026】
請求項2に記載の情報処理装置において、前記選択手段(例えば、図1の推薦候補選択部18)は、第1の利用者と前記履歴情報が類似している第2の利用者を検出する検出手段(例えば、図1の類似利用者検出部21)と、前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段(例えば、図1の推薦クラスタ決定部23)と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段(例えば、図1の抽出部24)とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する。
【0027】
請求項3に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段(例えば、図1の嗜好ベクトル生成部19)と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段(例えば、図1の利用者グループ化部20)とをさらに含み、前記選択手段は、第1の利用者と同じグループに属する第2の利用者を検出する検出手段(例えば、図1の類似利用者検出部21)と、前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段(例えば、図1の推薦クラスタ決定部23)と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段(例えば、図1の抽出部24)とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する。
【0028】
請求項4に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段(例えば、図1の嗜好ベクトル生成部19)をさらに含み、前記選択手段は、第1の利用者と前記嗜好情報で示される嗜好が類似している第2の利用者を検出する検出手段(例えば、図1の類似利用者検出部21)と、前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段(例えば、図1の推薦クラスタ決定部23)と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段(例えば、図1の抽出部24)とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する。
【0029】
前記検出手段には、利用者の嗜好情報を正規化する正規化手段(例えば、図18の正規化部231)と、正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段(例えば、図18の重み計算部232)と、階層毎の重みと前記嗜好情報とから、利用者のうちの第1の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段(例えば、図18の類似度計算部233)とを設け、計算された類似度から、第1の利用者と嗜好が類似している第2の利用者を検出させることができる。
【0030】
請求項6に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段(例えば、図1の嗜好ベクトル生成部19)と、前記嗜好情報に基づいて利用者をグループ化するグループ化手段(例えば、図1の利用者グループ化部20)とをさらに含み、前記選択手段は、第1の利用者と同じグループに属する第2の利用者を検出する検出手段(例えば、図1の類似利用者検出部21)と、前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段(例えば、図1の推薦クラスタ決定部23)と、特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段(例えば、図1の抽出部24)とを含み、前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する。
【0031】
請求項7に記載の情報処理装置は、前記コンテンツ分類手段によって前記メタデータが分類される第1のクラスタのそれぞれに対してキーワードを設定する設定手段(例えば、図1のキーワード設定部13)と、前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段(例えば、図1の選択理由生成部27)とをさらに含み、前記提示手段は、前記理由文も提示する。
【0032】
請求項8に記載の情報処理装置は、コンテンツのメタデータを複数の第2のクラスタのいずれかに分類し、第2のクラスタに前記階層を割り当てるメタデータ分類手段(例えば、図13のメタデータクラスタリング部201)をさらに含み、前記コンテンツ分類手段(例えば、図13の楽曲クラスタリング部202)は、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類する。
【0033】
請求項9に記載の情報処理装置は、利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段(例えば、図1の嗜好ベクトル生成部19)をさらに含み、前記選択手段は、全部の前記階層の全部の前記第1のクラスタのうち、前記嗜好情報で示される前記第1のクラスタであって、最も多くの前記第1のクラスタに分類されているコンテンツを選択する。
【0034】
請求項10に記載の情報処理方法および請求項11に記載のプログラムは、コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し(例えば、図6のステップS1)、前記利用者のコンテンツに対する履歴情報を管理し(例えば、図6のステップS11)、前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し(例えば、図6のステップS14)、選択された前記コンテンツを提示する(例えば、図6のステップS17)ステップを含む。
【0035】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0036】
図1は本発明の一実施の形態である推薦システムの構成例を示している。この推薦システム1は、例えばインタネット上に開設された楽曲データの販売サイトにおいて、利用者の履歴情報(楽曲データの購入、試聴、検索、保有などの情報)を管理し、CF法を用いて推薦する楽曲を選択し、利用者に提示するものである。なお、推薦システム1は、楽曲以外のコンテンツ、例えばテレビジョン番組、映画、書籍などを販売する販売サイトにも適用することが可能である。
【0037】
推薦システム1は、利用者に推薦して販売するための数多くの楽曲データ(以下、単に楽曲とも記述する)のメタデータが記録されている楽曲データベース(DB)11、楽曲データベース11に記録されている各楽曲のメタデータを基に、各楽曲をクラスタリングして各楽曲のクラスタ情報を生成するクラスタリング部12、各クラスタ層とクラスタ層における各クラスタの特徴をそれぞれ示すキーワードを設定するキーワード設定部13、および、各楽曲のクラスタリング結果を保持するクラスタリング済データベース(DB)14から構成される。
【0038】
クラスタリング済DB14には、クラスタリング結果として、各クラスタに属する楽曲を示すクラスタ−楽曲対応表15と、各楽曲が属するクラスタを示す楽曲−クラスタ対応表16が保持されている。
【0039】
さらに、推薦システム1は、各利用者の履歴情報を管理している利用者履歴情報データベース(DB)17、利用者情報に基づいて推薦候補となる複数の楽曲を選択する推薦候補選択部18、選択された複数の推薦候補の中から1楽曲を選択する楽曲選択部25、選択された楽曲が推薦される利用者にとって新規性のあるものであるか否かを判定する新規性判定部26、選択された楽曲を利用者に提示するときの推薦理由文を生成する選択理由生成部27、および、選択された楽曲と推薦理由文を利用者に提示する提示部28から構成される。
【0040】
推薦候補選択部18は、嗜好ベクトル生成部19、利用者グループ化部20、類似利用者検出部21、差分検出部22、推薦クラスタ決定部23、および抽出部24を含む。
【0041】
楽曲DB11は、音楽CDに収録されている楽曲のメタデータを供給するインタネット上のデータサーバであるCDDB(CD Data Base)やMusic Naviなどと同様、推薦して販売する楽曲のメタデータを保持している。
【0042】
クラスタリング部12は、楽曲DB11の全ての楽曲に対し、楽曲のメタデータの各項目(アーティスト名、ジャンル、アルバム、アーティストレビュー、楽曲レビュー、タイトル、テンポ、ビート、リズムなど)あるいはそれらの組み合わせ(テンポ、ビート、リズムなど)を基にして、図2に示すようなクラスタ層(第1乃至n層)を作り、楽曲を各クラスタ層に設けられる複数のクラスタのいずれか、あるいは複数に分類する(クラスタリングする)。
【0043】
ここでは楽曲を例に説明されているが、アーティスト、アルバムに対しても同様に多くのメタを使ってそれぞれ多層にクラスタリングする。楽曲推薦、アーティスト推薦、アルバム推薦のために、それぞれ楽曲用多層クラスタ、アーティスト用多層クラスタ、アルバム用多層クラスタを用いる。
【0044】
クラスタリングはいかなる手法を用いてもよいが、クラスタ層毎に最適なクラスタリング手法、距離尺度を選ぶようにする。例えば、メタデータの実情報がテンポなどの数値属性であるならばそのまま、タイトルなどの名義属性の場合は主成分分析等の数量化手法を用いて数値にして、ユークリッド距離などの距離尺度を定義してクラスタリングすることになる。代表的なクラスタリング手法としては、K-means法、階層クラスタリング法(群平均法、最遠法、ウォード法)、ソフトクラスタリング法などを挙げることができる。
【0045】
この際、嗜好距離を反映したクラスタリング(例えば、制約付きクラスタリング)によって実施することが望ましい。そのためには、事前調査により部分的な正解集(嗜好的に近い実情報の集合、遠い実情報の集合など)を作り、それに適合する数値表現、距離、クラスタリング手法を用いるものとする。またさらに、形成される各クラスタ層の独立性が高くなるクラスタリング手法(すなわち、特性の異なるクラスタリング手法)を選ぶことが望ましい。
【0046】
なお、1つの実情報を同一クラスタ層の複数のクラスタに分類してもよい。同一クラスタ層に存在するクラスタ間の距離(類似の程度を示す)は既知であるものとする。このクラスタリングの手法については後述する。そして、メタデータの代わりに楽曲の特徴を示す情報として、メタデータの各項目の実情報を分類したクラスタのクラスタID(図2におけるCL11など)から成るクラスタ情報を生成してクラスタリング済DB14に出力する。
【0047】
なお、分類に適したクラスタが存在しない場合、新たにクラスタを新設してもよい。各クラスタのサイズは任意であって複数の実情報を包含できるものである。なお、単一の実情報だけしか分類することができないクラスタを設けてもよい。この場合、当該クラスタのクラスタIDに唯一分類可能な実情報のID(アーティストID、アルバムID、タイトルID)を用いてもよい。
【0048】
クラスタリング済DB14は、クラスタリング部12によって生成された各楽曲のクラスタ情報に基づいて、クラスタ−楽曲対応表15と楽曲−クラスタ対応表16を生成して保持している。また、クラスタリング済DB14は、キーワード設定部13によって設定された各クラスタ層や各クラスタに対して設定されたキーワードも保持している。
【0049】
図3は楽曲−クラスタ対応表16の一例を示している。同図においては、例えば、楽曲ID=ABC123の楽曲のクラスタ情報は、(CL12、CL21、CL35,CL47,CL52,…,CLn2)であることを示している。また例えば、楽曲ID=CTH863の楽曲のクラスタ情報は、クラスタID(CL11、CL25、CL31,CL42,CL53,…,CLn1)であることを示している。
【0050】
図4は、図3に示された楽曲−クラスタ対応表16に応じたクラスタ−楽曲対応表15の一例を示している。同図においては、例えば、クラスタID=CL11には、楽曲ID=CTH863が対応することを示している。また例えば、クラスタID=CL21には、楽曲ID=ABC123が対応することを示している。さらに例えば、クラスタID=CL32には、楽曲ID=XYZ567が対応することを示している。
【0051】
なお、クラスタリング部12、キーワード設定部13、およびクラスタリング済DB14の処理は、楽曲DB11に新たな楽曲のメタデータが追加される毎に実行しておく必要がある。
【0052】
図1に戻る。利用者履歴情報DB17には、各利用者が当該販売サイトにて購入、試聴、または検索した楽曲、あるいは、いずれかで購入し既に保有していることを申告した楽曲を示す履歴情報が保持されている。また、利用者履歴情報DB17には、嗜好ベクトル生成部19によって生成される各利用者の嗜好ベクトルが保持されている。さらに、利用者履歴情報DB17には、利用者グループ化部20による利用者のグループ化結果、すなわち、各利用者がどの利用者グループに属するかを示す情報が保持されている。
【0053】
嗜好ベクトル生成部19は、利用者履歴情報DB17に保持されている各利用者の履歴情報に基づき、各利用者に対して、全てのクラスタをそれぞれ1次元とする多次元の嗜好ベクトルを生成し、利用者履歴情報DB17に出力する。具体的には、利用者の履歴情報にある各楽曲について、クラスタリング済DB14の楽曲−クラスタ対応表16を参照し、楽曲の属するクラスタに対応する嗜好ベクトルの次元に所定の値を加算する。生成された各利用者の嗜好ベクトルは、利用者履歴情報DB17で管理される。楽曲の購入などによって利用者の履歴情報が更新されれば、嗜好ベクトルも更新されることになる。
【0054】
ここで説明の便宜上、全てのクラスタが図5に示すにように、第1層には3クラスタCL11,CL12,CL13、第2層には4クラスタCL21,CL22,CL23,CL24、第3層には3クラスタCL31,CL32,CL33、第4層には3クラスタCL41,CL42,CL43のみが存在していると仮定する。この場合、嗜好ベクトルは13次元である。
【0055】
例えば、利用者Aの履歴情報に2楽曲を購入した記録があり、1つ目の楽曲の属するクラスタIDがCL11,CL22,CL33,CL41であれば、これらに対応する次元の値にそれぞれ1が加算される。また、2つ目の楽曲の属するクラスタIDがCL12,CL24,CL32,CL43であれば、これらに対応する次元の値にそれぞれ1が加算される。そして、利用者Aの嗜好ベクトル(1,1,0,0,1,0,1,0,1,1,1,0,1)が生成される。
【0056】
また例えば、利用者Xの履歴情報に3楽曲を購入した記録があり、1つ目の楽曲の属するクラスタIDがCL11,CL22,CL32,CL43であれば、これらに対応する次元の値にそれぞれ1が加算される。また、2つ目の楽曲の属するクラスタIDがCL12,CL22,CL33,CL42であれば、これらに対応する次元の値にそれぞれ1が加算される。さらに、3つ目の楽曲の属するクラスタIDがCL13,CL24,CL33,CL41であれば、これらに対応する次元の値にそれぞれ1が加算される。そして、利用者Xの嗜好ベクトル(1,1,1,0,2,0,1,0,1,2,1,1,1)が生成される。
【0057】
なお、各次元への加算値は履歴情報の種別(すなわち、購入、試聴、検索、または保有)に応じて変更するようにしてもよい。例えば、購入または保有であれば1を加算し、試聴であれば0.5を加算し、検索であれば0.3を加算するようにしてもよい。
【0058】
図1に戻る。利用者グループ化部20は、利用者履歴情報DB17に保持されている各利用者の嗜好ベクトルの類似性に基づき、全利用者をグループ化する。ただし、多次元の嗜好ベクトルの類似性を判定する処理を容易にするため、各利用者の嗜好ベクトルの各次元の値を2値化する。すなわち、各次元の値が1以上であるときには1に置換し、0であるときには0のままとする。このように、嗜好ベクトルの各次元の値を2値化すると、2値化しない場合に比較して類似性の判定これに要する演算量を減少させることができ、容易にグループ化を行うことができる。このグループ化結果は、利用者履歴情報DB17で管理される。
【0059】
類似利用者検出部21は、利用者履歴情報DB17に保持されている各利用者の履歴情報を比較することにより、楽曲が推薦される利用者と履歴情報が類似している他の利用者を検出する。また、類似利用者検出部21は、利用者履歴情報DB17に保持されている各利用者の嗜好ベクトルを比較することにより、楽曲が推薦される利用者と嗜好ベクトルが類似している他の利用者を検出する。差分検出部22は、利用者履歴情報DB17に保持されている各利用者の履歴情報に基づき、楽曲が推薦される利用者と、類似利用者検出部21によって検出された他の利用者との履歴情報の差分を検出する。推薦クラスタ決定部23は、楽曲が推薦される利用者と、類似利用者検出部21によって検出された他の利用者との嗜好ベクトルの差に基づいて推薦クラスタを決定する。抽出部24は、類似利用者検出部21乃至推薦クラスタ決定部23の処理結果と、クラスタリング済DB14に基づき、推薦候補となる楽曲を抽出する。
【0060】
楽曲選択部25は、抽出された複数の楽曲の中から所定の条件に従って1楽曲を選択する。例えば、より多くの推薦クラスタに属しているもの、予め設定されている優先順位が高いクラスタ層における推薦クラスタに属しているもの、またはランダムで1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。新規性判定部26は、楽曲が推薦される利用者の嗜好ベクトルに基づき、選択された楽曲が属するクラスタの、当該嗜好ベクトルに対する重複度が所定の割合(例えば30%)以上である場合には新規性がないものと判定し、所定の割合未満である場合には新規性があるものと判定し、判定結果を選択理由生成部27に出力する。
【0061】
選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても例えば、新規性のあるものについては「意外な」、新規性のないものについては「いつもの」あるいは「なじみの」などの文言を含めて選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。
【0062】
なお、選択された楽曲のレビューテキストをそのまま選択理由文として引用したり、選択された楽曲のレビューテキストから抽出した単語を用いて選択理由文を生成してもよい。なお、レビューテキストから選択理由文に用いる単語を抽出するにはTf/idf法を適用することができる。
【0063】
提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。
【0064】
次に、推薦システム1の動作について説明する。まず、楽曲を推薦する処理の準備であるオフライン時の前処理について、図6のフローチャートを参照して説明する。
【0065】
ステップS1において、クラスタリング部12は、楽曲DB11の全ての楽曲を、楽曲のメタデータの各項目クラスタ層(第1乃至n層)のいずれかに分類し、各項目の実情報を分類したクラスタ層に設けられる複数のクラスタのいずれかに分類(クラスタリング)する。そして、クラスタリング部12は、メタデータの代わりに楽曲の特徴を示す情報として、メタデータの各項目の実情報を分類したクラスタのクラスタIDから成るクラスタ情報を生成してクラスタリング済DB14に出力する。なお、既にクラスタリング済の楽曲については、クラスタリングを省略し、未クラスタリング済の楽曲についてのみ、クラスタリングするようにしてもかまわない。クラスタリング済DB14は、クラスタリング部12によって生成された各楽曲のクラスタ情報に基づいて、クラスタ−楽曲対応表15と楽曲−クラスタ対応表16を生成する。
【0066】
ステップS2において、推薦候補選択部18の嗜好ベクトル生成部19は、利用者履歴情報DB17に保持されている各利用者の履歴情報に基づき、各利用者に対して嗜好ベクトルを生成し、利用者履歴情報DB17に出力する。ステップS3において、利用者グループ化部20は、利用者履歴情報DB17に保持されている各利用者の嗜好ベクトルの類似性に基づき、全利用者をグループ化する。ただし、多次元の嗜好ベクトルの類似性を判定する処理を容易にするため、各利用者の嗜好ベクトルの各次元の値を2値化する。そして、このグループ化結果を利用者履歴情報DB17に出力する。以上で、オフライン時の前処理は終了される。
【0067】
このように、楽曲DB11に保持されている全楽曲のクラスタリングと、各利用者の嗜好ベクトルの生成、および利用者のグループ化を前処理として実施することにより、後述する第1乃至7の推薦処理を速やかに実行することができる。なお、第1乃至7の推薦処理のうち、利用者のグループ情報を利用しないものがあるので、利用者のグループ情報を利用しない推薦処理のみを実行するときには、ステップS3の処理を省略してもかまわない。
【0068】
次に第1の推薦処理について、図7のフローチャートを参照して説明する。以下においては、楽曲が推薦される利用者を利用者Aと記述する。この処理は、例えば、利用者Aが当該販売サイトにアクセスしたときに開始される。
【0069】
ステップS11において、類似利用者検出部21は、利用者履歴情報DB17に保持されている利用者Aの履歴情報と他の利用者の履歴情報を比較することにより、利用者Aと履歴情報が最も類似している他の利用者Xを検出する。ステップS12において、差分検出部22は、利用者履歴情報DB17に保持されている利用者Aと利用者Xの履歴情報に基づき、利用者Xが有している(過去に購入した、または保有している)楽曲であって、利用者Aが有していない楽曲を検出する。なお、この条件を満たす楽曲が複数存在する場合、そのうちの1楽曲を例えばランダムに選択する。検出された楽曲を楽曲aとする。
【0070】
ステップS13において、推薦クラスタ決定部23は、クラスタリング済DB14の楽曲−クラスタ対応表16を参照し、楽曲aが属する各クラスタ層のクラスタを特定する。ステップS14において、抽出部24は、クラスタリング済DB14のクラスタ−楽曲対応表15を参照し、ステップS13の処理で特定された全てのクラスタに共通して分類されている楽曲を抽出する。ここで抽出された楽曲を推薦候補とする。推薦候補は複数あってかまわない。なお、ステップS13の処理で特定した全てのクラスタに共通して分類されている楽曲が存在しない場合、ステップS13の処理で特定したクラスタのうち、できるだけ多くのクラスタに共通して分類されている楽曲を抽出し、推薦候補とする。
【0071】
ステップS15において、楽曲選択部25は、推薦候補の楽曲のうち、ステップS12で検出した楽曲aとクラスタ情報が最も類似している1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。ステップS16において、新規性判定部26は、利用者Aの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部27に出力する。選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。ステップS17において、提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。以上で第1の推薦処理が終了される。
【0072】
次に第2および3の推薦処理について、図8のフローチャートを参照して説明する。まず第2の推薦処理について説明する。この処理は、例えば、利用者Aが当該販売サイトにアクセスしたときに開始される。
【0073】
ステップS21において、類似利用者検出部21は、利用者履歴情報DB17に保持されている利用者Aの嗜好ベクトルと他の利用者の嗜好ベクトルを比較することにより、利用者Aと嗜好ベクトルが最も類似している他の利用者Xを検出する。なお、利用者Aの嗜好ベクトルと他の利用者の嗜好ベクトルとの類似は、例えば両者の余弦相関値を算出して判断する。
【0074】
ステップS22において、差分検出部22は、利用者Aの嗜好ベクトルにおいては値が0であり、利用者Xの嗜好ベクトルにおいては0以外の値である嗜好ベクトルの次元を検出し、検出した次元に相当するクラスタを推薦クラスタに決定する。
【0075】
例えば、利用者Aの嗜好ベクトルが図5Aに示す(1,1,0,0,1,0,1,0,1,1,1,0,1)であり、利用者Xの嗜好ベクトルが図5Bに示す(1,1,1,0,2,0,1,0,1,2,1,1,1)である場合、図5Bに斜線で示すように、クラスタCL13、およびCL42が推薦クラスタに決定される。
【0076】
ステップS23において、抽出部24は、利用者履歴情報DB17とクラスタリング済DB14のクラスタ−楽曲対応表15を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Xが有しており、利用者Aが有していないものを抽出して推薦候補とする。
【0077】
ステップS24において、楽曲選択部25は、推薦候補の楽曲のうち、以下の3方法のいずれか、または3方法を組み合わせた方法により、1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。1つ目の方法は、より多くの推薦クラスタに共通して属している楽曲を選択する方法である。2つ目の方法は、クラスタ層に予め優先順位を付与し、より優先順位の高いクラスタ層に属する推薦クラスタに分類されている楽曲を選択する方法である。3つ目の方法は、ランダムに選択する方法である。
【0078】
ステップS25において、新規性判定部26は、利用者Aの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部27に出力する。選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。ステップS26において、提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。以上で第2の推薦処理が終了される。
【0079】
次に第3の推薦処理について説明する。第3の推薦処理は、上述した第2の推薦処理におけるステップS23の処理で、推薦クラスタに分類されている全ての楽曲のうち、利用者Aが有していないものを抽出して推薦候補とするようにする。すなわち、利用者Xが有していないものも推薦候補とすることができる。このほかの処理については第2の推薦処理と同様であるので、その説明は省略する。
【0080】
次に第4の推薦処理について、図9のフローチャートを参照して説明する。この処理は、例えば、利用者Aが当該販売サイトにアクセスしたときに開始される。
【0081】
ステップS41において、類似利用者検出部21は、利用者履歴情報DB17に保持されている利用者Aのグループ情報に基づき、利用者Aと同じグループに属する他の利用者Xをランダムに決定する。ステップS42において、差分検出部22は、利用者履歴情報DB17に保持されている利用者Aと利用者Xの履歴情報に基づき、利用者Xが有している楽曲であって、利用者Aが有していない楽曲を検出する。なお、この条件を満たす楽曲が複数存在する場合、そのうちの1楽曲を例えばランダムに選択する。検出された楽曲を楽曲aとする。
【0082】
ステップS43において、推薦クラスタ決定部23は、クラスタリング済DB14の楽曲−クラスタ対応表16を参照し、楽曲aが属する各クラスタ層のクラスタを特定する。ステップS44において、抽出部24は、クラスタリング済DB14のクラスタ−楽曲対応表15を参照し、ステップS43の処理で特定された全てのクラスタに共通して分類されている楽曲を抽出する。ここで抽出された楽曲を推薦候補とする。推薦候補は複数あってかまわない。なお、ステップS43の処理で特定した全てのクラスタに共通して分類されている楽曲が存在しない場合、ステップS43の処理で特定したクラスタのうち、できるだけ多くのクラスタに共通して分類されている楽曲を抽出し、推薦候補とする。
【0083】
ステップS45において、楽曲選択部25は、推薦候補の楽曲のうち、ステップS42で検出した楽曲aとクラスタ情報が最も類似している1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。ステップS46において、新規性判定部26は、利用者Aの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部27に出力する。選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。ステップS47において、提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。以上で第4の推薦処理が終了される。
【0084】
第4の推薦処理においては、オフライン時の前処理によってグループ化されている利用者のグループ情報を利用するので、利用者Aの履歴に類似した利用者Xを速やかに決定することができる。
【0085】
次に第5および6の推薦処理について、図10のフローチャートを参照して説明する。まず第5の推薦処理について説明する。この処理は、例えば、利用者Aが当該販売サイトにアクセスしたときに開始される。
【0086】
ステップS51において、類似利用者検出部21は、利用者履歴情報DB17に保持されている利用者Aのグループ情報に基づき、利用者Aと同じグループに属する他の利用者Xをランダムに決定する。
【0087】
ステップS52において、差分検出部22は、利用者Aの嗜好ベクトルにおいては値が0であり、利用者Xの嗜好ベクトルにおいては0以外の値である嗜好ベクトルの次元を検出し、検出した次元に相当するクラスタを推薦クラスタに決定する。
【0088】
ステップS53において、抽出部24は、利用者履歴情報DB17とクラスタリング済DB14のクラスタ−楽曲対応表15を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Xが有しており、利用者Aが有していないものを抽出して推薦候補とする。
【0089】
ステップS54において、楽曲選択部25は、推薦候補の楽曲のうち、以下の3方法のいずれか、または3方法を組み合わせた方法により、1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。1つ目の方法は、より多くの推薦クラスタに共通して属している楽曲を選択する方法である。2つ目の方法は、クラスタ層に予め優先順位を付与し、より優先順位の高いクラスタ層に属する推薦クラスタに分類されている楽曲を選択する方法である。3つ目の方法は、ランダムに選択する方法である。
【0090】
ステップS55において、新規性判定部26は、利用者Aの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部27に出力する。選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。ステップS56において、提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。以上で第5の推薦処理が終了される。
【0091】
次に第6の推薦処理について説明する。第6の推薦処理は、上述した第5の推薦処理におけるステップS53の処理で、推薦クラスタに分類されている全ての楽曲のうち、利用者Aが有していないものを抽出して推薦候補とするようにする。すなわち、利用者Xが有していないものも推薦候補とすることができる。このほかの処理については第5の推薦処理と同様であるので、その説明は省略する。
【0092】
第5および6の推薦処理においては、オフライン時の前処理によってグループ化されている利用者のグループ情報を利用するので、利用者Aの履歴に類似した利用者Xを速やかに決定することができる。
【0093】
次に第7の推薦処理について、図11のフローチャートを参照して説明する。まず第7の推薦処理について説明する。この処理は、利用者Aの履歴情報が極端に少ない場合、他の利用者が少ない場合などに適し、例えば、利用者Aが当該販売サイトにアクセスしたときに開始される。
【0094】
ステップS61において、差分検出部22は、利用者Aの嗜好ベクトルの各次元のうち、その値が所定の値以上のものを検出し、その次元に相当するクラスタを推薦クラスタに決定する。
【0095】
ステップS62において、抽出部24は、利用者履歴情報DB17とクラスタリング済DB14のクラスタ−楽曲対応表15を参照し、推薦クラスタに分類されている全ての楽曲のうち、利用者Aが有していないものを抽出して推薦候補とする。
【0096】
ステップS63において、楽曲選択部25は、推薦候補の楽曲のうち、最も多くの推薦クラスタに属する1楽曲を選択し、選択結果を新規性判定部26、および選択理由生成部27に出力する。なお、最も多くの推薦クラスタに属する楽曲が複数存在する場合、その中から例えばランダムに1楽曲を選択する。
【0097】
ステップS64において、新規性判定部26は、利用者Aの嗜好ベクトルと、選択された楽曲が属するクラスタに基づき、新規性の有無を判定し、判定結果を選択理由生成部27に出力する。選択理由生成部27は、選択された楽曲の属するクラスタ層やクラスタに対応するキーワードをクラスタリング済DB14から取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成する。また、新規性判定部26からの判定結果に基づいても選択理由文を生成する。そして、生成した選択理由文を、選択された楽曲の楽曲IDとともに提示部28に出力する。ステップS65において、提示部29は、選択された楽曲に関する情報を楽曲DBから取得して、生成された選択理由文とともに利用者側に提示する。以上で第7の推薦処理が終了される。
【0098】
上述した第1乃至7の推薦処理によれば、利用者の履歴情報を、各クラスタを1次元とする嗜好ベクトルに置き換えてCF手法を適用するので、利用者Aに対する楽曲の推薦が楽曲DB11に存在する全楽曲のうちの一部に集中してしまうことを抑止することができる。また、履歴情報が少ない利用者に対しても楽曲を推薦することができ、いわゆるコールドスタート問題を回避することができる。さらに、推薦された楽曲が選択された理由を利用者Aに提示することができ、例えば、利用者Aは、推薦された楽曲が自身にとって新規性のあるものであるのか否かを知ることができる。
【0099】
なお、本発明は、楽曲を推薦する場合のみならず、楽曲以外のコンテンツ、例えばテレビジョン番組、映画、書籍などを販売する販売サイトにも適用することが可能である。
【0100】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図12に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0101】
このパーソナルコンピュータ100は、CPU(Central Processing Unit)101を内蔵している。CPU101にはバス104を介して、入出力インタフェース105が接続されている。バス104には、ROM(Read Only Memory)102およびRAM(Random Access Memory)103が接続されている。
【0102】
入出力インタフェース105には、利用者が操作コマンドを入力するキーボード、マウス等の入力デバイスよりなる入力部106、画面を表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等のディスプレイよりなる出力部107、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部108、およびモデム、LAN(Local Area Network)アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部109が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどの記録媒体111に対してデータを読み書きするドライブ110が接続されている。
【0103】
このパーソナルコンピュータ100に上述した一連の処理を実行させるプログラムは、記録媒体111に格納された状態でパーソナルコンピュータ100に供給され、ドライブ110によって読み出されて記憶部108に内蔵されるハードディスクドライブにインストールされている。記憶部108にインストールされているプログラムは、入力部106に入力される利用者からのコマンドに対応するCPU101の指令によって、記憶部108からRAM103にロードされて実行される。
【0104】
図13は、本発明の一実施の形態の推薦システム1の他の構成の例を示すブロック図である。図13において、図1に示す場合と同様の部分には同一の符号を付してあり、その説明は省略する。
【0105】
図13に示される推薦システム1は、楽曲DB11、キーワード設定部13、クラスタリング済DB14、利用者履歴情報DB17、推薦候補選択部18、楽曲選択部25、新規性判定部26、選択理由生成部27、提示部28、メタデータクラスタリング部201、および楽曲クラスタリング部202から構成される。
【0106】
メタデータクラスタリング部201は、楽曲データベース11に記録されている各楽曲のメタデータをクラスタリングする。すなわち、メタデータクラスタリング部201は、コンテンツである楽曲のメタデータを複数のクラスタのいずれかに分類し、クラスタに階層を割り当てる。
【0107】
メタデータクラスタリング部201は、各楽曲のメタデータのクラスタリングの結果を楽曲クラスタリング部202に供給する。
【0108】
楽曲クラスタリング部202は、メタデータクラスタリング部201による各楽曲のメタデータのクラスタリングの結果を基に、クラスタリング部12と同様に、各楽曲をクラスタリングして各楽曲のクラスタ情報を生成する。すなわち、楽曲クラスタリング部202は、各楽曲のクラスタリングの結果に応じたクラスタ情報を生成してクラスタリング済DB14に出力する。
【0109】
また、図13に示される推薦システム1の推薦候補選択部18は、嗜好ベクトル生成部19、利用者グループ化部20、差分検出部22、推薦クラスタ決定部23、抽出部24、および類似利用者検出部203を含む。
【0110】
類似利用者検出部203は、利用者履歴情報DB17に保持されている各利用者の嗜好ベクトルを比較することにより、楽曲が推薦される利用者と嗜好ベクトルが類似している他の利用者を検出する。より詳細には、類似利用者検出部203は、利用者の嗜好情報の一例である嗜好ベクトルを正規化し、正規化された各利用者の嗜好ベクトルから、利用者のそれぞれについて階層毎の重みを計算し、階層毎の重みと嗜好ベクトルとから、利用者間の嗜好の類似の度合いを示す類似度を計算し、計算された類似度から、第1の利用者と嗜好が類似している第2の利用者を検出する。
【0111】
次に、図14のフローチャートを参照して、図13に示される推薦システム1における、楽曲を推薦する処理の準備であるオフライン時の前処理の他の例について説明する。
【0112】
ステップS201において、メタデータクラスタリング部201は、楽曲DB11から楽曲のメタデータを取得して、取得したメタデータの次元を圧縮する。例えば、ステップS201において、メタデータクラスタリング部201は、楽曲DB11から取得した楽曲のメタデータの次元を、LSA(the latent semantic analysis)、PLSA(the probabilistic latent semantic analysis)、または数量化III類などの手法により圧縮する。
【0113】
なお、ステップS201において、メタデータクラスタリング部201は、楽曲のメタデータをベクトル化するようにしてもよい。
【0114】
ステップS202において、メタデータクラスタリング部201は、各楽曲のメタデータをクラスタリングする。例えば、ステップS202において、メタデータクラスタリング部201は、各楽曲のメタデータをソフトクラスタリングする。
【0115】
より具体的には、例えば、図15で示されるように、メタデータクラスタリング部201は、それぞれの階層内において、アイテムの各クラスタへの帰属重みの和が1となるように、各楽曲のメタデータをソフトクラスタリングする。
【0116】
例えば、ABC123である楽曲IDで特定される楽曲のメタデータの第1階層における第1のクラスタ、第2のクラスタ、第3のクラスタ、および第4のクラスタへの帰属重みは、それぞれ、0.0、0.8、0.0、および0.2である。ABC123である楽曲IDで特定される楽曲のメタデータの第2階層における第5のクラスタ、第6のクラスタ、第7のクラスタ、および第8のクラスタへの帰属重みは、それぞれ、0.4、0.6、0.0、および0.0である。ABC123である楽曲IDで特定される楽曲のメタデータの第3階層における第9のクラスタ、第10のクラスタ、および第11のクラスタへの帰属重みは、それぞれ、0.0、0.0、および1.0である。また、ABC123である楽曲IDで特定される楽曲のメタデータの第n階層における4つのクラスタのそれぞれへの帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。
【0117】
例えば、CTH863である楽曲IDで特定される楽曲のメタデータの第1階層における第1のクラスタ、第2のクラスタ、第3のクラスタ、および第4のクラスタへの帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。CTH863である楽曲IDで特定される楽曲のメタデータの第2階層における第5のクラスタ、第6のクラスタ、第7のクラスタ、および第8のクラスタへの帰属重みは、それぞれ、0.0、0.5、0.5、および0.0である。CTH863である楽曲IDで特定される楽曲のメタデータの第3階層における第9のクラスタ、第10のクラスタ、および第11のクラスタへの帰属重みは、それぞれ、0.7、0.3、および0.0である。また、CTH863である楽曲IDで特定される楽曲のメタデータの第n階層における4つのクラスタのそれぞれへの帰属重みは、それぞれ、0.0、0.8、0.2、および0.0である。
【0118】
例えば、XYZ567である楽曲IDで特定される楽曲のメタデータの第1階層における第1のクラスタ、第2のクラスタ、第3のクラスタ、および第4のクラスタへの帰属重みは、それぞれ、0.0、0.4、0.6、および0.0である。XYZ567である楽曲IDで特定される楽曲のメタデータの第2階層における第5のクラスタ、第6のクラスタ、第7のクラスタ、および第8のクラスタへの帰属重みは、それぞれ、0.0、0.0、0.0、および1.0である。XYZ567である楽曲IDで特定される楽曲のメタデータの第3階層における第9のクラスタ、第10のクラスタ、および第11のクラスタへの帰属重みは、それぞれ、0.9、0.0、および0.1である。また、XYZ567である楽曲IDで特定される楽曲のメタデータの第n階層における4つのクラスタのそれぞれへの帰属重みは、それぞれ、0.3、0.0、0.0、および0.7である。
【0119】
なお、各楽曲のメタデータのソフトクラスタリングは、それぞれの階層内において、アイテム、すなわち楽曲の各クラスタへの帰属重みの和が1となるものに限られない。また、各アイテムが各階層において、いずれのクラスタに属さないものとしてもよい。
【0120】
ステップS203において、メタデータクラスタリング部201は、クラスタの層を割り当てる。
【0121】
ここで、図16および図17を参照して、メタデータのクラスタリングおよびクラスタの層の割り当てについて説明する。図16は、メタデータの例を示す図である。図16で示されるメタデータは、簡単のため、0または1のいずれかの値のカテゴリカルデータとされている。
【0122】
高次の分類としてのメタグループ1には、メタデータ1、メタデータ2、およびメタデータ3が属し、高次の分類としてのメタグループ2には、メタデータ4、メタデータ5、およびメタデータ6が属する。例えば、メタグループ1には、アーティストに関するメタデータが属し、メタデータ1は、アーティストの外観を示し、メタデータ2は、グループであることを示す。また、例えば、メタグループ2には、ジャンルに関するメタデータが属し、メタデータ4は、ポップスであることを示し、メタデータ5は、ロックであることを示す。
【0123】
図16に示す例において、ABC123である楽曲IDで特定される楽曲のメタデータ1乃至メタデータ6は、それぞれ、1,1,1,1,1,1であり、CTH863である楽曲IDで特定される楽曲のメタデータ1乃至メタデータ6は、それぞれ、0,1,0,0,1,1であり、XYZ567である楽曲IDで特定される楽曲のメタデータ1乃至メタデータ6は、それぞれ、1,1,1,1,1,1である。また、EKF534である楽曲IDで特定される楽曲のメタデータ1乃至メタデータ6は、それぞれ、1,0,1,0,0,1であり、OPQ385である楽曲IDで特定される楽曲のメタデータ1乃至メタデータ6は、それぞれ、1,0,1,1,0,0である。
【0124】
このとき、ABC123である楽曲IDで特定される楽曲乃至OPQ385である楽曲IDで特定される楽曲についての、メタデータ1をベクトルとみなす。同様に、ABC123である楽曲IDで特定される楽曲乃至OPQ385である楽曲IDで特定される楽曲についての、メタデータ2乃至メタデータ6のそれぞれをベクトルとみなす。すなわち、複数の楽曲についての1つのメタデータの値をベクトルとみなす。
【0125】
このベクトル同士の距離に注目する。
【0126】
図16で示される例において、ベクトルとみなされたメタデータ1、メタデータ3、メタデータ4が、マンハッタン距離1以内のクラスタに、また、メタデータ2、メタデータ5、メタデータ6が、マンハッタン距離1以内の他のクラスタに、まとまっている。
【0127】
そこで、これらのクラスタを、新たなメタデータの階層とする。すなわち、階層のそれぞれの層に、より近いメタデータが割り付けられる。
【0128】
図17は、このようにクラスタリングされ、層が割り付けられたメタデータの例を示す。図17に示す例において、第1層には、メタデータ1、メタデータ3、およびメタデータ4が属し、第2層には、メタデータ2、メタデータ5、およびメタデータ6が属する。
【0129】
このように、相関の高いメタデータの集まりでそれぞれの層が形成され、その中でコンテンツのクラスタリングが行われるので、ジャンルやアーティストなどをそのまま階層とするような通常の階層分けでは表現しきれない微妙なコンテンツ間の差をクラスタに反映することができる。
【0130】
図14に戻り、ステップS204において、楽曲クラスタリング部202は、層毎に楽曲をクラスタリングする。すなわち、楽曲クラスタリング部202は、各コンテンツを、割り当てられた階層のそれぞれにおいて複数のクラスタのいずれかに分類する。
【0131】
ステップS205およびステップS206は、それぞれ、図6のステップS2およびステップS3と同様なので、その説明は省略する。
【0132】
このようにすることで、メタデータによるコンテンツの表現の詳細度(表現の詳細さの度合い)を保ったまま、データ量および計算量を削減して、コンテンツをクラスタリングすることができる。
【0133】
また、以上のように、メタデータを階層化することにより、コンテンツ間の微妙な相違がよく表現されるようにコンテンツをクラスタリングすることができる。
【0134】
次に、類似利用者検出部203の詳細について説明する。
【0135】
図18は、類似利用者検出部203の構成の例を示すブロック図である。類似利用者検出部203は、正規化部231、重み計算部232、および類似度計算部233から構成される。
【0136】
正規化部231は、利用者の嗜好情報の一例である嗜好ベクトルを正規化する。重み計算部232は、正規化された各利用者の嗜好ベクトルから、利用者のそれぞれについて階層毎の重みを計算する。類似度計算部233は、階層毎の重みと嗜好ベクトルとから、楽曲を推薦しようとする利用者と、他の利用者との嗜好の類似の度合いを示す類似度を計算する。
【0137】
次に、図8のステップS21に対応する、類似利用者検出部203による、嗜好の類似する利用者Xの検出の処理を、図19のフローチャートを参照して説明する。
【0138】
ステップS231において、正規化部231は、利用者それぞれの嗜好ベクトルを正規化する。
【0139】
図20および図21を参照して、嗜好ベクトルの正規化について説明する。図20は、嗜好ベクトル生成部19において生成され、利用者履歴情報DB17に保持されている各利用者の嗜好ベクトルの例を示す図である。すなわち、図20は、正規化される前の嗜好ベクトルの例を示す。
【0140】
図20で示される嗜好ベクトルの要素のうち、最初の4つの要素が第1層に属し、次の4つの要素が第2層に属し、さらに次の3つの要素が第3層に属し、最後の4つの要素が第4層に属する。
【0141】
図20に示す例において、U001であるユーザIDで特定される利用者の嗜好ベクトルは、(0.0,2.8,0.0,2.2,0.4,0.6,0.8,0.0,0.5,0.4,0.4,0.0,0.5,0.4,0.0)である。ここで、それぞれ0.0,2.8,0.0,2.2である最初の4つの要素は、第1層に属し、それぞれ0.4,0.6,0.8,0.0である次の4つの要素は、第2層に属し、それぞれ0.5,0.4,0.4であるさらに次の3つの要素は、第3層に属し、それぞれ0.0,0.5,0.4,0.0である最後の4つの要素は、第4層に属する。
【0142】
図20に示す例において、U002であるユーザIDで特定される利用者の嗜好ベクトルは、(0.2,0.8,0.5,0.6,0.0,0.5,0.5,0.0,0.7,0.3,0.6,0.0,0.6,0.2,0.0)である。ここで、それぞれ0.2,0.8,0.5,0.6である最初の4つの要素は、第1層に属し、それぞれ0.0,0.5,0.5,0.0である次の4つの要素は、第2層に属し、それぞれ0.7,0.3,0.6であるさらに次の3つの要素は、第3層に属し、それぞれ0.0,0.6,0.2,0.0である最後の4つの要素は、第4層に属する。
【0143】
図20に示す例において、U003であるユーザIDで特定される利用者の嗜好ベクトルは、(0.0,2.2,0.1,1.6,0.0,1.0,2.0,1.4,0.0,1.2,0.1,0.3,0.4,0.6,0.7)である。ここで、それぞれ0.0,2.2,0.1,1.6である最初の4つの要素は、第1層に属し、それぞれ0.0,1.0,2.0,1.4である次の4つの要素は、第2層に属し、それぞれ0.0,1.2,0.1であるさらに次の3つの要素は、第3層に属し、それぞれ0.3,0.4,0.6,0.7である最後の4つの要素は、第4層に属する。
【0144】
例えば、ステップS231において、正規化部231は、それぞれの層におけるノルムが1になるように、それぞれの嗜好ベクトルを正規化する。
【0145】
図21は、図20の嗜好ベクトルを、それぞれの層におけるノルムが1になるように正規化した嗜好ベクトルの例を示す図である。
【0146】
図21に示す例において、U001であるユーザIDで特定される利用者の正規化された嗜好ベクトルは、(0.0,0.8,0.0,0.6,0.4,0.6,0.7,0.0,0.7,0.5,0.5,0.0,0.5,0.4,0.0)である。ここで、それぞれ0.0,0.8,0.0,0.6である最初の4つの要素は、第1層に属し、それぞれ0.4,0.6,0.7,0.0である次の4つの要素は、第2層に属し、それぞれ0.7,0.5,0.5であるさらに次の3つの要素は、第3層に属し、それぞれ0.0,0.5,0.4,0.0である最後の4つの要素は、第4層に属する。
【0147】
図21に示す例において、U002であるユーザIDで特定される利用者の正規化された嗜好ベクトルは、(0.2,0.7,0.4,0.5,0.0,0.7,0.7,0.0,0.7,0.3,0.6,0.0,0.8,0.3,0.0)である。ここで、それぞれ0.2,0.7,0.4,0.5である最初の4つの要素は、第1層に属し、それぞれ0.0,0.7,0.7,0.0である次の4つの要素は、第2層に属し、それぞれ0.7,0.3,0.6であるさらに次の3つの要素は、第3層に属し、それぞれ0.0,0.8,0.3,0.0である最後の4つの要素は、第4層に属する。
【0148】
図21に示す例において、U003であるユーザIDで特定される利用者の正規化された嗜好ベクトルは、(0.0,0.8,0.0,0.6,0.0,0.4,0.8,0.5,0.0,1.0,0.1,0.3,0.2,0.2,0.3)である。ここで、それぞれ0.0,0.8,0.0,0.6である最初の4つの要素は、第1層に属し、それぞれ0.0,0.4,0.8,0.5である次の4つの要素は、第2層に属し、それぞれ0.0,1.0,0.1であるさらに次の3つの要素は、第3層に属し、それぞれ0.3,0.2,0.2,0.3である最後の4つの要素は、第4層に属する。
【0149】
図19に戻り、ステップS232において、重み計算部232は、利用者それぞれの嗜好ベクトルの階層のそれぞれについて、重みを計算する。例えば、ステップS232において、重み計算部232は、それぞれの階層毎に、1つの階層に属する要素の分散である重みを計算する。
【0150】
図22は、利用者それぞれについて階層毎に計算された、それぞれの階層に属する要素の分散である重みの例を示す図である。図22に示す例において、U001であるユーザIDで特定される利用者についての第1層の重み、第2層の重み、第3層の重み、および第4層の重みは、それぞれ、0.17、0.10、0.01、および0.06である。
【0151】
U002であるユーザIDで特定される利用者についての第1層の重み、第2層の重み、第3層の重み、および第4層の重みは、それぞれ、0.05、0.17、0.05、および0.16である。また、U003であるユーザIDで特定される利用者についての第1層の重み、第2層の重み、第3層の重み、および第4層の重みは、それぞれ、0.16、0.10、0.31、および0.00である。
【0152】
ステップS233において、類似度計算部233は、利用者のそれぞれについて、重み付けした嗜好の類似度を計算する。ステップS234において、類似利用者検出部203は、利用者から、最大の嗜好の類似度の利用者Xを検出して、処理は終了する。
【0153】
仮に、式(1)により、利用者uおよび利用者vの類似度sim(u,v)を重み付けせずに計算するとすれば、利用者XをU001であるユーザIDで特定される利用者とした場合、U002であるユーザIDで特定される利用者およびU003であるユーザIDで特定される利用者についての類似度は、図23に示されるようになる。
【0154】
【数1】

【0155】
式(1)において、Lは、嗜好ベクトルの階層の数を示す値であり、lは、嗜好ベクトルの階層を特定する値である。C(l)は、嗜好ベクトルのクラスタの全体を示し、cは、クラスタを特定する値である。hは、正規化された嗜好ベクトルの要素の値を示す。
【0156】
U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素と、U002であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図23のU002であるユーザIDの第1層に配置した値である0.88が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素と、U002であるユーザIDで特定される利用者の嗜好ベクトルの要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図23のU002であるユーザIDの第2層、第3層、および第4層のそれぞれに配置した値である0.92、0.97、0.50が求められる。
【0157】
最終的に、U001であるユーザIDで特定される利用者とU002であるユーザIDで特定される利用者との嗜好の類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.88、0.92、0.97、および0.50を加算した値である3.27とされる。
【0158】
同様に、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素と、U003であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図23のU003であるユーザIDの第1層に配置した値である1.00が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素と、U003であるユーザIDで特定される利用者の嗜好ベクトルの要素とが、対応する要素同士で乗算され、乗算された結果が積算されると、図23のU003であるユーザIDの第2層、第3層、および第4層のそれぞれに配置した値である0.77、0.57、0.15が求められる。
【0159】
最終的に、U001であるユーザIDで特定される利用者とU003であるユーザIDで特定される利用者との嗜好の類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた1.00、0.77、0.57、および0.15を加算した値である2.50とされる。
【0160】
このように、重み付けせずに類似度を計算すると、U001であるユーザIDで特定される利用者とU002であるユーザIDで特定される利用者との嗜好の類似度が、U001であるユーザIDで特定される利用者とU003であるユーザIDで特定される利用者との嗜好の類似度より大きいので、最大の嗜好の類似度の利用者Xとして、U002であるユーザIDで特定される利用者が検出されることになる。
【0161】
これに対して、ステップS233において、類似度計算部233は、式(2)により、重み付けした、利用者uおよび利用者vの類似度sim(u,v)を計算する。
【0162】
【数2】

【0163】
式(1)において、Lは、嗜好ベクトルの階層の数を示す値であり、lは、嗜好ベクトルの階層を特定する値である。C(l)は、嗜好ベクトルのクラスタの全体を示し、cは、クラスタを特定する値である。hは、正規化された嗜好ベクトルの要素の値を示す。bは、階層のそれぞれについての重みを示す。
【0164】
図24は、利用者XをU001であるユーザIDで特定される利用者とした場合、U002であるユーザIDで特定される利用者およびU003であるユーザIDで特定される利用者についての重み付けした嗜好の類似度の例を示す図である。なお、図24に示される値は、式(2)で算出される類似度sim(u,v)を100倍したものである。
【0165】
U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素のそれぞれに、U001であるユーザIDで特定される利用者の第1層の重みが乗算され、U002であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素のそれぞれに、U002であるユーザIDで特定される利用者の第1層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図24のU002であるユーザIDの第1層に配置した値である0.72が求められる。
【0166】
同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のそれぞれに、U001であるユーザIDで特定される利用者の第1層の重みが乗算され、U002であるユーザIDで特定される利用者の嗜好ベクトルの要素のそれぞれに、U002であるユーザIDで特定される利用者の第1層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図24のU002であるユーザIDの第2層、第3層、および第4層のそれぞれに配置した値である1.54、0.03、0.48が求められる。
【0167】
最終的に、U001であるユーザIDで特定される利用者とU002であるユーザIDで特定される利用者との重み付けされた嗜好の類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.72、1.54、0.03、および0.48を加算した値である2.76とされる。
【0168】
同様に、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素のそれぞれに、U001であるユーザIDで特定される利用者の第1層の重みが乗算され、U003であるユーザIDで特定される利用者の嗜好ベクトルの要素のうち、第1層の要素のそれぞれに、U003であるユーザIDで特定される利用者の第1層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図24のU003であるユーザIDの第1層に配置した値である2.74が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定される利用者の嗜好ベクトルの要素のそれぞれに、U001であるユーザIDで特定される利用者の第1層の重みが乗算され、U003であるユーザIDで特定される利用者の嗜好ベクトルの要素のそれぞれに、U003であるユーザIDで特定される利用者の第1層の重みが乗算され、対応する要素同士で乗算され、乗算された結果が積算されると、図24のU003であるユーザIDの第2層、第3層、および第4層のそれぞれに配置した値である0.79、0.10、0.00が求められる。
【0169】
最終的に、U001であるユーザIDで特定される利用者とU003であるユーザIDで特定される利用者との重み付けされた嗜好の類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた2.74、0.79、0.10、および0.00を加算した値である3.64とされる。
【0170】
この結果、重み付けして類似度を計算すると、U001であるユーザIDで特定される利用者とU003であるユーザIDで特定される利用者との嗜好の類似度が、U001であるユーザIDで特定される利用者とU002であるユーザIDで特定される利用者との嗜好の類似度より大きいので、最大の嗜好の類似度の利用者Xとして、U003であるユーザIDで特定される利用者が検出される。
【0171】
図20で示される嗜好ベクトルに注目すると、U001であるユーザIDで特定される利用者の嗜好ベクトルの各要素の値は、第2層乃至第4層に比較して、第1層において大きく変化しているので、第2層乃至第4層に比較して、第1層の各要素の値が、U001であるユーザIDで特定される利用者の嗜好により関係すると予測される。
【0172】
U002であるユーザIDで特定される利用者の嗜好ベクトル、およびU003であるユーザIDで特定される利用者の嗜好ベクトルの第1層の各要素の値について注目すると、U003であるユーザIDで特定される利用者の嗜好ベクトルの第1層の各要素の値が、U002であるユーザIDで特定される利用者の嗜好ベクトルの第1層の各要素の値より、U001であるユーザIDで特定される利用者の嗜好ベクトルの第1層の各要素の値に近似している。従って、U002であるユーザIDで特定される利用者に比較して、U003であるユーザIDで特定される利用者の嗜好は、U001であるユーザIDで特定される利用者の嗜好に類似していると予測される。
【0173】
このように、重み付けすることによって、利用者の嗜好にあまり関係しないと予測される値に比較して、利用者の嗜好により関係すると予測される値によって、その値がより大きく変化する嗜好の類似度を求めることができるので、より正確に、嗜好の類似する利用者を検出することができる。
【0174】
なお、ステップS232において、重み計算部232は、例えば、それぞれの階層に属する要素の分散である重みを計算すると説明したが、これに限らず、階層における要素のばらつきが大きい場合により大きい値となる重みを計算すればよく、例えば、式(3)によりエントロピーHを算出し、1からエントロピーHを引き算した結果得られる値である重みを計算するようにしてもよい。
【0175】
【数3】

【0176】
このように、情報の欠落を最小限に抑えつつ、適切なコンテンツを選択するための計算量を削減することができる。また、利用者がどのような情報に着目してコンテンツを選択しているかを確実に反映したコンテンツを提示することができるようになる。
【0177】
なお、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0178】
また、プログラムは、1台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
【0179】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0180】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0181】
【図1】本発明を適用した推薦システムの構成例を示すブロック図である。
【図2】楽曲のメタデータを分類するクラスタとクラスタ層の概念を示す図である。
【図3】楽曲−クラスタ対応表の一例を示す図である。
【図4】クラスタ−楽曲対応表の一例を示す図である。
【図5】利用者の嗜好ベクトルの一例を示す図である。
【図6】オフライン時の前処理を説明するフローチャートである。
【図7】第1の推薦処理を説明するフローチャートである。
【図8】第2および3の推薦処理を説明するフローチャートである。
【図9】第4の推薦処理を説明するフローチャートである。
【図10】第5および6の推薦処理を説明するフローチャートである。
【図11】第7の推薦処理を説明するフローチャートである。
【図12】汎用パーソナルコンピュータの構成例を示すブロック図である。
【図13】本発明の一実施の形態の推薦システムの他の構成の例を示すブロック図である。
【図14】オフライン時の前処理の他の例を説明するフローチャートである。
【図15】ソフトクラスタリングされた各楽曲のメタデータの例を示す図である。
【図16】各楽曲のメタデータの例を示す図である。
【図17】クラスタリングされた各楽曲のメタデータの例を示す図である。
【図18】類似利用者検出部の構成の例を示すブロック図である。
【図19】嗜好の類似する利用者Xの検出の処理を説明するフローチャートである。
【図20】嗜好ベクトルの例を示す図である。
【図21】正規化された嗜好ベクトルの例を示す図である。
【図22】重みの例を示す図である。
【図23】重み付けせずに計算した類似度の例を示す図である。
【図24】重み付けして計算した類似度の例を示す図である。
【符号の説明】
【0182】
1 推薦システム, 11 楽曲DB, 12 クラスタリング部, 13 キーワード設定部, 14 クラスタリング済DB, 15 クラスタ−楽曲対応表, 16 楽曲−クラスタ対応表, 17 利用者履歴情報DB, 18 推薦候補選択部, 19 嗜好ベクトル生成部, 20 類似利用者検出部, 21 利用者グループ化部, 22 差分検出部, 23 推薦クラスタ決定部, 24 抽出部, 25 楽曲選択部, 26 新規性判定部, 27 選択理由生成部, 28 提示部, 100 パーソナルコンピュータ, 101 CPU, 111 記録媒体, 201 メタデータクラスタリング部, 202 楽曲クラスタリング部, 203 類似利用者検出部, 231 正規化部, 232 重み計算部, 233 類似度計算部

【特許請求の範囲】
【請求項1】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置において、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類するコンテンツ分類手段と、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第1のクラスタとの対応関係を示すデータベースを保持する保持手段と、
前記利用者のコンテンツに対する履歴情報を管理する管理手段と、
前記履歴情報に基づき、注目する第1のクラスタを特定し、特定した前記第1のクラスタに分類されているコンテンツを選択する選択手段と、
選択された前記コンテンツを提示する提示手段と
を含む情報処理装置。
【請求項2】
前記選択手段は、
第1の利用者と前記履歴情報が類似している第2の利用者を検出する検出手段と、
前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段と、
特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する
請求項1に記載の情報処理装置。
【請求項3】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段と、
前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、
前記選択手段は、
第1の利用者と同じグループに属する第2の利用者を検出する検出手段と、
前記第1の利用者の履歴情報上に存在せず、前記第2の利用者の履歴情報上に存在するコンテンツが分類されている第1のクラスタを特定する特定手段と、
特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する
請求項1に記載の情報処理装置。
【請求項4】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段をさらに含み、
前記選択手段は、
第1の利用者と前記嗜好情報で示される嗜好が類似している第2の利用者を検出する検出手段と、
前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段と、
特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する
請求項1に記載の情報処理装置。
【請求項5】
前記検出手段は、
利用者の嗜好情報を正規化する正規化手段と、
正規化された各利用者の嗜好情報から、利用者のそれぞれについて階層毎の重みを計算する重み計算手段と、
階層毎の重みと前記嗜好情報とから、利用者のうちの第1の利用者と、利用者のうちの他の利用者との嗜好の類似の度合いを示す類似度を計算する類似度計算手段と
を含み、
計算された類似度から、第1の利用者と嗜好が類似している第2の利用者を検出する
請求項4に記載の情報処理装置。
【請求項6】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段と、
前記嗜好情報に基づいて利用者をグループ化するグループ化手段とをさらに含み、
前記選択手段は、
第1の利用者と同じグループに属する第2の利用者を検出する検出手段と、
前記第1の利用者の嗜好情報と前記第2の利用者の嗜好情報に基づいて注目する第1のクラスタを特定する特定手段と、
特定された前記第1のクラスタに分類されているコンテンツを抽出する抽出手段とを含み、
前記提示手段は、前記第1の利用者に対して抽出された前記コンテンツを提示する
請求項1に記載の情報処理装置。
【請求項7】
前記コンテンツ分類手段によって前記メタデータが分類される第1のクラスタのそれぞれに対してキーワードを設定する設定手段と、
前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を作成する作成手段とをさらに含み、
前記提示手段は、前記理由文も提示する
請求項1に記載の情報処理装置。
【請求項8】
コンテンツのメタデータを複数の第2のクラスタのいずれかに分類し、第2のクラスタに前記階層を割り当てるメタデータ分類手段を更に含み、
前記コンテンツ分類手段は、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類する
請求項1に記載の情報処理装置。
【請求項9】
利用者の履歴情報と前記データベースに基づき、前記利用者の嗜好を前記第1のクラスタ単位で示す嗜好情報を生成する生成手段をさらに含み、
前記選択手段は、全部の前記階層の全部の前記第1のクラスタのうち、前記嗜好情報で示される前記第1のクラスタであって、最も多くの前記第1のクラスタに分類されているコンテンツを選択する
請求項1に記載の情報処理装置。
【請求項10】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に提示する情報処理装置の情報処理方法において、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、
前記利用者のコンテンツに対する履歴情報を管理し、
前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、
選択された前記コンテンツを提示する
ステップを含む情報処理方法。
【請求項11】
コンテンツ群のなかから所定の条件を満たすコンテンツを選択して利用者に推薦するためのプログラムであって、
前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた各階層において複数のクラスタのいずれかに分類し、
各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持し、
前記利用者のコンテンツに対する履歴情報を管理し、
前記履歴情報に基づき、注目するクラスタを特定し、特定した前記クラスタに分類されているコンテンツを選択し、
選択された前記コンテンツを提示する
ステップを含む処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate