(57)【特許請求の範囲】
【請求項１】
階層毎に、観測変数の確率分布を取得する観測変数確率分布取得部と、
前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成部と、
を備えることを特徴とする分類装置。
【請求項２】
時刻情報を含む対象データ毎に、スイッチ変数の確率分布を取得するスイッチ変数確率分布取得部と、
前記スイッチ変数確率分布取得部が取得した確率分布に基づいて、観測変数毎にスイッチ変数を生成するスイッチ変数生成部と、
を備え、
前記観測変数生成部は、前記観測変数確率分布取得部が取得した確率分布のうち、スイッチ変数確率分布取得部が取得したスイッチ変数に応じた階層の確率分布へ切り替えることを特徴とする請求項１に記載の分類装置。
【請求項３】
トレンドを分類するトレンド部類毎に、データの時刻毎の出現頻度を定めた時刻頻度分布を取得する時刻頻度分布取得部と、
前記時刻頻度分布取得部が取得した時刻頻度分布に基づいて、時刻情報を含む対象データを複数のトレンド部類のいずれかに分類するトレンド分類部と、
を備えることを特徴とする請求項２に記載の分類装置。
【請求項４】
前記時刻頻度分布は、確率分布であることを特徴とする請求項３に記載の分類装置。
【請求項５】
階層毎に、観測変数の確率分布を取得する観測変数確率分布取得部と、
前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成部と、
を備えることを特徴とする分類システム。
【請求項６】
観測変数確率分布取得部が、階層毎に、観測変数の確率分布を取得する手順と、
観測変数生成部が、前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する手順と、
を有することを特徴とする分類方法。
【請求項７】
コンピュータに、
階層毎に、観測変数の確率分布を取得する観測変数確率分布取得ステップと、
前記観測変数確率分布取得ステップにより取得された確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成ステップと、
を実行させるための分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分類装置、分類システム、分類方法及び分類プログラムに関する。
【背景技術】
【０００２】
本願発明者は、非特許文献１に示すように、先に、潜在クラスを階層的に用いることで、ユーザの興味を推定するモデルを提案している。このモデルは、インターネット上のブログや、ウェブページ、ツィッター、論文のようなテキストデータから、ユーザ（ブログやウェブページの著者）がどのコミュニティクラスに属し、その文書がどのトレンドクラスに属し、その内容（単語）がどのトピックに属するかを潜在変数として階層的に推定することで、ユーザの興味の推定を行っている。このユーザの興味の推定結果は、マーケティングの需要予測をしたり、そのユーザに最適な広告を提示したり、そのユーザの興味に適合した新たなアイテムをレコメンドしたりするような場合に役立たせることができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Noriaki Kawamae: Latent interest-topic model: finding the causal relationships behind dyadic data. CIKM 2010: 649-658
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１に示されているモデルでは、データの生成過程に階層構造が反映されておらず、異なる階層（例えば、コミュニティという階層、トピックという階層）毎にクラス分けすることができないという問題があった。
【０００５】
本発明は、上記問題に鑑みてなされたものであり、データを異なる階層毎にクラス分けすることを可能とする分類装置、分類システム、分類方法及び分類プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
（１）本発明は前記事情に鑑みなされたもので、本発明の一態様は、階層毎に、観測変数の確率分布を取得する観測変数確率分布取得部と、前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成部と、を備えることを特徴とする分類装置である。
【０００７】
（２）本発明の一態様は、上記の分類装置において、時刻情報を含む対象データ毎に、スイッチ変数の確率分布を取得するスイッチ変数確率分布取得部と、前記スイッチ変数確率分布取得部が取得した確率分布に基づいて、観測変数毎にスイッチ変数を生成するスイッチ変数生成部と、を備え、前記観測変数生成部は、前記観測変数確率分布取得部が取得した確率分布のうち、スイッチ変数確率分布取得部が取得したスイッチ変数に応じた階層の確率分布へ切り替えることを特徴とする。
【０００８】
（３）本発明の一態様は、上記の分類装置において、トレンドを分類するトレンド部類毎に、データの時刻毎の出現頻度を定めた時刻頻度分布を取得する時刻頻度分布取得部と、前記時刻頻度分布取得部が取得した時刻頻度分布に基づいて、時刻情報を含む対象データを複数のトレンド部類のいずれかに分類するトレンド分類部と、を備えることを特徴とする。
【０００９】
（４）本発明の一態様は、上記の分類装置において、前記時刻頻度分布は、確率分布であることを特徴とする。
【００１０】
（５）本発明の一態様は、階層毎に、観測変数の確率分布を取得する観測変数確率分布取得部と、前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成部と、を備えることを特徴とする分類システムである。
【００１１】
（６）本発明の一態様は、観測変数確率分布取得部が、階層毎に、観測変数の確率分布を取得する手順と、観測変数生成部が、前記観測変数確率分布取得部が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する手順と、を有することを特徴とする分類方法である。
【００１２】
（７）本発明の一態様は、コンピュータに、階層毎に、観測変数の確率分布を取得する観測変数確率分布取得ステップと、前記観測変数確率分布取得ステップにより取得された確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成ステップと、を実行させるための分類プログラムである。
【発明の効果】
【００１３】
本発明によれば、時系列データからトレンドを抽出することができる。
【図面の簡単な説明】
【００１４】
【図１】潜在クラスの階層構造を用いたプレファレンスモデルの説明に用いるグラフィカルモデルである。
【図２】本発明の実施形態に係るプレファレンスモデルの説明に用いるグラフィカルモデルである。
【図３】各ブロックの名称と機能部の名称との対応関係、及び本実施形態の確率分布の具体例と確率分布の名称との対応関係を示す図である。
【図４】本発明の実施形態に係る分類システムの概略ブロック図である。
【図５】本発明の実施形態に係る分類システムの説明に用いる機能ブロック図である。
【図６】本発明の実施形態に係る分類システムにおける確率変数と確率変数に対応するパラメータの一覧表である。
【図７】本発明の実施形態に係る分類システムにおける計算処理の説明に用いるフローチャートである。
【図８】本発明の実施形態に係る事前処理部における前処理の説明図である。
【図９】本発明の実施形態に係る分類システムにおける計算処理の処理内容の説明図である。
【図１０】本発明の実施形態に係る計算処理部における処理とグラフィカルモデルの関連図である。
【図１１】本発明の実施形態に係る提案モデルで利用する確率分布を示した図である。
【図１２】本発明の実施形態に係る分類システムにおける潜在変数を推定するアルゴリズムの説明図である。
【図１３】上のテーブルは期間毎に集計した映画のタイトル、下のテーブルは提案モデルで推定したトレンドに対応する映画のタイトルである。
【図１４】本実施形態の手法と従来手法のレコメンドの精度を比較したテーブルである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照しながら説明する。先ず、本発明を理解するために、本発明の実施の形態の説明に先立ち、本願発明者が先に提案しているプレファレンスモデルについて説明する。
【００１６】
図１に示すように、本願発明者は、階層的な潜在クラスを用いることで、ユーザの興味を推定するモデルを提案している。このモデルでは、コミュニティクラスと、トレンドクラスと、トピックの潜在クラスを階層構造でモデル化している。ここで、トレンドとは、
例えば、傾向、趨勢、潮流または流行である。トレンドとは、例えば、ある期間内に、ある単語が出現する頻度の傾向である。
【００１７】
図１において、ブロック１１は、コミュニティクラスの多項分布ψを求めるためのハイパーパラメータαのブロックである。ハイパーパラメータαとしては、初期値としてランダム値が用いられる。ブロック１２は、コミュニティクラスの多項分布ψを求めるブロックである。
【００１８】
ブロック１３は、トレンドクラスの多項分布Ψを求めるためのハイパーパラメータβのブロックである。ハイパーパラメータβとしては、初期値としてランダム値が用いられる。ブロック１４は、コミュニティクラス毎のＳ種類のトレンドクラスの多項分布Ψを求めるブロックである。なお、ここでＳはコミュニティクラスの数を示している。
【００１９】
ブロック１５は、トピックの多項分布θを求めるためのハイパーパラメータγのブロックである。ハイパーパラメータγとしては、初期値としてランダム値が用いられる。ブロック１６は、トレンドクラス毎のＣ種類のトピックの多項分布θを求めるブロックである。なお、ここでＣはトレンドクラスの数を示している。
【００２０】
ブロック１７は、トークン内の単語の多項分布φを求めるためのハイパーパラメータδのブロックである。ハイパーパラメータδとしては、初期値としてランダム値が用いられる。トークンは、例えばインターネット上に書かれたブログやウェブページの文書中の区切り（例えば、単語）である。ブロック１８は、トピック毎のＺ種類のトークン内の単語の多項分布φを求めるブロックである。なお、ここでＺはトピックの数を示している。
【００２１】
ブロック１９は、ユーザＩＤからコミュニティクラスの潜在変数ｓを求めるブロックである。ユーザａがコミュニティクラスｓである確率分布が潜在変数ｓａとして示される。ここで、ユーザａは、例えばインターネット上でブログやウェブページを書いた著者であり、ユーザＩＤにより識別される。また、Ａは、ユーザ（著者）の数である。ブロック１９は、ユーザＩＤから、ユーザａがコミュニティクラスｓである潜在変数ｓａを、ブロック１２からのコミュニティクラスの多項分布ψを用いて求めている。
【００２２】
ブロック２０は、文書ＩＤからトレンドクラスの潜在変数ｃを求めるブロックである。ここで、文書ｄは、例えばインターネット上に書かれたブログやウェブページの文書であり、文書ＩＤにより識別される。文書ｄがトレンドクラスｃに属している確率分布が潜在変数ｃｄとして示される。また、Ｄａは、ユーザ（著者）ａが書いた文書の数である。ブロック２０は、ブロック１９からのユーザａがコミュニティクラスｓである潜在変数ｓａにより、ブロック１４のコミュニティクラス毎のトレンドクラスの多項分布Ψを対応させ、そして、ブロック２０は、対応するコミュニティのトレンドクラスの多項分布Ψにより、文書ｄがトレンドクラスｃに属している確率分布を、潜在変数ｃｄとして、推定する。
【００２３】
ブロック２１は、各トークンにおけるトピックの潜在変数ｚを求めるブロックである。トークンから、トピックの潜在変数ｚを求めるブロックである。ｉ番目のトークンがトピックｚに属している確率分布がトピックの潜在変数ｚｉとして示されている。ここで、Ｎｄは、文書ｄでのトークンの数である。ブロック２１は、ブロック２０からの文書ｄがトレンドクラスｃに属している潜在変数ｃｄにより、ブロック１６のトレンドクラス毎のトピックの多項分布θを対応させ、そして、ブロック２１は、トークンから、対応するトピックの多項分布θにより、ｉ番目のトークンがトピックｚに属する確率分布を、潜在変数ｚｉとして、推定する。
【００２４】
ブロック２２は、観測変数ｗを求めるブロックである。観測変数ｗは、データから予め決められた規則に基づいて抽出される情報である。例えば、データが本の購入履歴の場合、観測変数ｗは本のタイトルである。例えば、データがある雑誌の場合、観測変数ｗは、単語、文、段落又は章のタイトルである。例えば、データが映画の場合、観測変数ｗは映画のタイトルである。
本実施形態では、一例として観測変数ｗはトークンの確率分布で、ｉ番目のトークンｗの出現確率分布が観測変数ｗｉとして示されている。ブロック２２は、ｉ番目のトークンがトピックｚに属する潜在変数ｚｉにより、ブロック１８のトピック毎のトークン内の単語の多項分布φを対応させ、そして、ブロック２２は、ｉ番目のトークンｗの出現確率分布を、観測変数ｗｉとして、推定する。
【００２５】
このように、図１に示したモデルは、コミュニティクラスと、トレンドクラスと、トピックの潜在変数を階層的に用いることで、ユーザの興味を推定している。
【００２６】
すなわち、ブロック１９は、ユーザａがコミュニティクラスｓに属する潜在変数ｓａを推定し、ブロック２０は、この潜在変数ｓａを用いて、コミュニティクラス毎のトレンドクラスの多項分布Ψにより、文書ｄがトレンドクラスｃに属する潜在変数ｃｄを推定し、ブロック２１は、潜在変数ｃｄを用いて、トレンドクラス毎のトピックの多項分布θにより、ｉ番目のトークンがトピックｚに属する潜在変数ｚｉを推定し、ブロック２２は、この潜在変数ｚｉを用いて、トピック毎のトークン内の単語の多項分布φにより、観測変数ｗｉを推定している。
【００２７】
しかしながら、図１に示したモデルでは、文書を作成された日時（タイムスタンプ）がモデルに入っていない。このため、トレンドクラス（各要素の生成と時刻の同時出現確率）を抽出できない。
【００２８】
また、図１に示したモデルでは、トレンドクラスの抽出に必要なデータとそうでないデータとが区別されていない。このため、局所的なトレンドを自動的かつ一意に抽出できない。例えば、文書の中には、新聞のように、誰もがどの時期にでも、購入するものがある。このような全般的な文書は、トレンドを反映するものとして適しているとは言えない。また、業界紙のように、その業界の人にとっては興味があるが、一般的な人にとっては、殆ど興味の対象とならない文章がある。このような局所的な文書も、トレンドを反映するのに適しているとは言えない。
【００２９】
図２は、本発明の第１の実施形態に係るモデルである。図２において、ブロック１１１、１１３、１１５、１１７は、図１におけるブロック１１、１３、１５、１７と同様に、ハイパーパラメータα、β、γ、δのブロックである。
【００３０】
ブロック１１２、１１４、１１６、１１８は、図１におけるブロック１２、１４、１６、１８と同様に、コミュニティクラスの多項分布ψ、トレンドクラスの多項分布Ψ、トピックの多項分布θ、トークン内の単語の多項分布φを求めるブロックである。すなわち、ブロック１１８は、階層毎に、観測変数ｗの確率分布φを取得する観測変数確率分布取得部として機能する。本実施形態では、一例として、階層を、コミュニティクラスという階層と、トレンドクラスという階層と、トピックという階層の三つの階層を設ける。ブロック１１２、１１４、１１６については、図１におけるブロック１２、１４、１６と同様である。
なお、本実施形態では、三つの階層に分けたが、これに限らず、タイムスタンプの代わりに位置情報、所得などの観測変数を使うことで、地域による分類という階層、所得による分類という階層などに分けても良い。また、階層の数は２以下でも、４以上でもよい。
【００３１】
トークン内の単語の多項分布φを求めるブロック１１８については、図１におけるブロック１８では、トピック毎のＺ種類のトークン内の単語の多項分布φであったのに対して、本実施形態では、トークン内の単語の多項分布φは、トピック毎と、トレンドクラス毎と、コミュニティクラス毎と、全体との（Ｚ＋Ｃ＋Ｓ＋１）種類の多項分布となっている。トピックがＺ種類、トレンドクラスがＣ種類、コミュニティクラスがＳ種類あるからである。
【００３２】
ブロック１１９は、図１におけるブロック１９と同様に、コミュニティクラスの潜在変数ｓを求める。ブロック１２０は、図１におけるブロック２０と同様に、トレンドクラスの潜在変数ｃを求める。すなわち、ブロック１２０は、ブロック１２５が取得した時刻頻度分布に基づいて、時刻情報を含む対象データ（例えば、文章）を複数のトレンド部類のいずれかに分類するトレンド分類部として機能する。
ブロック１２１は、図１におけるブロック２１と同様に、トピックの潜在変数ｚを求める。ブロック１２２は、観測変数ｗを求める。図１におけるブロック２２では、観測変数ｗは、トピック毎のＺ種類のトークン内の単語の多項分布φを用いて推定していた。それに対して、この実施形態では、ブロック１２２は、スイッチの潜在変数ｒにより、トピック、トレンドクラス、コミュニティクラス、全体のいずれかの階層に切り替えて、推定を行う。
すなわち、ブロック１２２は、ブロック１１８が取得した確率分布を階層に応じて切り替え、切り替えた確率分布に基づいて観測変数を生成する観測変数生成部として機能する。より詳細には、ブロック１２２は、ブロック１１８が取得した確率分布のうち、ブロック１２９が取得したスイッチ変数に応じた階層の確率分布へ切り替える観測変数生成部として機能する。
【００３３】
ブロック１２５は、トレンドクラス毎に、対象データ（例えば、文章）の時刻毎の出現頻度を示すベータ分布λを求める。なお、ここでＣはトレンドクラスの数を示している。
すなわち、ブロック１２５は、トレンドを分類するトレンド部類毎に、対象データの時刻毎の出現頻度を定めた時刻頻度分布を取得する時刻頻度分布取得部として機能する。なお、対象データの時刻毎の出現頻度を示すベータ分布λは、０から１（最古時刻を０、現在時刻を１）に正規化されている。本実施形態では、時刻については、ベータ分布を用いている。これは、時刻を連続的に扱うためである。時毎、日毎、周毎、月毎のように、時刻を離散的に扱った場合、ゆっくりと変化するトレンドクラスに対しては、月毎にように周期の長いデータとして扱えるが、頻繁に変化するトレンドクラスに対しては、時毎や日毎のように、周期の短いデータとして扱わなければならなくなり、データ量が増大する。時刻を連続的に扱うことで、ゆっくりと変化するトレンドクラスに対しても、頻繁に変化するトレンドクラスに対しても、分布曲線の形状の違いだけで処理できる。
【００３４】
ブロック１２６は、文書のタイムスタンプから、ブロック１２５のベータ分布λを用いて、タイムスタンプの観測変数ｔを求めるブロックである。タイムスタンプは、文書ｄが生成された日時を示している。ブロック１２６は、ブロック１２０で求められたトレンドクラスの潜在変数ｃｄにより、ブロック１２５からのトレンドクラス毎のベータ分布λを対応させ、そして、タイムスタンプから、対応するベータ分布λを用いて、文書ｄがタイムスタンプｔである確率分布を観測変数ｔｄとして推定している。
【００３５】
ブロック１２７は、多項分布μを求めるためのハイパーパラメータεのブロックである。ハイパーパラメータεとしては、初期値としてランダム値が用いられる。ブロック１２８は、Ｄａ種類の多項分布μを求めている。ここで、Ｄａは、ユーザ（著者）ａが書いた文書の数である。すなわち、ブロック１２８は、対象データ（例えば、文章）毎に、スイッチ変数の確率分布を取得するスイッチ変数確率分布取得部として機能する。
【００３６】
ブロック１２９は、スイッチの潜在変数ｒを求めるブロックである。ブロック１２９は、文書ｄに対応する多項分布μｄから、ｉ番目のトークンのスイッチ変数ｒｉを求める。ブロック１２２で観測変数ｗの推定に用いる多項分布は、このスイッチ変数で切り替えられる。ブロック１２９は、ブロック１２８が取得した確率分布に基づいて、観測変数毎にスイッチ変数を生成するスイッチ変数生成部として機能する。
【００３７】
前述のモデルでは、観測変数の時刻がモデルに入っていない。このため、トレンドクラス毎に、時刻毎の文章ｄの出現確率を抽出することができなかった。これに対して、図２に示す本実施形態に係るモデルでは、観測変数の一つとして時刻ｔが導入されている。ブロック１２６は、ブロック１２０でトレンドクラスの潜在変数ｃが変化すると、ブロック１２５から提供される文章ｄの出現確率の経時分布を切り替えるので、時刻ｔ毎の文章ｄの出現確率が変化する。これにより、トレンドクラス毎に、時刻毎の文章ｄの出現確率を抽出することができる。
【００３８】
また、前述のモデルでは、観測変数ｗをトピック毎の多項分布φを用いて求めている。これに対して、本実施形態では、観測変数ｗを求めるための多項分布を、スイッチ変数ｒにより、トピック毎の多項分布と、トレンドクラス毎の多項分布と、コミュニティクラス毎の多項分布と、全体での多項分布とで切り替えている。トピックの数はＺであり、トレンドクラスの数はＣであり、コミュニティクラスの数はＳであり、全体として扱う数は「１」であるから、ブロック１１８の多項分布φの数は、（Ｚ＋Ｃ＋Ｓ＋１）となる。
【００３９】
スイッチ変数ｒが（ｒ＝０）なら、全体の多項分布を選択し、同時生起の多項分布から観測変数ｗを生成する。全体の多項分布は、その内容や時間に無関係で、一般的な分布である。
【００４０】
スイッチ変数ｒが（ｒ＝１）なら、トピック毎の多項分布を選択する。トピックの多項分布は、持続的に長い期間のものとなる。
【００４１】
スイッチ変数ｒが（ｒ＝２）なら、トレンドクラス毎の多項分布を選択する。トレンドクラスの多項分布は、時間と共にその傾向が変化する持続期間が短い期間のものとなる。
【００４２】
スイッチ変数ｒが（ｒ＝３）なら、コミュニティクラス毎の多項分布を選択する。コミュニティクラスの多項分布は、そのコミュニティクラスに特化した局所的なものの分布である。
【００４３】
このように、本実施形態に係るモデルでは、スイッチ変数ｒを導入することで、時間と共に変化するものと、そうでないものとを切り分けることができる。これにより、時間と要素の組み合わせの同時確率だけでなく、要素だけの確率で表現することができる。
【００４４】
図３は、各ブロックの名称と機能部の名称との対応関係、及び本実施形態の確率分布の具体例と確率分布の名称との対応関係を示す図である。テーブルＴ３１は、各ブロックの名称と機能部の名称との対応関係を示すテーブルである。テーブルＴ３２は、本実施形態の確率分布の具体例と確率分布の名称との対応関係を示すテーブルである。
次に、図２に示したようなモデルで示される処理を実行して、ユーザの興味を推定するための処理について、具体的に説明する。
【００４５】
図４は、本発明の実施形態に係る分類システムの構成を示すブロック図であり、図５は、各部の機能ブロック図を示すものである。図４に示すように、本発明の実施形態に係るシステムは、ファイルサーバ５０１と、計算サーバ（分類装置）５０２と、データベース５０３と、サービスサーバ５０４とを備える。以下、単語をトークンの一例として説明する。
【００４６】
ファイルサーバ５０１は、図５に示すように、処理単位となる文書データを保存するデータファイル保存部５１１を有している。データファイル保存部５１１に保存する文書データとしては、インターネット上のブログの文書や、ウェブページの文書、ツィッター、論文等の文書データが用いられる。なお、処理単位となる文書データは、インターネット上の文書に限られるものではない。また、データファイル保存部５１１には、各文書データと、処理単位となる文書を識別するための文書ＩＤと、その文書の著者を示す著者ＩＤと、その文書を生成した日時を示すタイムスタンプとが対応付けられて保存されている。
【００４７】
計算サーバ５０２は、ファイルサーバ５０１から文書データを取り出し、図２に示したモデルで示されるような計算処理を行い、計算結果を出力する。計算サーバ５０２は、図５に示すように、事前処理部５２１と、計算処理部５２２とを有している。
【００４８】
事前処理部５２１は、例えば、ファイルサーバ５０１から計算処理対象となる文書データファイルを受け取り、この文書データファイルから、文書データ毎に、文書ＩＤと、著者ＩＤと、タイムスタンプを抽出すると共に、その文書の要素となる単語を抽出する。そして、事前処理部５２１は、文書に処理用文書ＩＤを付与し、著者に処理用著者ＩＤを付与し、抽出した各単語に、処理用単語ＩＤを付与する。
【００４９】
計算処理部５２２は、事前処理部５２１で処理されたデータを入力し、図２に示したモデルに対応するような計算処理を行う。後に説明するように、この実施形態では、潜在変数の推定に、ギブスサンプリングを用いている。
【００５０】
データベース５０３は、図５に示すように、計算結果記憶部５３１を有している。計算サーバ５０２の計算処理部５２２の計算結果は、データベース５０３に送られ、計算結果記憶部５３１に保存される。図６に示すように、計算結果としては、コミュニティ、トレンドクラス、タイムスタンプ、スイッチ、トピック、単語の各確率変数と、各確率分布のパラメータ及びその種類からなる。図６の計算結果において、タイムスタンプと単語が観測変数であり、他は潜在変数である。
【００５１】
サービスサーバ５０４は、計算結果をサービスの利用のために提供するためのサーバである。図５に示すように、サービスサーバ５０４は、呼出し部５４１を有している。
【００５２】
ユーザ端末５０５からの呼び出しに応じて、呼出し部５４１は、ユーザ端末５０５に計算結果を送る。この計算結果は、マーケティング、需要予測、広告、レコメンド等、各種のサービスに利用できる。
【００５３】
図７は、計算サーバ５０２での処理を示すフローチャートである。図７において、先ず、計算サーバ５０２の事前処理部５２１は、計算対象文書データについて、処理用文書ＩＤと、処理用著者ＩＤと、処理用単語ＩＤとを割り振る処理を行う。
【００５４】
つまり、図８（Ａ）に示すように、各文書には、独自の著者ＩＤや文書ＩＤが付けられている。図８（Ａ）では、最初のレコードの文書データには、著者ＩＤとして「Ａ」が付けられ、文書ＩＤとして「００１」が付けられている。文書の要素となるトークン（ここでは、単語）には、「ローマ」、「歴史」、…、「遺産」がある。そして、最後のレコードの文書データには、著者ＩＤとして「Ｚ」が付けられ、文書ＩＤとして「０８７」が付けられている。文書の要素となるトークンには、「古代」、「芸術」、…、「文化」がある。
【００５５】
図８（Ｂ）は、このようなデータに対して、ステップＳ１で、処理用著者ＩＤ、処理用文書ＩＤ、処理用単語ＩＤを割り振る処理を行った場合の例である。図８（Ｂ）に示すように、最初のレコードの文書データは、処理用著者ＩＤとして「０」が割り当てられ、処理用文書ＩＤとして「０」が割り当てられる。トークン１〜トークンＮに対して、処理用単語ＩＤ「２２」、処理用単語ＩＤ「０」、…、処理用単語ＩＤ「１２１２」が割り振られる。そして、最後のレコードの文書データには、処理用著者ＩＤとして「１００」が割り当てられ、処理用文書ＩＤとして「２２３」が割り当てられる。そして、トークン１〜トークンＮに対して、処理用単語ＩＤ「４」、処理用単語ＩＤ「１」、…、処理用単語ＩＤ「５５７」が割り振られる。
【００５６】
次に、計算サーバ５０２の計算処理部５２２は、確率変数（Ｃ，Ｓ，Ｚ）の数及びハイパーパラメータ（α、β，γ，δ，ε）の初期値を設定し、また、計算処理の繰り返し回数を設定する（ステップＳ２）。そして、計算サーバ５０２の計算処理部５２２は、乱数を発生し、その値を確率変数（Ｃ，Ｓ，Ｚ）に与える（ステップＳ３）。
【００５７】
つまり、図９（Ａ）は、ステップＳ１の処理で、計算対象文書データについて、処理用文書ＩＤと、処理用著者ＩＤと、処理用単語ＩＤとを割り振った状態を示している。このようなデータに対して、図９（Ｂ）に示すように、コミュニティクラスＳ、トレンドクラスＣ、トピックＺに、乱数が挿入される。ここでは、コミュニティクラスの乱数として、例えば「０」〜「２０」を任意に挿入し、トレンドクラスの乱数として、例えば「０」〜「４０」を任意に挿入し、トピックの乱数として、例えば「０」〜「９９」を任意に挿入するものとする。図９（Ｂ）の例では、最初のレコードのデータには、コミュニティクラスＳとして乱数「７」が挿入され、トレンドクラスＣとして乱数「２０」が挿入され、トークン「１」〜「Ｎ」のトピックとして、乱数「７」、「５」、…「８」が挿入されている。そして、最後のレコードのデータには、コミュニティクラスＳとして乱数「１２」が挿入され、トレンドクラスＣとして乱数「１１」が挿入され、トピック「１」〜「Ｎ」として、乱数「８」、「８」、…、「３」が挿入されている。
【００５８】
次に、計算サーバ５０２の計算処理部５２２は、ギブスサンプリングで潜在変数の推定を行う（ステップＳ４）。ギブスサンプリングの繰り返し数が、予め決められた計算の繰り返し数に達したら、計算処理を終了する（ステップＳ５）。
【００５９】
このように、本実施形態では、ギブスサンプリングにより、潜在変数の推定が行われる。図１０は、ギブスサンプリングにより推定される値と、これにより求められる潜在変数との対応を示している。
【００６０】
次に、本実施形態において、ギブスサンプリングにより各潜在変数が求められることについて説明する。本実施形態では、図１１に示すように、各潜在変数の推定を統計的処理により推定するために、ディリクレ分布を導入している。ディリクレ分布は、連続型の確率分布であるが、積分することにより、離散型に変換できる。
【００６１】
このような確率分布を導入することにより、データ全体の同時確率は、次の式のように表される。
【００６２】
【数１】
0005802597.tif 000002
【００６３】
ここで、データ全体の同時確率ｐ（｜）は、条件付確率を示している。
上式を積分すると、次の式のように表せる。
【００６４】
【数２】
0005802597.tif 000003
【００６５】
ここで、Γは、ガンマ関数である。ｎｓは、コミュニティｓに所属する著者の数である。である。ｎｓｃは、コミュニティクラスｓからトレンドクラスｃを選択した文書の回数である。ｎｃｚは、トレンドクラスｃからコミュニティクラスｚを選択した回数である。ｎｄｒは、コミュニティクラスｚからスイッチ変数ｒを選択したトークンの回数である。ｎｚｗは、コミュニティクラスｚから観測変数ｗを選択した回数である。
このように、ディリクレ分布を導入して、積分することで、多項分布のパラメータは消え、ハイパーパラメータと、頻度情報が残る。このように、ディリクレ分布を導入して積分することで、連続型の確率分布は、離散型の確率分布になる。
【００６６】
上述のディリクレ分布を積分した式（１）を変形すると、ギブスサンプリングにより、各潜在変数を推定するための式が求められる。つまり、コミュニティクラスｚがｇである確率は、次の式のように導出することができる。
【００６７】
【数３】
0005802597.tif 000004
【００６８】
トレンドクラスｃがｊである確率は、次の式のように導出することができる。
【００６９】
【数４】
0005802597.tif 000005
【００７０】
変数ｒの確率は、次の式のように導出することができる。
【００７１】
【数５】
0005802597.tif 000006
【００７２】
式（４）は、変数ｒ＝０の確率である。式（５）は変数ｒ＝１の確率である。ｋはトピックの識別子である。式（６）は、変数ｒ＝２の確率である。式（７）は、変数ｒ＝３の確率である。
図１２は、ギブスサンプリングにより潜在変数を推定するアルゴリズムを示すものである。
計算処理部５２２は、このアルゴリズムに従い、初期化処理を行い、ギブスサンプリングの繰り返し回数Ｎｉｔｅｒａｔｉｏｎを設定する。
そして、計算処理部５２２は、著者数Ａだけ以下の処理を繰り返す。計算処理部５２２は、著者毎（著者数Ａ）に式（２）によりコミュニティクラスの潜在変数ｓａを推定し、変数ｎｓを更新する。計算処理部５２２は、この潜在変数ｓａの推定と変数ｎｓの更新処理をする毎に、以下の処理を行う。
【００７３】
計算処理部５２２は、文書数Ｄだけ以下の処理を繰り返す。計算処理部５２２は、文書毎（文書数Ｄ）に式（３）によりトレンドクラスの潜在変数ｃｄを推定し、変数ｎｃと変数λｃを更新する。計算処理部５２２は、この潜在変数ｃｄ推定と変数ｎｃの更新処理をする毎に、以下の処理を行う。
【００７４】
計算処理部５２２は、文書ｄごとに定められる単語数だけ以下の処理を繰り返す。計算処理部５２２は、式（４）、（５）、（６）、（７）により、スイッチの潜在変数ｒｄｉ及びトピックの潜在変数ｚｄｉを推定し、変数ｎｄｒ、ｎｃｚ、ｎｚｗを更新する。
【００７５】
計算処理部５２２は、上記の繰り返し処理がすべて終了した後に、各確率分布を知りたい場合、多項分布のパラメータψ、Ψ、θ、φ、μを推定する。なお、図１２中で多項分布の各パラメータψ、Ψ、θ、φ、μの上に付された符号（ハット）は推定値を意味している。
【００７６】
次に、本発明により得られる効果について説明する。図１３は、映画の人気のランキングを、全体（２０００年から２００５年までの６年間）、２０００年から２００１年、２００２年から２００３年、２００４年から２００５年に分けて、記述したものである。図１３（Ａ）は、単純な集計結果である。図１３（Ａ）に示す集計結果のうち、下線で示したようなタイトルの映画は、全体の期間にわたって、一定の人気を保持している。すなわち、これらは、時間的にあまり変化しないものである。
【００７７】
図１３（Ｂ）は、本実施形態により得られた結果である。ここでは、コミュニティクラスの数Ｃが７５、映画のトレンドクラスの数Ｓが７５、映画のトピックの数Ｚは１００である。φｂは、全体的なトレンドクラスであり、全体の確率分布φのうち、確率が高いものから順に表示したものである。φｃ（２０００−２００１）は、ベータ分布のピークがｔ＝０に最も近いトレンドクラス分布を有するトレンドクラスを抽出し、そして、抽出したトレンドクラスの確率分布φのうち、確率が高いものから順に表示したものである。φｃ（２００２−２００３）は、ベータ分布のピークがｔ＝０．５に最も近いトレンドクラス分布を有するトレンドクラスを抽出し、そして、抽出したトレンドクラスの確率分布φのうち、確率が高いものから順に表示したものである。φｃ（２００４−２００５）は、ベータ分布のピークがｔ＝１に最も近いトレンドクラス分布を有するトレンドクラスを抽出し、そして、抽出したトレンドクラスの確率分布φのうち、確率が高いものから順に表示したものである。
【００７８】
単純な集計では、図１３（Ａ）における下線で示すタイトルのように、全体の期間にわたって、一定の人気を保持するような映画タイトルがランキングに含まれる。これに対して、図１３（Ｂ）に示すように、本実施形態では、２０００年から２００１年、２００２年から２００３年、２００４年から２００５年の各期間で、下線で示したような全期間にわたって一定の人気となるタイトルの映画は除かれ（あるいは、上記のランキングから外れ）、各期間毎のトレンドクラスを反映したタイトルの映画がランキングされる。このように、本実施形態では、時間と共に変化するものと、そうでないものとを切り分けて、トレンドクラスを求めることができる。
【００７９】
また、図１４は、本実施形態による手法を従来の手法と比較したものである。図１４において、ＴＯＴ、ＤＴＭｓ、ｇＰＬＳＡ、ＬＩＴは、従来の手法である。ＰＯＴは、本実施形態による手法であり、ＰＯＴ  ｒ＝｛０，１，２，３｝は、ｒが０，１，２，３で選択可能である場合である。ＰＯＴ  ｒ＝｛１，２，３｝は、ｒが１，２，３で選択可能である場合であって、ｒが０は選択できない。ＰＯＴ  ｒ＝｛２，３｝は、ｒが２，３で選択可能である場合であって、ｒが０及び１は選択できない。これにより、ＰＯＴ  ｒ＝｛２，３｝場合、トレンドクラスの確率分布またはトピックの確率分布から観測変数ｗを算出する。
【００８０】
なお、前述したように、（ｒ＝０）なら、一般的な分布である全体の多項分布を選択する。（ｒ＝１）なら、長い持続的な分布であるトピック毎の多項分布を選択する。（ｒ＝２）なら、時間と共にその傾向が変化するトレンドクラス毎の多項分布を選択する。（ｒ＝３）なら、そのコミュニティクラスに特化した局所的なコミュニティクラス毎の多項分布を選択する。
【００８１】
続いて、図１４のそれぞれの指標について詳細に説明する。Ｔｏｐ−１０は、直前の予め決められた期間（例えば、直近１ヶ月）以外のテスト期間におけるデータから、上位１０位までにランキングされた推薦映画タイトルを、ユーザがその直前の予め決められた期間の間に視聴した確率である。
また、ＵＣ（Ｕｓｅｒ  Ｃｏｖｅｒａｇｅ：推薦ユーザの被覆率）は、テスト期間に映画タイトルを視聴したユーザ数に対する各推薦方法が推薦可能なユーザ数の割合である。ＵＣが高いほど、多くのユーザに映画タイトルを推薦できるので、ユーザ全体にとって価値が高いシステムである。
【００８２】
ＩＣ（Ｉｔｅｍ  Ｃｏｖｅｒａｇｅ：推薦アイテムの被覆率）は、テスト期間に視聴された映画タイトル数に対する各推薦方法が推薦可能なタイトル数の割合である。ＩＣは、システムが推薦できるシステム中の映画タイトルドメインの大きさを示す１つの指標である。従って、ＩＣが低いシステムは、ごく限られた映画タイトルしか提示できないから、ユーザにとって価値が低いシステムである。
【００８３】
Ｇｉｎｉ係数は、ユーザに対して映画のタイトルをお勧めしたときに、お勧めの統計的な分散を示す指標である。Ｇｉｎｉ係数は、０から１の値をとり、値が０に近いほど映画タイトル毎の推薦ユーザ数の格差が少なく、１に近いほど格差が大きいことを意味する。
【００８４】
ＡＥ（Ａｖｅｒａｇｅ  Ｅｌａｐｓｅｄ  ｔｉｍｅ）は、映画タイトルがリリースから視聴されるまでの経過時間の平均である。この値が小さければ、ユーザにとってそれだけ映画タイトルの新規性が高くなる。
【００８５】
ＡＤ（Ａｖｅｒａｇｅ  Ｄｉｆｆｅｒｎｅｃｅ  ｔｉｍｅ）は、テスト期間の開始時刻と映画タイトル視聴の時刻の差の平均である。この値が大きければ、それだけ気が付き難い映画タイトルになる。
【００８６】
図１４に示すように、ＰＯＴ  ｒ＝｛１，２，３｝の場合、Ｔｏｐ−１０の値が、従来のどの手法よりも統計的に大きいので、従来よりも、より良い上位１０個の映画タイトルを推薦できる。
また、ＰＯＴ  ｒ＝｛２，３｝の場合、ＩＣの値が、従来のどの手法よりも統計的に大きいので、従来よりもユーザ毎に推薦している映画タイトルが異なっている。これにより、本実施形態の分類システムは、幅広い映画タイトルを提示できることから、ユーザにとって価値が高い。
【００８７】
また、ＰＯＴ  ｒ＝｛２，３｝の場合、Ｇｉｎｉの値が、従来のどの手法よりも統計的に小さいから、従来よりも映画タイトル毎の推薦ユーザ数の格差が少ない。これにより、本実施形態の分類システムは、広く映画タイトルを推薦できるので、ユーザにとって価値が高い。
【００８８】
また、ＰＯＴ  ｒ＝｛２，３｝の場合、ＡＥの値が、従来のどの手法よりも統計的に小さいから、従来よりも映画タイトルがリリースから視聴されるまでの経過時間が短い。これにより、本実施形態の分類システムは、従来よりも新しい映画タイトルを推薦することができるので、ユーザにとって価値が高い。
【００８９】
以上説明したように、本実施形態における計算サーバ５０２は、観測変数として、時刻ｔを導入し、トレンドクラス毎かつ時刻毎に文章ｄの出現確率を抽出する。これにより、計算サーバ５０２は、時系列データからトレンドの周期と、各トレンドを構成するトークン（例えば、単語）を同時に抽出することができる。その結果、例えば、計算サーバ５０２は、コミュニティ（嗜好が類似したユーザの集合）を同時に抽出することができる。
【００９０】
また、本実施形態における計算サーバ５０２は、観測変数ｗを求めるための多項分布を、スイッチ変数ｒにより、トピック毎の多項分布と、トレンドクラス毎の多項分布と、コミュニティクラス毎の多項分布と、全体での多項分布との間で切り替える。これにより、時間と共に変化するものと、そうでないものとを切り分けることができ、時間と要素の組み合わせの同時確率だけでなく、要素だけの確率で表現することができる。
【００９１】
従来の分析では、時系列に対する変動を連続的に考慮していなかったため、時間の経過に対する変化の予測ができなかった。それに対し、本実施形態では、観測変数の時刻ｔをモデルに導入した。これにより、時系列に対し連続的に変動する要素を取り入れた予測を行うことを可能としたので、トレンドを抽出することができる。
【００９２】
従来の分析では、データの生成過程に階層構造が反映されておらず、階層（例えば、コミュニティまたはトピック）毎に分類することができなかった。それにより、分析対象のデータの分類が階層構造でないため、データの属性（該当するコミュニティの規模などに関連）を踏まえた分析ができなかった。
それに対し、本実施形態では、階層（例えば、コミュニティまたはトピック）毎に観測変数ｗを生成する確率分布を生成し、スイッチ変数ｒの値によって用いる確率分布を切り替える構成にした。これにより、構成要因を階層（例えば、コミュニティ、トレンド又はトピック）毎に分類することができる。その結果、例えば、分析データについて、著者ＩＤ、文書ＩＤ、単語ＩＤを付与した場合、分析の際に、例えば、特定著者ＩＤに固有か普遍かを分析することができる。
【００９３】
また、本実施形態では、観測変数の時刻ｔがモデルに導入し、かつ階層毎に観測変数ｗを生成する確率分布を生成し、スイッチ変数ｒの値によって用いる確率分布を切り替える構成により、階層（例えば、コミュニティ又はトピック）毎のトレンドを、人手を介すことなく、一意に抽出することができる。ここで、一意とは誰がやっても常に同じ結果になることを意味する。
【００９４】
更に、本実施形態では、時刻ｔを連続値で扱うために、トレンドの確率分布（一例として、ベータ分布）を導入した。この構成により、時刻を連続値で扱うことにより、周期の異なるトレンドと、各トレンドを構成する要素を同時に抽出可能である。ここで、周期とは、時系列変化の時間スケールである。また、それと同時にトレンドの分布を確率分布で表現することにより、トレンド間の比較が容易である。また、ある時間幅毎に頻度を離散化する必要がないので、データ毎に時間幅を調整しなくても良く、時間幅を調整する手間を削減することができる。
【００９５】
また、本実施形態では、観測変数の時刻ｔがモデルに導入し、かつ階層毎に観測変数ｗを生成する確率分布を生成し、スイッチ変数ｒの値によって用いる確率分布を切り替え、かつ時刻ｔを連続値で扱うために、トレンドの確率分布を導入した。この構成により、異なる周期を有する複数の時系列データを、その時系列変化の周期毎にかつ階層的に分類することができる。
【００９６】
なお、時刻ｔの確率分布は、ベータ分布λに限らず、確率分布であればよく、ガンマ分布でもよい。
また、複数の装置を備えるシステムが、本実施形態の計算サーバ５０２の各処理を、それらの複数の装置で分散して処理してもよい。
また、本実施形態の計算サーバ５０２の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、計算サーバ５０２に係る上述した種々の処理を行ってもよい。
【００９７】
なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００９８】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９９】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１００】
５０１  ファイルサーバ
５０２  計算サーバ（分類装置）
５０３  データベース
５０４  サービスサーバ
５０５  ユーザ端末
５１１  データファイル保存部
５２１  事前処理部
５２２  計算処理部
５３１  計算結果記憶部
５４１  呼出し部
【図１】
0005802597.tif 000007
【図２】
0005802597.tif 000008
【図３】
0005802597.tif 000009
【図４】
0005802597.tif 000010
【図５】
0005802597.tif 000011
【図６】
0005802597.tif 000012
【図７】
0005802597.tif 000013
【図８】
0005802597.tif 000014
【図９】
0005802597.tif 000015
【図１０】
0005802597.tif 000016
【図１１】
0005802597.tif 000017
【図１２】
0005802597.tif 000018
【図１３】
0005802597.tif 000019
【図１４】
0005802597.tif 000020