"各データが属するクラスタを階層的に分割する分割部と、前記分割部によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択部と、を備えるクラスタリング装置。前記各データに対し、ランダムにサブクラスを割り振るサブクラス割振部を更に備え、前記属性選択部は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、前記属性の値がサブクラス間で違いがない場合は、該属性の値を該サブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とすることを特徴とする請求項1に記載のクラスタリング装置。前記属性選択部は、属性毎に該属性がサブクラスに固有である確率を算出し、該算出した確率に基づいて、該属性が前記サブクラス間で共通の属性か前記サブクラスに固有の属性かを判定することを特徴とする請求項1または請求項2に記載のクラスタリング装置。前記属性選択部は、前記データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出し、該算出した確率に基づいて前記データ毎に該データに割り振られるサブクラスを推定することを特徴とする請求項2または請求項3に記載のクラスタリング装置。前記サブクラスを識別するサブクラス識別情報の確率分布が二項分布で表され、前記属性がサブクラスに固有であるか否かを示す固有フラグの確率分布がベルヌーイ分布で表されることを特徴とする請求項2から請求項4のいずれか1項に記載のクラスタリング装置。各データが属するクラスタを階層的に分割する分割手順と、前記分割手順によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択手順と、を有するクラスタリング方法。コンピュータに、各データが属するクラスタを階層的に分割する分割ステップと、前記分割ステップによりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択ステップと、を実行するためのクラスタリングプログラム。しかしながら、非特許文献1のクラスタリング手法では、各クラスタの属性をクラスタ固有あるいは全クラスタ共通のいずれかしか判定できないという制約があるという問題がある。具体的には、例えば、クラスタ数が10のとき、そのうち2つのクラスタに共通の属性があっても、その属性をクラスタに固有あるいは全クラスタに共通のいずれかしか判定できなかった。また、非特許文献1のクラスタリング手法では、得られるクラスタの構造がフラットな構造であるため、クラスタ間の関係が分からないという問題があった。そのため、複数のクラスタに共通の属性を、クラスタを特徴づける属性としてクラスタに割り振ることができなかった。そこで本発明は、上記問題に鑑みてなされたものであり、各クラスタの属性の判定に係る制約を無くし、かつクラスタ間の関係を分かりやすくすることを可能とする技術を提供することを課題とする。本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、各データが属するクラスタを階層的に分割する分割部と、前記分割部によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択部と、を備えることを特徴とするクラスタリング装置である。また、本発明の一態様は、上記のクラスタリング装置において、前記各データに対し、ランダムにサブクラスを割り振るサブクラス割振部を更に備え、前記属性選択部は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、前記属性の値がサブクラス間で違いがない場合は、該属性の値を該サブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とすることを特徴とする。また、本発明の一態様は、上記のクラスタリング装置において、前記属性選択部は、属性毎に該属性がサブクラスに固有である確率を算出し、該算出した確率に基づいて、該属性が前記サブクラス間で共通の属性か前記サブクラスに固有の属性かを判定することを特徴とする。また、本発明の一態様は、上記のクラスタリング装置において、前記属性選択部は、前記データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出し、該算出した確率に基づいて前記データ毎に該データに割り振られるサブクラスを推定することを特徴とする。また、本発明の一態様は、上記のクラスタリング装置において、前記サブクラスを識別するサブクラス識別情報の確率分布が二項分布で表され、前記属性がサブクラスに固有であるか否かを示す固有フラグの確率分布がベルヌーイ分布で表されることを特徴とする。また、本発明の一態様は、各データが属するクラスタを階層的に分割する分割手順と、前記分割手順によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択手順と、を有するクラスタリングクラスタ分類方法である。また、本発明の一態様は、コンピュータに、各データが属するクラスタを階層的に分割する分割ステップと、前記分割ステップによりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択ステップと、を実行するためのクラスタリングプログラムである。本発明によれば、各クラスタの属性の判定に係る制約を無くし、かつクラスタ間の関係を分かりやすくすることができる。以下、本発明の実施形態について、図面を参照して詳細に説明する。本実施形態では、分類対象となるデータを分類するために各データに割り振られる識別子をクラス、同一のクラスが割り振られたデータの集合である分類結果をクラスタ、クラスタに含まれるデータを更に分類するために各データに割り振られる識別子をサブクラス、データの分類をクラスタリングと称し、以下説明する。図1は、本実施形態におけるクラスタリングシステム1の概略ブロック図である。クラスタリングシステム1は、ユーザ端末100と、サービスサーバ200と、ファイルサーバ300と、計算サーバクラスタリング装置400と、データベースサーバ500とを有する。ユーザ端末100は、ユーザによって入力されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とをサービスサーバ200に送信する。また、ユーザ端末100は、サービスサーバ200から供給されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを自装置が備える後述する表示部104に表示させる。サービスサーバ200は、ユーザ端末100から送信されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とを受信し、受信したクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とをファイルサーバ300に送信する。また、サービスサーバ200は、データベースサーバ500から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rをユーザ端末100に送信する。ファイルサーバ300は、サービスサーバ200から送信されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とを受信する。ファイルサーバ300には、自装置が備える後述するデータファイル記憶部303にデータが分析対象毎にファイルで予め記憶されている。ここで、データは、例えば、ログ例えば、映画毎に、各ユーザがその映画を見たか否かといった情報、テキストファイル、画像ファイル、音声ファイルまたは動画ファイルである。ファイルサーバ300は、クラスタリング結果を要求する情報Rqを受信した場合、データファイル記憶部303からファイルFを読み出し、ファイルFとクラスタ数Nを示す情報とファイルを計算サーバ400に送信する。計算サーバ400は、ファイルサーバ300から送信されたファイルFとクラスタ数Nを示す情報とを受信し、受信したファイルFに基づいて、クラスタ数がNに到達するまで入力データをクラスタに分割する。計算サーバ400は、分割により得られたクラスタリング結果を示す情報Rをデータベースサーバ500に送信する。データベースサーバ500は、計算サーバ400から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを後述するクラスタリング結果記憶部503に記憶させる。また、データベースサーバ500は、受信したクラスタリング結果を示す情報Rをサービスサーバ200に送信する。図2は、本実施形態におけるユーザ端末100のハードウェアの構成を示す概略ブロック図である。ユーザ端末100は、記憶部101と、制御部102と、通信部103と、表示部104と、入力部105を備える。記憶部101には、制御部103が実行するための各種プログラムが記憶されている。入力部102は、自端末のユーザから入力されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報を受け付ける。入力部102は、例えば、キーボードとマウスを備える。入力部102は、受け付けたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報を制御部103に出力する。制御部103は、プログラムを記憶部101から読み出して実行することにより、例えば、クラスタリング結果を要求する情報Rqの入力を受け付けるボタンとクラスタ数Nを示す情報を入力するための欄を表示部105に表示させる。これにより、ユーザ端末100のユーザは、クラスタ数Nをキーボードから入力し、当該ボタンをマウスを用いてクリックすることにより、クラスタ結果を示す情報Rを要求することができる。制御部103は、入力部102から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを通信部104に出力し、クラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを通信部104からサービスサーバ200に送信させる。また、制御部103は、通信部104から供給されたクラスタリング結果を示す情報Rを表示部105に表示させる。通信部104は、有線または無線方式で、サービスサーバ200と通信可能に構成されている。通信部104は、制御部103による制御に従って、制御部103から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをサービスサーバ200に送信する。また、通信部104は、サービスサーバ200から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを制御部103に出力する。表示部105は、例えば液晶表示パネルを備える。表示部105は、制御部103から供給されたクラスタリング結果を示す情報Rを表示する。図3は、本実施形態におけるサービスサーバ200のハードウェアの構成を示す概略ブロック図である。サービスサーバ200は、通信部201と、呼出部202とを備える。通信部201は、有線または無線方式で、ユーザ端末100とファイルサーバ300と通信可能に構成されている。通信部201は、ユーザ端末100から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを受信する。通信部201は、制御部202の制御により、受信したクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをファイルサーバ300に送信する。また、通信部201は、データベースサーバ500から供給されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rをユーザ端末100に送信する。制御部202は、通信部201を制御して、クラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをファイルサーバ300に送信させる。制御部202は、通信部201を制御して、クラスタリング結果を示す情報Rをユーザ端末100に送信させる。図4は、本実施形態におけるファイルサーバ300のハードウェアの構成を示す概略ブロック図である。ファイルサーバ300は、通信部301と、制御部302と、データファイル記憶部303とを備える。データファイル記憶部303は、自装置の外部から供給されたデータ例えば、ログ、テキストファイル、画像ファイルが蓄積される。これにより、データファイル記憶部303には、データが分析対象毎にファイルで予め記憶されている。通信部301は、有線または無線方式で、サービスサーバ200と計算サーバ400と通信可能に構成されている。サービスサーバ200から送信されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを受信する。通信部301は、制御部302の制御により、受信したクラスタリング結果を要求する情報Rqを制御部302に出力する。また、通信部301は、制御部302の制御に従って、制御部302によりデータ記憶部303から読み出されたファイルFとクラスタ数Nを示す情報とを計算サーバ400に送信する。制御部302は、通信部301から供給されたクラスタリング結果を要求する情報Rqを受け取った場合、データ記憶部303からクラスタリング対象のデータを含むファイルFを読み出す。そして、制御部302は、読み出したファイルFを、クラスタ数Nを示す情報と共に通信部301から計算サーバ400に送信させる。図5は、本実施形態における計算サーバ400のハードウェアの構成を示す概略ブロック図である。計算サーバ400は、通信部401と、制御部402とを備える。通信部401は、ファイルサーバ300から送信されたファイルFとクラスタ数Nを示す情報とを受信し、受信したファイルFとクラスタ数Nを示す情報を制御部402に出力する。また、通信部401は、制御部402の制御に従って、制御部402から供給されたクラスタリング結果を示す情報Rをデータサーバ500に送信する。制御部402は、通信部401から供給されたファイルFに含まれるデータに基づいて、クラスタ数がクラスタ数Nに到達するまで、ファイルFに含まれるデータが属するクラスタを階層的に分割する。制御部402は、分割により得られたクラスタリング結果を示す情報Rを通信部401に出力し、クラスタリング結果を示す情報Rを通信部401からデータサーバ500に送信させる。図6は、本実施形態における計算サーバ400の制御部402の論理的な構成を示す概略ブロック図である。制御部402は、識別情報割振部420と、クラスタリング処理部430とを備える。また、クラスタリング処理部430は、サブクラス割振部431と、属性選択部440と、変数推定部433と、エントロピー算出部434と、クラス抽出部435と、分割部436と、クラスタ数比較部437とを備える。また、属性選択部440は、サブクラス間差異判定部432と、変数推定部433とを備える。識別情報割振部420は、通信部401から供給されたファイルFに含まれるデータ毎に固有のデータ識別情報を割り付ける。また、識別情報割振部420は、ファイルFに含まれる属性に固有の属性識別情報を割り付ける。具体的な識別情報割振部420の処理の一例を、図7を用いて説明する。図7は、ファイルFに含まれるデータの構造を表現したテーブルT1の一例と、識別情報割振部420による処理後のデータの構造を表現したテーブルT2の一例とが示された図である。テーブルT1において、データ例えば、映画のタイトルと属性例えば、ユーザ名とに関連付けられて、観測値0または1の値で、例えば、ユーザが映画毎にその映画を鑑賞したか否かの情報で、1が鑑賞した場合で0が鑑賞していない場合を示すが示されている。テーブルT1において、データXXのように、ファイルFに含まれるデータが示されている。また、テーブルT1において、属性YCのように、ファイルFに含まれる属性が示されている。テーブルT2において、各観測値0または1の値が、データを識別するデータ識別情報の一例であるデータiiはデータのインデックスで、iは1からlまでの整数と、属性を識別する属性識別情報の一例である属性jjは属性のインデックスで、jは1からJまでの整数とに関連付けられている。識別情報割振部420は、例えば、図7のテーブルT2に示すように、データ毎にデータ識別情報を割り振り、属性毎に属性識別情報を割り振る。これにより、識別情報割振部420は、各観測値yijを、データ識別情報であるデータiと属性識別情報である属性jとに関連付ける。識別情報割振部420は、各観測値yijを示す情報を、データiを示す情報と属性jを示す情報と共にサブクラス割振部431に出力する。図6に戻って、サブクラス割振部431は、識別情報割振部420から供給されたデータiに対し、仮にランダムにサブクラスを割り振る。サブクラス割振部431は、データi毎に関連付けられたサブクラスを示す情報を、各観測値yijを示す情報とデータiを示す情報と属性jを示す情報と共にサブクラス間差異判定部432に出力する。サブクラス割振部431は、クラスタ数比較部437からクラスタ数が指定のクラスタ数Nに到達していない旨の情報を受け取った場合、または変数推定部433から計算が規定回数に到達していない旨の情報を受け取った場合、上記処理を繰り返す。上記サブクラス割振部431の処理の図8の例を用いて説明する。図8は、サブクラス割振部431によりデータ毎にサブクラスが割り振られた1例を示すテーブルT3である。同図のテーブルT3の領域R81に示されるように、サブクラス0またはサブクラス1が、データ1~データIまでランダムに割り振られている。例えば、データ1に対しては、サブクラス0が割り振られ、データIに対しては、サブクラス1が割り振られている。図6に戻って、サブクラス間差異判定部432は、属性j毎にサブクラス間で観測値に差異が有るか否か判定する。そして、サブクラス間差異判定部432は、属性j毎に観測値yijがサブクラス間で違いがない場合には、その属性を仮に共通属性とし、サブクラスに固有であるか否かを示す固有フラグrを0にする。一方、サブクラス間差異判定部432は、属性j毎に観測値yijがサブクラス間で違いがない場合には、その属性を仮にサブクラス固有の属性とし、サブクラスに固有であることを示す固有フラグrを1にする。これにより、サブクラス間差異判定部432は、属性j毎にサブクラスに固有であるか否かを示す固有フラグrの値を定める。図9を用いて、サブクラス間差異判定部432の上記処理について説明する。図9は、図8のテーブルT3の観測値において、サブクラスに固有であるか否かを示す固有フラグrの値の一例が示されたテーブルT4である。同図のテーブルT4において、図8のテーブルT3において、属性1、2および4は、サブクラス0データ1の場合に観測値が0で、サブクラス1データIの場合に観測値が1であり、サブクラス間で観測値が異なるので、固有フラグrの値が1である。一方、属性3およびJは、サブクラス0データ1の場合に観測値が1で、サブクラス1データIの場合に観測値が1であり、サブクラス間で観測値が同じであるので、固有フラグrの値が0である。このように、サブクラス間差異判定部432は、クラスkの属性jがサブクラス間で共通であるデータの数であるサブクラス共通数nkj0~及びnkj1~を算出する。ここで、nkj0~は、nkj0の上に記号~が付された記号である。また、nkj1~は、nkj1の上に記号~が付された記号である。また、サブクラス間差異判定部432は、クラスkの属性jがサブクラスに固有であるデータの数であるサブクラス固有数nk0j1、nk0j0、nk1j0及びnk1j1を算出する。サブクラス間差異判定部432は、算出したサブクラス共通数nkj0~及びnkj1~を示す情報と、サブクラス固有数nk0j1、nk0j0、nk1j0及びnk1j1を示す情報とを変数推定部433に出力する。変数推定部433は、サブクラス間差異判定部432から入力されたサブクラス共通数nkj0~及びnkj1~を示す情報と、サブクラス固有数nk0j1、nk0j0、nk1j0及びnk1j1を示す情報とに基づいて、ギブスサンプリングを用いて、クラスkおよび属性j毎に固有フラグrkjの値0または1を推定する。ここで、kはクラスを識別する識別情報である。また、変数推定部433は、ギブスサンプリングを用いて、クラスkおよびデータi毎にサブクラスを識別するサブクラス識別情報zkiの値0または1を推定する。これにより、クラスkに含まれるデータi毎にデータiが属するサブクラスを推定することができる。変数推定部433は、属性j毎の固有フラグrjの計算の回数が規定回数ギブスサンプリングの回数に達していない場合、サブクラス割振部431に計算が規定回数に到達していない旨の情報を出力する。一方、属性j毎の固有フラグrjの計算の回数が規定回数ギブスサンプリングの回数に達した場合、変数推定部433は、推定した固有フラグrkjの値を示す情報と、サブクラスを指定するサブクラス識別情報zkiの値を示す情報とをエントロピー算出部434に出力する。エントロピー算出部434は、分割し得るクラスタである分割対象クラスタ毎にそのクラスタを分割した際の条件付きエントロピーを算出する。ここで、クラスタリングする前は全てのデータiが1つのルートクラスタに入っているとみなせる。ゆえに、分割部436は、当該ルートクラスタを分割する際には、どちらのクラスタが分割されるか決定する必要がないので、エントロピー算出部434は、条件付きエントロピーを算出する必要はない。一方、その全てのデータiが、2つ以上のクラスタに分割された後には、現在存在するクラスタのうちどのクラスタを分割するか決定するために、エントロピー算出部434は、クラスタが分割された場合の条件付きエントロピーが未だ算出されていないクラスタに対して、クラスタが分割された場合の条件付きエントロピーを算出する。これにより、既に算出されているクラスタが分割された場合の条件付きエントロピーを再度算出する必要がないので、計算コストを削減することができる。エントロピー算出部434は、算出した条件付きエントロピーを示す情報を、分割対象クラスタを識別するクラスタ識別情報に関連づけてクラスタ抽出部435に出力する。クラスタ抽出部435は、未だ分割されていないクラスタに対して、そのクラスタが分割された場合の条件付きエントロピーを示す情報をクラスタを識別するクラスタ識別情報に関連づけて保持している。クラスタ抽出部435は、エントロピー算出部434から供給された条件付きエントロピーと、保持している条件付きエントロピーのうち、エントロピーが最小となる分割対象クラスタを抽出する。クラスタ抽出部435は、抽出した分割対象クラスタを示す情報を分割部436に供給する。また、クラスタ抽出部435は、エントロピーが最小となる分割対象クラスタのクラスタ識別情報に関連付けられた条件付きエントロピーを示す情報を消去し、分割されなかったクラスタを識別するクラスタ識別情報に関連付けられた条件付きエントロピーを示す情報を保持する。分割部436は、クラスタ抽出部435から供給された分割対象クラスタを分割する際に、変数推定部433により推定されたデータiが属するサブクラスを示す情報に基づいて、分割対象クラスタを2つのクラスタに分割する。クラスタ数比較部437は、識別情報割振部420から供給されたクラスタ数Nと、現在のクラスタ数とを比較し、現在のクラスタ数が現在のクラスタ数Nに到達していたら、クラスタ結果を示す情報Rを通信部401に出力する。一方、現在のクラスタ数が現在のクラスタ数Nに到達していない場合、クラスタ数比較部437は、クラスタ数が指定のクラスタ数Nに到達していない旨の情報をサブクラス割振部431に出力する。続いて、変数推定部433の処理の詳細について図10、11および12を用いて説明する。図10は、本実施形態における観測値yを推定する処理が示されたグラフィカルモデルである。同図において、各変数または定数の関係が示されている。同図において、α、β、γはハイパーパラメータで、予め定められた定数である。kはクラスを識別する識別情報である。同図において、パラメタφkは、ハイパーパラメータαを構成する変数α0とα1とから計算されることが示されている。パラメタφkは、サブクラスを識別するサブクラス識別情報ziが1を出力する確率であり、0~1の連続値を取る。ここで、パラメタφkの確率分布は、クラスk毎にハイパーパラメータαを構成する定数α0と定数α1とを引数とするディリクレDirichlet分布で表される。同図において、サブクラス識別情報ziは、クラスkとパラメタφkによって算出される。本実施形態では、クラスkは2つのサブクラスに分割されるので、サブクラス識別情報ziは、0または1の値を取る。ここで、サブクラス識別情報ziの確率分布は、データi毎およびクラスk毎に、パラメタφkを引数とする二項Binomial分布で表される。パラメタλkjは、固有フラグrが1を出力する確率であり、0~1の連続値を取る。パラメタλkjは、クラスkとハイパーパラメータβを構成する定数β0と定数β1とから算出される。具体的には、パラメタλkjの確率分布は、クラスk毎およびデータj毎に、ハイパーパラメータβを構成する定数β0と定数β1とを引数とするベータΒeta分布で表される。固有フラグrは、使用する変数を指定するフラグであり、0また1の値を取り得る。観測値yを推定する際に、固有フラグrの値が1のときにはサブクラスziに固有のパラメタθが使用され、固有フラグrの値が0のときにサブクラスziに共通のパラメタθチルタが使用される。ここで、図10におけるθの上に~が示されている記号をθチルタと称し、以後θチルタを用いて説明する。固有フラグrは、クラスkとパラメタλkjとから算出される。具体的には、固有フラグrkjの確率分布は、クラスk毎およびデータj毎に、パラメタλkjを引数とするベルヌーイBeernoulli分布で表される。パラメタθkljは、固有フラグrが1のとき、すなわちパラメタθkljがサブクラスziに固有のときに用いられる変数である。一方、パラメタθkljチルタは、固有フラグrが0のとき、すなわちパラメタθkljがサブクラスziに共通のときに用いられる変数である。パラメタθkljは、クラスkと、サブクラスlと、ハイパーパラメータγを構成する変数γ10および変数γ11とから算出される。具体的には、パラメタθkljの確率分布は、ハイパーパラメータγを構成する変数γ10および変数γ10を引数とするベータ分布で表される。また、パラメタθkljチルタは、クラスkと、サブクラスlと、ハイパーパラメータγを構成する変数γ00および変数γ01とから算出される。具体的には、パラメタθkljチルタの確率分布は、ハイパーパラメータγを構成する変数γ00および変数γ01を引数とするベータ分布で表される。観測値yijは、サブクラスzi、固有フラグrj、パラメタθzj、パラメタθzjチルタによって推定される値である。具体的には、観測値yijの確率分布は、データi毎および属性j毎に、パラメタθzjおよびパラメタθzjチルタを引数とするベルヌーイBeernoulli分布で表される。図10において、領域R101内の変数は、データ数Iの回数だけ繰り返し算出される。領域R102内の変数は、クラスタ毎に分割しうる分割数L本実施形態では、2と属性の数Jを乗じた値LJ本実施形態では、2Jの回数だけ繰り返し算出される図11は、固有フラグrの値によりパラメタθまたはパラメタθチルタのいずれかが選択されることについて説明するための図である。同図において、棒グラフの中の色が黒である領域が観測値yijが1が出現する確率であり、棒グラフの中の色が白である領域が観測値yijが0が出現する確率である。同図において固有フラグrが1の場合、サブクラスzがlのとき、観測値yijとして1が出現する確率θljが観測値yijとして0が出現する確率1-θljより大きいことが示されている。一方、サブクラスzがl ́のとき、観測値yijとして0が出現する確率θljが観測値yijとして1が出現する確率1-θljより大きいことが示されている。すなわち、サブクラスlとサブクラスl ́との間で、観測値yijとして1が出現する確率と0が出現する確率の比が、逆転していることが示されている。一方、固有フラグrが0の場合、サブクラスlにおいて確率θljが確率1-θljより大きく、サブクラスl ́における確率θl ́jが確率1-θl ́jより大きいことが示されている。すなわち、サブクラスlとサブクラスl ́との間で、観測値yijとして1が出現する確率は0が出現する確率よりも共通して大きいことが示されている。そこで、固有フラグrが0の場合には、サブクラスに共通のパラメタθljチルタが使用されることが示されている。このようにして、属性選択部440は、サブクラス間の属性を比較することにより固有フラグrを選択する。これにより、クラスタリング処理部430は、選択された固有フラグrに基づいて、サブクラスに固有のパラメタθljとサブクラスに共通のパラメタθljチルタのいずれかを使用するかを選択し、観測値yijを推定することができる。そして、クラスタリング処理部430は、推定された観測値yijが実際の観測値yijと近くなるように、変数rと変数zを算出する。図12は、変数推定部433の論理的な構成を示す概略ブロック図である。変数推定部433は、クラス帰属判定部433_1と、属性振分部433_5とを備える。クラス帰属判定部433_1は、データi毎に当該データiが帰属するサブクラスzを推定する。ここで、クラス帰属判定部433_1は、変数z確率算出部433_2と変数z算出部433_3とを備える。図10に示されるように、各変数に確率分布を導入したことで、クラスkとハイパーパラメータα、βおよびγが与えられたという条件付きのデータ全体の同時確率Py,z,r,φ,λ,θ,θチルタ|k,α,β,γは次の式1で表される。この同時確率を用いることによって、変数推定部433は、潜在するサブクラスにデータを割り振ることと、各サブクラスに固有の属性の検出とを同時に行うことができる。ここで、式1がφ,λ,θで積分されると、以下の式2で表される。ここで、Γはガンマ関数である。また、nk0はクラスkのサブクラス0のデータの数であり、nk1はクラスkのサブクラス1のデータの数であり、nkjはクラスkにおいて属性jを有するデータ数、nk0は属性0を有するクラスkのデータ数である。また、nk0j1nk0j0は、クラスkにおけるサブクラス0のデータであって、サブクラスに固有サブクラス間で共通のデータの数である。また、nk1j1nk1j0は、クラスkにおけるサブクラス1のデータであって、サブクラスに固有サブクラス間で共通のデータの数である。nkj1nkj0は、クラスkにおいて、サブクラスに固有サブクラス間で共通のデータ数である。各変数が確率分布で表されるので、式1で現れるパラメタλ、φ、θおよびθチルタは、式1が積分されることによって解析的にその値が消え、式2ではパラメタλ、φ、θおよびθチルタが現れない。変数z確率算出部433_2は、サブクラス間差異判定部432から供給された情報が示すサブクラス共通数nkj0とサブクラス固有数nkj1とを用いて、データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出する。具体的には、例えば、変数z確率算出部433_2は、属性毎の固有フラグrの初期値を示す情報を用いて、サブクラスziがlである条件付き確率Pzi=lを以下の式3に従って算出する。ここで、z\iは、データi以外のデータでサブクラスに割り振られた数である。また、nk\iは、データi以外でクラスkを有するデータの数であり、nkl\iは、データi以外クラスkの中のサブクラスlに割り振られたデータの数である。また、nk\ij0nk\ij0は、データi以外でクラスkを有するデータであって、観測値yij=0yij=1に割り振られたデータの数である。また、nkl\ij0nkl\ij0は、データi以外でクラスkの中のサブクラスlに割り振られたデータであって、観測値yij=0yij=1に割り振られたデータの数である。各変数が確率分布で表されるので、式3において、パラメタλ、φ、θおよびθチルタが現れない。ゆえに、変数推定部433は、パラメタλ、φ、θおよびθチルタを計算する必要がないので、計算量を減らすことができる。変数z確率算出部433_2は、データi毎に算出した条件付き確率Pzi=lを示す情報を変数z算出部433_3に出力する。変数z算出部433_3は、乱数を算出する。変数z算出部433_3は、変数z確率算出部433_2から供給された条件付き確率Pzi=lが、算出した乱数よりも大きい場合には、変数zを1とする。一方、変数z算出部433_3は、条件付き確率Pzi=lが、算出した乱数以下の場合、変数zを0とする。変数z算出部433_3は、この処理をデータi毎に算出された条件付き確率Pzi=lを示す情報全てについて行い、現在のステップにおけるデータi毎にサブクラス識別情報zi0または1の値を算出する。変数z算出部433_3は、算出したータi毎のサブクラス識別情報ziの変化量を示す情報をエントロピー算出部434に出力する。また、変数z算出部433_3は、変化量を算出した旨の情報を属性振分部433_5の後述する変数r確率算出部433_6に出力する。続いて、属性振分部433_5について説明する。属性振分部433_5は、属性j毎に固有のフラグrjの値を推定する。換言すれば、属性振分部433_5は、属性j毎に当該属性jがサブクラス間で固有の属性かサブクラス間で共通の属性かを推定する。属性振分部433_5は、変数r確率算出部433_6と、変数r算出部433_7とを備える。変数r確率算出部433_6は、変数z算出部433_3から変化量を算出した旨の情を受け取ると、サブクラス間差異判定部432から供給された情報が示すサブクラス共通数nkj0とサブクラス固有数nkj1とに基づいて、属性j毎に当該属性がサブクラスに固有である確率である固有フラグrの条件付き確率Prjを以下の式4に従って算出する。ここで、r\jは、j以外の固定フラグrであり、y\jは、j以外の観測値yである。各変数が確率分布で表されるので、式4においても、パラメタλ、φ、θおよびθチルタが現れない。ゆえに、変数推定部433は、パラメタλ、φ、θおよびθチルタを計算する必要がないので、計算量を減らすことができる。変数r確率算出部433_6は、算出した属性j毎の条件付き確率Prjを示す情報を変数r算出部433_7に出力する。変数r算出部433_7は、前のステップで算出された固有フラグr=0の条件付き確率Prjよりも、現在のステップで算出された固有フラグr=1の条件付き確率Prjが大きい場合、固有フラグrを0から1に変更する。一方、変数r算出部433_7は、前のステップで算出された固有フラグr=1の条件付き確率Prjよりも、現在のステップで算出された固有フラグr=0の条件付き確率Prjが大きい場合、固有フラグrを1から0に変更する。上記2つに当てはまらない場合、変数r算出部433_7は、乱数を算出する。変数r算出部433_7は、前のステップで算出された固有フラグrの条件付き確率Prjを分母で、現在のステップで算出された固有フラグrの条件付き確率Prj分子とする固有フラグrの条件付き確率Prjの比率を算出する。変数r算出部433_7は、算出した比率が、算出した乱数よりも大きい場合には、固有フラグrを1とする。一方、変数r算出部433_7は、算出した比率が、算出した乱数以下の場合、固有フラグrを0とする。変数r算出部433_7は、クラスタ数が1の場合、この処理を属性j毎に算出された条件付き確率Prjを示す情報全てについて行って、属性j毎に固有フラグrjを決定する。変数r算出部433_7は、クラスタ数が2以上の場合、その前までの処理で固有フラグrが0となった属性以外の属性jについて、属性j毎に固有フラグrjを決定する。これにより、クラスタ数が2以上の場合、変数r算出部433_7は、その前までの処理で固有フラグrが0となった属性以外についてのみ固有フラグrjを決定すればよいので、全ての属性で固有フラグrjを決定するのに比べて計算量を減らすことができる。また、変数r算出部433_7が式4を用いて条件付き確率Prjを算出する際に、式4におけるガンマ関数の計算量が多いので、特に計算量を減らすことに貢献することができる。続いて、変数r算出部433_7は、属性j毎の固有フラグrjの計算の回数が規定回数ギブスサンプリングの回数に達した場合、現在の属性j毎の固有フラグrjを示す情報をエントロピー算出部434に出力する。これにより、属性j毎に当該属性jがサブクラスに固有であるかサブクラス間で共通であるかを決定することができる。一方、変数r算出部433_7は、属性j毎の固有フラグrjの計算の回数が規定回数ギブスサンプリングの回数に達していない場合、サブクラス割振部431に計算が規定回数に到達していない旨の情報を出力する。これにより、変数r算出部433_7は、属性j毎の固有フラグrjの計算の回数が規定回数ギブスサンプリングの回数に達するまで、サブクラス割振部431はサブクラスを割り振り直させることができる。なお、変数r算出部433_7は、変数rの変動量の総和が所定の閾値より小さくなるまで、サブクラス割振部431はサブクラスを割り振り直させてもよい。具体的には、例えば、変数r算出部433_7は、直前のステップで算出された属性j毎に算出された条件付き確率Prjを示す情報を保持している。変数r算出部433_7は、直前のステップの属性jの条件付き確率Prjに対する現在算出した属性jの条件付き確率Prjとの変化量を算出する。例えば、変数r算出部433_7は、直前のステップの属性jの条件付き確率Prjが0で、現在算出した属性jの条件付き確率Prjが1であるならば、変化量を1と算出する。変数r算出部433_7は、上記処理を全ての属性jに対して行うことにより、属性j毎の固有フラグrjの変化量を算出する。属性j毎の固有フラグrjの変化量の絶対値の総和を算出し、算出した総和が所定の閾値より小さくなるまでサブクラス割振部431はサブクラスを割り振り直させるようにしてもよい。以上の処理についてまとめると、属性選択部440は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、属性の値がサブクラス間で違いがない場合は、その属性の値をそのサブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とする。また、属性選択部440は、属性毎にその属性がサブクラス間で固有である確率を算出し、その算出した確率に基づいて、その属性がサブクラス間で共通の属性かサブクラスに固有の属性かを判定する。また、属性選択部440は、データ毎にそのデータに割り振られるサブクラスが所定のサブクラスである確率を算出し、算出した確率に基づいてデータ毎にそのデータに割り振られるサブクラスを推定する。続いて、エントロピー算出部434は、変数r算出部433_7から供給された現在のデータi毎のサブクラス識別情報ziに基づいて、条件付きエントロピーを算出する。具体的には、エントロピー算出部434は、以下の式5に従って、条件付きエントロピーHX|Yを算出する。ここで、HX|Yは、サブクラスの集合Yが与えられたときのデータの集合Xのエントロピーである。また、lはサブクラスのインデックスであり、Lはサブクラスの数であり、クラスタを2つのサブクラスに分割するので本実施形態ではLは2である。また、Iはデータiの数である。PX=xi|Y=ylは、データがxiでサブクラスがylの条件付確率を表している。エントロピー算出部434は、データにサブクラスを割り振る毎に、上記式4に従って、条件付きエントロピーを算出する。エントロピー算出部434は、算出した、条件付きエントロピーを示す情報をクラスタ抽出部435に出力する。続いて、データベースサーバ500について説明する。図13は、本実施形態におけるデータベースサーバ500のハードウェアの構成を示す概略ブロック図である。データベースサーバ500は、通信部501と、制御部502と、クラスタリング結果記憶部503とを備える。通信部501は、計算サーバ400から送信されたクラスタリング結果を示す情報Rを受信する。通信部501は、制御部502の制御に従って、受信したクラスタリング結果を示す情報Rをクラスタリング結果記憶部503に供給する。また、通信部501は、受信したクラスタリング結果を示す情報Rをサービスサーバ200に送信する。制御部502は、通信部501により受信されたクラスタリング結果を示す情報Rをクラスタリング結果記憶部503に記憶させる。これにより、クラスタリング結果記憶部503には、クラスタリング結果を示す情報Rが記憶される。図14は、クラスタリング結果記憶部503に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT5である。同図において、データの識別情報と親クラスタの識別情報と所属クラスタの識別情報とが関連付けられている。ここで、所属クラスタとは、データが最終的に分類されたクラスタであり、親クラスタとは、所属クラスタを包含するクラスタであって所属クラスタが分割される直前のクラスタである。例えば、データ1の親クラスタの識別情報1であり、所属クラスタの識別情報が2であることが示されている。このように、クラスタリング結果記憶部503には、データの識別情報とデータが属する所属クラスタの識別情報と当該所属クラスタの親クラスタの識別情報とが関連付けられて記憶される。図15は、クラスタリング結果記憶部503に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT6である。同図において、固有フラグrの値が、属性の識別情報とクラスタ識別情報クラスタ1~クラスタNとに関連付けられている。例えば、属性1はクラスタ1では固有フラグrが1なのでクラスタ1に固有の属性であるが、クラスタNでは固有フラグrが0なのでクラスタ間で共通の属性であることが示されている。図16は、クラスタの階層構造の一例が示された図である。前提として、映画のタイトルがデータであり、属性はユーザの識別情報であるユーザidである。観測値yはユーザjが映画のタイトルTiを鑑賞したか否かを示す情報鑑賞していれば1、鑑賞していなければ0である。例えば、ユーザjが映画のタイトルTiを鑑賞した場合には、その観測値は1であり、鑑賞していない場合にはその観測値は0である。ここで、ユーザが10人であり、各ユーザにユーザidが1から10まで割り振られていることを想定する。同図において、最初の分岐B161では、全データが属していたクラスタk0は、クラスタk00とクラスタk01に分割されている。クラスタk00に固有の属性は、ユーザidが1、2、3、4、5である。これは、クラスタk00は、ユーザidが1、2、3、4、5のユーザが鑑賞した映画のクラスタであることを意味する。一方、クラスタk01に固有の属性は、ユーザidが6、7、8、9、10である。これは、クラスタk01は、ユーザidが6、7、8、9、10のユーザが鑑賞した映画のクラスタであることを意味する。クラスタk00に固有の属性と、クラスタk01に固有の属性とを比較すると、クラスタk00の共通属性はユーザidが5以下であることから、ユーザidの数が6より小さいユーザが鑑賞した映画タイトルが分類されていると解釈できる。一方、クラスタk01の共通属性はユーザidが6以上であるので、ユーザidの数が6以上のユーザが鑑賞した映画タイトルが分類されていると解釈できる。このように、クラスタリング処理部430は、クラスタを階層的に分割するので、クラスタ結果を見た人は、クラスタに固有の属性を比較することにより、クラスタ間の関係を理解することができる。また、分岐B162では、クラスタk00は2つのクラスタk000とクラスタk001とに分割されている。クラスタk000に固有の属性は、ユーザidが奇数である。これは、クラスタk000は、ユーザidが1、2、3、4、5のうちユーザidが奇数であるという条件を満たすユーザid1、3、5のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。同様に、クラスタk001に固有の属性は、ユーザidが偶数である。クラスタk001は、ユーザidが1、2、3、4、5のうちユーザidが偶数であるという条件を満たすユーザid2、4のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。また、分岐B163では、クラスタk01は2つのクラスタk010とクラスタk011とに分割されている。クラスタk010に固有の属性は、ユーザidが奇数である。これは、クラスタk000は、ユーザidが6、7、8、9、10のうちユーザidが奇数であるという条件を満たすユーザid7、9のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。同様に、クラスタk011に固有の属性は、ユーザidが偶数である。クラスタk001は、ユーザidが6、7、8、9、10のうちユーザidが偶数であるという条件を満たすユーザid6、8、10のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。このように、クラスタリング処理部430は、クラウタ間で共通の属性を削除し、各クラスタに固有の属性を抽出するので、人にクラスタを構成するデータの特徴を理解させることができる。更に、クラスタリング処理部430は、クラスタを階層化するので、クラスタを構成するデータは所属クラスタに固有の属性と所属クラスタの親クラスタに固有の属性とを有するので、人にクラスタを構成するデータの特徴を理解させることができる。また、クラスタリング処理部430は、クラスタが階層化されることで、クラスタ間の相対的な近さがわかり、人にデータ全体の構造が理解させることができる。図17は、映画のタイトルがクラスタリングされた結果の一例が示された図である。同図において、図16に示されたクラスタk000、クラスタk001、クラスタk010、クラスタk011毎に各クラスタに含まれる映画のタイトルが示されている。ここで、図17に示されているタイトル1からタイトル22は、映画のタイトルである。クラスタk000を構成するデータはタイトル1から6までの6つの映画タイトルであり、クラスタk001を構成するデータはタイトル7から11までの5つの映画タイトルであり、クラスタk010を構成するデータはタイトル12から16までの5つの映画タイトルであり、クラスタk011を構成するデータはタイトル17から22までの6つの映画タイトルであることが示されている。図18は、本実施形態における計算サーバ400の処理の流れを示すフローチャートである。まず、制御部402は、通信部401を介してファイルサーバ300から供給されたクラスタ数Nを示す情報を受け取るステップS101。識別情報割振部420は、クラスタリング対象のデータ及び属性に識別情報を割り振るステップS102。次に、サブクラス割振部431は、それぞれのクラスタにおいて各データが属するサブクラスを割り振るステップS103。次に、サブクラス間差異判定部432は、属性j毎に固有フラグrjの初期値を決定するステップS104。次に、変数推定部433は、データi毎のサブクラス識別情報ziと属性j毎の固有フラグrjの値を推定するステップS105。変数r算出部433_7は、計算の回数が規定回数に達したか否か判定するステップS106。計算の回数が規定回数に達していない場合ステップS106NO、クラスタリング処理部430は、ステップS103の処理に戻る。一方、計算の回数が規定回数に達した場合ステップS106YES、エントロピー算出部434は、現在のクラスタ数が2以上か否か判定するステップS107。現在のクラスタ数が1の場合ステップS107NO、分割部436は全データiを2つのクラスタに分割しステップS108、クラスタリング処理部430は、ステップS112の処理に進む。一方、現在のクラスタ数が2以上の場合ステップS107YES、エントロピー算出部434は、条件付きエントロピーを算出するステップS109。次に、エントロピー算出部434は、現在存在する全てのクラスタに対して、当該クラスタが分割された場合の条件付きエントロピーを算出したか否か判定するステップS110。現在存在する全てのクラスタに対して当該クラスタが分割された場合の条件付きエントロピーを算出していない場合ステップS110NO、クラスタリング処理部430は、ステップS103に戻り、条件付きエントロピーが算出されていないクラスタに対してステップS103の処理を行う。一方、現在存在する全てのクラスタに対して当該クラスタが分割された場合の条件付きエントロピーを算出した場合ステップS110YES、クラス抽出部435は、条件付きエントロピーが最小となる分割対象クラスタを抽出するステップS111。次に、分割部436は、抽出された分割対象クラスタを2つのクラスタに分割するステップS112。クラスタ数比較部437は、分割部436による分割後のクラスタ数がファイルサーバ300から供給されたクラスタ数Nに到達したか否か判定するステップS113。分割後のクラスタ数がクラスタ数Nに到達していない場合ステップS113NO、クラスタリング処理部430は、ステップS102の処理に戻る。一方、分割後のクラスタ数がクラスタ数Nに到達した場合ステップS113YES、クラスタ数比較部437は、クラスタ結果を示す情報Rを通信部401に出力するステップS114。以上で、本フローチャートの処理を終了する。以上、本実施形態の計算サーバ400は、クラスタを分割する毎に、各属性が分割後の複数のクラスタに共通する属性か分割後のクラスタに固有の属性かを決定し、各データが属するクラスタを階層的に分割する。これにより、計算サーバ400は、クラスタ固有の属性が減らすことができるので、クラスタの特徴を理解することが容易となる。また、計算サーバ400は、クラスタを階層化したので、クラスタ間の関係を理解することが容易となる。また、本実施形態の計算サーバ400は、クラスタリング処理の際に各変数を確率分布でモデル化したので、クラスタリング結果に数学的な妥当性を持たせることができる。その結果、同じ条件化では、計算サーバ400は、常に同じクラスタリング結果を出力することができる。これにより、どんなユーザが計算サーバ400を用いてデータをクラスタリングしても同じ結果が得られるので、クラスタリング手法に精通していないユーザでも容易に数学的に妥当性のあるクラスタリング結果を得ることができる。<効果を実証する実験データ>続いて、本実施形態における手法HSCの効果について立証するために行った実験結果について、説明する。図19は、本実施形態におけるクラスタリング処理に係る時間と、従来手法のクラスタリング処理に係る時間とを比較した図である。同図において、縦軸は時間秒であり、横軸は属性の数である。同図に置いて、本実施形態における手法はHSCHierarchicalSubsetClusteringであり、従来手法は、非特許文献1に記載されたSCBSSubsetClusteringofBinarySequenceである。また、括弧内のNは、Netflixデータを用いてクラスタリングした結果であることを示し、括弧内のPは、研究論文のデータを用いてクラスタリングした結果であることを示している。ここで、Netflixデータは、1999年11が11日から2005年12月31日までに100,480,507の採点レーティング記録からなる。採点記録は、480,189人の採点者によって採点された17770の映画からなる。最初に、少なくとも20映画を採点した採点者と少なくとも100人のユーザによって採点された映画が選択されたこの前処理により、データセットを136,589人の採点者によって採点された9,264映画からなる85,730,203採点記録までに削減した。各採点記録は、映画タイトルを識別する映画タイトルidと、採点者を識別する採点者idと、採点と、時刻からなる。一方、研究論文のデータは、2001年から2008年までにACMCIKMSIGIRKDDandWWWの予稿集における研究論文からなっている。研究論文に登場するストップワード、番号、コーパスに登場する回数が5回未満の単語が削除された。これにより、研究論文のデータは、全部で3078文章と20286の種の単語からからなっている。同図に置いて、属性が20000のときは、本実施形態における手法HSCと従来手法SCBSとでクラスタリング処理にかかる時間にほとんど差がない。しかし、属性が増えるに従って、本実施形態における手法HSCは、従来手法SCBSよりもクラスタリング処理にかかる時間が短くなっている。すなわち、従来手法SCBSは、属性の数が増えると処理にかかる時間が線形に増えるのに対して、本実施形態における手法HSCは、属性の数が増えたことによる影響を受けずに、処理にかかる時間をほぼ一定に保つことができる。以下、図19の実験結果が得られた実験の方法について説明する。まず、研究論文データの文章の数と合わせるために、9,264の映画からランダムに3078の映画が選択された。次に、採点者単語の数が20,000から100,000まで増加させた。次に、各データセットから採点者論文×映画単語の行列からなるデータ行列が準備された。次に、ギブスサンプリングの試行回数が100にセットされ、クラスタの数を20がセットされて、両方の手法が実行された。これにより、ルートクラスタから始まってクラスタ数が20になるまでクラスタが繰り返し分割された。そして、本実施形態の手法HSCと従来手法SCBSを用いて、採点者単語の数を変える毎に、映画文章がクラスタに分類された。以上、本実施形態における計算サーバ400は、クラスタを分割する毎に、各属性が分割後の複数のクラスタに共通する属性か分割後のクラスタに固有の属性かを決定するので、属性の数が多くなっても処理にかかる時間が従来手法SCBSよりも増えない。換言すれば、本実施形態における計算サーバ400は、クラスタを分割する毎にクラスタ間で共通の属性が増えていくので、計算量を減らすことができる。これにより、本実施形態における計算サーバ400は、属性が所定に数より多くなるほどクラスタリングにかかる処理時間を従来手法SCBSに比べて短縮することができる。換言すれば、本実施形態における計算サーバ400は、属性の数が増加しても従来手法SCBSと比べて計算量が増加しないという有利な効果を有する。図20は、本実施形態の手法HSCと従来手法SCBSとのパープレキシティを比較したテーブルである。同図に置いて、Netflixデータと、研究論文ResearvhPaperのデータとを用いたときの、本実施形態の手法HSCのパープレキシティの値と従来手法SCBSのパープレキシティの値が示されている。ここで、パープレキシティperplexityは、タスクの複雑性を表す尺度であり、クラスタリングの予測が正しければ、パープレキシティの値が小さくなる。同図において、Netflixデータについても、研究論文ResearvhPaperのデータを用いてクラスタリングした場合においても、本実施形態の手法HSCの方が従来手法SCBSよりもパープレキシティが片側t検定で有意に小さくなっていることが示されている。ここで、片側t検定で従来手法SCBSよりもはP<0.05で異なる場合、‘’の印が付けられ、P<0.01で異なる場合に、‘’の印が付けられている。これにより、本実施形態の手法HSCは、従来手法SCBSよりもクラスタリングの予測が正しいという有利な効果を有する。これは、従来手法SCBSは、各属性は、各クラスタに固有か全クラスタに共通であるかの2者択一であるのに対し、本実施形態の手法HSCが様々なクラスタ間でどんな属性でも共通にできるという点で柔軟性があるからである。ここで、上記パープレキシティPPXは、100の異なるチェーンchainsからの100個のデータを用いて、以下の式6に従って、算出される。ここで、Wはテスト属性の数、Gはギブスサンプリング系列の異なり数、θklvgは、モデルによってサンプリング系列の識別子gの中のクラスkに付随するサブクラスlにおける属性vにクラスkが割り振られる確率である。また、gの上に~が示されている記号をgチルタと称し、θklvgチルタは、モデルによってサンプリング系列の識別子gの中のクラスkにおける属性vにクラスkが割り振られる確率である。以下、図20の実験結果が得られた実験の方法について説明する。この実験では生データをコーパスにある文章Netflixデータの場合は文章で、研究論文の場合は単語として、以下の方法でパープレキシティが計算された。ここで、生データにはデータと属性があり、そのデータと属性の組み合わせはNetflixデータの場合はそれぞれ映画と評論家で、研究論文の場合はそれぞれ論文と単語である。まず、研究論文の場合には、ある単語が1回でも出現した場合、その単語の出現数を1に変換した。一方、Netflixデータの場合には、ある映画のレーティングがが存在すれば、その映画のレーティングを1、そうでなければその映画のレーティングを0に変換した。次に、各生データの10をテストパートとしてランダムに分割し、残りのパートを学習データとした。生データ毎に、テストパートに対してパープレキシティを計算した。次に、各モデルのパラメータを推定するために学習パートが使用された。最後に、サンプルが採取されたときにクラスタを識別する情報が保存された。図21は、トップNの正確性が各手法間で比較されたテーブルである。同図において、本実施形態の手法HSCと、従来の推薦方法であるCosineとPearsonとItemとSCBSとの間で推薦の正確性が比較されている。比較対象は、Netflixデータを用いて算出された1番目の推薦アイテムの正確性と、5番目の推薦アイテムの正確性と、10番目の推薦アイテムの正確性である。ここで、CosineとPearsonは、それぞれコサイン類似度またはピアソンの相関係数によって計測されたユーザの類似度に基づいて推薦する方法である。また、Itemは、文献JKBSarwaGKarypisandJRiedlItembasedcollaborativefilteringrecommendationalgorithmsInWWWpages2852952001で提案されたピアソンの相関係数によって計測された内容類似度に基づいて推薦する方法である。同図において、10番目の推薦アイテムの正確性において、本実施形態の手法HSCの正確性の値が従来手法SCBSの正確性の値よりも片側t検定で有意に大きくなっているP<0.05で異なる場合、‘’の印が付けられている。このことから、本実施形態の手法HSCは、推薦の正確性においても従来手法SCBSよりも向上しているという有利な効果を持っている。以下、図21の実験結果が得られた実験の方法について説明する。クラスタ間を区別し得る属性を選択するという点からみたクラスタの質を計測するために、Netflixデータを用いて協調フィルタリングタスクのパフォーマンスを計算した。Netflixデータにおけるレーティングのバイアスに着目して、ユーザの平均レーティングよりも対象アイテムのレーティングが高い場合にはそのアイテムを購入したとみなして1とし、それ以外の場合にはそのアイテムを購入しなかったとみなして0とした。このデータにおいて、ユーザと購入アイテムがそれぞれデータと属性に対応する。K倍のクロスバリデーションcross-validationを介して、各手法の推薦の予測精度を評価するためにシミュレーションを実行した。K倍のクロスバリデーションcross-validationとは、オリジナルデータがランダムにK個のサブサンプリングに置かれることである。このシミュレーションにおいて、テストデータにおける各ユーザを、学習データから採取されたユーザログを用いて各推薦方法を適用したターゲットユーザとして扱った。この実験において、クラスの数は120に固定されたおり、各ユーザは本実施形態の手法HSCまたは従来手法SCBSによって、120のクラスのうちの1つのクラスに割り振られた。そして、Kが20という条件下で、10000回の繰り返しに対して100回のギブスサンプリングが行われた。そして、本実施形態の手法HSCと従来の4つの手法をデータセットに適用し、トップNNは1、5または10の推薦の正確性を比較した。本実施形態の手法HSCと従来手法SCBSに関しては、ユーザが属するクラスにおいて観測値yij=1となる確率に従ってトップNランクのアイテムをターゲットユーザに提示し、これらの推薦アイテムがテストデータに存在することを確認した。図22は、3つのパラメータが各手法間で比較されたテーブルである。同図において、図21と同じ条件下において各クラスタリング手法によって算出された推薦ユーザの被覆率UserCoverageと、推薦オブジェクトの被覆率ItemCoverageと、Gini係数とが示されている。ここで、それぞれの指標について詳細に説明する。まず、推薦ユーザの被覆率UserCoverageは、テスト期間にアイテムを購入したユーザ数に対する各推薦方法が推薦可能なユーザ数の割合である。推薦ユーザの被覆率が高いほど、多くのユーザにアイテムを推薦できるので、ユーザ全体にとって価値が高いシステムである。推薦オブジェクトの被覆率ItemCoverageは、テスト期間に購入されたアイテムのタイトル数に対する各推薦方法が推薦可能なアイテム数の割合である。推薦オブジェクトの被覆率は、システムが推薦できるシステム中のアイテムドメインの大きさを示す1つの指標である。従って、推薦オブジェクトの被覆率の低いシステムは、ごく限られた選択アイテムしか提示できないから、ユーザにとって価値が低いシステムである。Gini係数は、アイテムに対するユーザの購入者数の分布の統計的分散を示す指標である。Gini係数は、0から1の値をとり、低くなるほど分布が平等であり、高くなるほど分布が偏っていることを意味する。すなわち、値が0に近いほどアイテムごとの購入ユーザ数の格差が少なく、1に近いほど格差が大きいことを意味する。Gini係数が0の場合、分布が完全に平等、すなわち全てのオブジェクトが正確に同じ数のユーザによって購入されている。一方、Gini係数が1の場合、分布が完全に不平等、すなわち1つのアイテムがすべてのユーザによって購入され、他のアイテムは、どのユーザにも購入されてない。高いGini係数となる結果は、2、3個の特定のアイテムがたいていのユーザによって高くランク付けされている傾向にあることを意味し、特定のアイテムばかりが推薦される傾向が強く、ユーザ毎の推薦アイテムの違いは小さくなる。すなわち、アイテム推薦は、ユーザ毎に特化されていないことを意味する。一方、Gini係数が0に近いほど、アイテムの推薦がユーザ毎に特化し、アイテム推薦がうまく行われていることを意味する。図22において、本実施形態の手法HSCにおいて、推薦オブジェクトの被覆率ItemCoverageが最も高く、Gini係数が最も0に近い。この結果から、本実施形態の手法HSCは、他の手法よりも偏りが少なく広い範囲のアイテムをユーザ毎に特化して推薦できることが証明された。本実施形態の手法HSCは、ユーザ間による興味の違いを強調するために、より人気のある瑣末なアイテムに対してより低い重み付けをする。それにより、個人の好みに応じたアイテムに対してより大きな重みをつけることができ、その結果、アイテム推薦の正確性が向上している。また、図22において、本実施形態の手法HSCと従来手法SCBSとの間で、推薦ユーザの被覆率UserCoverageは同じである。一方、図22において、本実施形態の手法HSCの推薦オブジェクトの被覆率ItemCoverageの値が従来手法SCBSの推薦オブジェクトの被覆率の値よりも片側t検定で有意に大きくなっているP<0.01で異なる場合、‘’の印が付けられている。このことから、本実施形態の手法HSCは、従来手法SCBSよりも、より多くの選択アイテムを提示できることを意味し、ユーザにとって価値が高いクラスリング手法である。図22において、実施形態の手法HSCの推薦オブジェクトのGini係数の値が従来手法SCBSのGini係数の値よりも片側t検定で有意に小さくなっているP<0.01で異なる場合、‘’の印が付けられている。このことから、本実施形態の手法HSCは従来手法SCBSよりも、アイテムに対するユーザの購入者数の分布が平等であるので、全てのオブジェクトがより同数に近いユーザによって購入されていることを意味する。従って、本実施形態の手法HSCは従来手法SCBSよりも、ユーザ毎に特化したアイテムを推薦できるという有利な効果を有する。また、本実施形態の計算サーバ400の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、計算サーバ400に係る上述した種々の処理を行ってもよい。なお、ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含むものであってもよい。また、コンピュータシステムは、WWWシステムを利用している場合であれば、ホームページ提供環境あるいは表示環境も含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ例えばDRAMDynamicRandomAccessMemoryのように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク通信網や電話回線等の通信回線通信線のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル差分プログラムであっても良い。以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。"