説明

クラスタリング装置、クラスタリング方法およびクラスタリングプログラム

【課題】各クラスタの属性の判定に係る制約を無くし、かつクラスタ間の関係を分かりやすくする。
【解決手段】各データが属するクラスタを階層的に分割する分割部436と、分割部436によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択部440と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラスタリング装置、クラスタリング方法およびクラスタリングプログラムに関する。
【背景技術】
【0002】
データベース、データマイニング、情報の検索、市場解析を含む大量データの処理にとって、クラスタリング分析は重要な方法の1つである。クラスタリング分析の目的は、与えられたデータのうち、類似するデータ群をひとまとまりのクラスタとして複数のクラスタに分類することである。例えば、非特許文献1には、統計モデルをベースにしたクラスタリング手法が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】P. Hoff. Model−based subspace clustering.Bayesian Analysis, (1):321−344, 2006
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1のクラスタリング手法では、各クラスタの属性を「クラスタ固有」あるいは「全クラスタ共通」のいずれかしか判定できないという制約があるという問題がある。具体的には、例えば、クラスタ数が10のとき、そのうち2つのクラスタに共通の属性があっても、その属性をクラスタに固有あるいは全クラスタに共通のいずれかしか判定できなかった。
【0005】
また、非特許文献1のクラスタリング手法では、得られるクラスタの構造がフラットな構造であるため、クラスタ間の関係が分からないという問題があった。そのため、複数のクラスタに共通の属性を、クラスタを特徴づける属性としてクラスタに割り振ることができなかった。
【0006】
そこで本発明は、上記問題に鑑みてなされたものであり、各クラスタの属性の判定に係る制約を無くし、かつクラスタ間の関係を分かりやすくすることを可能とする技術を提供することを課題とする。
【課題を解決するための手段】
【0007】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、各データが属するクラスタを階層的に分割する分割部と、前記分割部によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択部と、を備えることを特徴とするクラスタリング装置である。
【0008】
また、本発明の一態様は、上記のクラスタリング装置において、前記各データに対し、ランダムにサブクラスを割り振るサブクラス割振部を更に備え、前記属性選択部は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、前記属性の値がサブクラス間で違いがない場合は、該属性の値を該サブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とすることを特徴とする。
【0009】
また、本発明の一態様は、上記のクラスタリング装置において、前記属性選択部は、属性毎に該属性がサブクラスに固有である確率を算出し、該算出した確率に基づいて、該属性が前記サブクラス間で共通の属性か前記サブクラスに固有の属性かを判定することを特徴とする。
【0010】
また、本発明の一態様は、上記のクラスタリング装置において、前記属性選択部は、前記データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出し、該算出した確率に基づいて前記データ毎に該データに割り振られるサブクラスを推定することを特徴とする。
【0011】
また、本発明の一態様は、上記のクラスタリング装置において、前記サブクラスを識別するサブクラス識別情報の確率分布が二項分布で表され、前記属性がサブクラスに固有であるか否かを示す固有フラグの確率分布がベルヌーイ分布で表されることを特徴とする。
【0012】
また、本発明の一態様は、各データが属するクラスタを階層的に分割する分割手順と、前記分割手順によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択手順と、を有するクラスタリングクラスタ分類方法である。
【0013】
また、本発明の一態様は、コンピュータに、各データが属するクラスタを階層的に分割する分割ステップと、前記分割ステップによりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択ステップと、を実行するためのクラスタリングプログラムである。
【発明の効果】
【0014】
本発明によれば、各クラスタの属性の判定に係る制約を無くし、かつクラスタ間の関係を分かりやすくすることができる。
【図面の簡単な説明】
【0015】
【図1】本実施形態におけるクラスタリングシステムの概略ブロック図である。
【図2】本実施形態におけるユーザ端末のハードウェアの構成を示す概略ブロック図である。
【図3】本実施形態におけるサービスサーバのハードウェアの構成を示す概略ブロック図である。
【図4】本実施形態におけるファイルサーバのハードウェアの構成を示す概略ブロック図である。
【図5】本実施形態における計算サーバのハードウェアの構成を示す概略ブロック図である。
【図6】本実施形態における計算サーバの制御部の論理的な構成を示す概略ブロック図である。
【図7】ファイルFに含まれるデータが格納されたテーブルT1の一例と、属性割付部による処理後のデータが格納されたテーブルT2の一例とが示された図である。
【図8】サブクラス割振部によりデータ毎にサブクラスが割り振られた1例を示すテーブルT3である。
【図9】図8のテーブルT3の観測値において、サブクラスに固有であるか否かを示す固有フラグrの値の一例が示されたテーブルT4である。
【図10】本実施形態における観測値yを推定する処理が示されたグラフィカルモデルである。
【図11】固有フラグrの値によりパラメタθまたはパラメタθ(チルタ)のいずれかが選択されることについて説明するための図である。
【図12】変数推定部の論理的な構成を示す概略ブロック図である。
【図13】本実施形態におけるデータベースサーバのハードウェアの構成を示す概略ブロック図である。
【図14】クラスタリング結果記憶部に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT5である。
【図15】クラスタリング結果記憶部に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT6である。
【図16】クラスタの階層構造の一例が示された図である。
【図17】映画のタイトルがクラスタリングされた結果の一例が示された図である。
【図18】本実施形態における計算サーバの処理の流れを示すフローチャートである。
【図19】本実施形態におけるクラスタリング処理に係る時間と、従来手法のクラスタリング処理に係る時間とを比較した図である。
【図20】本実施形態の手法HSCと従来手法SCBSとのパープレキシティを比較したテーブルである。
【図21】トップNの正確性が各手法間で比較されたテーブルである。
【図22】3つのパラメータが各手法間で比較されたテーブルである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態について、図面を参照して詳細に説明する。本実施形態では、分類対象となるデータを分類するために各データに割り振られる識別子をクラス、同一のクラスが割り振られたデータの集合である分類結果をクラスタ、クラスタに含まれるデータを更に分類するために各データに割り振られる識別子をサブクラス、データの分類をクラスタリングと称し、以下説明する。
図1は、本実施形態におけるクラスタリングシステム1の概略ブロック図である。クラスタリングシステム1は、ユーザ端末100と、サービスサーバ200と、ファイルサーバ300と、計算サーバ(クラスタリング装置)400と、データベースサーバ500とを有する。
【0017】
ユーザ端末100は、ユーザによって入力されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とをサービスサーバ200に送信する。また、ユーザ端末100は、サービスサーバ200から供給されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを自装置が備える後述する表示部104に表示させる。
【0018】
サービスサーバ200は、ユーザ端末100から送信されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とを受信し、受信したクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とをファイルサーバ300に送信する。
また、サービスサーバ200は、データベースサーバ500から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rをユーザ端末100に送信する。
【0019】
ファイルサーバ300は、サービスサーバ200から送信されたクラスタリング結果を要求する情報Rqと、クラスタ数Nを示す情報とを受信する。ファイルサーバ300には、自装置が備える後述するデータファイル記憶部303にデータが分析対象毎にファイルで予め記憶されている。ここで、データは、例えば、ログ(例えば、映画毎に、各ユーザがその映画を見たか否かといった情報)、テキストファイル、画像ファイル、音声ファイルまたは動画ファイルである。
【0020】
ファイルサーバ300は、クラスタリング結果を要求する情報Rqを受信した場合、データファイル記憶部303からファイルFを読み出し、ファイルFとクラスタ数Nを示す情報とファイルを計算サーバ400に送信する。
【0021】
計算サーバ400は、ファイルサーバ300から送信されたファイルFとクラスタ数Nを示す情報とを受信し、受信したファイルFに基づいて、クラスタ数がNに到達するまで入力データをクラスタに分割する。計算サーバ400は、分割により得られたクラスタリング結果を示す情報Rをデータベースサーバ500に送信する。
【0022】
データベースサーバ500は、計算サーバ400から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを後述するクラスタリング結果記憶部503に記憶させる。また、データベースサーバ500は、受信したクラスタリング結果を示す情報Rをサービスサーバ200に送信する。
【0023】
図2は、本実施形態におけるユーザ端末100のハードウェアの構成を示す概略ブロック図である。ユーザ端末100は、記憶部101と、制御部102と、通信部103と、表示部104と、入力部105を備える。
記憶部101には、制御部103が実行するための各種プログラムが記憶されている。
入力部102は、自端末のユーザから入力されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報を受け付ける。入力部102は、例えば、キーボードとマウスを備える。入力部102は、受け付けたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報を制御部103に出力する。
【0024】
制御部103は、プログラムを記憶部101から読み出して実行することにより、例えば、クラスタリング結果を要求する情報Rqの入力を受け付けるボタンとクラスタ数Nを示す情報を入力するための欄を表示部105に表示させる。これにより、ユーザ端末100のユーザは、クラスタ数Nをキーボードから入力し、当該ボタンをマウスを用いてクリックすることにより、クラスタ結果を示す情報Rを要求することができる。
【0025】
制御部103は、入力部102から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを通信部104に出力し、クラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを通信部104からサービスサーバ200に送信させる。また、制御部103は、通信部104から供給されたクラスタリング結果を示す情報Rを表示部105に表示させる。
【0026】
通信部104は、有線または無線方式で、サービスサーバ200と通信可能に構成されている。通信部104は、制御部103による制御に従って、制御部103から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをサービスサーバ200に送信する。
また、通信部104は、サービスサーバ200から送信されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rを制御部103に出力する。
【0027】
表示部105は、例えば液晶表示パネルを備える。表示部105は、制御部103から供給されたクラスタリング結果を示す情報Rを表示する。
【0028】
図3は、本実施形態におけるサービスサーバ200のハードウェアの構成を示す概略ブロック図である。サービスサーバ200は、通信部201と、呼出部202とを備える。
通信部201は、有線または無線方式で、ユーザ端末100とファイルサーバ300と通信可能に構成されている。通信部201は、ユーザ端末100から供給されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを受信する。
【0029】
通信部201は、制御部202の制御により、受信したクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをファイルサーバ300に送信する。
また、通信部201は、データベースサーバ500から供給されたクラスタリング結果を示す情報Rを受信し、受信したクラスタリング結果を示す情報Rをユーザ端末100に送信する。
【0030】
制御部202は、通信部201を制御して、クラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とをファイルサーバ300に送信させる。
制御部202は、通信部201を制御して、クラスタリング結果を示す情報Rをユーザ端末100に送信させる。
【0031】
図4は、本実施形態におけるファイルサーバ300のハードウェアの構成を示す概略ブロック図である。ファイルサーバ300は、通信部301と、制御部302と、データファイル記憶部303とを備える。
データファイル記憶部303は、自装置の外部から供給されたデータ(例えば、ログ、テキストファイル、画像ファイル)が蓄積される。これにより、データファイル記憶部303には、データが分析対象毎にファイルで予め記憶されている。
【0032】
通信部301は、有線または無線方式で、サービスサーバ200と計算サーバ400と通信可能に構成されている。サービスサーバ200から送信されたクラスタリング結果を要求する情報Rqとクラスタ数Nを示す情報とを受信する。通信部301は、制御部302の制御により、受信したクラスタリング結果を要求する情報Rqを制御部302に出力する。
また、通信部301は、制御部302の制御に従って、制御部302によりデータ記憶部303から読み出されたファイルFとクラスタ数Nを示す情報とを計算サーバ400に送信する。
【0033】
制御部302は、通信部301から供給されたクラスタリング結果を要求する情報Rqを受け取った場合、データ記憶部303からクラスタリング対象のデータを含むファイルFを読み出す。そして、制御部302は、読み出したファイルFを、クラスタ数Nを示す情報と共に通信部301から計算サーバ400に送信させる。
【0034】
図5は、本実施形態における計算サーバ400のハードウェアの構成を示す概略ブロック図である。計算サーバ400は、通信部401と、制御部402とを備える。
通信部401は、ファイルサーバ300から送信されたファイルFとクラスタ数Nを示す情報とを受信し、受信したファイルFとクラスタ数Nを示す情報を制御部402に出力する。
また、通信部401は、制御部402の制御に従って、制御部402から供給されたクラスタリング結果を示す情報Rをデータサーバ500に送信する。
【0035】
制御部402は、通信部401から供給されたファイルFに含まれるデータに基づいて、クラスタ数がクラスタ数Nに到達するまで、ファイルFに含まれるデータが属するクラスタを階層的に分割する。制御部402は、分割により得られたクラスタリング結果を示す情報Rを通信部401に出力し、クラスタリング結果を示す情報Rを通信部401からデータサーバ500に送信させる。
【0036】
図6は、本実施形態における計算サーバ400の制御部402の論理的な構成を示す概略ブロック図である。制御部402は、識別情報割振部420と、クラスタリング処理部430とを備える。また、クラスタリング処理部430は、サブクラス割振部431と、属性選択部440と、変数推定部433と、エントロピー算出部434と、クラス抽出部435と、分割部436と、クラスタ数比較部437とを備える。また、属性選択部440は、サブクラス間差異判定部432と、変数推定部433とを備える。
【0037】
識別情報割振部420は、通信部401から供給されたファイルFに含まれるデータ毎に固有のデータ識別情報を割り付ける。また、識別情報割振部420は、ファイルFに含まれる属性に固有の属性識別情報を割り付ける。
具体的な識別情報割振部420の処理の一例を、図7を用いて説明する。図7は、ファイルFに含まれるデータの構造を表現したテーブルT1の一例と、識別情報割振部420による処理後のデータの構造を表現したテーブルT2の一例とが示された図である。
【0038】
テーブルT1において、データ(例えば、映画のタイトル)と属性(例えば、ユーザ名)とに関連付けられて、観測値(0または1の値で、例えば、ユーザが映画毎にその映画を鑑賞したか否かの情報で、1が鑑賞した場合で0が鑑賞していない場合を示す)が示されている。
テーブルT1において、データXXのように、ファイルFに含まれるデータが示されている。また、テーブルT1において、属性YCのように、ファイルFに含まれる属性が示されている。
【0039】
テーブルT2において、各観測値(0または1の値)が、データを識別するデータ識別情報の一例であるデータi(iはデータのインデックスで、iは1からlまでの整数)と、属性を識別する属性識別情報の一例である属性j(jは属性のインデックスで、jは1からJまでの整数)とに関連付けられている。
【0040】
識別情報割振部420は、例えば、図7のテーブルT2に示すように、データ毎にデータ識別情報を割り振り、属性毎に属性識別情報を割り振る。これにより、識別情報割振部420は、各観測値yijを、データ識別情報であるデータiと属性識別情報である属性jとに関連付ける。識別情報割振部420は、各観測値yijを示す情報を、データiを示す情報と属性jを示す情報と共にサブクラス割振部431に出力する。
【0041】
図6に戻って、サブクラス割振部431は、識別情報割振部420から供給されたデータiに対し、仮にランダムにサブクラスを割り振る。サブクラス割振部431は、データi毎に関連付けられたサブクラスを示す情報を、各観測値yijを示す情報とデータiを示す情報と属性jを示す情報と共にサブクラス間差異判定部432に出力する。
サブクラス割振部431は、クラスタ数比較部437からクラスタ数が指定のクラスタ数Nに到達していない旨の情報を受け取った場合、または変数推定部433から計算が規定回数に到達していない旨の情報を受け取った場合、上記処理を繰り返す。
【0042】
上記サブクラス割振部431の処理の図8の例を用いて説明する。図8は、サブクラス割振部431によりデータ毎にサブクラスが割り振られた1例を示すテーブルT3である。同図のテーブルT3の領域R81に示されるように、サブクラス0またはサブクラス1が、データ1〜データIまでランダムに割り振られている。例えば、データ1に対しては、サブクラス0が割り振られ、データIに対しては、サブクラス1が割り振られている。
【0043】
図6に戻って、サブクラス間差異判定部432は、属性j毎にサブクラス間で観測値に差異が有るか否か判定する。そして、サブクラス間差異判定部432は、属性j毎に観測値yijがサブクラス間で違いがない場合には、その属性を仮に共通属性とし、サブクラスに固有であるか否かを示す固有フラグrを0にする。
一方、サブクラス間差異判定部432は、属性j毎に観測値yijがサブクラス間で違いがない場合には、その属性を仮にサブクラス固有の属性とし、サブクラスに固有であることを示す固有フラグrを1にする。これにより、サブクラス間差異判定部432は、属性j毎にサブクラスに固有であるか否かを示す固有フラグrの値を定める。
【0044】
図9を用いて、サブクラス間差異判定部432の上記処理について説明する。図9は、図8のテーブルT3の観測値において、サブクラスに固有であるか否かを示す固有フラグrの値の一例が示されたテーブルT4である。同図のテーブルT4において、図8のテーブルT3において、属性1、2および4は、サブクラス0(データ1)の場合に観測値が0で、サブクラス1(データI)の場合に観測値が1であり、サブクラス間で観測値が異なるので、固有フラグrの値が1である。
【0045】
一方、属性3およびJは、サブクラス0(データ1)の場合に観測値が1で、サブクラス1(データI)の場合に観測値が1であり、サブクラス間で観測値が同じであるので、固有フラグrの値が0である。
このように、サブクラス間差異判定部432は、クラスkの属性jがサブクラス間で共通であるデータの数であるサブクラス共通数nj0(〜)及びnj1(〜)を算出する。ここで、nj0(〜)は、nj0の上に記号〜が付された記号である。また、nj1(〜)は、nj1の上に記号〜が付された記号である。また、サブクラス間差異判定部432は、クラスkの属性jがサブクラスに固有であるデータの数であるサブクラス固有数nk0j1k0j0k1j0及びnk1j1を算出する。
サブクラス間差異判定部432は、算出したサブクラス共通数nj0(〜)及びnj1(〜)を示す情報と、サブクラス固有数nk0j1k0j0k1j0及びnk1j1を示す情報とを変数推定部433に出力する。
【0046】
変数推定部433は、サブクラス間差異判定部432から入力されたサブクラス共通数nj0(〜)及びnj1(〜)を示す情報と、サブクラス固有数nk0j1k0j0k1j0及びnk1j1を示す情報とに基づいて、ギブスサンプリングを用いて、クラスkおよび属性j毎に固有フラグrkjの値(0または1)を推定する。ここで、kはクラスを識別する識別情報である。また、変数推定部433は、ギブスサンプリングを用いて、クラスkおよびデータi毎にサブクラスを識別するサブクラス識別情報zkiの値(0または1)を推定する。これにより、クラスkに含まれるデータi毎にデータiが属するサブクラスを推定することができる。
【0047】
変数推定部433は、属性j毎の固有フラグrの計算の回数が規定回数(ギブスサンプリングの回数)に達していない場合、サブクラス割振部431に計算が規定回数に到達していない旨の情報を出力する。
一方、属性j毎の固有フラグrの計算の回数が規定回数(ギブスサンプリングの回数)に達した場合、変数推定部433は、推定した固有フラグrkjの値を示す情報と、サブクラスを指定するサブクラス識別情報zkiの値を示す情報とをエントロピー算出部434に出力する。
【0048】
エントロピー算出部434は、分割し得るクラスタである分割対象クラスタ毎にそのクラスタを分割した際の条件付きエントロピーを算出する。ここで、クラスタリングする前は全てのデータiが1つのルートクラスタに入っているとみなせる。ゆえに、分割部436は、当該ルートクラスタを分割する際には、どちらのクラスタが分割されるか決定する必要がないので、エントロピー算出部434は、条件付きエントロピーを算出する必要はない。
【0049】
一方、その全てのデータiが、2つ以上のクラスタに分割された後には、現在存在するクラスタのうちどのクラスタを分割するか決定するために、エントロピー算出部434は、クラスタが分割された場合の条件付きエントロピーが未だ算出されていないクラスタに対して、クラスタが分割された場合の条件付きエントロピーを算出する。これにより、既に算出されているクラスタが分割された場合の条件付きエントロピーを再度算出する必要がないので、計算コストを削減することができる。
【0050】
エントロピー算出部434は、算出した条件付きエントロピーを示す情報を、分割対象クラスタを識別するクラスタ識別情報に関連づけてクラスタ抽出部435に出力する。
【0051】
クラスタ抽出部435は、未だ分割されていないクラスタに対して、そのクラスタが分割された場合の条件付きエントロピーを示す情報をクラスタを識別するクラスタ識別情報に関連づけて保持している。
クラスタ抽出部435は、エントロピー算出部434から供給された条件付きエントロピーと、保持している条件付きエントロピーのうち、エントロピーが最小となる分割対象クラスタを抽出する。クラスタ抽出部435は、抽出した分割対象クラスタを示す情報を分割部436に供給する。
【0052】
また、クラスタ抽出部435は、エントロピーが最小となる分割対象クラスタのクラスタ識別情報に関連付けられた条件付きエントロピーを示す情報を消去し、分割されなかったクラスタを識別するクラスタ識別情報に関連付けられた条件付きエントロピーを示す情報を保持する。
【0053】
分割部436は、クラスタ抽出部435から供給された分割対象クラスタを分割する際に、変数推定部433により推定されたデータiが属するサブクラスを示す情報に基づいて、分割対象クラスタを2つのクラスタに分割する。
【0054】
クラスタ数比較部437は、識別情報割振部420から供給されたクラスタ数Nと、現在のクラスタ数とを比較し、現在のクラスタ数が現在のクラスタ数Nに到達していたら、クラスタ結果を示す情報Rを通信部401に出力する。
一方、現在のクラスタ数が現在のクラスタ数Nに到達していない場合、クラスタ数比較部437は、クラスタ数が指定のクラスタ数Nに到達していない旨の情報をサブクラス割振部431に出力する。
【0055】
続いて、変数推定部433の処理の詳細について図10、11および12を用いて説明する。図10は、本実施形態における観測値yを推定する処理が示されたグラフィカルモデルである。同図において、各変数または定数の関係が示されている。
同図において、α、β、γはハイパーパラメータで、予め定められた定数である。kはクラスを識別する識別情報である。
【0056】
同図において、パラメタφは、ハイパーパラメータαを構成する変数α0とα1とから計算されることが示されている。パラメタφは、サブクラスを識別するサブクラス識別情報zが1を出力する確率であり、0〜1の連続値を取る。ここで、パラメタφの確率分布は、クラスk毎にハイパーパラメータαを構成する定数α0と定数α1とを引数とするディリクレ(Dirichlet)分布で表される。
【0057】
同図において、サブクラス識別情報zは、クラスkとパラメタφによって算出される。本実施形態では、クラスkは2つのサブクラスに分割されるので、サブクラス識別情報zは、0または1の値を取る。ここで、サブクラス識別情報zの確率分布は、データi毎およびクラスk毎に、パラメタφを引数とする二項(Binomial)分布で表される。
【0058】
パラメタλkjは、固有フラグrが1を出力する確率であり、0〜1の連続値を取る。パラメタλkjは、クラスkとハイパーパラメータβを構成する定数β0と定数β1とから算出される。具体的には、パラメタλkjの確率分布は、クラスk毎およびデータj毎に、ハイパーパラメータβを構成する定数β0と定数β1とを引数とするベータ(Βeta)分布で表される。
【0059】
固有フラグrは、使用する変数を指定するフラグであり、0また1の値を取り得る。観測値yを推定する際に、固有フラグrの値が1のときにはサブクラスzに固有のパラメタθが使用され、固有フラグrの値が0のときにサブクラスzに共通のパラメタθ(チルタ)が使用される。ここで、図10におけるθの上に〜が示されている記号をθ(チルタ)と称し、以後θ(チルタ)を用いて説明する。
【0060】
固有フラグrは、クラスkとパラメタλkjとから算出される。具体的には、固有フラグrkjの確率分布は、クラスk毎およびデータj毎に、パラメタλkjを引数とするベルヌーイ(Beernoulli)分布で表される。
【0061】
パラメタθkljは、固有フラグrが1のとき、すなわちパラメタθkljがサブクラスzに固有のときに用いられる変数である。一方、パラメタθklj(チルタ)は、固有フラグrが0のとき、すなわちパラメタθkljがサブクラスzに共通のときに用いられる変数である。
パラメタθkljは、クラスkと、サブクラスlと、ハイパーパラメータγを構成する変数γ10および変数γ11とから算出される。具体的には、パラメタθkljの確率分布は、ハイパーパラメータγを構成する変数γ10および変数γ10を引数とするベータ分布で表される。
【0062】
また、パラメタθklj(チルタ)は、クラスkと、サブクラスlと、ハイパーパラメータγを構成する変数γ00および変数γ01とから算出される。具体的には、パラメタθklj(チルタ)の確率分布は、ハイパーパラメータγを構成する変数γ00および変数γ01を引数とするベータ分布で表される。
【0063】
観測値yijは、サブクラスz、固有フラグr、パラメタθzj、パラメタθzj(チルタ)によって推定される値である。具体的には、観測値yijの確率分布は、データi毎および属性j毎に、パラメタθzjおよびパラメタθzj(チルタ)を引数とするベルヌーイ(Beernoulli)分布で表される。
【0064】
図10において、領域R101内の変数は、データ数Iの回数だけ繰り返し算出される。領域R102内の変数は、クラスタ毎に分割しうる分割数L(本実施形態では、2)と属性の数Jを乗じた値LJ(本実施形態では、2J)の回数だけ繰り返し算出される
【0065】
図11は、固有フラグrの値によりパラメタθまたはパラメタθ(チルタ)のいずれかが選択されることについて説明するための図である。同図において、棒グラフの中の色が黒である領域が観測値yijが1が出現する確率であり、棒グラフの中の色が白である領域が観測値yijが0が出現する確率である。
【0066】
同図において固有フラグ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が出現する確率の比が、逆転していることが示されている。
【0067】
一方、固有フラグrが0の場合、サブクラスlにおいて確率θljが確率1−θljより大きく、サブクラスl´における確率θl´jが確率1−θl´jより大きいことが示されている。すなわち、サブクラスlとサブクラスl´との間で、観測値yijとして1が出現する確率は0が出現する確率よりも共通して大きいことが示されている。
【0068】
そこで、固有フラグrが0の場合には、サブクラスに共通のパラメタθlj(チルタ)が使用されることが示されている。このようにして、属性選択部440は、サブクラス間の属性を比較することにより固有フラグrを選択する。これにより、クラスタリング処理部430は、選択された固有フラグrに基づいて、サブクラスに固有のパラメタθljとサブクラスに共通のパラメタθlj(チルタ)のいずれかを使用するかを選択し、観測値yijを推定することができる。そして、クラスタリング処理部430は、推定された観測値yijが実際の観測値yijと近くなるように、変数rと変数zを算出する。
【0069】
図12は、変数推定部433の論理的な構成を示す概略ブロック図である。変数推定部433は、クラス帰属判定部433_1と、属性振分部433_5とを備える。
クラス帰属判定部433_1は、データi毎に当該データiが帰属するサブクラスzを推定する。ここで、クラス帰属判定部433_1は、変数z確率算出部433_2と変数z算出部433_3とを備える。
【0070】
図10に示されるように、各変数に確率分布を導入したことで、クラスkとハイパーパラメータα、βおよびγが与えられたという条件付きのデータ全体の同時確率P(y,z,r,φ,λ,θ,θ(チルタ)|k,α,β,γ)は次の式(1)で表される。
【0071】
【数1】

