(57)【特許請求の範囲】
【請求項１】
バグオブワード表現された一連の対象データに対して潜在トピック分析を行い、当該分析結果をモデルとして出力するモデル構築装置であって、
各対象データのトピック重み行列と、各単語のトピック重み行列と、に初期値を設定する初期設定部と、
前記初期値を設定された各行列に逐次的にギブスサンプリングを行うことで、前記出力されるモデルとしての各行列を得る更新計算部と、を備え、
前記出力するモデルにおいてはトピック同士の間にラティス構造のつながりが階層構造として与えられており、
前記更新計算部は、前記逐次的にギブスサンプリングを行う際に、各対象データのトピック重み行列の各要素を対象として旧トピックから新トピックへの更新を行うに際して、当該新トピックの候補を前記ラティス構造において当該旧トピックとの距離が所定値以下となるものに限定して実施することを特徴とするモデル構築装置。
【請求項２】
前記ラティス構造は、各トピックをノードとし、トピックIDを2進表現したラベル同士のハミング距離が1であるようなノード間にエッジを設けることでトピック間のつながりを表現したものとして与えられていることを特徴とする請求項１に記載のモデル構築装置。
【請求項３】
前記更新計算部は、前記旧トピックから新トピックへの更新を行うに際して、当該新トピックの候補を前記ラティス構造において当該旧トピックから所定ホップ数以下で到達できるものに限定し、当該新トピックの各候補が選ばれる確率を当該更新する時点における各対象データのトピック重み行列より規格化して求めることを特徴とする請求項２に記載のモデル構築装置。
【請求項４】
前記初期設定部及び前記更新計算部では、以下の式(1)の関係にある一連のトピックの集合G(i)(i=1, 2, …, m)を対象として逐次、集合G(i)で指定されるトピックのもとで潜在トピック分析を行うことで、集合G(m)で指定されるトピックのもとでの潜在トピック分析の結果を前記モデルとして出力することを特徴とする請求項１ないし３のいずれかに記載のモデル構築装置。
G(1)⊂G(2)⊂…⊂G(m)    …式(1)
【請求項５】
前記初期設定部では、前記集合G(i)で指定されるトピックのもとで潜在トピック分析を行った結果を、前記集合G(i+1)で指定されるトピックのもとで潜在トピック分析を行う際の初期値として利用することを特徴とする請求項４に記載のモデル構築装置。
【請求項６】
前記集合G(i+1)を構成するトピックは、前記集合G(i)を構成するトピックに対して、前記ラティス構造において所定ホップ数以下で到達できるトピックを追加したものであることを特徴とする請求項４または５に記載のモデル構築装置。
【請求項７】
前記バグオブワード表現された一連の対象データが文書である、または、文書以外であることを特徴とする請求項１ないし６のいずれかに記載のモデル構築装置。
【請求項８】
コンピュータを請求項１ないし７のいずれかに記載のモデル構築装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トピック間の階層を考慮した潜在トピック分析を高速に実施することが可能なモデル構築装置及びプログラムに関する。
【背景技術】
【０００２】
近年、文書や購買履歴などの離散データを解析する手法として、bag-of-words（バグオブワーズ）で表現された文書の生成過程を確率的にモデル化することで、直接は観測できない潜在的要因に基づいた高精度のクラスタリングを可能とするトピックモデルが注目されている。
【０００３】
トピックモデルの特徴は一つの文書が複数のトピックの混合として表現されることであり、その代表的手法である潜在的ディリクレ配分法(Latent Dirichlet Allocation；以下、LDAとする)は、情報検索、音声認識、QAシステムなど様々なデータマイニング分野に適用されている。ここで、LDAは非特許文献１に、LDAのQAシステムへの応用は特許文献１に、それぞれ開示されている。
【０００４】
また、特許文献２や非特許文献２に開示されているように、分類結果をより利用しやすくするため、トピックが階層構造を有する階層的トピックモデルも存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2013-143066号公報
【特許文献２】特開2013-134750号公報
【非特許文献】
【０００６】
【非特許文献１】D. M. Blei, A. Y. Ng, and M. I. Jordan. Latent Dirichlet allocation. Journal of Machine Learning Research, 3:993- 1022, 2003.
【非特許文献２】W Li, A McCallum , "Pachinko allocation: DAG-structured mixture models of topic correlations," Proc ICML, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献２（当該手法を「PAM」と略称する）では、トピックの階層構造を前提とし、パチンコが落ちるように、ギブスサンプリングを用いて、スーパートピックノードを上位から下位に決定して行き、文書に出現する各単語とトピックの関係を求めている。当該PAMの手法では、各文書とトピックの関係を求めるまでに多くの計算過程が必要になるという課題がある。 
【０００８】
図１は、当該トピックの階層構造の例を示す図である。上位側トピックとして「医療」及び「経済」があり、下位側トピックとして「再生医療」、「地方医療」、「新薬開発」、「金融危機」及び「貿易自由化」がある。階層関係を有する上位側ノードと下位側ノードとの間は、図示するように、矢印で接続されている。「新薬開発」については「医療」及び「経済」の両方に共通の下位側トピックとなっている。図１の例は上位及び下位の2層構造となっているが、一般にはn層構造(n≧2)も可能である。
【０００９】
図２は、PAMにおいて当該階層構造を対象として各文書とトピックとの関係を求める際の計算過程を示すための図である。PAMでは、ルートノードから該当単語までに至るパスziの確率を計算し、同確率から得られる各トピックノードから単語wへ至る確率P(zi|w)を基にθ(D)とφ(W)を更新することになる。ここでθ(D)及びφ(W)はそれぞれ、潜在トピック分析における文書毎のトピック比率及びトピック毎の単語分布である。
【００１０】
図２の例にも示すように、パスziはルートノード、複数のスーパートピックノードs、複数のトピックノードκ及び複数の単語ノードνを辿ることから多数の組み合わせとして存在し、PAMでは多くの計算過程が必要となってしまう。なお、スーパートピックノードsが上位トピックに相当し、トピックノードκが下位トピックに相当する。
【００１１】
また、特許文献２では階層型トピックモデルを利用し、インタラクティブ検索に役立つ語を求めている。ただし、当該利用される階層型トピックモデルは既に構築されていることが前提となっており、実際に各文書に出現する単語とトピックの関係を求める方法については特許文献２では言及していない。従って、非特許文献２等の従来手法と同様に、階層型トピックで文書を分類する過程で多くの計算過程が必要となってしまう。
【００１２】
上記従来技術の課題に鑑み、本発明は、階層型トピックモデルを高速に構築可能なモデル構築装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明は、バグオブワード表現された一連の対象データに対して潜在トピック分析を行い、当該分析結果をモデルとして出力するモデル構築装置であって、各対象データのトピック重み行列と、各単語のトピック重み行列と、に初期値を設定する初期設定部と、前記初期値を設定された各行列に逐次的にギブスサンプリングを行うことで、前記出力されるモデルとしての各行列を得る更新計算部と、を備え、前記出力するモデルにおいてはトピック同士の間にラティス構造のつながりが階層構造として与えられており、前記更新計算部は、前記逐次的にギブスサンプリングを行う際に、各対象データのトピック重み行列の各要素を対象として旧トピックから新トピックへの更新を行うに際して、当該新トピックの候補を前記ラティス構造において当該旧トピックとの距離が所定値以下となるものに限定して実施することを特徴とする。
【００１４】
また、本発明は、コンピュータを前記モデル構築装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、トピック同士の間にラティス構造のつながりを階層構造として与え、ギブスサンプリング過程におけるトピック更新候補を当該階層構造上で距離が小さいトピックに限定するので、階層型トピックモデルを高速に構築することができる。
【図面の簡単な説明】
【００１６】
【図１】トピックの階層構造の例を示す図である。
【図２】階層構造を対象として各文書とトピックとの関係を求める際の計算過程を示すための図である。
【図３】一実施形態に係るモデル構築装置の機能ブロック図である。
【図４】通常のLDA等における行列θ(D)の初期化処理の例を示す図である。
【図５】通常のLDA等における行列φ(W)の初期化処理の例を示す図である。
【図６】通常のLDA等におけるギブスサンプリング過程のフローチャートである。
【図７】図６における更新処理を説明するための例を示す図である。
【図８】階層構造として用いるラティス構造の例を示す図である。
【発明を実施するための形態】
【００１７】
図３は、一実施形態に係るモデル構築装置の機能ブロック図である。モデル構築装置10は、初期設定部1及び更新計算部2を備える。モデル構築装置10では、文書群を入力として読み込み、LDA等の潜在トピック分析を施した結果としてのモデルを出力する。
【００１８】
本発明においては、当該出力するモデルを構築するための計算の枠組みとしては、非特許文献１に開示されトピック同士の階層構造を考えない通常のLDA等における計算の枠組みと共通のものを利用する。ここで特に、当該共通の枠組み内において詳細は後述するような手法で計算を行うことにより、階層構造を考えない通常のLDA等と同程度の計算負荷のもとで、階層構造を考慮したモデルを出力することが可能となる。すなわち、非特許文献２のPAMのように多数存在するパスに対して計算を繰り返すような大きな計算負荷を伴うことなく、PAMと同様に階層構造を考慮したモデルを出力することができる。このため、モデル構築装置10の各部1,2は具体的には以下のような処理を行う。
【００１９】
まず、初期設定部1では、各々がバグオブワードとして表現された文書群を読み込み、LDA等の通常のトピックモデル算出時におけるのと同様の初期化処理を行う。すなわち、文書ごと、出現する語ごとにトピックをランダムに割当てることで、各文書 d1, d2,…におけるトピックの重みを表す行列θ(D), D={d1,d2,…}と、各単語w1,w2,…におけるトピックの重みを表す行列φ(W), W={w1,w2, …}と、を初期値として設定し、当該初期値としての行列θ(D),φ(W)を更新計算部2に渡す。
【００２０】
図４は、通常のLDA等における行列θ(D)の初期化処理の例を示す図である。(1)には、LDAの計算設定情報の例としてハイパーパラメータα,βをそれぞれ0.1, 0.01に設定する旨と、入力される文書群の例として2つの文書1,2における単語頻度（バグオブワード）の情報と、が示されている。
【００２１】
そして、(21),(31)と(22),(32)とに分けて示すように、文書1,文書2にはそれぞれ共通の処理がなされる。まず、(21),(22)に示すように、文書毎の単語出現数分だけ、ランダムにトピックを設定する。例えば、文書1に関しては(1)に示すように、単語Aが5語、単語Bが3語、単語Cが2語、それぞれ出現しているので、(21)及び以下に示すように同数分だけ4つのトピック[0],[1],[2],[3]の中からランダムに割り当てている。
単語Aに割り当てられた5つのトピック…[3], [0], [3], [1], [2]
単語Bに割り当てられた3つのトピック…[1], [0], [3]
単語Cに割り当てられた2つのトピック…[3], [1]
【００２２】
なお、トピックについては当該[0],[1],[2],[3]のように適宜、「配列」の形式で表現するものとする。（当該表現は、後述する更新処理の説明を明確にするための表現である。）
【００２３】
次に、(31),(32)に示すように、当該ランダムに割り当てられたトピックの数を、トピックの種類毎に集計することでトピック比率を得る。例えば文書1に関しては(31)及び以下に示すように、トピック数が集計されてトピック比率が得られる。
文書1のトピック比率(topic0, topic1, topic2, topic3)=(2, 3, 1, 4)
【００２４】
最後に、当該文書毎のトピック比率を全文書に渡って行列形式で列挙することで、(4)に示すように、初期化された全文書のトピック比率θ(D)が得られる。
【００２５】
図５は、通常のLDA等における行列φ(W)の初期化処理の例を示す図であり、図４の例に対応する例を示す図である。まず、(21),(22)に示すように、θ(D)の初期化の際に用意した、文書毎の単語出現数分だけランダムにトピックを設定した情報が処理対象となる。すなわち、(21),(22)は図４及び図５で共通である。
【００２６】
次に、(51),(52)として示すように文書1,文書2においてそれぞれ、当該(21),(22)の情報を単語及びトピックごとに集計することで、文書ごとにトピック毎の単語分布φ(W)を得る。
【００２７】
例えば(51)では文書1における単語Aに関しては出現頻度が5回であり以下のようにランダムにトピックが割り当てられている。
単語Aに割り当てられた5つのトピック…[3], [0], [3], [1], [2]
【００２８】
従って、(51)の表形式データ部分の１行目にあるように、文書1における単語Aのトピック割当回数は以下の通りとなる。
文書1の単語Aのトピック割当回数(topic0, topic1, topic2, topic3)=(1, 1, 1, 2)
【００２９】
そして、文書1の残りの単語B,C,Dについても同様に割当回数を求め、文書1の全単語の結果を集計することで(51)に示すように、単語分布が求まる。例えば、(51)の表形式データ部分の1列目にあるように、トピック0の単語分布は以下の通りとなる。
トピック0の単語分布(単語A, 単語B, 単語C, 単語D)=(1, 1, 0, 0)
【００３０】
最後に、(51),(52)の当該文書毎に得た単語分布を全文書に渡って集計することで、(6)に示すように初期化された全文書におけるトピック毎の単語分布φ(W)が得られる。
【００３１】
更新計算部2では、以上のように初期設定部1で得られた初期化されたθ(D)及びφ(W)に対して逐次的な更新処理を行うことで、モデル構築装置10からの出力としての最終的なθ(D)及びφ(W)を求める。ここで、当該更新処理の枠組み自体には、通常のLDA等においてなされているギブスサンプリング過程と共通のものを利用することができ、逐次的な各回の更新処理の内容に本発明特有の手法が利用される。
【００３２】
従って、以下では通常のLDA等におけるギブスサンプリング過程をまず説明してから、本発明特有の更新処理について説明することとする。
【００３３】
図６は、通常のLDA等におけるギブスサンプリング過程のフローチャートであり、図７は当該フローチャートにおける更新処理を説明するための例を示す図である。なお、図７の例は、図４及び図５で示した例と対応している。
【００３４】
図６のフローを開始すると、まずステップS1において、当該フローにて更新処理の対象を制御するためのカウンタである文書diのカウンタiと、文書di内の単語出現回数のカウンタjと、ループ処理回数のカウンタkと、を初期値（一般に0又は1）に設定し、ステップS2に進む。
【００３５】
ステップS2ではギブスサンプリングを行ってから、ステップS3へ進む。すなわち、当該時点におけるカウンタ(i, j)で指定される文書diにおけるj番目の単語に対応するトピックを、当該時点における行列φ(W),θ(D)に基づいて新たに決定し、当該新たに決定されたトピックに従って行列φ(W),θ(D)を更新する。当該ステップS2の詳細は図７を参照して後述する。
【００３６】
ステップS3では、当該文書di内の全単語出現回数分の処理が完了したかをカウンタjの値によって判断し、完了していればカウンタjの値を初期値へと再設定したうえでステップS4へ進み、完了していなければステップS31へ進む。ステップS31ではカウンタjの値を1だけインクリメントしてからステップS2へ戻る。従って、当該ステップS3の判断により、図示するような各文書di毎のループ処理L3が構成されることとなる。
【００３７】
ステップS4では、全文書diにつき処理が完了したかをカウンタiの値によって判断し、完了していればカウンタiの値を初期値へと再設定したうえでステップS5へと進み、完了していなければステップS41へ進む。ステップS41ではカウンタiの値を1だけインクリメントしてからステップS2へ戻る。従って、当該ステップS4の判断により、図示するような全文書di(i=1, 2, …)毎のループ処理L4が構成されることとなる。
【００３８】
ステップS5では、当該図６のループ処理全体の完了条件が満たされたか否かを判断し、満たされていれば当該フローは終了し、満たされていなければステップS51へ進んでカウンタkの値を1だけインクリメントしてからステップS2へ戻る。従って、当該ステップS5の判断により、図示するような当該フロー全体としてのループ処理L5が構成されることとなる。
【００３９】
ここで、ループ処理全体の完了条件としては、カウンタkが所定値に到達していることや、直前のk-1回目で得られている行列φ(W),θ(D)と現時点のk回目で得られている行列φ(W),θ(D)との差分が所定値以下であること等を利用することができる。
【００４０】
以上のような図６のフローにより、ステップS5で完了条件が満たされたと判断された時点において保持している行列φ(W),θ(D)が、最終的な結果すなわちモデルとして出力されることとなる。
【００４１】
ここで、図７を参照して図６のステップS2の処理、すなわち、ギブスサンプリングの詳細を説明する。図７では、図４及び図５で例として示した初期化された行列φ(W),θ(D)を対象として図６のフローを開始した直後のステップS2（すなわち初回のステップS2）の処理を例として説明する。図７では、その右側に図６と共通のループ処理L3,L4,L5が行われる旨を示している通り、当該初回以降の一般の場合も処理内容は同様である。
【００４２】
初回処理であるので、図７の(21)（図４、図５における(21)と共通）に太字及び下線で強調表示しているように、文書1(カウンタi=初期値1)にその総単語数だけ割り当てられたトピック配列のうち最初のトピック(カウンタj=初期値1)である[3]が更新対象となる。そして、(7)に示すように、当該更新対象の[3]につき、新たなIDの決定処理すなわち新たなトピックへの置き換え処理が実施される。
【００４３】
当該(7)の決定処理においては、(510)及び(310)に示すように、当該時点における行列φ(W),θ(D)が参照される。なお、(510)は図５の(51)に示す行列φ(W)における参照箇所を、(310)は図４の(31)における参照箇所を、それぞれ表している。
【００４４】
そして、(7)にて具体的に新たなIDを決定する際は、行列φ(W)を参照して、当該更新しようとしているトピック[3](j=1)が割り当てられている単語Aのトピック比率に従う確率でトピックを出力する確率変数を利用する。(7)の例では、以下のような条件付き確率となる。
P(topic0 | 単語A)=1/(1+2+1+3)
P(topic1 | 単語A)=2/(1+2+1+3)
P(topic2 | 単語A)=1/(1+2+1+3)
P(topic3 | 単語A)=3/(1+2+1+3)
【００４５】
すなわち、新たなトピックIDは上記のような行列φ(W)によって定まる、いわば「偏ったサイコロ」を振ることで決定される。ここでは、当該サイコロにより新たなIDが[2]となったものとして説明する。（なお一般には、当該決定した結果、新旧IDが同一となるような場合もある。）
【００４６】
(8)は、(7)の決定に従い、旧IDである[3]が新IDである[2]へと置き換えられることで、(21)の状態から更新されたトピックの配列が示されている。そして、当該更新されたトピックの配列により、(511)及び(311)に示すように行列φ(W)及びθ(D)も該当箇所がそれぞれ(510)及び(310)の状態から更新されることとなる。なお、当該行列φ(W)及びθ(D)の該当箇所の更新については、図４及び図５で説明した初期値の設定の際と同様の集計処理を行えばよい。(511)及び(311)の例では、トピック[3]が[2]へと置き換えられた結果、それぞれ更新前の(510)及び(310)よりも[3]の度数が1減り、[2]の度数が1増えている。
【００４７】
以上、図６及び図７を参照して通常のLDA等におけるギブスサンプリングを説明した。更新計算部2においては、図６と同様に逐次的に繰り返すフロー構造に従ってギブスサンプリングを実施するが、ステップS2における各回の更新処理に制約を加えることで、計算負荷を低減すると共に、最終的に構築されるモデルを階層構造を考慮したものとすることができる。具体的には、以下の（制約１）及び（制約２）を加える。
【００４８】
（制約１）トピック数は2のべき乗に限定し、各トピックにそのIDを2進数表現したトピックラベルを与える。また、トピック間の階層構造として、当該2進数表現されたトピックラベル間のハミング距離が1となるノードどうしがエッジで結ばれており、ハミング距離がnであるノードどうしはn個のエッジを経由して到達できる（ホップ数がnである）ようなグラフとしてのラティス構造を採用する。ここで、ノード間にエッジがあることは当該ノードに対応するトピック間に階層性のつながりがあることを意味する。
【００４９】
図８は、階層構造として用いる当該ラティス構造の例を示す図である。図８では、トピック数を2の4乗(=16)とした際に各トピックIDに付与されるトピックラベルでノードを表現したラティス構造が例として示されている。
【００５０】
なお、前述の説明においては、説明の流れの観点から言及を省略していたが、上記（制約１）におけるトピック数の制約に関しては、初期設定部1も従うこととなる。当該従ったうえでの行列φ(W)及びθ(D)の初期値設定は、前述の通り通常手法と共通である。
【００５１】
（制約２）図７等で説明したトピックIDを旧IDから新IDへ置き換える処理において、新IDの候補（遷移先の候補）を通常手法のように全トピックとするのではなく、旧IDとの間で上記ラティス構造において所定のn回以下のホップ（ノード間の遷移）で到達できるもの（すなわちハミング距離が所定数n以下であるもの）に限定する。
【００５２】
当該限定により、確率P(z|w)（ここでzはトピックID、wは単語）の算出が簡素化され、計算負荷を下げることができる。ここで、当該確率に関しては当該限定された範囲内において規格化して定めればよい。
【００５３】
図８のラティス構造を用いる場合であれば例えば、更新対象となっている旧IDのトピックラベルが「0100」であり新ID（遷移先）の候補をハミング距離が1以下のものとする場合、遷移先のトピックラベルは「0100」、「0000」、「1100」、「0110」又は「0101」の5通りに限定される。それぞれの確率に関しては行列φ(W)を参照して求まる以下の確率を規格化したものとすればよい。なお、wは当該更新対象となっている旧IDのトピックが割り当てられている単語である。
P(0100|w), P(0000|w), P(1100|w), P(0110|w), P(0101|w)
【００５４】
以上のモデル構築装置10によるモデル構築を第一実施形態とする。次に、当該モデル構築の別の一実施形態（第二実施形態）を説明する。
【００５５】
第一実施形態では、ラティス構造でトピックIDを割り振ったうえで、初期設定部1が行列φ(W),θ(D)の初期値を設定し、更新計算部2が当該初期値をギブスサンプリングにより更新して最終的な行列φ(W),θ(D)を得た。これに対して、第二実施形態では、ラティス構造によるトピックIDの割り振りを逐次的に実施し、それぞれの割り振りに対して初期設定部1及び更新計算部2がモデル構築を実施するという流れで処理を行う。
【００５６】
具体的には、i回目(i=1, 2, …, m)に割り振られるトピックIDの集合をG(i)と書くと、以下の関係（トピックが逐次追加されることで増えていく関係）があるように各集合G(i)を予め設定しておく。ここで、最後のm回目に割り振られるG(m)を、2のべき乗個分からなる第一実施形態で用いたラティス構造の全体とする。
G(1)⊂G(2)⊂G(3)⊂…⊂G(m-1)⊂G(m)
【００５７】
そして、G(1), G(2), …, G(m)の順にそれぞれ、初期設定部1及び更新計算部2が第一実施形態と同様にしてモデル構築を実施し、最後のG(m)について得られた結果を最終的に構築されるモデルとして採用する。ここで、モデル構築時のギブスサンプリングによる計算は第一実施形態と同様であり、割り振られるトピックIDの集合がG(i)に限定される点のみが第一実施形態と異なる。
【００５８】
第二実施形態では特に、トピックIDの割り振りG(i)に対してモデル構築した結果の行列をφ(W)[i],θ(D)[i]とすると、当該i回目の結果φ(W)[i],θ(D)[i]を、次に処理するトピックIDの割り振りG(i+1)に対する初期設定部1での初期値として利用する。当該初期値の利用により、初期値をランダムに設定される場合よりも最終結果に近いものとして設定することができるので、最終結果へと収束するまでの計算回数が削減され、処理を高速化することができる。
【００５９】
なお、初回のG(1)でのモデル構築においては、初期値はランダムに設定する。また、初回のG(1)でのモデル構築においては、更新計算部2の処理を通常のLDA等と同様の処理としてもよい。すなわち、前述の（制約２）を省略してもよい。
【００６０】
逐次的に増やしていくトピック「G(1)⊂G(2)⊂G(3)⊂…⊂G(m-1)⊂G(m)」については、例えば以下のように設定することができる。
【００６１】
まず、G(1)に関しては、トピック総数を2のn乗として与える当該nが偶数の場合、nCn/2(=n・(n-1)・(n-2)・・・(n/2+1) / (1・2・3・・・(n/2)))、nが奇数の場合 nC(n-1)/2 (=n・(n-1)・(n-2)・・・(n+1)/2 / (1・2・3・・・(n-1)/2))個のIDを選択することで構成する。図８の例(n=4)であれば、図中の中段部分に描かれており、以下に列挙する6個のIDによりG(1)を構成することができる。
G(1)={ 1100, 1010, 1001, 0110, 0101, 0011 }
【００６２】
なお、nCiは一般に、2のn乗個のノードからなるラティス構造の各ノードを図８のようにn+1段に分けてグラフ表示した際の、i(i=0, 1, 2, …, n)段目のノード数に相当する。ここで、i段目(i=0,n段は1ノードのみであるため除く)の各ノード間はホップ数2でありエッジがないという関係がある。上記G(1)の選択は、当該n+1段のうちできる限り中央の段にあるノードを選択することに相当する。従って、nが奇数の場合は上記のnC(n-1)/2個に代えてnC(n+1)/2個としてもよい。
【００６３】
以降のG(i)(i≧2)に関しては、G(i-1)に含まれるラベルIDに対してハミング距離=1で到達できるラベルIDを新たに追加することにより構成する。図８の例であれば、以下のようにG(2),G(3)を構成し、2の4乗=16個のラベルIDからなるラティス構造全体を含むG(3)へと到達させることができる。
G(2)= { 1110, 1101, 1011, 0111 }∪G(1)∪{ 1000, 0100, 0010, 0001 }
G(3)={1111}∪G(2)∪{0000}
【００６４】
なお、上記に代えて、以降のG(i)(i≧2)に関しては、G(i-1)に含まれるラベルIDに対してハミング距離が所定数n以下（ノード間のホップ数が所定数n以下）で到達できるラベルIDを新たに追加することにより構成するものとしてもよい。上記は当該所定数n=1の例である。
【００６５】
以上、本発明によれば、階層の無い従来のギブスサンプリングを利用したトピックモデル構築手法の実装をわずかに変えることで階層型トピック分類の実装が実現できる。当該実装により、従来の階層型トピックモデルに比べ、θ(D)、φ(W)の更新処理を高速化できる。特に、第二実施形態におけるトピック分類の数を逐次増やしていく手法の場合、さらなる高速化が可能になる。
【００６６】
以下、本発明における補足的事項を説明する。
【００６７】
（１）第一、第二実施形態のいずれにおいても、モデル構築装置10が最終結果として出力するモデルにおけるラティス構造は、以上説明したように2のn乗のラベルIDを全て用いたものとする他にも、当該2のn乗だけ個数があるラベルIDのうち所定の一部分のみを用いるようにしてもよい。一部分のみ用いる場合であっても、ギブスサンプリング過程は以上説明したのと同様に可能である。また、第二実施形態におけるG(1), G(2), …, G(m)の設定も、最後のG(m)を当該所定の一部分のみからなるID集合となるように設定することで同様に可能である。
【００６８】
（２）モデル構築装置10がモデル構築する対象としての入力データには、通常のテキストとして構成される各文書をバグオブワード表現(BoW表現)したものが利用できるほか、テキスト以外の任意の対象をバグオブワード表現したものも全く同様に利用することができる。例えば画像は周知のように、Bag of Visual Words（バグオブビジュアルワード）としてその特徴量を表現できるが、これはバグオブワード表現の一種であるので、当該バグオブビジュアルワード表現された画像を入力データとしてもよい。
【００６９】
（３）本発明は、コンピュータをモデル構築装置10として機能させるプログラムとしても提供可能である。当該コンピュータは、CPU(中央演算装置)、メモリ及び各種I/Fといった周知のハードウェアで構成することができ、当該プログラムを読み込んで実行するCPUがモデル構築装置10の各部として機能することとなる。
【符号の説明】
【００７０】
10…モデル構築装置、1…初期設定部、2…更新計算部
【図１】
0006375210.tif 000002
【図２】
0006375210.tif 000003
【図３】
0006375210.tif 000004
【図４】
0006375210.tif 000005
【図５】
0006375210.tif 000006
【図６】
0006375210.tif 000007
【図７】
0006375210.tif 000008
【図８】
0006375210.tif 000009