説明

トレンド分析装置、トレンド分析方法およびトレンド分析プログラム

【課題】文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことを課題とする。
【解決手段】本発明のトレンド分析装置1000は、時期毎に設けられたトレンドクラスを有する所定の確率分布モデルにおいて、スイッチ変数に応じた単語生成分布、第1の計算式、第2の計算式などを用いて、各文書が確率的に属するトレンドクラスを計算することができる。つまり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書のトレンド分析に関する。
【背景技術】
【0002】
以下、トレンドとは、特定の時刻及び時期に見られる文書の特徴(文書が扱っているテーマ(話題))を表す。 文書のトレンド分析を行う際、トレンドのモデル化は、ログ分析(ログデータの分析)を行う場合だけでなく、テキスト分析(テキストデータの分析)を行う場合においても、非常に重要なテーマである。なぜなら、ログから観測されるユーザの行動だけでなく、ニュース、ブログ等のテーマも時間的に変化するためである。このようなデータからトレンドをモデル化することで、EC(Electronic Commerce)サイトや情報検索サイトなどのサービスにおいて、ユーザの利便性を高めることができる。例えば、トレンドをモデル化することで、ECサイトや情報検索サイトでユーザの嗜好に合うだけでなく、これから流行しそうな商品や情報を提供できるようになる。
【0003】
トレンド分析の手法としては、例えば、Dynamic topic Models(DTMs。非特許文献1参照)およびTopics Over Time(TOT。非特許文献2参照)が知られている。DTMsは、時間を離散的に扱い、ある時刻tに文書dがトピックtを扱う可能性を確率として与えることにより、トピックの分布の時間変化をモデル化する手法である。TOTは、時間を連続的に扱い、トピックを単語の非マルコフ連続時間でモデル化する手法である。
【0004】
なお、テキスト分析におけるトレンドのモデル化の目的は、各文書が「いつ、どのテーマについて書かれたか」を明らかにすることである。一般に、各文書のテーマは複数のトピックから構成されていて、同じテーマでもそのトピック構成は時間的に変化する。例えば、経済危機のテーマでは、トピックは「原油高騰」、「サブプライム問題」、そして「リーマン破綻」と変化している。また、経済危機のテーマよりも芸術のテーマの方が、それらの性質により、トピックの変化は緩やかである。このように、トレンドには、1)1つのトピックだけでなく、複数のトピックの組み合わせから構成される場合もある、ということのほかに、2)トピック毎に時間的な変化の速度が異なる、という特徴がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】D. Blei and J. Lafferty, “Correlated Topic Models”, NIPS (Neural Information Processing Systems) 18, 2004
【非特許文献2】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
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1および非特許文献2の手法では、これらのようなトレンドの特徴に対応するのが難しいという問題がある。例えば、DTMs(非特許文献1の手法)はトピック分布の時間変化を反映しているが、時間を離散的に扱っているために、トレンド変化の速度が異なる文書を扱う場合、その違いを反映できないことがある。これに対し、TOT(非特許文献2の手法)は時間についてベータ分布を用いることで、時間を連続的に扱い、トピックを時間と単語の同時確率で扱っている。しかし、トピック単位に時間を扱う為に、トピックの組み合わせの時間変化を扱うことが難しいという問題がある。
【0007】
そこで、本発明は、前記した問題を解決するためになされたものであり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことを課題とする。
【課題を解決するための手段】
【0008】
前記課題を解決するために、本発明は、所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置であって、所定の確率分布モデルにおいて、トレンドクラスは所定の時間幅毎に設けられ、トレンドクラスに確率的に属する1以上のトピッククラスが計算され、複数の文書、確率分布モデルで使用され、文書毎に、確率的にその文書の属するトレンドクラスを推定するための第1の計算式、確率分布モデルで使用され、文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、(1)複数の文書すべてについての単語生成分布に対応する値、(2)トレンドクラスについての単語生成分布に対応する値、(3)トピッククラスについての単語生成分布に対応する値、の3つの値のうちいずれかの値をとるか決定するための第2の計算式、および、所定の計算終了条件、を記憶する記憶部と、文書それぞれが属するトレンドクラス、および、トレンドクラスに属する1以上のトピッククラス、の初期値を設定する初期設定部と、第1の計算式および前記スイッチ変数に基づいて、文書毎に、トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、0以上1未満の乱数値よりも高い場合に、その文書がそのトピッククラスに属するものと推定するトレンドクラス推定部と、第2の計算式に基づいて、文書毎のトークン毎に、文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、0以上1未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定するスイッチ変数推定部と、所定の計算終了条件を満たすまで、トレンドクラス推定部とスイッチ変数推定部とに、計算を繰り返させる収束判定部と、収束判定部によって所定の計算終了条件が満たされたと判定されたとき、複数の文書それぞれが属するトレンドクラスを含む計算結果を出力する出力部と、を備えることを特徴とする。
【0009】
かかる発明によれば、所定の時間幅毎に設けられたトレンドクラスを有する所定の確率分布モデルにおいて、スイッチ変数に応じた単語生成分布、第1の計算式、第2の計算式などを用いて、各文書が確率的に属するトレンドクラスを計算することができる。つまり、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。
【0010】
また、本発明は、収束判定部が、所定の計算終了条件として、トレンドクラス推定部とスイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いることを特徴とする。
【0011】
かかる発明によれば、所定の計算終了条件として、前記した確率の誤差に関する閾値か、繰り返された計算回数のいずれかという具体的で適切な条件を設定することで、計算精度や処理時間などの目的に応じた条件設定ができる。
【0012】
また、本発明は、トレンド分析装置としてコンピュータを機能させるためのトレンド分析プログラムである。
【0013】
かかる発明によれば、このプログラムをインストールされたコンピュータが、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【0014】
本発明によれば、文書について、トピック毎の時間変化の速度の差も考慮した上でトレンド分析を行うことができる。
【図面の簡単な説明】
【0015】
【図1】本実施形態のトレンド分析装置の構成図である。
【図2】本実施形態のトレンドクラス推定部の構成図である。
【図3】本実施形態のスイッチ変数推定部の構成図である。
【図4】本実施形態のトレンド分析方法における処理のフロー図である。
【図5】本実施形態のトレンドクラス推定処理のフロー図である。
【図6】本実施形態のトレンドクラス更新処理のフロー図である。
【図7】本実施形態のスイッチ変数推定処理のフロー図である。
【図8】本実施形態のスイッチ変数更新処理のフロー図である。
【図9】本実施形態について、(a)は文書の構成の説明図であり、(b)は文書集合のトレンドのモデル化の説明図であり、(c)は単語のモデル化の説明図であり、(d)はトレンド分析モデルの説明図である。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態(以下、「実施形態」という。)について、図面を参照して説明する。まず、本実施形態で用いる記号を表1に示す。
【表1】