【0072】
この同時確率を用いることによって、変数推定部433は、潜在するサブクラスにデータを割り振ることと、各サブクラスに固有の属性の検出とを同時に行うことができる。
ここで、式(1)がφ,λ,θで積分されると、以下の式(2)で表される。
【0073】
【数2】

【0074】
ここで、Γはガンマ関数である。また、nk0はクラスkのサブクラス0のデータの数であり、nk1はクラスkのサブクラス1のデータの数であり、nはクラスkにおいて属性jを有するデータ数、nは属性0を有するクラスkのデータ数である。また、nk0j1(nk0j0)は、クラスkにおけるサブクラス0のデータであって、サブクラスに固有(サブクラス間で共通)のデータの数である。また、nk1j1(nk1j0)は、クラスkにおけるサブクラス1のデータであって、サブクラスに固有(サブクラス間で共通)のデータの数である。nj1(nj0)は、クラスkにおいて、サブクラスに固有(サブクラス間で共通)のデータ数である。
【0075】
各変数が確率分布で表されるので、式(1)で現れるパラメタλ、φ、θおよびθ(チルタ)は、式(1)が積分されることによって解析的にその値が消え、式(2)ではパラメタλ、φ、θおよびθ(チルタ)が現れない。
【0076】
変数z確率算出部433_2は、サブクラス間差異判定部432から供給された情報が示すサブクラス共通数nj0とサブクラス固有数nj1とを用いて、データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出する。具体的には、例えば、変数z確率算出部433_2は、属性毎の固有フラグrの初期値を示す情報を用いて、サブクラスzがlである条件付き確率P(z=l)を以下の式(3)に従って算出する。
【0077】
【数3】

