(57)【要約】  対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨できるように、複数種類の事項をクラスタリングすることができるクラスタリングシステムを提供することを目的とする。第１クラスタリング手段３００１は、関係データに基づいて、第１ＩＤをクラスタリングする。第２クラスタリング手段３００２は、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする。トピック割り当て手段３００３は、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てる。パラメタ決定手段３００４は、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定する。そして、所定の条件が満たされたと判定されるまで、上記の処理を繰り返す。
2018078761.tif 000002
【特許請求の範囲】
【請求項１】
第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、前記第１ＩＤをクラスタリングする第１クラスタリング処理を実行する第１クラスタリング手段と、
前記関係データと、前記第２ＩＤに対応付けられた文字データとに基づいて、前記第２ＩＤをクラスタリングする第２クラスタリング処理を実行する第２クラスタリング手段と、
個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行するトピック割り当て手段と、
前記第１クラスタリング処理に用いるパラメタ、前記第２クラスタリング処理に用いるパラメタ、および、前記トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行するパラメタ決定手段と、
所定の条件が満たされたか否かを判定する判定手段とを備え、
前記所定の条件が満たされたと判定されるまで、前記第１クラスタリング処理、前記第２クラスタリング処理、前記トピック割り当て処理、および前記パラメタ決定処理を繰り返す
ことを特徴とするクラスタリングシステム。
【請求項２】
パラメタ決定手段は、第１クラスタリング処理の結果得られた第１ＩＤの個々のクラスタと、第２クラスタリング処理の結果得られた第２ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、
第１クラスタリング手段は、１つの第１ＩＤが１つのクラスタに所属する所属確率を決定する際、当該第１ＩＤが、当該１つのクラスタと関係の強い第２ＩＤのクラスタに所属している第２ＩＤとの関係を多く有しているほど、前記所属確率を高い確率とし、
第２クラスタリング手段は、１つの第２ＩＤが１つのクラスタに所属する所属確率を決定する際、当該第２ＩＤが、当該１つのクラスタと関係の強い第１ＩＤのクラスタに所属している第１ＩＤとの関係を多く有しているほど、前記所属確率を高い確率にするとともに、前記１つのクラスタに対応するトピック分布と、当該第２ＩＤのトピック分布とが近いほど、前記所属確率を高い確率とする
請求項１に記載のクラスタリングシステム。
【請求項３】
文字データに対応付けられている新たな第２ＩＤが与えられた場合、前記文字データと第２ＩＤのクラスタ毎のトピック分布とに基づいて、前記新たな第２ＩＤが所属するクラスタを推定するクラスタ推定手段と、
推定された前記クラスタとの関係が強い第１ＩＤのクラスタを、クラスタ関係に基づいて特定する第１ＩＤクラスタ特定手段とを備える
請求項２に記載のクラスタリングシステム。
【請求項４】
第１ＩＤクラスタ特定手段は、与えられた新たな第２ＩＤが示す事項を、特定した第１ＩＤのクラスタに所属する第１ＩＤが示す事項に対して推奨する旨の情報を生成する
請求項３に記載のクラスタリングシステム。
【請求項５】
顧客ＩＤと商品ＩＤとの関係を示す関係データと、前記商品ＩＤに対応付けられた文字データとに基づいて、前記顧客ＩＤおよび前記商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定するクラスタリング手段と、
文字データに対応付けられている新たな商品ＩＤが与えられた場合、前記文字データ、商品ＩＤのクラスタ毎のトピック分布、および、前記クラスタ関係に基づいて、前記新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する顧客ＩＤ特定手段とを備える
ことを特徴とするレコメンドシステム。
【請求項６】
第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、前記第１ＩＤをクラスタリングする第１クラスタリング処理を実行し、
前記関係データと、前記第２ＩＤに対応付けられた文字データとに基づいて、前記第２ＩＤをクラスタリングする第２クラスタリング処理を実行し、
個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行し、
前記第１クラスタリング処理に用いるパラメタ、前記第２クラスタリング処理に用いるパラメタ、および、前記トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行し、
所定の条件が満たされたか否かを判定し、
前記所定の条件が満たされたと判定するまで、前記第１クラスタリング処理、前記第２クラスタリング処理、前記トピック割り当て処理、および前記パラメタ決定処理を繰り返す
ことを特徴とするクラスタリング方法。
【請求項７】
顧客ＩＤと商品ＩＤとの関係を示す関係データと、前記商品ＩＤに対応付けられた文字データとに基づいて、前記顧客ＩＤおよび前記商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定し、
文字データに対応付けられている新たな商品ＩＤが与えられた場合、前記文字データ、商品ＩＤのクラスタ毎のトピック分布、および、前記クラスタ関係に基づいて、前記新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する
ことを特徴とするレコメンド方法。
【請求項８】
コンピュータに、
第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、前記第１ＩＤをクラスタリングする第１クラスタリング処理、
前記関係データと、前記第２ＩＤに対応付けられた文字データとに基づいて、前記第２ＩＤをクラスタリングする第２クラスタリング処理、
個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理、
前記第１クラスタリング処理に用いるパラメタ、前記第２クラスタリング処理に用いるパラメタ、および、前記トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理、および、
所定の条件が満たされたか否かを判定する判定処理を実行させ、
前記所定の条件が満たされたと判定されるまで、前記第１クラスタリング処理、前記第２クラスタリング処理、前記トピック割り当て処理、および前記パラメタ決定処理を繰り返させる
ためのクラスタリングプログラム。
【請求項９】
コンピュータに、
顧客ＩＤと商品ＩＤとの関係を示す関係データと、前記商品ＩＤに対応付けられた文字データとに基づいて、前記顧客ＩＤおよび前記商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定するクラスタリング処理、および、
文字データに対応付けられている新たな商品ＩＤが与えられた場合、前記文字データ、商品ＩＤのクラスタ毎のトピック分布、および、前記クラスタ関係に基づいて、前記新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する顧客ＩＤ特定処理
を実行させるためのレコメンドプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類の事項をそれぞれクラスタリングするクラスタリングシステム、クラスタリング方法およびクラスタリングプログラム、並びに、クラスタリングを利用したレコメンドシステム、レコメンド方法およびレコメンドプログラムに関する。
【背景技術】
【０００２】
レコメンドシステムは、例えば、顧客の嗜好性から顧客をクラスタリングし、購入する可能性が高い商品を提示するシステムである。なお、実際に、クラスタリングされるのは、顧客ＩＤや商品ＩＤであるが、ここでは、便宜的に、「顧客をクラスタリングする。」、「商品をクラスタリングする。」等と記載する場合がある。レコメンドシステムは、インターネット内外で行われる様々な売買活動に適用できる。【０００３】
購買履歴から顧客および商品をクラスタリングし、購買の可能性を数値化するモデルが、一般的なレコメンドシステムで用いられている。このようなモデルの代表例として、協調フィルタリングや関係モデルがある。関係モデルの中では、Stochastic Block ModelやMixed Membership Stochastic Block Model がよく使用される。Stochastic Block ModelやMixed Membership Stochastic Block Model では、顧客クラスタと商品クラスタの関係の強さ（例えば、購買のしやすさ）が、０から１までの実数で数値化される。そのため、顧客クラスタに属する顧客に、その顧客クラスタとの関係が強い商品クラスタに属する商品がレコメンドされる。なお、購買履歴は、商品と顧客との関係を示す関係データであるということができる。【０００４】
協調フィルタリングを用いたレコメンドアルゴリズムが、非特許文献１に記載されている。【０００５】
関係モデルとトピックモデルとを組み合わせた関係トピックモデルが、非特許文献２に記載されている。関係トピックモデルでは、クラスタリングの対象全てに文字データ（textual data）が対応付けられていることを前提としている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, “Item-based Collaborative Filtering Recommendation Algorithms”, In ICWWW, pages 285-295, ２００１年
【非特許文献２】Jonathan Chang, and David M. Blei, “Relational Topic Models for Document Networks”, In AISTATS, pages 81-88, ２００９年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に記載された技術では、購買履歴のある商品をレコメンドすることは可能である。しかし、例えば、新たに発売される商品（新商品）については、まだ購買履歴が存在しない。非特許文献１に記載された技術では、そのような、まだ購買履歴が存在していない商品を推奨することはできなかった。この点は、一般的なレコメンドシステムでも同様である。【０００８】
購買履歴が存在しない商品であっても、その商品に対応する文字データは存在する。商品に対応するテキスト情報の例として、商品の説明文、原材料等を示す文字データ、その商品に対するユーザのレビュー文等が挙げられる。しかし、対応する文字データが存在する商品であっても、非特許文献２に記載された関係トピックモデルを用いて、適切な顧客に推奨することは困難である。前述のように、関係トピックモデルは、クラスタリングの対象全てに文字データが対応付けられていることを前提としている。そして、商品に対応する文字データが存在していても、顧客に対応する文字データは存在しない。例えば、顧客の説明文等は存在しない。従って、関係トピックモデルを用いて、商品および顧客それぞれをクラスタリングすることはできず、その結果、関係トピックモデルを用いて商品を適切な顧客に推奨することはできない。【０００９】
このような問題は、商品を顧客に推奨する場合以外でも生じる。すなわち、このような問題は、対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨する場合にも生じる。【００１０】
そこで、本発明は、対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨できるように、複数種類の事項をクラスタリングすることができるクラスタリングシステム、クラスタリング方法およびクラスタリングプログラムを提供することを目的とする。【００１１】
また、本発明は、対応する文字データが存在しているが顧客との間の関係データが存在していない商品を推奨する顧客として適切な顧客を特定することができるレコメンドシステム、レコメンド方法およびレコメンドプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によるクラスタリングシステムは、第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、第１ＩＤをクラスタリングする第１クラスタリング処理を実行する第１クラスタリング手段と、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする第２クラスタリング処理を実行する第２クラスタリング手段と、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行するトピック割り当て手段と、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行するパラメタ決定手段と、所定の条件が満たされたか否かを判定する判定手段とを備え、所定の条件が満たされたと判定されるまで、第１クラスタリング処理、第２クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返すことを特徴とする。【００１３】
また、本発明によるレコメンドシステムは、顧客ＩＤと商品ＩＤとの関係を示す関係データと、商品ＩＤに対応付けられた文字データとに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定するクラスタリング手段と、文字データに対応付けられている新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する顧客ＩＤ特定手段とを備えることを特徴とする。【００１４】
また、本発明によるクラスタリング方法は、第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、第１ＩＤをクラスタリングする第１クラスタリング処理を実行し、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする第２クラスタリング処理を実行し、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行し、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行し、所定の条件が満たされたか否かを判定し、所定の条件が満たされたと判定するまで、第１クラスタリング処理、第２クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返すことを特徴とする。【００１５】
また、本発明によるレコメンド方法は、顧客ＩＤと商品ＩＤとの関係を示す関係データと、商品ＩＤに対応付けられた文字データとに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定し、文字データに対応付けられている新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定することを特徴とする。【００１６】
また、本発明によるクラスタリングプログラムは、コンピュータに、第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、第１ＩＤをクラスタリングする第１クラスタリング処理、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする第２クラスタリング処理、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理、および、所定の条件が満たされたか否かを判定する判定処理を実行させ、所定の条件が満たされたと判定されるまで、第１クラスタリング処理、第２クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返させることを特徴とする。【００１７】
また、本発明によるレコメンドプログラムは、コンピュータに、顧客ＩＤと商品ＩＤとの関係を示す関係データと、商品ＩＤに対応付けられた文字データとに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定するクラスタリング処理、および、文字データに対応付けられている新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する顧客ＩＤ特定処理を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨できるように、複数種類の事項をクラスタリングすることができる。【００１９】
また、本発明によれば、対応する文字データが存在しているが顧客との間の関係データが存在していない商品を推奨する顧客として適切な顧客を特定することができる。
【図面の簡単な説明】
【００２０】
【図１】購買履歴データの例を示す説明図である。
【図２】クラスタ関係の例を示す模式図である。
【図３】本発明の第１の実施形態のクラスタリングシステムの例を示す機能ブロック図である。
【図４】個々の商品ＩＤに対応する文字データの例を示す説明図である。
【図５】ある１つのトピックの単語分布の例を示す模式図である。
【図６】ある１つの単語に対するトピックの割り当て頻度を表す情報の例を示す模式図である。
【図７】ある１つの商品ＩＤクラスタのトピック分布の例を示す模式図である。
【図８】第１の実施形態の処理経過の例を示すフローチャートである。
【図９】本発明の第２の実施形態のクラスタリングシステムの例を示す機能ブロック図である。
【図１０】第２の実施形態の処理経過の例を示すフローチャートである。
【図１１】本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図１２】本発明のクラスタリングシステムの概要を示すブロック図である。
【図１３】本発明のレコメンドシステムの概要を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面を参照して説明する。
【００２２】
また、以下に示す各実施形態では、第１ＩＤおよび第２ＩＤそれぞれをクラスタリングする場合を例にして説明する。以下、第１ＩＤおよび第２ＩＤについて説明する。
【００２３】
また、クラスタリングの対象の種類をドメインと記す。以下に示す各実施形態では、第１ＩＤ、第２ＩＤがそれぞれドメインとなる。以下の説明では、ドメインが２種類存在する場合を例にする。
【００２４】
さらに、個々の第１ＩＤがそれぞれ顧客ＩＤであり、個々の第２ＩＤがそれぞれ商品ＩＤであるものとして説明する。以下、第１ＩＤを顧客ＩＤと記し、第２ＩＤを商品ＩＤと記す。ただし、本発明において、第１ＩＤ、第２ＩＤはそれぞれ、顧客ＩＤ、商品ＩＤに限定されるわけではない。
【００２５】
個々の商品ＩＤ（第２ＩＤ）には、文字データが対応付けられている。商品ＩＤによって特定される商品には、文字データが存在する。その文字データを、商品ＩＤに対応する文字データとすればよい。文字データは、文章であっても、あるいは、単語の集合であってもよい。例えば、商品ＩＤに対応する文字データとして、商品の説明文、原材料等を示す文字データ、その商品に対するユーザのレビュー文等が挙げられるが、これらに限定されない。
【００２６】
また、以下に示す各実施形態では、顧客ＩＤと商品ＩＤとの関係を示す関係データとして、購買履歴データを用いる。図１は、購買履歴データの例を示す説明図である。図１に示す例では、「ユーザ１」、「ユーザ２」、「ユーザ３」等が顧客ＩＤである。また、「りんご」、「ノート」、「鉛筆」、「ワイン」等の商品名を商品ＩＤとしている。購買履歴データは、顧客ＩＤによって特定される顧客が、商品ＩＤによって特定される商品を購入した実績があるか否かという関係を示している。図１では、顧客が商品を購入した実績があることを“１”で示し、実績がないことを“０”で表している。例えば、「ユーザ２」は、「りんご」を購入したことはあるが、「ワイン」を購入したことはない。
【００２７】
上記のような購買履歴データ（関係データ）は、個々のユーザＩＤおよび個々の商品ＩＤをそれぞれノードとし、ユーザＩＤから購入実績のある商品ＩＤにリンクを設けた二部グラフで表すことができる。そして、一方のドメインの各ノード（各商品ＩＤ）には、文字データが対応付けられている。
【００２８】
次に、「協調フィルタリング」、「関係モデル」および「関係トピックモデル」におけるクラスタリングや推奨について説明する。その上で、本発明の発明者が開発した新たなモデル（後述の一部関係トピックモデル（片側関係トピックモデル））について説明する。なお、実際にクラスタリングされるのは、顧客ＩＤや商品ＩＤであるが、便宜的に、「顧客をクラスタリングする。」、「商品をクラスタリングする。」等と記載する場合がある。同様に、顧客ＩＤクラスタ（顧客ＩＤのクラスタ）や商品ＩＤクラスタ（商品ＩＤのクラスタ）を、便宜的に、顧客クラスタ、商品クラスタと記す場合がある。
【００２９】
［協調フィルタリング］
協調フィルタリングは、一般的なレコメンドシステムでよく用いられる。協調フィルタリングは、顧客と商品との関係を示す購買履歴をもとにしたマトリクスを作成し、顧客、商品をそれぞれクラスタリングする。なお、クラスタリングとは、データ（顧客ＩＤや商品ＩＤ）を、複数のクラスタに分けるタスクである。顧客クラスタや商品クラスタは、ある相関係数に基づいて評価された類似性が高いものでまとめられる集合体であるということができる。協調フィルタリングでは、類似した顧客同士が類似した商品を購入する可能性が高いと仮定し、同じクラスタに所属する顧客に対して、同じような商品を推奨する。
【００３０】
［関係モデル］
関係モデルを用いたレコメンドシステムは、基本的に、協調フィルタリングを用いた場合と似ているが、関係モデルは確率生成モデルである。ここでは、関係モデルの中でも代表的なStochastic Block Model（以下、ＳＢＭと記す。）について説明する。また、以下の説明では、顧客、商品をまとめてノードと記し、購買関係をリンクと記す。
【００３１】
ＳＢＭは、それぞれのノードに対して、ある確率でクラスタを割り当てる。この確率は、多項分布に従うと仮定されている。また、購買関係を表現するリンクは、ベルヌーイ分布で生成される。リンクの生成確率を支配するベルヌーイ分布のパラメタは、顧客クラスタ数＊商品クラスタ数だけ存在する。また、顧客（顧客ＩＤ）の個々のクラスタと商品（商品ＩＤ）の個々のクラスタとの関係の強さを示す情報をクラスタ関係と記す。クラスタ関係は、例えば、顧客（顧客ＩＤ）のクラスタと商品（商品ＩＤ）のクラスタとの組毎に、０〜１の範囲の値で表される。また、クラスタ関係の値が０に近いほど、クラスタ間の関係が弱く、クラスタ関係の値が１に近いほど、クラスタ間の関係が強いものとする。以下の説明において、クラスタ関係を符号ηで表す場合がある。クラスタ関係ηは、ベータ分布から生成される。クラスタの生成確率を支配する多項分布のパラメタは、ディリクレ分布から生成される。これらの仮定のもとで、ＳＢＭは、現在観測されているリンクから算出された事後確率が最大となるようなパラメタを推定する。例えば、顧客のドメインで、ある顧客のあるクラスタへの所属確率を算出する際、そのクラスタと他のドメイン（商品のドメイン）の各クラスタとの間にある確率モデルの値を参照する。購買履歴を使用した場合、ある顧客のある顧客クラスタへの所属確率は、その顧客クラスタと関係の強い商品クラスタに属する商品を、どれだけその顧客が購入しているかによって定まる。これにより、似た商品を買う顧客が同じ顧客クラスタに集まり、また、似た顧客によって買われる商品が同じ商品クラスタに集まる。
【００３２】
ここで、クラスタ関係の例を示す。クラスタ関係は、上記のように、顧客ＩＤ（換言すれば、第１ＩＤ）の個々のクラスタと商品ＩＤ（換言すれば、第２ＩＤ）の個々のクラスタとの関係の強さを示す情報である。以下、クラスタ関係が０〜１の範囲の値である場合を例にして説明する。また、クラスタ関係の値が０に近いほど、クラスタ間の関係が弱く、クラスタ関係の値が１に近いほど、クラスタ間の関係が強いものとして説明する。クラスタ関係の値は、顧客ＩＤクラスタの数と商品ＩＤクラスタの数との積だけ導出される。図２は、クラスタ関係の例を示す模式図である。なお、図２に示す「スポーツ」、「本」、「インドア好き」、「アウトドア好き」は、システム管理者が便宜的に付けたラベルであるものとする。
【００３３】
顧客ＩＤクラスタに所属している顧客ＩＤと、商品ＩＤクラスタに所属している商品ＩＤとの関係が強いほど、その２つのクラスタの組み合わせにおけるクラスタ関係は大きな値となる。すなわち、顧客ＩＤクラスタに所属している顧客ＩＤによって特定される顧客と、商品ＩＤクラスタに所属している商品ＩＤによって特定される商品との関係が強いほど、クラスタ関係は“１”に近づき、その関係が弱いほど、クラスタ関係は“０”に近づく。図２に示す例において、顧客ＩＤクラスタ１には、インドア好きの顧客の顧客ＩＤが多く所属している。また、顧客ＩＤクラスタ２には、アウトドア好きの顧客の顧客ＩＤが多く所属している。また、商品ＩＤクラスタ１には、スポーツ商品の商品ＩＤが多く所属している。例えば、顧客ＩＤクラスタ２と商品ＩＤクラスタ１との間のクラスタ関係は０．９であり、１に近い値である。このことは、顧客ＩＤクラスタ２に所属している顧客ＩＤによって特定される顧客が、商品ＩＤクラスタ１に所属している商品ＩＤによって特定される商品を購入することが多いことを表し、顧客ＩＤクラスタ２と商品ＩＤクラスタ１との関係が強いことを表している。また、例えば、顧客ＩＤクラスタ１と商品ＩＤクラスタ１との間のクラスタ関係は０．１であり、０に近い値である。このことは、顧客ＩＤクラスタ１に所属している顧客ＩＤによって特定される顧客が、商品ＩＤクラスタ１に所属している商品ＩＤによって特定される商品を購入することが少ないことを表し、顧客ＩＤクラスタ１と商品ＩＤクラスタ１との関係が弱いことを表している。
【００３４】
［関係トピックモデル］
次に、関係トピックモデルについて説明する。ここでは、特に代表的な、非特許文献２に記載の関係トピックモデルについて説明する。非特許文献２に記載の関係トピックモデルは、上記の関係モデルに対して文章の生成過程を組み込んだモデルである。関係モデルで割り当てられたクラスタがトピックとしても用いられ、それぞれのトピックは単語多項分布を持つ。この点は、混合ユニグラムモデルや潜在的ディリクレ配分法等と同様である。全ての文章データは、Bag of wordsとして取り扱われ、上記の単語多項分布から確率的に生成されると仮定する。結果として、ノードは、リンクだけでなく、トピックを加味しながら、クラスタリングされる。ただし、非特許文献２に記載の関係トピックモデルに限らず、関係トピックモデルは、ノード全てが文字データを持つことを前提としている。そのため、２つのドメイン（顧客ＩＤのドメインおよび商品ＩＤのドメイン）のうち、一方のドメイン（顧客ＩＤのドメイン）のノードに文字データが対応付けられていない態様には、関係トピックモデルを適用することは困難である。
【００３５】
［一部関係トピックモデル（片側関係トピックモデル）］
一部関係トピックモデルは、本発明の発明者が開発した新たなモデルである。一部関係トピックモデルとは、関係モデルであって、一部のドメインが内部にトピック分布を有するモデルである。ドメインの数が２つであり、一方のドメインが内部にトピック分布を有する場合には、一部関係トピックモデルを、片側関係トピックモデルと称することもできる。本発明の発明者は、一部関係トピックモデルを用いたレコメンド方法を開発した。以下に、このレコメンド方法の一例の概略を示す。このレコメンド方法では、以下のステップを実行する。
【００３６】
１．（初期値設定）
顧客ＩＤクラスタ数、商品ＩＤクラスタ数、ハイパーパラメタ、言語辞書等を設定する。
【００３７】
２．（ギブスサンプリング）
観測データをもとに、各隠れ値、パラメタを、ギブスサンプリングによって決定する。
【００３８】
３．（終了判定）
上記の「２．（ギブスサンプリング）」の終了条件が満たされたかを判定する。この終了条件が満たされなければ、上記の「２．（ギブスサンプリング）」の処理を繰り返す。
【００３９】
４．（顧客判定）
新商品の文字データに基づいて、新商品に対してクラスタ割り当てを実行し、その新商品を推奨する顧客として適切な顧客を判定する。
【００４０】
実施形態１．
図３は、本発明の第１の実施形態のクラスタリングシステムの例を示す機能ブロック図である。
【００４１】
第１の実施形態のクラスタリングシステム１０００は、データ入力部１３００と、処理部１１００と、記憶部１２００と、出力部１４００とを備える。処理部１１００は、初期化部１１１０と、クラスタリング部１１２０とを備える。クラスタリング部１１２０は、顧客クラスタ割り当て部１１２１と、商品クラスタ割り当て部１１２２と、単語トピック割り当て部１１２３と、パラメタ決定部１１２４と、終了判定部１１２５とを備える。
【００４２】
データ入力部１３００は、片側関係トピックモデルを適用したクラスタリングに用いられるデータ群と、クラスタリングの設定値とを取得する。データ入力部１３００は、例えば、外部の装置にアクセスして、データ群と、クラスタリングの設定値を取得してもよい。あるいは、データ入力部１３００は、データ群と、クラスタリングの設定値とが入力される入力インタフェースであってもよい。
【００４３】
クラスタリングに用いられるデータ群は、購買履歴データを含む。購買履歴データは、顧客ＩＤと商品ＩＤとの関係を示す関係データであり、例えば、図１に示すように表すことができる。既に説明したように、購買履歴データは、顧客ＩＤによって特定される顧客が、商品ＩＤによって特定される商品を購入した実績があるか否かという関係を示している。購買履歴データには、各顧客ＩＤおよび各商品ＩＤが含まれている。
【００４４】
また、クラスタリングに用いられるデータ群は、個々の商品ＩＤに対応する文字データも含む。図４は、個々の商品ＩＤに対応する文字データの例を示す説明図である。図４では、商品ＩＤが商品名である場合を例にしている。図４に示す例では、商品に、説明文またはレビュー文が対応付けられている。ただし、クラスタリングシステム１０００で内では、Bag of words形式の文字データを扱う。すなわち、個々の単語が説明文やレビュー文等に何回出現したかが分かる形式の文字データを扱う。例えば、初期化部１１１０が、個々の商品ＩＤに対応する文章等を形態素解析によって単語に分割し、Bag of words形式の文字データに変換する。
【００４５】
クラスタリングの設定値として入力される情報には、顧客ＩＤクラスタの数、商品ＩＤクラスタの数や、文章等からBag of words形式の文字データを構成するための辞書の単語集合がある。
【００４６】
初期化部１１１０は、データ入力部１３００から、購買履歴データ（関係データ）、個々の商品ＩＤに対応する文字データ、および、クラスタリングの設定値を受け取り、記憶部１２００に記憶させる。初期化部１１１０は、個々の商品ＩＤに対応する文字データが、文章等のようにBag of words形式でない場合、その文字データをBag of words形式に変換してから記憶部１２００に記憶させる。以下、購買履歴データ（関係データ）を符号ｙｉ，ｊで表す場合がある（図３参照）。また、文字データを符号ｗｊで表す場合がある（図３参照）。
【００４７】
また、初期化部１１１０は、クラスタリングに用いるパラメタを初期化し、記憶部１２００に記憶させる。
【００４８】
初期化部１１１０は、各顧客ＩＤに対するクラスタ割り当て、および、各商品ＩＤに対するクラスタ割り当てに初期値を設定する。すなわち、まだ、クラスタリングが行われていない時点において、各顧客ＩＤに対するクラスタ割り当ての初期状態、および、各商品ＩＤに対するクラスタ割り当ての初期状態を定める。初期化部１１１０は、各顧客ＩＤに対するクラスタ割り当ての初期状態、および、各商品ＩＤに対するクラスタ割り当ての初期状態を、ランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、各顧客ＩＤに対するクラスタ割り当てを符号ｚｉで表し、各商品ＩＤに対するクラスタ割り当てを符号ｚｊで表す場合がある（図３参照）。初期化部１１１０は、各顧客ＩＤに対するクラスタ割り当ての初期状態、および、各商品ＩＤに対するクラスタ割り当ての初期状態を記憶部１２００に記憶させる。
【００４９】
また、初期化部１１１０は、顧客ＩＤクラスタにノード（顧客ＩＤ）が集まる際の集まりやすさ（偏り）を表すパラメタを初期化する。以下、このパラメタを符号π１で表す場合がある（図３参照）。同様に、初期化部１１１０は、商品ＩＤクラスタにノード（商品ＩＤ）が集まる際の集まりやすさ（偏り）を表すパラメタを初期化する。以下、このパラメタを符号π２で表す場合がある（図３参照）。π１およびπ２は、確率分布である。初期化部１１１０は、初期化したπ１およびπ２を、記憶部１２００に記憶させる。
【００５０】
また、初期化部１１１０は、トピック毎の単語分布を初期化する。トピックは、単語として直接的に明示されていなくても、単語に関連している。例えば、「オリンピック」というトピックに関する文字情報では、「体操」、「水泳」等の単語の出現頻度が高く、オリンピックと無関係な単語の出現頻度は低い。トピック毎の単語分布は、トピック毎に、単語の出現頻度を表す情報である。ただし、クラスタリングシステム１０００は、トピックに対して「オリンピック」等の具体的なラベルを付すわけではなく、各トピックに対して、例えば、“トピック１”，“トピック２”等のＩＤを付す。「オリンピック」等の具体的なラベルは、例えば、システム管理者によって定められる。図５は、ある１つのトピックの単語分布の例を示す模式図である。図５に示す横軸は、辞書に含まれる各単語を表し、縦軸は、そのトピックにおける単語の出現頻度を表す。初期化部１１１０は、トピック毎の単語分布を、ランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、トピック毎の単語分布を符号φで表す場合がある（図３参照）。初期化部１１１０は、初期化したφを記憶部１２００に記憶させる。
【００５１】
また、初期化部１１１０は、各商品ＩＤの各単語に対するトピック割り当て結果を初期化する。すなわち、まだ、単語トピック割り当て部１１２３によるトピック割り当てが行われていない時点において、トピック割り当て結果の初期状態を定める。後述するように、単語トピック割り当て部１１２３は、各商品ＩＤの各単語に対してトピックを割り当てる。さらに、単語トピック割り当て部１１２３は、単語毎に、各トピックの割り当て頻度を表す情報を生成する。図６は、ある１つの単語に対するトピックの割り当て頻度を表す情報の例を示す模式図である。図６に示す横軸は、各トピックのトピックＩＤを表し、縦軸は、着目している単語に対する各トピックの割り当て頻度を表す。初期化部１１１０は、このような、単語トピック割り当て部１１２３の処理で得られる結果の初期状態を定める。初期化部１１１０は、トピック割り当て結果の初期状態をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、単語トピック割り当て部１１２３の処理で得られる結果を、符号ｚｊ，ｎで表す場合がある（図３参照）。初期化部１１１０は、初期化したｚｊ，ｎを記憶部１２００に記憶させる。
【００５２】
また、初期化部１１１０は、商品ＩＤクラスタ毎のトピック分布を初期化する。商品ＩＤクラスタ毎のトピック分布は、単語トピック割り当て部１１２３がトピック割り当てを実行する際に用いるパラメタである。トピック分布は、商品ＩＤクラスタ毎に定められる。そして、トピック分布は、着目している商品ＩＤクラスタのトピックに各トピックが該当する可能性の高さを表す。図７は、ある１つの商品ＩＤクラスタのトピック分布の例を示す模式図である。図７に示す横軸は、各トピックのトピックＩＤを表し、縦軸は、着目している商品ＩＤクラスタのトピックに各トピックが該当する可能性を表している。初期化部１１１０は、商品ＩＤクラスタ毎のトピック分布をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。以下、商品ＩＤクラスタ毎のトピック分布を符号θで表す場合がある（図３参照）。初期化部１１１０は、初期化したθを記憶部１２００に記憶させる。
【００５３】
初期化部１１１０は、クラスタ関係ηを初期化する。初期化部１１１０は、各顧客ＩＤクラスタおよび各商品ＩＤクラスタの組み合わせ毎にクラスタ関係の初期値を定める。クラスタ関係ηは、既に説明したように、個々の顧客ＩＤクラスタと個々の商品ＩＤクラスタとの関係の強さを示す情報（数値）である。初期化部１１１０は、クラスタ関係の初期値をランダムに定めてもよく、あるいは、一様分布に従って定めてもよい。初期化部１１１０は、初期化したηを記憶部１２００に記憶させる。
【００５４】
クラスタリング部１１２０は、顧客ＩＤに対するクラスタ割り当て、商品ＩＤに対するクラスタ割り当て、各商品ＩＤの各単語に対するトピック割り当て、および、各パラメタの決定を繰り返すことによって、顧客ＩＤおよび商品ＩＤを共クラスタリングする。
【００５５】
顧客クラスタ割り当て部１１２１は、確率分布（π１）に従って、それぞれの顧客ＩＤに対してクラスタ割り当てを行う。顧客クラスタ割り当て部１１２１は、顧客ＩＤをクラスタリングしていると言える。
【００５６】
顧客クラスタ割り当て部１１２１は、１つの顧客ＩＤが１つの顧客ＩＤクラスタに所属する所属確率を決定する際、その顧客ＩＤが、その１つの顧客ＩＤクラスタと関係の強い商品ＩＤクラスタに所属している商品ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定める。顧客クラスタ割り当て部１１２１は、顧客ＩＤクラスタと関係の強い商品ＩＤクラスタをクラスタ関係に基づいて特定すればよい。例えば、顧客クラスタ割り当て部１１２１は、着目している顧客ＩＤクラスタとの間のクラスタ関係が所定値以上である商品ＩＤクラスタを、着目している顧客ＩＤクラスタと関係の強い商品ＩＤクラスタとして定めてもよい。また、顧客クラスタ割り当て部１１２１は、着目している顧客ＩＤと、その商品ＩＤクラスタに所属している商品ＩＤとの関係の多寡を、購買履歴データに基づいて判定する。顧客クラスタ割り当て部１１２１は、着目している顧客ＩＤによって特定される顧客が、その商品ＩＤクラスタに所属している商品ＩＤによって特定される商品を買ったという関係が多いほど、着目している顧客ＩＤが着目している顧客ＩＤクラスタに所属する所属確率を高く設定すればよい。すなわち、顧客クラスタ割り当て部１１２１は、着目している顧客ＩＤと、その商品ＩＤクラスタに所属している商品ＩＤとのリンクが多いほど、所属確率を高く設定すればよい。この結果、似た商品を買う顧客の顧客ＩＤが、同じ顧客ＩＤクラスタに集まる。
【００５７】
顧客クラスタ割り当て部１１２１は、顧客ＩＤに対するクラスタリング（クラスタ割り当て）の結果を、記憶部１２００に記憶させる。
【００５８】
商品クラスタ割り当て部１１２２は、確率分布（π２）に従って、それぞれの商品ＩＤに対してクラスタ割り当てを行う。商品クラスタ割り当て部１１２２は、顧客ＩＤをクラスタリングしていると言える。
【００５９】
商品クラスタ割り当て部１１２２は、１つの商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、２つの情報を参照する。１つ目の情報は、購買履歴データである。２つ目の情報は、着目しているクラスタのトピック分布である。以下、より具体的に説明する。
【００６０】
商品クラスタ割り当て部１１２２は、１つの商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤが、その１つの商品ＩＤクラスタと関係の強い顧客ＩＤクラスタに所属している顧客ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定める。商品クラスタ割り当て部１１２２は、商品ＩＤクラスタと関係の強い顧客ＩＤクラスタをクラスタ関係に基づいて特定すればよい。例えば、商品クラスタ割り当て部１１２２は、着目している商品ＩＤクラスタとの間のクラスタ関係が所定値以上である顧客ＩＤクラスタを、着目している商品ＩＤクラスタと関係の強い顧客ＩＤクラスタとして定めてもよい。また、商品クラスタ割り当て部１１２２は、着目している商品ＩＤと、その顧客ＩＤクラスタに所属している顧客ＩＤとの関係の多寡を、購買履歴データに基づいて判定する。商品クラスタ割り当て部１１２２は、着目している商品ＩＤによって特定される商品が、その顧客ＩＤクラスタに所属している顧客ＩＤによって特定される顧客によって買われたという関係が多いほど、着目している商品ＩＤが着目している商品ＩＤクラスタに所属する所属確率を高く設定すればよい。すなわち、商品クラスタ割り当て部１１２２は、着目している商品ＩＤと、その顧客ＩＤクラスタに所属している顧客ＩＤとのリンクが多いほど、所属確率を高く設定すればよい。この結果、似た顧客によって買われる商品の商品ＩＤが、同じ商品ＩＤクラスタに集まる。
【００６１】
また、商品クラスタ割り当て部１１２２は、１つの商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤクラスタのトピック分布を参照する。既に説明したように、１つの商品ＩＤクラスタのトピック分布は、図７に例示するように模式的に表すことができる。商品クラスタ割り当て部１１２２は、着目している商品ＩＤクラスタのトピック分布と、着目している商品ＩＤのトピック分布が近いほど、その商品ＩＤがその商品ＩＤクラスタに所属する所属確率を高める。単語毎に、図６に模式的に示すような各トピックの割り当て頻度を表す情報（以下、トピック割り当て頻度情報と記す。）が記憶部１２００に記憶されている。商品ＩＤに対応する文字データに含まれる個々の単語のトピック割り当て頻度情報は、その商品ＩＤのトピック分布であると言える。商品クラスタ割り当て部１１２２は、着目している商品ＩＤに対応する文字データに含まれている単語毎に、トピック割り当て頻度情報を読み込み、着目している商品ＩＤクラスタのトピック分布と比較する。そして、商品クラスタ割り当て部１１２２は、例えば、その商品ＩＤクラスタのトピック分布に類似していると判断したトピック割り当て頻度情報に対応する単語が、その文字データにいくつ含まれているかを判定する。その単語の個数が多いほど、着目している商品ＩＤクラスタのトピック分布と、着目している商品ＩＤのトピック分布が近いと言える。商品クラスタ割り当て部１１２２は、このように、着目している商品ＩＤクラスタのトピック分布と、着目している商品ＩＤのトピック分布との近さを判断し、両者が近いほど、所属確率を高く設定すればよい。
【００６２】
商品クラスタ割り当て部１１２２は、商品ＩＤに対するクラスタリング（クラスタ割り当て）の結果を、記憶部１２００に記憶させる。
【００６３】
単語トピック割り当て部１１２３は、各商品ＩＤの各単語に対して、確率分布（θ）に従って、トピックを割り当てる。単語トピック割り当て部１１２３は、各単語に割り当てたトピックに基づいて、図６に模式的に示すような、トピック割り当て頻度情報を単語毎に生成する。そして、単語トピック割り当て部１１２３は、単語毎のトピック割り当て頻度情報を、記憶部１２００に記憶させる。
【００６４】
ここで、Bag of words形式の文字データは、それぞれの商品ＩＤクラスタが持つトピック分布を基に、トピックの単語分布で生成されていると仮定される。単語トピック割り当て部１１２３は、類似した意味の単語を持つ文字データが同じトピックに分類され、さらに、同じトピック分布を持つ商品ＩＤ同士が同じ商品ＩＤクラスタに所属する確率が上がるように、単語にトピックを割り当てる。
【００６５】
パラメタ決定部１１２４は、顧客クラスタ割り当て部１１２１、商品クラスタ割り当て部１１２２、および、単語トピック割り当て部１１２３の処理結果に基づいて、各パラメタπ１，π２，φ，η，θ等を決定し、記憶部１２００に記憶させる。
【００６６】
パラメタ決定部１１２４は、顧客ＩＤのクラスタリング結果に基づいてπ１を決定し、商品ＩＤのクラスタリング結果に基づいてπ２を決定する。π１およびπ２は、多項分布に従う。パラメタ決定部１１２４は、得られた顧客ＩＤクラスタに依存しながら、ディリクレ分布に従いπ１を決定する。同様に、パラメタ決定部１１２４は、得られた商品ＩＤクラスタに依存しながら、ディリクレ分布に従いπ２を決定する。
【００６７】
また、顧客ＩＤと商品ＩＤとを結ぶリンクは、ベルヌーイ分布に従うため、パラメタは、リンクの有無、または、それぞれのドメインのノードのクラスタ数に依存しながら、ベータ分布に従って決定される。
【００６８】
トピック毎の単語分布φは、多項分布に従うため、パラメタ決定部１１２４は、観測された単語、および、その単語に対応する商品ＩＤが割り当てられたクラスタによって、φを変化させる。
【００６９】
また、パラメタ決定部１１２４は、得られた結果に基づいて、クラスタ関係ηを決定する。また、パラメタ決定部１１２４は、単語トピック割り当て部１１２３の処理結果に基づいて、クラスタ毎のトピック分布θを決定する。
【００７０】
また、顧客ＩＤと商品ＩＤとを結ぶリンクは、関係データｙｉ，ｊに相当する。パラメタ決定部１１２４は、クラスタ関係ηに基づいて、確率的に、関係データｙｉ，ｊを決定する。
【００７１】
クラスタリング部１１２０は、顧客クラスタ割り当て部１１２１による処理、商品クラスタ割り当て部１１２２による処理、単語トピック割り当て部１１２３による処理、および、パラメタ決定部１１２４による処理を繰り返す。
【００７２】
終了判定部１１２５は、上記の一連の処理の繰り返しを終了するか否かを判定する。終了判定部１１２５は、終了条件が満たされた場合に、上記の一連の処理の繰り返しを終了すると判定し、終了条件が満たされていなければ、繰り返しを続けると判定する。以下、終了条件の例を説明する。
【００７３】
例えば、上記の一連の処理の繰り返し回数が、クラスタリングの設定値の１つとして定められていてもよい。終了判定部１１２５は、上記の一連の処理の繰り返し回数が定められた回数に達したときに、繰り返しを終了すると判定してもよい。
【００７４】
また、例えば、終了判定部１１２５が、記憶部１２００に記憶されている顧客ＩＤのクラスタリング結果および商品ＩＤのクラスタリング結果から、クラスタリングの精度を計測し、そのクラスタリングの精度を記憶部１２００に記憶させてもよい。終了判定部１１２５は、前回に計測したクラスタリングの精度から、直近に計測したクラスタリングの精度への変化量を計算し、その変化量が小さければ（具体的には、変化量の絶対値が所定の閾値以下であれば）、繰り返しを終了すると判定してもよい。終了判定部１１２５は、クラスタリングの精度として、例えば、クラスタリングのモデルの尤度（対数尤度）を測定してもよい。
【００７５】
クラスタリング部１１２０の各要素は、既に記憶部１２００に記憶されている種々のデータや種々のパラメタを更新してもよい。例えば、パラメタ決定部１１２４は、新たにπ１を決定した場合、既に、記憶されているπ１を新たなπ１に更新してもよい。あるいは、クラスタリング部１１２０の各要素は、既に記憶部１２００に記憶されている種々のデータや種々のパラメタを残して、新たに作成したデータやパラメタを追加してもよい。例えば、例えば、パラメタ決定部１１２４は、新たにπ１を決定した場合、既に、記憶されているπ１を残して、新たなπ１を記憶部１２００に追加で記憶させてもよい。ただし、この場合、クラスタリング部１１２０は、π１を参照する場合、最新のπ１を参照する。ここでは、π１を例にして説明したが、他のパラメタやデータに関しても同様である。
【００７６】
記憶部１２００は、データ入力部１３００が取得した種々のデータや、処理部１１００の処理で得られた種々のデータを記憶する記憶装置である。記憶部１２００は、計算機の主記憶装置であっても、二次記憶装置であってもよい。記憶部１２００が二次記憶装置である場合、クラスタリング部１１２０は、処理を途中で中断し、その後、再開することができる。また、記憶部１２００が、主記憶装置と二次記憶装置とに分かれた構成であって、処理部１１００は、データの一部を主記憶装置に記憶させ、他のデータを二次記憶装置に記憶させてもよい。
【００７７】
出力部１４００は、記憶部１２００に記憶された、クラスタリング部１１２０による処理の結果を出力する。具体的には、出力部１４００は、記憶部１２００に記憶されたクラスタ割り当て（個々の顧客ＩＤの各顧客ＩＤクラスタへの所属確率、および、個々の商品ＩＤの各商品ＩＤクラスタへの所属確率）、各商品ＩＤの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、各種パラメタの全部または一部を出力する。
【００７８】
出力部１４００が結果を出力する態様は、特に限定されない。例えば、出力部１４００は、結果を他の装置に出力してもよい。また、例えば、出力部１４００は、結果をディスプレイ装置に表示させてもよい。
【００７９】
顧客クラスタ割り当て部１１２１、商品クラスタ割り当て部１１２２、単語トピック割り当て部１１２３、パラメタ決定部１１２４および終了判定部１１２５を含むクラスタリング部１１２０、並びに、データ入力部１３００、初期化部１１１０、出力部１４００は、例えば、プログラム（クラスタリングプログラム）に従って動作するコンピュータのＣＰＵ（Central Processing Unit ）によって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図３において図示略）等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、データ入力部１３００、初期化部１１１０、クラスタリング部１１２０、および出力部１４００として動作すればよい。
【００８０】
また、図３に示したクラスタリングシステム１０００内の各要素が、それぞれ専用のハードウェアで実現されていてもよい。
【００８１】
また、本発明のクラスタリングシステム１０００は、２つ以上の物理的に分離した装置が有線または無線で接続されている構成であってもよい。この点は、後述の実施形態においても同様である。
【００８２】
次に、第１の実施形態の処理経過を説明する。図８は、第１の実施形態の処理経過の例を示すフローチャートである。
【００８３】
データ入力部１３００は、クラスタリングに用いられるデータ群（各顧客ＩＤと各商品ＩＤとを含む購買履歴データ、個々の商品ＩＤに対応する文字データ）と、クラスタリングの設定値（例えば、顧客ＩＤクラスタの数、商品ＩＤクラスタの数、辞書の単語集合等）とを取得する（ステップＳ１）。
【００８４】
初期化部１１１０は、データ入力部１３００が取得した購買履歴データ、個々の商品ＩＤに対応する文字データ、クラスタリングの設定値を、記憶部１２００に記憶させる（ステップＳ２）。このとき、個々の商品ＩＤに対応する文字データがBag of words形式でない場合、初期化部１１１０は、文字データをBag of words形式に変換してから記憶部１２００に記憶させる。
【００８５】
さらに、ステップＳ２において、初期化部１１１０は、種々のデータやパラメタを初期化する。初期化部１１１０は、各顧客ＩＤに対するクラスタ割り当て、および、各商品ＩＤに対するクラスタ割り当てに初期値を設定する。また、初期化部１１１０は、トピック割り当て結果（単語毎のトピック割り当て頻度情報）を初期化する。また、初期化部１１１０は、パラメタπ１，π２，φ，θ，ηを初期化する。初期化部１１１０は、初期化した各データや各パラメタを記憶部１２００に記憶させる。
【００８６】
ステップＳ２の後、クラスタリング部１１２０は、終了条件が満たされるまで、ステップＳ３〜Ｓ７の処理を繰り返す。以下、ステップＳ３〜Ｓ７の処理を説明する。
【００８７】
顧客クラスタ割り当て部１１２１は、確率分布（π１）に従って、それぞれの顧客ＩＤに対してクラスタ割り当てを行う（ステップＳ３）。
【００８８】
顧客クラスタ割り当て部１１２１は、１つの顧客ＩＤが１つの顧客ＩＤクラスタに所属する所属確率を決定する際、その顧客ＩＤが、その１つの顧客ＩＤクラスタと関係の強い商品ＩＤクラスタに所属している商品ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定める。
【００８９】
顧客クラスタ割り当て部１１２１は、各顧客ＩＤに対するクラスタ割り当ての結果を、記憶部１２００に記憶させる。
【００９０】
次に、商品クラスタ割り当て部１１２２は、確率分布（π２）に従って、それぞれの商品ＩＤに対してクラスタ割り当てを行う（ステップＳ４）。
【００９１】
商品クラスタ割り当て部１１２２は、１つの商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤが、その１つの商品ＩＤクラスタと関係の強い顧客ＩＤクラスタに所属している顧客ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定める。また、商品クラスタ割り当て部１１２２は、１つの商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤクラスタのトピック分布と、その商品ＩＤのトピック分布が近いほど、その商品ＩＤがその商品ＩＤクラスタに所属する所属確率を高める。
【００９２】
商品クラスタ割り当て部１１２２は、各商品ＩＤに対するクラスタ割り当ての結果を、記憶部１２００に記憶させる。
【００９３】
次に、単語トピック割り当て部１１２３は、各商品ＩＤの各単語に対して、確率分布（θ）に従って、トピックを割り当てる。単語トピック割り当て部１１２３は、各単語に割り当てたトピックに基づいて、トピック割り当て頻度情報を単語毎に生成する。そして、単語トピック割り当て部１１２３は、各商品ＩＤの各単語に割り当てられたトピック、および、単語毎のトピック割り当て頻度情報を、記憶部１２００に記憶させる（ステップＳ５）。
【００９４】
次に、パラメタ決定部１１２４は、ステップＳ３〜Ｓ５で得られた結果に基づいて、各パラメタを決定し、記憶部１２００に記憶させる（ステップＳ６）。
【００９５】
次に、終了判定部１１２５は、終了条件が満たされたか否かを判定する（ステップＳ７）。終了条件が満たされていない場合（ステップＳ７のＮｏ）、終了判定部１１２５は、ステップＳ３〜Ｓ７を繰り返すと判定する。そして、クラスタリング部１１２０は、ステップＳ３〜Ｓ７を再度、実行する。
【００９６】
また、終了条件が満たされた場合（ステップＳ７のＹｅｓ）、終了判定部１１２５は、ステップＳ３〜Ｓ７の繰り返しを終了すると判定する。この場合、出力部１４００は、直近に得られた各顧客ＩＤに対するクラスタ割り当て、各商品ＩＤに対するクラスタ割り当て、各商品ＩＤの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、および、各種パラメタの全部または一部を出力する（ステップＳ８）。
【００９７】
なお、既に説明したように、パラメタ決定部１１２４は、既に記憶部１２００に記憶されている種々のデータや種々のパラメタを残して、新たに作成したデータやパラメタを追加してもよい。この場合、出力部１４００は、終了条件が満たされた時点を基準にして、直近のステップＳ６から所定回数前のステップＳ６までの各ステップＳ６で得られたパラメタの平均を計算し、パラメタとしてその平均を出力してもよい。
【００９８】
第１の実施形態によれば、クラスタリング部１１２０は、顧客ＩＤのクラスタ割り当て、商品ＩＤのクラスタ割り当て、各商品ＩＤの各単語へのトピック割り当て、および、パラメタ決定を、終了条件が満満たされるまで繰り返す。この結果、顧客ＩＤのクラスタ割り当ておよび商品ＩＤのクラスタ割り当てだけでなく、クラスタ関係や、クラスタ毎のトピック分布も得られる。これらのデータにより、文字データに対応付けられているが、顧客ＩＤとの間の関係データが存在していない商品ＩＤが与えられた場合でも、その商品ＩＤによって特定される商品を推奨する顧客を適切に特定することができる。従って、本実施形態によれば、文字データに対応付けられているが、顧客ＩＤとの間の関係データが存在していない商品ＩＤを、適切な顧客に推奨できるように、複数種類のＩＤ（顧客ＩＤおよび商品ＩＤ）をクラスタリングすることができる。
【００９９】
実施形態２．
図９は、本発明の第２の実施形態のクラスタリングシステムの例を示す機能ブロック図である。第１の実施形態のクラスタリングシステムと同様の要素については、図３に示す符号と同一の符号を付し、説明を省略する。
【０１００】
図９に示すクラスタリングシステム１０００は、第１の実施形態における動作に加えて、文字データに対応付けられた商品ＩＤが新たに入力されたときに、その商品ＩＤによって特定される商品を推奨するのに適切な顧客の顧客ＩＤを特定する動作も行う。
【０１０１】
第２の実施形態のクラスタリングシステム１０００は、データ入力部１３００、処理部１１００、記憶部１２００、出力部１４００に加え、さらに、対象入力部２１００と、顧客ＩＤ特定部２２００と、特定結果出力部２３００とを備える。顧客ＩＤ特定部２２００は、クラスタ推定部２２１０と、顧客クラスタ特定部２２２０とを備える。
【０１０２】
以下の説明では、クラスタリングシステム１０００が第１の実施形態で説明したステップＳ１〜Ｓ８の動作を既に完了しているものとする。すなわち、終了条件が満たされた時点の直近に得られた各顧客ＩＤに対するクラスタ割り当て、各商品ＩＤに対するクラスタ割り当て、各商品ＩＤの各単語に割り当てられたトピック、単語毎のトピック割り当て頻度情報、および、各種パラメタが、記憶部１２００に記憶されているものとする。ただし、第２の実施形態では、ステップＳ８は実行されなくてもよく、終了判定が満たされるまで、ステップＳ３〜Ｓ７の処理が繰り返し実行されていればよい。
【０１０３】
対象入力部２１００は、上述のように第１の実施形態で説明した動作の完了後に、新たな商品ＩＤと、その商品ＩＤに対応付けられている文字データを取得する。具体的には、対象入力部２１００は、推奨するのに適した顧客を特定すべき商品の商品ＩＤと、その商品ＩＤに対応付けられている文字データを取得する。対象入力部２１００は、文字データが対応付けられた新たな商品ＩＤが入力される入力インタフェースであってもよい。
【０１０４】
ここでは、対象入力部２１００が新商品の商品ＩＤを取得する場合を例にして説明する。そして、その新商品は、まだ発売されておらず、どの顧客にも買われていないため、その新商品をいずれかの顧客が買ったという関係を示す購買履歴データはまだ存在していないものとする。なお、新商品であっても、例えば、説明文や、原材料等を示す文字データが存在することが一般的である。従って、その商品ＩＤには、そのような文字データが対応付けられているものとする。
【０１０５】
対象入力部２１００は、文字データが対応付けられた新たな商品ＩＤを複数取得してもよいが、ここでは、説明を簡単にするため、対象入力部２１００が、文字データが対応付けられた新たな商品ＩＤを１つ取得する場合を例にして説明する。対象入力部２１００が新たな商品ＩＤを複数取得した場合、顧客ＩＤ特定部２２００および特定結果出力部２３００は、商品ＩＤ毎に同様の処理を行えばよい。
【０１０６】
顧客ＩＤ特定部２２００は、文字データが対応付けられた新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤクラスタ毎のトピック分布、および、クラスタ関係に基づいて、その新たな商品ＩＤが示す商品を推奨するのに適切な顧客の顧客ＩＤを特定する。
【０１０７】
クラスタ推定部２２１０は、新たな商品ＩＤに対応付けられている文字データがBag of words形式でない場合、その文字データをBag of words形式に変換する。
【０１０８】
また、クラスタ推定部２２１０は、その商品ＩＤに対応付けられている文字データに含まれる各単語に対してトピックを割り当てる。その各単語に割り当てたトピックと、既に単語トピック割り当て部１１２３が各単語に割り当てたトピックとに基づいて、クラスタ推定部２２１０は、トピック割り当て頻度情報を単語毎に生成する。クラスタ推定部２２１０は、この単語毎のトピック割り当て頻度情報を記憶部１２００に記憶させる。
【０１０９】
さらに、クラスタ推定部２２１０は、確率分布（π２）に従って、新たな商品ＩＤに対してクラスタ割り当てを行う。
【０１１０】
クラスタ推定部２２１０は、その新たな商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤクラスタのトピック分布と、その商品ＩＤのトピック分布が近いほど、その商品ＩＤがその商品ＩＤクラスタに所属する所属確率を高める。例えば、クラスタ推定部２２１０は、その商品ＩＤに対応付けられている文字データに含まれている単語毎に、トピック割り当て頻度情報を読み込み、着目している商品ＩＤクラスタのトピック分布と比較する。そして、商品クラスタ割り当て部１１２２は、例えば、その商品ＩＤクラスタのトピック分布に類似していると判断したトピック割り当て頻度情報に対応する単語が、その文字データにいくつ含まれているかを判定する。商品クラスタ割り当て部１１２２は、その単語の個数が多いほど、その新たな商品ＩＤがその商品ＩＤクラスタに所属する所属確率を高める。
【０１１１】
クラスタ推定部２２１０は、商品ＩＤクラスタ毎に、新たな商品ＩＤの所属確率を求めて、例えば、所属確率が最も高い商品クラスタＩＤを、その商品ＩＤが所属する商品ＩＤクラスタであると推定する。
【０１１２】
顧客クラスタ特定部２２２０は、クラスタ推定部２２１０に推定された商品ＩＤクラスタ（換言すれば、新たな商品ＩＤが所属すると推定された商品ＩＤクラスタ）との関係が強い顧客ＩＤクラスタを特定する。例えば、顧客クラスタ特定部２２２０は、推定された商品ＩＤクラスタとの間のクラスタ関係が所定値以上である顧客ＩＤクラスタを、その商品ＩＤクラスタの関係が強い顧客ＩＤクラスタとして特定する。
【０１１３】
さらに、顧客クラスタ特定部２２２０は、特定した顧客ＩＤクラスタに所属する顧客ＩＤを、新たな商品ＩＤが示す商品（本例では新商品）の推奨に適した顧客の顧客ＩＤとして特定する。このとき、顧客クラスタ特定部２２２０は、例えば、特定した顧客ＩＤクラスタへの所属確率が閾値以上である顧客ＩＤを特定すればよい。この顧客ＩＤの数は１つであるとは限らない。
【０１１４】
そして、顧客クラスタ特定部２２２０は、新たな商品ＩＤが示す商品を、その顧客ＩＤが示す顧客に推奨する旨の情報（以下、推奨情報と記す。）を生成する。
【０１１５】
特定結果出力部２３００は、推奨情報を出力する。推奨情報の出力態様は、特に限定されない。例えば、特定結果出力部２３００は、情報を他の装置に出力してもよい。また、例えば、特定結果出力部２３００は、情報をディスプレイ装置に表示させてもよい。また、特定結果出力部２３００は、クラスタ推定部２２１０が単語毎に生成したトピック割り当て頻度情報、クラスタ推定部２２１０によって推定された商品ＩＤクラスタ、および、顧客クラスタ特定部２２２０が特定した顧客ＩＤクラスタの全部または一部も、推奨情報とともに出力してもよい。
【０１１６】
クラスタ推定部２２１０および顧客クラスタ特定部２２２０を含む顧客ＩＤ特定部２２００、並びに、対象入力部２１００、特定結果出力部２３００は、クラスタリング部１１２０等と同様に、例えば、プログラム（クラスタリングプログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１１７】
図１０は、第２の実施形態の処理経過の例を示すフローチャートである。前述のように、クラスタリングシステム１０００は、第１の実施形態で述べた動作は完了しているものとする。また、対象入力部２１００、クラスタ推定部２２１０、顧客クラスタ特定部２２２０および特定結果出力部２３００の動作の詳細については、既に説明しているので、以下では、詳細な説明を省略する。
【０１１８】
対象入力部２１００は、文字データが対応付けられた新たな商品ＩＤを取得する（ステップＳ１１）。
【０１１９】
クラスタ推定部２２１０は、その文字データと、商品ＩＤクラスタ毎のトピック分布とに基づいて、新たな商品ＩＤが所属する商品ＩＤクラスタを推定する（ステップＳ１２）。
【０１２０】
次に、顧客クラスタ特定部２２２０は、ステップＳ１２で推定された商品ＩＤクラスタとの関係が強い顧客ＩＤクラスタを、クラスタ関係に基づいて特定する（ステップＳ１３）。
【０１２１】
顧客クラスタ特定部２２２０は、その顧客ＩＤクラスに所属する顧客ＩＤを、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤとして特定する（ステップＳ１４）。また、ステップＳ１４において、顧客クラスタ特定部２２２０は、推奨情報（新たな商品ＩＤが示す商品を、その顧客ＩＤが示す顧客に推奨する旨の情報）を生成する。
【０１２２】
特定結果出力部２３００は、推奨情報を出力する（ステップＳ１５）。既に説明したように、特定結果出力部２３００は、推奨情報と合わせて、他の情報を出力してもよい。
【０１２３】
本実施形態によれば、クラスタ推定部２２１０は、新たな商品ＩＤに対応付けられた文字データと、商品ＩＤクラスタ毎のトピック分布とに基づいて、新たな商品ＩＤが所属する商品ＩＤクラスタを推定する。さらに、顧客クラスタ特定部２２２０は、その商品ＩＤクラスタとの関係が強い顧客ＩＤクラスタを、クラスタ関係に基づいて特定する。顧客クラスタ特定部２２２０は、その顧客ＩＤクラスに所属する顧客ＩＤを、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤとして特定する。従って、新たな商品ＩＤによって特定される商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在していてなくても、その商品を推奨する顧客として適切な顧客を特定することができる。
【０１２４】
第２の実施形態におけるクラスタリングシステム１０００は、レコメンドシステムと称することができる。また、第２の実施形態におけるクラスタリングプログラムは、レコメンドプログラムと称することができる。
【０１２５】
次に、第２の実施形態の変形例について説明する。
【０１２６】
上記の第２の実施形態では、新たな商品ＩＤが示す商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在しないものとして説明したが、そのような購買履歴データが存在してもよい。この場合、対象入力部２１００は、文字データが対応付けられた新たな商品ＩＤと、その購買履歴データを取得してもよい。さらに、クラスタ推定部２２１０は、第２の実施形態で説明した動作に加えて、購買履歴データに基づく所属確率の判断を行ってもよい。すなわち、クラスタ推定部２２１０は、新たな商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤが、その１つの商品ＩＤクラスタと関係の強い顧客ＩＤクラスタに所属している顧客ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定めてもよい。この動作は、商品クラスタ割り当て部１１２２が購買履歴データに基づいて所属確率を調整する動作と同様である。その他の点は、上記の第２の実施形態と同様である。この変形例（変形例１とする。）によれば、新たな商品ＩＤが示す商品をいずれかの顧客が買ったという関係を示す購買履歴データが存在している場合にも、その商品を推奨する顧客として適切な顧客を特定することができる。
【０１２７】
また、上記のような購買履歴データが存在していて、新たな商品ＩＤに対応付けられる文字データが存在していなくてもよい。この場合、対象入力部２１００は、文字データが対応付けられていない商品ＩＤと、その購買履歴データを取得する。また、クラスタ推定部２２１０は、文字データに基づく所属確率の調整は行わない。そして、クラスタ推定部２２１０は、新たな商品ＩＤが１つの商品ＩＤクラスタに所属する所属確率を決定する際、その商品ＩＤが、その１つの商品ＩＤクラスタと関係の強い顧客ＩＤクラスタに所属している顧客ＩＤとの関係を多く有しているほど、その所属確率を高い確率に定める。この動作は、変形例１で述べた動作と同様である。また、その他の点は、上記の第２の実施形態と同様である。この変形例（変形例２とする。）によれば、上記のような購買履歴データが存在していて、新たな商品ＩＤに対応付けられる文字データが存在していなくても、その商品ＩＤが示す商品を推奨する顧客として適切な顧客を特定することができる。
【０１２８】
また、変形例２と同様に、上記のような購買履歴データが存在していて、新たな商品ＩＤに対応付けられる文字データが存在していないとする。そして、対象入力部２１００は、文字データが対応付けられていない商品ＩＤと、その購買履歴データを取得する。この場合、クラスタ推定部２２１０は、その商品ＩＤに対応する文字データを導出し、特定結果出力部２３００が、その文字データを出力してもよい。例えば、クラスタ推定部２２１０は、変形例２と同様に、新たな商品ＩＤが各商品ＩＤクラスタに所属する所属確率を定め、新たな商品ＩＤが所属する商品ＩＤクラスタを推定する。そして、クラスタ推定部２２１０は、その商品ＩＤクラスタに対応するトピック分布を参照し、その商品ＩＤクラスタのトピックに該当する可能性が高いトピックを特定する。さらに、クラスタ推定部２２１０は、そのトピックの単語分布（図５に例示する単語分布）を参照し、出現頻度の高い単語を１つまたは複数特定する。特定結果出力部２３００は、その単語を、新たな商品ＩＤに対応する文字データとして出力する。この変形例（変形例３とする。）によれば、対応する文字データが存在していなかった商品ＩＤに文字データを付与することができる。換言すれば、対応する文字データが存在していなかった商品に文字データを付与することができる。クラスタリングシステム１０００のユーザは、例えば、その商品のダイレクトメールを作成する際に、その付与された文字データを用いてもよい。
【０１２９】
上記の変形例３において、クラスタ推定部２２１０は、上記と同様の動作によって、文字データが対応付けられている既存の商品ＩＤに対して、新たな文字データを特定してもよい。
【０１３０】
次に、上記の各実施形態に、ギブスサンプリングを適用した場合の種々の確率を数式によって示す。顧客および商品それぞれに対してクラスタ割り当てを行うものとする。また、顧客と商品との関係を示す購買履歴データが与えられているものとする。
【０１３１】
商品の単語のトピックがｋである確率は、以下に示す式（１）のように表される。
【０１３２】
【数１】
2018078761.tif 000003
【０１３３】
顧客の所属するクラスタがｇ１である確率は、以下に示す式（２）のように表される。
【０１３４】
【数２】
2018078761.tif 000004
【０１３５】
商品の所属するクラスタがｇ２である確率は、以下に示す式（３）のように表される。
【０１３６】
【数３】
2018078761.tif 000005
【０１３７】
なお、式（１）から式（３）の数式内の各記号の意味を、以下の表１に示す。
【０１３８】
【表１】
2018078761.tif 000006
【０１３９】
これらの確率値で定義される確率分布からサンプリングを行うことにより、単語トピック割り当て部１１２３は、各商品の単語についてのトピック分布を取得することができ、顧客クラスタ割り当て部１１２１は、各顧客の各顧客クラスタへの所属確率を取得でき、商品クラスタ割り当て部１１２２は、各商品の各商品クラスタへの所属確率を取得できる。
【０１４０】
また、上記の各実施形態では、２種類のドメインのうち、一方が顧客ＩＤであり、他方が商品ＩＤである場合を例にしたが、ドメインの種類は、この例に限定されない。例えば、２種類のドメインのうち、一方がある会社内の社員ＩＤであり、他方がその会社内のプロジェクトＩＤであってもよい。この場合、例えば、個々のプロジェクトＩＤに文字データ（例えば、プロジェクトの説明文）が対応付けられているものとする。また、関係データとして、個々の社員がどのプロジェクトに参加したかを表す関係データが用いられる。この場合、本発明は、新規のプロジェクトへの参加を推奨する社員の特定に利用することができる。
【０１４１】
また、ドメインの種類の数は、２に限らず、３以上であってもよい。ドメインの種類が３以上である場合、クラスタ関係はテンソルとして表される。ドメインの種類が３である場合の例として、クラスタリングシステムが、顧客ＩＤ、商品ＩＤおよび地域ＩＤを共クラスタリングする場合等が挙げられる。この場合、例えば、ある商品を推奨すべき品川区内の顧客は誰か等を特定することができる。
【０１４２】
図１１は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１００は、例えば、ＣＰＵ１０１と、主記憶装置１０２と、補助記憶装置１０３と、インタフェース１０４と、ディスプレイ装置１０５とを備える。
【０１４３】
本発明の各実施形態のクラスタリングシステム１０００は、コンピュータ１００に実装される。クラスタリングシステム１０００の動作は、プログラム（クラスタリングプログラム）の形式で補助記憶装置１０３に記憶されている。ＣＰＵ１０１は、プログラムを補助記憶装置１０３から読み出して主記憶装置１０２に展開し、そのプログラムに従って上記の処理を実行する。
【０１４４】
補助記憶装置１０３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１０４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１００に配信される場合、配信を受けたコンピュータ１００がそのプログラムを主記憶装置１０２に展開し、上記の処理を実行してもよい。
【０１４５】
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置１０３に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【０１４６】
また、各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１４７】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１４８】
次に、本発明の概要について説明する。図１２は、本発明のクラスタリングシステムの概要を示すブロック図である。本発明のクラスタリングシステムは、第１クラスタリング手段３００１と、第２クラスタリング手段３００２と、トピック割り当て手段３００３と、パラメタ決定手段３００４と、判定手段３００５とを備える。
【０１４９】
第１クラスタリング手段３００１（例えば、顧客クラスタ割り当て部１１２１）は、第１ＩＤ（例えば、顧客ＩＤ）と第２ＩＤ（例えば、商品ＩＤ）との関係を示す関係データ（例えば、購買履歴データ）に基づいて、第１ＩＤをクラスタリングする第１クラスタリング処理を実行する。
【０１５０】
第２クラスタリング手段３００２（例えば、商品クラスタ割り当て部１１２２）は、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする第２クラスタリング処理を実行する。
【０１５１】
トピック割り当て手段３００３（例えば、単語トピック割り当て部１１２３）は、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行する。
【０１５２】
パラメタ決定手段３００４（例えば、パラメタ決定部１１２４）は、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行する。
【０１５３】
判定手段３００５（例えば、終了判定部１１２５）は、所定の条件が満たされたか否かを判定する。
【０１５４】
そして、所定の条件が満たされたと判定されるまで、第１クラスタリング処理、第２クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返す。
【０１５５】
そのような構成により、対応する文字データが存在しているが他の種類の事項との間の関係データが存在していない事項を、他の種類の事項に推奨できるように、複数種類の事項をクラスタリングすることができる。
【０１５６】
また、パラメタ決定手段３００４が、第１クラスタリング処理の結果得られた第１ＩＤの個々のクラスタと、第２クラスタリング処理の結果得られた第２ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、第１クラスタリング手段３００１が、１つの第１ＩＤが１つのクラスタに所属する所属確率を決定する際、当該第１ＩＤが、その１つのクラスタと関係の強い第２ＩＤのクラスタに所属している第２ＩＤとの関係を多く有しているほど、所属確率を高い確率とし、第２クラスタリング手段３００２が、１つの第２ＩＤが１つのクラスタに所属する所属確率を決定する際、当該第２ＩＤが、その１つのクラスタと関係の強い第１ＩＤのクラスタに所属している第１ＩＤとの関係を多く有しているほど、所属確率を高い確率にするとともに、その１つのクラスタに対応するトピック分布と、当該第２ＩＤのトピック分布とが近いほど、所属確率を高い確率とすることが好ましい。
【０１５７】
また、文字データに対応付けられている新たな第２ＩＤが与えられた場合、その文字データと第２ＩＤのクラスタ毎のトピック分布とに基づいて、新たな第２ＩＤが所属するクラスタを推定するクラスタ推定手段（例えば、クラスタ推定部２２１０）と、推定されたクラスタとの関係が強い第１ＩＤのクラスタを、クラスタ関係に基づいて特定する第１ＩＤクラスタ特定手段（例えば、顧客クラスタ特定部）とを備える構成であってもよい。
【０１５８】
また、第１ＩＤクラスタ特定手段が、与えられた新たな第２ＩＤが示す事項（例えば、商品）を、特定した第１ＩＤのクラスタに所属する第１ＩＤが示す事項（例えば、顧客）に対して推奨する旨の情報を生成してもよい。
【０１５９】
また、図１３は、本発明のレコメンドシステムの概要を示すブロック図である。本発明のレコメンドシステムは、クラスタリング手段４００１と、顧客ＩＤ特定手段４００２とを備える。
【０１６０】
クラスタリング手段４００１（例えば、クラスタリング部１１２０）は、顧客ＩＤと商品ＩＤとの関係を示す関係データ（例えば、購買履歴データ）と、商品ＩＤに対応付けられた文字データとに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定する。
【０１６１】
顧客ＩＤ特定手段４００２（例えば、顧客ＩＤ特定部２２００）は、文字データに対応付けられている新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する。
【０１６２】
そのような構成により、対応する文字データが存在しているが顧客との間の関係データが存在していない商品を推奨する顧客として適切な顧客を特定することができる。
【０１６３】
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【０１６４】
本発明は、例えば、レコメンドシステムに利用されるクラスタリングシステムに好適に適用される。
【符号の説明】
【０１６５】
１０００  クラスタリングシステム
１１００  処理部
１１１０  初期化部
１１２０  クラスタリング部
１１２１  顧客クラスタ割り当て部
１１２２  商品クラスタ割り当て部
１１２３  単語トピック割り当て部
１１２４  パラメタ決定部
１１２５  終了判定部
１２００  記憶部
１３００  データ入力部
１４００  出力部
２１００  対象入力部
２２００  顧客ＩＤ特定部
２２１０  クラスタ推定部
２２２０  顧客クラスタ特定部
２３００  特定結果出力部
【図１】
2018078761.tif 000007
【図２】
2018078761.tif 000008
【図３】
2018078761.tif 000009
【図４】
2018078761.tif 000010
【図５】
2018078761.tif 000011
【図６】
2018078761.tif 000012
【図７】
2018078761.tif 000013
【図８】
2018078761.tif 000014
【図９】
2018078761.tif 000015
【図１０】
2018078761.tif 000016
【図１１】
2018078761.tif 000017
【図１２】
2018078761.tif 000018
【図１３】
2018078761.tif 000019
【手続補正書】
【提出日】平成30年1月22日(2018.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
コンピュータが、
第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、前記第１ＩＤをクラスタリングする第１クラスタリング処理を実行し、
前記関係データと、前記第２ＩＤに対応付けられた文字データとに基づいて、前記第２ＩＤをクラスタリングする第２クラスタリング処理を実行し、
個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行し、
前記第１クラスタリング処理に用いるパラメタ、前記第２クラスタリング処理に用いるパラメタ、および、前記トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行し、
所定の条件が満たされたか否かを判定し、
前記所定の条件が満たされたと判定するまで、前記第１クラスタリング処理、前記第２クラスタリング処理、前記トピック割り当て処理、および前記パラメタ決定処理を繰り返す
ことを特徴とするクラスタリング方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
コンピュータが、
顧客ＩＤと商品ＩＤとの関係を示す関係データと、前記商品ＩＤに対応付けられた文字データとに基づいて、前記顧客ＩＤおよび前記商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定し、
文字データに対応付けられている新たな商品ＩＤが与えられた場合、前記文字データ、商品ＩＤのクラスタ毎のトピック分布、および、前記クラスタ関係に基づいて、前記新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定する
ことを特徴とするレコメンド方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、本発明によるクラスタリング方法は、コンピュータが、第１ＩＤと第２ＩＤとの関係を示す関係データに基づいて、第１ＩＤをクラスタリングする第１クラスタリング処理を実行し、関係データと、第２ＩＤに対応付けられた文字データとに基づいて、第２ＩＤをクラスタリングする第２クラスタリング処理を実行し、個々の第２ＩＤに対応する文字データに含まれる単語毎に、トピックを割り当てるトピック割り当て処理を実行し、第１クラスタリング処理に用いるパラメタ、第２クラスタリング処理に用いるパラメタ、および、トピック割り当て処理に用いるパラメタを決定するパラメタ決定処理を実行し、所定の条件が満たされたか否かを判定し、所定の条件が満たされたと判定するまで、第１クラスタリング処理、第２クラスタリング処理、トピック割り当て処理、およびパラメタ決定処理を繰り返すことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、本発明によるレコメンド方法は、コンピュータが、顧客ＩＤと商品ＩＤとの関係を示す関係データと、商品ＩＤに対応付けられた文字データとに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングするとともに、顧客ＩＤの個々のクラスタと商品ＩＤの個々のクラスタとの関係の強さを示す情報であるクラスタ関係を決定し、商品ＩＤのクラスタ毎にトピック分布を決定し、文字データに対応付けられている新たな商品ＩＤが与えられた場合、その文字データ、商品ＩＤのクラスタ毎のトピック分布、および、クラスタ関係に基づいて、新たな商品ＩＤが示す商品の推奨に適した顧客の顧客ＩＤを特定することを特徴とする。
【国際調査報告】
2018078761.tif 000020
2018078761.tif 000021
2018078761.tif 000022