【0017】
また、本実施形態において、トークンとは、単語を抽象化した概念である。すなわち、図9(a)に示すように、トークンは単語1個分の枠であり、文書はトークンの並びで構成され、トークンに具体的な単語が入ることによって、具体的な文書になる。
【0018】
次に、本実施形態のトレンド分析モデル(潜在変数モデル)におけるトピック(文書を内容の違いにより分類したカテゴリ) の概念について説明する。このモデルは、各トピックを単語生成の確率分布を持つ潜在変数として扱い、文書を単語集合からより低次元の潜在変数の集合で表現できる特徴を持つ。トピックの隠れ変数を用いることで、文書内で共起し易い単語集合を簡潔にモデル化できる。例えば、「クリント・イーストウッド、ション・コネリー、マイケル・ケイン、ロバート・パトリック、ロイ・シャイダー」を、「俳優」に相当する一トピックの隠れ変数で表現できる。つまり、V種の単語を、より少数のT種の変数で表現できる利点がある。
【0019】
本実施形態では、このモデルを使って、文書集合のトレンドを次のようにモデル化する。まず、同時期(多少の幅(所定の時間幅)があってもよい。)に同じトピックについて記述している文書は同じトレンドを持つとして、トレンド変数Cを与える。例えば、図9(b)に示すように、「金融」という同じトピックについての文書dと文書dは、2008年という同時期に作成されているため、同じトレンド変数が与えられる。しかし、「金融」という同じトピックについての文書dと文書dは、それぞれ2008年と2009年という異なった時期に作成されているため、異なるトレンド変数が与えられる。なお、文書d、d、dには「金融」以外のトピックも必要に応じて付与される。このようにして、トレンド変数により、各年代(時期)に文書内で扱われやすい(扱われる確率の高い)トピック集合を簡潔にモデル化できる。
【0020】
また、図9(c)に示すように、文書内の各トークンに出現する単語を、スイッチ変数とトピック変数とを組み合わせてモデル化する。スイッチ変数は、「0」,「1」,「2」の3つの値のうちいずれかをとる。そして、「0」の場合は背景知識(全文書共通の知識)の持つ単語生成分布から、「1」の場合はトレンドの持つ単語生成分布から、「2」の場合はトピックの持つ単語生成分布から、生成する単語(文書の各トークンに出現する単語)を決定する。トピック変数は、該当文書のトレンド変数が持つトピック変数から、確率的に決定する。
【0021】
これらの隠れ変数(トレンド変数、スイッチ変数、トピック変数)と、それらの確率的な関係を、本実施形態のトレンド分析モデルでは次のように定義する。つまり、図9(d)に示すように、各文書はトレンド変数を一つ持ち、そのトレンド変数Cはトレンド変数毎に異なる時刻毎の確率分布とトピック選択確率分布を持つ。さらに、文書内のトークンは、スイッチ変数の値毎に背景知識、トレンドおよびトピックの単語生成分布を用いて単語を生成する。
【0022】
なお、本手法(本実施形態の手法)では、TOTと同様に、文書の生成にbag of words(語順無関係の単語集合)の仮定を置くので、文法や言葉の順序を考慮しなくてよいものとする。
【0023】
次に、本実施形態のトレンド分析装置の構成について説明する。図1に示すように、トレンド分析装置1000は、コンピュータ装置であり、入力部1、記憶部2、演算部100、出力部7を備えて構成される。
【0024】
演算部100は、例えば、CPU(Central Processing Unit)およびRAM(Random Access Memory)から構成される主制御装置であり、初期設定部3と、トレンドクラス推定部4と、スイッチ変数推定部5と、収束判定部6とを備えている(詳細は後記)。
【0025】
<入力部1>
入力部1は、情報を入力する手段であり、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。トレンド分析装置1000は、入力部1を介して、トレンドクラス(以下、単に「トレンド」ともいう。)の総数Cとトピッククラス(以下、単に「トピック」ともいう。)の総数Zを受け付ける。トレンドの数やトピックの数は、分類したいクラスの数に合わせて自由に設定することができる。
【0026】
<記憶部2>
記憶部2は、情報を記憶する手段であり、例えば、一般的なハードディスク装置などから構成される。記憶部2は、トレンド分析の対象となる文書データ(文書の生成時刻や著者などのメタデータも含む。)を記憶する。文書データは、例えば、学術論文や特許明細書、ブログ記事やWebページなどの電子データである。また、文書データの代わりに、購入商品の情報を文書データとし、その商品を購入したユーザと購入した日時などをメタデータとして扱っても良い。
【0027】
なお、記憶部2には、文書データの他に、演算部100の動作プログラムや、記憶部2に記憶した文書の総数Dや文書中に登場する単語の種類の総数V、文書d毎の単語数Nなどの情報も記憶されているものとする。
【0028】
<初期設定部3>
初期設定部3では、各文書が属するトレンドクラス(トレンド変数)と、トレンドクラスの持つ1つ以上のトピッククラス(トピック変数)の初期値をランダムに選択する。初期値は任意に選択することができるが、1つの文書に対してトレンドクラスは1つとする。
【0029】
<トレンドクラス推定部4>
トレンドクラス推定部4は、ギブスサンプリング(Gibbs Sampling)の手法を応用して、文書dの属するトレンドクラスcを推定する。ギブスサンプリングでは、サンプリング対象となる文書を1つ選択し、c=j(j=1,2,・・・,C)について、後記する式(3)の条件付確率を計算した後、ランダムに生成した値(乱数)と条件付確率の値との大小を比較することにより、文書の属するトレンドクラスを変更する。この処理を全ての文書について行い、確率の値が収束するまで、あるいは事前に設定した回数を終えるまで処理を繰り返す。なお、このように条件付確率を計算して文書の属するトレンドクラスを決定する場合について、文書がトレンドクラスに属することを、特許請求の範囲では、文書がトレンドクラスに「確率的に属する」という表現をしている。
【0030】
次に、図2を参照して、トレンドクラス推定部4の構成について説明する。トレンドクラス推定部4は、サンプル文書選択部41、初期設定部42、トレンドクラス更新部43から構成される。トレンドクラス推定部4は、図5に示す処理を実行することにより、文書dがトレンドクラスjに属する確率
P(c=j|c\d,z,t,α,β,λ)を推定する(詳細は後記)。ここで、表1に示すように、λは時刻tを変数とするβ分布のパラメータであり、このパラメータにより時刻の確率分布が考慮されていることになる。以下、図5に示すフロー図を参照しなから、各部の処理を説明する。
【0031】
<サンプル文書選択部41>
まず、サンプル文書選択部41は、記憶部2に記憶された文書の中から、まだサンプル対象として選択していない文書dをサンプル対象の文書として選択する(ステップS41)。
【0032】
<初期設定部42>
次に、初期設定部42は、文書のトレンドクラスの推定に使用する隠れパラメータαとβの初期値を決定する(ステップS42)。ここで、αはC次元(Cは入力部1で入力したトレンドクラスの総数)のベクトル、βはZ次元(Zは入力部1で入力したトピッククラスの総数)のベクトルである。
【0033】
また、αとβの各要素の値としては、以下の式(1)、(2)を満たす任意の値を設定する。
0<α≦nj\d j=1,2,3,…,C ・・・式(1)
0<β≦njz\d z=1,2,3,…,Z ・・・式(2)
【0034】
ここで、nj\dは、サンプリング対象の文書dを除くトレンドクラスjに属する全文書数である。また、njz\dは、サンプリング対象の文書dを除くトレンドクラスjに属する全文書中でトピッククラスzが選択したトークンの数である。
【0035】
<トレンドクラス更新部43>
次に、トレンドクラス更新部43は、トレンドクラス更新処理を行う(ステップS43)。図6に示すように、まず、C個のトレンドクラスからまだサンプリングしていないトレンドクラスjを1つ選択し(ステップS431)、以下の処理を行う。
【0036】
次の式(3)にしたがって、確率P(c=j|c\d,z,t,α,β,λ)を計算する(ステップS432)。
【数1】