【0078】
ここで、z\iは、データi以外のデータでサブクラスに割り振られた数である。また、nk\iは、データi以外でクラスkを有するデータの数であり、nkl\iは、データi以外クラスkの中のサブクラスlに割り振られたデータの数である。また、nk\ij0(nk\ij0)は、データi以外でクラスkを有するデータであって、観測値yij=0(yij=1)に割り振られたデータの数である。また、nkl\ij0(nkl\ij0)は、データi以外でクラスkの中のサブクラスlに割り振られたデータであって、観測値yij=0(yij=1)に割り振られたデータの数である。
【0079】
各変数が確率分布で表されるので、式(3)において、パラメタλ、φ、θおよびθ(チルタ)が現れない。ゆえに、変数推定部433は、パラメタλ、φ、θおよびθ(チルタ)を計算する必要がないので、計算量を減らすことができる。
【0080】
変数z確率算出部433_2は、データi毎に算出した条件付き確率P(z=l)を示す情報を変数z算出部433_3に出力する。
変数z算出部433_3は、乱数を算出する。変数z算出部433_3は、変数z確率算出部433_2から供給された条件付き確率P(z=l)が、算出した乱数よりも大きい場合には、変数zを1とする。一方、変数z算出部433_3は、条件付き確率P(z=l)が、算出した乱数以下の場合、変数zを0とする。
【0081】
変数z算出部433_3は、この処理をデータi毎に算出された条件付き確率P(z=l)を示す情報全てについて行い、現在のステップにおけるデータi毎にサブクラス識別情報z(0または1の値)を算出する。
【0082】
変数z算出部433_3は、算出したータi毎のサブクラス識別情報zの変化量を示す情報をエントロピー算出部434に出力する。また、変数z算出部433_3は、変化量を算出した旨の情報を属性振分部433_5の後述する変数r確率算出部433_6に出力する。
【0083】
続いて、属性振分部433_5について説明する。属性振分部433_5は、属性j毎に固有のフラグrの値を推定する。換言すれば、属性振分部433_5は、属性j毎に当該属性jがサブクラス間で固有の属性かサブクラス間で共通の属性かを推定する。
属性振分部433_5は、変数r確率算出部433_6と、変数r算出部433_7とを備える。
【0084】
変数r確率算出部433_6は、変数z算出部433_3から変化量を算出した旨の情を受け取ると、サブクラス間差異判定部432から供給された情報が示すサブクラス共通数nj0とサブクラス固有数nj1とに基づいて、属性j毎に当該属性がサブクラスに固有である確率である固有フラグrの条件付き確率P(r)を以下の式(4)に従って算出する。
【0085】
【数4】

