以下、本発明の実施形態を図面を参照して説明する。
また、以下に示す各実施形態では、第1IDおよび第2IDそれぞれをクラスタリングする場合を例にして説明する。以下、第1IDおよび第2IDについて説明する。
また、クラスタリングの対象の種類をドメインと記す。以下に示す各実施形態では、第1ID、第2IDがそれぞれドメインとなる。以下の説明では、ドメインが2種類存在する場合を例にする。
さらに、個々の第1IDがそれぞれ顧客IDであり、個々の第2IDがそれぞれ商品IDであるものとして説明する。以下、第1IDを顧客IDと記し、第2IDを商品IDと記す。ただし、本発明において、第1ID、第2IDはそれぞれ、顧客ID、商品IDに限定されるわけではない。
個々の商品ID(第2ID)には、文字データが対応付けられている。商品IDによって特定される商品には、文字データが存在する。その文字データを、商品IDに対応する文字データとすればよい。文字データは、文章であっても、あるいは、単語の集合であってもよい。例えば、商品IDに対応する文字データとして、商品の説明文、原材料等を示す文字データ、その商品に対するユーザのレビュー文等が挙げられるが、これらに限定されない。
また、以下に示す各実施形態では、顧客IDと商品IDとの関係を示す関係データとして、購買履歴データを用いる。図1は、購買履歴データの例を示す説明図である。図1に示す例では、「ユーザ1」、「ユーザ2」、「ユーザ3」等が顧客IDである。また、「りんご」、「ノート」、「鉛筆」、「ワイン」等の商品名を商品IDとしている。購買履歴データは、顧客IDによって特定される顧客が、商品IDによって特定される商品を購入した実績があるか否かという関係を示している。図1では、顧客が商品を購入した実績があることを“1”で示し、実績がないことを“0”で表している。例えば、「ユーザ2」は、「りんご」を購入したことはあるが、「ワイン」を購入したことはない。
上記のような購買履歴データ(関係データ)は、個々のユーザIDおよび個々の商品IDをそれぞれノードとし、ユーザIDから購入実績のある商品IDにリンクを設けた二部グラフで表すことができる。そして、一方のドメインの各ノード(各商品ID)には、文字データが対応付けられている。
次に、「協調フィルタリング」、「関係モデル」および「関係トピックモデル」におけるクラスタリングや推奨について説明する。その上で、本発明の発明者が開発した新たなモデル(後述の一部関係トピックモデル(片側関係トピックモデル))について説明する。なお、実際にクラスタリングされるのは、顧客IDや商品IDであるが、便宜的に、「顧客をクラスタリングする。」、「商品をクラスタリングする。」等と記載する場合がある。同様に、顧客IDクラスタ(顧客IDのクラスタ)や商品IDクラスタ(商品IDのクラスタ)を、便宜的に、顧客クラスタ、商品クラスタと記す場合がある。
[協調フィルタリング]
協調フィルタリングは、一般的なレコメンドシステムでよく用いられる。協調フィルタリングは、顧客と商品との関係を示す購買履歴をもとにしたマトリクスを作成し、顧客、商品をそれぞれクラスタリングする。なお、クラスタリングとは、データ(顧客IDや商品ID)を、複数のクラスタに分けるタスクである。顧客クラスタや商品クラスタは、ある相関係数に基づいて評価された類似性が高いものでまとめられる集合体であるということができる。協調フィルタリングでは、類似した顧客同士が類似した商品を購入する可能性が高いと仮定し、同じクラスタに所属する顧客に対して、同じような商品を推奨する。
[関係モデル]
関係モデルを用いたレコメンドシステムは、基本的に、協調フィルタリングを用いた場合と似ているが、関係モデルは確率生成モデルである。ここでは、関係モデルの中でも代表的なStochastic Block Model(以下、SBMと記す。)について説明する。また、以下の説明では、顧客、商品をまとめてノードと記し、購買関係をリンクと記す。
SBMは、それぞれのノードに対して、ある確率でクラスタを割り当てる。この確率は、多項分布に従うと仮定されている。また、購買関係を表現するリンクは、ベルヌーイ分布で生成される。リンクの生成確率を支配するベルヌーイ分布のパラメタは、顧客クラスタ数*商品クラスタ数だけ存在する。また、顧客(顧客ID)の個々のクラスタと商品(商品ID)の個々のクラスタとの関係の強さを示す情報をクラスタ関係と記す。クラスタ関係は、例えば、顧客(顧客ID)のクラスタと商品(商品ID)のクラスタとの組毎に、0〜1の範囲の値で表される。また、クラスタ関係の値が0に近いほど、クラスタ間の関係が弱く、クラスタ関係の値が1に近いほど、クラスタ間の関係が強いものとする。以下の説明において、クラスタ関係を符号ηで表す場合がある。クラスタ関係ηは、ベータ分布から生成される。クラスタの生成確率を支配する多項分布のパラメタは、ディリクレ分布から生成される。これらの仮定のもとで、SBMは、現在観測されているリンクから算出された事後確率が最大となるようなパラメタを推定する。例えば、顧客のドメインで、ある顧客のあるクラスタへの所属確率を算出する際、そのクラスタと他のドメイン(商品のドメイン)の各クラスタとの間にある確率モデルの値を参照する。購買履歴を使用した場合、ある顧客のある顧客クラスタへの所属確率は、その顧客クラスタと関係の強い商品クラスタに属する商品を、どれだけその顧客が購入しているかによって定まる。これにより、似た商品を買う顧客が同じ顧客クラスタに集まり、また、似た顧客によって買われる商品が同じ商品クラスタに集まる。
ここで、クラスタ関係の例を示す。クラスタ関係は、上記のように、顧客ID(換言すれば、第1ID)の個々のクラスタと商品ID(換言すれば、第2ID)の個々のクラスタとの関係の強さを示す情報である。以下、クラスタ関係が0〜1の範囲の値である場合を例にして説明する。また、クラスタ関係の値が0に近いほど、クラスタ間の関係が弱く、クラスタ関係の値が1に近いほど、クラスタ間の関係が強いものとして説明する。クラスタ関係の値は、顧客IDクラスタの数と商品IDクラスタの数との積だけ導出される。図2は、クラスタ関係の例を示す模式図である。なお、図2に示す「スポーツ」、「本」、「インドア好き」、「アウトドア好き」は、システム管理者が便宜的に付けたラベルであるものとする。
顧客IDクラスタに所属している顧客IDと、商品IDクラスタに所属している商品IDとの関係が強いほど、その2つのクラスタの組み合わせにおけるクラスタ関係は大きな値となる。すなわち、顧客IDクラスタに所属している顧客IDによって特定される顧客と、商品IDクラスタに所属している商品IDによって特定される商品との関係が強いほど、クラスタ関係は“1”に近づき、その関係が弱いほど、クラスタ関係は“0”に近づく。図2に示す例において、顧客IDクラスタ1には、インドア好きの顧客の顧客IDが多く所属している。また、顧客IDクラスタ2には、アウトドア好きの顧客の顧客IDが多く所属している。また、商品IDクラスタ1には、スポーツ商品の商品IDが多く所属している。例えば、顧客IDクラスタ2と商品IDクラスタ1との間のクラスタ関係は0.9であり、1に近い値である。このことは、顧客IDクラスタ2に所属している顧客IDによって特定される顧客が、商品IDクラスタ1に所属している商品IDによって特定される商品を購入することが多いことを表し、顧客IDクラスタ2と商品IDクラスタ1との関係が強いことを表している。また、例えば、顧客IDクラスタ1と商品IDクラスタ1との間のクラスタ関係は0.1であり、0に近い値である。このことは、顧客IDクラスタ1に所属している顧客IDによって特定される顧客が、商品IDクラスタ1に所属している商品IDによって特定される商品を購入することが少ないことを表し、顧客IDクラスタ1と商品IDクラスタ1との関係が弱いことを表している。
[関係トピックモデル]
次に、関係トピックモデルについて説明する。ここでは、特に代表的な、非特許文献2に記載の関係トピックモデルについて説明する。非特許文献2に記載の関係トピックモデルは、上記の関係モデルに対して文章の生成過程を組み込んだモデルである。関係モデルで割り当てられたクラスタがトピックとしても用いられ、それぞれのトピックは単語多項分布を持つ。この点は、混合ユニグラムモデルや潜在的ディリクレ配分法等と同様である。全ての文章データは、Bag of wordsとして取り扱われ、上記の単語多項分布から確率的に生成されると仮定する。結果として、ノードは、リンクだけでなく、トピックを加味しながら、クラスタリングされる。ただし、非特許文献2に記載の関係トピックモデルに限らず、関係トピックモデルは、ノード全てが文字データを持つことを前提としている。そのため、2つのドメイン(顧客IDのドメインおよび商品IDのドメイン)のうち、一方のドメイン(顧客IDのドメイン)のノードに文字データが対応付けられていない態様には、関係トピックモデルを適用することは困難である。
[一部関係トピックモデル(片側関係トピックモデル)]
一部関係トピックモデルは、本発明の発明者が開発した新たなモデルである。一部関係トピックモデルとは、関係モデルであって、一部のドメインが内部にトピック分布を有するモデルである。ドメインの数が2つであり、一方のドメインが内部にトピック分布を有する場合には、一部関係トピックモデルを、片側関係トピックモデルと称することもできる。本発明の発明者は、一部関係トピックモデルを用いたレコメンド方法を開発した。以下に、このレコメンド方法の一例の概略を示す。このレコメンド方法では、以下のステップを実行する。
1.(初期値設定)
顧客IDクラスタ数、商品IDクラスタ数、ハイパーパラメタ、言語辞書等を設定する。
2.(ギブスサンプリング)
観測データをもとに、各隠れ値、パラメタを、ギブスサンプリングによって決定する。
3.(終了判定)
上記の「2.(ギブスサンプリング)」の終了条件が満たされたかを判定する。この終了条件が満たされなければ、上記の「2.(ギブスサンプリング)」の処理を繰り返す。
4.(顧客判定)
新商品の文字データに基づいて、新商品に対してクラスタ割り当てを実行し、その新商品を推奨する顧客として適切な顧客を判定する。
実施形態1.
図3は、本発明の第1の実施形態のクラスタリングシステムの例を示す機能ブロック図である。
第1の実施形態のクラスタリングシステム1000は、データ入力部1300と、処理部1100と、記憶部1200と、出力部1400とを備える。処理部1100は、初期化部1110と、クラスタリング部1120とを備える。クラスタリング部1120は、顧客クラスタ割り当て部1121と、商品クラスタ割り当て部1122と、単語トピック割り当て部1123と、パラメタ決定部1124と、終了判定部1125とを備える。
データ入力部1300は、片側関係トピックモデルを適用したクラスタリングに用いられるデータ群と、クラスタリングの設定値とを取得する。データ入力部1300は、例えば、外部の装置にアクセスして、データ群と、クラスタリングの設定値を取得してもよい。あるいは、データ入力部1300は、データ群と、クラスタリングの設定値とが入力される入力インタフェースであってもよい。
クラスタリングに用いられるデータ群は、購買履歴データを含む。購買履歴データは、顧客IDと商品IDとの関係を示す関係データであり、例えば、図1に示すように表すことができる。既に説明したように、購買履歴データは、顧客IDによって特定される顧客が、商品IDによって特定される商品を購入した実績があるか否かという関係を示している。購買履歴データには、各顧客IDおよび各商品IDが含まれている。
また、クラスタリングに用いられるデータ群は、個々の商品IDに対応する文字データも含む。図4は、個々の商品IDに対応する文字データの例を示す説明図である。図4では、商品IDが商品名である場合を例にしている。図4に示す例では、商品に、説明文またはレビュー文が対応付けられている。ただし、クラスタリングシステム1000で内では、Bag of words形式の文字データを扱う。すなわち、個々の単語が説明文やレビュー文等に何回出現したかが分かる形式の文字データを扱う。例えば、初期化部1110が、個々の商品IDに対応する文章等を形態素解析によって単語に分割し、Bag of words形式の文字データに変換する。
クラスタリングの設定値として入力される情報には、顧客IDクラスタの数、商品IDクラスタの数や、文章等からBag of words形式の文字データを構成するための辞書の単語集合がある。
初期化部1110は、データ入力部1300から、購買履歴データ(関係データ)、個々の商品IDに対応する文字データ、および、クラスタリングの設定値を受け取り、記憶部1200に記憶させる。初期化部1110は、個々の商品IDに対応する文字データが、文章等のようにBag of words形式でない場合、その文字データをBag of words形式に変換してから記憶部1200に記憶させる。以下、購買履歴データ(関係データ)を符号yi,jで表す場合がある(図3参照)。また、文字データを符号wjで表す場合がある(図3参照)。
また、初期化部1110は、クラスタリングに用いるパラメタを初期化し、記憶部1200に記憶させる。
初期化部1110は、各顧客IDに対するクラスタ割り当て、および、各商品IDに対するクラスタ割り当てに初期値を設定する。すなわち、まだ、クラスタリングが行われていない時点において、各顧客IDに対するクラスタ割り当ての初期状態、および、各商品IDに対するクラスタ割り当ての初期状態を定める。初期化部1110は、各顧客IDに対するクラスタ割り当ての初期状態、および、各商品IDに対するクラスタ割り当ての初期状態を、ランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、各顧客IDに対するクラスタ割り当てを符号ziで表し、各商品IDに対するクラスタ割り当てを符号zjで表す場合がある(図3参照)。初期化部1110は、各顧客IDに対するクラスタ割り当ての初期状態、および、各商品IDに対するクラスタ割り当ての初期状態を記憶部1200に記憶させる。
また、初期化部1110は、顧客IDクラスタにノード(顧客ID)が集まる際の集まりやすさ(偏り)を表すパラメタを初期化する。以下、このパラメタを符号π1で表す場合がある(図3参照)。同様に、初期化部1110は、商品IDクラスタにノード(商品ID)が集まる際の集まりやすさ(偏り)を表すパラメタを初期化する。以下、このパラメタを符号π2で表す場合がある(図3参照)。π1およびπ2は、確率分布である。初期化部1110は、初期化したπ1およびπ2を、記憶部1200に記憶させる。
また、初期化部1110は、トピック毎の単語分布を初期化する。トピックは、単語として直接的に明示されていなくても、単語に関連している。例えば、「オリンピック」というトピックに関する文字情報では、「体操」、「水泳」等の単語の出現頻度が高く、オリンピックと無関係な単語の出現頻度は低い。トピック毎の単語分布は、トピック毎に、単語の出現頻度を表す情報である。ただし、クラスタリングシステム1000は、トピックに対して「オリンピック」等の具体的なラベルを付すわけではなく、各トピックに対して、例えば、“トピック1”,“トピック2”等のIDを付す。「オリンピック」等の具体的なラベルは、例えば、システム管理者によって定められる。図5は、ある1つのトピックの単語分布の例を示す模式図である。図5に示す横軸は、辞書に含まれる各単語を表し、縦軸は、そのトピックにおける単語の出現頻度を表す。初期化部1110は、トピック毎の単語分布を、ランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、トピック毎の単語分布を符号φで表す場合がある(図3参照)。初期化部1110は、初期化したφを記憶部1200に記憶させる。
また、初期化部1110は、各商品IDの各単語に対するトピック割り当て結果を初期化する。すなわち、まだ、単語トピック割り当て部1123によるトピック割り当てが行われていない時点において、トピック割り当て結果の初期状態を定める。後述するように、単語トピック割り当て部1123は、各商品IDの各単語に対してトピックを割り当てる。さらに、単語トピック割り当て部1123は、単語毎に、各トピックの割り当て頻度を表す情報を生成する。図6は、ある1つの単語に対するトピックの割り当て頻度を表す情報の例を示す模式図である。図6に示す横軸は、各トピックのトピックIDを表し、縦軸は、着目している単語に対する各トピックの割り当て頻度を表す。初期化部1110は、このような、単語トピック割り当て部1123の処理で得られる結果の初期状態を定める。初期化部1110は、トピック割り当て結果の初期状態をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、単語トピック割り当て部1123の処理で得られる結果を、符号zj,nで表す場合がある(図3参照)。初期化部1110は、初期化したzj,nを記憶部1200に記憶させる。
また、初期化部1110は、商品IDクラスタ毎のトピック分布を初期化する。商品IDクラスタ毎のトピック分布は、単語トピック割り当て部1123がトピック割り当てを実行する際に用いるパラメタである。トピック分布は、商品IDクラスタ毎に定められる。そして、トピック分布は、着目している商品IDクラスタのトピックに各トピックが該当する可能性の高さを表す。図7は、ある1つの商品IDクラスタのトピック分布の例を示す模式図である。図7に示す横軸は、各トピックのトピックIDを表し、縦軸は、着目している商品IDクラスタのトピックに各トピックが該当する可能性を表している。初期化部1110は、商品IDクラスタ毎のトピック分布をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、商品IDクラスタ毎のトピック分布を符号θで表す場合がある(図3参照)。初期化部1110は、初期化したθを記憶部1200に記憶させる。
初期化部1110は、クラスタ関係ηを初期化する。初期化部1110は、各顧客IDクラスタおよび各商品IDクラスタの組み合わせ毎にクラスタ関係の初期値を定める。クラスタ関係ηは、既に説明したように、個々の顧客IDクラスタと個々の商品IDクラスタとの関係の強さを示す情報(数値)である。初期化部1110は、クラスタ関係の初期値をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。初期化部1110は、初期化したηを記憶部1200に記憶させる。
クラスタリング部1120は、顧客IDに対するクラスタ割り当て、商品IDに対するクラスタ割り当て、各商品IDの各単語に対するトピック割り当て、および、各パラメタの決定を繰り返すことによって、顧客IDおよび商品IDを共クラスタリングする。
顧客クラスタ割り当て部1121は、確率分布(π1)に従って、それぞれの顧客IDに対してクラスタ割り当てを行う。顧客クラスタ割り当て部1121は、顧客IDをクラスタリングしていると言える。
顧客クラスタ割り当て部1121は、1つの顧客IDが1つの顧客IDクラスタに所属する所属確率を決定する際、その顧客IDが、その1つの顧客IDクラスタと関係の強い商品IDクラスタに所属している商品IDとの関係を多く有しているほど、その所属確率を高い確率に定める。顧客クラスタ割り当て部1121は、顧客IDクラスタと関係の強い商品IDクラスタをクラスタ関係に基づいて特定すればよい。例えば、顧客クラスタ割り当て部1121は、着目している顧客IDクラスタとの間のクラスタ関係が所定値以上である商品IDクラスタを、着目している顧客IDクラスタと関係の強い商品IDクラスタとして定めてもよい。また、顧客クラスタ割り当て部1121は、着目している顧客IDと、その商品IDクラスタに所属している商品IDとの関係の多寡を、購買履歴データに基づいて判定する。顧客クラスタ割り当て部1121は、着目している顧客IDによって特定される顧客が、その商品IDクラスタに所属している商品IDによって特定される商品を買ったという関係が多いほど、着目している顧客IDが着目している顧客IDクラスタに所属する所属確率を高く設定すればよい。すなわち、顧客クラスタ割り当て部1121は、着目している顧客IDと、その商品IDクラスタに所属している商品IDとのリンクが多いほど、所属確率を高く設定すればよい。この結果、似た商品を買う顧客の顧客IDが、同じ顧客IDクラスタに集まる。
顧客クラスタ割り当て部1121は、顧客IDに対するクラスタリング(クラスタ割り当て)の結果を、記憶部1200に記憶させる。
商品クラスタ割り当て部1122は、確率分布(π2)に従って、それぞれの商品IDに対してクラスタ割り当てを行う。商品クラスタ割り当て部1122は、顧客IDをクラスタリングしていると言える。
商品クラスタ割り当て部1122は、1つの商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、2つの情報を参照する。1つ目の情報は、購買履歴データである。2つ目の情報は、着目しているクラスタのトピック分布である。以下、より具体的に説明する。
商品クラスタ割り当て部1122は、1つの商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDが、その1つの商品IDクラスタと関係の強い顧客IDクラスタに所属している顧客IDとの関係を多く有しているほど、その所属確率を高い確率に定める。商品クラスタ割り当て部1122は、商品IDクラスタと関係の強い顧客IDクラスタをクラスタ関係に基づいて特定すればよい。例えば、商品クラスタ割り当て部1122は、着目している商品IDクラスタとの間のクラスタ関係が所定値以上である顧客IDクラスタを、着目している商品IDクラスタと関係の強い顧客IDクラスタとして定めてもよい。また、商品クラスタ割り当て部1122は、着目している商品IDと、その顧客IDクラスタに所属している顧客IDとの関係の多寡を、購買履歴データに基づいて判定する。商品クラスタ割り当て部1122は、着目している商品IDによって特定される商品が、その顧客IDクラスタに所属している顧客IDによって特定される顧客によって買われたという関係が多いほど、着目している商品IDが着目している商品IDクラスタに所属する所属確率を高く設定すればよい。すなわち、商品クラスタ割り当て部1122は、着目している商品IDと、その顧客IDクラスタに所属している顧客IDとのリンクが多いほど、所属確率を高く設定すればよい。この結果、似た顧客によって買われる商品の商品IDが、同じ商品IDクラスタに集まる。
また、商品クラスタ割り当て部1122は、1つの商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDクラスタのトピック分布を参照する。既に説明したように、1つの商品IDクラスタのトピック分布は、図7に例示するように模式的に表すことができる。商品クラスタ割り当て部1122は、着目している商品IDクラスタのトピック分布と、着目している商品IDのトピック分布が近いほど、その商品IDがその商品IDクラスタに所属する所属確率を高める。単語毎に、図6に模式的に示すような各トピックの割り当て頻度を表す情報(以下、トピック割り当て頻度情報と記す。)が記憶部1200に記憶されている。商品IDに対応する文字データに含まれる個々の単語のトピック割り当て頻度情報は、その商品IDのトピック分布であると言える。商品クラスタ割り当て部1122は、着目している商品IDに対応する文字データに含まれている単語毎に、トピック割り当て頻度情報を読み込み、着目している商品IDクラスタのトピック分布と比較する。そして、商品クラスタ割り当て部1122は、例えば、その商品IDクラスタのトピック分布に類似していると判断したトピック割り当て頻度情報に対応する単語が、その文字データにいくつ含まれているかを判定する。その単語の個数が多いほど、着目している商品IDクラスタのトピック分布と、着目している商品IDのトピック分布が近いと言える。商品クラスタ割り当て部1122は、このように、着目している商品IDクラスタのトピック分布と、着目している商品IDのトピック分布との近さを判断し、両者が近いほど、所属確率を高く設定すればよい。
商品クラスタ割り当て部1122は、商品IDに対するクラスタリング(クラスタ割り当て)の結果を、記憶部1200に記憶させる。
単語トピック割り当て部1123は、各商品IDの各単語に対して、確率分布(θ)に従って、トピックを割り当てる。単語トピック割り当て部1123は、各単語に割り当てたトピックに基づいて、図6に模式的に示すような、トピック割り当て頻度情報を単語毎に生成する。そして、単語トピック割り当て部1123は、単語毎のトピック割り当て頻度情報を、記憶部1200に記憶させる。
ここで、Bag of words形式の文字データは、それぞれの商品IDクラスタが持つトピック分布を基に、トピックの単語分布で生成されていると仮定される。単語トピック割り当て部1123は、類似した意味の単語を持つ文字データが同じトピックに分類され、さらに、同じトピック分布を持つ商品ID同士が同じ商品IDクラスタに所属する確率が上がるように、単語にトピックを割り当てる。
パラメタ決定部1124は、顧客クラスタ割り当て部1121、商品クラスタ割り当て部1122、および、単語トピック割り当て部1123の処理結果に基づいて、各パラメタπ1,π2,φ,η,θ等を決定し、記憶部1200に記憶させる。
パラメタ決定部1124は、顧客IDのクラスタリング結果に基づいてπ1を決定し、商品IDのクラスタリング結果に基づいてπ2を決定する。π1およびπ2は、多項分布に従う。パラメタ決定部1124は、得られた顧客IDクラスタに依存しながら、ディリクレ分布に従いπ1を決定する。同様に、パラメタ決定部1124は、得られた商品IDクラスタに依存しながら、ディリクレ分布に従いπ2を決定する。
また、顧客IDと商品IDとを結ぶリンクは、ベルヌーイ分布に従うため、パラメタは、リンクの有無、または、それぞれのドメインのノードのクラスタ数に依存しながら、ベータ分布に従って決定される。
トピック毎の単語分布φは、多項分布に従うため、パラメタ決定部1124は、観測された単語、および、その単語に対応する商品IDが割り当てられたクラスタによって、φを変化させる。
また、パラメタ決定部1124は、得られた結果に基づいて、クラスタ関係ηを決定する。また、パラメタ決定部1124は、単語トピック割り当て部1123の処理結果に基づいて、クラスタ毎のトピック分布θを決定する。
また、顧客IDと商品IDとを結ぶリンクは、関係データyi,jに相当する。パラメタ決定部1124は、クラスタ関係ηに基づいて、確率的に、関係データyi,jを決定する。
クラスタリング部1120は、顧客クラスタ割り当て部1121による処理、商品クラスタ割り当て部1122による処理、単語トピック割り当て部1123による処理、および、パラメタ決定部1124による処理を繰り返す。
終了判定部1125は、上記の一連の処理の繰り返しを終了するか否かを判定する。終了判定部1125は、終了条件が満たされた場合に、上記の一連の処理の繰り返しを終了すると判定し、終了条件が満たされていなければ、繰り返しを続けると判定する。以下、終了条件の例を説明する。
例えば、上記の一連の処理の繰り返し回数が、クラスタリングの設定値の1つとして定められていてもよい。終了判定部1125は、上記の一連の処理の繰り返し回数が定められた回数に達したときに、繰り返しを終了すると判定してもよい。
また、例えば、終了判定部1125が、記憶部1200に記憶されている顧客IDのクラスタリング結果および商品IDのクラスタリング結果から、クラスタリングの精度を計測し、そのクラスタリングの精度を記憶部1200に記憶させてもよい。終了判定部1125は、前回に計測したクラスタリングの精度から、直近に計測したクラスタリングの精度への変化量を計算し、その変化量が小さければ(具体的には、変化量の絶対値が所定の閾値以下であれば)、繰り返しを終了すると判定してもよい。終了判定部1125は、クラスタリングの精度として、例えば、クラスタリングのモデルの尤度(対数尤度)を測定してもよい。
クラスタリング部1120の各要素は、既に記憶部1200に記憶されている種々のデータや種々のパラメタを更新してもよい。例えば、パラメタ決定部1124は、新たにπ1を決定した場合、既に、記憶されているπ1を新たなπ1に更新してもよい。あるいは、クラスタリング部1120の各要素は、既に記憶部1200に記憶されている種々のデータや種々のパラメタを残して、新たに作成したデータやパラメタを追加してもよい。例えば、例えば、パラメタ決定部1124は、新たにπ1を決定した場合、既に、記憶されているπ1を残して、新たなπ1を記憶部1200に追加で記憶させてもよい。ただし、この場合、クラスタリング部1120は、π1を参照する場合、最新のπ1を参照する。ここでは、π1を例にして説明したが、他のパラメタやデータに関しても同様である。
記憶部1200は、データ入力部1300が取得した種々のデータや、処理部1100の処理で得られた種々のデータを記憶する記憶装置である。記憶部1200は、計算機の主記憶装置であっても、二次記憶装置であってもよい。記憶部1200が二次記憶装置である場合、クラスタリング部1120は、処理を途中で中断し、その後、再開することができる。また、記憶部1200が、主記憶装置と二次記憶装置とに分かれた構成であって、処理部1100は、データの一部を主記憶装置に記憶させ、他のデータを二次記憶装置に記憶させてもよい。
出力部1400は、記憶部1200に記憶された、クラスタリング部1120による処理の結果を出力する。具体的には、出力部1400は、記憶部1200に記憶されたクラスタ割り当て(個々の顧客IDの各顧客IDクラスタへの所属確率、および、個々の商品IDの各商品IDクラスタへの所属確率)、各商品IDの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、各種パラメタの全部または一部を出力する。
出力部1400が結果を出力する態様は、特に限定されない。例えば、出力部1400は、結果を他の装置に出力してもよい。また、例えば、出力部1400は、結果をディスプレイ装置に表示させてもよい。
顧客クラスタ割り当て部1121、商品クラスタ割り当て部1122、単語トピック割り当て部1123、パラメタ決定部1124および終了判定部1125を含むクラスタリング部1120、並びに、データ入力部1300、初期化部1110、出力部1400は、例えば、プログラム(クラスタリングプログラム)に従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。この場合、CPUは、例えば、コンピュータのプログラム記憶装置(図3において図示略)等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、データ入力部1300、初期化部1110、クラスタリング部1120、および出力部1400として動作すればよい。
また、図3に示したクラスタリングシステム1000内の各要素が、それぞれ専用のハードウェアで実現されていてもよい。
また、本発明のクラスタリングシステム1000は、2つ以上の物理的に分離した装置が有線または無線で接続されている構成であってもよい。この点は、後述の実施形態においても同様である。
次に、第1の実施形態の処理経過を説明する。図8は、第1の実施形態の処理経過の例を示すフローチャートである。
データ入力部1300は、クラスタリングに用いられるデータ群(各顧客IDと各商品IDとを含む購買履歴データ、個々の商品IDに対応する文字データ)と、クラスタリングの設定値(例えば、顧客IDクラスタの数、商品IDクラスタの数、辞書の単語集合等)とを取得する(ステップS1)。
初期化部1110は、データ入力部1300が取得した購買履歴データ、個々の商品IDに対応する文字データ、クラスタリングの設定値を、記憶部1200に記憶させる(ステップS2)。このとき、個々の商品IDに対応する文字データがBag of words形式でない場合、初期化部1110は、文字データをBag of words形式に変換してから記憶部1200に記憶させる。
さらに、ステップS2において、初期化部1110は、種々のデータやパラメタを初期化する。初期化部1110は、各顧客IDに対するクラスタ割り当て、および、各商品IDに対するクラスタ割り当てに初期値を設定する。また、初期化部1110は、トピック割り当て結果(単語毎のトピック割り当て頻度情報)を初期化する。また、初期化部1110は、パラメタπ1,π2,φ,θ,ηを初期化する。初期化部1110は、初期化した各データや各パラメタを記憶部1200に記憶させる。
ステップS2の後、クラスタリング部1120は、終了条件が満たされるまで、ステップS3〜S7の処理を繰り返す。以下、ステップS3〜S7の処理を説明する。
顧客クラスタ割り当て部1121は、確率分布(π1)に従って、それぞれの顧客IDに対してクラスタ割り当てを行う(ステップS3)。
顧客クラスタ割り当て部1121は、1つの顧客IDが1つの顧客IDクラスタに所属する所属確率を決定する際、その顧客IDが、その1つの顧客IDクラスタと関係の強い商品IDクラスタに所属している商品IDとの関係を多く有しているほど、その所属確率を高い確率に定める。
顧客クラスタ割り当て部1121は、各顧客IDに対するクラスタ割り当ての結果を、記憶部1200に記憶させる。
次に、商品クラスタ割り当て部1122は、確率分布(π2)に従って、それぞれの商品IDに対してクラスタ割り当てを行う(ステップS4)。
商品クラスタ割り当て部1122は、1つの商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDが、その1つの商品IDクラスタと関係の強い顧客IDクラスタに所属している顧客IDとの関係を多く有しているほど、その所属確率を高い確率に定める。また、商品クラスタ割り当て部1122は、1つの商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDクラスタのトピック分布と、その商品IDのトピック分布が近いほど、その商品IDがその商品IDクラスタに所属する所属確率を高める。
商品クラスタ割り当て部1122は、各商品IDに対するクラスタ割り当ての結果を、記憶部1200に記憶させる。
次に、単語トピック割り当て部1123は、各商品IDの各単語に対して、確率分布(θ)に従って、トピックを割り当てる。単語トピック割り当て部1123は、各単語に割り当てたトピックに基づいて、トピック割り当て頻度情報を単語毎に生成する。そして、単語トピック割り当て部1123は、各商品IDの各単語に割り当てられたトピック、および、単語毎のトピック割り当て頻度情報を、記憶部1200に記憶させる(ステップS5)。
次に、パラメタ決定部1124は、ステップS3〜S5で得られた結果に基づいて、各パラメタを決定し、記憶部1200に記憶させる(ステップS6)。
次に、終了判定部1125は、終了条件が満たされたか否かを判定する(ステップS7)。終了条件が満たされていない場合(ステップS7のNo)、終了判定部1125は、ステップS3〜S7を繰り返すと判定する。そして、クラスタリング部1120は、ステップS3〜S7を再度、実行する。
また、終了条件が満たされた場合(ステップS7のYes)、終了判定部1125は、ステップS3〜S7の繰り返しを終了すると判定する。この場合、出力部1400は、直近に得られた各顧客IDに対するクラスタ割り当て、各商品IDに対するクラスタ割り当て、各商品IDの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、および、各種パラメタの全部または一部を出力する(ステップS8)。
なお、既に説明したように、パラメタ決定部1124は、既に記憶部1200に記憶されている種々のデータや種々のパラメタを残して、新たに作成したデータやパラメタを追加してもよい。この場合、出力部1400は、終了条件が満たされた時点を基準にして、直近のステップS6から所定回数前のステップS6までの各ステップS6で得られたパラメタの平均を計算し、パラメタとしてその平均を出力してもよい。
第1の実施形態によれば、クラスタリング部1120は、顧客IDのクラスタ割り当て、商品IDのクラスタ割り当て、各商品IDの各単語へのトピック割り当て、および、パラメタ決定を、終了条件が満満たされるまで繰り返す。この結果、顧客IDのクラスタ割り当ておよび商品IDのクラスタ割り当てだけでなく、クラスタ関係や、クラスタ毎のトピック分布も得られる。これらのデータにより、文字データに対応付けられているが、顧客IDとの間の関係データが存在していない商品IDが与えられた場合でも、その商品IDによって特定される商品を推奨する顧客を適切に特定することができる。従って、本実施形態によれば、文字データに対応付けられているが、顧客IDとの間の関係データが存在していない商品IDを、適切な顧客に推奨できるように、複数種類のID(顧客IDおよび商品ID)をクラスタリングすることができる。
実施形態2.
図9は、本発明の第2の実施形態のクラスタリングシステムの例を示す機能ブロック図である。第1の実施形態のクラスタリングシステムと同様の要素については、図3に示す符号と同一の符号を付し、説明を省略する。
図9に示すクラスタリングシステム1000は、第1の実施形態における動作に加えて、文字データに対応付けられた商品IDが新たに入力されたときに、その商品IDによって特定される商品を推奨するのに適切な顧客の顧客IDを特定する動作も行う。
第2の実施形態のクラスタリングシステム1000は、データ入力部1300、処理部1100、記憶部1200、出力部1400に加え、さらに、対象入力部2100と、顧客ID特定部2200と、特定結果出力部2300とを備える。顧客ID特定部2200は、クラスタ推定部2210と、顧客クラスタ特定部2220とを備える。
以下の説明では、クラスタリングシステム1000が第1の実施形態で説明したステップS1〜S8の動作を既に完了しているものとする。すなわち、終了条件が満たされた時点の直近に得られた各顧客IDに対するクラスタ割り当て、各商品IDに対するクラスタ割り当て、各商品IDの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、および、各種パラメタが、記憶部1200に記憶されているものとする。ただし、第2の実施形態では、ステップS8は実行されなくてもよく、終了判定が満たされるまで、ステップS3〜S7の処理が繰り返し実行されていればよい。
対象入力部2100は、上述のように第1の実施形態で説明した動作の完了後に、新たな商品IDと、その商品IDに対応付けられている文字データを取得する。具体的には、対象入力部2100は、推奨するのに適した顧客を特定すべき商品の商品IDと、その商品IDに対応付けられている文字データを取得する。対象入力部2100は、文字データが対応付けられた新たな商品IDが入力される入力インタフェースであってもよい。
ここでは、対象入力部2100が新商品の商品IDを取得する場合を例にして説明する。そして、その新商品は、まだ発売されておらず、どの顧客にも買われていないため、その新商品をいずれかの顧客が買ったという関係を示す購買履歴データはまだ存在していないものとする。なお、新商品であっても、例えば、説明文や、原材料等を示す文字データが存在することが一般的である。従って、その商品IDには、そのような文字データが対応付けられているものとする。
対象入力部2100は、文字データが対応付けられた新たな商品IDを複数取得してもよいが、ここでは、説明を簡単にするため、対象入力部2100が、文字データが対応付けられた新たな商品IDを1つ取得する場合を例にして説明する。対象入力部2100が新たな商品IDを複数取得した場合、顧客ID特定部2200および特定結果出力部2300は、商品ID毎に同様の処理を行えばよい。
顧客ID特定部2200は、文字データが対応付けられた新たな商品IDが与えられた場合、その文字データ、商品IDクラスタ毎のトピック分布、および、クラスタ関係に基づいて、その新たな商品IDが示す商品を推奨するのに適切な顧客の顧客IDを特定する。
クラスタ推定部2210は、新たな商品IDに対応付けられている文字データがBag of words形式でない場合、その文字データをBag of words形式に変換する。
また、クラスタ推定部2210は、その商品IDに対応付けられている文字データに含まれる各単語に対してトピックを割り当てる。その各単語に割り当てたトピックと、既に単語トピック割り当て部1123が各単語に割り当てたトピックとに基づいて、クラスタ推定部2210は、トピック割り当て頻度情報を単語毎に生成する。クラスタ推定部2210は、この単語毎のトピック割り当て頻度情報を記憶部1200に記憶させる。
さらに、クラスタ推定部2210は、確率分布(π2)に従って、新たな商品IDに対してクラスタ割り当てを行う。
クラスタ推定部2210は、その新たな商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDクラスタのトピック分布と、その商品IDのトピック分布が近いほど、その商品IDがその商品IDクラスタに所属する所属確率を高める。例えば、クラスタ推定部2210は、その商品IDに対応付けられている文字データに含まれている単語毎に、トピック割り当て頻度情報を読み込み、着目している商品IDクラスタのトピック分布と比較する。そして、商品クラスタ割り当て部1122は、例えば、その商品IDクラスタのトピック分布に類似していると判断したトピック割り当て頻度情報に対応する単語が、その文字データにいくつ含まれているかを判定する。商品クラスタ割り当て部1122は、その単語の個数が多いほど、その新たな商品IDがその商品IDクラスタに所属する所属確率を高める。
クラスタ推定部2210は、商品IDクラスタ毎に、新たな商品IDの所属確率を求めて、例えば、所属確率が最も高い商品クラスタIDを、その商品IDが所属する商品IDクラスタであると推定する。
顧客クラスタ特定部2220は、クラスタ推定部2210に推定された商品IDクラスタ(換言すれば、新たな商品IDが所属すると推定された商品IDクラスタ)との関係が強い顧客IDクラスタを特定する。例えば、顧客クラスタ特定部2220は、推定された商品IDクラスタとの間のクラスタ関係が所定値以上である顧客IDクラスタを、その商品IDクラスタの関係が強い顧客IDクラスタとして特定する。
さらに、顧客クラスタ特定部2220は、特定した顧客IDクラスタに所属する顧客IDを、新たな商品IDが示す商品(本例では新商品)の推奨に適した顧客の顧客IDとして特定する。このとき、顧客クラスタ特定部2220は、例えば、特定した顧客IDクラスタへの所属確率が閾値以上である顧客IDを特定すればよい。この顧客IDの数は1つであるとは限らない。
そして、顧客クラスタ特定部2220は、新たな商品IDが示す商品を、その顧客IDが示す顧客に推奨する旨の情報(以下、推奨情報と記す。)を生成する。
特定結果出力部2300は、推奨情報を出力する。推奨情報の出力態様は、特に限定されない。例えば、特定結果出力部2300は、情報を他の装置に出力してもよい。また、例えば、特定結果出力部2300は、情報をディスプレイ装置に表示させてもよい。また、特定結果出力部2300は、クラスタ推定部2210が単語毎に生成したトピック割り当て頻度情報、クラスタ推定部2210によって推定された商品IDクラスタ、および、顧客クラスタ特定部2220が特定した顧客IDクラスタの全部または一部も、推奨情報とともに出力してもよい。
クラスタ推定部2210および顧客クラスタ特定部2220を含む顧客ID特定部2200、並びに、対象入力部2100、特定結果出力部2300は、クラスタリング部1120等と同様に、例えば、プログラム(クラスタリングプログラム)に従って動作するコンピュータのCPUによって実現される。
図10は、第2の実施形態の処理経過の例を示すフローチャートである。前述のように、クラスタリングシステム1000は、第1の実施形態で述べた動作は完了しているものとする。また、対象入力部2100、クラスタ推定部2210、顧客クラスタ特定部2220および特定結果出力部2300の動作の詳細については、既に説明しているので、以下では、詳細な説明を省略する。
対象入力部2100は、文字データが対応付けられた新たな商品IDを取得する(ステップS11)。
クラスタ推定部2210は、その文字データと、商品IDクラスタ毎のトピック分布とに基づいて、新たな商品IDが所属する商品IDクラスタを推定する(ステップS12)。
次に、顧客クラスタ特定部2220は、ステップS12で推定された商品IDクラスタとの関係が強い顧客IDクラスタを、クラスタ関係に基づいて特定する(ステップS13)。
顧客クラスタ特定部2220は、その顧客IDクラスに所属する顧客IDを、新たな商品IDが示す商品の推奨に適した顧客の顧客IDとして特定する(ステップS14)。また、ステップS14において、顧客クラスタ特定部2220は、推奨情報(新たな商品IDが示す商品を、その顧客IDが示す顧客に推奨する旨の情報)を生成する。
特定結果出力部2300は、推奨情報を出力する(ステップS15)。既に説明したように、特定結果出力部2300は、推奨情報と合わせて、他の情報を出力してもよい。
本実施形態によれば、クラスタ推定部2210は、新たな商品IDに対応付けられた文字データと、商品IDクラスタ毎のトピック分布とに基づいて、新たな商品IDが所属する商品IDクラスタを推定する。さらに、顧客クラスタ特定部2220は、その商品IDクラスタとの関係が強い顧客IDクラスタを、クラスタ関係に基づいて特定する。顧客クラスタ特定部2220は、その顧客IDクラスに所属する顧客IDを、新たな商品IDが示す商品の推奨に適した顧客の顧客IDとして特定する。従って、新たな商品IDによって特定される商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在していてなくても、その商品を推奨する顧客として適切な顧客を特定することができる。
第2の実施形態におけるクラスタリングシステム1000は、レコメンドシステムと称することができる。また、第2の実施形態におけるクラスタリングプログラムは、レコメンドプログラムと称することができる。
次に、第2の実施形態の変形例について説明する。
上記の第2の実施形態では、新たな商品IDが示す商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在しないものとして説明したが、そのような購買履歴データが存在してもよい。この場合、対象入力部2100は、文字データが対応付けられた新たな商品IDと、その購買履歴データを取得してもよい。さらに、クラスタ推定部2210は、第2の実施形態で説明した動作に加えて、購買履歴データに基づく所属確率の判断を行ってもよい。すなわち、クラスタ推定部2210は、新たな商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDが、その1つの商品IDクラスタと関係の強い顧客IDクラスタに所属している顧客IDとの関係を多く有しているほど、その所属確率を高い確率に定めてもよい。この動作は、商品クラスタ割り当て部1122が購買履歴データに基づいて所属確率を調整する動作と同様である。その他の点は、上記の第2の実施形態と同様である。この変形例(変形例1とする。)によれば、新たな商品IDが示す商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在している場合にも、その商品を推奨する顧客として適切な顧客を特定することができる。
また、上記のような購買履歴データが存在していて、新たな商品IDに対応付けられる文字データが存在していなくてもよい。この場合、対象入力部2100は、文字データが対応付けられていない商品IDと、その購買履歴データを取得する。また、クラスタ推定部2210は、文字データに基づく所属確率の調整は行わない。そして、クラスタ推定部2210は、新たな商品IDが1つの商品IDクラスタに所属する所属確率を決定する際、その商品IDが、その1つの商品IDクラスタと関係の強い顧客IDクラスタに所属している顧客IDとの関係を多く有しているほど、その所属確率を高い確率に定める。この動作は、変形例1で述べた動作と同様である。また、その他の点は、上記の第2の実施形態と同様である。この変形例(変形例2とする。)によれば、上記のような購買履歴データが存在していて、新たな商品IDに対応付けられる文字データが存在していなくても、その商品IDが示す商品を推奨する顧客として適切な顧客を特定することができる。
また、変形例2と同様に、上記のような購買履歴データが存在していて、新たな商品IDに対応付けられる文字データが存在していないとする。そして、対象入力部2100は、文字データが対応付けられていない商品IDと、その購買履歴データを取得する。この場合、クラスタ推定部2210は、その商品IDに対応する文字データを導出し、特定結果出力部2300が、その文字データを出力してもよい。例えば、クラスタ推定部2210は、変形例2と同様に、新たな商品IDが各商品IDクラスタに所属する所属確率を定め、新たな商品IDが所属する商品IDクラスタを推定する。そして、クラスタ推定部2210は、その商品IDクラスタに対応するトピック分布を参照し、その商品IDクラスタのトピックに該当する可能性が高いトピックを特定する。さらに、クラスタ推定部2210は、そのトピックの単語分布(図5に例示する単語分布)を参照し、出現頻度の高い単語を1つまたは複数特定する。特定結果出力部2300は、その単語を、新たな商品IDに対応する文字データとして出力する。この変形例(変形例3とする。)によれば、対応する文字データが存在していなかった商品IDに文字データを付与することができる。換言すれば、対応する文字データが存在していなかった商品に文字データを付与することができる。クラスタリングシステム1000のユーザは、例えば、その商品のダイレクトメールを作成する際に、その付与された文字データを用いてもよい。
上記の変形例3において、クラスタ推定部2210は、上記と同様の動作によって、文字データが対応付けられている既存の商品IDに対して、新たな文字データを特定してもよい。
次に、上記の各実施形態に、ギブスサンプリングを適用した場合の種々の確率を数式によって示す。顧客および商品それぞれに対してクラスタ割り当てを行うものとする。また、顧客と商品との関係を示す購買履歴データが与えられているものとする。
商品の単語のトピックがkである確率は、以下に示す式(1)のように表される。
顧客の所属するクラスタがg1である確率は、以下に示す式(2)のように表される。
商品の所属するクラスタがg2である確率は、以下に示す式(3)のように表される。
なお、式(1)から式(3)の数式内の各記号の意味を、以下の表1に示す。
これらの確率値で定義される確率分布からサンプリングを行うことにより、単語トピック割り当て部1123は、各商品の単語についてのトピック分布を取得することができ、顧客クラスタ割り当て部1121は、各顧客の各顧客クラスタへの所属確率を取得でき、商品クラスタ割り当て部1122は、各商品の各商品クラスタへの所属確率を取得できる。
また、上記の各実施形態では、2種類のドメインのうち、一方が顧客IDであり、他方が商品IDである場合を例にしたが、ドメインの種類は、この例に限定されない。例えば、2種類のドメインのうち、一方がある会社内の社員IDであり、他方がその会社内のプロジェクトIDであってもよい。この場合、例えば、個々のプロジェクトIDに文字データ(例えば、プロジェクトの説明文)が対応付けられているものとする。また、関係データとして、個々の社員がどのプロジェクトに参加したかを表す関係データが用いられる。この場合、本発明は、新規のプロジェクトへの参加を推奨する社員の特定に利用することができる。
また、ドメインの種類の数は、2に限らず、3以上であってもよい。ドメインの種類が3以上である場合、クラスタ関係はテンソルとして表される。ドメインの種類が3である場合の例として、クラスタリングシステムが、顧客ID、商品IDおよび地域IDを共クラスタリングする場合等が挙げられる。この場合、例えば、ある商品を推奨すべき品川区内の顧客は誰か等を特定することができる。
図11は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ100は、例えば、CPU101と、主記憶装置102と、補助記憶装置103と、インタフェース104と、ディスプレイ装置105とを備える。
本発明の各実施形態のクラスタリングシステム1000は、コンピュータ100に実装される。クラスタリングシステム1000の動作は、プログラム(クラスタリングプログラム)の形式で補助記憶装置103に記憶されている。CPU101は、プログラムを補助記憶装置103から読み出して主記憶装置102に展開し、そのプログラムに従って上記の処理を実行する。
補助記憶装置103は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース104を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ100に配信される場合、配信を受けたコンピュータ100がそのプログラムを主記憶装置102に展開し、上記の処理を実行してもよい。
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置103に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図12は、本発明のクラスタリングシステムの概要を示すブロック図である。本発明のクラスタリングシステムは、第1クラスタリング手段3001と、第2クラスタリング手段3002と、トピック割り当て手段3003と、パラメタ決定手段3004と、判定手段3005とを備える。
第1クラスタリング手段3001(例えば、顧客クラスタ割り当て部1121)は、第1ID(例えば、顧客ID)と第2ID(例えば、商品ID)との関係を示す関係データ(例えば、購買履歴データ)に基づいて、第1IDをクラスタリングする第1クラスタリング処理を実行する。
第2クラスタリング手段3002(例えば、商品クラスタ割り当て部1122)は、関係データと、第2IDに対応付けられた文字データとに基づいて、第2IDをクラスタリングする第2クラスタリング処理を実行する。
トピック割り当て手段3003(例えば、単語トピック割り当て部1123)は、個々の第2IDに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行する。
パラメタ決定手段3004(例えば、パラメタ決定部1124)は、第1クラスタリング処理に用いるパラメタ、第2クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行する。
判定手段3005(例えば、終了判定部1125)は、所定の条件が満たされたか否かを判定する。
そして、所定の条件が満たされたと判定されるまで、第1クラスタリング処理、第2クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返す。
そのような構成により、対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨できるように、複数種類の事項をクラスタリングすることができる。
また、パラメタ決定手段3004が、第1クラスタリング処理の結果得られた第1IDの個々のクラスタと、第2クラスタリング処理の結果得られた第2IDの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、第1クラスタリング手段3001が、1つの第1IDが1つのクラスタに所属する所属確率を決定する際、当該第1IDが、その1つのクラスタと関係の強い第2IDのクラスタに所属している第2IDとの関係を多く有しているほど、所属確率を高い確率とし、第2クラスタリング手段3002が、1つの第2IDが1つのクラスタに所属する所属確率を決定する際、当該第2IDが、その1つのクラスタと関係の強い第1IDのクラスタに所属している第1IDとの関係を多く有しているほど、所属確率を高い確率にするとともに、その1つのクラスタに対応するトピック分布と、当該第2IDのトピック分布とが近いほど、所属確率を高い確率とすることが好ましい。
また、文字データに対応付けられている新たな第2IDが与えられた場合、その文字データと第2IDのクラスタ毎のトピック分布とに基づいて、新たな第2IDが所属するクラスタを推定するクラスタ推定手段(例えば、クラスタ推定部2210)と、推定されたクラスタとの関係が強い第1IDのクラスタを、クラスタ関係に基づいて特定する第1IDクラスタ特定手段(例えば、顧客クラスタ特定部)とを備える構成であってもよい。
また、第1IDクラスタ特定手段が、与えられた新たな第2IDが示す事項(例えば、商品)を、特定した第1IDのクラスタに所属する第1IDが示す事項(例えば、顧客)に対して推奨する旨の情報を生成してもよい。
また、図13は、本発明のレコメンドシステムの概要を示すブロック図である。本発明のレコメンドシステムは、クラスタリング手段4001と、顧客ID特定手段4002とを備える。
クラスタリング手段4001(例えば、クラスタリング部1120)は、顧客IDと商品IDとの関係を示す関係データ(例えば、購買履歴データ)と、商品IDに対応付けられた文字データとに基づいて、顧客IDおよび商品IDを共クラスタリングするとともに、顧客IDの個々のクラスタと商品IDの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品IDのクラスタ毎にトピック分布を決定する。
顧客ID特定手段4002(例えば、顧客ID特定部2200)は、文字データに対応付けられている新たな商品IDが与えられた場合、その文字データ、商品IDのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品IDが示す商品の推奨に適した顧客の顧客IDを特定する。
そのような構成により、対応する文字データが存在しているが顧客との間の関係データが存在していない商品を推奨する顧客として適切な顧客を特定することができる。
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、例えば、レコメンドシステムに利用されるクラスタリングシステムに好適に適用される。