【0037】
ここで、Bはベータ関数である。また、Γはガンマ関数である。また、λj1とλj2は、トレンド変数がjである場合のベータ分布のパラメータである。また、各記号における「\d」は、「文書dを除いた場合」を意味する。
【0038】
なお、初期設定部42で設定した隠れパラメータαとβは、式(3)においてnj\dやnjz\dが「0」となった場合に、式(3)の分母が「0」になるために確率が計算できなくなってしまうことを避けるためのスムージングパラメータの役割を担っている。
【0039】
続いて、0≦R<1の一様乱数を生成し(ステップS433)、ステップS432で計算した確率
P(c=j|c\d,z,t,α,β,λ)の値がRより大きければ(ステップS434でYes)文書dの属するトレンドクラスをjに更新する(ステップS435)。ステップS432で計算した確率
P(c=j|c\d,z,t,α,β,λ)の値がR以下の場合には(ステップS434でNo)、トレンドクラスの更新は行わない(ステップS435をスキップする)。
【0040】
次に、文書dについて、ステップS431〜S435の処理を実行していないトレンドクラスが存在する場合には(ステップS436でNo)、まだ処理を実行していないトレンドクラスj´(j)を選択し(ステップS431)、上記S432〜ステップS435を繰り返す。
【0041】
全てのトレンドクラスj=1,2,…,Cについて処理を実行し終えたら(ステップS436でYes)、ステップS43を終え、ステップS44(図5参照)に進む。その後、サンプル文書選択部41は、サンプル対象として選択していない文書d´(d)を新たなサンプル対象の文書として選択し(ステップS44でNo→ステップS41)、ステップS42,S43の処理を繰り返す。全ての文書についてサンプリングを終えたら(ステップS44でYes)、ステップS4を終え、ステップS5(図4参照)の処理に移る。
【0042】
<スイッチ変数推定部5>
スイッチ変数推定部5(図1参照)は、文書d内の各トークンが、背景知識の単語生成分布(スイッチ変数が「0」の場合)、トレンドの単語生成分布(スイッチ変数が「1」の場合)、トピックの単語生成分布(スイッチ変数が「2」の場合)、のいずれの単語生成分布から単語を生成するかを(つまり、スイッチ変数の値を)決定する。
【0043】
図3に示すように、スイッチ変数推定部5は、サンプル文書選択部51、初期設定部52、スイッチ変数更新部53から構成される。
【0044】
<サンプル文書選択部51>
図7に示すように、ステップS5(図4参照)の処理として、まず、サンプル文書選択部51は、記憶部2に記憶された文書の中から、まだサンプル対象として選択していない文書dをサンプル対象の文書として1つ選択する(ステップS51)。
【0045】
<初期設定部52>
次に、初期設定部52は、文書のトレンドクラスの推定に使用する隠れパラメータβ、γ、εの初期値を決定する(ステップS52)。ここで、βはZ次元(Zは入力部1で入力したトピッククラスの総数)のベクトル、γはN次元(Nは文書d内の単語数)のベクトル、εはスカラである。
【0046】
また、β、γ、εの各要素の値としては、以下の式(4)、(5)、(6)を満たす任意の値を設定する。
0<β≦njk\di j=1,2,3,…,C ・・・式(4)
0<γ≦njwdi\di z=1,2,3,…,Z ・・・式(5)
0<εr≦ndr\di r=0,1,2 ・・・式(6)
【0047】
ここで、njwdi\diは、トピックkが文書dのトークンdiを除き、単語wdi(文書dのi番目のトークンに出現する単語)を選択する数である。また、ndr\diは、文書dのi番目のトークンdiを除き、スイッチ変数がrとなるトークンの数(rには「0」、「1」、「2」のいずれかの数字が入る。)である。また、njk\diは、文書dのi番目のトークンを除く文書クラスがjの全文書のうち、トピックがkであるトークンの数を表す。
【0048】
<スイッチ変数更新部53>
スイッチ変数更新部53は、スイッチ変更更新処理を行う、つまり、文書d内の各トークンについて、そのスイッチ変数を決定するための条件付確率を算出する(ステップS53)。
【0049】
図8に示すように、まず、文書d内でまだステップS532〜S535の処理を行っていないi番目のトークンdiを1つ選択する(ステップS531)。
【0050】
次に、文書dのi番目のトークンdiのスイッチrdiが「0」、「1」、「2」のそれぞれの場合について、以下の式(7)〜(9)の条件付確率を計算する。
【0051】
<rdi=0の場合>
【数2】