【0086】
ここで、r\jは、j以外の固定フラグrであり、y\jは、j以外の観測値yである。各変数が確率分布で表されるので、式(4)においても、パラメタλ、φ、θおよびθ(チルタ)が現れない。ゆえに、変数推定部433は、パラメタλ、φ、θおよびθ(チルタ)を計算する必要がないので、計算量を減らすことができる。
【0087】
変数r確率算出部433_6は、算出した属性j毎の条件付き確率P(r)を示す情報を変数r算出部433_7に出力する。
変数r算出部433_7は、前のステップで算出された固有フラグr=0の条件付き確率P(r)よりも、現在のステップで算出された固有フラグr=1の条件付き確率P(r)が大きい場合、固有フラグrを0から1に変更する。
一方、変数r算出部433_7は、前のステップで算出された固有フラグr=1の条件付き確率P(r)よりも、現在のステップで算出された固有フラグr=0の条件付き確率P(r)が大きい場合、固有フラグrを1から0に変更する。
【0088】
上記2つに当てはまらない場合、変数r算出部433_7は、乱数を算出する。変数r算出部433_7は、前のステップで算出された固有フラグrの条件付き確率P(r)を分母で、現在のステップで算出された固有フラグrの条件付き確率P(r)分子とする固有フラグrの条件付き確率P(r)の比率を算出する。
変数r算出部433_7は、算出した比率が、算出した乱数よりも大きい場合には、固有フラグrを1とする。一方、変数r算出部433_7は、算出した比率が、算出した乱数以下の場合、固有フラグrを0とする。
【0089】
変数r算出部433_7は、クラスタ数が1の場合、この処理を属性j毎に算出された条件付き確率P(r)を示す情報全てについて行って、属性j毎に固有フラグrを決定する。
変数r算出部433_7は、クラスタ数が2以上の場合、その前までの処理で固有フラグrが0となった属性以外の属性jについて、属性j毎に固有フラグrを決定する。
【0090】
これにより、クラスタ数が2以上の場合、変数r算出部433_7は、その前までの処理で固有フラグrが0となった属性以外についてのみ固有フラグrを決定すればよいので、全ての属性で固有フラグrを決定するのに比べて計算量を減らすことができる。
また、変数r算出部433_7が式(4)を用いて条件付き確率P(r)を算出する際に、式(4)におけるガンマ関数の計算量が多いので、特に計算量を減らすことに貢献することができる。
【0091】
続いて、変数r算出部433_7は、属性j毎の固有フラグrの計算の回数が規定回数(ギブスサンプリングの回数)に達した場合、現在の属性j毎の固有フラグrを示す情報をエントロピー算出部434に出力する。これにより、属性j毎に当該属性jがサブクラスに固有であるかサブクラス間で共通であるかを決定することができる。
【0092】
一方、変数r算出部433_7は、属性j毎の固有フラグrの計算の回数が規定回数(ギブスサンプリングの回数)に達していない場合、サブクラス割振部431に計算が規定回数に到達していない旨の情報を出力する。これにより、変数r算出部433_7は、属性j毎の固有フラグrの計算の回数が規定回数(ギブスサンプリングの回数)に達するまで、サブクラス割振部431はサブクラスを割り振り直させることができる。
【0093】
なお、変数r算出部433_7は、変数rの変動量の総和が所定の閾値より小さくなるまで、サブクラス割振部431はサブクラスを割り振り直させてもよい。
具体的には、例えば、変数r算出部433_7は、直前のステップで算出された属性j毎に算出された条件付き確率P(r)を示す情報を保持している。変数r算出部433_7は、直前のステップの属性jの条件付き確率P(r)に対する現在算出した属性jの条件付き確率P(r)との変化量を算出する。
例えば、変数r算出部433_7は、直前のステップの属性jの条件付き確率P(r)が0で、現在算出した属性jの条件付き確率P(r)が1であるならば、変化量を1と算出する。
【0094】
変数r算出部433_7は、上記処理を全ての属性jに対して行うことにより、属性j毎の固有フラグrの変化量を算出する。属性j毎の固有フラグrの変化量の絶対値の総和を算出し、算出した総和が所定の閾値より小さくなるまでサブクラス割振部431はサブクラスを割り振り直させるようにしてもよい。
【0095】
以上の処理についてまとめると、属性選択部440は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、属性の値がサブクラス間で違いがない場合は、その属性の値をそのサブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とする。
また、属性選択部440は、属性毎にその属性がサブクラス間で固有である確率を算出し、その算出した確率に基づいて、その属性がサブクラス間で共通の属性かサブクラスに固有の属性かを判定する。
また、属性選択部440は、データ毎にそのデータに割り振られるサブクラスが所定のサブクラスである確率を算出し、算出した確率に基づいてデータ毎にそのデータに割り振られるサブクラスを推定する。
【0096】
続いて、エントロピー算出部434は、変数r算出部433_7から供給された現在のデータi毎のサブクラス識別情報zに基づいて、条件付きエントロピーを算出する。具体的には、エントロピー算出部434は、以下の式(5)に従って、条件付きエントロピーH(X|Y)を算出する。
【0097】
【数5】

