以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
本発明の一側面の情報処理装置(例えば、図1の推薦システム1)は、コンテンツ群のなかから所定の条件を満たすコンテンツを選択する情報処理装置であって、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類するコンテンツ分類手段(例えば、図1のクラスタリング部12)と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記第1のクラスタとの対応関係を示すデータベースを保持する保持手段(例えば、図1のクラスタ情報データベース14)と、前記階層毎に前記所定の条件に対応する前記第1のクラスタを指定し、指定した前記第1のクラスタに対応するコンテンツを特定する特定手段(例えば、図1の楽曲抽出部23)と、前記特定手段によって特定された前記コンテンツを提示する提示手段(例えば、図1の楽曲提示部29)とを含むことを特徴とする。
前記コンテンツ分類手段によって前記コンテンツが分類される各第1のクラスタに、ユーザの嗜好の程度を示す嗜好値を対応付けて記憶する記憶手段(例えば、図1の嗜好情報データベース24)をさらに設け、前記特定手段には、前記記憶手段によって記憶されている嗜好値に基づいて前記第1のクラスタを指定し、指定した前記第1のクラスタに対応するコンテンツを特定させることができる。
前記コンテンツ分類手段によって前記コンテンツが分類される各第1のクラスタに対してキーワードを設定する設定手段(例えば、図1のキーワード設定部13)と、前記設定手段によって設定されたキーワードを用い、コンテンツの提示理由を表す理由文を生成する生成手段(例えば、図1の選択理由生成部28)とをさらに設け、前記提示手段には、前記理由文も提示させることができる。
コンテンツのメタデータを複数の第2のクラスタのいずれかに分類し、第2のクラスタに前記階層を割り当てるメタデータ分類手段(例えば、図17のメタデータクラスタリング部201)をさらに設け、前記コンテンツ分類手段(例えば、図17の楽曲クラスタリング部202)には、各コンテンツを、割り当てられた前記階層のそれぞれにおいて複数の第1のクラスタのいずれかに分類させることができる。
本発明の一側面の情報処理方法またはプログラムは、前記コンテンツ群を構成する各コンテンツを、コンテンツのメタデータに応じた階層のそれぞれにおいて複数のクラスタのいずれかに分類する分類ステップ(例えば、図1のクラスタリング部12による前処理)と、各コンテンツと各コンテンツのそれぞれが分類された前記階層における前記クラスタとの対応関係を示すデータベースを保持する保持ステップ(例えば、図1のクラスタリング部12による前処理)と、前記階層毎に前記所定の条件に対応する前記クラスタを指定し、指定した前記クラスタに対応するコンテンツを特定する特定ステップ(例えば、図11のステップS1乃至12)と、特定された前記コンテンツを提示する提示ステップ(例えば、図11のステップS14)とを含む。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は本発明の一実施の形態である推薦システムの構成例を示している。この推薦システム1は、ユーザの嗜好に合致した楽曲、あるいはユーザが指定した楽曲に類似した楽曲を検索し、ユーザに提示するものである。なお、推薦システム1は、楽曲以外のコンテンツ、例えばテレビジョン番組、映画、書籍などを推薦する場合にも適用することが可能である。
推薦システム1は、検索の対象となる数多くの楽曲のメタデータが記録されている楽曲データベース(DB)11、楽曲データベース11に記録されている各楽曲を、楽曲のメタデータに基づいてクラスタリングして各楽曲のクラスタ情報を生成するクラスタリング部12、各クラスタ層および各クラスタの特徴をそれぞれ示すキーワードを設定するキーワード設定部13、および、各楽曲のクラスタ情報を保持するクラスタ情報データベース(DB)14から構成される。
さらに、推薦システム1は、検索しようとする楽曲の類似元となる楽曲(以下、元楽曲と称する)を指定する検索楽曲指定部21、元楽曲のメタデータを従来からあるクラスタ識別手法(クラシフィケーション手法)を用いて最適なクラスタにマッピングするクラスタマッピング部22、ユーザに提示する楽曲を1以上抽出する楽曲抽出部23、ユーザの嗜好を示す嗜好情報が記録されている嗜好情報データベース(DB)24、ユーザの嗜好を入力する嗜好入力部25、抽出された楽曲の中からランダムに1つの楽曲を選択するランダム選択部26、抽出された楽曲と元楽曲またはユーザの嗜好との類似度を算出して最も類似度の高い楽曲を選択する類似度算出部27、ランダム選択部26または類似度算出部27における選択の理由を示す選択理由文を生成する選択理由生成部28、および、選択した楽曲と選択理由文をユーザに提示する楽曲提示部29から構成される。
楽曲データベース(DB)11は、音楽CDに収録されている楽曲のメタデータを供給するインタネット上のデータサーバであるCDDB(CD Data Base)やMusic Naviなどに相当する。
クラスタリング部12は、楽曲データベース11の全ての楽曲に対し、楽曲のメタデータの各項目(タイトル、アーティスト名、ジャンル、レビューテキスト、テンポ、ビート、リズムなど)を、図2に示すようなクラスタ層(第1乃至n層)のいずれかに分類し、各項目の実情報を分類したクラスタ層に設けられる複数のクラスタのいずれかに楽曲を分類(クラスタリング)する。
なお、1つの楽曲を複数のクラスタに分類してもよい。同一クラスタ層に存在するクラスタ間の距離(類似の程度を示す)は既知であるものとする。このクラスタリングの手法については後述する。そして、メタデータの代わりに楽曲の特徴を示す情報として、メタデータの各項目の実情報を分類したクラスタのクラスタID(図2におけるCL11など)から成るクラスタ情報を生成してクラスタ情報データベース14に出力する。
なお、分類に適したクラスタが存在しない場合、新たにクラスタを新設してもよい。各クラスタのサイズは任意であって複数の楽曲を包含できるものである。なお、単一の楽曲だけしか分類することができないクラスタを設けてもよい。この場合、当該クラスタのクラスタIDに唯一分類可能な楽曲の実情報のID(アーティストID、アルバムID、タイトルID)を用いてもよい。
クラスタ情報データベース14は、クラスタリング部12によって生成された各楽曲のクラスタ情報を保持している。また、クラスタ情報データベース14は、保持するクラスタ情報に基づき、各クラスタにメタデータが分類された楽曲の楽曲IDを示すクラスタ−楽曲ID情報を生成し、これを保持している。さらに、クラスタ情報データベース14は、キーワード設定部13によって設定された各クラスタ層や各クラスタに対して設定されたキーワードも保持している。
図3はクラスタ情報の一例を示している。同図においては、例えば、楽曲ID=ABC123の楽曲のクラスタ情報は、(CL12、CL21、CL35,CL47,CL52,…,CLn2)であることを示している。また例えば、楽曲ID=CTH863の楽曲のクラスタ情報は、クラスタID(CL11、CL25、CL31,CL42,CL53,…,CLn1)であることを示している。
図4は、図3に示されたクラスタ情報に対応するクラスタ−楽曲ID情報の一例を示している。同図においては、例えば、クラスタID=CL11には、楽曲ID=CTH863が対応することを示している。また例えば、クラスタID=CL21には、楽曲ID=ABC123が対応することを示している。
なお、クラスタリング部12、キーワード設定部13、およびクラスタ情報データベース14の処理は、類似楽曲検索処理や楽曲推薦処理(後述)を実行する以前に予め実行する必要がある。
図1に戻る。検索楽曲指定部21は、ユーザによって指定される元楽曲の楽曲IDとメタデータをクラスタマッピング部22に出力する。クラスタマッピング部22は、検索楽曲指定部21から入力された元楽曲のメタデータを、既存のクラスタ識別手法(クラシフィケーション手法)を用いて最適クラスタを選ぶ。クラスタ識別手法としては、k-Nearest-Neighbor法などを適用することができる。なお、元楽曲のクラスタ情報が既にクラスタ情報データベース14に存在する場合、それを読み出して楽曲抽出部23に供給するようにしてもよい。
楽曲抽出部23は、クラスタマッピング部22から供給される元楽曲のクラスタ情報に基づいてクラスタ情報データベース14を参照し、元楽曲と同じクラスタに分類されている楽曲の楽曲IDを取得してランダム選択部26または類似度算出部27に供給する。また、楽曲抽出部23は、嗜好情報データベース24の嗜好情報に基づいてクラスタ情報データベース14を参照して、ユーザの嗜好に合致する楽曲の楽曲IDを取得してランダム選択部26または類似度算出部27に供給する。
嗜好情報データベース24は、ユーザの嗜好を示す嗜好情報が記録されている。嗜好情報には、各クラスタに対するユーザの嗜好の程度を示す嗜好値が記録されている。この嗜好値は正規化された値であり、嗜好入力部25によって更新される。また、嗜好情報データベース24は、各クラスタ層における嗜好値の分散を演算し、嗜好値の分散が最も小さい(すなわち、ユーザの嗜好が特定のクラスタに集中している)クラスタ層を検出する。
図5は嗜好情報の一例を示している。同図においては、例えばクラスタCL11に対する嗜好値が0.5であることを示している。また例えば、クラスタCL32に対する嗜好値が0.1であることを示している。
嗜好入力部25は、楽曲に対するユーザの操作(再生、録音、スキップ、消去など)の履歴に基づいて各クラスタにそれぞれ対応する嗜好値を更新する。また、嗜好入力部25は、ユーザからの設定に基づき、ユーザが重視しているクラスタ層をクラスタ情報データベース14に通知する。
ランダム選択部26は、楽曲抽出部23によって抽出された楽曲の中からランダムに楽曲IDを1つ選択して選択理由生成部28に出力する。類似度算出部27は、楽曲抽出部23によって抽出された楽曲と元楽曲またはユーザの嗜好との類似度を算出し、最も類似度の高い楽曲を選択して選択理由生成部28に出力する。なお、ランダム選択部26と類似度算出部27は、双方が動作する必要はなく、いずれか一方が動作すればよい。
選択理由生成部28は、クラスタ情報データベース14からクラスタ層やクラスタに対応するキーワードを取得し、取得したキーワードなどを用いて選択の理由を示す選択理由文を生成し、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。
選択理由文は以下のように生成する。例えば、類似した楽曲や嗜好に合致した楽曲を選択するときに優先したクラスタ層に設定されたキーワードやクラスタのキーワードを用いる。具体的には、レビューテキストに対応するクラスタ層を最も優先した場合、「レビューテキストに出てくる「夏」、「海辺」がお気に入りじゃない?」などの選択理由文を生成する。あるいは、選択された楽曲のレビューテキストをそのまま選択理由文として引用したり、選択された楽曲のレビューテキストから抽出した単語を用いて選択理由文を生成する。なお、レビューテキストから選択理由文に用いる単語を抽出するにはTf/idf法を適用することができる。
楽曲提示部29は、例えばディスプレイなどからなり、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
次に、クラスタリング部12によるメタデータの分類(クラスタリング)について説明する。
クラスタリング手法はいかなる手法でもかまわないが、クラスタ層毎に最適なクラスタリング手法、距離尺度を選ぶようにする。例えば、メタデータの実情報が数値であるならばそのまま、タイトルなどの場合は主成分分析等の数量化手法を用いて数値にして、ユークリッド距離などの距離尺度を定義してクラスタリングすることになる。代表的なクラスタリング手法としは、K-means法、階層クラスタリング法などを挙げることができる。
この際、嗜好距離を反映したクラスタリング(例えば、制約付きクラスタリング)によって実施することが望ましい。そのためには、事前調査により部分的な正解集(嗜好的に近い実情報の集合、遠い実情報の集合など)を作り、それに適合する数値表現、距離、クラスタリング手法を用いるものとする。またさらに、形成される各クラスタ層の独立性が高くなるクラスタリング手法(すなわち、特性の異なるクラスタリング手法)を選ぶことが望ましい。
例えば4種類のクラスタリング手法(以下、第1乃至4手法と称する)の中から特性の異なる2種類のクラスタリング手法を選択する方法について、図6乃至図10を参照して説明する。
まず、第1乃至4手法によってメタデータの実情報であるアーティストA乃至Jをクラスタリングする。そして図6に示すような結果が得られたとする。
すなわち、第1手法により、アーティストA乃至CがクラスタCL1に、アーティストD乃至GがクラスタCL2に、アーティストH乃至JがクラスタCL3にクラスタリングされ、第2手法により、アーティストA,BがクラスタCL1に、アーティストC乃至FがクラスタCL2に、アーティストG乃至JがクラスタCL3にクラスタリングされ、第3手法により、アーティストA,D,G,JがクラスタCL1に、アーティストB,E,HがクラスタCL2に、アーティストC,F,IがクラスタCL3にクラスタリングされ、第4手法により、アーティストD,I,JがクラスタCL1に、アーティストE乃至GがクラスタCL2に、アーティストA乃至CおよびHがクラスタCL3にクラスタリングされたとする。
この場合、第1乃至4手法による結果の重複率(%)は図7に示すとおりである。すなわち、第1手法と第2手法の重複率は0.8、第1手法と第3手法の重複率は0.3、第1手法と第4手法の重複率は0.4、第2手法と第3手法の重複率は0.3、第2手法と第4手法の重複率は0.3、第3手法と第4手法の重複率は0.4である。
図7に示された重複率が小さいほど2つの手法の特性が異なると考えられるので、重複率が最小値の0.3である第1手法と第3手法の組み合わせ、第2手法と第3手法の組み合わせ、または第2手法と第4手法の組み合わせを採用することが望ましい。
一方、ユーザ自身によってアーティストA乃至Jのうちの二人が同じクラスタに分類されるべきであるか否かを判定させた場合、図8に示すような結果が得られたとする。ただし、同図において、1は同じクラスタに分類されるべきであることを、0は異なるクラスタに分類されるべきであることを意味する。すなわち、同図においては、例えば、アーティストAがアーティストB,C,F,H,Iと同じクラスタに分類されるべきであると判断されたが示されており、アーティストBがアーティストC,D,E,Jと同じクラスタに分類されるべきであることが示されている。
図8に示された結果と正解として理想的なクラスタリング結果であるとするならば、上述した第1乃至4手法の正解率は図9に示すとおりである。すなわち、第1手法の正解率は62.2%、第2手法の正解率は55.6%、第3手法の正解率は40.0%、第4手法の正解率は66.7%である。
したがって、正解率を重視するならば、正解率が高い第1手法と第4手法の組み合わせを採用することが望ましい。
さらに、重複率と正解率を加味したクラスタリング手法の組み合わせを求めるため、第1乃至4手法の正解の重複率を算出すれば、図10に示すとおりとなる。図9に示された結果から正解率が極端に低い手法を特定し、特定した当該手法を含まない組み合わせのうちの正解率の重複率が最も低い組み合わせを採用すればよい。すなわち、正解率が極端に低い手法として第3手法が特定され、第3手法を含まない組み合わせのうちの正解の重複率が最も低いものとして第2手法と第4手法の組み合わせが選択される。
なお、上述した重複率や正解率については絶対的な閾値を指定して、それ閾値を満たすことができない手法を除外してもよいし、バランスがとれた手法を採用するために、2つの指標(重複率と正解率)に基づいて例えば、以下に示す2例のような総合的な指標を作成し、総合的な指標に基づいてクラスタリングの手法の組み合わせを選択するようにしてもよい。
総合的な指標=正解率×(1−重複率)
総合的な指標=α・正解率×β(1−重複率) (α,βは所定の係数)
次に、元楽曲に類似した楽曲を提示する3種類の類似楽曲検索処理と、ユーザの嗜好に合致する楽曲を提示する2種類の楽曲推薦処理について説明する。
なお、以下に説明する類似楽曲検索処理や楽曲推薦処理が行われる前処理として、クラスタリング部12、キーワード設定部13、およびクラスタ情報データベース14が動作しており、既にクラスタ情報データベース14には、クラスタリング部12によって生成された各楽曲のクラスタ情報と、クラスタ情報データベース14が生成したクラスタ−楽曲ID情報と、キーワード設定部13によって設定された各クラスタ層や各クラスタに対して設定されたキーワードが保持されているものとする。
まず、類似楽曲検索処理について説明する。
図11は、第1の類似楽曲検索処理を説明するフローチャートである。第1の類似楽曲検索処理の前処理として、クラスタ情報データベース14は、嗜好入力部25から入力されるユーザの各クラスタ層に対する優先度に応じ、優先順位が高い方のクラスタ層から順に、層番号を1,2,…,nまで振り直しているものとする。
ステップS1において、検索楽曲指定部21は、ユーザによって指定される元楽曲の楽曲IDとメタデータをクラスタマッピング部22に出力する。クラスタマッピング部22は、入力された元楽曲のメタデータを、従来のクラスタ識別手法を用いて最適クラスタにマッピングし、この結果(以下、最適クラスタ情報と称する)を楽曲抽出部23に供給する。
ステップS2において、楽曲抽出部23は、クラスタ情報データベース14を参照し、クラスタ情報データベース14にクラスタ情報が保持されている全ての楽曲の楽曲IDを要素とする集合Cを想定する。ステップS3において、楽曲抽出部23は、層番号iを1に初期化する。
ステップS4において、楽曲抽出部23は、層番号iがn(nはクラスタ層の総数)以下であるか否かを判定する。層番号iがn以下であると判定された場合、処理はステップS5に進む。ステップS5において、楽曲抽出部23は、クラスタマッピング部22から入力された元楽曲の最適クラスタ情報に基づき、元楽曲が第i層においてどのクラスタに属しているのかを特定する。特定したクラスタをCLixと称する。
ステップS6において、楽曲抽出部23は、クラスタ情報データベース14のクラスタ−楽曲ID情報を参照し、特定したクラスタCLixに属する楽曲の楽曲IDを取得する。ステップS7において、楽曲抽出部23は、ステップS6の処理で取得した楽曲IDを要素とする集合Aを想定する。ステップS8において、楽曲抽出部23は、集合Cと集合Aに共通する要素(楽曲ID)を抽出し、ステップS9において、共通する楽曲IDが存在するか否か(すなわち、ステップS8の処理で、集合Cと集合Aに共通する楽曲IDを抽出できたか否か)を判定する。集合Cと集合Aに共通する楽曲IDが存在すると判定した場合、処理はステップS10に進み、集合Cの要素を、ステップS8で抽出した共通する楽曲IDだけに減少させる。ステップS11において、楽曲抽出部23は、層番号iを1だけインクリメントしてステップS4に戻り、それ以降の処理を繰り返す。
なお、ステップS9において、集合Cと集合Aに共通する楽曲IDが存在しないと判定された場合、ステップS10はスキップされ、処理はステップS11に進む。
このステップS4乃至S11の処理が繰り返されることにより、集合Cの要素(楽曲ID)が減少されてゆく。そして、ステップS4において、層番号iがnよりも大きくなり、n以下ではないと判定された場合、処理はステップS12に進む。
ステップS12において、楽曲抽出部23は、集合Cの要素(楽曲ID)をランダム選択部26に出力する。ランダム選択部26は、集合Cの中からランダムに1つの楽曲を選択して選択理由生成部28に出力する。なお、ランダム選択部26ではなく、類似度算出部27に集合Cの要素(楽曲ID)を出力し、類似度算出部27により、1つの楽曲を選択するようにしてもよい。
ステップS13において、選択理由生成部28は、ランダム選択部26(または類似度算出部27)によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS14において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
以上説明した第1の類似楽曲検索処理によれば、元楽曲の特徴ベクトルと他の楽曲の特徴ベクトルとの距離の算出を必須とせず、各クラスタ層に対するユーザの優先順位を考慮しつつ、元楽曲に類似した楽曲を提示することが可能となる。
図12は、第2の類似楽曲検索処理を説明するフローチャートである。第2の類似楽曲検索処理の前処理として、嗜好情報データベース24は、各クラスタ層における嗜好値の分散を演算し、嗜好値の分散が最も小さい(すなわち、ユーザの嗜好が特定のクラスタに集中している)クラスタ層を検出し、嗜好が集中しているクラスタを特定しているものとする。当該クラスタ層の層番号をP、当該クラスタをCLppとする。
ステップS31において、嗜好情報データベース24は、各クラスタ層における嗜好値の分散を演算し、嗜好値の分散が最も小さい(すなわち、ユーザの嗜好が特定のクラスタに集中している)クラスタ層を検出して第P層とする(Pは1乃至nの整数)。さらに、第P層において嗜好が集中しているクラスタを特定してCLppとする。
ステップS32において、検索楽曲指定部21は、ユーザによって指定される元楽曲の楽曲IDとメタデータをクラスタマッピング部22に出力する。クラスタマッピング部22は、入力された元楽曲のメタデータを、従来のクラスタ識別手法を用いて最適クラスタにマッピングし、この最適クラスタ情報を生成し楽曲抽出部23に供給する。
ステップS33において、楽曲抽出部23は、クラスタ情報データベース14を参照し、クラスタ情報データベース14にクラスタ情報が保持されている全ての楽曲の楽曲IDを要素とする集合Cを想定する。ステップS34において、楽曲抽出部23は、層番号iを1に初期化する。
ステップS35において、楽曲抽出部23は、層番号iがn(nはクラスタ層の総数)以下であるか否かを判定する。層番号iがn以下であると判定された場合、処理はステップS36に進む。ステップS36において、楽曲抽出部23は、ステップS31で特定したPと層番号iが一致するか否かを判定し、一致すると判定した場合、ステップS37に進み、次のステップ39における処理対象をクラスタCLppに特定する。
一方、ステップS36において、ステップS31で特定したPと層番号iが一致しないと判定された場合、ステップS38に進む。ステップS38において、楽曲抽出部23は、クラスタマッピング部22から入力された元楽曲の最適クラスタ情報に基づき、元楽曲が第i層においてどのクラスタに属しているのかを特定する。特定したクラスタをCLixと称する。
ステップS39において、楽曲抽出部23は、クラスタ情報データベース14のクラスタ−楽曲ID情報を参照し、ステップS37の処理で特定したクラスタCLppまたはステップS38の処理で特定したクラスタCLixに属する楽曲の楽曲IDを取得する。
ステップS40において、楽曲抽出部23は、ステップS39の処理で取得した楽曲IDを要素とする集合Aを想定する。ステップS41において、楽曲抽出部23は、集合Cと集合Aに共通する要素(楽曲ID)を抽出し、ステップS42において、共通する楽曲IDが存在するか否か(すなわち、ステップS41の処理で、集合Cと集合Aに共通する楽曲IDを抽出できたか否か)を判定する。集合Cと集合Aに共通する楽曲IDが存在すると判定した場合、処理はステップS43に進み、集合Cの要素を、ステップS41で抽出した共通する楽曲IDだけに減少させる。ステップS44において、楽曲抽出部23は、層番号iを1だけインクリメントしてステップS35に戻り、それ以降の処理を繰り返す。
なお、ステップS42において、集合Cと集合Aに共通する楽曲IDが存在しないと判定された場合、ステップS43はスキップされ、処理はステップS44に進む。
このステップS35乃至S44の処理が繰り返されることにより、集合Cの要素(楽曲ID)が減少されてゆく。そして、ステップS35において、層番号iがnよりも大きくなり、n以下ではないと判定された場合、処理はステップS45に進む。
ステップS45において、楽曲抽出部23は、集合Cの要素(楽曲ID)をランダム選択部26に出力する。ランダム選択部26は、集合Cの中からランダムに1つの楽曲を選択して選択理由生成部28に出力する。なお、ランダム選択部26ではなく、類似度算出部27に集合Cの要素(楽曲ID)を出力し、類似度算出部27により、1つの楽曲を選択するようにしてもよい。
ステップS46において、選択理由生成部28は、ランダム選択部26(または類似度算出部27)によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS47において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
以上説明した第2の類似楽曲検索処理によれば、元楽曲の特徴ベクトルと他の楽曲の特徴ベクトルとの距離の算出を必須とせず、ユーザの嗜好を示す嗜好値が高いクラスタに属する楽曲であって、かつ、元楽曲に類似した楽曲を提示することが可能となる。
図13は、第3の類似楽曲検索処理を説明するフローチャートである。
ステップS61において、検索楽曲指定部21は、ユーザによって指定される元楽曲の楽曲IDとメタデータをクラスタマッピング部22に出力する。クラスタマッピング部22は、入力された元楽曲のメタデータを従来のクラスタ識別手法を用いて最適クラスタにマッピングし、この最適クラスタ情報を楽曲抽出部23に供給する。
ステップS62において、楽曲抽出部23は、評価値を付けた楽曲IDを要素とする集合Cを想定して初期化する。すなわち、この時点で集合Cは空集合である。ステップS63において、楽曲抽出部23は、層番号iを1に初期化する。
ステップS64において、楽曲抽出部23は、層番号iがn(nはクラスタ層の総数)以下であるか否かを判定する。層番号iがn以下であると判定された場合、処理はステップS65に進む。ステップS65において、楽曲抽出部23は、クラスタマッピング部22から入力された元楽曲の最適クラスタ情報に基づき、元楽曲が第i層においてどのクラスタに属しているのかを特定する。特定したクラスタをCLixと称する。
ステップS66において、楽曲抽出部23は、嗜好情報データベース24を参照して、ステップS65の処理で特定したクラスタCLixに対するユーザの嗜好値を取得し、取得した嗜好値に基づいて、クラスタCLixに属する楽曲に対して付与する評価値を決定する。
ステップS67において、楽曲抽出部23は、クラスタ情報データベース14のクラスタ−楽曲ID情報を参照し、特定したクラスタCLixに属する楽曲の楽曲IDを取得する。ステップS68において、楽曲抽出部23は、ステップS67の処理で取得した楽曲IDに、ステップS66の処理で決定した評価値を付与する。そして、評価値付の楽曲IDを要素とする集合Aを想定する。
ステップS69において、楽曲抽出部23は、集合Cに集合Aの要素(評価値付の楽曲ID)を追加する。ステップS70において、楽曲抽出部23は、層番号iを1だけインクリメントしてステップS64に戻り、それ以降の処理を繰り返す。
このステップS64乃至S70の処理が繰り返されることにより、集合Cの要素(評価値付の楽曲ID)が増加してゆく。そして、ステップS64において、層番号iがnよりも大きくなり、n以下ではないと判定された場合、処理はステップS71に進む。
ステップS71において、楽曲抽出部23は、集合Cの要素(評価値付の楽曲ID)の中から、評価値が最も高いものを選択し、ランダム選択部26(または類似度算出部27)を介して選択理由生成部28に出力する。
ステップS72において、選択理由生成部28は、楽曲抽出部23によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS73において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
以上説明した第3の類似楽曲検索処理によれば、元楽曲の特徴ベクトルと他の楽曲の特徴ベクトルとの距離の算出を必須とせず、元楽曲に類似した楽曲のうち、ユーザの嗜好に応じて付与された評価値が最も高いものを提示することが可能となる。
なお、上述した第1乃至第3の類似楽曲検索処理においては検索条件として楽曲を指定したが、アーティスト、アルバム等を指定して類似楽曲検索処理を行うこともできる。この場合、図3,4の楽曲IDをアーティストIDあるいはアルバムIDと読みかえればよい。例えばアーティストを検索条件とする場合、図2でアーティストの関わるタイトル、アルバム、ジャンルなどに相当するクラスタ層を用いる。
次に、楽曲推薦処理について説明する。
図14は、第1の楽曲推薦処理を説明するフローチャートである。第1の楽曲推薦処理の前処理として、クラスタ情報データベース14は、嗜好入力部25から入力されるユーザの各クラスタ層に対する優先度に応じ、優先順位が高い方のクラスタ層から順に、層番号を1,2,…,nまで振り直しているものとする。
ステップS91において、楽曲抽出部23は、クラスタ情報データベース14を参照し、クラスタ情報データベース14にクラスタ情報が保持されている全ての楽曲の楽曲IDを要素とする集合Cを想定する。ステップS92において、楽曲抽出部23は、層番号iを1に初期化する。
ステップS93において、楽曲抽出部23は、層番号iがn(nはクラスタ層の総数)以下であるか否かを判定する。層番号iがn以下であると判定された場合、処理はステップS94に進む。ステップS94において、楽曲抽出部23は、嗜好情報データベース24を参照し、第i層のクラスタのうち、ユーザの嗜好値が最大のクラスタを特定する。特定したクラスタをCLixと称する。
ステップS95において、楽曲抽出部23は、クラスタ情報データベース14のクラスタ−楽曲ID情報を参照し、特定したクラスタCLixに属する楽曲の楽曲IDを取得する。ステップS96において、楽曲抽出部23は、ステップS95の処理で取得した楽曲IDを要素とする集合Aを想定する。ステップS97において、楽曲抽出部23は、集合Cと集合Aに共通する要素(楽曲ID)を抽出し、ステップS98において、共通する楽曲IDが存在するか否か(すなわち、ステップS97の処理で、集合Cと集合Aに共通する楽曲IDを抽出できたか否か)を判定する。集合Cと集合Aに共通する楽曲IDが存在すると判定した場合、処理はステップS99に進み、集合Cの要素を、ステップS97で抽出した共通する楽曲IDだけに減少させる。ステップS100において、楽曲抽出部23は、層番号iを1だけインクリメントしてステップS93に戻り、それ以降の処理を繰り返す。
なお、ステップS98において、集合Cと集合Aに共通する楽曲IDが存在しないと判定された場合、ステップS99はスキップされ、処理はステップS100に進む。
このステップS93至S100の処理が繰り返されることにより、集合Cの要素(楽曲ID)が減少されてゆく。そして、ステップS93において、層番号iがnよりも大きくなり、n以下ではないと判定された場合、処理はステップS101に進む。
ステップS101において、楽曲抽出部23は、集合Cの要素(楽曲ID)をランダム選択部26に出力する。ランダム選択部26は、集合Cの中からランダムに1つの楽曲を選択して選択理由生成部28に出力する。なお、ランダム選択部26ではなく、類似度算出部27に集合Cの要素(楽曲ID)を出力し、類似度算出部27により、1つの楽曲を選択するようにしてもよい。
ステップS102において、選択理由生成部28は、ランダム選択部26(または類似度算出部27)によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS103において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
以上説明した第1の楽曲推薦処理によれば、ユーザの嗜好に対応する特徴ベクトルと楽曲の特徴ベクトルとの距離の算出を必須とせず、各クラスタ層に対するユーザの優先順位を考慮しつつ、ユーザの嗜好に合致した楽曲をユーザに推薦することが可能となる。
図15は、第2の楽曲推薦処理を説明するフローチャートである。
ステップS121において、楽曲抽出部23は、評価値を付けた楽曲IDを要素とする集合Cを想定して初期化する。すなわち、この時点で集合Cは空集合である。ステップS122において、楽曲抽出部23は、層番号iを1に初期化する。
ステップS123において、楽曲抽出部23は、層番号iがn(nはクラスタ層の総数)以下であるか否かを判定する。層番号iがn以下であると判定された場合、処理はステップS124に進む。ステップS124において、楽曲抽出部23は、嗜好情報データベース24を参照し、第i層のクラスタのうち、ユーザの嗜好に対応する嗜好値が所定の値以上であるものを特定する。特定したものをクラスタ群CLixと称する。
ステップS125において、楽曲抽出部23は、ステップS124の処理で特定したクラスタ群CLixの各クラスタに対する嗜好値に基づいて、クラスタ群CLixの各クラスタに属する楽曲に対して付与する評価値を決定する。
ステップS126において、楽曲抽出部23は、クラスタ情報データベース14のクラスタ−楽曲ID情報を参照し、特定したクラスタ群CLixの各クラスタに属する楽曲の楽曲IDを取得する。ステップS127において、楽曲抽出部23は、ステップS126の処理で取得した楽曲IDに、ステップS125の処理で決定した評価値を付与する。そして、評価値付の楽曲IDを要素とする集合Aを想定する。
ステップS128において、楽曲抽出部23は、集合Cに集合Aの要素(評価値付の楽曲ID)を追加する。この際、集合Cに同じ楽曲IDがあれば評価値を足し合わせる。ステップS129において、楽曲抽出部23は、層番号iを1だけインクリメントしてステップS123に戻り、それ以降の処理を繰り返す。
このステップS123乃至S129の処理が繰り返されることにより、集合Cの要素(評価値付の楽曲ID)が増加してゆく。そして、ステップS123において、層番号iがnよりも大きくなり、n以下ではないと判定された場合、処理はステップS130に進む。
ステップS130において、楽曲抽出部23は、集合Cの要素(評価値付の楽曲ID)の中から、評価値が最も高いものを選択し、ランダム選択部26(または類似度算出部27)を介して選択理由生成部28に出力する。
ステップS131において、選択理由生成部28は、楽曲抽出部23によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS132において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示する。
以上説明した第2の楽曲推薦処理によれば、ユーザの嗜好に対応する特徴ベクトルと楽曲の特徴ベクトルとの距離の算出を必須とせず、ユーザの嗜好に応じて付与された評価値が最も高い楽曲をユーザに推薦することが可能となる。
以上説明した第1乃至3の類似楽曲検索処理、並びに第1および第2の楽曲推薦処理によれば、元楽曲あるいはユーザの嗜好に対応する特徴ベクトルと、検索対象の楽曲の特徴ベクトルとの距離(余弦相関など)を算出することなく、提示する楽曲を選択することができる。また、いずれの処理においても、ユーザの嗜好を優先することができるので、検索や推薦に対するユーザの満足度を向上させることができる
クラスタ層毎に提示するための候補となる楽曲を選び出しているので、いわゆる嗜好の足し合わせによるなまりの問題が生じないという利点がある。
さらに、楽曲のメタデータのうち、数値によって表現されるものは、それがクラスタ間の距離に反映されるように数値そのものが直接クラスタリングに使われるため、情報が最大限活用される。
また、クラスタ層をグループに分けて部分的に用いてもよい。例えば{関連アーティスト層、アーティストジャンル層、アーティストレビューテキスト層}をアーティスト検索推薦用グループに、{楽曲特徴量層(テンポ、リズム、etc)、曲ジャンル層、曲レビューテキスト層}を楽曲検索推薦用グループとして定義するようにしてもよい。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図16に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
このパーソナルコンピュータ100は、CPU(Central Processing Unit)101を内蔵している。CPU101にはバス104を介して、入出力インタフェース105が接続されている。バス104には、ROM(Read Only Memory)102およびRAM(Random Access Memory)103が接続されている。
入出力インタフェース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が接続されている。
このパーソナルコンピュータ100に上述した一連の処理を実行させるプログラムは、記録媒体111に格納された状態でパーソナルコンピュータ100に供給され、ドライブ110によって読み出されて記憶部108に内蔵されるハードディスクドライブにインストールされている。記憶部108にインストールされているプログラムは、入力部106に入力されるユーザからのコマンドに対応するCPU101の指令によって、記憶部108からRAM103にロードされて実行される。
図17は、本発明の一実施の形態の推薦システム1の他の構成の例を示すブロック図である。図17において、図1に示す場合と同様の部分には同一の符号を付してあり、その説明は省略する。
図17に示される推薦システム1は、楽曲DB11、キーワード設定部13、クラスタ情報DB14、検索楽曲指定部21、クラスタマッピング部22、楽曲抽出部23、嗜好情報データベース24、嗜好入力部25、ランダム選択部26、類似度算出部27、選択理由生成部28、楽曲提示部29、メタデータクラスタリング部201、および楽曲クラスタリング部202から構成される。
メタデータクラスタリング部201は、楽曲データベース11に記録されている各楽曲のメタデータをクラスタリングする。すなわち、メタデータクラスタリング部201は、コンテンツである楽曲のメタデータを複数のクラスタのいずれかに分類し、クラスタに階層を割り当てる。
メタデータクラスタリング部201は、各楽曲のメタデータのクラスタリングの結果を楽曲クラスタリング部202に供給する。
楽曲クラスタリング部202は、メタデータクラスタリング部201による各楽曲のメタデータのクラスタリングの結果を基に、クラスタリング部12と同様に、各楽曲をクラスタリングして各楽曲のクラスタ情報を生成する。すなわち、楽曲クラスタリング部202は、各楽曲のクラスタリングの結果に応じたクラスタ情報を生成してクラスタ情報DB14に出力する。
次に、図18のフローチャートを参照して、図17に示される推薦システム1における、楽曲を推薦する処理の準備であるオフライン時の前処理の例について説明する。
ステップS201において、メタデータクラスタリング部201は、楽曲DB11から楽曲のメタデータを取得して、取得したメタデータの次元を圧縮する。例えば、ステップS201において、メタデータクラスタリング部201は、楽曲DB11から取得した楽曲のメタデータの次元を、LSA(the latent semantic analysis)、PLSA(the probabilistic latent semantic analysis)、または数量化III類などの手法により圧縮する。
なお、ステップS201において、メタデータクラスタリング部201は、楽曲のメタデータをベクトル化するようにしてもよい。
ステップS202において、メタデータクラスタリング部201は、各楽曲のメタデータをクラスタリングする。例えば、ステップS202において、メタデータクラスタリング部201は、各楽曲のメタデータをソフトクラスタリングする。
より具体的には、例えば、図19で示されるように、メタデータクラスタリング部201は、それぞれの階層内において、アイテムの各クラスタへの帰属重みの和が1となるように、各楽曲のメタデータをソフトクラスタリングする。
例えば、ABC123である楽曲IDで特定される楽曲のメタデータの第1階層(層番号1)における第1のクラスタ、第2のクラスタ、第3のクラスタ、および第4のクラスタへの帰属重みは、それぞれ、0.0、0.8、0.0、および0.2である。ABC123である楽曲IDで特定される楽曲のメタデータの第2階層(層番号2)における第5のクラスタ、第6のクラスタ、第7のクラスタ、および第8のクラスタへの帰属重みは、それぞれ、0.4、0.6、0.0、および0.0である。ABC123である楽曲IDで特定される楽曲のメタデータの第3階層(層番号3)における第9のクラスタ、第10のクラスタ、および第11のクラスタへの帰属重みは、それぞれ、0.0、0.0、および1.0である。また、ABC123である楽曲IDで特定される楽曲のメタデータの第n階層(層番号n)における4つのクラスタのそれぞれへの帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。
例えば、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である。
例えば、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である。
なお、各楽曲のメタデータのソフトクラスタリングは、それぞれの階層内において、アイテム、すなわち楽曲の各クラスタへの帰属重みの和が1となるものに限られない。また、各アイテムが各階層において、いずれのクラスタに属さないものとしてもよい。
ステップS203において、メタデータクラスタリング部201は、クラスタの層を割り当てる。
ここで、図20および図21を参照して、メタデータのクラスタリングおよびクラスタの層の割り当てについて説明する。図20は、メタデータの例を示す図である。図20で示されるメタデータは、簡単のため、0または1のいずれかの値のカテゴリカルデータとされている。
高次の分類としてのメタグループ1には、メタデータ1、メタデータ2、およびメタデータ3が属し、高次の分類としてのメタグループ2には、メタデータ4、メタデータ5、およびメタデータ6が属する。例えば、メタグループ1には、アーティストに関するメタデータが属し、メタデータ1は、アーティストの外観を示し、メタデータ2は、グループであることを示す。また、例えば、メタグループ2には、ジャンルに関するメタデータが属し、メタデータ4は、ポップスであることを示し、メタデータ5は、ロックであることを示す。
図20に示す例において、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である。
このとき、ABC123である楽曲IDで特定される楽曲乃至OPQ385である楽曲IDで特定される楽曲についての、メタデータ1をベクトルとみなす。同様に、ABC123である楽曲IDで特定される楽曲乃至OPQ385である楽曲IDで特定される楽曲についての、メタデータ2乃至メタデータ6のそれぞれをベクトルとみなす。すなわち、複数の楽曲についての1つのメタデータの値をベクトルとみなす。
このベクトル同士の距離に注目する。
図20で示される例において、ベクトルとみなされたメタデータ1、メタデータ3、メタデータ4が、マンハッタン距離1以内のクラスタに、また、メタデータ2、メタデータ5、メタデータ6が、マンハッタン距離1以内の他のクラスタに、まとまっている。
そこで、これらのクラスタを、新たなメタデータの階層とする。すなわち、階層のそれぞれの層に、より近いメタデータが割り付けられる。
図21は、このようにクラスタリングされ、層が割り付けられたメタデータの例を示す。図21に示す例において、第1層には、メタデータ1、メタデータ3、およびメタデータ4が属し、第2層には、メタデータ2、メタデータ5、およびメタデータ6が属する。
このように、相関の高いメタデータの集まりでそれぞれの層が形成され、その中で楽曲のクラスタリングが行われるので、ジャンルやアーティストなどをそのまま階層とするような通常の階層分けでは表現しきれない微妙な楽曲間の差をクラスタに反映することができる。
図18に戻り、ステップS204において、楽曲クラスタリング部202は、層毎に楽曲をクラスタリングして、処理は終了する。すなわち、楽曲クラスタリング部202は、各コンテンツを、割り当てられた階層のそれぞれにおいて複数のクラスタのいずれかに分類する。
このようにすることで、メタデータによる楽曲の表現の詳細度(表現の詳細さの度合い)を保ったまま、データ量および計算量を削減して、楽曲をクラスタリングすることができる。
また、以上のように、メタデータを階層化することにより、楽曲間の微妙な相違がよく表現されるように楽曲をクラスタリングすることができる。
次に、図22のフローチャートを参照して、第4の類似楽曲検索処理を説明する。ステップS221において、検索楽曲指定部21は、類似元となる元楽曲を設定する。すなわち、例えば、ステップS221において、検索楽曲指定部21は、クラスタマッピング部22を介して、ユーザの指定に応じて、元楽曲の楽曲IDを楽曲抽出部23に出力することにより、元楽曲を設定する。
ステップS222において、類似度算出部27は、各クラスタの帰属重みから、元楽曲と、元楽曲以外の全ての楽曲のそれぞれとの類似度を計算する。
例えば、楽曲抽出部23は、楽曲IDで特定される元楽曲のクラスタ情報と、元楽曲以外の全ての楽曲のクラスタ情報とを、クラスタ情報データベース14から読み出す。そして、楽曲抽出部23は、読み出したクラスタ情報を類似度算出部27に供給する。類似度算出部27は、元楽曲と元楽曲以外の全ての楽曲とのクラスタ情報で示される各クラスタの帰属重みから、元楽曲と、元楽曲以外の全ての楽曲のそれぞれとの類似度を計算する。
より具体的には、例えば、楽曲クラスタリング部202により、各楽曲が、それぞれの階層内において、ソフトクラスタリングされ、各クラスタの帰属重みを示すクラスタ情報がクラスタ情報データベース14に格納されている。
図23は、クラスタの帰属重みを示すクラスタ情報の例を示す図である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、1.0、0.0、および0.2である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.6、0.8、0.0、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.0、および1.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.7、0.7、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.9、0.4、および0.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、1.0、0.3、および0.0である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.6、0.8、および0.0である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.0、0.0、および1.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、および0.1である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.5、0.0、0.0、および0.9である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、EKF534である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.9、0.0、0.0、および0.5である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、EKF534である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.6、0.0、および0.8である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、EKF534である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.7、0.0、および0.7である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、EKF534である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.9、0.4、および0.3である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、OPQ385である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.7、0.2、0.6、および0.0である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、OPQ385である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、OPQ385である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、1.0、および0.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、OPQ385である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.4、0.9、0.0、および0.0である。
例えば、類似度算出部27は、iである楽曲IDで特定される元楽曲とjである楽曲IDで特定される楽曲との類似度sim(i,j)を、それぞれの楽曲のクラスタへの帰属重みから、式(1)で示される演算で計算する。
式(1)において、Lは、階層の数を示す値であり、lは、階層を特定する値である。C(l)は、クラスタの全体を示し、cは、クラスタを特定する値である。wilcは、iである楽曲IDで特定される元楽曲の、第l層の第cクラスタの帰属重みを示す。wjlcは、jである楽曲IDで特定される楽曲の、第l層の第cクラスタの帰属重みを示す。
図24は、クラスタの帰属重みを示す図23のクラスタ情報から、式(1)で示される演算により計算された類似度の例を示す図である。なお、図24において、ABC123である楽曲IDで特定される元楽曲に対する、CTH863乃至OPQ385のそれぞれの楽曲IDで特定される楽曲のそれぞれについての類似度が示されている。
図24で示されるように、図23のクラスタ情報を基に、ABC123である楽曲IDで特定される元楽曲に対して、CTH863乃至OPQ385のそれぞれの楽曲IDで特定される楽曲のそれぞれの類似度を式(1)で示される演算で計算すると、CTH863乃至OPQ385のそれぞれの楽曲IDで特定される楽曲のそれぞれの類似度は、0.57、1.18、1.27、1.20となる。
例えば、ステップS222において、類似度算出部27は、式(1)で示される演算により、それぞれ、0.57、1.18、1.27、1.20である、ABC123である楽曲IDで特定される元楽曲に対する、CTH863乃至OPQ385のそれぞれの楽曲IDで特定される楽曲のそれぞれの類似度を計算する。
ステップS223において、類似度算出部27は、類似度を基に、元楽曲に類似している順に、元楽曲以外の全ての楽曲をソートする。
より具体的には、類似度算出部27は、計算の結果得られた楽曲の類似度と、楽曲の楽曲IDとを対応付けて、類似度を基に、元楽曲に類似している順に楽曲の楽曲IDを並び替えることにより、元楽曲に類似している順に、元楽曲以外の全ての楽曲をソートする。
ステップS224において、類似度算出部27は、ソートされた楽曲のうち、任意の数の上位の楽曲を選択する。類似度算出部27は、選択した楽曲の楽曲IDを選択理由生成部28に供給する。
例えば、ステップS224において、類似度算出部27は、最上位の楽曲を選択して、最上位の楽曲の楽曲IDを選択理由生成部28に供給する。または、例えば、ステップS224において、類似度算出部27は、上位10曲の楽曲を選択して、上位10曲の楽曲の楽曲IDを選択理由生成部28に供給する。
ステップS225において、選択理由生成部28は、類似度算出部27によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS226において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示して、処理は終了する。
次に、図25のフローチャートを参照して、第5の類似楽曲検索処理を説明する。ステップS241乃至ステップS251のそれぞれは、図11のステップS1乃至ステップS11のそれぞれと同様なので、その説明は省略する。
ステップS252において、類似度算出部27は、楽曲抽出部23から供給された、集合Cの要素(楽曲ID)を基に、各クラスタの帰属重みから、元楽曲と、集合Cの楽曲のそれぞれとの類似度を計算する。例えば、ステップS252において、類似度算出部27は、式(1)で示される演算により、元楽曲と集合Cの楽曲のそれぞれとの類似度を計算する。
ステップS253において、類似度算出部27は、類似度を基に、元楽曲に類似している順に、集合Cの楽曲をソートする。
より具体的には、類似度算出部27は、計算の結果得られた類似度と、集合Cの楽曲の楽曲IDとを対応付けて、類似度を基に、集合Cの楽曲の楽曲IDを並び替えることにより、元楽曲に類似している順に、集合Cの楽曲をソートする。
ステップS254において、類似度算出部27は、ソートされた楽曲のうち、任意の数の上位の楽曲を選択する。類似度算出部27は、選択した楽曲の楽曲IDを選択理由生成部28に供給する。
例えば、ステップS254において、類似度算出部27は、最上位の楽曲を選択して、最上位の楽曲の楽曲IDを選択理由生成部28に供給する。または、例えば、ステップS254において、類似度算出部27は、上位10曲の楽曲を選択して、上位10曲の楽曲の楽曲IDを選択理由生成部28に供給する。
ステップS255において、選択理由生成部28は、類似度算出部27によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS256において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示して、処理は終了する。
次に、図26のフローチャートを参照して、第3の楽曲推薦処理を説明する。ステップS261乃至ステップS270のそれぞれは、図14のステップS91乃至ステップS100のそれぞれと同様なので、その説明は省略する。
ステップS271において、類似度算出部27は、楽曲抽出部23から供給された、集合Cの要素(楽曲ID)を基に、各クラスタの帰属重みを示すユーザの嗜好値と、集合Cの楽曲のそれぞれのクラスタ情報であって、各クラスタの帰属重みを示すクラスタ情報との類似度を計算する。
ここで、図27乃至図31を参照して、ユーザの嗜好値と、集合Cの楽曲のそれぞれのクラスタ情報との類似度を説明する。
例えば、嗜好情報データベース24は、ソフトクラスタリングされ、それぞれの階層内において、各クラスタの帰属重みを示す嗜好値を記録している。
図27は、各クラスタの帰属重みを示す嗜好値の例を示す図である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.0、0.8、0.0、および0.6である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.4、0.6、0.7、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.7、0.5、および0.5である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.0、0.5、0.4、および0.0である。
図28は、各クラスタの帰属重みを示すクラスタ情報の例を示す図である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、1.0、0.0、および0.2である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.6、0.8、0.0、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.0、および1.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、ABC123である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、0.0、および0.0である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.7、0.7、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.9、0.4、および0.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、CTH863である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、1.1、0.3、および0.0である。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.6、0.8、および0.0である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.0、0.0、0.0、および1.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、1.0、0.0、および0.1である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、XYZ567である楽曲IDで特定される楽曲の帰属重みは、それぞれ、0.4、0.0、0.0、および0.7である。
例えば、類似度算出部27は、ユーザの嗜好値におけるクラスタへの帰属重みと、iである楽曲IDで特定される楽曲のクラスタ情報におけるクラスタへの帰属重みとから、式(2)で示される演算で類似度sim(u,i)を計算する。
式(2)において、Lは、階層の数を示す値であり、lは、階層を特定する値である。C(l)は、クラスタの全体を示し、cは、クラスタを特定する値である。wilcは、iである楽曲IDで特定される楽曲のクラスタ情報の、第l層の第cクラスタの帰属重みを示す。hulcは、ユーザuの嗜好値の第l層の第cクラスタの帰属重みを示す。
図29は、図27のクラスタの帰属重みを示す嗜好値と、図28のクラスタの帰属重みを示すクラスタ情報とから、式(2)で示される演算により計算された類似度の例を示す図である。
U001であるユーザIDで特定されるユーザの嗜好値の帰属重みのうちの、第1層の帰属重みと、ABC123である楽曲IDで特定される楽曲のクラスタ情報の帰属重みのうちの、第1層の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のABC123である楽曲IDに対する第1層に配置した値である0.91が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、ABC123である楽曲IDで特定される楽曲のクラスタ情報の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のABC123である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.67、0.53、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とABC123である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.91、0.67、0.53、および0.00を加算した値である2.11とされる。
U001であるユーザIDで特定されるユーザの嗜好値の帰属重みのうちの、第1層の帰属重みと、CTH863である楽曲IDで特定される楽曲のクラスタ情報の帰属重みのうちの、第1層の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のCTH863である楽曲IDに対する第1層に配置した値である0.00が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、CTH863である楽曲IDで特定される楽曲のクラスタ情報の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のCTH863である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.92、0.82、0.63が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とCTH863である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.00、0.92、0.82、および0.63を加算した値である2.37とされる。
U001であるユーザIDで特定されるユーザの嗜好値の帰属重みのうちの、第1層の帰属重みと、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の帰属重みのうちの、第1層の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のXYZ567である楽曲IDに対する第1層に配置した値である0.44が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の帰属重みとが、対応する帰属重み同士で乗算され、乗算された結果が積算されると、図29のXYZ567である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.00、0.72、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とXYZ567である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.44、0.00、0.72、および0.00を加算した値である1.15とされる。
また、各階層における、ユーザの嗜好値の帰属重みの分布に基づいた重みを用いて類似度を計算するようにしてもよい。
例えば、類似度算出部27は、ユーザの嗜好値におけるクラスタへの帰属重みと、iである楽曲IDで特定される楽曲のクラスタ情報におけるクラスタへの帰属重みとから、式(3)で示される演算で類似度sim(u,i)を計算する。
式(3)において、Lは、階層の数を示す値であり、lは、階層を特定する値である。C(l)は、クラスタの全体を示し、cは、クラスタを特定する値である。wilcは、iである楽曲IDで特定される楽曲のクラスタ情報の、第l層の第cクラスタの帰属重みを示す。hulcは、ユーザuの嗜好値の第l層の第cクラスタの帰属重みを示す。bulは、ユーザuの嗜好値の第l層についての重みを示す。
図30は、ユーザの嗜好値のそれぞれの階層の帰属重みの分散である、階層毎の重みの例を示す図である。図30に示す例において、U001であるユーザIDで特定されるユーザのについての第1層の重み、第2層の重み、第3層の重み、および第4層の重みは、それぞれ、0.17、0.10、0.01、および0.06である。
図31は、図27のクラスタの帰属重みを示す嗜好値と、図28のクラスタの帰属重みを示すクラスタ情報と、図30の階層毎の重みとから、式(3)で示される演算により計算された類似度の例を示す図である。なお、図31に示す類似度は、式(3)で示される演算により計算された結果を10倍したものである。
U001であるユーザIDで特定されるユーザの嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、ABC123である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図31のABC123である楽曲IDに対する第1層に配置した値である1.27が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、ABC123である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図31のABC123である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.49、0.03、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とABC123である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた1.27、0.49、0.03、および0.00を加算した値である1.79とされる。
U001であるユーザIDで特定されるユーザの嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、CTH863である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図31のCTH863である楽曲IDに対する第1層に配置した値である0.00が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、CTH863である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図31のCTH863である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.65、0.04、0.27が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とCTH863である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.00、0.65、0.04、および0.27を加算した値である0.96とされる。
U001であるユーザIDで特定されるユーザの嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図31のXYZ567である楽曲IDに対する第1層に配置した値である0.53が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図31のXYZ567である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.00、0.04、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とXYZ567である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.53、0.00、0.04、および0.00を加算した値である0.57とされる。
図27で示される嗜好値に注目すると、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みの値は、第2層乃至第4層に比較して、第1層において大きく変化しているので、第2層乃至第4層に比較して、第1層の各要素の値が、U001であるユーザIDで特定されるユーザの嗜好により関係すると予測される。
このように、重み付けすることによって、ユーザの嗜好にあまり関係しないと予測される値に比較して、ユーザの嗜好により関係すると予測される値によって、その値がより大きく変化する類似度を求めることができるので、より正確に、ユーザの好む楽曲を検出することができる。
図26に戻り、ステップS272において、類似度算出部27は、類似度を基に、ユーザの嗜好に類似している順に、集合Cの楽曲をソートする。
より具体的には、類似度算出部27は、計算の結果得られた類似度と、集合Cの楽曲の楽曲IDとを対応付けて、類似度を基に、集合Cの楽曲の楽曲IDを並び替えることにより、ユーザの嗜好に類似している順に、集合Cの楽曲をソートする。
ステップS273において、類似度算出部27は、ソートされた楽曲のうち、任意の数の上位の楽曲を選択する。類似度算出部27は、選択した楽曲の楽曲IDを選択理由生成部28に供給する。
例えば、式(2)で示される演算により類似度が計算され、ABC123である楽曲IDで特定される楽曲についての類似度が2.11とされ、CTH863である楽曲IDで特定される楽曲についての類似度が2.37とされ、XYZ567である楽曲IDで特定される楽曲についての類似度が1.15とされた場合、1つの楽曲を選択するとき、類似度が最大である、CTH863である楽曲IDで特定される楽曲が選択されることになる。
また、例えば、式(3)で示される演算により、各階層における、ユーザの嗜好値の帰属重みの分布に基づいた重みを用いて類似度が計算され、ABC123である楽曲IDで特定される楽曲についての類似度が1.79とされ、CTH863である楽曲IDで特定される楽曲についての類似度が0.96とされ、XYZ567である楽曲IDで特定される楽曲についての類似度が0.57とされた場合、1つの楽曲を選択するとき、類似度が最大である、ABC123である楽曲IDで特定される楽曲が選択されることになる。
ステップS274において、選択理由生成部28は、類似度算出部27によって選択された楽曲が選択された理由を示す選択理由文を生成して、選択された楽曲の楽曲IDとともに楽曲提示部29に出力する。ステップS275において、楽曲提示部29は、選択理由生成部28から入力される楽曲IDの楽曲と選択理由文とをユーザに提示して、処理は終了する。
次に、図32のフローチャートを参照して、第4の楽曲推薦処理を説明する。ステップS281乃至ステップS284のそれぞれは、図15のステップS121乃至ステップS124のそれぞれと同様なので、その説明は省略する。
ステップS285において、楽曲抽出部23は、特定した各クラスタにそれぞれ対応する嗜好値と第i層の重みに基づき評価値を決定する。
図33は、図27で示される嗜好値の帰属重みのうち、0.6である閾値以上の帰属重みからなる嗜好値の例を示す図である。
すなわち、図27で示される嗜好値の帰属重みのうち、0.6未満である帰属重みが0.0に置き換えられることにより、図33で示される嗜好値が求められる。
例えば、第1階層におけるクラスタである、CL11であるクラスタIDで特定されるクラスタ、CL12であるクラスタIDで特定されるクラスタ、CL13であるクラスタIDで特定されるクラスタ、およびCL14であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.0、0.8、0.0、および0.6である。第2階層におけるクラスタである、CL21であるクラスタIDで特定されるクラスタ、CL22であるクラスタIDで特定されるクラスタ、CL23であるクラスタIDで特定されるクラスタ、およびCL24であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.0、0.6、0.7、および0.0である。
また、第3階層におけるクラスタである、CL31であるクラスタIDで特定されるクラスタ、CL32であるクラスタIDで特定されるクラスタ、およびCL33であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.7、0.0、および0.0である。さらに、第4階層におけるクラスタである、CL41であるクラスタIDで特定されるクラスタ、CL42であるクラスタIDで特定されるクラスタ、CL43であるクラスタIDで特定されるクラスタ、およびCL44であるクラスタIDで特定されるクラスタへの、U001であるユーザIDで特定されるユーザの嗜好値の帰属重みは、それぞれ、0.0、0.0、0.0、および0.0である。
例えば、ステップS285において、楽曲抽出部23は、閾値以上の帰属重みからなる嗜好値におけるクラスタへの帰属重みと、iである楽曲IDで特定される楽曲のクラスタ情報におけるクラスタへの帰属重みとから、式(3)で示される演算で類似度を計算する。すなわち、元の嗜好値の帰属重みのうち、例えば0.6である閾値未満の帰属重みと乗算されて求められる値は、類似度に加算されず、元の嗜好値の帰属重みのうち、閾値以上である帰属重みと乗算されて求められる値は、類似度に加算されることになる。
図34は、図33の閾値以上の帰属重みからなる嗜好値と、図28のクラスタの帰属重みを示すクラスタ情報と、図30の階層毎の重みとから、式(3)で示される演算により計算された類似度の例を示す図である。
U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、ABC123である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図34のABC123である楽曲IDに対する第1層に配置した値である0.15が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、ABC123である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図34のABC123である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.05、0.00、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とABC123である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.15、0.05、0.00、および0.00を加算した値である0.20とされる。
U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、CTH863である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図34のCTH863である楽曲IDに対する第1層に配置した値である0.00が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、CTH863である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図34のCTH863である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.10、0.00、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とCTH863である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.00、0.10、0.00、および0.00を加算した値である0.10とされる。
U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の第1層の帰属重みと、ユーザの嗜好値の帰属重みに対応する、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の第1層の帰属重みと、第1の層の重みとが乗算され、乗算された結果が積算されると、図34のXYZ567である楽曲IDに対する第1層に配置した値である0.07が求められる。同様に、第2層、第3層、および第4層について、U001であるユーザIDで特定されるユーザの嗜好値であって、閾値以上の帰属重みからなる嗜好値の帰属重みと、ユーザの嗜好値の帰属重みに対応する、XYZ567である楽曲IDで特定される楽曲のクラスタ情報の帰属重みと、第2層、第3層、または第4層のうちのその層の重みとが乗算され、乗算された結果が積算されると、図34のXYZ567である楽曲IDに対する第2層、第3層、および第4層のそれぞれに配置した値である0.00、0.00、0.00が求められる。
最終的に、U001であるユーザIDで特定されるユーザの嗜好値とXYZ567である楽曲IDで特定される楽曲のクラスタ情報との類似度は、第1層、第2層、第3層、および第4層のそれぞれについて求められた0.07、0.00、0.00、および0.00を加算した値である0.08とされる。
ステップS286乃至ステップS292のそれぞれは、図15のステップS126乃至ステップS132のそれぞれと同様なので、その説明は省略する。
なお、それぞれの階層に属する帰属重みの分散である重みを用いると説明したが、これに限らず、階層における帰属重みのばらつきが大きい場合により大きい値となる重みを計算すればよく、例えば、式(4)によりエントロピーHを算出し、1からエントロピーHを引き算した結果得られる値である重みを計算するようにしてもよい。
このように、情報の欠落を最小限に抑えつつ、適切なコンテンツを選択するための計算量を削減することができる。また、利用者がどのような情報に着目してコンテンツを選択しているかを確実に反映したコンテンツを提示することができるようになる。
なお、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、プログラムは、1台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 推薦システム, 11 楽曲データベース, 12 クラスタリング部, 13 キーワード設定部, 14 クラスタ情報データベース, 21 検索楽曲指定部, 22 クラスタマッピング部, 23 楽曲抽出部, 24 嗜好情報データベース, 25 嗜好入力部, 26 ランダム選択部, 27 類似度算出部, 28 選択理由生成部, 29 楽曲提示部, 201 メタデータクラスタリング部, 202 楽曲クラスタリング部