【0052】
ここで、nd0\diは、文書dのトークンdiを除き、r=0となるトークンの数である。また、nbv\diは、背景知識のうち、文書dのトークンdiを除き、単語vを選択する数である。なお、式(7)の左辺に登場していて右辺に登場していないパラメータは、右辺では定数項となるため省略されているパラメータである。
【0053】
<rdi=1の場合>
【数3】


ここで、nd1\diは、文書dのトークンdiを除き、r=1となるトークンの数である。また、nkv\diは、トピックkが文書dのトークンdiを除き、単語vを選択する数である。
【0054】
<rdi=2の場合>
【数4】


ここで、nd2\diは、文書dのトークンdiを除き、r=2となるトークンの数である。また、njv\diは、トレンドjのうち、文書dのトークンdiを除き、単語vを選択する数である。
【0055】
次に、0≦R<1の一様乱数を生成し(ステップS533)、ステップS532で計算した式(7)、(8)、(9)のうち値が最大となる条件付確率がRの値よりも大きいか否かを判定する(ステップS534)。その最大の条件付確率がRより大きければ(ステップS534でYes)、文書dのi番目のトークンdiの単語を生成する単語生成確率を決めるスイッチ変数を、ステップS534で比較に使用した条件付確率に対応するスイッチ変数に更新する(ステップS535)。その最大の条件付確率がR以下の場合は(ステップS534でNo)、ステップS535をスキップする。
【0056】
続いて、まだステップS532〜535を実行していない文書d内のトークンdi´(di)があればそれを選択し(ステップS536でNo→ステップS531)、ステップS532〜535の処理を実行する。
【0057】
文書d内の全てのトークンについてステップS532〜S535の処理を終えていれば(ステップS536でYes)、ステップS53を終え、ステップS54に進む(図7参照)。サンプル文書選択部51は、サンプル対象として選択していない文書d´(d)を新たなサンプル対象の文書として1つ選択し(ステップS54でNo→ステップS51)、ステップS52,S53の処理を繰り返す。全ての文書についてサンプリングを終えたら(ステップS54でYes)、ステップS5を終え、ステップS6の処理に移る(図4参照)。
【0058】
<収束判定部6>
収束判定部6は、式(3)の確率と、式(7)〜(9)のうち値が最大となる確率とが収束したか否かを判定する(ステップS6)。収束していない場合(ステップS6でNo)、トレンドクラス推定部4とスイッチ変数推定部5の処理(ステップS4,S5)を繰り返す。
【0059】
なお、前記した確率が収束したか否かの判定は、1ステップ前の確率と今回得られた確率との誤差を比較し、誤差が予め定めた閾値以下である場合には収束したと判定することとしても良い。あるいは、ステップS4,S5の処理の繰り返し回数をカウントし、予め設定した繰り返し回数に到達したら確率が収束したと判定して処理を終了することとしても良い。
【0060】
<出力部7>
出力部7は、情報を出力するための手段であり、例えば、グラフィックボード(出力インタフェース)およびそれに接続されたモニタである。前記した各確率が収束した場合(ステップS6でYes)、出力部7は、式(3)の確率と、式(7)〜(9)のうち値が最大となる確率とにしたがって得られたトレンドクラスと単語を出力する(ステップS7)。
【0061】
なお、トレンド分析装置1000を構成するコンピュータに実行プログラムをインストールすることにより、コンピュータは、そのプログラムに基づいた各機能を実現することができる。
【0062】
このように、本実施形態では、トレンドのモデル化の為に、新たにトレンド変数となる隠れ変数を導入したモデルTopics and Trend(TAT)を採用した。つまり、文書毎に、時間毎に異なるトレンド変数を導入し、トレンド変数の時間としてベータ分布を用いることで、時間を連続的に扱うことが可能となった。また、トレンド変数が時間毎のトピック選択確率分布を持つことで、トピックの時間変化を扱うことが可能になった。つまり、本実施形態で採用したモデルTATは、従来技術であるDTMsおよびTOTの両者の問題を解決したモデルになっている。したがって、本実施形態のトレンド分析装置1000によれば、各時刻における流行のトピックおよびそれに関する文書の検索、あるいは、今後流行するトピックの予測を、実行することができる。
【実施例1】
【0063】
<コンテンツのトレンド判定>
本実施形態のトレンド分析装置1000を利用して、コンテンツのトレンドを判定する場合の実施例を以下に示す。このトレンド判定の目的は、作成時間が不明なコンテンツを入力として、そのコンテンツの作成時間を推定することである。
【0064】
まず、記憶部2に記憶された作成時間付きの文書に対して、トレンド分析装置1000により、文書dのトレンド選択の確率分布(ψ)と、文書d中のスイッチ変数選択の確率分布(μ)と、トレンドcのトピック選択の確率分布(θ)と、トピックz(またはトレンドcまたは背景知識b)の単語選択の確率分布(φ)を推定する。
【0065】
続いて、入力である作成時間が不明なコンテンツについて周知技術を用いて形態素解析し、その結果である単語に対して、トレンド分析装置1000で推定(算出)した確率分布を用いて該当コンテンツの生成確率を計算する。コンテンツの生成確率の計算に用いる式は次の式(10)である。
【数5】