【0098】
ここで、H(X|Y)は、サブクラスの集合Yが与えられたときのデータの集合Xのエントロピーである。また、lはサブクラスのインデックスであり、Lはサブクラスの数であり、クラスタを2つのサブクラスに分割するので本実施形態ではLは2である。また、Iはデータiの数である。P(X=x|Y=y)は、データがxでサブクラスがyの条件付確率を表している。
【0099】
エントロピー算出部434は、データにサブクラスを割り振る毎に、上記式(4)に従って、条件付きエントロピーを算出する。エントロピー算出部434は、算出した、条件付きエントロピーを示す情報をクラスタ抽出部435に出力する。
【0100】
続いて、データベースサーバ500について説明する。図13は、本実施形態におけるデータベースサーバ500のハードウェアの構成を示す概略ブロック図である。データベースサーバ500は、通信部501と、制御部502と、クラスタリング結果記憶部503とを備える。
【0101】
通信部501は、計算サーバ400から送信されたクラスタリング結果を示す情報Rを受信する。通信部501は、制御部502の制御に従って、受信したクラスタリング結果を示す情報Rをクラスタリング結果記憶部503に供給する。
また、通信部501は、受信したクラスタリング結果を示す情報Rをサービスサーバ200に送信する。
【0102】
制御部502は、通信部501により受信されたクラスタリング結果を示す情報Rをクラスタリング結果記憶部503に記憶させる。これにより、クラスタリング結果記憶部503には、クラスタリング結果を示す情報Rが記憶される。
【0103】
図14は、クラスタリング結果記憶部503に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT5である。同図において、データの識別情報と親クラスタの識別情報と所属クラスタの識別情報とが関連付けられている。ここで、所属クラスタとは、データが最終的に分類されたクラスタであり、親クラスタとは、所属クラスタを包含するクラスタであって所属クラスタが分割される直前のクラスタである。
【0104】
例えば、データ1の親クラスタの識別情報1であり、所属クラスタの識別情報が2であることが示されている。
このように、クラスタリング結果記憶部503には、データの識別情報とデータが属する所属クラスタの識別情報と当該所属クラスタの親クラスタの識別情報とが関連付けられて記憶される。
【0105】
図15は、クラスタリング結果記憶部503に記憶されているクラスタリング結果を示す情報Rの一例が示されたテーブルT6である。同図において、固有フラグrの値が、属性の識別情報とクラスタ識別情報(クラスタ1〜クラスタN)とに関連付けられている。例えば、属性1はクラスタ1では固有フラグrが1なのでクラスタ1に固有の属性であるが、クラスタNでは固有フラグrが0なのでクラスタ間で共通の属性であることが示されている。
【0106】
図16は、クラスタの階層構造の一例が示された図である。前提として、映画のタイトルがデータであり、属性はユーザの識別情報であるユーザidである。観測値yはユーザjが映画のタイトルTiを鑑賞したか否かを示す情報(鑑賞していれば1、鑑賞していなければ0)である。例えば、ユーザjが映画のタイトルTiを鑑賞した場合には、その観測値は1であり、鑑賞していない場合にはその観測値は0である。ここで、ユーザが10人であり、各ユーザにユーザidが1から10まで割り振られていることを想定する。
【0107】
同図において、最初の分岐B161では、全データが属していたクラスタk0は、クラスタk00とクラスタk01に分割されている。クラスタk00に固有の属性は、ユーザidが1、2、3、4、5である。これは、クラスタk00は、ユーザidが1、2、3、4、5のユーザが鑑賞した映画のクラスタであることを意味する。
【0108】
一方、クラスタk01に固有の属性は、ユーザidが6、7、8、9、10である。これは、クラスタk01は、ユーザidが6、7、8、9、10のユーザが鑑賞した映画のクラスタであることを意味する。
【0109】
クラスタk00に固有の属性と、クラスタk01に固有の属性とを比較すると、クラスタk00の共通属性はユーザidが5以下であることから、ユーザidの数が6より小さいユーザが鑑賞した映画タイトルが分類されていると解釈できる。一方、クラスタk01の共通属性はユーザidが6以上であるので、ユーザidの数が6以上のユーザが鑑賞した映画タイトルが分類されていると解釈できる。
【0110】
このように、クラスタリング処理部430は、クラスタを階層的に分割するので、クラスタ結果を見た人は、クラスタに固有の属性を比較することにより、クラスタ間の関係を理解することができる。
【0111】
また、分岐B162では、クラスタk00は2つのクラスタk000とクラスタk001とに分割されている。クラスタk000に固有の属性は、ユーザidが奇数である。これは、クラスタk000は、ユーザidが1、2、3、4、5のうちユーザidが奇数であるという条件を満たすユーザid(1、3、5)のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。
【0112】
同様に、クラスタk001に固有の属性は、ユーザidが偶数である。クラスタk001は、ユーザidが1、2、3、4、5のうちユーザidが偶数であるという条件を満たすユーザid(2、4)のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。
【0113】
また、分岐B163では、クラスタk01は2つのクラスタk010とクラスタk011とに分割されている。クラスタk010に固有の属性は、ユーザidが奇数である。これは、クラスタk000は、ユーザidが6、7、8、9、10のうちユーザidが奇数であるという条件を満たすユーザid(7、9)のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。
【0114】
同様に、クラスタk011に固有の属性は、ユーザidが偶数である。クラスタk001は、ユーザidが6、7、8、9、10のうちユーザidが偶数であるという条件を満たすユーザid(6、8、10)のユーザが鑑賞した映画のタイトルが分類されたクラスタであることを意味する。
このように、クラスタリング処理部430は、クラウタ間で共通の属性を削除し、各クラスタに固有の属性を抽出するので、人にクラスタを構成するデータの特徴を理解させることができる。
【0115】
更に、クラスタリング処理部430は、クラスタを階層化するので、クラスタを構成するデータは所属クラスタに固有の属性と所属クラスタの親クラスタに固有の属性とを有するので、人にクラスタを構成するデータの特徴を理解させることができる。
また、クラスタリング処理部430は、クラスタが階層化されることで、クラスタ間の相対的な近さがわかり、人にデータ全体の構造が理解させることができる。
【0116】
図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つの映画タイトルであることが示されている。
【0117】
図18は、本実施形態における計算サーバ400の処理の流れを示すフローチャートである。まず、制御部402は、通信部401を介してファイルサーバ300から供給されたクラスタ数Nを示す情報を受け取る(ステップS101)。識別情報割振部420は、クラスタリング対象のデータ及び属性に識別情報を割り振る(ステップS102)。
【0118】
次に、サブクラス割振部431は、それぞれのクラスタにおいて各データが属するサブクラスを割り振る(ステップS103)。次に、サブクラス間差異判定部432は、属性j毎に固有フラグrの初期値を決定する(ステップS104)。次に、変数推定部433は、データi毎のサブクラス識別情報zと属性j毎の固有フラグrの値を推定する(ステップS105)。
【0119】
変数r算出部433_7は、計算の回数が規定回数に達したか否か判定する(ステップS106)。計算の回数が規定回数に達していない場合(ステップS106 NO)、クラスタリング処理部430は、ステップS103の処理に戻る。
一方、計算の回数が規定回数に達した場合(ステップS106 YES)、エントロピー算出部434は、現在のクラスタ数が2以上か否か判定する(ステップS107)。現在のクラスタ数が1の場合(ステップS107 NO)、分割部436は全データiを2つのクラスタに分割し(ステップS108)、クラスタリング処理部430は、ステップS112の処理に進む。
一方、現在のクラスタ数が2以上の場合(ステップS107 YES)、エントロピー算出部434は、条件付きエントロピーを算出する(ステップS109)。
【0120】
次に、エントロピー算出部434は、現在存在する全てのクラスタに対して、当該クラスタが分割された場合の条件付きエントロピーを算出したか否か判定する(ステップS110)。現在存在する全てのクラスタに対して当該クラスタが分割された場合の条件付きエントロピーを算出していない場合(ステップS110 NO)、クラスタリング処理部430は、ステップS103に戻り、条件付きエントロピーが算出されていないクラスタに対してステップS103の処理を行う。
【0121】
一方、現在存在する全てのクラスタに対して当該クラスタが分割された場合の条件付きエントロピーを算出した場合(ステップS110 YES)、クラス抽出部435は、条件付きエントロピーが最小となる分割対象クラスタを抽出する(ステップS111)。
次に、分割部436は、抽出された分割対象クラスタを2つのクラスタに分割する(ステップS112)。
【0122】
クラスタ数比較部437は、分割部436による分割後のクラスタ数がファイルサーバ300から供給されたクラスタ数Nに到達したか否か判定する(ステップS113)。分割後のクラスタ数がクラスタ数Nに到達していない場合(ステップS113 NO)、クラスタリング処理部430は、ステップS102の処理に戻る。
一方、分割後のクラスタ数がクラスタ数Nに到達した場合(ステップS113 YES)、クラスタ数比較部437は、クラスタ結果を示す情報Rを通信部401に出力する(ステップS114)。以上で、本フローチャートの処理を終了する。
【0123】
以上、本実施形態の計算サーバ400は、クラスタを分割する毎に、各属性が分割後の複数のクラスタに共通する属性か分割後のクラスタに固有の属性かを決定し、各データが属するクラスタを階層的に分割する。
これにより、計算サーバ400は、クラスタ固有の属性が減らすことができるので、クラスタの特徴を理解することが容易となる。また、計算サーバ400は、クラスタを階層化したので、クラスタ間の関係を理解することが容易となる。
【0124】
また、本実施形態の計算サーバ400は、クラスタリング処理の際に各変数を確率分布でモデル化したので、クラスタリング結果に数学的な妥当性を持たせることができる。その結果、同じ条件化では、計算サーバ400は、常に同じクラスタリング結果を出力することができる。これにより、どんなユーザが計算サーバ400を用いてデータをクラスタリングしても同じ結果が得られるので、クラスタリング手法に精通していないユーザでも容易に数学的に妥当性のあるクラスタリング結果を得ることができる。
【0125】
<効果を実証する実験データ>
続いて、本実施形態における手法HSCの効果について立証するために行った実験結果について、説明する。
【0126】
図19は、本実施形態におけるクラスタリング処理に係る時間と、従来手法のクラスタリング処理に係る時間とを比較した図である。同図において、縦軸は時間(秒)であり、横軸は属性の数である。同図に置いて、本実施形態における手法はHSC(Hierarchical Subset Clustering)であり、従来手法は、非特許文献1に記載されたSCBS(Subset Clustering of Binary Sequence)である。
【0127】
また、括弧内のNは、Netflixデータを用いてクラスタリングした結果であることを示し、括弧内のPは、研究論文のデータを用いてクラスタリングした結果であることを示している。
【0128】
ここで、Netflixデータは、1999年11が11日から2005年12月31日までに100,480,507の採点(レーティング)記録からなる。採点記録は、480,189人の採点者によって採点された17,770の映画からなる。
最初に、少なくとも20映画を採点した採点者と少なくとも100人のユーザによって採点された映画が選択されたこの前処理により、データセットを136,589人の採点者によって採点された9,264映画からなる85,730,203採点記録までに削減した。各採点記録は、映画タイトルを識別する映画タイトルidと、採点者を識別する採点者idと、採点と、時刻からなる。
【0129】
一方、研究論文のデータは、2001年から2008年までにACM CIKM, SIGIR, KDD, and WWWの予稿集における研究論文からなっている。研究論文に登場するストップワード、番号、コーパスに登場する回数が5回未満の単語が削除された。これにより、研究論文のデータは、全部で3078文章と20286の種の単語からからなっている。
【0130】
同図に置いて、属性が20000のときは、本実施形態における手法HSCと従来手法SCBSとでクラスタリング処理にかかる時間にほとんど差がない。しかし、属性が増えるに従って、本実施形態における手法HSCは、従来手法SCBSよりもクラスタリング処理にかかる時間が短くなっている。
すなわち、従来手法SCBSは、属性の数が増えると処理にかかる時間が線形に増えるのに対して、本実施形態における手法HSCは、属性の数が増えたことによる影響を受けずに、処理にかかる時間をほぼ一定に保つことができる。
【0131】
以下、図19の実験結果が得られた実験の方法について説明する。まず、研究論文データの文章の数と合わせるために、9,264の映画からランダムに3078の映画が選択された。次に、採点者(単語)の数が20,000から100,000まで増加させた。
次に、各データセットから採点者(論文)×映画(単語)の行列からなるデータ行列が準備された。
【0132】
次に、ギブスサンプリングの試行回数が100にセットされ、クラスタの数を20がセットされて、両方の手法が実行された。これにより、ルートクラスタから始まってクラスタ数が20になるまでクラスタが繰り返し分割された。そして、本実施形態の手法HSCと従来手法SCBSを用いて、採点者(単語)の数を変える毎に、映画(文章)がクラスタに分類された。
【0133】
以上、本実施形態における計算サーバ400は、クラスタを分割する毎に、各属性が分割後の複数のクラスタに共通する属性か分割後のクラスタに固有の属性かを決定するので、属性の数が多くなっても処理にかかる時間が従来手法SCBSよりも増えない。換言すれば、本実施形態における計算サーバ400は、クラスタを分割する毎にクラスタ間で共通の属性が増えていくので、計算量を減らすことができる。
【0134】
これにより、本実施形態における計算サーバ400は、属性が所定に数より多くなるほどクラスタリングにかかる処理時間を従来手法SCBSに比べて短縮することができる。換言すれば、本実施形態における計算サーバ400は、属性の数が増加しても従来手法SCBSと比べて計算量が増加しないという有利な効果を有する。
【0135】
図20は、本実施形態の手法HSCと従来手法SCBSとのパープレキシティを比較したテーブルである。同図に置いて、Netflixデータと、研究論文(Researvh Paper)のデータとを用いたときの、本実施形態の手法HSCのパープレキシティの値と従来手法SCBSのパープレキシティの値が示されている。ここで、パープレキシティ(perplexity)は、タスクの複雑性を表す尺度であり、クラスタリングの予測が正しければ、パープレキシティの値が小さくなる。
【0136】
同図において、Netflixデータについても、研究論文(Researvh Paper)のデータを用いてクラスタリングした場合においても、本実施形態の手法HSCの方が従来手法SCBSよりもパープレキシティが片側t検定で有意に小さくなっていることが示されている。ここで、片側t検定で従来手法SCBSよりもはP<0.05で異なる場合、‘’の印が付けられ、P<0.01で異なる場合に、‘**’の印が付けられている。
【0137】
これにより、本実施形態の手法HSCは、従来手法SCBSよりもクラスタリングの予測が正しいという有利な効果を有する。
これは、従来手法SCBSは、各属性は、各クラスタに固有か全クラスタに共通であるかの2者択一であるのに対し、本実施形態の手法HSCが様々なクラスタ間でどんな属性でも共通にできるという点で柔軟性があるからである。
【0138】
ここで、上記パープレキシティPPXは、100の異なるチェーン(chains)からの100個のデータを用いて、以下の式(6)に従って、算出される。
【0139】
【数6】

