以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、所定のアイテムが、所定のムードに該当するか否かを示す情報を取得する取得手段(例えば、図4のユーザデータ取得部72)と、取得手段により取得された情報を解析し、所定のムードに該当しないと判断されるアイテムの特徴量を抽出する抽出手段(例えば、図4の非該当フィルタ生成部74)と、取得手段により取得された情報を解析し、ムードに対応するクラスタとそのクラスタに対応する複数のサブクラスタを学習する第1の学習手段(例えば、図4の多変量解析部75とクラスタリング部76)と、第1の学習手段により学習されたクラスタとサブクラスタが付与されたアイテムを用いて、ムード毎の特徴を学習する第2の学習手段(例えば、図6のメタデータ取得部111と特徴分析部112)と、クラスタが付与されていないアイテムの特徴量が、抽出手段により抽出された特徴量と一致するか否かを判断する判断手段(例えば、図6の非該当フィルタ113)と、判断手段により、一致しないと判断されたアイテムに対して、第2の学習手段により学習された特徴に基づいて、クラスタとサブクラスタを付与する付与手段(例えば、図6のクラスタ決定部115)とを備える。
ムードに関する情報を、その情報が表すムードに関連付けられているクラスタに変換する変換手段(例えば、図7のムード情報取得部141とムードクラスタ変換部142)と、変換手段により変換されたクラスタが割り当てられているアイテムを推薦する推薦手段(例えば、図7の推薦情報生成部143)とをさらに備えるようにすることができる。
以下に、本発明の実施の形態について図面を参照して説明する。
[システムの構成について]
図1は、本発明を適用したシステムの一実施の形態の構成を示す図である。ネットワーク1には、サーバ2、端末3−1乃至3−Nが接続されている。図1に示したシステムは、所定の情報(例えば、曲、番組、商品などのアイテム)を、ユーザに推薦するシステムである。また、推薦するための情報を生成するための解析なども行われる。ネットワーク1は、インターネットやLAN(Local Area Network)などから構成される。
サーバ2は、推薦する情報を蓄積したり、推薦するための情報を生成したりする。端末3−1乃至3−Nは、ユーザ側の端末である。例えば、端末3−1によりユーザが、所定のアイテムを購入、試聴したりする場合に操作される端末である。また、アイテムは、サーバ2からネットワーク1を介して供給される。
以下の説明において、端末3−1乃至3−Nを個々に区別する必要がない場合、単に、端末3と記述する。また、図1においては、サーバ2を1つしか記載していないが、複数設けることも、勿論可能である。
[サーバの構成および動作について]
図2は、サーバ2の内部構成例を示す図である。CPU(Central Processing Unit)21は、ROM(Read Only Memory)22、または記憶部28に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)23には、CPU21が実行するプログラムやデータなどが適宜記憶される。これらのCPU21、ROM22、およびRAM23は、バス24により相互に接続されている。
CPU21にはまた、バス24を介して入出力インターフェース25が接続されている。入出力インターフェース25には、キーボード、マウス、マイクロホンなどよりなる入力部26、ディスプレイ、スピーカなどよりなる出力部207が接続されている。CPU21は、入力部26から入力される指令に対応して各種の処理を実行する。そして、CPU21は、処理の結果を出力部27に出力する。
入出力インターフェース25に接続されている記憶部28は、例えばハードディスクからなり、CPU21が実行するプログラムや各種のデータを記憶する。通信部29は、ネットワーク1を介して外部の装置(例えば、端末3)と通信する。また、通信部29を介してプログラムを取得し、記憶部28に記憶してもよい。
入出力インターフェース25に接続されているドライブ30は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア31が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部28に転送され、記憶される。
端末3は、基本的にサーバ2と同様の構成で構成することができるので、ここでは、その説明を省略する。
図3は、サーバ2の機能について説明するための図である。サーバ2は、ユーザに推薦するためのアイテムのデータ(以下、メタデータと称する)を分類するためのデータを学習したり、学習されたデータから新規のデータを分類するための学習をしたりするための学習部51を備える。学習部51は、クラスタ学習部52とクラス付与学習部53を含む構成とされている。
クラスタ学習部52は、メタデータを分類するためのデータ(クラスタ)を学習するための機能である。クラス付与学習部53は、クラスタを新しい情報(以下、適宜、アイテムと称する)のメタデータに付与するための学習を行う機能である。なお、以下の本明細書において、アイテムとは、曲、番組、プログラムなどのデータとしてユーザに提供されるものや、家電製品などの物体としてユーザに提供されるものの情報(この場合、メタデータに記載されている情報や、メタデータに関連付けられている他の情報)が付加される対象となるものとしての意味を有するとする。
サーバ2は、メタデータなどのデータを記憶するデータベース54を備える。また、サーバ2は、データベース54に記憶されているメタデータを参照し、ユーザに適した情報を推薦するための処理を実行する推薦部55を備える。
以下の説明においては、アイテムとして曲が提供される場合を例に挙げて説明する。よって、メタデータも、曲に関するデータである場合を例に挙げて説明する。
図4は、クラスタ学習部52の構成例を示す図である。クラスタ学習部52は、楽曲データ取得部71、ユーザデータ取得部72、特徴量解析部73、非該当フィルタ生成部74、多変量解析部75、および、クラスタリング部76を含む構成とされている。
楽曲データ取得部71は、ユーザ側(端末3)に提供する曲のデータを(曲そのもののデータ)を取得する。ユーザデータ取得部72は、ユーザからの情報(後述するように、アンケート結果の情報)を取得する。特徴量解析部73は、楽曲データ取得部71により取得された楽曲データを解析し、その曲の特徴量(例えば、スピードやテンポなど)を抽出し、曲の情報を生成する。
後述するように、曲のメタデータには、クラスタという情報が付与される。そのクラスタは、ムード(Mood、ユーザの感情、気分)に応じて付与される識別子としての役割を有する情報である。後述するように、非該当フィルタ生成部74は、クラスタが付与されていない曲のメタデータに対して付与される際、付与するクラスタの対象とはされないメタデータを排除するためのフィルタを生成する。
非該当フィルタ生成部74は、特徴量解析部73から供給される曲のデータ(特徴量)と、ユーザデータ取得部72から取得されるユーザからのデータを用いて、非該当フィルタを生成する。生成された非該当フィルタに関する情報は、データベース54(図3)に供給され、記憶される。
多変量解析部75は、ユーザデータ取得部72から、供給されるユーザからのデータ(情報)を数値化する。そして、クラスタリング部76は、数値化された情報をクラスタ毎に分類する(クラスタを生成する)。
なお後述するように、クラスタは、ムードを識別するためのクラスタと、同一のクラスタ内において(同一のムードにおいて)、細かい分類を行うためのサブクラスがある。クラスタリング部76は、このようなクラスタとサブクラスタを生成する。
クラスタ学習部52は、上記したような構成により、非該当フィルタを生成するとともに、クラスタを生成し、処理対象とされたメタデータに付与する(すなわちクラスタリングする)。クラスタ付与学習部53は、クラスタ学習部52によるクラスタリングの結果を用いて、新規に追加される情報が、どのクラスタに属するかを判断し、クラスタを付与する。
図5は、クラスタ学習部52の他の構成例を示す図である。図4に示したクラスタ学習部52と比較するに、図5に示したクラスタ学習部52’(図4に示したクラスタ学習部52と区別を付けるために、ダッシュ(’)を付して記述する)は、クラスタ学習部52に、メタデータ解析部81を追加した構成とされている。
また、図5に示したクラスタ学習部52’メタデータ解析部81には、非該当フィルタ生成部74により、非該当ではないと判断された曲の情報が非該当フィルタ生成部74から供給され、その曲に対応する特徴量が、特徴量解析部73から供給される構成とされている。また、メタデータ解析部81による解析結果は、多変量解析部75に供給される構成とされている。
図4に示したクラスタ学習部52は、クラスタを、ユーザからのデータ(情報)に基づいて生成し、クラスタリングの処理を実行するが、図5に示したクラスタ学習部52’は、クラスタを、楽曲データから生成し、クラスタリングの処理を実行する。クラスタ学習部52およびクラスタ学習部52’が、それぞれ行うクラスタの学習の処理については、フローチャートを参照して後述する。
図6は、クラスタ付与学習部53の構成例を示す図である。クラスタ付与学習部53は、メタデータ取得部111、特徴分析部112、非該当フィルタ113、アイテムメタデータ取得部114、クラスタ決定部115、および、追加部116から構成されている。
メタデータ取得部111は、クラスタ学習部52(またはクラスタ学習部52’)による学習に用いられたアイテムのメタデータ(クラスタが付与されているメタデータ)を取得する。特徴分析部112は、取得されたアイテムのメタデータから、そのアイテム(メタデータ)の特徴を抽出する。抽出された特徴量は、非該当フィルタ113に供給される。非該当フィルタ113には、アイテムメタデータ取得部114からの情報も供給される。
アイテムメタデータ取得部114は、クラスタを割り当てるアイテムのメタデータ(クラスタが付与されていないメタデータ)を取得する。非該当フィルタ113は、アイテムメタデータ取得部114から供給されるメタデータが、クラスタを付与する対象となるメタデータであるか否かを判断する(フィルタリングする)。フィルタリングの結果、非該当フィルタ113から出力されるメタデータは、クラスタを付与するメタデータである。
非該当フィルタ113から出力されたメタデータは、クラスタ決定部115に供給される。クラスタ決定部115は、非該当フィルタ113から供給される所定のアイテムのメタデータを参照し、その参照したメタデータの特徴と、特徴分析部112から供給される特徴とをマッチングし、クラスタを判別する。判別されたクラスタは、処理対象とされているアイテムのメタデータに追加される。クラスタが付与されたメタデータは、追加部116により、データベース54に追加記憶される。
このようにして、クラスタが付与されたメタデータを用いて、推薦部55は、ユーザに対して、ユーザに適した情報(この場合、特に、ユーザの感情(ムード)に適した情報)を推薦するための処理を実行する。
図7は、推薦部55の構成例を示す図である。推薦部55は、ムード情報取得部141、ムードクラスタ変換部142、および、推薦情報生成部143を含む構成とされている。ムード情報取得部141は、ユーザが指示したムードに関する情報(以下、適宜ムード情報と記述する)を取得する。ムード情報とは、例えば、“悲しい”、“楽しい”といった感情に関する情報である。
ムード情報取得部141により取得されたムードに関する情報は、ムードクラスタ変換部142に供給される。ムードクラスタ変換部142は、ムード情報取得部141からのムード情報をクラスタの情報に変換し、推薦情報生成部143に供給する。推薦情報生成部143は、供給されたクラスタに対応するアイテムを、データベース54から読み出し、ユーザ側に提供する。
このような各部が処理を行う際に用いられるメタデータなどのデータについて説明する。データは、データベース54(図3)に記憶されている。図8乃至10は、データベース54に記憶されているデータを示す図である。
データベース54には、図8に示したユーザからのアンケートを集計した結果を管理するアンケート管理テーブル171、図9に示したアイテムのメタデータ172、および図10に示したアイテム毎の数量化された数値を管理する数量化管理テーブル173が記憶されている。
図8に示したアンケート管理テーブル171は、ユーザに対して実施したアンケートの結果が書き込まれている。アンケートは、例えば、ユーザに対してネット上で行われたり、紙媒体で行われたりする。アンケートの内容としては、例えば、図8に示した例においては、ある曲に対して、その曲が“悲しい”曲に分類されるか否かといった内容である。換言すれば、どのようなムード(感情、気分)のときに、どのような曲を聴きたいかといった情報を取得するためのアンケートが行われる。
図8に示したアンケート管理テーブル171には、例えば、“曲1”に対して、“ユーザA”は“○(悲しい曲である)”と答え、“ユーザB”は“○(悲しい曲である)”と答え、“ユーザC”は無印(○が記載されていない状態、(悲しい曲ではない))と答えていることが記載されている。
このようなアンケートは、所定数のユーザに対して、所定数の曲に対して行われる。例えば、100人のユーザに100曲に対して、悲しい曲であるか、悲しくない曲であるかといったアンケートが行われ、その結果が、アンケート管理テーブル171に書き込まれる。また、“悲しい”以外の感情(ムード)に対しても、同様なアンケートが行われ、情報が取得される。
なお、ユーザ側へのアンケートは、単に、“悲しい曲であるか”、“悲しくない曲であるか”を問う、二者択一のアンケートでも良いし、“普通”といった選択肢も含まれるアンケートでも良いし、さらには、“すごく悲しい”といったような選択肢も含まれるアンケートでも良い。すなわち、アンケートにおける選択肢の数に制限はなく、実施されたアンケートに応じたアンケート管理テーブル171が作成される。
また、同じような感情に対して、複数のアンケートを採るようにしても良い。例えば、“悲しい”という感情に対して“物悲しい”、“悲嘆”といったような類似する感情に対してもアンケートを採るようにしても良い。
このように、アンケート管理テーブル171は、ユーザに対して行われたアンケートの結果が記載され、管理されるテーブルである。
図9は、曲のメタデータである。図9に示したメタデータ172は、アイテムが曲であり、その曲に関する情報が記載されているデータである。図9に示したメタデータ172には、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニ、クラスタ、および、サブクラスタといった項目が設けられ、それぞれの項目に対応する情報が関連付けられて管理されている。
例えば、アイテムIDが“I-001”のジャンルは“Rock”であり、アーティストは“ABC”であり、テンポが“24”であり、ハーモニが“A”であり、クラスタが“1”であり、サブクラスタが“1”であることが関連付けられて記載されている。
アイテムNO、ジャンル、アーティストといった情報は、人の手によりメタデータ172に書き込まれ、テンポやハーモニといった情報は、曲を解析することにより、人の手によらずに書き込まれるようにしても良い。また、クラスタやサブクラスタは、後述するクラスタの学習処理や付与処理の際に付加される情報である。
図8に示したアンケート管理テーブル171、または、図9に示したメタデータ172から、図10に示したような数量化管理テーブル173が作成される。数量化管理テーブル173は、例えば、図8に示したような所定のパターン(図8においては、あるユーザが“悲しい曲”と設定した曲のパターン)が得られる情報から作成される。
図9に示したメタデータ172から数量化管理テーブル173が作成される場合、例えば、“悲しい曲”に分類された複数の曲のメタデータ172を解析し、その解析結果から、所定のパターン(例えば、スピードの分布などを解析しパターンを抽出する)を生成し、そのパターンが用いられて数量化管理テーブル173が作成される。
数量化管理テーブル173には、曲毎に、次元毎の値が記載されている。すなわち、数量化管理テーブル173には、図8に示したようなテーブルからパターンを読みとり、数量化することにより、この場合、所定の曲を数次元の情報で表したときの情報が記載される。図10に示した例では、“曲1”の次元1の値は“0.12”、次元2の値は“0.34”、次元3の値は“0.62”と記載されている。
なお、次元は、何次元でも良い。次元は、処理の仕方(どのような方法により数値化するか)により決定され、後述するクラスタに分けるときの処理に必要な次元に決定される。数量化管理テーブル173は、後述するように、クラスタを決定する際の処理に用いられる。
[クラスタ(サブクラスタ)の学習処理について]
このようなデータを用いた処理について説明する。まず、学習部51のクラスタ学習部52(図4)が行う処理について、図11のフローチャートを参照して説明する。ステップS11において、クラスタ学習部52の楽曲データ取得部71は、楽曲データを取得する。楽曲データは、データベース54(図3)に記憶され、その記憶されている楽曲データが取得されるようにしても良いし、ネットワーク1(図1)を介して他のサーバ(不図示)から取得されるようにしても良い。
なお、楽曲データとは、曲そのもののデータであり、例えば、WAV形式のデータである。
ステップS12において、特徴量解析部73は、楽曲データ取得部71により取得された楽曲データを解析することにより、その曲の特徴量を抽出する。抽出される特徴量は、例えば、メタデータ172(図9)に記載されている情報(テンポやハーモニといった情報)である。
ここでは、楽曲データ取得部71により楽曲データが取得され、特徴量解析部73により取得された楽曲データが解析され、特徴量が抽出されるとして説明をしたが、このような取得、解析、抽出といった処理を行わずに、データベース54にメタデータ172が記憶されている場合には、そのメタデータ172が取得されるようにしても良い。換言すれは、ステップS11の処理とステップS12の処理の代わりに、データベース54からメタデータ172を取得するという処理が行われるようにしても良い。
ステップS13において、ユーザデータ取得部72は、ユーザデータを取得する。ステップS13において取得される情報は、ユーザからのアンケートの結果である。ユーザからのアンケートの結果が、ステップS13において取得される場合、例えば、事前に、紙媒体で実施したアンケートの結果として取得されたり、ネット上で実施されたアンケートの結果が集計されたりすることにより取得される。このように、アンケート結果が取得される場合、図8に示したようなアンケート管理テーブル171が作成される。
アンケートとしては、例えば、100曲に対して、100人の人に対して、「この曲は、“悲しい”、“悲しくない”のどちらか?」といったような内容のアンケートである。すなわち、この場合、所定の曲数に対して、所定のユーザ数から、所定のムード(感情)に属する曲の回答が、情報として取得される。そして、図8に示したようなアンケート管理テーブル171が作成される。
このようにして、ステップS13においてユーザからの情報(ユーザデータ)が取得される。ステップS13において取得される情報は、上述したように、アンケートの結果であり、ユーザの嗜好や価値観に依存している情報である。
なお、ここでは、ステップS13の処理として、ユーザデータが取得され、解析され、アンケート管理テーブル171が作成されるとしたが、クラスタの学習処理の1処理(1ステップ)として行われなくても、他の時点で(学習処理が行われる前の時点で)、このような処理が実行され、アンケート管理テーブル171が作成されるようにしても良い。そして作成されたアンケート管理テーブル171は、データベース54に記憶され、ステップS13においては、データベース54に記憶されているアンケート管理テーブル171が取得される処理が実行されるようにしても良い。
ステップS14において、非該当フィルタ生成部74は、非該当フィルタを生成する。図12のフローチャートを参照し、ステップS14における非該当フィルタ生成処理について説明する。
ステップS21において、ステップS13(図11)において取得されたユーザデータ(アンケート管理テーブル171)が参照され、処理対象とされている曲(例えば、曲1)が、全てのユーザが、処理対象としているムード(例えば、“悲しい”)に該当しないと判断した曲であるか否かが判断される。
非該当フィルタは、上述したように、クラスタが付与されるときに、クラスタを付与しなくて良いメタデータを排除するためのフィルタである。例えば、“悲しい”というムードのときには、絶対に提供されない曲などは、“悲しい”というムードに関連付けられたクラスタが付与されることはなく、“悲しい”というムードに関連付けられたクラスタが付与される処理が実行されるときには、排除しても良い曲(その曲のメタデータ)である。そのような排除しても良い曲が排除されるようにし、クラスタを付与すべきメタデータを抽出する処理を実行するためのフィルタが、非該当フィルタである。
非該当フィルタは、このようなフィルタであるため、確実に該当しないであろう曲(メタデータ)を排除できるようなフィルタであることが好ましい。換言すれば、例えば、“悲しい曲”と思う人が1人でもいるような曲は、非該当フィルタによる処理で排除されないようにすることが好ましい。ただし、ここまでの性能が必要であるかは、設計の段階で、適宜変更することが可能である。
また、非該当フィルタを用いることにより、確実に該当しないであろう曲を排除することができ、後述するように、例えば、所定の曲(アイテム)にサブクラスタを付与するときに、付与の対象とする曲数を減らすことができ、多くの曲を処理するときなどに、効率良く処理できるようになるため、非該当フィルタを設けることは有効である。
しかしながら、例えば、確実に該当しないであろう曲自体が少ない場合、すなわち、排除対象とされる曲自体の数が少ない場合、非該当フィルタを設けても、排除される曲が少ないため、非該当フィルタを設けることによる効果が低いと考えられるようなときには、非該当フィルタを設けないようにしても良い。すなわち、設計の段階などで、所定のムードに関しては、非該当フィルタを設けないと設定するようにすることも可能である。
ステップS21における処理は、特徴量解析部73により取得されたユーザデータ(アンケート管理テーブル171)が参照されて行われる。アンケート管理テーブル171には、図8を参照して説明したように、所定のムード(図8では“悲しい”というムード)に関して、所定の曲が、その所定のムードに該当するか否かのユーザの判断結果が、記載されている。
例えば、図8に示したアンケート管理テーブル171を参照するに、“曲1”は、“ユーザA”と“ユーザB”が悲しい曲として投票していることがわかる。また“曲2”に関しては、ユーザA,B,Cともに、悲しい曲としては投票していないことがわかる。ここでは、ユーザA,B,Cの投票結果しか示していないが、仮に、“曲2”に関しては、全てのユーザが“悲しい曲”としては投票していないとする。そのような曲は、悲しいというムードのときに提供されることは絶対にないと判断できる曲である。
非該当フィルタ生成部74は、このような全てのユーザが、所定のムード(処理対象とされているムード)には該当しないとした曲が抽出される。この場合、“曲2”が抽出される。なお、ここでは、“全てのユーザ”としたが、上記したように、フィルタの精度は、適宜変更可能であり、例えば、“全てのユーザ”ではなく、“調査対象としたユーザ数の5%以下のユーザ”が、所定のムードには該当しないとした曲が抽出されるようにしても良い。
ステップS21において、処理対象とされた曲は、全てのユーザが該当しないと判断した曲ではないと判断された場合、ステップS22に処理が進められ、アンケート管理テーブル171に記載されている次の曲が処理対象の曲に設定される。そして、ステップS21以下の処理が繰り返される。
一方、ステップS21において、処理対象とされた曲は、全てのユーザが該当しないと判断した曲であると判断された場合、ステップS23に処理が進められ、その曲の特徴量が一旦記憶(蓄積)される。非該当フィルタ生成部74には、特徴量解析部73から、曲の特徴量が供給される。この供給される特徴量は、処理対象とされている曲の特徴量である。
ステップS24において、アンケート管理テーブル171に記載されている全ての曲(処理対象とされているムードに関する全ての曲)を調べたか否かが判断される。ステップS24において、全曲調べてはいないと判断された場合、ステップS22に処理が進められ、次の曲に処理対象の曲が設定される。そして、ステップS21以下の処理が繰り返される。
一方、ステップS24において、全曲調べたと判断された場合、ステップS25に処理が進められる。ステップS25において、蓄積されている特徴量からさらに特徴量が抽出される。ステップS21乃至S24の処理が繰り返されることにより、所定のムードには該当しない曲の特徴量が蓄積されている。それらの曲に共通する特徴量が、ステップS25の処理として抽出される。
ステップS25において抽出された特徴量は、ステップS26において、非該当フィルタのデータとして、データベース54に記憶される。
このようにして、所定のムードに対しての非該当フィルタが生成される。このような処理が繰り返されることにより、複数のムード毎に、非該当フィルタが生成される。
図11のフローチャートの説明に戻り、ステップS14において、上記したような非該当フィルタ生成処理が実行されているとともに、ステップS15において、多変量解析部75により多変量解析の処理が実行される。
例えば、図8に示したようなアンケート管理テーブル171に記載されている情報に対して、多変量解析が実行されることにより、図10に示したような数量化管理テーブル173が作成される。すなわち、図8に示したようなアンケート管理テーブル171の回答パターンから、対応分析や主成分分析などの多変量解析により、ユーザの感情(ムード)に基づく曲毎の特徴が、数次元のデータに数量化される。
曲の情報を多次元の数量化されたデータとして管理しているのが、図10に示した数量化管理テーブル173である。このような数量化管理テーブル173が、ステップS15において作成される。
ステップS15において、数量化管理テーブル173に記載されている情報(数値)が、マッピングされる。例えば、図10に示した数量化管理テーブル173のうち次元1と次元2の欄に記載されている数値をマッピングすることを考える。次元1を例えばX軸、次元2を例えばY軸に対応させることにより、X軸とY軸の2軸からなる2次元に、数量化管理テーブル153に記載されている各曲の特徴(情報)をマッピングすることができる。このようなマッピングが行われると、例えば、図13に示したようなグラフを取得することができる。
図13に示したグラフは、図10に示したような数量化管理テーブル173に記載されている曲を、曲毎に、次元1と次元2の数値を用いて、マッピングした一例である。マッピングは、数量化管理テーブル173に記載されている曲数分(例えば、100曲分(非該当フィルタの生成の元になった曲は除外された曲数分))に対して行われる。このような処理が行われるため、多変量変換を行うときの次元は、何次元にマッピングし、後述する処理が実行されるかにより決定されればよい。例えば、2次元にマッピングされ、後述する処理が実行される場合には、多変量変換は2次元のデータに数量化されればよい。
図13に示したようなグラフが作成されると、ステップS17(図11)において、クラスタが決定される。クラスタは、例えば、図13に示したグラフを解析し、まとまりのある部分(点が集中している部分など)毎に分割し、その分割された領域をクラスタ1、クラスタ2などと順次割り当てることにより、クラスタが決定される。
クラスタリングは、例えば、k-meansや階層などの手法により行われる。
クラスタリングが行われることにより、例えば、図13に示したグラフから、図14に示したような結果が取得される。図14に示した結果は、サブクラスタ1乃至5の5つのサブクラスタに分類されたときの状態を示している。各サブクラスタは、重なりがない状態で設定されている。このように、各サブクラスタに重なりがないように設定することにより、1つのアイテムに対して1つのサブクラスタを割り当てることが可能となる。
各サブクラスタに重なりがあっても良いように設定することも可能である。ソフトクラスタリング手法などと称されるクラスタリング手法を用いてクラスタリングを行った場合、サブクラスタに重なりが生じることがある。サブクラスタに重なりがあるような場合、例えば、サブクラスタ1が90%、サブクラスタ2が10%といったように、1つのアイテムに対して、複数のサブクラスタと占める割合が割り当てられる。
また、サブクラスタに重なりがあるようにした場合に、各サブクラスタの値を合計したときに、必ずしも100%になる必要性はない。例えば、サブクラスタ1が80%、サブクラスタ2が30%であっても良い。
本実施の形態においては、後述するように、所定のアイテムを所定のクラスタとそのクラスタにおけるサブクラスタに分類できれば良く、例えば、クラスタリングの結果、所定のクラスタに属し、そのクラスタにおけるサブクラスタ1が80%、サブクラスタ2が30%と算出された場合、そしてそのような重なりのあるサブクラスタに所定のアイテムが分類されるようなとき、パーセンテージの高い、サブクラスタ1に分類されると決定されるようにすればよい。よって、このサブクラスタに重なりがあるようにサブクラスタが導き出されるようにしても(ソフトクラスタリングの手法が用いられるようにしても)、サブクラスタに重なりがないような手法にしても、後述するアイテムの分類(サブクラスタの付与の処理)は行えるため、どちらの手法を用いても良い。
すなわち、所定のアイテムが、所定のサブクラスタに属すると分類されるとき、そのサブクラスタで確からしいという確率(帰属度)が求められれば良い。ここでは、図14に示したように、各サブクラスタには重なりがないとして説明を続ける。
ここでは、図14に示したように、各サブクラスタには重なりがないとして説明を続ける。
ここで、クラスタとサブクラスタについて、説明を加える。上記したような処理が行われることにより、ここでは、サブクラスタ1乃至5が生成されるとした。このサブクラスタ1乃至5は、もともと、1つのムードに対して処理が行われた結果、生成されたサブクラスタである。換言すれば、この場合、“悲しい”というムードに対して、“悲しい”という曲に該当する曲をクラスタリングすることにより生成されたサブクラスタである。
ここで、例えば、“悲しい”というムードに、サブクラスタの上位階層であるクラスタの“クラスタ1”を割り当てると、このクラスタ1という“悲しい”というムードに対して、サブクラスタ1乃至5のサブクラスタが存在することになる。このように、所定のムードを識別するためのクラスタを“クラスタ”とし、そのクラスタに属する複数のクラスタを“サブクラスタ”とする。この場合、“悲しい”というムードがクラスタ1であり、そのクラスタ1に属するサブクラスタは、サブクラスタ1乃至5ということである。
ステップS17(図11)の処理で決定されるクラスタは、処理対象とされているムードに、他のムードに割り振られていないクラスタを割り当て、マッピングの処理の結果得られるクラスタを、サブクラスタとして割り当てる処理である。
このようにして、所定の情報からサブクラスタが導き出されると、ステップS18(図11)において、導き出されたサブクラスタが記憶される。
上記したように、例えば、ステップS13において、ユーザデータが取得される際、図8に示したようなアンケート管理テーブル171が取得される。このアンケート管理テーブル171は、曲1、曲2といった曲毎に、情報が管理されている。
各曲にはメタデータが付随している。メタデータは、図9に示したようなメタデータ172のように、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニ、クラスタ、サブクラスタといった項目に対する情報が関連付けられたテーブルである。このような項目のうち、クラスタとサブクラスタ以外の項目、すなわち、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニは、事前に、曲のメタデータとして付与されている情報である(各曲のメタデータは、これらの項目に対する情報が記載された状態で、データベース54に記憶されている)。
クラスタの決定の処理のために用いられた曲(アイテム)のメタデータは、クラスタという項目に対する情報が記載されていない状態である。そこで、ステップS18において、ステップS11以降の処理対象とされた曲(アイテム)に対応するメタデータのクラスタとサブクラスタという項目の欄に、対応するクラスタとサブクラスタが書き込まれる。
このように、クラスタの学習の処理に用いられた曲のメタデータには、学習の結果得られたクラスタとサブクラスタが設定され、メタデータのクラスタとサブクラスタの欄にそれぞれ書き込まれる。
例えば、図9に示したメタデータ172のアイテムNOが“1−001”という曲に対しては、クラスタとして“1”が割り当てられ、サブクラスタとして“2”が割り当てられ、それぞれ値が記載された状態を示している。またアイテムNOが“1−002”という曲に対しては、クラスタとして“1”が割り当てられ、サブクラスタとして“3”が割り当てられ、それぞれの値が記載された状態を示している。
このように、アイテムNOが“1−001”という曲と“1−002”という曲は、共にクラスタとしては“1”という共通の分類がされている。よって、同じムードに属する曲である。しかしながら、サブクラスタは、“1−001”という曲は“2”であり、“1−002”という曲は“3”であり、それぞれ異なる分類がされている。よって、サブクラスまで考慮すると、同じムードに属する曲であっても、違う分類がされていることになる。
なおここでは、クラスタとその下のサブクラスタがあるとして説明を続けるが、サブクラスタの下に、さらにサブクラスを付けることも可能である。すなわち、1つのサブクラスタ(サブクラスタAとする)に対して、上記したようなクラスタの学習の処理を実行すれば、サブクラスタAに対して、複数のクラスタが生成されることになり、その生成されたクラスタをサブクラスタAのサブクラスタとすることも可能である。このように、サブクラスタの下にサブクラスタを付けることにより、さらに細かい分類を行うことが可能となる。
図11を参照して説明したクラスタの学習処理は、図4に示したクラスタ学習部52による処理である。次に、図5に示したクラスタ学習部52’が行うクラスタの学習処理について、図15のフローチャートを参照して説明する。
図15のフローチャートのうち、ステップS31乃至34の処理は、図11のステップS11乃至S14の処理と同様であるので、その説明は省略する。すなわち、クラスタ学習部52’(図5)においても、非該当フィルタは、上述したクラスタ学習部52(図4)が行う処理と同様の処理で生成される。
ステップS35において、メタデータ解析部81は、メタデータを解析する。メタデータには、例えば、図9に示したメタデータ172のように、テンポなどの曲の特徴量が記載されている。そのような曲の特徴量は、特徴量解析部73から取得される。特徴量解析部73は、上記したように、楽曲データから特徴量を抽出するか、予めデータベース54などに記憶されているメタデータ172を取得することにより特徴量を取得し、メタデータ解析部81に供給する。
また、メタデータ解析部81に供給される曲の特徴量は、非該当フィルタ生成部74により、非該当であると判断された曲以外の曲に関する特徴量である。すなわち、メタデータ解析部81は、所定のムードに該当すると判断された曲のメタデータを取得し、解析を行う。メタデータの解析とは、例えば、該当すると判断された曲には、どのような特徴があるかを調べるための処理である。
メタデータ解析部81による解析結果は、多変量解析部75に供給される。多変量解析部75は、ステップS36において、多変量解析を行う。ステップS36以下の処理(多変量解析部75とクラスタリング部76で行われる処理)は、図11のステップS15以下の処理と同様であるので、その説明は省略する。
このように、図5に示したクラスタ学習部52’においては、所定のムードに該当すると判断された曲のメタデータが解析されることにより、クラスタが生成される。このような場合も、クラスタと、サブクラスタが生成されることは、上述した場合と同様であり、サブクラスタを設けることによる効果も、同様に得ることができる。
さらにクラスタ(サブクラスタ)の他の学習について説明する。以下に説明するクラスタの学習の処理は、図4に示したクラスタ学習部52により行われる。また、非該当フィルタの生成に関しては、上記した場合と同様であるので、その説明は省略する。
上記したクラスタの学習は、マッピングなどの処理を行うことにより、クラスタの学習を行う例である。ここでは、ユーザの支持率を用いてクラスタの学習を行う例をあげ、図16のフローチャートを参照して説明する。ユーザの支持率とは、例えば、調査対象とされるムードにおいて、調査対象とされたユーザの数のうち、何人のユーザが調査対象とされたアイテム(以下、アイテムとして曲を例に挙げて説明する)を、調査対象とされたムードに該当すると判断したかを調べることにより行われる。例えば、調査対象とされるユーザの数が、100人であり、曲1を“悲しい曲”と判断したのが、3人であった場合、曲1に対する支持率は、支持率3%と算出される。
また、クラスタは、処理対象とされるムードが決定された時点で、そのムードに対応する(関連付けられている、または、関連付ける)クラスタが割り当てられるため、以下の説明は、サブクラスタの学習の処理である。
ステップS51において、調査対象となる曲(例えば、100曲)に対して、支持率が算出される。この算出は、図8に示したアンケート管理テーブル171が参照されて行われる。すなわち、調査対象とするムードと調査対象とされる曲、設定された曲がそのムードに該当すると判断したユーザ数を算出することにより行われる。
ステップS52において、所定の曲の支持率が、0乃至20%未満であるか否かが判断される。ステップS52において、支持率が、0乃至20%未満であると判断された場合、ステップS53において、処理対象とされている曲のサブクラスタが、サブクラスタ1と設定される。設定されたサブクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS52において、支持率が、0乃至20%未満ではないと判断された場合、ステップS54に処理が進められ、支持率が、20乃至40%未満であるか否かが判断される。ステップS54において、支持率が、20乃至40%未満であると判断された場合、ステップS55において、処理対象とされている曲のサブクラスタが、サブクラスタ2と設定される。設定されたサブクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS54において、支持率が、20乃至40%未満ではないと判断された場合、ステップS56に処理が進められ、支持率が、40乃至60%未満であるか否かが判断される。ステップS56において、支持率が、40乃至60%未満であると判断された場合、ステップS57において、処理対象とされている曲のサブクラスタが、サブクラスタ3と設定される。設定されたサブクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS56において、支持率が、40乃至60%未満ではないと判断された場合、ステップS58に処理が進められ、支持率が、60乃至80%未満であるか否かが判断される。ステップS58において、支持率が、60乃至80%未満であると判断された場合、ステップS59において、処理対象とされている曲のサブクラスタが、サブクラスタ4と設定される。設定されたサブクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS58において、支持率が、60乃至80%未満ではないと判断された場合、ステップS60に処理が進められ、処理対象とされている曲のサブクラスタが、サブクラスタ5と設定される。設定されたサブクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
ステップS52乃至S60の処理が繰り返されることにより、曲毎にサブクラスタが付けられる。このように、ユーザの支持率を用いて、サブクラスタの学習を行うようにしても良い。このようにした場合も、ユーザの支持率を用いているため(この支持率自体、ユーザの購入履歴などから算出することが可能であり、ユーザからの情報を用いていることになる)、ユーザの嗜好を反映したサブクラスタの学習が行えることは、上記したマッピングなどの手法を用いて学習する場合と同様に言えることである。
[サブクラスタの再設定に関わる処理について]
上記したように、クラスタおよびサブクラスタが学習された結果、例えば、図14のようにサブクラスタが分布しているようなグラフを作成することができる。図14に示したサブクラスタの分布の例では、個々のサブクラスタに属するアイテム数を示していないが、個々のサブクラスタに属するアイテム数は、サブクラスタ毎に異なる。
所定のサブクラスタに含まれるアイテム数が、サブクラスタ毎に異なるため、例えば、サブクラスタ1には100個のアイテムが含まれるが、サブクラスタ2には、5個のアイテムしか含まれていないなど、サブクラスタに含まれるアイテムの個数に開きが生じる可能性がある。他のサブクラスタと比較したとき、少ない個数のアイテムしか含まれないようなサブクラスタは、サブクラスタとして独立して設定するには適していない可能性がある。換言すれば、他のサブクラスタに含めてしまっても良い可能性があり、他のサブクラスタに含めた方がより適切なサブクラスタの設定である場合がある。
また、サブクラスタの数が多くなると、より詳細に分類されるという利点はあるが、上記したように、不適切に分類されたサブクラスタが含まれる可能性があるし、後述するようにアイテムをユーザに推薦するときの処理で多くのサブクラスタがあると適切な推薦ができなくなる可能性がある。例えば、詳細すぎて、ユーザ側にサブクラスタ毎の違いが分かりづらくなり、ユーザが異なるサブクラスタのアイテムを推薦して欲しいと所望し、異なるサブクラスタのアイテムが紹介されても、似たようなアイテムしか推薦されなくなるような可能性がある。
換言すれば、サブクラスタの数が多くなると、サブクラスタ毎の特徴がでなくなり、サブクラスタを設定し、アイテムを分類した意味合いが薄くなってしまう。
すなわち、サブクラスタの数は、後述するように新たなアイテムにサブクラスタを付与する場合や、アイテムをユーザに推薦する場合に、適切な処理をできる適切な数である方が好ましく、また、各サブクラスタの特徴が出るような数である方が好ましいと考えられる。そこで、上記したような処理により生成されたサブクラスタの数を、適切な数になるようにするための処理が行われるようにする。以下に、その処理について説明する。
図17は、図14と同じく、上記したようなサブクラスタの生成の処理が実行された結果、複数のアイテムが、複数のサブクラスタに分類されたときの、サブクラスタの分布と各サブクラスタに含まれるアイテム数を示す図である。図17に示した例は、サブクラスタ1乃至7という7個のサブクラスタが生成された例である。
サブクラスタ1には、8個のアイテムが含まれ、サブクラスタ2には、6個のアイテムが含まれ、サブクラスタ3には、3個のアイテムが含まれ、サブクラスタ4には、5個のアイテムが含まれ、サブクラスタ5には、3個のアイテムが含まれ、サブクラスタ6には、2個のアイテムが含まれ、サブクラスタ7には、2個のアイテムが含まれている。
ここで、サブクラスタ3、5、6、7(図17中、点線で示したサブクラスタ)は、他のサブクラスタ(図中、実線で示したサブクラスタ)、例えば、サブクラスタ1と比べて含むアイテム数が少ない。このような含まれるアイテムの数が少ないサブクラスタを、他のサブクラスタと併合する、または、削除することにより、サブクラスタの数を適切な数に編集する。すなわちここでは、サブクラスタ3、5、6、7が、それぞれ、サブクラスタ1、2、4のいずれかのサブクラスタに併合されるか、または削除される。
含まれるアイテム数が少ないために、他のサブクラスタに併合するかまたは削除するかを判断するために、支持率という概念をここでは導入し、支持率が高いときには、併合されないようにし、支持率が低いときには、併合されるようにする。
また、本実施の形態においては、含まれるアイテム数が少ないために他のサブクラスタに併合されるときには、併合されるサブクラスタ同士の特徴が類似しているようにする。併合されるサブクラスタ同士の特徴が類似しているようにするために、サブクラスタ同士の距離という概念を導入し、距離が近いサブクラスタに併合されるようにする。
まず、支持率について説明を加える。なお、図16を参照して説明した、サブクラスタの他の学習処理における“支持率”と、以下に説明する“支持率”は異なる支持率を示す(異なる数値)ものである。
図18は、図8に示した、所定のモードに関して、所定の曲に関するユーザの統計を示すアンケート管理テーブル171を、支持率を算出するためのテーブルに書き直したテーブルである。図18に示したテーブルも、ユーザからのアンケート結果に基づき作成されるので、アンケート管理テーブル171’と記述する。
図18に示したアンケート管理テーブル171’においては、縦軸にユーザ名、横軸にアイテム(この場合、曲)を示し、所定の曲が、“悲しい”というモードに適合するか否かをユーザが判断した結果を示している。例えば、曲1に対し、ユーザAは、悲しいと判断し(図18においては、○で表記)、ユーザBは、悲しくないと判断し(図18においては、×で表記)、ユーザCは、悲しいと判断し、ユーザDは、悲しいと判断し、ユーザEは、悲しいと判断したことが示されている。また、その結果、曲1に対して悲しいと判断したユーザの総数は“4”であり、比率は“0.80”(=4/5)であることが示されている。
このように、アンケート管理テーブル171’では、所定のモード(図18に示した例においては“悲しい”というモード)において、何人のユーザが、処理対象とされたアイテム(曲)を、その所定のモードに合致していると判断したかの総数と、比率が管理される。
このようなアンケート管理テーブル171’で管理されているデータ(図8に示したアンケート管理テーブル171で管理されているデータ)に基づき、サブクラスタを学習する処理が実行された結果、図17に示したようにサブクラスタが分布し、アイテム(曲)が含まれる場合を例に挙げて説明を続ける。
図17を参照して説明したように、図17に示したサブクラスタのうち、サブクラスタ3、5、6、7は、他のサブクラスタに併合されるかまたは削除されるサブクラスタとして決定されたサブクラスタである。このうち、サブクラスタ3とサブクラスタ6を例に挙げて、以下の説明を続ける。
図19は、サブクラスタ3に含まれる曲とサブクラスタ6に含まれる曲を示した図である。サブクラスタ3には、曲4、曲5、曲6が含まれ、サブクラスタ6には、曲1と曲2が含まれる。サブクラスタ3に含まれる曲4、5、6の比率は、それぞれ“0.20”、“0.20”、“0.20”、である。また、サブクラスタ6に含まれる曲1と曲2の比率は、それぞれ“0.80”、“1.00”である。
支持率は、サブクラスタに含まれる曲毎の比率を用いて算出される。ここでは、支持率は、所定の曲の比率に関するデータを用いて、次式(1)に基づいて算出されるとする。
支持率=Σ(Ni/i)・・・(1)
この式(1)において、“i”は、サブクラスタのメンバー数を表し、Niは、アイテムの合致評価数を表す。“サブクラスタのメンバー数”とは、所定のアイテムを評価したユーザの数であり、例えば、図18においては、ユーザA乃至Eの5人である。また、“アイテムの合致評価数”とは、何人のユーザが、所定のアイテムに対して、所定のモードが合致すると答えたかを表す数であり、例えば、図18において、“曲1”に対して、“悲しい”というモードが合致すると答えたユーザは、4人であるので、アイテムの合致評価数は4となる。
よって、(Ni/i)は、合致評価数をユーザの数で除算した結果であるので、“比率”になる。例えば、図18において、“曲1”の“Ni”は4、“i”は、5となるので、(Ni/i)は“0.8”と算出される。すなわち、この“0.8”は、比率である。よって、式(1)は、比率の総和を算出する式である。
式(1)は、処理対象とされているサブクラスタに含まれるアイテムの比率の総和を求める式であり、その算出結果が、支持率とされる。
ここで、式(1)に基づき、サブクラスタ3とサブクラスタ6の支持率をそれぞれ求める。サブクラスタ3とサブクラスタ6に、それぞれ含まれるアイテム(この場合、曲)と、そのアイテムの比率は、図19に示すとおりである。
サブクラスタ3の支持率=0.20+0.20+0.20=0.60
サブクラスタ6の支持率=0.80+1.00=1.80
このように、サブクラスタ3は、含まれるアイテム数が、サブクラスタ6より多いが、支持率は、サブクラスタ6の支持率よりも低い値となる。
上記したように、サブクラスタ3とサブクラスタ6は、含まれるアイテム数が所定の数以下であるので、削除または他のサブクラスタと併合する対象とされているサブクラスタである。削除または併合の対象とされているサブクラスタを、削除するか否かを決定する条件として、対象とされているサブクラスタの支持率が所定の値以下である場合、そのサブクラスタを削除し、支持率が所定の値以上である場合、そのサブクラスタを他のサブクラスタと併合するという条件をここでは適用する。
所定の値として、例えば“1.00”が設定された場合、支持率が“0.60”のサブクラスタ3は削除され、支持率が“1.80”のサブクラスタ6は、削除されずに他のサブクラスタに併合されることになる。
このような設定のもと、サブクラスタの削除と併合が行われる場合、削除または併合の対象とされているサブクラスタ3,5,6,7のうち、サブクラスタ3とサブクラスタ7は、支持率が所定の値以下となるため削除対象とされ、サブクラスタ5とサブクラスタ6は、支持率が所定の値以上となるため、併合対象とされる。このようなときに、削除と併合が行われた後の結果を示すと、図20に示したようなサブクラスタの分布となる。すなわち、図17に示したサブクラスタの分布は、図20に示したようなサブクラスタの分布に再編集される。
図20に示したサブクラスタの分布においては、サブクラスタ1に、サブクラスタ5とサブクラスタ6が併合されため、サブクラスタ5とサブクラスタ6は存在していない。また、サブクラスタ3とサブクラスタ7は、削除されため、図20に示したサブクラスタの分布においては存在していない。
また、サブクラスタ1に、サブクラスタ5とサブクラスタ6が併合されたため、サブクラスタ1内のアイテムの数は、8個から13個に増加している。
また、サブクラスタの削除と併合が行われた後には、図20に示したように、サブクラスタ1、サブクラスタ2、およびサブクラスタ4という3つのサブクラスタが残っている状態となる。このような状態になった後、サブクラスタ4をサブクラスタ3と変更しても良い(以下、適宜、サブクラスタ3などの“3”といった番号をサブクラスタ番号と記述する)。すなわち、サブクラスタ番号に、空き番がないように、サブクラスタ番号が再編集されるようにしても良い。
このような処理が実行されるときの、クラスタ学習部52のクラスタリグ部76(図4または図5)の機能ブロック図を図21に示す。なお、図21に示す機能は、クラスタリング部76が備えるようにしても良いし(以下の説明ではそのように説明する)、クラスタリング部76からの結果が供給される他の部分で行われる(例えば、図4のクラスタリング部76からの供給を受けて処理を実行する部分が追加された構成とされる)ようにしても良い。
図21に示したクラスタリング部76は、アイテム数判断部201、処理対象判断部202、支持率算出部203、併合対象判断部204、併合先決定部205、および再サブクラスタ設定部206を含む構成とされている。
アイテム数判断部201は、例えば図11に示したフローチャートの処理が実行された結果、サブクラスタが図17に示したように決定された後の結果を用いて、処理対象とされるサブクラスタ内に含まれるアイテムの数を判断する機能である。例えば、図17のサブクラスタ3が処理対象とされているときには、アイテム数判断部201は、サブクラスタ3に含まれるアイテム数は3個であると判断する。
処理対象判断部202は、アイテム数判断部201により、判断されたアイテム数と所定の値(閾値)を比較し、閾値以下である場合、削除または併合の処理を行う対象となるサブクラスタであると判断し、後段の処理が実行されるサブクラスタとして設定し、閾値以上である場合、そのまま残すサブクラスタであるとして設定する。
支持率算出部203は、処理対象とされたサブクラスタの支持率を、上記したようにして算出する。支持率算出部203は、例えば、処理対象とされたサブクラスタが、図19に示したサブクラスタ3である場合、支持率を0.80と算出する。
併合対象判断部204は、支持率算出部203により算出された支持率と設定されている所定の値を比較し、処理対象とされたサブクラスタを削除するか、他のサブクラスタと併合するかを判断する。
併合先決定部205は、併合対象判断部204により併合対象であると判断されたサブクラスタを、どのサブクラスタと併合するかを決定する。併合対象決定部205は、併合するサブクラスタとセントロイド距離が最短となるサブクラスタを判断し、最短となるサブクラスタを併合先のサブクラスタとして決定する。
再サブクラスタ設定部206は、併合対象判断部204により削除対象と判断されたサブクラスタを、既に作成されているサブクラスタの分布から削除し、併合先決定部205により併合先が決定されたサブクラスタを併合先とされたサブクラスタと併合することにより、一度作成されたサブクラスタを編集し直す。
このような機能を有するクラスタリング部76の動作について、図22のフローチャートを参照して説明する。
ステップS71において、アイテム数判断部201は、クラスタリングされた結果を取得する。すなわち、ステップS71の処理は、既にクラスタリングされ、例えば、図17に示すように複数のサブクラスタが設定されている状態のときに行われ、その設定されているサブクラスタの情報が、取得される。
そして、アイテム数判断部201は、取得したクラスタリングの結果を参照し、所定のサブクラスタを処理対象とし、そのサブクラスタに含まれるアイテム数を判断し、処理対象判断部202に、その判断結果を供給する。
ステップS72において、処理対象判断部202は、アイテム数判断部201から供給されたアイテム数が、所定の閾値以下であるか否かを判断することで、その時点で処理対象とされているサブクラスタを、削除または併合の処理を実行する対象とするサブクラスタに設定するか否かを判断する。
ステップS72において、処理対象とされているサブクラスタに含まれるアイテム数が、所定の閾値以上であると判断された場合、ステップS73に処理が進められ、そのサブクラスタは、そのまま残すサブクラスタとして設定される。例えば、上述したように、図17に示したクラスタリングの結果のうち、サブクラスタ1が処理対象とされ、所定の閾値が3であるような場合、サブクラスタ1に含まれるアイテム数は8であるので、閾値以上であると判断され、サブクラスタ1はそのまま残すサブクラスタであるとして設定される。
一方、ステップS72において、処理対象とされているサブクラスタに含まれるアイテム数が、所定の閾値以下であると判断された場合、ステップS74に処理が進められ、支持率が算出される。処理対象判断部202により、アイテム数が所定の閾値以下であると判断された場合、削除または併合の処理が行われる対象とされるサブクラスタとして設定されたことになり、そのサブクラスタの情報が、支持率算出部203に供給され、支持率が算出される。
支持率の算出の仕方については、例えば、図18や図19を参照して説明したように、サブクラスタに含まれるアイテムの比率の総和を算出することにより行われる。支持率算出部203により算出された支持率は、併合対象判断部204に供給される。
ステップS75において、併合対象判断部204は、支持率と所定の閾値を比較し、支持率が閾値以下であるか否かを判断する。ステップS75において、支持率が閾値以下であると判断された場合、ステップS76に処理が進められ、処理対象とされているサブクラスタが、削除対象のサブクラスタとして設定される。一方、ステップS75において、支持率が閾値以上であると判断された場合、ステップS77に処理が進められ、処理対象とされているサブクラスタが、併合対象のサブクラスとして設定される。
ステップS77において、処理対象とされているサブクラスタが、他のサブクラスタと併合するとして設定された場合、ステップS78において、併合先のサブクラスタが決定される。併合先のサブクラスタは、処理対象とされているサブクラスタのセントロイドからの距離が最も短いサブクラスタであり、かつ、削除対象や併合対象とされていないサブクラスタ(ステップS73において、そのまま残すとサブクラスタとして設定されたサブクラスタ)が、併合先のサブクラスタとして決定される。決定された併合先のサブクラスタの情報と、併合するサブクラスタの情報は、再サブクラスタ設定部206に供給される。
例えば、図17に示したサブクラスタの分布において、サブクラスタ6が他のサブクラスタと併合すると設定された場合、サブクラスタ6とセントロイドの距離が近いサブクラスタ1が併合先のサブクラスタとして決定される。そして、併合するサブクラスタの情報として、サブクラスタ6の情報が再サブクラスタ設定部206に供給され、併合先のサブクラスタの情報として、サブクラスタ1の情報が、再サブクラスタ設定部206に供給される。
ステップS79において、再サブクラスタ設定部206は、削除対象とされたサブクラスタを削除し、併合対象とされたサブクラスタを併合先のサブクラスタと併合するといった、サブクラスタの再編集を実行する。この際、削除や併合されることにより割り当てられなくなったサブクラスタ番号を、存在しているサブクラスタのサブクラスタ番号と入れ換えるといった処理が行われ、サブクラスタ番号の編集も行われるようにしても良い。
このようにして、例えば、図17に示したようなサブクラスタの分布は、図20に示したようなサブクラスタの分布に編集される。このようにサブクラスタが編集されることにより、サブクラスタとして設定するにはふさわしくないサブクラスタを排除することができ、適切なサブクラスタの設定が行えるようになる。
上述したような処理が行われることにより、適切なサブクラスタを設定することができるが、その結果、例えば、サブクラスタの数が少なくなりすぎると、極端の例であるが、サブクラスタが1つになってしまうと、クラスタ=サブクラスタとなってしまい、サブクラスタを設けたことによる効果が低くなってしまう。換言すれば、サブクラスタの数が少ないと、サブクラスタ毎の特徴が出にくくなってしまう可能性がある。また、サブクラスタの数が多くても、サブクラスタ毎の違いが小さいものとなり、結果としてサブクラスタ毎の特徴が出にくくなってしまう可能性がある。
そこで、サブクラスタの数が、サブクラスタ毎の特徴が明確になるぐらいの数であり、かつ、数が多すぎるために処理がしづらくなるといったような不都合が発生しづらい数になるように、すなわち、適切な数にまとまるように処理が行われるようにしても良い。
適切な数にまとまるようにするために、例えば、ステップS72において、サブクラスタに含まれるアイテム数が閾値と比較されるが、編集の結果、サブクラスタの数が少なくなりすぎないように、または多くなりすぎないように、その閾値を可変値とし、適宜変更されるようにしても良い。すなわち、閾値を可変とし、調整することで、そのまま残すサブクラスタの数を調整することができる。
また、ステップS75において、支持率が閾値以下であるか否かが判断されるが、編集の結果、サブクラスタの数が少なくなりすぎないように、または多くなりすぎないように、その閾値を可変値とし、適宜変更されるようにしても良い。すなわち、閾値を可変とし、調整することで、削除されるサブクラスタの数を調整することができる。
また、以下に説明するように、クラスタリングの手法を変えるようにしても良い。クラスタリングの手法としては、上記したように、k-meansや階層などの手法などがあり、複数のクラスタリングの手法が存在する。そこで、予め複数のクラスタリングの手法毎に、サブクラスタを求め、その結果を比較、検討することにより、適切なサブクラスタの数(分布)となる手法を適用するようにしても良い。
ここでは、図18に示した結果が用いられ、クラスタリングされるとする。そして、そのクラスタリングの結果、一度サブクラスタが決定されたが、その後、上記したようなサブクラスタリングの削除や併合が行われ、その結果、図23に示すような結果が得られたとして説明を続ける。
図23は、クラスタリングの手法として、手法X、手法Y、手法Zのそれぞれの手法で、クラスタリングを行い、削除や併合といった処理を行った結果を示している。すなわち、図23においては、クラスタリングの手法、曲1乃至6、分類先のサブクラスタがそれぞれ関連付けられている。
図23に示した表によれば、曲1と曲2は、それぞれ、手法X、手法Y、および手法Zの全ての手法で“サブクラスタ1”に分類されている。曲3は、手法Xだと“サブクラスタ2”に分類され、手法Yまたは手法Zだと“サブクラスタ1”に分類される。曲4は、手法Xだと“サブクラスタ3”に分類され、手法Yまたは手法Zだと“サブクラスタ2”に分類される。曲5は、手法Xまたは手法Yだと“サブクラスタ3”に分類され、手法Zだと“サブクラスタ2”に分類される。曲6は、手法Xだと“サブクラスタ3”に分類され、手法Yまたは手法Zだと“サブクラスタ2”に分類される。
このように、曲1乃至6が、それぞれの手法X、手法Y、または手法Zでクラスタリングされると、異なるサブクラスタに分類される可能性がある。このような結果を用いて、どのクラスタリングの手法が、そのモードに適しているかを判断する。
どのクラスタリングの手法にするかを決定するために、図24に示すように、手法毎の支持率が算出される。支持率は、算出対象となる手法に含まれる所定のサブクラスタの比率の総和を、そのサブクラスタ数で除算した値とされる。例えば、手法Xにおけるサブクラスタ1の支持率は、以下のように算出される。
手法Xでクラスタリングされると、曲1と曲2がクラスタ1に分類される(図23参照)。曲1と曲2の比率は、それぞれ“0.80”と“1.00”である(図18参照)。よって、手法Xにおけるサブクラスタ1における比率の総和は“1.80”(=0.80+1.00)である。この総和は、曲1と曲2という2つのアイテムの比率の総和であるので、この総和を2で除算し、“0.90”という値が得られる。このようにして支持率が算出される。
同様に、手法Xにおけるサブクラスタ2の支持率を算出すると、以下のようになる。すなわち、手法Xでクラスタリングされたときにサブクラスタ2に分類されるのは、曲3だけであり、曲3の比率は“0.60”であるので、0.60/1=0.60と支持率が算出される。
さらに同様に、手法Xにおけるサブクラスタ3の支持率を算出すると、以下のようになる。すなわち、手法Xでクラスタリングされたときにサブクラスタ3に分類されるのは、曲4、曲5、曲6であり、曲4の比率は“0.20”、曲5の比率は“0.20”、曲6の比率は“0.20”であるので、(0.20+0.20+0.20)/3=0.20と支持率が算出される。
このようにして、手法毎に、またサブクラスタ毎に、支持率を算出すると、図24に示したようになる。
ところで、良いクラスタリングの手法とは、その結果が分散している方が良い。そこで、図24に示したような結果を用いて、手法毎の支持率の分散を算出し、その値が最も大きい手法を、適切な手法であるとして設定されるようにする。
支持率の分散は、以下の式(2)に基づいて算出される。式(2)における分散の値は、
σ
2 で表している。
式(2)において、nは、所定の手法でクラスタリングを実行し、サブクラスタの編集をしたときに、結果として得られたサブクラスタの数である。例えば、図24において、手法Xでクラスタリングを実行したときに、結果として得られるのは、クラスタリング1乃至3の3個のサブクラスタであるので、nの値は“3”となる。
式(2)において、分子の括弧内の第1項は、所定の手法における支持率の平均値を示し、第2項は、各支持率を表す。すなわち、括弧内の演算が行われることにより、所定の手法における所定のサブクラスタの支持率が、その手法における支持率の平均値とどのくらいぶれているのかが算出される。式(2)における分子においては、括弧内の値の2乗の総和が算出され、その総和が算出される。その総和がnで除算されることにより分散の値が求められる。
例えば、手法Xにおける支持率の平均値は、図24を参照するに、
(0.90+0.60+0.20)/3=0.566
と算出される。よって、式(2)における括弧内の第1項の値は、“0.57”とされる(四捨五入)。
そして、この支持率の平均値との差分の2乗が算出される、その総和が算出されることにより、式(2)の分子の値が算出される。すなわち、手法Xのときには、次式により式(2)の分子の値が算出される。
(0.57−0.90)2+(0.57−0.60)2+(0.57−0.20)2=0.247
分母nは、“3”であるので、算出された“0.247”を“3”で除算し、“0.082”という値を得ることができる。この値が手法Xの分散の値である。
このような計算が手法Yと手法Zのそれぞれで、同様に行われることにより、手法Yの分散の値は“0.080”と求められ、手法Zの分散の値は“0.116”と求められる。まとめると以下のようになる。
手法X 0.082
手法Y 0.080
手法Z 0.116
このうち、最も値が高いのは、手法Zの分散の値である。よってこの場合、手法Zが、クラスタリングの手法として適した手法であるとして適用される。
このようにして、複数のクラスタリングの手法から、最も適していると判断される1つの手法が選択され、設定される。このようにクラスタリングの手法自体が選択されることにより、より適切にサブクラスタを設定することが可能となる。また、適切なクラスタリング手法によりクラスタリングされた結果を利用することにより、より適切な処理、例えば、後述するアイテムの推薦の処理などを行うことが可能となる。
[クラスタ(サブクラスタ)の付与に関わる処理について]
このようにして、クラスタの学習が行われると、新たに追加されるメタデータ(クラスタやサブクラスタの情報がまだ記載されていないメタデータ)に対してクラスタやサブクラスタ(以下、クラスタとの記載には、特に断りの無い限り、サブクラスタを含むとする)を割り当てるための処理が実行される。このような処理は、学習部51のクラスタ付与学習部53(図6)により行われる。図25のフローチャートを参照し、クラスタ付与に係わる処理について説明する。
ステップS81において、メタデータ取得部111(図6)は、クラスタが付与されているメタデータを取得する。クラスタが付与されているメタデータは、クラスタ学習部52(または、クラスタ学習部52’)における処理が終了した時点で、データベース54(図3)に記憶されている。すなわち、データベース54には、クラスタが付与されているメタデータと、クラスタが付与されていないメタデータとが存在する。
ステップS81においては、クラスタが付与されているメタデータが取得される。ステップS82において、取得されたメタデータから、特徴量が抽出される。メタデータは、上記したように、クラスタ以外の項目に対する情報(以下、適宜、既存情報と記述する)は、記載されている状態で、データベース54に記憶されている。
例えば、まず、クラスタ1が付与されているメタデータを抽出し、抽出された各メタデータから、既存情報が読み出される。クラスタは、上記したようにムード(ユーザの感情)などに基づいて分類された結果である。ユーザの感情などに基づいているため、クラスタ毎に特徴がある。すなわちこの場合、所定のクラスタ(例えば、クラスタ1)に属する曲(アイテム)には、一定の特徴があると考えられる。なおこのとき、サブクラスタも考慮し、同一のクラスタの同一のサブクラスタに属する曲が処理対象とされるようにしても良い。
そこで、ステップS82において、所定のクラスタに属する曲のメタデータを抽出し、抽出されたメタデータから、既存情報を読み出し、読み出された既存情報を用いて、クラスタに属する曲の特徴量が算出される。算出されたクラスタの特徴量は、適宜データベース54に記憶される。
ステップS83において、アイテムメタデータ取得部114は、データベース54に記憶されているメタデータのうち、クラスタが付与されていない(クラスタの情報が記載されていない)メタデータを読み出す。読み出されたメタデータは、非該当フィルタ113に供給される。非該当フィルタ113は、上述したクラスタの学習処理が実行されることにより生成されたフィルタである。
非該当フィルタ113は、その時点で、処理対象とされているムード(処理対象とされているクラスタ(サブクラスは含まない))に関して生成された非該当フィルタのデータを、データベース54から読み出し、そのデータと、アイテムメタデータ取得部114からのデータが一致するか否かを判断することによりフィルタリングを行う。
すなわち、アイテムメタデータ取得部114からのアイテムが、所定のムードに該当するアイテムであるか否かが判断される。
ステップS85において、ステップS84のフィルタリングの処理が行われた結果、アイテムメタデータ取得部114からのアイテムは、サブクラスタを付与する対象となるアイテム(そのアイテムのメタデータ)であるか否かが判断される。ステップS85において、サブクラスタを付与すべきメタデータではないと判断された場合、換言すれば、処理対象とされているムードには該当しないアイテムであると判断された場合、ステップS85以下の処理を行う必要がないため、そのアイテムに対するサブクラスタの付与処理は終了される。
一方、ステップS85において、サブクラスタを付与すべきメタデータであると判断された場合、ステップS86に処理が進められる。この場合、所定のムードに該当すると判断された時点で、その所定のムードに割り振られたクラスタに決定されることになる。よって、クラスタは決定されたので、後の処理としてはサブクラスタを決定するための処理が行われる。
所定のムードに該当すると判断された時点で、その所定のムードに割り振られたクラスタに決定されると記載したが、そのような処理を行うために、例えば、図26に示すようなムードクラスタ変換テーブル191が参照される。このムードクラスタ変換テーブル191は、クラスタ決定部115(図6)が保持している。
ムードクラスタ変換テーブル191は、図26に示すように1つのムードと1つのクラスタが関連付けられた情報が記載されているテーブルである。ムードクラスタ変換テーブル191には、さらに他の情報も記載する(関連付ける)ようにしても良い。
例えば、1つのムードと、そのムードに関連する(連想される)言葉を、さらに関連付けることも可能ある。例えば、“悲しい”といったムード(言葉)から連想される“葬式”、“失恋”、“夕暮れ”といった言葉を関連付け、ムードクラスタ変換テーブル191に記載しておいても良い。このようにしたとき、ユーザが“夕暮れ”というキーワードを入力した場合、“夕暮れ”に関連付けられている“悲しい”というムードが設定され、その“悲しい”というムードに関連付けられているクラスタが設定される。
なおここでは、1つのムードに1つのクラスタが割り当てられているとして説明をするが、複数のムードに1つのクラスタが割り当てられるようにしても良い。ただし、複数のムードとは、類似するムード(例えば、悲しい、もの悲しい、悲嘆などの類似する感情)であることが好ましい。また、本実施の形態においては、サブクラスタが設定できるため、類似する複数のムードを1つのクラスタに割り当てても、サブクラスタで分類することができるため、複数のムードを1つのクラスタに割り当てたことによる精度の低下などが発生することはない。
このようなムードクラスタ変換テーブル191が参照されてクラスタが設定され、以下に説明する処理により、サブクラスタが設定される。
ステップS86において、クラスタ決定部115は、サブクラスタを判断する。クラスタ決定部115は、アイテムメタデータ取得部114から供給されたメタデータの既存情報を読み出し、その既存情報と、特徴分析部112から供給される(または、データベース54から読み出される)特徴量とのマッチングをとることにより、どのサブクラスタに属するか(例えば、図14に示したようにサブクラスタ1乃至5の5個のサブクラスタがあるときには、サブクラスタ1乃至5のうちのどのサブクラスタに属するか)が判断される。
なおここでは、既存情報と特徴量とがマッチングされることによりサブクラスタが決定されるとしたが、特徴量としてどのようなデータが算出されるかなど(すなわち、ステップS82において算出される情報)は、このステップS86において実行されるサブクラスタの判断処理の仕方に依存して決定される。また、ここではマッチングによりサブクラスタが決定されるとして説明したが、他の方法によりサブクラスタが決定されるようにしても良い。
例えば、サブクラスタを判断するときの処理として、決定木などの手法、判別式を用いた手法、クラスタのセントロイドとの類似度を用いる手法、支持率により類似度の計算を行う際に重み付けをして行う手法、特徴量メタデータをカテゴリー化して類似度計算を行う手法などを用いることができる。すなわち、非該当曲やクラスタの分類を行えるような学習手法であれば、どんな手法でも良い。
このような決定木などの手法や判別式を用いた手法などを用いて、サブクラスタが判断されるようにした場合、決定木や判別式は、ステップS81やステップS82の処理が行われることにより生成された数値や処理手順が用いられる。
すなわち、クラスタ(サブクラスタ)が付与されているメタデータを解析することにより、例えば、アイテムが曲であった場合、クラスタ1でサブクラスタ1に属する曲のテンポはどのような数値の範囲内に収まるか、スピードはどのような数値の範囲内に収まるかなどが解析され、そのような解析に基づく決定木や判別式が生成される。そして、生成された決定木や判別式に基づき、サブクラスタの判断の処理が実行される。
ステップS86において、所定の曲のメタデータのサブクラスタ(アイテムのサブクラスタ)が決定されると、ステップS87において、その決定されたサブクラスタが、メタデータに書き込まれる。なお、クラスタは上述したように、非該当フィルタ113のおけるフィルタリングをされた時点で決定されおり(ムードクラスタ変換テーブル191が参照された時点で決定されており)、そのクラスタがメタデータに、サブクラスタとともに書き込まれる。
クラスタとサブクラスタが書き込まれたメタデータは、データベース54に記憶される。クラスタが書き込まれたメタデータは、例えば、図9に示したようなメタデータ172である。
このようにして、既にクラスタやサブクラスタが付与されているメタデータが用いられて、クラスタが付与されていないメタデータに対してクラスタとサブクラスタが付与される。このようにしてクラスタとサブクラスタが付与されたデータを、ステップS81における処理で、クラスタが付与されているメタデータとして取り扱われるようにしても良い。または、図11や図15のフローチャート(クラスタ学習処理)の処理対象とされたメタデータのみが、ステップS81におけるクラスタが付与されているメタデータとして取得されるようにしても良い。
なお、図11や図15のフローチャート(クラスタ学習処理)の処理対象とされたメタデータのみが、ステップS81の処理で取得されるようにした場合、ステップS81やステップS82の処理は、1度だけ行われればよい。ステップS81やステップS82における処理により、一度算出された特徴量は、データベース54に記憶され、その記憶されている特徴量が用いられて、ステップS83以降の処理が実行されるようにすればよい。すなわち、ステップS81とステップS82の処理は、1度、特徴量が算出された後は、省略することが可能である。
[アイテムの推薦に関わる処理について]
このようにして、クラスタが付与されたメタデータが用いられ、ユーザに対して、ユーザに適した情報が推薦される際の処理が実行される。推薦の処理は、推薦部55(図7)により実行される。図27のフローチャートを参照し、推薦部55により行われる推薦の処理について説明する。
ステップS101において、ムード情報取得部141は、ムード情報を取得する。ムード情報は、ユーザから提供される。例えば、端末3(図1)が操作され、ユーザが、ユーザ自身のムード(その時点の感情、気分など)を入力し(例えば、“悲しい”といったテキストデータを入力し)、サーバ2に対して送信すると、その情報が、サーバ2のムード情報取得部141に供給される。
ステップS102において、ムードクラスタ変換部142は、ムード情報取得部141により取得されたムード情報を、クラスタの情報に変換する。上述したように、1つのムードには1つのクラスタが対応するように割り当てられている。例えば、図26のムードクラスタ変換テーブル191に記載されているように、“悲しい”といったムードは、“クラスタ1”に、“楽しい”といったムードは、“クラスタ2”にといったように、ムードとクラスタは対になっている。
このような、ムード情報をクラスタ情報に変換するために、ムードクラスタ変換部142は、例えば、図26に示すようなムードクラスタ変換テーブル191を保持している。ムードクラスタ変換テーブル191は、上述したようにクラスタ付与学習部53のクラスタ決定部115も保持しているとして説明をしたが、そのクラスタ決定部115が保持しているムードクラスタ変換テーブル191を、ムードクラスタ変換部142が参照する(共用する)ことも可能である。
ムードクラスタ変換部142は、ステップS102において、供給されたムード情報が、どのクラスタに該当する情報であるかを、ムードクラスタ変換テーブル191を参照して決定する。決定されたクラスタ情報は、推薦情報生成部143に供給される。
ステップS103において、推薦情報生成部143は、クラスタ情報が示すクラスタに属するアイテムのうちの1つをユーザ側に提供する。アイテムのメタデータ172(図9)には、クラスタの情報が書き込まれている。その書き込まれているクラスタが、クラスタ情報と一致するアイテムが、データベース54から読み出される。クラスタ情報と一致するクラスタが書き込まれたメタデータのアイテムは、データベース54に複数記憶されている可能性がある。
複数のアイテムがデータベース54に記憶されていた場合、例えば、サブクラスタが“1”(デフォルト値)のアイテムが読み出される。サブクラスタが“1”のアイテムも、データベース54に複数記憶されている可能性があるが、複数記憶されているような場合には、所定の方式に従って(例えばアイテムNOが若い順に従って)、1つのアイテムが読み出されるようにしても良いし、ランダムに1つのアイテムが読み出されるようにしても良い。
いずれにしても、クラスタ情報と一致するクラスタが書き込まれているメタデータを有するアイテムが読み出され、ユーザに提供される。
ステップS105において、別のアイテムの提供が指示されたか否かが判断される。例えば、ユーザは、提供されたアイテム(曲)が、自分が入力したムード(気分)に適していないと思い、他の曲の提供を指示することができる。このような指示があったか否かが、ステップS105において判断される。この判断は、ムード情報取得部141が行うようにすることができる。
ステップS105において、別のアイテム(曲)の提供は指示されていないと判断された場合、そのまま、その時点でのクラスタとサブクラスタに該当するアイテムが、ユーザ側に提供し続けられる。
一方、ステップS105において、別のアイテムの提供が指示されたと判断された場合、ステップS106に処理が進められる。ステップS106において、その時点で設定されているサブクラスタの次のサブクラスタ(他のサブクラスタ)に設定がし直され、その設定し直されたサブクラスタに属するアイテムが読み出され、ユーザに提供される(ステップS104に処理が戻され、それ以降の処理が繰り科されることにより、ユーザに提供される)。
この際、サブクラスタは設定し直されるが、クラスタは、そのままの設定が維持される。すなわち、ユーザが入力したムードに属する(クラスタに属する)曲が、継続的にユーザ側に提供されるが、同じムードに属していても異なる感じの曲(サブクラスタの異なる曲)が、ユーザ側に提供される。
このことは、同じムード(同じ気分、感情など)であっても、ユーザにより感じ方が異なるようなことがあるが、そのような違いを吸収したアイテムの提供ができることを意味している。すなわち、本発明を適用すれば個々のユーザに適したアイテムの提供が行える。
ところで、上述した実施の形態においては、サーバ2側でクラスタの学習やアイテムの推薦に関する処理が行われるとして説明をした。このようなサーバ2側で処理が行われるような形態は、例えば、ネットワーク1を介してアイテムを提供する際などに適している。
しかしながら、上述したようなクラスタの学習やアイテムの推薦に関する処理が、サーバ2側でのみ行われることを意味しているのではない。例えば、クラスタの学習に関する処理は、サーバ2側で行い、その結果を利用して端末3側で、アイテムの推薦が行われるようにすることも可能である。さらには、端末3側でクラスタの学習やアイテムの推薦に関する処理が実行されるようにしても良い。
端末3側で、学習は推薦の処理が行われるようにした場合、例えば、ユーザが購入したCD(Compact Disk)に記録されている楽曲データや端末3のデータベース(不図示)に記憶されている曲の楽曲データを解析することにより、クラスタの学習が行われ、端末3のデータベースに記憶されている曲が推薦されるようにするといった処理を行うことも可能である。
端末3側で、学習から推薦までの一連処理を行うようにした場合も、上述した場合と同様な処理で行うことが可能である。
本発明を適用することにより、ユーザの感情、気分といったムードに適したアイテムが、どのようなアイテムであるかを学習することができる。また、学習の結果を用いて、新たに追加されたアイテムが、どのようなムードに適したアイテムであるかを分類することができる。さらに、分類された結果を用いて、ユーザのムードに適したアイテムを推薦することができる。その推薦は、個々のユーザにとって、適したアイテムを推薦することができる。
[記録媒体について]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図2に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア31、または、プログラムが一時的もしくは永続的に格納されるROM22や、記憶部28を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部29を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 ネットワーク, 2 サーバ, 3 端末, 21 CPU, 22 ROM, 23 RAM, 28 記憶部, 31 リムーバブルメディア, 51 学習部, 52 クラスタ学習部, 53 クラスタ付与学習部, 54 データベース, 55 推薦部, 71 楽曲データ取得部, 72 ユーザデータ取得部, 73 特徴量解析部, 74 非該当フィルタ生成部, 75 多変量解析部, 76 クラスタリング部, 81 メタデータ解析部, 111 メタデータ取得部, 112 特徴分析部, 113 非該当フィルタ, 114 アイテムメタデータ取得部, 115 クラスタ決定部, 116 追加部, 141 ムード情報取得部, 142 ムードクラスタ変換部, 143 推薦情報生成部, 201 アイテム数判断部, 202 処理対象判断部, 203 支持率算出部, 204 併合対象判断部, 205 併合先決定部, 206 再サブクラスタ設定部