以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置(例えば、図2のサーバ2)は、所定のアイテムに対する情報であり、ユーザの嗜好が反映された情報を取得する取得手段(例えば、図2の学習部51)と、前記取得手段により取得された前記情報を解析し、クラスタを学習する第1の学習手段(例えば、図2のクラスタ学習部52)と、前記第1の学習手段により学習された前記クラスタが付与された前記アイテムに関するメタデータを用いて、クラスタ毎の特徴を学習する第2の学習手段(例えば、図2のクラスタ付与学習部53)と、前記第2の学習手段により学習された前記特徴に基づいて、クラスタが付与されていないアイテムのメタデータにクラスタを付与する付与手段(例えば、図2のクラスタ付与学習部53)と、クラスタが付与されているメタデータと、前記ユーザの嗜好に関するプロファイルとを用いて、前記ユーザに推薦するための情報を検索し、推薦する推薦手段(例えば、図2の推薦部55)とを備える。
以下に、本発明の実施の形態について図面を参照して説明する。
[システムの構成について]
図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−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を含む構成とされている。情報取得部71は、ユーザからの情報(後述するように、アンケート結果や購入履歴などの情報)を取得する。多変量解析部72は、取得された情報を数値化する。そして、クラスタリング部73は、数値化された情報をクラスタ毎に分類する。
クラスタ学習部52は、上記したような構成により、複数の情報をクラスタリングする。クラスタ付与学習部53は、クラスタ学習部52によるクラスタリングの結果を用いて、新規に追加される情報が、どのクラスタに属するかを判断し、クラスタを付与する。
図5は、クラスタ付与学習部53の構成例を示す図である。クラスタ付与学習部53は、メタデータ取得部71、特徴分析部92、クラスタ決定部93、アイテムメタデータ取得部94、および、追加部95から構成されている。
メタデータ取得部91は、クラスタ学習部52による学習に用いられたアイテムのメタデータ(クラスタが付与されているメタデータ)を取得する。特徴分析部92は、取得されたアイテムのメタデータから、そのアイテム(メタデータ)の特徴を抽出する。抽出された特徴量は、クラスタ決定部93に供給される。クラスタ決定部93には、アイテムメタデータ部94からの情報も供給される。
アイテムメタデータ取得部94は、クラスタを割り当てるアイテムのメタデータ(クラスタが付与されていないメタデータ)を取得する。クラスタ決定部93は、アイテムメタデータ取得部94から供給される所定のアイテムのメタデータを参照し、その参照したメタデータの特徴と、特徴分析部92から供給される特徴とをマッチングし、クラスタを判別する。判別されたクラスタは、処理対象とされているアイテムのメタデータに追加される。クラスタが付与されたメタデータは、追加部95により、データベース54に追加記憶される。
このようにして、クラスタが付与されたメタデータを用いて、推薦部55は、ユーザに対して、ユーザに適した情報を推薦するための処理を実行する。
図6は、推薦部55の構成例を示す図である。推薦部55は、ユーザプロファイル生成部111、類似度計算部112、推薦情報生成部113、カテゴリ検索部114、および、プレイリスト個人化部115から構成されている。ユーザプロファイル生成部111は、ユーザ毎のプロファイルを生成する。生成されたプロファイルは、必要に応じ、類似度計算部112とカテゴリ検索部114に供給される。
類似度計算部112は、ユーザプロファイル生成部111により生成された所定のユーザのプロファイルと、アイテムのメタデータとを用いて、類似度を計算する。推薦情報生成部113は、類似度の高いアイテムを、推薦情報として、推薦する。
カテゴリ検索部114は、ユーザのプロファイルから、ユーザの好むアイテムのカテゴリを検索する。その検索結果は、プレイリスト個人化部115に供給される。プレイリスト個人化部115は、ユーザの好むアイテムのカテゴリを基に、ユーザ毎のプレイリストを作成する。
このような各部が処理を行う際に用いられるメタデータなどのデータについて説明する。データは、データベース54(図3)に記憶されている。図7乃至11は、データベース54に記憶されているデータを示す図である。
データベース54には、図7に示したユーザからのアンケートを集計した結果を管理するアンケート管理テーブル151、図8に示したユーザの購入履歴を管理する購入履歴テーブル152、図9に示したアイテム毎の数量化された数値を管理する数量化管理テーブル153、図10に示したアイテムのメタデータ154、および、図11に示したユーザのプロファイル155が記憶されている。
図7に示したアンケート管理テーブル151は、ユーザに対して実施したアンケートの結果が書き込まれている。アンケートは、例えば、ユーザに対してネット上で行われたり、紙媒体で行なわれたりする。またアンケートの内容としては、例えば、図7に示した例においては、ある曲に対してであり、その曲を好きか(YES)嫌いか(NO)といったことである。
図7に示したアンケート管理テーブル151には、例えば、“曲1”に対して、“ユーザA”は“YES(好き)”と答え、“ユーザB”は“NO(嫌い)”と答え、“ユーザC”は“YES(好き)”と答えていることが記載されている。このようなアンケートは、所定数のユーザに対して、所定数の曲に対して行われる。例えば、100人のユーザに100曲に対して、好きか嫌いかといったアンケートが行われ、その結果が、アンケート管理テーブル151に書き込まれる。
図8に示した購入履歴テーブル152は、ユーザが購入したアイテムと、そのアイテムを購入した時刻が関連付けられた情報が記載されているテーブルである。例えば、時刻“2005/08/22/9:25”に、ユーザIDが”ID0024“のユーザが、アイテム”Item0034“を購入したことが記載されている。
例えば、この場合、ユーザIDが“ID00024”であるユーザが購入したアイテムを“YES”とし、購入していないアイテムを“NO”と記載する。他のユーザに対しても、同様に、購入したアイテムを“YES”とし、購入していないアイテムを“NO”と書き込む。このようにすれば、図7に示したテーブルと同様の内容のテーブルを作成することができる。すなわち、所定の曲(アイテム)を購入した(好き)ユーザと、購入してない(嫌い)ユーザとの情報が記載されたテーブルを、図8に示した購入履歴テーブル152から作成することができる。
アンケートのような形式で、ユーザの嗜好に関する情報を取得するようにしても良いし、購入履歴といった情報から、ユーザの嗜好に関する情報を取得しても良い。データベース54には、アンケート管理テーブル151と購入履歴テーブル152の両方を記憶させ、後述する処理(クラスタリングの処理など)が行われるようにしても良いし、どちらか一方のみを記憶させ、後述する処理が行われるようにしても良い。
購入履歴テーブル152は、他のサーバ(例えば、商品を販売している店のサーバ)から取得されるようにしても良い。
図7に示したアンケート管理テーブル151、または、図8に示した購入履歴テーブル152から、図9に示したような数量化管理テーブル153が作成される。数量化管理テーブル153は、例えば、図7に示したような所定のパターン(図7においては、あるユーザが購入した(好きといった)曲のパターン)が得られる情報から作成される。
数量化管理テーブル153には、曲毎に、次元毎の値が記載されている。すなわち、数量化管理テーブル153には、図7に示したようなテーブルからパターンを読みとり、数量化することにより、この場合、所定の曲を数次元の情報で表したときの情報が記載される。図9に示した例では、“曲1”の次元1の値は“0.12”、次元2の値は“0.34”、次元3の値は“0.62”と記載されている。
なお、次元は、何次元でも良い。次元は、処理の仕方(どのような方法により数値化するか)により決定され、後述するクラスタに分けるときの処理に必要な次元に決定される。数量化管理テーブル153は、後述するように、クラスタを決定する際の処理に用いられる。
クラスタは、図10に示すように、所定のアイテムのメタデータ154にも記載される。図10に示したメタデータ154は、アイテムが曲であり、その曲に関する情報が記載されているデータである。図10に示したメタデータ154には、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニ、およびクラスタといった項目が設けられ、それぞれの項目に対応する情報が関連付けられて管理されている。
例えば、アイテムIDが“I-001”のジャンルは“Rock”であり、アーティストは“ABC”であり、テンポが“24”であり、ハーモニが“A”であり、クラスタが“1”であることが関連付けられて記載されている。
アイテムNO、ジャンル、アーティストといった情報は、人の手によりメタデータ154に書き込まれ、テンポやハーモニといった情報は、曲を解析することにより、人の手によらずに書き込まれるようにしても良い。
図11は、所定のユーザのプロファイル155である。プロファイル155は、管理対象とされているユーザが購入した(または、アンケートなどで好きと言った)曲に関する情報が記載されている。所定のユーザに対するプロファイル155には、ジャンル、アーティスト、テンポ、ハーモニ、クラスタといった情報が、それぞれ関連付けられて管理されている。また、各情報は、さらに細かい分類がされている。例えば、ジャンルは、“Rock”、“J-POP”といった分類がされており、アーティストには“ABC”“GGG”といった分類がされている。
例えば、ジャンル“Rock”の欄には“2”との数値が記載されているが、これは、ジャンルとして“Rock”に分類される曲を2回購入している(2曲好きだと申告している)ことを意味している。同様に、他の情報の分類の欄に記載されている数値は、その分類に属する曲を何回購入したか(好きと申告しているか)を示している。以下、プロファイル155に記載される情報(数値)は、購入回数を示すとして説明を続ける。
このように、所定のユーザのプロファイル155には、所定のユーザが購入した曲の情報(特徴)毎に、回数が記載されている。
このようなデータを用いた処理について説明する。まず、学習部51のクラスタ学習部52(図4)が行う処理について、図12のフローチャートを参照して説明する。ステップS11において、クラスタ学習部52の情報取得部71は、情報を取得する。ステップS11において取得される情報は、ユーザからのアンケートの結果や購入履歴である。
ユーザからのアンケートの結果が、ステップS11において取得される場合、例えば、事前に、紙媒体で実施したアンケートの結果として取得されたり、ネット上で実施されたアンケートの結果が集計されたりすることにより取得される。このように、アンケート結果が取得される場合、図7に示したようなアンケート管理テーブル151が作成される。
アンケートとしては、例えば、100曲に対して、100人の人に対して“好き”または“嫌い”といったような内容のアンケートである。すなわち、この場合、所定の曲数に対して、所定のユーザ数からの回答が、情報として取得されることにより、図7に示したようなアンケート管理テーブル151が作成される。
ステップS11において取得される情報が、購入履歴であったような場合、図8に示したような購入履歴テーブル152から所定の人数(例えば、100人)分の購入履歴が抽出される。そして、その抽出されたユーザが購入した曲から所定の数の曲が抽出される。抽出された曲の内、所定のユーザが購入した曲は“好き”と判断され、所定のユーザは購入していない曲は“嫌い”と判断され、テーブルが作成される。作成されたテーブルは、図7に示したような、所定の曲数に対して、所定のユーザ数からの回答が取得されたテーブルとなる。
このようにして、ステップS11において情報が取得される。ステップS11において取得される情報は、上述したように、アンケートの結果や購入履歴であり、ユーザの嗜好や価値観により変化する情報である。換言すれば、ステップS11において取得される情報は、ユーザの嗜好や価値観に依存している情報である。
ステップS12において、多変量解析が実行される。例えば、図7に示したようなアンケート管理テーブル151に記載されている情報に対して、多変量解析が実行されることにより、図9に示したような数量化管理テーブル153が作成される。すなわち、図7に示したようなアンケート管理テーブル151の回答パターン(YES、NOのパターン)から、対応分析や主成分分析などの多変量解析により、ユーザの嗜好に基づく曲毎の特徴が、数次元のデータに数量化される。
例えば、図7に示したようなアンケート管理テーブル151(図8に示した購入履歴テーブル152から作成されたテーブル)は、ユーザ(ユーザAとする)が好きな曲のパターンが記述されているテーブルである。ユーザAが好きな曲のパターンを解析することにより、ユーザAの好む曲の特徴を解析することができる。また、ユーザAが好きな曲(曲1とする)を好きな他のユーザ(例えば、ユーザC)の特徴も、ユーザAと同様に解析することできる。
曲1を好きなユーザAやユーザCにはどのような特徴があるのかを解析することにより、曲1が好きなユーザ全体の特徴を解析することができる。また、曲1が好きなユーザの特徴を、曲1の特徴の1つとして扱うこともできる。このようなことから、図7に示したようなアンケート管理テーブル151を解析し、曲を多次元の数量化されたデータに変換することにより、曲毎の特徴を数値化することができる。
曲の情報を多次元の数量化されたデータとして管理しているのが、図9に示した数量化管理テーブル153である。このような数量化管理テーブル153が、ステップS12において作成される。
ステップS13において、数量化管理テーブル153に記載されている情報(数値)が、マッピングされる。例えば、図9に示した数量化管理テーブル153のうち次元1と次元2の欄に記載されている数値をマッピングすることを考える。次元1を例えばX軸、次元2を例えばY軸に対応させることにより、X軸とY軸の2軸からなる2次元に、数量化管理テーブル153に記載されている各曲の特徴(情報)をマッピングすることができる。このようなマッピングが行われると、例えば、図13に示したようなグラフを取得することができる。
図13に示したグラフは、図9に示したような数量化管理テーブル153に記載されている曲を、曲毎に、次元1と次元2の数値を用いて、マッピングした一例である。マッピングは、数量化管理テーブル153に記載されている曲数分(例えば、100曲分)に対して行われる。このような処理が行われるため、多変量変換を行うときの次元は、何次元にマッピングし、後述する処理が実行されるかにより、決定されればよい。例えば、2次元にマッピングされ、後述する処理が実行される場合には、多変量変換は、2次元のデータに数量化されればよい。
図13に示したようなグラフが作成されると、ステップS14(図12)において、クラスタが決定される。クラスタは、例えば、図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に示したように、各クラスタには重なりがないとして説明を続ける。
このようにして、所定の情報からクラスタが導き出されると、ステップS15(図12)において、導き出されたクラスタが記憶される。上記したように、例えば、ステップS11において、情報が取得される際、図7に示したようなアンケート管理テーブル151が取得される。このアンケート管理テーブル151は、曲1、曲2といった曲毎に、情報が管理されている。
各曲にはメタデータが付随している。メタデータは、図10に示したようなメタデータ154のように、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニ、クラスタといった項目に対する情報が関連付けられたテーブルである。このような項目のうち、クラスタ以外の項目、すなわち、アイテムNO、ジャンル、アーティスト、テンポ、ハーモニは、事前に、曲のメタデータとして付与されている情報である(各曲のメタデータは、これらの項目に対する情報が記載された状態で、データベース54に記憶されている)。
ステップS11における処理で取得された情報、すなわち、クラスタの決定の処理のために用いられた曲(アイテム)のメタデータは、クラスタという項目に対する情報が記載されていない状態である。そこで、ステップS12において、ステップS11における処理で取得された情報(アイテム)に対応するメタデータのクラスタという項目の欄に、対応するクラスタが書き込まれる。
このように、クラスタの学習の処理に用いられた曲のメタデータには、学習の結果得られたクラスタが設定され、メタデータのクラスタの欄に書き込まれる。
他のクラスタリングの手法について説明する。
上記したクラスタリングの手法(クラスタの学習)は、マッピングなどの処理を行うことにより、クラスタリングを行う例である。ここでは、ユーザの支持率を用いてクラスタの学習を行う例をあげ、図15のフローチャートを参照して説明する。ユーザの支持率とは、例えば、調査対象とされるユーザの数のうち、何人のユーザが調査対象とされたアイテム(以下、アイテムとして曲を例に挙げて説明する)購入したかを調べることにより行われる。例えば、調査対象とされるユーザの数が、100人であり、曲1を購入したのが、3人であった場合、曲1に対する支持率は、支持率3%と算出される。
ステップS20において、調査対象となる曲(例えば、100曲)に対して、支持率が算出される。この算出は、図8に示したユーザの購入履歴を管理する購入履歴テーブル152が参照されて行われる。すなわち、調査対象とされる曲と調査対象とするユーザを設定し、設定された曲を購入したユーザ数を算出することにより行われる。勿論、その他のユーザからの情報(例えば、ユーザに対して調査対象の曲が好きか嫌いかを示すアンケートを取り、そのアンケート結果など)を用いて支持率が算出されるようにすることも可能である。
ステップS21において、所定の曲の支持率が、0乃至20%未満であるか否かが判断される。ステップS21において、支持率が、0乃至20%未満であると判断された場合、ステップS22において、処理対象とされている曲のクラスタが、クラスタ1と設定される。設定されたクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS21において、支持率が、0乃至20%未満ではないと判断された場合、ステップS23に処理が進められ、支持率が、20乃至40%未満であるか否かが判断される。ステップS23において、支持率が、20乃至40%未満であると判断された場合、ステップS24において、処理対象とされている曲のクラスタが、クラスタ2と設定される。設定されたクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS23において、支持率が、20乃至40%未満ではないと判断された場合、ステップS25に処理が進められ、支持率が、40乃至60%未満であるか否かが判断される。ステップS25において、支持率が、40乃至60%未満であると判断された場合、ステップS26において、処理対象とされている曲のクラスタが、クラスタ3と設定される。設定されたクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS25において、支持率が、40乃至60%未満ではないと判断された場合、ステップS27に処理が進められ、支持率が、60乃至80%未満であるか否かが判断される。ステップS27において、支持率が、60乃至80%未満であると判断された場合、ステップS28において、処理対象とされている曲のクラスタが、クラスタ4と設定される。設定されたクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
一方、ステップS27において、支持率が、60乃至80%未満ではないと判断された場合、ステップS29に処理が進められ、処理対象とされている曲のクラスタが、クラスタ5と設定される。設定されたクラスタは、処理対象とされた曲のメタデータ内の1つの情報として記憶される。
ステップS21乃至S29の処理が繰り返されることにより、曲毎にクラスタが付けられる。このように、ユーザの支持率を用いて、クラスタの学習を行うようにしても良い。このようにした場合も、ユーザの支持率を用いているため(この支持率自体、ユーザの購入履歴などから算出することが可能であり、ユーザからの情報を用いていることになる)、ユーザの嗜好を反映したクラスタの学習が行えることは、上記したマッピングなどの手法を用いて学習する場合と同様に言えることである。
このようにして、クラスタの学習が行われると、新たに追加されるメタデータ(クラスタの情報がまだ記載されていないメタデータ)に対してクラスタを割り当てるための処理が実行される。このような処理は、学習部51のクラスタ付与学習部53により行われる。図16のフローチャートを参照し、クラスタ付与に係わる処理について説明する。
ステップS31において、メタデータ取得部91(図5)は、クラスタが付与されているメタデータを取得する。クラスタが付与されているメタデータは、クラスタ学習部52における処理が終了した時点で、データベース54(図3)に記憶されている。すなわち、データベース54には、クラスタが付与されているメタデータと、クラスタが付与されていないメタデータとが存在する。
ステップS31においては、クラスタが付与されているメタデータが取得される。ステップS32において、取得されたメタデータから、特徴量が抽出される。メタデータは、上記したように、クラスタ以外の項目に対する情報(以下、適宜、既存情報と記述する)は、記載されている状態で、データベース54に記憶されている。
例えば、まず、クラスタ1が付与されているメタデータを抽出し、抽出された各メタデータから、既存情報が読み出される。クラスタは、上記したように、ユーザの嗜好などに基づいて分類された結果である。ユーザの嗜好などに基づいているため、クラスタ毎に特徴がある。すなわちこの場合、所定のクラスタ(例えば、クラスタ1)に属する曲(アイテム)には、一定の特徴があると考えられる。
そこで、ステップS32において、所定のクラスタに属する曲のメタデータを抽出し、抽出されたメタデータから、既存情報を読み出し、読み出された既存情報を用いて、クラスタの特徴が算出される。算出されたクラスタの特徴は、適宜、データベース54に記憶される。
ステップS33において、アイテムメタデータ取得部94は、データベース54に記憶されているメタデータのうち、クラスタが付与されていない(クラスタの情報が記載されていない)メタデータを読み出す。読み出されたメタデータは、クラスタ決定部93に供給される。クラスタ決定部93は、ステップS34において、クラスタを判断する。
クラスタ決定部93は、アイテムメタデータ取得部94から供給されたメタデータの既存情報を読み出し、その既存情報と、特徴分析部92から供給される(または、データベース54から読み出される)特徴量とのマッチングをとることにより、どのクラスタに属するか(例えば、図14に示したようにクラスタ1乃至5の5個のクラスタがあるときには、クラスタ1乃至5のうちのどのクラスタに属するか)が判断される。
なおここでは、既存情報と特徴量とがマッチングされることによりクラスタが決定されるとしたが、特徴量としてどのようなデータが算出されるかなど(すなわち、ステップS32において算出される情報)は、このステップS34において実行されるクラスタの判断処理の仕方に依存して決定される。また、ここではマッチングによりクラスタが決定されるとして説明したが、他の方法によりクラスタが決定されるようにしても良い。またここでは、クラスタが決定されるとの表記をしているが、設定されているクラスタに、クラスタが付与されていないメタデータを分類することも意味するとする。
ステップS34において、所定の曲のメタデータのクラスタ(アイテムのクラスタ)が決定されると、ステップS35において、その決定されたクラスタが、メタデータに書き込まれる。クラスタが書き込まれたメタデータは、データベース54に記憶される。クラスタが書き込まれたメタデータは、例えば、図10に示したようなメタデータ154である。
このようにして、既にクラスタが付与されているメタデータが用いられて、クラスタが付与されていないメタデータに対してクラスタが付与される。このようにしてクラスタが付与されたデータを、ステップS31における処理で、クラスタが付与されているメタデータとして取り扱われるようにしても良い。または、図12のフローチャート(クラスタ学習処理)の処理対象とされたメタデータのみが、ステップS31におけるクラスタが付与されているメタデータとして取得されるようにしても良い。
なお、図12のフローチャート(クラスタ学習処理)の処理対象とされたメタデータのみが、ステップS31の処理で取得されるようにした場合、ステップS31やステップS32の処理は、1度だけ行われればよい。ステップS31やステップS32における処理により、一度算出された特徴量は、データベース54に記憶され、その記憶されている特徴量が用いられて、ステップS33以降の処理が実行されるようにすればよい。すなわち、ステップS31とステップS32の処理は、1度、特徴量が算出された後は、省略することが可能である。
ここで、ステップS34(図16)において実行されるクラスタの判別に係わる処理について、図17のフローチャートを参照して説明を加える。図17のフローチャートを参照して説明するクラスタの判別の処理は、上記したようなマッチングによりクラスタを判別する場合の1例であり、そのマッチングを、決定木の手法に基づいて行う例である。
ステップS41において、処理対象とされている曲のリリース(release)が50以下であるか否かが判断される。リリースの情報に関しては、曲のメタデータに記載されている。以下に説明するピッチ(pitch move)、スピード(speed)、コードバリエーション(chord variation)なども、メタデータに記載されており、そのメタデータに記載されている情報が用いられる。ただし、図10に示したメタデータ154は一例であり、全ての情報を図示していないため、例えば、リリースなどの情報は省略して図示してある。
ステップS41において、リリースが50以下であると判断された場合、ステップS42に処理が進められ、ピッチが50以上であるか否かが判断される。ステップS42において、ピッチが50以上であると判断されると、ステップS43において、その処理対象とされている曲のクラスタが、クラスタ1に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、1)が書き込まれる。
一方、ステップS42において、ピッチは、50以上であると判断された場合、ステップS44に処理が進められ、コードバリエーションが60以下であるか否かが判断される。ステップS44において、コードバリエーションが60以下であると判断されると、ステップS45において、その処理対象とされている曲のクラスタが、クラスタ2に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、2)が書き込まれる。
一方、ステップS44において、コードバリエーションは、60以下であると判断された場合、ステップS46に処理が進められ、その処理対象とされている曲のクラスタが、クラスタ3に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、3)が書き込まれる。
一方、ステップS41において、リリースは、50以下であると判断された場合、ステップS47に処理が進められ、リリースが70以上であるか否かが判断される。ステップS47において、リリースが70以上であると判断されると、ステップS48において、スピードが40以下であるか否かが判断される。ステップS48において、スピードが40以下であると判断されると、ステップS49において、その処理対象とされている曲のクラスタが、クラスタ4に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、4)が書き込まれる。
一方、ステップS48において、スピードは、40以下であると判断された場合、ステップS50に処理が進められ、その処理対象とされている曲のクラスタが、クラスタ5に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、5)が書き込まれる。
一方、ステップS47において、リリースは、70以上であると判断された場合、ステップS51に処理が進められ、その処理対象とされている曲のクラスタが、クラスタ1に設定される。そして、処理対象とされた曲のメタデータ154のクラスタの欄に、その設定されたクラスタ(この場合、1)が書き込まれる。
このような処理が繰り返されることにより、曲毎にクラスタが判別される。
図17に示したようなフローチャートでは、曲のメタデータ154に書き込まれている情報を用いてクラスタの判別が行われるようにした。ここでは、リリース、ピッチ、コードバリエーション、および、スピードという情報を用いて判別が行われるとして説明した。これらの情報を用いて行われる各判断、例えば、ステップS41においては、リリースが50以下であるか否かという判断が行われるが、その判断のときに用いられる数値(この場合、“50”)は、既存情報が解析されることにより設定される。
よって、図17のフローチャートに記載されている数値は、一例であり、図示した数値に限定されることを示すものではない。また、一度設定された数値であっても、例えば、新たにクラスタが付与されたメタデータが存在するときに、その新たなデータを既存情報として、再度解析が行われ、更新されるようにしても良い。
既存情報は、既に学習の処理によりクラスタが付与されたメタデータ154である。よって、クラスタ毎(この場合、1乃至5毎)に、どのような特徴があるか、例えば、リリースとして、クラスタ1はどのような数値を有するかなどの統計をとる(特徴を抽出する)ことにより、各判断で用いられる数値が算出される。また、フローチャートの処理の流れ自体も、既存情報を解析することにより決定される。
すなわち、図17に示したフローチャートの処理は、既存情報が解析されることにより、判断に用いられる数値や処理の流れが決定される。
また、その結果、図17のフローチャートに示したように、同一のクラスタと判断されるステップが複数(例えば、図17では、クラスタ1と判断されるステップは、ステップS43とステップS51の2ステップある)存在するような処理の流れになっても良い。
さらに、図17に示したように、クラスタ1と判断されるステップが2ステップあるような場合、ステップS43において設定されるクラスタ1と、ステップS51において設定されるクラスタ1とを区別するようにしても良い。すなわち、同じクラスタ1であっても、処理の流れが異なるということは、異なる曲(異なる特徴を有する曲)であると判断することができるため、同じクラスタに属しても区別されるようにしても良い。
換言すればこの場合、ステップS43において設定されるクラスタ1は、リリースが50以下であり、ピッチが50以下の曲であるが、ステップS51において設定されるクラスタ1は、リリースが70以上の曲である。このように、異なるステップで判別されるクラスタは、異なる特徴を有するので、異なるクラスタとして設定されるようにしても。例えば、この場合、ステップS51において設定されるクラスタは、クラスタ1と異なるクラスタ6などとしても良い。
このように、学習の結果(クラスタが付与された既存情報)を解析することにより、新たなクラスタが増えた場合、そのクラスタも含めた処理を行うようにしても良い。換言すれば、例えば、図12のフローチャートを参照して説明したような学習の処理が終了したことにより作成された既存情報が用いられて、さらに図17に示したようなフローチャートを作成するための学習が行われるようにしてもよい。
このように、クラスタの数は、学習が行われた結果、決定されるようにしても良い。このように、換言するならば、異なる学習の手法での学習を繰り返すことにより、より詳細なクラスタリングを行うことが可能となる。このようなことは、例えば、1回の学習でクラスタを分類したときに、クラスタ1に属すると判断された複数の曲であっても、さらに学習することにより、それらの複数の曲が異なるクラスタ(例えば、クラスタ1とクラスタ6)とに分類されることになるため、より、詳細に分類ができるようになる。
よって、後述するように、ユーザに対して曲を推薦する際、よりユーザにあった(ユーザが好むであろう)曲を推薦することが可能となる。
クラスタの判断に関する他の処理について説明する。上述したように、マッチングを用いる手法や、決定木による手法の他に、判別式を用いた手法により、クラスタが付与されていないアイテム(曲)のメタデータにクラスタが付与されるようにしても良い。
例えば、判別式として次式(1)を用いることができる。
D=1.1×speed―0.8×pitch+4.2 ・・・(1)
D≧0ならば該当
D<0ならば非該当
式(1)において、“1.1”、“−0.8”、“+4.2”といった数値は、係数である。これらの係数は、既存情報が解析されることにより算出される。例えば、クラスタ1に属する既存情報を解析し、クラスタ1に関する係数(判別式)が算出される。そして、クラスタが付与されていない曲のメタデータの情報を用い、式(1)に基づく演算が行われ、Dが0以上である場合、クラスタ1に属すると設定され、0未満である場合、クラスタ1には属さないと設定される(他のクラスタに属するとして、他の判別式による演算が行われる)。
このように、判別式を生成し、その判別式により、クラスタが付与されていないメタデータに、クラスタを付与するための処理が実行されるようにしても良い。
このようにして、クラスタが付与されたメタデータが用いられ、ユーザに対して、ユーザに適した情報が推薦される際の処理が実行される。推薦の処理は、推薦部55(図6)により実行される。図18のフローチャートを参照し、推薦部55により行われる推薦の処理について説明する。
ステップS71において、推薦部55のユーザプロファイル生成部111は、ユーザプロファイルを作成する。作成されるユーザプロファイルは、図11に示したようなプロファイル155である。このようなプロファイルは、例えば、ユーザがアイテム(この場合、曲)を購入した時点で、更新されることにより作成されるようにしても良い。例えば、曲が購入された場合、その曲のメタデータが取得され、取得されたメタデータからの情報が参照され、その情報に対応するプロファイル155の情報が1だけ増加されることにより更新される。
例えば、購入された曲のメタデータが、図10に示したようなメタデータ154であり、図11に示したようなプロファイル155がデータベース54に記憶されていた場合、まず、プロファイル155のジャンルの“Rock”という欄の情報“2”が、1だけインクリメントされ、“3”に更新される。同様にプロファイル155のアーティストの“ABC”という欄の情報“2”が“3”に更新され、テンポの“21-50”という欄の情報“5”が“6”に更新され、ハーモニの“A”という欄の情報“3”が“4”に更新され、クラスタの“1”という欄の情報“10”が“11”に更新される。
このようにして、プロファイルが更新(生成)されると、ステップS72において、類似度計算部112(図6)は、ユーザのプロファイルとアイテムのメタデータとの類似度を計算する。プロファイル155(図11)には、メタデータ154(図10)と同様の項目が設けられている。それらの項目に記載されている情報が用いられて、プロファイル155とメタデータ154との類似度が計算される。
類似度が計算される際、メタデータ154やプロファイル155に設けられている全ての項目に記載されている情報が用いられて類似度が計算されるようにしても良いし、1または複数の所定の項目に記載されている情報(例えば、クラスタの情報)のみが用いられて類似度が計算されるようにしても良い。
類似度が計算される際、メタデータ154やプロファイル155に記載されている情報が用いられるが、所定の項目に対応する情報に重みを付けるなどして、類似度が計算されるようにしても良い。類似度の計算は、例えば、ベクトル空間法などによる手法を適用することにより行うことが可能である。
ステップS73において、推薦情報生成部113(図6)は、ステップS72において計算された類似度の内、類似度が高いメタデータを抽出し、抽出されたメタデータのアイテムを、ユーザに対して推薦する。すなわち、この場合、ユーザが購入した曲と類似性が高いと思われる曲が、ユーザに対して推薦される。
また、このような推薦が行われる一方で、カテゴリ検索部114により、ユーザのプロファイル155から、ユーザが好むであろうカテゴリが検索される。例えば、ジャンルが“Rock”に属する曲であっても、“Rock”に属する全ての曲が、ユーザの好みであるとは限らず、“Rock”に属する曲の一部の曲が好みに一致していると考えられる。上記したようにクラスタを付与することにより、同じ“Rock”というジャンルに属している曲であっても、クラスタが異なれば、異なるカテゴリであると判断することができるようになる。
そこで、クラスタにより、ユーザが好みのカテゴリを判断するようにする。カテゴリが判断されると、そのカテゴリに基づき、プレイリスト個人化部115により、ユーザ毎のプレイリストが作成される。すなわち、ユーザ毎に、ユーザが好むカテゴリに含まれるアイテムだけに絞られた検索が行えるようにプレイリストが作成される。
このように、本実施の形態においては、アンケートや購入履歴といったユーザの嗜好や価値観などが反映されるユーザからの情報により、アイテムに対するクラスタが付与される。よって、ユーザの認識により近い情報を検索し、提示することが可能となる。
また、CF(協調フィルタリング)などの手法により情報を推薦するような場合に生じるコールドスタート問題も、本発明を適用して推薦を行うようにすれば、解決することが可能である。すなわち、CFの手法によれば、ある程度のデータが取得(蓄積)された状態でなければ、推薦のための処理を行うことができなかったが、本発明を適用した場合、クラスタを学習するためのデータが少ない状態でも、クラスタをユーザの嗜好に合った状態で付与することができ、そのようなクラスタの情報を用いた情報の推薦は、ユーザの嗜好に一致したものとすることができる。
また、ユーザの嗜好(価値観などを含む)から判断されるクラスタにより、推薦などの処理を行うことにより、既存のジャンルなどにとらわれないカテゴリで、ユーザ毎に、ユーザに適した情報を検出し、提示することが可能となる。
上述した実施の形態においては、クラスタは、1つしか付与されないとして説明したが、複数付与されるようにしても良い。例えば、図10に示したメタデータ154において、クラスタという項目を複数設けても良い。複数のクラスタがメタデータ154に記載されるようにした場合、例えば、購入履歴からクラスタを学習するようなときには、上記した実施の形態においては、所定のユーザが購入した曲が収集されるとして説明したが(人が基準として情報が収集されるとしたが)、その他の情報が基準として情報が収集され、クラスタが学習されるようにしても良い。
例えば、所定の時間帯に購入された曲を基準として情報が収集されるようにしても良い。この時には、昼間に購入される曲と夜間に購入される曲とで、クラスタが異なる可能性があり、1つの特徴を見いだすことができると考えられる。そのようなクラスタが用いられて情報が推薦されるようにすれば、例えば、夜間に曲を購入した人には、夜間に購入される可能性の高い曲が推薦されるようにすることができる。
曲の購入時間だけでなく、例えば、購入したユーザの年齢、性別、価値観などの情報が基準とされて、クラスタを学習するための情報が収集されるようにしても良い。また、同一の情報からクラスタを学習するようにし、クラスタリングの方法を異なる手法で行うことにより、複数のクラスタが取得されるようにしても良い。
複数のクラスタを組み合わせて用いることにより、よりユーザの嗜好や価値観など、ユーザに依存する情報で、ユーザ毎に、ユーザに適した情報を提示することが可能となる。
なお、上述した実施の形態においては、扱われる情報や推薦される情報は、曲であるとして説明をしたが、曲以外の情報でも勿論、本発明を適用することは可能である。例えば、ワインなどの情報(色、生産地、タンニンの量などをメタデータとして記載しておく)を扱い、ワインを推薦するといったことにも、本発明を適用することはできる。
[記録媒体について]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図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 クラスタリング部, 91 メタデータ取得部, 92 特徴分析部, 93 クラスタ決定部, 94 アイテムメタデータ取得部, 95 追加部, 111 プロファイル生成部, 112 類似度計算部, 113 推薦情報生成部, 114 カテゴリ検索部, 115 プレイリスト個人化部