【0140】
ここで、Wはテスト属性の数、Gは(ギブス)サンプリング系列の異なり数、θklvは、モデルによってサンプリング系列の識別子gの中のクラスkに付随するサブクラスlにおける属性vにクラスkが割り振られる確率である。また、gの上に〜が示されている記号をg(チルタ)と称し、θklvg(チルタ)は、モデルによってサンプリング系列の識別子gの中のクラスkにおける属性vにクラスkが割り振られる確率である。
【0141】
以下、図20の実験結果が得られた実験の方法について説明する。この実験では生データをコーパスにある文章(Netflixデータの場合は文章で、研究論文の場合は単語)として、以下の方法でパープレキシティが計算された。ここで、生データにはデータと属性があり、そのデータと属性の組み合わせはNetflixデータの場合はそれぞれ映画と評論家で、研究論文の場合はそれぞれ論文と単語である。
【0142】
まず、研究論文の場合には、ある単語が1回でも出現した場合、その単語の出現数を1に変換した。一方、Netflixデータの場合には、ある映画のレーティングがが存在すれば、その映画のレーティングを1、そうでなければその映画のレーティングを0に変換した。
【0143】
次に、各生データの10%をテストパートとしてランダムに分割し、残りのパートを学習データとした。生データ毎に、テストパートに対してパープレキシティを計算した。
次に、各モデルのパラメータを推定するために学習パートが使用された。最後に、サンプルが採取されたときにクラスタを識別する情報が保存された。
【0144】
図21は、トップNの正確性が各手法間で比較されたテーブルである。同図において、本実施形態の手法HSCと、従来の推薦方法であるCosineとPearsonとItemとSCBSとの間で推薦の正確性が比較されている。比較対象は、Netflixデータを用いて算出された1番目の推薦アイテムの正確性と、5番目の推薦アイテムの正確性と、10番目の推薦アイテムの正確性である。
【0145】
ここで、CosineとPearsonは、それぞれコサイン類似度またはピアソンの相関係数によって計測されたユーザの類似度に基づいて推薦する方法である。
また、Itemは、文献(J. K. B. Sarwa, G. Karypis and J. Riedl. Item-based collaborative filtering recommendation algorithms. In WWW, pages 285-295, 2001.)で提案されたピアソンの相関係数によって計測された内容類似度に基づいて推薦する方法である。
【0146】
同図において、10番目の推薦アイテムの正確性において、本実施形態の手法HSCの正確性の値が従来手法SCBSの正確性の値よりも片側t検定で有意に大きくなっている(P<0.05で異なる場合、‘’の印が付けられている)。
このことから、本実施形態の手法HSCは、推薦の正確性においても従来手法SCBSよりも向上しているという有利な効果を持っている。
【0147】
以下、図21の実験結果が得られた実験の方法について説明する。クラスタ間を区別し得る属性を選択するという点からみたクラスタの質を計測するために、Netflixデータを用いて協調フィルタリングタスクのパフォーマンスを計算した。Netflixデータにおけるレーティングのバイアスに着目して、ユーザの平均レーティングよりも対象アイテムのレーティングが高い場合にはそのアイテムを購入したとみなして1とし、それ以外の場合にはそのアイテムを購入しなかったとみなして0とした。
【0148】
このデータにおいて、ユーザと購入アイテムがそれぞれデータと属性に対応する。K倍のクロスバリデーション(cross−validation)を介して、各手法の推薦の予測精度を評価するためにシミュレーションを実行した。K倍のクロスバリデーション(cross−validation)とは、オリジナルデータがランダムにK個のサブサンプリングに置かれることである。
【0149】
このシミュレーションにおいて、テストデータにおける各ユーザを、学習データから採取されたユーザログを用いて各推薦方法を適用したターゲットユーザとして扱った。
この実験において、クラスの数は120に固定されたおり、各ユーザは本実施形態の手法HSCまたは従来手法SCBSによって、120のクラスのうちの1つのクラスに割り振られた。そして、Kが20という条件下で、10000回の繰り返しに対して100回のギブスサンプリングが行われた。
【0150】
そして、本実施形態の手法HSCと従来の4つの手法をデータセットに適用し、トップN(Nは1、5または10)の推薦の正確性を比較した。
本実施形態の手法HSCと従来手法SCBSに関しては、ユーザが属するクラスにおいて観測値yij=1となる確率に従ってトップNランクのアイテムをターゲットユーザに提示し、これらの推薦アイテムがテストデータに存在することを確認した。
【0151】
図22は、3つのパラメータが各手法間で比較されたテーブルである。同図において、図21と同じ条件下において各クラスタリング手法によって算出された推薦ユーザの被覆率(User Coverage)と、推薦オブジェクトの被覆率(Item Coverage)と、Gini係数とが示されている。
【0152】
ここで、それぞれの指標について詳細に説明する。まず、推薦ユーザの被覆率(User Coverage)は、テスト期間にアイテムを購入したユーザ数に対する各推薦方法が推薦可能なユーザ数の割合である。推薦ユーザの被覆率が高いほど、多くのユーザにアイテムを推薦できるので、ユーザ全体にとって価値が高いシステムである。
【0153】
推薦オブジェクトの被覆率(Item Coverage)は、テスト期間に購入されたアイテムのタイトル数に対する各推薦方法が推薦可能なアイテム数の割合である。推薦オブジェクトの被覆率は、システムが推薦できるシステム中のアイテムドメインの大きさを示す1つの指標である。従って、推薦オブジェクトの被覆率の低いシステムは、ごく限られた選択アイテムしか提示できないから、ユーザにとって価値が低いシステムである。
【0154】
Gini係数は、アイテムに対するユーザの購入者数の分布の統計的分散を示す指標である。Gini係数は、0から1の値をとり、低くなるほど分布が平等であり、高くなるほど分布が偏っていることを意味する。すなわち、値が0に近いほどアイテムごとの購入ユーザ数の格差が少なく、1に近いほど格差が大きいことを意味する。
【0155】
Gini係数が0の場合、分布が完全に平等、すなわち全てのオブジェクトが正確に同じ数のユーザによって購入されている。一方、Gini係数が1の場合、分布が完全に不平等、すなわち1つのアイテムがすべてのユーザによって購入され、他のアイテムは、どのユーザにも購入されてない。
【0156】
高いGini係数となる結果は、2、3個の特定のアイテムがたいていのユーザによって高くランク付けされている傾向にあることを意味し、特定のアイテムばかりが推薦される傾向が強く、ユーザ毎の推薦アイテムの違いは小さくなる。すなわち、アイテム推薦は、ユーザ毎に特化されていないことを意味する。一方、Gini係数が0に近いほど、アイテムの推薦がユーザ毎に特化し、アイテム推薦がうまく行われていることを意味する。
【0157】
図22において、本実施形態の手法HSCにおいて、推薦オブジェクトの被覆率(Item Coverage)が最も高く、Gini係数が最も0に近い。この結果から、本実施形態の手法HSCは、他の手法よりも偏りが少なく広い範囲のアイテムをユーザ毎に特化して推薦できることが証明された。
【0158】
本実施形態の手法HSCは、ユーザ間による興味の違いを強調するために、より人気のある瑣末なアイテムに対してより低い重み付けをする。それにより、個人の好みに応じたアイテムに対してより大きな重みをつけることができ、その結果、アイテム推薦の正確性が向上している。
【0159】
また、図22において、本実施形態の手法HSCと従来手法SCBSとの間で、推薦ユーザの被覆率(User Coverage)は同じである。
一方、図22において、本実施形態の手法HSCの推薦オブジェクトの被覆率(Item Coverage)の値が従来手法SCBSの推薦オブジェクトの被覆率の値よりも片側t検定で有意に大きくなっている(P<0.01で異なる場合、‘**’の印が付けられている)。
このことから、本実施形態の手法HSCは、従来手法SCBSよりも、より多くの選択アイテムを提示できることを意味し、ユーザにとって価値が高いクラスリング手法である。
【0160】
図22において、実施形態の手法HSCの推薦オブジェクトのGini係数の値が従来手法SCBSのGini係数の値よりも片側t検定で有意に小さくなっている(P<0.01で異なる場合、‘**’の印が付けられている)。
このことから、本実施形態の手法HSCは従来手法SCBSよりも、アイテムに対するユーザの購入者数の分布が平等であるので、全てのオブジェクトがより同数に近いユーザによって購入されていることを意味する。従って、本実施形態の手法HSCは従来手法SCBSよりも、ユーザ毎に特化したアイテムを推薦できるという有利な効果を有する。
【0161】
また、本実施形態の計算サーバ400の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、計算サーバ400に係る上述した種々の処理を行ってもよい。
【0162】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0163】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0164】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0165】
100 ユーザ端末
200 サービスサーバ
300 ファイルサーバ
400 計算サーバ(クラスタリング分類装置)
401 通信部
402 制御部
420 識別情報割振部
430 クラスタリング処理部
431 サブクラス割振部
432 サブクラス間差異判定部
433 変数推定部
434 エントロピー算出部
435 クラス抽出部
436 分割部
437 クラスタ数比較部
440 属性選択部
500 データベースサーバ