ここで、ndrは文書dに関連付けされているスイッチ変数rの数を表す。
【0066】
この生成確率が最大となる時間を、入力のコンテンツが作成された時刻と推定し、出力する。
このように、トレンド分析装置1000を用いて推定した確率分布は、時間毎に生成しやすいコンテンツの予測にも利用することができる。
【実施例2】
【0067】
<最新トレンドに合ったコンテンツおよびアイテムの推薦>
本実施形態のトレンド分析装置1000を利用して、最新トレンドに合ったコンテンツおよびアイテムの推薦を行う場合の実施例を以下に示す。この場合の目的は、各ユーザの最新のトレンドに合ったアイテムを推薦することである。
【0068】
ここでは、文書データの代わりに、各ユーザの購入アイテムとその購入時間から構成される購入履歴が、記憶部2に記憶されているものとする。
トレンド分析装置1000は、各ユーザを各文書、アイテムを単語と置き換えることで各処理を実行し、ユーザのトレンド選択の確率分布(ψ)と、ユーザのスイッチ変数選択の確率分布(μ)と、トレンドcのトピック選択の確率分布(θ)と、トピックz(またはトレンドcまたは背景知識b)のアイテム選択の確率分布(φ)とを推定する。
【0069】
次に、入力履歴に含まれるアイテムに対し、トレンド分析装置1000で推定した確率分布を用いて、該当ユーザの所属するトレンド変数を推定する。推定には式(8)を用いる。
そして、推薦対象のユーザの所属するトレンド変数に対し、最新の時間において生成確率が高いアイテムの上位n個(nは予め定めた数)からなる集合を作成し、推薦アイテムとして出力する。
【0070】
<実験結果>
次に、本実施形態のトレンド分析装置1000を用いた実験結果の例について説明する。実験に用いたデータには、著者の興味などのパラメータが既知であるという条件が与えられている。データ1)は、ACM(Association for Computing Machinery)の国際会議SIGIR(Special Interest Group of Information Retrieval)で1985年から2005年にかけて発表された論文である。データ2)は、同じくACMの国際会議CIKM(Conference on Information and Knowledge Management)、SIGIR、KDD(Knowledge Discovery and Data Mining)およびWWW(World Wide Web)で2001年から2008年にかけて発表された論文である。
【0071】
これらのデータからストップワード(前置詞、冠詞等の非検索対象語)、数値、出現文書数が5以下の単語を除いた。ただし、著者が複数の場合は第一著者のみを扱った。また、協調フィルタリングの実験には広く用いられているNetflix(http://www.netflix.com/)のデータ(米国のオンラインDVD(Digital Versatile Disk)レンタル会社であるNetflix社のデータ)のうち、最低100人に評価された映画を20本以上評価したユーザのみの履歴を用いた。
【0072】
評価は定性的および定量的に行った。内容および興味推定についてはクラス毎の分布の様子と各クラスの文書および著者を示すことで定性的に評価した。さらに、Test set perplexity(言語モデル分野で使われる指標。値が低いほど言語モデルとして高性能。)およびKL-Divergence(確率分布間の相違度を計る尺度)の結果を示すことで定量的に評価した。協調フィルタリングの実験では、推薦される上位N個のアイテム の予測精度、ユーザ/アイテム被覆率およびGini(ジニ)係数により定量的に評価した。
【0073】
これらデータの学習において、モデルのパラメータをα=1/T、β=0,1、γ=10(APT(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)、1(LIT(Latent interest topic model):本手法)、δ=1、ギブスサンプリングの繰り返し回数を10000回とした。
【0074】
<定性的評価>
表2は、データ1)から、Z=100およびトレンドC=25の条件のもとで、本実施形態のトレンド分析装置1000により抽出したトレンド変数毎の単語を示している。
【表2】

【0075】
表2は、毎年の出現確率の高い順に11件の単語を表示したものであり、中央のラインから上はスイッチ変数r=0(全文書に共通する背景知識が持つ単語生成分布から生成した単語)の場合であり、下はr=1(文書のトレンドが持つ単語生成分布から生成した単語)の場合である。
【0076】
表2から、背景知識(共通トピック)からは「document(documents)」、「query(queries)」や「retrieval」といった各論文に共通して使われる単語が出現することが分かる。また、トレンド変数の場合は背景知識(共通トピック)と比較して、出現する単語が時間的に変化していることがわかる。例えば、1995年まで出現しなかった「Web」が2000年に出現していることが分かる。
【0077】
表3は、トレンド変数(「ID2」など)毎の単語分布、および、そのトレンド変数に関連するトピックからの出現単語の分布を示す。
【表3】

【0078】
表3の上半分はweb解析に関するトレンド変数であり、下半分はデータベース解析に関するトレンド変数である。最左列は各トレンド変数に関連する連続時間の分布(ベータ分布)、その右の列はトレンド変数に関連する単語、その右の四つの列はトレンド変数に関連が強い上位四件のトピックから出現する単語を確率の高い順に上位11個を示したものである。本実施形態のトレンド分析装置1000による処理の実行にあたっては、Z=200、C=30とした。
【0079】
表3から、web解析はデータベース解析よりベータ分布が右側に偏っており、ここ最近進展が目覚しい分野であることが分かる。
【0080】
<定量的評価>
本実施形態で用いたモデルの定量的評価を行うために、各モデルにより推定されたパラメータを用い、test set perplexityを計算し、非特許文献2と比較する。
評価はテストセットを五回替えた。そのtest set perplexityの平均を表4に示す。
【表4】

【0081】
この表4から、本実施形態のモデルが全ての条件で最も低く、モデルとして有効であることが分かる。なお、表4の「本手法」における「25」「50」「100」は、文書クラスの数を表す。
【0082】
著者興味の推定におけるモデルの有効性を定量化するために、Netflixのデータセットを用いた協調フィルタリングの実験を行った。評価が「1」(評価が一番悪い)〜「5」(評価が一番良い)の5段階であるこのデータでは、全体の96%の評価が「4」あるいは「5」と大きく偏っている。そのため、ユーザ毎に評価の平均値を計算し、各ユーザの評価がそのユーザ毎の平均より高い映画を「1」、それ以外を「0」と変換して利用した。ここでユーザと各ユーザの評価した映画は、それぞれ先の実験の著者と文書に対応する。
【0083】
実験はK fold cross-validation(回帰分析法の一種)を用い、トピックの数を200、文書クラスの数を50、そしてハイパパラメータα=1/T、β=0.1、γ=1とそれぞれ固定し、ギブスサンプリングを10000回行った。予測精度比較のベンチマークとして協調フィルタリングの代表的手法であるPearson、Cosine、Item Based、LDAおよびTOT(非特許文献2参照)を用いた。
【0084】
Nを1、5、10と変化させた場合のTop−Nリコメンデーションによる結果を表5に示す。
【表5】

【0085】
表5の結果から、全手法の中で本手法の精度が高く、協調フィルタリングの嗜好の類似性の選別にも、興味の違いを反映させることが有用であることが示された。
【0086】
推薦ユーザ/アイテムの被覆率とGini係数による評価について、以下に説明する。Gini係数は、手法毎に推薦可能なアイテムの、テスト期間に購入したユーザ数の分布状況を示す。この係数は「0」から「1」までの値をとり、値が「0」に近いほどアイテム毎の購入ユーザ数の格差が少なく、「1」に近いほど格差が大きいことを意味する。換言すれば、値が「1」に近いほど特定のアイテムが推薦される傾向が高くなり、ユーザ間で推薦されるアイテムリストの違いが小さく、パーソナライズできていないと言える。
【0087】
この結果を表6に示す。
【表6】

【0088】
表6の結果から、全手法の中で本手法を用いた場合の被覆率が最も高く、Gini係数は「0」に最も近い値を示した。このことは、本手法により多くのアイテムを偏り無く推薦できることを示している。従って、本手法は協調フィルタリングでも有効であることが示された。
【符号の説明】
【0089】
1 入力部
2 記憶部
3 初期設定部
4 トレンドクラス推定部
5 スイッチ変数推定部
6 収束判定部
7 出力部
100 演算部
1000 トレンド分析装置

【特許請求の範囲】
【請求項1】
所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置であって、
前記所定の確率分布モデルにおいて、前記トレンドクラスは所定の時間幅毎に設けられ、前記トレンドクラスに確率的に属する1以上のトピッククラスが計算され、
前記複数の文書、
前記確率分布モデルで使用され、前記文書毎に、確率的にその文書の属する前記トレンドクラスを推定するための第1の計算式、
前記確率分布モデルで使用され、前記文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、(1)前記複数の文書すべてについての単語生成分布に対応する値、(2)前記トレンドクラスについての単語生成分布に対応する値、(3)前記トピッククラスについての単語生成分布に対応する値、の3つの値のうちいずれかの値をとるか決定するための第2の計算式、および、
所定の計算終了条件、を記憶する記憶部と、
前記文書それぞれが属する前記トレンドクラス、および、前記トレンドクラスに属する1以上のトピッククラス、の初期値を設定する初期設定部と、
前記第1の計算式および前記スイッチ変数に基づいて、前記文書毎に、前記トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、0以上1未満の乱数値よりも高い場合に、その文書がその前記トピッククラスに属するものと推定するトレンドクラス推定部と、
前記第2の計算式に基づいて、前記文書毎の前記トークン毎に、前記文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、0以上1未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定するスイッチ変数推定部と、
前記所定の計算終了条件を満たすまで、前記トレンドクラス推定部と前記スイッチ変数推定部とに、計算を繰り返させる収束判定部と、
前記収束判定部によって前記所定の計算終了条件が満たされたと判定されたとき、前記複数の文書それぞれが属する前記トレンドクラスを含む計算結果を出力する出力部と、
を備えることを特徴とするトレンド分析装置。
【請求項2】
前記収束判定部は、
前記所定の計算終了条件として、前記トレンドクラス推定部と前記スイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いる
ことを特徴とする請求項1に記載のトレンド分析装置。
【請求項3】
所定の確率分布モデルに基づいて、電子データである複数の文書それぞれを、予め定められた複数のトレンドクラスのいずれかに確率的に属させる計算を行うトレンド分析装置によるトレンド分析方法であって、
前記所定の確率分布モデルにおいて、前記トレンドクラスは所定の時間幅毎に設けられ、前記トレンドクラスに確率的に属する1以上のトピッククラスが計算されるものであり、
前記トレンド分析装置は、
前記複数の文書、
前記確率分布モデルで使用され、前記文書毎に、確率的にその文書の属する前記トレンドクラスを推定するための第1の計算式、
前記確率分布モデルで使用され、前記文書を構成する単語に対応する概念であるトークン毎に割り当てられる単語を推定するためのスイッチ変数として、(1)前記複数の文書すべてについての単語生成分布に対応する値、(2)前記トレンドクラスについての単語生成分布に対応する値、(3)前記トピッククラスについての単語生成分布に対応する値、の3つの値のうちいずれかの値をとるか決定するための第2の計算式、および、
所定の計算終了条件、を記憶する記憶部と、
初期設定部と、トレンドクラス推定部と、スイッチ変数推定部と、収束判定部と、出力部と、を備えており、
前記初期設定部は、前記文書それぞれが属する前記トレンドクラス、および、前記トレンドクラスに属する1以上のトピッククラス、の初期値を設定し、
前記トレンドクラス推定部は、前記第1の計算式および前記スイッチ変数に基づいて、前記文書毎に、前記トレンドクラスそれぞれについて、その文書の属する確率を計算し、その確率が、0以上1未満の乱数値よりも高い場合に、その文書がその前記トピッククラスに属するものと推定し、
前記スイッチ変数推定部は、前記第2の計算式に基づいて、前記文書毎の前記トークン毎に、前記文書すべてについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トレンドクラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、前記トピッククラスについての単語生成分布を用いて計算した場合の正解の単語を選択する条件付確率と、を計算して、そのうちの最大の数値が、0以上1未満の乱数値よりも高い場合に、その最大の数値を計算するのに使用した単語生成分布に対応するスイッチ変数を決定し、
前記収束判定部は、前記所定の計算終了条件を満たすまで、前記トレンドクラス推定部と前記スイッチ変数推定部とに、計算を繰り返させ、
前記出力部は、前記収束判定部によって前記所定の計算終了条件が満たされたと判定されたとき、前記複数の文書それぞれが属する前記トレンドクラスを含む計算結果を出力する
ことを特徴とするトレンド分析方法。
【請求項4】
前記収束判定部は、
前記所定の計算終了条件として、前記トレンドクラス推定部と前記スイッチ変数推定部との少なくとも一方によって計算された前回と最新の確率の誤差が所定の閾値以下であること、または、繰り返された計算回数が所定回数に達したこと、を用いる
ことを特徴とする請求項3に記載のトレンド分析方法。
【請求項5】
請求項1または請求項2に記載のトレンド分析装置としてコンピュータを機能させるためのトレンド分析プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate