(57)【要約】【課題】文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことを課題とする。【解決手段】本発明のトレンド分析装置１０００は、時期毎に設けられたトレンドクラスを有する所定の確率分布モデルにおいて、スイッチ変数に応じた単語生成分布、第１の計算式、第２の計算式などを用いて、各文書が確率的に属するトレンドクラスを計算することができる。つまり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。【選択図】図１
2011134230.tif 000002
【特許請求の範囲】
【請求項１】
所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置であって、
前記所定の確率分布モデルにおいて、前記トレンドクラスは所定の時間幅毎に設けられ、前記トレンドクラスに確率的に属する１以上のトピッククラスが計算され、
前記複数の文書、
前記確率分布モデルで使用され、前記文書毎に、確率的にその文書の属する前記トレンドクラスを推定するための第１の計算式、
前記確率分布モデルで使用され、前記文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、（１）前記複数の文書すべてについての単語生成分布に対応する値、（２）前記トレンドクラスについての単語生成分布に対応する値、（３）前記トピッククラスについての単語生成分布に対応する値、の３つの値のうちいずれかの値をとるか決定するための第２の計算式、および、
所定の計算終了条件、を記憶する記憶部と、
前記文書それぞれが属する前記トレンドクラス、および、前記トレンドクラスに属する１以上のトピッククラス、の初期値を設定する初期設定部と、
前記第１の計算式および前記スイッチ変数に基づいて、前記文書毎に、前記トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、０以上１未満の乱数値よりも高い場合に、その文書がその前記トピッククラスに属するものと推定するトレンドクラス推定部と、
前記第２の計算式に基づいて、前記文書毎の前記トークン毎に、前記文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、０以上１未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定するスイッチ変数推定部と、
前記所定の計算終了条件を満たすまで、前記トレンドクラス推定部と前記スイッチ変数推定部とに、計算を繰り返させる収束判定部と、
前記収束判定部によって前記所定の計算終了条件が満たされたと判定されたとき、前記複数の文書それぞれが属する前記トレンドクラスを含む計算結果を出力する出力部と、
を備えることを特徴とするトレンド分析装置。
【請求項２】
前記収束判定部は、
前記所定の計算終了条件として、前記トレンドクラス推定部と前記スイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いる
ことを特徴とする請求項１に記載のトレンド分析装置。
【請求項３】
所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置によるトレンド分析方法であって、
前記所定の確率分布モデルにおいて、前記トレンドクラスは所定の時間幅毎に設けられ、前記トレンドクラスに確率的に属する１以上のトピッククラスが計算されるものであり、
前記トレンド分析装置は、
前記複数の文書、
前記確率分布モデルで使用され、前記文書毎に、確率的にその文書の属する前記トレンドクラスを推定するための第１の計算式、
前記確率分布モデルで使用され、前記文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、（１）前記複数の文書すべてについての単語生成分布に対応する値、（２）前記トレンドクラスについての単語生成分布に対応する値、（３）前記トピッククラスについての単語生成分布に対応する値、の３つの値のうちいずれかの値をとるか決定するための第２の計算式、および、
所定の計算終了条件、を記憶する記憶部と、
初期設定部と、トレンドクラス推定部と、スイッチ変数推定部と、収束判定部と、出力部と、を備えており、
前記初期設定部は、前記文書それぞれが属する前記トレンドクラス、および、前記トレンドクラスに属する１以上のトピッククラス、の初期値を設定し、
前記トレンドクラス推定部は、前記第１の計算式および前記スイッチ変数に基づいて、前記文書毎に、前記トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、０以上１未満の乱数値よりも高い場合に、その文書がその前記トピッククラスに属するものと推定し、
前記スイッチ変数推定部は、前記第２の計算式に基づいて、前記文書毎の前記トークン毎に、前記文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、０以上１未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定し、
前記収束判定部は、前記所定の計算終了条件を満たすまで、前記トレンドクラス推定部と前記スイッチ変数推定部とに、計算を繰り返させ、
前記出力部は、前記収束判定部によって前記所定の計算終了条件が満たされたと判定されたとき、前記複数の文書それぞれが属する前記トレンドクラスを含む計算結果を出力する
ことを特徴とするトレンド分析方法。
【請求項４】
前記収束判定部は、
前記所定の計算終了条件として、前記トレンドクラス推定部と前記スイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いる
ことを特徴とする請求項３に記載のトレンド分析方法。
【請求項５】
請求項１または請求項２に記載のトレンド分析装置としてコンピュータを機能させるためのトレンド分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書のトレンド分析に関する。
【背景技術】
【０００２】
以下、トレンドとは、特定の時刻及び時期に見られる文書の特徴（文書が扱っているテーマ（話題））を表す。 文書のトレンド分析を行う際、トレンドのモデル化は、ログ分析（ログデータの分析）を行う場合だけでなく、テキスト分析（テキストデータの分析）を行う場合においても、非常に重要なテーマである。なぜなら、ログから観測されるユーザの行動だけでなく、ニュース、ブログ等のテーマも時間的に変化するためである。このようなデータからトレンドをモデル化することで、ＥＣ（Electronic Commerce）サイトや情報検索サイトなどのサービスにおいて、ユーザの利便性を高めることができる。例えば、トレンドをモデル化することで、ＥＣサイトや情報検索サイトでユーザの嗜好に合うだけでなく、これから流行しそうな商品や情報を提供できるようになる。
【０００３】
トレンド分析の手法としては、例えば、Dynamic topic Models（ＤＴＭｓ。非特許文献１参照）およびTopics Over Time（ＴＯＴ。非特許文献２参照）が知られている。ＤＴＭｓは、時間を離散的に扱い、ある時刻ｔに文書ｄがトピックｔを扱う可能性を確率として与えることにより、トピックの分布の時間変化をモデル化する手法である。ＴＯＴは、時間を連続的に扱い、トピックを単語の非マルコフ連続時間でモデル化する手法である。
【０００４】
なお、テキスト分析におけるトレンドのモデル化の目的は、各文書が「いつ、どのテーマについて書かれたか」を明らかにすることである。一般に、各文書のテーマは複数のトピックから構成されていて、同じテーマでもそのトピック構成は時間的に変化する。例えば、経済危機のテーマでは、トピックは「原油高騰」、「サブプライム問題」、そして「リーマン破綻」と変化している。また、経済危機のテーマよりも芸術のテーマの方が、それらの性質により、トピックの変化は緩やかである。このように、トレンドには、１）１つのトピックだけでなく、複数のトピックの組み合わせから構成される場合もある、ということのほかに、２）トピック毎に時間的な変化の速度が異なる、という特徴がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】D. Blei and J. Lafferty, “Correlated Topic Models”, NIPS (Neural Information Processing Systems) 18, 2004
【非特許文献２】X. Wang and A. McCallum, “Topics over Time: A Non-Markov Continuous-Time Model of Topical Trends”, KDD (Knowledge Discovery and Data Mining), pp. 424-433, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１および非特許文献２の手法では、これらのようなトレンドの特徴に対応するのが難しいという問題がある。例えば、ＤＴＭｓ（非特許文献１の手法）はトピック分布の時間変化を反映しているが、時間を離散的に扱っているために、トレンド変化の速度が異なる文書を扱う場合、その違いを反映できないことがある。これに対し、ＴＯＴ（非特許文献２の手法）は時間についてベータ分布を用いることで、時間を連続的に扱い、トピックを時間と単語の同時確率で扱っている。しかし、トピック単位に時間を扱う為に、トピックの組み合わせの時間変化を扱うことが難しいという問題がある。
【０００７】
そこで、本発明は、前記した問題を解決するためになされたものであり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことを課題とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明は、所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置であって、所定の確率分布モデルにおいて、トレンドクラスは所定の時間幅毎に設けられ、トレンドクラスに確率的に属する１以上のトピッククラスが計算され、複数の文書、確率分布モデルで使用され、文書毎に、確率的にその文書の属するトレンドクラスを推定するための第１の計算式、確率分布モデルで使用され、文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、（１）複数の文書すべてについての単語生成分布に対応する値、（２）トレンドクラスについての単語生成分布に対応する値、（３）トピッククラスについての単語生成分布に対応する値、の３つの値のうちいずれかの値をとるか決定するための第２の計算式、および、所定の計算終了条件、を記憶する記憶部と、文書それぞれが属するトレンドクラス、および、トレンドクラスに属する１以上のトピッククラス、の初期値を設定する初期設定部と、第１の計算式および前記スイッチ変数に基づいて、文書毎に、トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、０以上１未満の乱数値よりも高い場合に、その文書がそのトピッククラスに属するものと推定するトレンドクラス推定部と、第２の計算式に基づいて、文書毎のトークン毎に、文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、０以上１未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定するスイッチ変数推定部と、所定の計算終了条件を満たすまで、トレンドクラス推定部とスイッチ変数推定部とに、計算を繰り返させる収束判定部と、収束判定部によって所定の計算終了条件が満たされたと判定されたとき、複数の文書それぞれが属するトレンドクラスを含む計算結果を出力する出力部と、を備えることを特徴とする。
【０００９】
かかる発明によれば、所定の時間幅毎に設けられたトレンドクラスを有する所定の確率分布モデルにおいて、スイッチ変数に応じた単語生成分布、第１の計算式、第２の計算式などを用いて、各文書が確率的に属するトレンドクラスを計算することができる。つまり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。
【００１０】
また、本発明は、収束判定部が、所定の計算終了条件として、トレンドクラス推定部とスイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いることを特徴とする。
【００１１】
かかる発明によれば、所定の計算終了条件として、前記した確率の誤差に関する閾値か、繰り返された計算回数のいずれかという具体的で適切な条件を設定することで、計算精度や処理時間などの目的に応じた条件設定ができる。
【００１２】
また、本発明は、トレンド分析装置としてコンピュータを機能させるためのトレンド分析プログラムである。
【００１３】
かかる発明によれば、このプログラムをインストールされたコンピュータが、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【００１４】
本発明によれば、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のトレンド分析装置の構成図である。
【図２】本実施形態のトレンドクラス推定部の構成図である。
【図３】本実施形態のスイッチ変数推定部の構成図である。
【図４】本実施形態のトレンド分析方法における処理のフロー図である。
【図５】本実施形態のトレンドクラス推定処理のフロー図である。
【図６】本実施形態のトレンドクラス更新処理のフロー図である。
【図７】本実施形態のスイッチ変数推定処理のフロー図である。
【図８】本実施形態のスイッチ変数更新処理のフロー図である。
【図９】本実施形態について、（ａ）は文書の構成の説明図であり、（ｂ）は文書集合のトレンドのモデル化の説明図であり、（ｃ）は単語のモデル化の説明図であり、（ｄ）はトレンド分析モデルの説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態（以下、「実施形態」という。）について、図面を参照して説明する。まず、本実施形態で用いる記号を表１に示す。
【表１】
2011134230.tif 000003
【００１７】
また、本実施形態において、トークンとは、単語を抽象化した概念である。すなわち、図９（ａ）に示すように、トークンは単語１個分の枠であり、文書はトークンの並びで構成され、トークンに具体的な単語が入ることによって、具体的な文書になる。
【００１８】
次に、本実施形態のトレンド分析モデル（潜在変数モデル）におけるトピック（文書を内容の違いにより分類したカテゴリ） の概念について説明する。このモデルは、各トピックを単語生成の確率分布を持つ潜在変数として扱い、文書を単語集合からより低次元の潜在変数の集合で表現できる特徴を持つ。トピックの隠れ変数を用いることで、文書内で共起し易い単語集合を簡潔にモデル化できる。例えば、「クリント・イーストウッド、ション・コネリー、マイケル・ケイン、ロバート・パトリック、ロイ・シャイダー」を、「俳優」に相当する一トピックの隠れ変数で表現できる。つまり、Ｖ種の単語を、より少数のＴ種の変数で表現できる利点がある。
【００１９】
本実施形態では、このモデルを使って、文書集合のトレンドを次のようにモデル化する。まず、同時期（多少の幅（所定の時間幅）があってもよい。）に同じトピックについて記述している文書は同じトレンドを持つとして、トレンド変数Ｃを与える。例えば、図９（ｂ）に示すように、「金融」という同じトピックについての文書ｄ１と文書ｄ２は、２００８年という同時期に作成されているため、同じトレンド変数が与えられる。しかし、「金融」という同じトピックについての文書ｄ２と文書ｄ３は、それぞれ２００８年と２００９年という異なった時期に作成されているため、異なるトレンド変数が与えられる。なお、文書ｄ１、ｄ２、ｄ３には「金融」以外のトピックも必要に応じて付与される。このようにして、トレンド変数により、各年代（時期）に文書内で扱われやすい（扱われる確率の高い）トピック集合を簡潔にモデル化できる。
【００２０】
また、図９（ｃ）に示すように、文書内の各トークンに出現する単語を、スイッチ変数とトピック変数とを組み合わせてモデル化する。スイッチ変数は、「０」，「１」，「２」の３つの値のうちいずれかをとる。そして、「０」の場合は背景知識（全文書共通の知識）の持つ単語生成分布から、「１」の場合はトレンドの持つ単語生成分布から、「２」の場合はトピックの持つ単語生成分布から、生成する単語（文書の各トークンに出現する単語）を決定する。トピック変数は、該当文書のトレンド変数が持つトピック変数から、確率的に決定する。
【００２１】
これらの隠れ変数（トレンド変数、スイッチ変数、トピック変数）と、それらの確率的な関係を、本実施形態のトレンド分析モデルでは次のように定義する。つまり、図９（ｄ）に示すように、各文書はトレンド変数を一つ持ち、そのトレンド変数Ｃはトレンド変数毎に異なる時刻毎の確率分布とトピック選択確率分布を持つ。さらに、文書内のトークンは、スイッチ変数の値毎に背景知識、トレンドおよびトピックの単語生成分布を用いて単語を生成する。
【００２２】
なお、本手法（本実施形態の手法）では、ＴＯＴと同様に、文書の生成にbag of words（語順無関係の単語集合）の仮定を置くので、文法や言葉の順序を考慮しなくてよいものとする。
【００２３】
次に、本実施形態のトレンド分析装置の構成について説明する。図１に示すように、トレンド分析装置１０００は、コンピュータ装置であり、入力部１、記憶部２、演算部１００、出力部７を備えて構成される。
【００２４】
演算部１００は、例えば、ＣＰＵ（Central Processing Unit）およびＲＡＭ（Random Access Memory）から構成される主制御装置であり、初期設定部３と、トレンドクラス推定部４と、スイッチ変数推定部５と、収束判定部６とを備えている（詳細は後記）。
【００２５】
＜入力部１＞
入力部１は、情報を入力する手段であり、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。トレンド分析装置１０００は、入力部１を介して、トレンドクラス（以下、単に「トレンド」ともいう。）の総数Ｃとトピッククラス（以下、単に「トピック」ともいう。）の総数Ｚを受け付ける。トレンドの数やトピックの数は、分類したいクラスの数に合わせて自由に設定することができる。
【００２６】
＜記憶部２＞
記憶部２は、情報を記憶する手段であり、例えば、一般的なハードディスク装置などから構成される。記憶部２は、トレンド分析の対象となる文書データ（文書の生成時刻や著者などのメタデータも含む。）を記憶する。文書データは、例えば、学術論文や特許明細書、ブログ記事やＷｅｂページなどの電子データである。また、文書データの代わりに、購入商品の情報を文書データとし、その商品を購入したユーザと購入した日時などをメタデータとして扱っても良い。
【００２７】
なお、記憶部２には、文書データの他に、演算部１００の動作プログラムや、記憶部２に記憶した文書の総数Ｄや文書中に登場する単語の種類の総数Ｖ、文書ｄ毎の単語数Ｎｄなどの情報も記憶されているものとする。
【００２８】
＜初期設定部３＞
初期設定部３では、各文書が属するトレンドクラス（トレンド変数）と、トレンドクラスの持つ１つ以上のトピッククラス（トピック変数）の初期値をランダムに選択する。初期値は任意に選択することができるが、１つの文書に対してトレンドクラスは１つとする。
【００２９】
＜トレンドクラス推定部４＞
トレンドクラス推定部４は、ギブスサンプリング（Gibbs Sampling）の手法を応用して、文書ｄの属するトレンドクラスｃｄを推定する。ギブスサンプリングでは、サンプリング対象となる文書を１つ選択し、ｃｄ＝ｊ（ｊ＝１，２，・・・，Ｃ）について、後記する式（３）の条件付確率を計算した後、ランダムに生成した値（乱数）と条件付確率の値との大小を比較することにより、文書の属するトレンドクラスを変更する。この処理を全ての文書について行い、確率の値が収束するまで、あるいは事前に設定した回数を終えるまで処理を繰り返す。なお、このように条件付確率を計算して文書の属するトレンドクラスを決定する場合について、文書がトレンドクラスに属することを、特許請求の範囲では、文書がトレンドクラスに「確率的に属する」という表現をしている。
【００３０】
次に、図２を参照して、トレンドクラス推定部４の構成について説明する。トレンドクラス推定部４は、サンプル文書選択部４１、初期設定部４２、トレンドクラス更新部４３から構成される。トレンドクラス推定部４は、図５に示す処理を実行することにより、文書ｄがトレンドクラスｊに属する確率
Ｐ（ｃｄ＝ｊ｜ｃ＼ｄ，ｚ，ｔ，α，β，λ）を推定する（詳細は後記）。ここで、表１に示すように、λは時刻ｔを変数とするβ分布のパラメータであり、このパラメータにより時刻の確率分布が考慮されていることになる。以下、図５に示すフロー図を参照しなから、各部の処理を説明する。
【００３１】
＜サンプル文書選択部４１＞
まず、サンプル文書選択部４１は、記憶部２に記憶された文書の中から、まだサンプル対象として選択していない文書ｄをサンプル対象の文書として選択する（ステップＳ４１）。
【００３２】
＜初期設定部４２＞
次に、初期設定部４２は、文書のトレンドクラスの推定に使用する隠れパラメータαとβの初期値を決定する（ステップＳ４２）。ここで、αはＣ次元（Ｃは入力部１で入力したトレンドクラスの総数）のベクトル、βはＺ次元（Ｚは入力部１で入力したトピッククラスの総数）のベクトルである。
【００３３】
また、αとβの各要素の値としては、以下の式（１）、（２）を満たす任意の値を設定する。
０＜αｊ≦ｎｊ＼ｄ        ｊ＝１，２，３，…，Ｃ  ・・・式（１）
０＜βｚ≦ｎｊｚ＼ｄ       ｚ＝１，２，３，…，Ｚ  ・・・式（２）
【００３４】
ここで、ｎｊ＼ｄは、サンプリング対象の文書ｄを除くトレンドクラスｊに属する全文書数である。また、ｎｊｚ＼ｄは、サンプリング対象の文書ｄを除くトレンドクラスｊに属する全文書中でトピッククラスｚが選択したトークンの数である。
【００３５】
＜トレンドクラス更新部４３＞
次に、トレンドクラス更新部４３は、トレンドクラス更新処理を行う（ステップＳ４３）。図６に示すように、まず、Ｃ個のトレンドクラスからまだサンプリングしていないトレンドクラスｊを１つ選択し（ステップＳ４３１）、以下の処理を行う。
【００３６】
次の式（３）にしたがって、確率Ｐ（ｃｄ＝ｊ｜ｃ＼ｄ，ｚ，ｔ，α，β，λ）を計算する（ステップＳ４３２）。
【数１】
2011134230.tif 000004
【００３７】
ここで、Ｂはベータ関数である。また、Γはガンマ関数である。また、λｊ１とλｊ２は、トレンド変数がｊである場合のベータ分布のパラメータである。また、各記号における「＼ｄ」は、「文書ｄを除いた場合」を意味する。
【００３８】
なお、初期設定部４２で設定した隠れパラメータαとβは、式（３）においてｎｊ＼ｄやｎｊｚ＼ｄが「０」となった場合に、式（３）の分母が「０」になるために確率が計算できなくなってしまうことを避けるためのスムージングパラメータの役割を担っている。
【００３９】
続いて、０≦Ｒ＜１の一様乱数を生成し（ステップＳ４３３）、ステップＳ４３２で計算した確率
Ｐ（ｃｄ＝ｊ｜ｃ＼ｄ，ｚ，ｔ，α，β，λ）の値がＲより大きければ（ステップＳ４３４でＹｅｓ）文書ｄの属するトレンドクラスをｊに更新する（ステップＳ４３５）。ステップＳ４３２で計算した確率
Ｐ（ｃｄ＝ｊ｜ｃ＼ｄ，ｚ，ｔ，α，β，λ）の値がＲ以下の場合には（ステップＳ４３４でＮｏ）、トレンドクラスの更新は行わない（ステップＳ４３５をスキップする）。
【００４０】
次に、文書ｄについて、ステップＳ４３１〜Ｓ４３５の処理を実行していないトレンドクラスが存在する場合には（ステップＳ４３６でＮｏ）、まだ処理を実行していないトレンドクラスｊ´（ｊ）を選択し（ステップＳ４３１）、上記Ｓ４３２〜ステップＳ４３５を繰り返す。
【００４１】
全てのトレンドクラスｊ＝１，２，…，Ｃについて処理を実行し終えたら（ステップＳ４３６でＹｅｓ）、ステップＳ４３を終え、ステップＳ４４（図５参照）に進む。その後、サンプル文書選択部４１は、サンプル対象として選択していない文書ｄ´（ｄ）を新たなサンプル対象の文書として選択し（ステップＳ４４でＮｏ→ステップＳ４１）、ステップＳ４２，Ｓ４３の処理を繰り返す。全ての文書についてサンプリングを終えたら（ステップＳ４４でＹｅｓ）、ステップＳ４を終え、ステップＳ５（図４参照）の処理に移る。
【００４２】
＜スイッチ変数推定部５＞
スイッチ変数推定部５（図１参照）は、文書ｄ内の各トークンが、背景知識の単語生成分布（スイッチ変数が「０」の場合）、トレンドの単語生成分布（スイッチ変数が「１」の場合）、トピックの単語生成分布（スイッチ変数が「２」の場合）、のいずれの単語生成分布から単語を生成するかを（つまり、スイッチ変数の値を）決定する。
【００４３】
図３に示すように、スイッチ変数推定部５は、サンプル文書選択部５１、初期設定部５２、スイッチ変数更新部５３から構成される。
【００４４】
＜サンプル文書選択部５１＞
図７に示すように、ステップＳ５（図４参照）の処理として、まず、サンプル文書選択部５１は、記憶部２に記憶された文書の中から、まだサンプル対象として選択していない文書ｄをサンプル対象の文書として１つ選択する（ステップＳ５１）。
【００４５】
＜初期設定部５２＞
次に、初期設定部５２は、文書のトレンドクラスの推定に使用する隠れパラメータβ、γ、εの初期値を決定する（ステップＳ５２）。ここで、βはＺ次元（Ｚは入力部１で入力したトピッククラスの総数）のベクトル、γはＮｄ次元（Ｎｄは文書ｄ内の単語数）のベクトル、εはスカラである。
【００４６】
また、β、γ、εの各要素の値としては、以下の式（４）、（５）、（６）を満たす任意の値を設定する。
０＜βｊ≦ｎｊｋ＼ｄｉ         ｊ＝１，２，３，…，Ｃ  ・・・式（４）
０＜γｚ≦ｎｊｗｄｉ＼ｄｉ      ｚ＝１，２，３，…，Ｚ  ・・・式（５）
０＜εｒ≦ｎｄｒ＼ｄｉ              ｒ＝０，１，２          ・・・式（６）
【００４７】
ここで、ｎｊｗｄｉ＼ｄｉは、トピックｋが文書ｄのトークンｄｉを除き、単語ｗｄｉ（文書ｄのｉ番目のトークンに出現する単語）を選択する数である。また、ｎｄｒ＼ｄｉは、文書ｄのｉ番目のトークンｄｉを除き、スイッチ変数がｒとなるトークンの数（ｒには「０」、「１」、「２」のいずれかの数字が入る。）である。また、ｎｊｋ＼ｄｉは、文書dのｉ番目のトークンを除く文書クラスがjの全文書のうち、トピックがｋであるトークンの数を表す。 
【００４８】
＜スイッチ変数更新部５３＞
スイッチ変数更新部５３は、スイッチ変更更新処理を行う、つまり、文書ｄ内の各トークンについて、そのスイッチ変数を決定するための条件付確率を算出する（ステップＳ５３）。
【００４９】
図８に示すように、まず、文書ｄ内でまだステップＳ５３２〜Ｓ５３５の処理を行っていないｉ番目のトークンｄｉを１つ選択する（ステップＳ５３１）。
【００５０】
次に、文書ｄのｉ番目のトークンｄｉのスイッチｒｄｉが「０」、「１」、「２」のそれぞれの場合について、以下の式（７）〜（９）の条件付確率を計算する。
【００５１】
＜ｒｄｉ＝０の場合＞
【数２】
2011134230.tif 000005
【００５２】
ここで、ｎｄ０＼ｄｉは、文書ｄのトークンｄｉを除き、ｒ＝０となるトークンの数である。また、ｎｂｖ＼ｄｉは、背景知識のうち、文書ｄのトークンｄｉを除き、単語ｖを選択する数である。なお、式（７）の左辺に登場していて右辺に登場していないパラメータは、右辺では定数項となるため省略されているパラメータである。
【００５３】
＜ｒｄｉ＝１の場合＞
【数３】
2011134230.tif 000006
ここで、ｎｄ１＼ｄｉは、文書ｄのトークンｄｉを除き、ｒ＝１となるトークンの数である。また、ｎｋｖ＼ｄｉは、トピックｋが文書ｄのトークンｄｉを除き、単語ｖを選択する数である。
【００５４】
＜ｒｄｉ＝２の場合＞
【数４】
2011134230.tif 000007
ここで、ｎｄ２＼ｄｉは、文書ｄのトークンｄｉを除き、ｒ＝２となるトークンの数である。また、ｎｊｖ＼ｄｉは、トレンドｊのうち、文書ｄのトークンｄｉを除き、単語ｖを選択する数である。
【００５５】
次に、０≦Ｒ＜１の一様乱数を生成し（ステップＳ５３３）、ステップＳ５３２で計算した式（７）、（８）、（９）のうち値が最大となる条件付確率がＲの値よりも大きいか否かを判定する（ステップＳ５３４）。その最大の条件付確率がＲより大きければ（ステップＳ５３４でＹｅｓ）、文書ｄのｉ番目のトークンｄｉの単語を生成する単語生成確率を決めるスイッチ変数を、ステップＳ５３４で比較に使用した条件付確率に対応するスイッチ変数に更新する（ステップＳ５３５）。その最大の条件付確率がＲ以下の場合は（ステップＳ５３４でＮｏ）、ステップＳ５３５をスキップする。
【００５６】
続いて、まだステップＳ５３２〜５３５を実行していない文書ｄ内のトークンｄｉ´（ｄｉ）があればそれを選択し（ステップＳ５３６でＮｏ→ステップＳ５３１）、ステップＳ５３２〜５３５の処理を実行する。
【００５７】
文書ｄ内の全てのトークンについてステップＳ５３２〜Ｓ５３５の処理を終えていれば（ステップＳ５３６でＹｅｓ）、ステップＳ５３を終え、ステップＳ５４に進む（図７参照）。サンプル文書選択部５１は、サンプル対象として選択していない文書ｄ´（ｄ）を新たなサンプル対象の文書として１つ選択し（ステップＳ５４でＮｏ→ステップＳ５１）、ステップＳ５２，Ｓ５３の処理を繰り返す。全ての文書についてサンプリングを終えたら（ステップＳ５４でＹｅｓ）、ステップＳ５を終え、ステップＳ６の処理に移る（図４参照）。
【００５８】
＜収束判定部６＞
収束判定部６は、式（３）の確率と、式（７）〜（９）のうち値が最大となる確率とが収束したか否かを判定する（ステップＳ６）。収束していない場合（ステップＳ６でＮｏ）、トレンドクラス推定部４とスイッチ変数推定部５の処理（ステップＳ４，Ｓ５）を繰り返す。
【００５９】
なお、前記した確率が収束したか否かの判定は、１ステップ前の確率と今回得られた確率との誤差を比較し、誤差が予め定めた閾値以下である場合には収束したと判定することとしても良い。あるいは、ステップＳ４，Ｓ５の処理の繰り返し回数をカウントし、予め設定した繰り返し回数に到達したら確率が収束したと判定して処理を終了することとしても良い。
【００６０】
＜出力部７＞
出力部７は、情報を出力するための手段であり、例えば、グラフィックボード（出力インタフェース）およびそれに接続されたモニタである。前記した各確率が収束した場合（ステップＳ６でＹｅｓ）、出力部７は、式（３）の確率と、式（７）〜（９）のうち値が最大となる確率とにしたがって得られたトレンドクラスと単語を出力する（ステップＳ７）。
【００６１】
なお、トレンド分析装置１０００を構成するコンピュータに実行プログラムをインストールすることにより、コンピュータは、そのプログラムに基づいた各機能を実現することができる。
【００６２】
このように、本実施形態では、トレンドのモデル化の為に、新たにトレンド変数となる隠れ変数を導入したモデルTopics and Trend（ＴＡＴ）を採用した。つまり、文書毎に、時間毎に異なるトレンド変数を導入し、トレンド変数の時間としてベータ分布を用いることで、時間を連続的に扱うことが可能となった。また、トレンド変数が時間毎のトピック選択確率分布を持つことで、トピックの時間変化を扱うことが可能になった。つまり、本実施形態で採用したモデルＴＡＴは、従来技術であるＤＴＭｓおよびＴＯＴの両者の問題を解決したモデルになっている。したがって、本実施形態のトレンド分析装置１０００によれば、各時刻における流行のトピックおよびそれに関する文書の検索、あるいは、今後流行するトピックの予測を、実行することができる。
【実施例１】
【００６３】
＜コンテンツのトレンド判定＞
本実施形態のトレンド分析装置１０００を利用して、コンテンツのトレンドを判定する場合の実施例を以下に示す。このトレンド判定の目的は、作成時間が不明なコンテンツを入力として、そのコンテンツの作成時間を推定することである。
【００６４】
まず、記憶部２に記憶された作成時間付きの文書に対して、トレンド分析装置１０００により、文書ｄのトレンド選択の確率分布（ψ）と、文書ｄ中のスイッチ変数選択の確率分布（μ）と、トレンドｃのトピック選択の確率分布（θ）と、トピックｚ（またはトレンドｃまたは背景知識ｂ）の単語選択の確率分布（φ）を推定する。
【００６５】
続いて、入力である作成時間が不明なコンテンツについて周知技術を用いて形態素解析し、その結果である単語に対して、トレンド分析装置１０００で推定（算出）した確率分布を用いて該当コンテンツの生成確率を計算する。コンテンツの生成確率の計算に用いる式は次の式（１０）である。
【数５】
2011134230.tif 000008
ここで、ｎｄｒは文書ｄに関連付けされているスイッチ変数ｒの数を表す。
【００６６】
この生成確率が最大となる時間を、入力のコンテンツが作成された時刻と推定し、出力する。
このように、トレンド分析装置１０００を用いて推定した確率分布は、時間毎に生成しやすいコンテンツの予測にも利用することができる。
【実施例２】
【００６７】
＜最新トレンドに合ったコンテンツおよびアイテムの推薦＞
本実施形態のトレンド分析装置１０００を利用して、最新トレンドに合ったコンテンツおよびアイテムの推薦を行う場合の実施例を以下に示す。この場合の目的は、各ユーザの最新のトレンドに合ったアイテムを推薦することである。
【００６８】
ここでは、文書データの代わりに、各ユーザの購入アイテムとその購入時間から構成される購入履歴が、記憶部２に記憶されているものとする。
トレンド分析装置１０００は、各ユーザを各文書、アイテムを単語と置き換えることで各処理を実行し、ユーザのトレンド選択の確率分布（ψ）と、ユーザのスイッチ変数選択の確率分布（μ）と、トレンドｃのトピック選択の確率分布（θ）と、トピックｚ（またはトレンドｃまたは背景知識ｂ）のアイテム選択の確率分布（φ）とを推定する。
【００６９】
次に、入力履歴に含まれるアイテムに対し、トレンド分析装置１０００で推定した確率分布を用いて、該当ユーザの所属するトレンド変数を推定する。推定には式（８）を用いる。
そして、推薦対象のユーザの所属するトレンド変数に対し、最新の時間において生成確率が高いアイテムの上位ｎ個（ｎは予め定めた数）からなる集合を作成し、推薦アイテムとして出力する。
【００７０】
＜実験結果＞
次に、本実施形態のトレンド分析装置１０００を用いた実験結果の例について説明する。実験に用いたデータには、著者の興味などのパラメータが既知であるという条件が与えられている。データ１）は、ＡＣＭ（Association for Computing Machinery）の国際会議ＳＩＧＩＲ（Special Interest Group of Information Retrieval）で１９８５年から２００５年にかけて発表された論文である。データ２）は、同じくＡＣＭの国際会議ＣＩＫＭ（Conference on Information and Knowledge Management）、ＳＩＧＩＲ、ＫＤＤ(Knowledge Discovery and Data Mining)およびＷＷＷ（World Wide Web）で２００１年から２００８年にかけて発表された論文である。
【００７１】
これらのデータからストップワード（前置詞、冠詞等の非検索対象語）、数値、出現文書数が５以下の単語を除いた。ただし、著者が複数の場合は第一著者のみを扱った。また、協調フィルタリングの実験には広く用いられているNetflix（http://www.netflix.com/）のデータ（米国のオンラインＤＶＤ（Digital Versatile Disk）レンタル会社であるNetflix社のデータ）のうち、最低１００人に評価された映画を２０本以上評価したユーザのみの履歴を用いた。
【００７２】
評価は定性的および定量的に行った。内容および興味推定についてはクラス毎の分布の様子と各クラスの文書および著者を示すことで定性的に評価した。さらに、Test set perplexity（言語モデル分野で使われる指標。値が低いほど言語モデルとして高性能。）およびKL-Divergence（確率分布間の相違度を計る尺度）の結果を示すことで定量的に評価した。協調フィルタリングの実験では、推薦される上位Ｎ個のアイテム の予測精度、ユーザ/アイテム被覆率およびGini（ジニ）係数により定量的に評価した。
【００７３】
これらデータの学習において、モデルのパラメータをα＝１／Ｔ、β＝０，１、γ＝１０（ＡＰＴ（Author persona topic model），D. Mimno and A. McCallium, ”Expertise modeling for matching papers with reviewers”, ACM International Conference on Knowledge and Data Mining, pp.500-509, 2007）、１（ＬＩＴ（Latent interest topic model）：本手法）、δ＝１、ギブスサンプリングの繰り返し回数を１００００回とした。
【００７４】
＜定性的評価＞
表２は、データ１）から、Ｚ＝１００およびトレンドＣ＝２５の条件のもとで、本実施形態のトレンド分析装置１０００により抽出したトレンド変数毎の単語を示している。
【表２】
2011134230.tif 000009
【００７５】
表２は、毎年の出現確率の高い順に１１件の単語を表示したものであり、中央のラインから上はスイッチ変数ｒ＝０（全文書に共通する背景知識が持つ単語生成分布から生成した単語）の場合であり、下はｒ＝１（文書のトレンドが持つ単語生成分布から生成した単語）の場合である。
【００７６】
表２から、背景知識（共通トピック）からは「document(documents)」、「query(queries)」や「retrieval」といった各論文に共通して使われる単語が出現することが分かる。また、トレンド変数の場合は背景知識（共通トピック）と比較して、出現する単語が時間的に変化していることがわかる。例えば、１９９５年まで出現しなかった「Web」が２０００年に出現していることが分かる。
【００７７】
表３は、トレンド変数（「ＩＤ２」など）毎の単語分布、および、そのトレンド変数に関連するトピックからの出現単語の分布を示す。
【表３】
2011134230.tif 000010
【００７８】
表３の上半分はweb解析に関するトレンド変数であり、下半分はデータベース解析に関するトレンド変数である。最左列は各トレンド変数に関連する連続時間の分布（ベータ分布）、その右の列はトレンド変数に関連する単語、その右の四つの列はトレンド変数に関連が強い上位四件のトピックから出現する単語を確率の高い順に上位１１個を示したものである。本実施形態のトレンド分析装置１０００による処理の実行にあたっては、Ｚ＝２００、Ｃ＝３０とした。
【００７９】
表３から、web解析はデータベース解析よりベータ分布が右側に偏っており、ここ最近進展が目覚しい分野であることが分かる。
【００８０】
＜定量的評価＞
本実施形態で用いたモデルの定量的評価を行うために、各モデルにより推定されたパラメータを用い、test set perplexityを計算し、非特許文献２と比較する。
評価はテストセットを五回替えた。そのtest set perplexityの平均を表４に示す。
【表４】
2011134230.tif 000011
【００８１】
この表４から、本実施形態のモデルが全ての条件で最も低く、モデルとして有効であることが分かる。なお、表４の「本手法」における「２５」「５０」「１００」は、文書クラスの数を表す。 
【００８２】
著者興味の推定におけるモデルの有効性を定量化するために、Netflixのデータセットを用いた協調フィルタリングの実験を行った。評価が「１」（評価が一番悪い）〜「５」（評価が一番良い）の５段階であるこのデータでは、全体の９６％の評価が「４」あるいは「５」と大きく偏っている。そのため、ユーザ毎に評価の平均値を計算し、各ユーザの評価がそのユーザ毎の平均より高い映画を「１」、それ以外を「０」と変換して利用した。ここでユーザと各ユーザの評価した映画は、それぞれ先の実験の著者と文書に対応する。
【００８３】
実験はK fold cross-validation（回帰分析法の一種）を用い、トピックの数を２００、文書クラスの数を５０、そしてハイパパラメータα＝１／Ｔ、β＝０．１、γ＝１とそれぞれ固定し、ギブスサンプリングを１００００回行った。予測精度比較のベンチマークとして協調フィルタリングの代表的手法であるPearson、Cosine、Item Based、ＬＤＡおよびＴＯＴ（非特許文献２参照）を用いた。
【００８４】
Ｎを１、５、１０と変化させた場合のＴｏｐ−Ｎリコメンデーションによる結果を表５に示す。
【表５】
2011134230.tif 000012
【００８５】
表５の結果から、全手法の中で本手法の精度が高く、協調フィルタリングの嗜好の類似性の選別にも、興味の違いを反映させることが有用であることが示された。
【００８６】
推薦ユーザ／アイテムの被覆率とGini係数による評価について、以下に説明する。Gini係数は、手法毎に推薦可能なアイテムの、テスト期間に購入したユーザ数の分布状況を示す。この係数は「０」から「１」までの値をとり、値が「０」に近いほどアイテム毎の購入ユーザ数の格差が少なく、「１」に近いほど格差が大きいことを意味する。換言すれば、値が「１」に近いほど特定のアイテムが推薦される傾向が高くなり、ユーザ間で推薦されるアイテムリストの違いが小さく、パーソナライズできていないと言える。
【００８７】
この結果を表６に示す。
【表６】
2011134230.tif 000013
【００８８】
表６の結果から、全手法の中で本手法を用いた場合の被覆率が最も高く、Gini係数は「０」に最も近い値を示した。このことは、本手法により多くのアイテムを偏り無く推薦できることを示している。従って、本手法は協調フィルタリングでも有効であることが示された。
【符号の説明】
【００８９】
１      入力部
２      記憶部
３      初期設定部
４      トレンドクラス推定部
５      スイッチ変数推定部
６      収束判定部
７      出力部
１００  演算部
１０００  トレンド分析装置
【図１】
2011134230.tif 000014
【図２】
2011134230.tif 000015
【図３】
2011134230.tif 000016
【図４】
2011134230.tif 000017
【図５】
2011134230.tif 000018
【図６】
2011134230.tif 000019
【図７】
2011134230.tif 000020
【図８】
2011134230.tif 000021
【図９】
2011134230.tif 000022