【特許請求の範囲】
【請求項1】
各データが属するクラスタを階層的に分割する分割部と、
前記分割部によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択部と、
を備えるクラスタリング装置。
【請求項2】
前記各データに対し、ランダムにサブクラスを割り振るサブクラス割振部を更に備え、
前記属性選択部は、属性毎に該属性の値がサブクラス間で違いがあるか否か判定し、前記属性の値がサブクラス間で違いがない場合は、該属性の値を該サブクラス間で共通の属性とし、属性の値がサブクラス間で違いがある場合は、その属性をサブクラス固有の属性とすることを特徴とする請求項1に記載のクラスタリング装置。
【請求項3】
前記属性選択部は、属性毎に該属性がサブクラスに固有である確率を算出し、該算出した確率に基づいて、該属性が前記サブクラス間で共通の属性か前記サブクラスに固有の属性かを判定することを特徴とする請求項1または請求項2に記載のクラスタリング装置。
【請求項4】
前記属性選択部は、前記データ毎に該データに割り振られるサブクラスが所定のサブクラスである確率を算出し、該算出した確率に基づいて前記データ毎に該データに割り振られるサブクラスを推定することを特徴とする請求項2または請求項3に記載のクラスタリング装置。
【請求項5】
前記サブクラスを識別するサブクラス識別情報の確率分布が二項分布で表され、前記属性がサブクラスに固有であるか否かを示す固有フラグの確率分布がベルヌーイ分布で表されることを特徴とする請求項2から請求項4のいずれか1項に記載のクラスタリング装置。
【請求項6】
各データが属するクラスタを階層的に分割する分割手順と、
前記分割手順によりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択手順と、
を有するクラスタリング方法。
【請求項7】
コンピュータに、
各データが属するクラスタを階層的に分割する分割ステップと、
前記分割ステップによりクラスタが分割される毎に、分割後の複数のクラスタに共通する属性と分割後のクラスタに固有の属性とを選択する属性選択ステップと、
を実行するためのクラスタリングプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−243225(P2012−243225A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−115245(P2011−115245)
【出願日】平成23年5月23日(2011.5.23)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)