JP5555238B2 - ベイジアンネットワーク構造学習のための情報処理装置及びプログラム - Google Patents

ベイジアンネットワーク構造学習のための情報処理装置及びプログラム Download PDF

Info

Publication number
JP5555238B2
JP5555238B2 JP2011525822A JP2011525822A JP5555238B2 JP 5555238 B2 JP5555238 B2 JP 5555238B2 JP 2011525822 A JP2011525822 A JP 2011525822A JP 2011525822 A JP2011525822 A JP 2011525822A JP 5555238 B2 JP5555238 B2 JP 5555238B2
Authority
JP
Japan
Prior art keywords
random variable
edge
mutual information
random
condition set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011525822A
Other languages
English (en)
Other versions
JPWO2011016281A1 (ja
Inventor
民平 森下
真臣 植野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THE UNIVERSITY OF ELECTRO-COMUNICATINS
CAC Corp
Original Assignee
THE UNIVERSITY OF ELECTRO-COMUNICATINS
CAC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by THE UNIVERSITY OF ELECTRO-COMUNICATINS, CAC Corp filed Critical THE UNIVERSITY OF ELECTRO-COMUNICATINS
Priority to JP2011525822A priority Critical patent/JP5555238B2/ja
Publication of JPWO2011016281A1 publication Critical patent/JPWO2011016281A1/ja
Application granted granted Critical
Publication of JP5555238B2 publication Critical patent/JP5555238B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Description

本発明は、ベイジアンネットワーク構造学習のための情報処理装置及びプログラムに関し、より詳細には、多数の確率変数及び大量のデータが存在する状況において安定した計算時間で高速にベイジアンネットワーク構造学習を行うことのできる情報処理装置及びプログラムに関する。
確率的因果関係の表現であるベイジアンネットワークは、推論精度が高いことで知られる。しかしながら、ベイジアンネットワークの構造学習は、ノード数に対してNP完全であることが知られており、多数の確率変数を大量データから学習するのは極めて困難な問題である。
ベイジアンネットワーク構造学習アルゴリズムは、真の同時確率分布とベイジアンネットワークで表現する同時確率分布の近似を最大化することを目的としたスコアリングベース手法と、確率変数間の独立性判定により因果関係を抽出することを目的とした制約ベース(CI(Conditional Independence)ベースとも呼ばれる)の手法とに大別される。制約ベース学習アルゴリズムは、所与のデータを用いて確率変数間の条件付き独立テストを行い、その結果により確率変数間にエッジ(アークともいう。)が必要か否かを決定するアルゴリズムの総称である。大規模な確率変数を扱う場合には、変数間の独立性判定を行う手法を用いた方が推論精度が高くなることが知られている。
制約ベース学習アルゴリズムの1つとして、TPDA(Three Phase Dependency Analysis、3フェーズ独立性分析)と呼ばれるアルゴリズムが提案されている(非特許文献1)。TPDAは、真の確率構造にMDF(monotone DAG faithful)と呼ぶ条件を仮定することにより、条件付き独立テストの数をO(N)に抑えるアルゴリズムである。ここで、DAG faithfulであるとは、真の因果構造が非循環有向グラフであることをいう。ベイジアンネットワークのモデルは、N=<V,E,P>あるいはN=<G,P>と表現される。ここでG=(V,E)は頂点集合V、辺集合Eからなる非循環有向グラフで、Pは、pa(x)をn番目の確率変数xの親変数とすると、P={P(x|pa(x)),…,P(x|pa(x))}で表される条件付き確率分布集合である。集合Pはこれに対応する同時確率分布P(U)を
Figure 0005555238
として与えている。Open(X,Y|C)(Cは太字)を、モデルNを所与としたとき頂点X、Yのパス上にあって、確率変数集合C(太字)を条件として所与としたときにX、Yのパスを開くとき、すなわちXとYが互いに依存するときに、その開かれたパス上の確率変数集合を指すものとする。またC(太字)を所与としたX、Yの条件付き相互情報量をI(X,Y|C(太字))とすると、monotone DAG faithfulであるとは、次のように定義される。すなわち、DAG faithfulなモデルN=<V,E,P>は、Vの要素であるすべてのX、Yについて、
Figure 0005555238
であるとき、またそのときに限り、monotone DAG faithfulである。
TPDAにおいては、木構造準備(Drafting)フェーズ、エッジ増加(Thickening)フェーズ及びエッジ削減(Thinning)フェーズと呼ばれる3つのフェーズを実行し、最後にエッジの方向付けを行うことにより構造学習を行う。
TPDAアルゴリズムによるベイジアンネットワーク構造学習に際しては、まず、主たる入力となりCSV形式やリレーショナルデータベースのリレーションなどで表現された表形式のデータと、当該データにどのような確率変数及びどのような状態(実現値)が含まれるかを記述した情報(以下、「データ仕様記述情報」という。)とが入力される。
木構造準備フェーズにおいては、入力データに含まれるすべての確率変数のペアについて、次の式(2)で表される相互情報量を計算する。
Figure 0005555238
ここで、大文字X、Yは確率変数を表し、小文字x、yはそれぞれに対応する状態値を表す。木構造準備フェーズにおいては、さらに、計算された相互情報量の値が大きいペアから順に、グラフ全体の構造が木構造である限り(グラフが閉路を構成しない限り)、当該確率変数のペアの間に無向エッジを追加する。
次に、エッジ増加フェーズにおいては、木構造準備フェーズを終了した段階で無向エッジが存在しない確率変数のペアの各々につき、当該確率変数のペアを始点及び終点とするパス上でそれら2つの確率変数のノードに隣接するノードを最初の条件集合として条件付き相互情報量を計算する。条件付き相互情報量は次の式(3)により計算される。
Figure 0005555238
ここで、太字大文字Cは確率変数集合を表し、太字小文字cはそれぞれの変数に対応する状態値集合を表す。計算された条件付き相互情報量が所定の閾値ε以上である場合、確率変数集合C(太字)を小さくして式(3)の計算を繰り返す。条件付き相互情報量がε未満となる条件集合が見つかった場合には、当該確率変数ペアの間に無向エッジを追加せず、グローバルな切断集合にレコードを登録する。一方、条件集合が空集合となるまでの間に条件付き相互情報量がε未満となる条件集合が見つからなかった場合には、確率変数ペアの間に無向エッジを追加する。
続いて、エッジ削減フェーズにおいては、エッジ増加フェーズを終了した段階で無向エッジが存在する確率変数ペアの各々について、当該無向エッジ以外のパスがあれば当該無向エッジを一時的に削除し、エッジ増加フェーズのときと同様に、条件集合を徐々に小さくしながら閾値ε未満となる条件集合が見つかるまで条件付き相互情報量を計算する。閾値ε未満となる条件集合が見つかれば、当該無向エッジを削除したままグローバルな切断集合にレコードを登録する。閾値ε未満となる条件集合が見つからなければ、一時的に削除した無向エッジを追加して元に戻す。次に、現時点で無向エッジのある各確率変数ペアに着目し、当該確率変数ペアのいずれかがペアの相手を除いて3つ以上の隣接ノードを有する場合、より精密なエッジ要否判定を行う。具体的には、当該確率変数ペアのパス上で、各確率変数について、当該確率変数の隣接ノード及び当該隣接ノードにさらに隣接したノードを要素とする集合のサイズを比較し、小さい方を最初の条件集合とする。その上で、これまでと同様に、条件集合を徐々に小さくしながら閾値ε未満となる条件集合が見つかるまで条件付き相互情報量を計算する。閾値ε未満となる条件集合が見つかれば、当該無向エッジを削除したままグローバルな切断集合にレコードを登録し、見つからなければ、一時的に削除したエッジを追加して元に戻す。
上述の木構造準備、エッジ増加及びエッジ削減の3つのフェーズを経た後、これらのフェーズにより追加された無向エッジの向きを決定する作業を行う。具体的には、XとY及びZとYが無向エッジによりそれぞれ直接接続されているがXとYとは直接接続されていないような3つのノードX、Y、Zのすべての組について、グローバルな切断集合にこれらのノードが含まれるか否かなどに基づいて、向きを決定可能なエッジについては向きを決定する。TPDAにおいては、以上のようにしてベイジアンネットワーク構造が学習される。
Cheng, J., Greiner, R., Kelly, J., Bell, D., and Liu, W.: Learning Bayesian networks from data: an information-theory based approach, Artificial Intelligence, Vol. 137, No. 1-2, pp. 43-90 (2002)
以上説明したTPDAは、現在知られている制約ベース学習アルゴリズムのうち、もっとも高速に動作するものであり、大規模な変数や大量のデータの処理に適したアルゴリズムである。しかしながら、それでもなお、確率変数の数がさらに多くなるような例においては、条件付き独立テストの計算が困難になるという問題がある。すなわち、式(3)に示す条件付き相互情報量の右辺における同時確率分布P(x,y,c(太字))部分のc(太字)にあたる変数の数が増加するため、計算量が増大し、計算が困難になる。また、同時確率分布のパターンが増えるに従い、計算結果に寄与しない欠損値が多く発生してしまうという問題がある。
本願発明者らは、制約ベース学習アルゴリズムに多頻度アイテム集合抽出アルゴリズムを組み込むことにより、上述した従来のTPDAと比較してさらに高速且つ処理時間のばらつきの少ないベイジアンネットワーク構造学習が可能となることを発見した。
また、本願発明者らは、切断集合の探索を行う際に、条件集合の部分集合サイズが昇順となる順に条件付き相互情報量の計算を行いかつMDFの仮定を最大限早期に用いること、すなわち2つの条件変数を所与とした場合と当該条件変数集合中の単一の各条件変数を所与とした場合の条件付き相互情報量とを比較し、切断集合に含まれない変数を2段階目ですべて探索対象から削除することにより、最大でもわずか3つの段階のみによって切断集合の探索が可能となることを発見した。これにより、従来のTPDAと比較してさらに高速なベイジアンネットワーク構造学習が可能となる。
本発明は、これらの新たなアルゴリズムに基づいてベイジアンネットワーク構造学習を実行する情報処理装置及びプログラムを提供するものである。
本発明の1つの側面によれば、本発明の情報処理装置は、複数の確率変数及び各確率変数が取る状態についての情報を含む入力データからベイジアンネットワーク構造学習を行う情報処理装置である。当該情報処理装置は、入力データについて木構造のグラフを生成する手段であって、相互情報量が第1の閾値以上である確率変数ペアの各々について、該確率変数ペア間にエッジを追加してもグラフ構造が木構造のままである場合にエッジを追加する、木構造のグラフを生成する手段を含む。情報処理装置はさらに、相互情報量が第1の閾値以上でありながら上記木構造のグラフを生成する手段によってエッジが追加されなかった各確率変数ペアについて、エッジが必要である場合にエッジを追加する手段を含む。当該手段は、該エッジが追加されなかった確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数の組を条件集合として条件付き相互情報量を計算し、その値が第1の閾値未満となる組が見つかった場合には、該2つの確率変数間にエッジを追加せず、そうでなければエッジを追加する。また、当該手段は、上記条件付き相互情報量の計算において、該2つの確率変数の状態とそれぞれの確率変数に対応する状態集合とについての同時確率分布が第1の閾値以下の第2の閾値未満となる場合には、関連する成分の計算を省略する。
上記木構造のグラフを生成する手段は、入力データに含まれる各確率変数の周辺確率を計算し、確率変数ペアを構成するいずれかの確率変数がある状態を取る周辺確率が第2の閾値未満である場合には、関連する相互情報量の成分の計算を省略することにより、各確率変数ペアの相互情報量を計算してもよい。また、上記エッジを追加する手段は、エッジが追加されなかった確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合を最終的な条件集合として、該2つの確率変数ノード及び条件集合Cについての条件付き相互情報量を、条件集合Cのサイズが1である場合から最終的な条件集合のサイズとなる場合までサイズを大きくしながら計算し、その過程で第1の閾値未満となる条件付相互情報量が得られた場合には、該2つの確率変数間にエッジを追加せず、そうでなければ必要と判断してエッジを追加してもよい。情報処理装置は、さらに、上記エッジを追加する手段による処理後にエッジを有する各確率変数ペアにつき、エッジが必要であるか否かを判断し、不要である場合にエッジを削除する手段と、各エッジの方向付けを行う手段とを含んでもよい。
本発明の別の側面によれば、本発明の情報処理装置は、制約ベース学習アルゴリズムを使用して、複数の確率変数及び各確率変数が取る状態についての情報を含む入力データからベイジアンネットワーク構造学習を行う情報処理装置である。当該情報処理装置は、ある確率変数ペア間にエッジを追加すべきか否かを条件付き相互情報量を求めることにより判断し、該判断に際して、該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数の組を条件集合として条件付き相互情報量を計算し、その値が第1の閾値未満となる組が見つかった場合には、該2つの確率変数間にエッジを追加せず、そうでなければエッジを追加する。また、情報処理装置は、条件付き相互情報量の計算において、該2つの確率変数の状態とそれぞれの確率変数に対応する状態集合についての同時確率分布が第1の閾値以下の第2の閾値未満となる場合には、関連する成分の計算を省略する。上記情報処理装置は、確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合を最終的な条件集合として、該2つの確率変数ノード及び条件集合Cについての条件付き相互情報量を、条件集合Cのサイズが1である場合から最終的な条件集合のサイズとなる場合までサイズを大きくしながら計算し、その過程で第1の閾値未満となる条件付相互情報量が得られた場合には、該2つの確率変数間にエッジを追加せず、そうでなければ必要と判断してエッジを追加するように構成されてもよい。
本発明の別の側面によれば、本発明は、コンピュータを上述の情報処理装置のように動作させるプログラムである。
本発明の別の側面によれば、本発明の情報処理装置は、複数の確率変数及び各確率変数が取る状態についての情報を含む入力データからベイジアンネットワーク構造学習を行う情報処理装置である。当該情報処理装置は、入力データについて木構造のグラフを生成する手段であって、相互情報量が第1の閾値以上である確率変数ペアの各々について、該確率変数ペア間にエッジを追加してもグラフ構造が木構造のままである場合にエッジを追加する、木構造のグラフを生成する手段を含む。
情報処理装置はさらに、相互情報量が第1の閾値以上でありながら上記木構造のグラフを生成する手段によってエッジが追加されなかった各確率変数ペアについて、エッジが必要である場合にエッジを追加する手段を含む。当該エッジを追加する手段は、該エッジが追加されなかった確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数を含む条件集合を候補条件集合とし、当該候補条件集合内の各1つの確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに該確率変数ペアについての処理を終了する。
また、当該エッジを追加する手段は、上記処理が終了しない場合、候補条件集合内のいずれか2つの確率変数の組を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了する。計算された条件付き相互情報量が一方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、候補条件集合から該一方の確率変数が削除され、計算された条件付き相互情報量が他方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、候補条件集合から該他方の確率変数が削除される。
また、当該エッジを追加する手段は、上記処理が終了しない場合、候補条件集合に残るすべての確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了する。
情報処理装置は、さらに、上記処理が終了しない場合、該2つの確率変数間にエッジを追加する、エッジを追加する手段を含む。
情報処理装置は、さらに、上記の処理後にエッジを有する各確率変数ペアにつき、エッジが必要であるか否かを判断し、不要である場合にエッジを削除する手段と、各エッジの方向付けを行う手段とを含んでもよい。
本発明の別の側面によれば、本発明の情報処理装置は、制約ベース学習アルゴリズムを使用して、複数の確率変数及び各確率変数が取る状態についての情報を含む入力データからベイジアンネットワーク構造学習を行う情報処理装置である。当該情報処理装置は、ある確率変数ペア間にエッジを追加すべきか否かを条件付き相互情報量を求めることにより判断する。
情報処理装置は、該判断に際して、該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数を含む条件集合を候補条件集合とし、候補条件集合内の各1つの確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに該確率変数ペアについての処理を終了する。
また、情報処理装置は、上記処理が終了しない場合、候補条件集合内のいずれか2つの確率変数の組を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了する。計算された条件付き相互情報量が一方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、候補条件集合から該一方の確率変数が削除され、計算された条件付き相互情報量が他方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、候補条件集合から該他方の確率変数が削除される。
また、情報処理装置は、上記処理が終了しない場合、候補条件集合に残るすべての確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了する。
情報処理装置は、さらに、上記処理が終了しない場合、該2つの確率変数間にエッジを追加する手段を含む。
本発明の別の側面によれば、本発明は、コンピュータを上述の情報処理装置のように動作させるプログラムである。
本発明によれば、従来知られていた制約ベース学習アルゴリズムのうちでもっとも高速に動作するTPDAアルゴリズムを用いても困難であった多数の確率変数及び大量のデータが存在する状況下でも、安定した計算時間で高速にベイジアンネットワーク構造学習を行うことができる。したがって、本発明によれば、ベイジアンネットワークの産業応用範囲を拡大することができる。
本発明の一実施例によるベイジアンネットワーク構造学習を実行するための情報処理装置のブロック図である。 入力データに含まれる情報の例を示す図である。 本発明の情報処理装置による処理を示す流れ図である。 図3のステップ310の処理をさらに詳細に示す流れ図である。 Aprioriの擬似コードを示す図である。 genFreqItemSet1ルーチンの一例を示す図である。 多頻度アイテム集合抽出アルゴリズムの一例としてAprioriを採用し、これを組み込んだ場合の本発明における相互情報量計算のためのcalcMutualInformationルーチンの一例を示す図である。 Thickeningルーチンの一例を示す図である。 Thickeningルーチンにおいて実行される主要な処理の詳細を示す流れ図である。 図9に続く処理の詳細を示す流れ図である。 図8のThickeningルーチンにおいて呼び出され、図9及び図10の処理に用いられるedgeNeeded_Hルーチンの一例を示す図である。 edgeNeeded_Hルーチンにおいて呼び出されるedgeNeededBodyルーチンの一例を示す図である。 edgeNeeded_Hルーチンにおいて呼び出されるedgeNeededBodyルーチンの一例を示す図である。 与えられた条件集合に含まれる確率変数の数が1の場合の条件付き相互情報量の計算処理の過程を示す流れ図である。 与えられた条件集合に含まれる確率変数の数が2以上の場合の条件付き相互情報量の計算処理の過程を示す流れ図である。 図13及び図14の処理に用いられるcalcConditionalMIルーチンの一例を示す図である。 図13及び図14の処理に用いられ、calcConditionalMIルーチンにおいて呼び出されるhaveValidCandidateルーチンの一例を示す図である。 エッジ削減処理の詳細を示す流れ図である。 Thinningルーチンの一例を示す図である。 Thinningルーチンで呼び出されるedgeNeededルーチンの一例を示す図である。 無向エッジの方向付け処理の詳細を示す流れ図である。 エッジの方向付けに用いられるorientEdgeルーチンの一例を示す図である。 実験に使用したベイジアンネットワークを示す図である。 本発明の第2の実施例において、図3のステップ310の処理をさらに詳細に示す流れ図である。 本発明の第2の実施例におけるThickeningルーチンの一例を示す図である。 本発明の第2の実施例において、Thickeningルーチン内で実行される主要な処理の詳細を示す流れ図である。 本発明の第2の実施例において、図24のThickeningルーチンにおいて呼び出され、図25の処理に用いられるedgeNeeded_Hルーチンの一例を示す図である。 本発明の第2の実施例において、edgeNeeded_Hルーチンおよび edgeNeededルーチンにおいて呼び出されるSearchCutSetルーチンの一例を示す図である。 本発明の第2の実施例におけるエッジ削減処理の詳細を示す流れ図である。 本発明の第2の実施例におけるThinningルーチンの一例を示す図である。 本発明の第2の実施例において、Thinningルーチンで呼び出されるedgeNeededルーチンの一例を示す図である。 本発明の第2の実施例において、エッジの方向付けに用いられるorientEdgeルーチンの一例を示す図である。
本発明の実施例によるベイジアンネットワーク構造学習を実行するための情報処理装置100のブロック図を図1に示す。
制御部102は、情報処理装置100全体の処理の流れを制御する部分である。制御部102は、前処理として、構造学習の開始に際して指定される引数やパラメータが正常であるか否かをチェックする。制御部102は、これらが正常である場合にデータ仕様解析部104にデータ仕様を解析させる。制御部102は、その後、引き続き構造学習部110にアルゴリズムの主処理を実行させる。データ仕様解析部104は、データ仕様記述ファイル108を読み込み、主たる入力となるデータを分析する準備を行う。ここで、主たる入力となるデータは、例えば、CSV形式、リレーショナルデータベースにおけるリレーションなどで表現されている表形式のデータである。当該データは、例えば、ユーザにより情報処理装置100に入力され、情報処理装置100内のデータベース106に格納される。このほか、当該データは、情報処理装置100と有線又は無線により通信可能に接続された通信ネットワーク上のデータベースに格納されていてもよく、ベイジアンネットワーク構造学習を要求するコマンドの受信に応じて情報処理装置100が当該データベースにアクセスしてデータを受け取ってもよい。データを格納するデータストアは、ファイル、リレーショナルデータベース、メモリ上の2次元配列のいずれであってもよい。本実施例では、リレーショナルデータベースであるとして以下の説明を行う。
このようなデータに含まれる情報の例を図2に示す。各列は,「ID」及び「各確率変数名」で構成され、各行は、対応する「ID」及び「各確率変数の状態(実現値)」で構成されている。図2の例は、A、B、C及びDの4つの商品を取り扱っている店舗において、顧客が使用するクーポン券の種類をT1及びT2の2種類(これらは併用不可とする。)とし、クーポン券が使用されなかった場合をnで表し、顧客が購入した商品をy、購入しなかった商品をnと表すこととした場合における、顧客6人分の購買データを表している。
データ仕様記述ファイル108は、上記データに含まれる確率変数及び各確率変数の状態(実現値)についての情報を含むファイルである。データ仕様記述ファイル108は、例えばCSV形式のファイルであり、確率変数の状態数がn個である場合、各行に、確率変数名、状態1、状態2、・・・、状態nというように記述される。例えば、先の図2の例の場合、顧客の購買行動履歴データを表す確率変数及びその実現値は、データ仕様記述ファイル108に次のように記述される。
クーポン, T1, T2, n
A, y, n
B, y, n
C, y, n
D, y, n
再び図1に戻り、データ仕様解析部104は、データ仕様記述ファイル108を読み込み、各確率変数の名前、確率変数の数、各確率変数の状態名、各確率変数の状態の数、全体のデータ件数についての情報を保持し、他の構成要素にこれらの情報を提供する。
構造学習部110は、本出願において提案されるベイジアンネットワーク構造学習アルゴリズムを実行する部分であり、その具体的な動作については以下に詳細に説明する。
クエリー管理部112は、入力されたデータから相互情報量および条件付き相互情報量を計算する。これらの計算に必要な確率分布の算出のためには、条件に該当するデータの件数を数えるデータベースクエリーをデータベース106に対して発行する必要がある。以下に詳細に述べるが、本発明は、一実施例において、相互情報量及び条件付き相互情報量の計算の際に、多頻度アイテム集合抽出アルゴリズムを用いて必要性が低い計算を行わないようにして、全体の処理を高速化する点を特徴とする。また、本アルゴリズム実行中は、同一条件のデータ件数が複数回参照されるが,クエリー結果の取得は比較的時間のかかる処理であるため、そのたびにクエリーを発行していては効率が悪い。そこで、クエリー管理部112は、一度取得したクエリー結果と対応する条件をクエリー結果キャッシュ部114に渡して保持させる。クエリー管理部112は、データ件数を取得する必要が生じたときには、クエリー結果キャッシュ部114に問合せ,すでに結果を取得済みであればその結果を利用し、まだ結果を得ていなければクエリーを発行してデータベース106からデータ件数を取得する。
クエリー結果キャッシュ部114は、クエリーの検索条件をキーとし、クエリー結果たる該当データ件数を値としたハッシュテーブルを内部データ構造として持ち、クエリー結果を保持する。クエリー結果キャッシュ部114は、検索条件に該当するクエリー結果をすでに保持しているか否かについてのクエリー管理部112からの問合せに応答する機能と、新規のキー及び値のペアを保持する機能とを持つ。
切断集合保持部116は、確率変数ペア間の条件付き相互情報量を計算した際に、当該確率変数ペアと、条件付き相互情報量が閾値ε未満となる条件部分の変数集合とをレコードとし、要素として有するグローバルな切断集合を保持する機能を具備する。当該切断集合は、無向エッジの方向付けの際に必要とされる。
グラフ構造構築部118は、構造学習部110において推定されたベイジアンネットワークのグラフ構造を構築する機能を持つ部分である。他の構成要素と共有するデータ構造として、1)確率変数を表すノードの配列、及び2)確率変数ペア間の依存関係を表す有向または無向エッジの配列の構築と管理を行う。
図1の各構成要素による動作の結果、情報処理装置100は、ベイジアンネットワーク構造記述ファイル120を出力する。ベイジアンネットワーク構造記述ファイル120は、情報処理装置100により推定されたベイジアンネットワークの構造の情報を有するファイルである。例えば、推定されたエッジが向きを検出されて有向エッジとなった場合、「親変数名→子変数名」のように表され、エッジの向きを検出することができずに無向エッジとなった場合には、「変数名1−変数名2」のように表される。例えば、図2の例において、情報処理装置100による構造学習の結果、クーポンがA及びDの親変数であり、AがBの親変数であり、B及びCはどちらが親かは不明であるがこれらの間にエッジが存在することが推定された場合、出力されるベイジアンネットワーク構造記述ファイル120は次のような内容を含む。
クーポン→A
クーポン→D
A→B
B−C
制約ベース学習アルゴリズムに多頻度アイテム集合抽出アルゴリズムを組み込むことにより、従来のTPDAと比較してさらに高速且つ処理時間のばらつきの少ないベイジアンネットワーク構造学習を可能とする本発明の一実施例につき、以下に詳細に説明する。
本実施例の情報処理装置100による処理を示す流れ図を図3に示す。ベイジアンネットワーク構造学習を実行すべき旨の命令を受信すると、情報処理装置100は処理を開始する(ステップ302)。当該命令は、構造学習の基礎となるデータを格納するデータベース106にアクセスするための接続情報及びデータ仕様記述ファイル名を含む所定の動作パラメータを含むように構成される。当該動作パラメータは、上記のほか、構造学習において使用される相互情報量及び条件付き相互情報量の閾値ε(一例として、0.01)及び多頻度アイテム集合抽出において使用される最小支持度δ(0≦δ≦ε、一例として、0.0005)を含む。さらに、出力となるベイジアンネットワーク構造記述ファイルのファイル名を含んでもよい。
情報処理装置100は初期処理を行う。制御部102は、上記動作パラメータが正常であるか否かをチェックして(ステップ304)、エラーがあれば処理を終了し(ステップ320)、正常であればデータ仕様解析部104にデータ仕様を解析させる(ステップ306)。データ仕様解析部104は、データ仕様記述ファイル108を読み取り、データに含まれる各確率変数の名前、確率変数の数、各確率変数が取りうるすべての状態の名前及び状態数を保持する。次に、データ仕様解析部104は、データベース接続情報を用いてデータベース106に接続し、全データの件数を取得してこれを保持する(ステップ308)。ステップ308の後、制御部102は制御を構造学習部110に移す。
構造学習部110は木構造準備処理を行い、与えられたデータについて木構造を生成する(ステップ310)。ステップ310の処理を図4においてさらに詳細に示す。
図4の処理中では、確率変数のペアについて相互情報量(式(2))を計算する必要がある。本実施例は、多頻度アイテム集合抽出アルゴリズムの概念を取り入れることにより、以下に述べるようにここでの相互情報量の計算を高速化する。
多頻度アイテム集合抽出アルゴリズムは、データ中に出現するアイテム集合のうち、支持度(すなわち、あるアイテム集合が出現する同時確率)が最小支持度δ以上となるアイテム集合を高速に抽出するためのデータマイニングアルゴリズムの総称である。多頻度アイテム集合抽出アルゴリズムは、アイテム集合の支持度の逆単調性、すなわち、A及びBをそれぞれアイテム集合としたとき、
Figure 0005555238
ならば、(Aの支持度)≧(Bの支持度)である(つまり、Aが多頻度アイテム集合でなければ、Aを含む集合Bも多頻度アイテム集合ではない)という性質を利用して枝狩りを行うことにより、効率的に多頻度アイテム集合を抽出するアルゴリズムである。
多頻度アイテム集合抽出アルゴリズムの一例として、Apriori(Agrawal, R. and Srikant, R.: Fast Algorithms for Mining Association Rules, in Proc. of the 20thInt’l Conference on Very Large Databases, pp. 487-499, Santiago, Chile (1994)参照)がある。Aprioriの擬似コードを図5に示す。
本実施例においては、多頻度アイテム集合抽出アルゴリズムを用いて相互情報量の計算を高速化するために、確率変数とその値の組をアイテム集合と見なし、相互情報量を表す式(2)の右辺を構成する成分のうち、最小支持度δ未満の同時確率変数とその値との組に関連する成分を計算対象から除外する。
例えば、確率変数Xのとる状態がx,x,・・・,x(すなわち、X={x,x,・・・,x})であり、確率変数Yのとる状態がy,y,・・・,y(すなわち、Y={y,y,・・・,y})であるとする。この場合、互いに異なる確率変数X及びYの相互情報量I(X,Y)は、次の式で表される。
Figure 0005555238
ここで、P(x)もしくはP(y)が最小支持度δ未満であれば、P(x,y)もまた最小支持度δ未満となる。既に述べたとおり、0≦δ≦εであるから、このとき、
Figure 0005555238
が成立する。したがって、P(x)もしくはP(y)が最小支持度δ未満であることを判断することにより、式(4)の右辺において足し合わされる成分(式(5)の左辺)について直接計算しなくとも、当該成分がε未満となることが分かる。
図4に戻り、クエリー管理部112は、ステップ402において、各確率変数につき、とり得る状態のすべてについて周辺確率を計算する。周辺確率が最小支持度δ以上となるような確率変数と状態の集合(<X,x>、<Y,y>等として表される)をサイズ1の多頻度アイテム集合Fに加える。また、そのときの確率変数及び状態を検索条件キーとし、当該検索条件に該当するデータ件数を値としてクエリー結果キャッシュ部114に記憶する。クエリー管理部112においてこの手続を行うgenFreqItemSet1ルーチンの一例を図6に示す。
クエリー管理部112は、すべての確率変数ペアについて相互情報量を計算し、相互情報量がε以上となる確率変数のペアを確率変数ペア配列に追加する。この際、クエリー管理部112は、上述の多頻度アイテム集合抽出アルゴリズムを利用することにより、計算処理を高速化する。
具体的には、クエリー管理部112は、各確率変数ペアを構成する確率変数(ここではX及びYとする)の各々と取る状態との組(例えば、<X,x>,<Y,y>)のすべてについて、各組の要素(ここでは、<X,x>及び<Y,y>)の両方が上記多頻度アイテム集合Fに含まれる(すなわち、このときの周辺確率がいずれも最小支持度δ以上である)かどうかを判定する(ステップ404)。少なくとも一方が集合Fに含まれない(最小支持度δ未満である)場合(ステップ404の「いいえ」)、式(4)の右辺における
Figure 0005555238
(相互情報量の成分)の計算を行わない。
一方、いずれも含まれる場合(ステップ404の「はい」)、このときの同時確率P(x,y)がδ以上となるかを判定する(ステップ406)。同時確率がδ以上となる場合(ステップ406の「はい」)、このときの相互情報量の成分(式(6))の計算を行う(ステップ408)。さらに、現在の確率変数及び状態の組(例えば、<X,x>,<Y,y>)を検索条件キーとし、当該検索条件に該当するデータ件数を値としてクエリー結果キャッシュ部114に記憶する。また、上記現在の確率変数と状態の集合をサイズ2の多頻度アイテム集合Fに加える。
クエリー管理部112は、ステップ404からステップ408をすべての組について繰り返した後(ステップ410)、これまでに計算した相互情報量の成分を足し合わせることにより、現在着目している確率変数ペアについての相互情報量を得る(ステップ412)。構造学習部110は、相互情報量がε以上の場合、その確率変数ペアを確率変数ペア配列に追加する。ステップ404から412をすべての確率変数ペアについて繰り返し、すべての確率変数ペアについて相互情報量を計算する(ステップ414)。
続いて、構造学習部110は、確率変数ペア配列内に格納された確率変数ペアを、相互情報量の大きい順にソートする(ステップ416)。そして、相互情報量の大きい確率変数ペアの順に、当該確率変数ペア間にエッジを追加してもグラフ構造が木構造のままか否かをグラフ構造構築部118に問い合わせる(ステップ418)。グラフ構造構築部118は、エッジを追加すると閉路が発生する場合、木構造とならなくなる旨を構造学習部110に通知する(ステップ418の「いいえ」)。一方、木構造のままである旨がグラフ構造構築部118から通知されると(ステップ418の「はい」)、構造学習部110は、現在着目している確率変数ペア間に無向エッジを追加するようグラフ構造構築部118に指示し、確率変数ペア配列から当該確率変数ペアを削除する(ステップ420)。確率変数ペア配列内のすべての確率変数ペアについてステップ418及び420が繰り返される(ステップ422)。
上述のように、ステップ310の処理においては、相互情報量がε以上である確率変数ペアの各々について、その確率変数ペア間にエッジを追加してもグラフ構造が木構造のままである場合にエッジを追加するようにして、木構造のグラフ構造を生成する。そして、その際、入力データに含まれる各確率変数の周辺確率を計算し、確率変数ペアを構成するいずれかの確率変数がある状態を取る周辺確率がδ未満である場合には、関連する相互情報量の成分の計算を省略することにより、各確率変数ペアの相互情報量を計算している。
多頻度アイテム集合抽出アルゴリズムの一例としてAprioriを採用し、これを組み込んだ場合の本実施例における相互情報量計算のためのcalcMutualInformationルーチンの一例を図7に示す。
再び図3に戻り、構造学習部110は、ステップ312においてエッジ増加処理を実行する。構造学習部110は、相互情報量がε以上であるにもかかわらず、無向エッジを追加すると木構造にならなくなるために木構造準備処理において無向エッジが追加されなかった確率変数ペア(すなわち、確率変数ペア配列に残っている確率変数ペア)について、実際にエッジが必要であるか否かを条件付き相互情報量を用いることにより判定し、必要であると判定される場合には無向エッジを追加する。このときのThickening(エッジ増加)ルーチンの一例を図8に示す。
Thickeningルーチンにおいて実行される主要な処理の詳細を図9に示す。構造学習部110は、相互情報量がε以上であるが無向エッジを有していない各確率変数ペア(すなわち、確率変数ペア配列に残っている確率変数ペア)について、当該ペアを構成する2つの確率変数(例えば、X,Y)ノードの一方のノードを始点とし他方のノードを終点とするパス上に存在しそれら2つの確率変数ノードの何れかに隣接するノードの集合を最終的な条件集合(ConditionSet、C(太字))として設定する(ステップ902)。また、当該最終的な条件集合と同じ確率変数集合を有する候補条件集合C’(太字)を生成する。
構造学習部110は、上記最終的な条件集合(例えば、{C,C,C,C,・・・})に含まれるある1つの確率変数(すなわち、XとYとの間のパス上に存在し、X又はYに隣接する確率変数のうちの1つ)について、クエリー管理部112に条件付き相互情報量を計算させる。
クエリー管理部112は、まず、最終的な条件集合に含まれる確率変数のうちある1つの確率変数(例えば、C)のみが条件集合に含まれるとした場合について、条件付き相互情報量I(X,Y|C(太字))を計算する(ステップ904)。これを仮に最小の条件付き相互情報量として記憶し、このときの条件集合{C1}を仮に条件付き相互情報量が最小となる条件集合として記憶する。
クエリー管理部112は、次に、条件集合に上記1つの確率変数(ここでは、C)と別の1つの確率変数(C、C、C・・・のうちの1つ)とが含まれる場合について、条件付き相互情報量を計算する(ステップ906)。
構造学習部110は、計算された条件付き相互情報量がε未満であるかを判定する(ステップ908)。ε未満の場合(ステップ908の「はい」)、このときの確率変数ペア({X,Y})と条件集合(例えば、{C,C})との組を切断集合保持部116内のグローバルな切断集合に格納する。そして当該確率変数ペア間にエッジが不要であると判断する(ステップ910)。ε以上である場合(ステップ908の「いいえ」)、計算された条件付き相互情報量が現在の最小の条件付き相互情報量よりも大きいかを判定する(ステップ912)。大きい場合(ステップ912の「はい」)、構造学習部110は、候補条件集合C’(太字)から上記別の1つの確率変数を削除する(ステップ914)。小さい場合(ステップ912の「いいえ」)、構造学習部110は、このときの条件付き相互情報量を最小の相互情報量として記憶し、また、このときの条件集合を条件付き相互情報量が最小となる条件集合として記憶する(ステップ916)。
続いて、クエリー管理部112は、候補条件集合に残っている確率変数のうち、上記の既に着目した1つの確率変数(上述の例ではC)以外の確率変数のうちの1つのみが条件集合に含まれる場合について、条件付き相互情報量を計算する(ステップ918)。計算された条件付き相互情報量が現在の最小の条件付き相互情報量より小さい場合、このときの条件付き相互情報量を最小の相互情報量として記憶する。また、このときの条件集合を条件付き相互情報量が最小となる条件集合として記憶する(ステップ920)。
クエリー管理部112は、現在着目している1つの確率変数と、候補条件集合に残っているその他の確率変数のうちの1つとが条件集合に含まれる場合について、条件付き相互情報量を計算する(ステップ922)。構造学習部110は、計算された条件付き相互情報量がε未満の場合(ステップ924の「はい」)、このときの確率変数ペアと条件集合との組を切断集合保持部116内のグローバルな切断集合に記憶する。そして、当該確率変数ペア間にエッジが不要であると判断する(ステップ910)。計算された条件付き相互情報量がε以上の場合(ステップ924の「いいえ」)、その値がステップ918で計算された値より大きいかを判定する(ステップ926)。大きい場合(ステップ926の「はい」)、候補条件集合から上記その他の1つの確率変数を削除する(ステップ928)。小さい場合(ステップ926の「いいえ」)、このときの条件付き相互情報量を最小の相互情報量として記憶し、このときの条件集合を条件付き相互情報量が最小となる条件集合として記憶する(ステップ930)。
処理は図10に続く。ステップ918から930を候補条件集合に残っているすべての確率変数について繰り返した後(ステップ1002)、クエリー管理部112は、候補条件集合に残っているすべての確率変数を条件集合として条件付き相互情報量を計算する(ステップ1004)。計算された条件付き相互情報量がε未満であるかを判定する(ステップ1006)。ε未満である場合(ステップ1006の「はい」)、構造学習部110は、このときの確率変数ペアと条件集合との組を切断集合保持部116内のグローバルな切断集合に格納し(ステップ1008)、当該確率変数ペア間にエッジが不要であると判断する。ε以上である場合(ステップ1006の「いいえ」)、構造学習部110は、当該確率変数ペア間にエッジが必要であると判断する(ステップ1010)。
図9及び図10の例においては、条件集合のサイズを1から2へと大きくしながら条件付き相互情報量の計算を行い、それでもなおε未満となる条件付き相互情報量が得られない場合には、候補集合に残っているすべての確率変数を条件集合として条件付き相互情報量を計算し、これがε未満となるかを判断した。しかし、同様の考え方により、条件集合のサイズをさらに3、4、と大きくしていき、最終的な条件集合のサイズ以下のサイズまでについて図9のように処理を行ってもよい。
上述のように、ステップ312においては、相互情報量がε以上でありながらステップ310においてエッジが追加されなかった各確率変数ペアについて、エッジが必要である場合にこれを追加する。その際、該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数の組を条件集合として条件付き相互情報量を計算し、その値がε未満となる組が見つかった場合には、該2つの確率変数間にエッジを追加せず、そうでなければエッジを追加する。より具体的には、該2つの確率変数ノード間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合を最終的な条件集合として、該2つの確率変数ノード及び条件集合C(太字)についての条件付き相互情報量を、条件集合C(太字)のサイズが1である場合から上記最終的な条件集合のサイズとなる場合までサイズを大きくしながら計算していき、その過程でε未満となる条件付相互情報量が得られた場合には、該2つの確率変数間にエッジを追加せず、そうでなければ必要と判断してエッジを追加している。そして、条件付き相互情報量の計算においては、2つの確率変数の状態とそれぞれの確率変数に対応する状態集合とについての同時確率分布がδ未満となる場合には、関連する成分の計算を省略する。
図7のThickeningルーチンにおいて呼び出され、図9及び図10の処理に用いられるedgeNeeded_Hルーチンの一例を図11に示し、edgeNeeded_Hルーチンにおいて呼び出されるedgeNeededBodyルーチンの一例を図12A及び図12Bに示す。図12Aのルーチンは、条件集合C(太字)のサイズを1から2へと順に大きくして条件付き相互情報量の計算をするように構成されている。図12Bのルーチンは、条件集合のサイズを1から最終的な条件集合のサイズまで順に大きくしながら計算を行うように構成されている。
図9のステップ904、906、918及び922並びに図10のステップ1004においては、様々な確率変数の組を条件集合として条件付き相互情報量を計算する。本実施例においては、その過程において、条件集合のサイズが小さい(サイズが1)場合の条件付き相互情報量を計算し、次いで条件集合のサイズを大きくしながら条件付き相互情報量を計算している。そして、条件付き相互情報量が閾値ε未満となる条件集合が見つかるまで計算を繰り返し、見つかった場合には着目している確率変数ペア間にエッジは不要であると判断し、見つからなかった場合にはエッジが必要であると判断している。
本実施例によれば、図9及び図10において実行される条件付き相互情報量の計算においても、多頻度アイテム集合抽出アルゴリズムを用いて計算を高速化するために、確率変数とその値の組をアイテム集合と見なし、最小支持度δ未満の同時確率変数とその値の組に関連する成分を計算対象から除外する。例えば、X={x,x,・・・,x}及びY={y,y,・・・,y}である場合、互いに異なる確率変数X及びYの条件付き相互情報量I(X,Y|C(太字))は、次の式で表される。
Figure 0005555238
ここでP(x,y,c(太字))が最小支持度δ未満であれば、式(7)の右辺を構成する成分もまたδ未満となる。既に述べたとおり、0≦δ≦εであるから、このとき、当該成分について、
Figure 0005555238
が成立する。したがって、式(7)の右辺の各成分を直接計算することなく、その値がε未満となることが分かる。
このように多頻度アイテム集合抽出アルゴリズムを用いて処理を高速化した本実施例における条件付き相互情報量の計算過程を以下に説明する。この計算においては、与えられた条件集合(式(7)におけるC(太字))に含まれるすべての確率変数がとり得る状態パターンの集合(Q)中のすべての状態パターン(q)について、以下の処理を実行する。
与えられた条件集合に含まれる確率変数の数(|q|)が1の場合の処理のフローを図13に示す。クエリー管理部112は、P(c(太字))(c(太字)は確率変数に対応する状態集合)を計算する。この値がδ未満となるかが判定され(ステップ1102)、δ未満となる場合(ステップ1102の「はい」)、クエリー管理部112は、条件付き相互情報量の成分(式(7)の右辺を構成する成分)の計算を行わない。δ以上となる場合(ステップ1102の「いいえ」)、P(x|c(太字))が0となるかを判断する(ステップ1104)。0となる場合(ステップ1104の「はい」)、条件付き相互情報量の成分の計算を行わない。0でない場合(ステップ1104の「いいえ」)、P(y|c(太字))が0となるかを判断する(ステップ1106)。0となる場合(ステップ1106の「はい」)、条件付き相互情報量の成分の計算を行わない。0でない場合(ステップ1106の「いいえ」)、構造学習部110は、現在の確率変数ペアを構成する2つの確率変数と現在の条件集合とからなる集合から得られる、当該集合よりサイズを1だけ小さくした部分集合のすべてを考慮し(ステップ1108)、そのすべての部分集合が多頻度アイテム集合(F、F、・・・)に含まれるかを判断する(ステップ1110)。含まれない場合(ステップ1110の「いいえ」)、クエリー管理部112は、条件付き相互情報量の成分の計算を行わない。含まれる場合(ステップ1110の「はい」)、P(x,y,c(太字))がδ未満となるかを判断する(ステップ1112)。δ未満となる場合(ステップ1112の「はい」)、条件付き相互情報量の成分の計算を行わない。δ以上となる場合(ステップ1112の「いいえ」)、クエリー管理部112は、現在の確率変数及び状態の組について、条件付き相互情報量の成分を計算する(ステップ1114)。
現在の確率変数ペアのうち一方の確率変数(例えば、X)の状態を固定し、他方の確率変数(例えば、Y)のとり得るすべての状態についてステップ1106から1114を繰り返す(ステップ1116)。さらに、固定していた確率変数(X)のとり得るすべての状態についてステップ1104から1116を繰り返した後(ステップ1118)、これまでに計算した成分を足し合わせて条件付き相互情報量を得る(ステップ1120)。
与えられた条件集合に含まれる確率変数の数(|q|)が2以上の場合の処理のフローを図14に示す。まず、条件集合から|q|―1個の変数を含むすべての組み合わせを生成する(ステップ1402)。クエリー管理部112は、すべての組み合わせについて、その組み合わせが検索条件キーとしてクエリー結果キャッシュ部114に格納されているか問い合わせる(ステップ1404)。いずれかの組み合わせが格納されていない場合(ステップ1404の「いいえ」)、以下の処理を行わず終了する(ステップ1406)。
すべての組み合わせがクエリー結果キャッシュ部114に格納されている場合(ステップ1404の「はい」)、P(c(太字))(c(太字)はそれぞれの確率変数に対応する状態値集合)がδ未満となるかを判断する(ステップ1408)。δ未満である場合(ステップ1408の「はい」)、クエリー管理部112に条件付き相互情報量の成分の計算を行わせない。δ以上である場合(ステップ1408の「いいえ」)、このときの確率変数を検索条件キーとし、検索条件に該当するデータ件数を値としてクエリー結果キャッシュ部114に記憶する(ステップ1410)。また、確率変数と状態の集合を、確率変数の数nに等しいサイズの多頻度アイテム集合Fに追加する。
次に、P(x|c(太字))が0となるかを判断する(ステップ1412)。0である場合(ステップ1412の「はい」)、条件付き相互情報量の成分を計算しない。0でない場合(ステップ1412の「いいえ」)、P(y|c(太字))が0となるかを判断する(ステップ1414)。0である場合(ステップ1414の「はい」)、条件付き相互情報量の成分を計算しない。
0でない場合(ステップ1414の「いいえ」)、現在の確率変数ペアを構成する2つの確率変数と現在の条件集合とからなる集合から得られる、その集合よりサイズを1だけ小さくした部分集合のすべてを考慮し(ステップ1416)、そのすべての部分集合が多頻度アイテム集合(F、F、・・・)に含まれるかを判断する(ステップ1418)。含まれない場合(ステップ1418の「いいえ」)、条件付き相互情報量の成分を計算しない。含まれる場合(ステップ1418の「はい」)、P(x,y,c(太字))がδ未満となるかを判断する(ステップ1420)。δ未満の場合(ステップ1420の「はい」)、条件付き相互情報量の成分を計算しない。δ以上の場合(ステップ1420の「いいえ」)、このときの確率変数を検索条件キーとし、検索条件に該当するデータ件数を値としてクエリー結果キャッシュ部114に記憶する(ステップ1422)。また、確率変数と状態の集合を、確率変数の数nに等しいサイズの多頻度アイテム集合Fに追加する。
次に、現在の確率変数及び状態の組について、条件付き相互情報量の成分を計算する(ステップ1424)。さらに、現在の確率変数ペアのうち一方の確率変数(X)の状態を固定し、他方の確率変数(Y)のとり得るすべての状態についてステップ1414から1424を繰り返す(ステップ1426)。また、固定していた確率変数(X)のとり得るすべての状態についてステップ1412から1426を繰り返す(ステップ1428)。最後に、これまでに計算した条件付き相互情報量の成分をすべて足し合わせて、条件付き相互情報量を得る(ステップ1430)。
図13及び図14の処理に用いられるcalcConditionalMIルーチン及びhaveValidCandidateルーチンの一例をそれぞれ図15及び図16に示す。
図3に戻り、情報処理装置100は、ステップ314においてエッジ削減処理を行う。
詳細な処理を図17に示す。
構造学習部110は、無向エッジを有する各確率変数ペアについて、当該確率変数ペア間に別のパスが存在するかをグラフ構造構築部118に問い合わせる(ステップ1702)。別のパスがない旨の通知をグラフ構造構築部118から受けると(ステップ1702の「いいえ」)、別の確率変数ペアについてのステップ1702の処理に移る。別のパスがある旨の通知をグラフ構造構築部118から受けると(ステップ1702の「はい」)、構造学習部110は、当該確率変数ペア間の無向エッジを一時的に削除するようグラフ構造構築部に指示する(ステップ1704)。そして、当該確率変数ペアについて図9及び図10に示した処理を実行し、この確率変数ペア間にエッジが必要であるか否かを判断する(ステップ1706)。エッジが必要である場合(ステップ1706の「はい」)、構造学習部110は、一時的に削除した無向エッジを当該確率変数ペア間に再び追加するよう指示する(ステップ1708)。エッジが不要である場合(ステップ1706の「いいえ」)、構造学習部110はそのような指示を行わず、当該無向エッジは削除されたままとなる。エッジ増加処理312を終えた時点で無向エッジを有しているすべての確率変数ペアについてステップ1702から1708の処理を繰り返す(ステップ1710)。
続いて、構造学習部110は、現時点で無向エッジを有している各確率変数ペアについて、当該ペアを構成する少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有するかについてグラフ構造構築部118に問い合わせる(ステップ1712)。ペアを構成するいずれの確率変数ノードもペアの相手以外に3つ以上の隣接ノードを有しない旨の通知をグラフ構造構築部118から受けると(ステップ1712の「いいえ」)、構造学習部110は別の確率変数ペアについてのステップ1712の処理に移る。ペアを構成する少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有する旨の通知をグラフ構造構築部118から受けると(ステップ1712の「はい」)、構造学習部110は、当該確率変数ペア間の無向エッジを一時的に削除するようグラフ構造構築部に指示する(ステップ1714)。そして、当該確率変数ペアを構成する2つの確率変数ノード間のパス上にある、それら2つの確率変数ノードのいずれかに隣接するノードと、さらに当該隣接ノードに隣接するノードとを含む集合を、最終的な条件集合に設定する(ステップ1716)。そして、当該確率変数ペア及び最終的な条件集合について、図9のステップ904以降の処理及び図10の処理が実行され、この確率変数ペア間にエッジが必要であるか否かが判断される(ステップ1718)。エッジが必要である場合(ステップ1718の「はい」)、構造学習部110は、一時的に削除した無向エッジを当該確率変数ペア間に再び追加するよう指示する(ステップ1720)。エッジが不要である場合(ステップ1718の「いいえ」)、構造学習部110はそのような指示を行わず、当該無向エッジは削除されたままとなる。ステップ1702から1710の処理を終えた時点で無向エッジを有しているすべての確率変数ペアについてステップ1712から1720の処理を繰り返す(ステップ1722)。
上述のように、ステップ314においては、ステップ312による処理後にエッジを有する各確率変数ペアにつき、エッジが必要であるか否かを判断し、必要である場合にエッジを追加する。その際、無向エッジを有する確率変数ペアについて、該無向エッジ以外のパスが存在する場合、該無向エッジを一時的に削除し、該確率変数ペアについて、ステップ312と同様にして、必要である場合に上記一時的に削除した無向エッジを追加する。さらに、無向エッジを有する確率変数ペアの少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有する場合、該無向エッジを一時的に削除する。そして、該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノード及び該隣接するノードにさらに隣接するノードを含む集合を最終的な条件集合として、ステップ312の場合と同様にして、必要である場合に上記一時的に削除した無向エッジを追加している。
Thinning(エッジ削減)ルーチンの一例を図18に示し、当該ルーチンで呼び出されるedgeNeededルーチンの一例を図19に示す。
図3に戻り、情報処理装置100は、エッジ削減処理314までの作業によりグラフ構造構築部118に生成されているグラフ構造に含まれる無向エッジにつき、その方向付け処理を実行する(ステップ316)。詳細な処理を図20に示す。
XとYとの間及びYとZとの間にそれぞれ直接接続する無向エッジが存在し、且つ、XとZとの間には直接接続の無向エッジが存在しないような3つの確率変数の組(ここでは、X、Y及びZ)に着目する。構造学習部110は、このような確率変数の組について、切断集合保持部116に問い合わせ、1){X,Z}をレコードとする要素(例えば、<{X,Z},C>)がグローバルな切断集合に含まれており且つ当該要素に{X,Z}とともに含まれる条件部分の変数集合(上記例ではC)にYが含まれないか、又は2)({X,Z}をレコードとする要素(例えば、<{X,Z},C>)がグローバルな切断集合に含まれないか、のいずれかの条件が満たされるかを問い合わせる(ステップ2002)。条件が満たされる場合(ステップ2002の「はい」)、構造学習部110は、X及びZがYの親となるよう当該無向エッジに方向付けを行うよう、グラフ構造構築部118に指示する(ステップ2004)。条件が満たされない場合(ステップ2002の「いいえ」)、上記の関係を満たす別の3つの確率変数の組についてステップ2002の処理を行う。
上記の関係を満たす確率変数の組のすべてについてステップ2002及び2004の処理を実行した後(ステップ2006)、構造学習部110は、現在の頂点集合に含まれる3つの確率変数の組(ここでは、X、Y及びZ)に着目する。構造学習部110は、グラフ構造構築部118に問い合わせて、1)XがYの親であること、2)YとZが隣接していること、3)XとZが隣接していないこと、及び4)YとZとの間のエッジが無向エッジであること、のすべての条件が満たされているかについて問い合わせる(ステップ2008)。条件が満たされる場合(ステップ2008の「はい」)、構造学習部110は、YがZの親となるようにエッジの方向付けを行うよう、グラフ構造構築部118に指示する(ステップ2010)。条件が満たされない場合(ステップ2008の「いいえ」)、頂点集合に含まれる別の3つの確率変数の組についてステップ2008の処理を実行する。頂点集合に含まれる3つの確率変数の組のすべてについてステップ2008及び2010の処理を行う(ステップ2012)。
さらに、構造学習部110は、現時点で無向エッジを有する確率変数ペアについて、当該確率変数ペア間に有効なパスが存在するかについてグラフ構造構築部118に問い合わせる(ステップ2014)。存在する場合(ステップ2014の「はい」)、構造学習部110は、XがYの親となるようにエッジの方向付けを行うよう、グラフ構造構築部118に指示する(ステップ2016)。すべての無向エッジについてステップ2014及び2016の処理を行う(ステップ2018)。
エッジの方向付けに用いられるorientEdgeルーチンの一例を図21に示す。
図3のステップ316の実行後にグラフ構造構築部118が保持しているグラフ構造は、本実施例の一連の処理を経て学習されたベイジアンネットワーク構造を表している。情報処理装置100は、これをベイジアンネットワーク構造記述ファイル120として出力し(ステップ318)、処理を完了する(ステップ320)。
ここで説明された情報処理装置100は図1に示す複数の構成要素からなるが、このよ
うな構成は一例にすぎない。すなわち、本発明の学習装置は、制御部102、データ仕様解析部104、構造学習部110、クエリー管理部112、クエリー結果キャッシュ部114、切断集合保持部116及びグラフ構造構築部118のうち複数の機能を単一の構成要素において実行するように構成されてもよい。また、これらの機能すべてを単一の構成要素(例えば、コンピュータのプロセッサ)において実行してもよい。情報処理装置100は、データベース106を含んでもよい。
上述の実施例において、本発明は情報処理装置100として実施されるものとして説明された。しかし、本発明は、コンピュータを図1に示す構成要素として動作させるプログラムとして実現することができる。また、本発明は、図3に記載の各ステップをコンピュータに実行させるプログラムとして実現することも可能である。
本実施例は、制約ベースの学習アルゴリズムに多頻度アイテム集合抽出アルゴリズムを組み合わせた新しいアルゴリズムを用いてベイジアンネットワーク構造学習を行うことを特徴とする。本実施例においては、具体的な説明のため、特定の制約ベース学習アルゴリズム及び多頻度アイテム集合抽出アルゴリズムを利用して本発明の技術的思想を説明した。しかし、本発明の技術的思想は、その他の制約ベース学習アルゴリズムや多頻度アイテム集合抽出アルゴリズムを用いても実現できるものである。
本実施例による情報処理装置及びプログラムは、上記アルゴリズムの双方を単に組み合わせて使用するものではない。すなわち、多頻度アイテム集合抽出アルゴリズムを用いて得られた出力を当該アルゴリズムにより抽出した同時確率分布とし、これをそのまま制約ベースの学習アルゴリズムに入力として渡すだけ、といった単純な組み合わせで動作するものではない。既に述べたとおり、本発明は、制約ベースの学習アルゴリズムの内部に多頻度アイテム集合抽出アルゴリズムを組み込んだ独自のアルゴリズムを用いる。そして、本発明は、構造学習時に処理が必要になる同時確率変数値のパターンに限って多頻度アイテム集合抽出の対象となるように動作する。また、制約ベース学習アルゴリズムを用いる場合、条件付き相互情報量の条件として所与とされる確率変数の数は、アルゴリズムが進行するに従って単調に増加するとは限らない。一方、多頻度アイテム集合抽出アルゴリズムは、扱うアイテム(本発明においては、確率変数とその取る値の組)の数がアルゴリズムの進行に伴って単調に増加する。本発明は、扱う確率変数の数が局所的に単調増加を保つよう制約ベース学習アルゴリズムを変更することにより、多頻度アイテム集合抽出アルゴリズムの効果的な組み込みを実現するものである。
本実施例によるベイジアンネットワーク構造学習の高速化及び処理時間の安定化の効果を確認するために実験を行った。実験の基礎となるベイジアンネットワークとしては、ベイジアンネットワーク学習の例題として頻繁に用いられるベイジアンネットワークリポジトリ(http://compbio.cs.huji.ac.il/Repository)からAlarmと呼ばれる37ノード、46エッジのネットワークを使用した。実験に使用したベイジアンネットワークを図22に示す。当該ネットワークについてそれぞれ5000件、15000件、30000件及び50000件のデータを生成し、これらデータを入力として用いて従来のTPDAアルゴリズム及び本実施例のアルゴリズムに従ってコンピュータを本実施例の情報処理装置として動作させることにより、ベイジアンネットワーク構造学習を行った。
上記のそれぞれのデータ件数について5データセットずつ実行したときの平均値等を表す実験結果を表1から表4に示す。Missing Edge及びExtra Edgeは、それぞれ、正しいベイジアンネットワークと比較した場合の、推定されたベイジアンネットワークにおいて失われたエッジの数及び追加された余分なエッジの数を示す。各表においては、さらに、従来のTPDAアルゴリズムを使用した場合の実行時間を1としたときの各アルゴリズムについての実行時間と標準偏差、及び各アルゴリズムについてのデータ件数5000件の場合の実行時間を1としたときの実行時間を示した。
Figure 0005555238
Figure 0005555238
Figure 0005555238
Figure 0005555238
実験結果から、本実施例により、従来のTPDAアルゴリズムを使用した場合と比較してベイジアンネットワーク構造学習を大幅に高速化できること、実行時間のばらつきを大幅に低減できることが分かる。また、Missing Edge及びExtra Edgeにより示される正しいネットワークからの誤差についても、従来技術と遜色のないレベルに抑えられていることが分かる。このように、本実施例は、従来技術と比較して、推定されるベイジアンネットワークの精度を犠牲にすることなく、構造学習の高速化及び実行時間の安定化を実現できるという優れた効果を奏する。
続いて、切断集合の探索や切断集合の存在判定を行う際、条件変数集合の部分集合サイズが昇順となる順に条件付き相互情報量の計算を行いかつMDFの仮定を最大限早期に用いること、すなわち2つの条件変数を所与とした場合と当該条件変数集合中の単一の各条件変数を所与とした場合の条件付き相互情報量とを比較し、切断集合に含まれない変数を2段階目ですべて探索対象から削除することにより、最大でもわずか3つの段階からなる処理を可能とし、ベイジアンネットワーク構造学習の高速化を可能とする、本発明の別の実施例につき以下に詳細に説明する。
本実施例の情報処理装置100の構成は図1に示されている。また、本実施例における情報処理装置100による基本的な処理は図3に示すとおりである。ベイジアンネットワーク構造学習を実行すべき旨の命令を受信すると、情報処理装置100は処理を開始する(ステップ302)。当該命令は、ベイジアンネットワーク構造学習の基礎となるデータを格納するデータベース106にアクセスするための接続情報及びデータ仕様記述ファイル名を含むように構成される。当該動作パラメータは、上記のほか、ベイジアンネットワーク構造学習において使用される相互情報量及び条件付き相互情報量の閾値ε(一例として、0.01)を含む。さらに、出力となるベイジアンネットワーク構造記述ファイルのファイル名を含んでもよい。
情報処理装置100は初期処理を行う。制御部102は、上記動作パラメータが正常であるか否かをチェックして(ステップ304)、エラーがあれば処理を終了し(ステップ320)、正常であればデータ仕様解析部104にデータ仕様を解析させる(ステップ306)。データ仕様解析部104は、データ仕様記述ファイル108を読み取り、データに含まれる各確率変数の名前、確率変数の数、各確率変数が取り得るすべての状態の名前及び状態数を保持する。次に、データ仕様解析部104は、データベース接続情報を用いてデータベース106に接続し、全データの件数を取得してこれを保持する(ステップ308)。ステップ308の後、制御部102は制御を構造学習部110に移す。
構造学習部110は木構造準備処理を行い、与えられたデータについて木構造を生成する(ステップ310)。ステップ310の処理を図23においてさらに詳細に示す。
クエリー管理部112は、すべての確率変数ペアについて相互情報量を計算する(ステップ2302)。構造学習部110は、相互情報量がε以上の場合、その確率変数ペアを、情報処理装置100内の記憶部(図示せず)等に格納される確率変数ペア配列に追加する。
続いて、構造学習部110は、確率変数ペア配列内に格納された確率変数ペアを、相互情報量の大きい順にソートする(ステップ2304)。そして、相互情報量の大きい確率変数ペアの順に、当該確率変数ペア間にエッジを追加してもグラフ構造が木構造のままであるか否かをグラフ構造構築部118に問い合わせる(ステップ2306)。グラフ構造構築部118は、エッジを追加すると閉路が発生する場合、木構造とならなくなる旨を構造学習部110に通知する(ステップ2306の「いいえ」)。一方、エッジを追加しても木構造が保たれる旨がグラフ構造構築部118から通知されると(ステップ2306の「はい」)、構造学習部110は、現在着目している確率変数ペア間に無向エッジを追加するようグラフ構造構築部118に指示し、確率変数ペア配列から当該確率変数ペアを削除する(ステップ2308)。確率変数ペア配列内のすべての確率変数ペアについてステップ2306及び2308が繰り返される(ステップ2310)。
上述のように、ステップ310の処理においては、相互情報量がε以上である確率変数ペアの各々について、その確率変数ペア間にエッジを追加してもグラフ構造が木構造のままである場合にエッジを追加するようにして、木構造のグラフ構造を生成する。生成されたグラフ構造は、グラフ構造構築部118、情報処理装置100内の記憶部(図示せず)、あるいは構造学習部110等に記憶されてもよい。
再び図3に戻り、構造学習部110は、ステップ312においてエッジ増加処理を実行する。構造学習部110は、相互情報量がε以上であるにもかかわらず、無向エッジを追加すると木構造にならなくなるために木構造準備処理において無向エッジが追加されなかった確率変数ペア(すなわち、確率変数ペア配列に残っている確率変数ペア)について、実際にエッジが必要であるか否かを条件付き相互情報量を用いることにより判定し、必要であると判定される場合には当該確率変数ペア間に無向エッジを追加する。このときのThickening(エッジ増加)ルーチンの一例を図24に示す。
本実施例においてThickeningルーチン内で実行される主要な処理の詳細を図25に示す。構造学習部110は、相互情報量がε以上であるが無向エッジを有していない各確率変数ペア(すなわち、確率変数ペア配列に残っている確率変数ペア)について、当該ペアを構成する2つの確率変数(例えば、X、Y)ノードの一方のノードを始点とし他方のノードを終点とするパス上に存在しそれら2つの確率変数ノードの何れかに隣接するノードの集合を最終的な条件集合(ConditionSet、本実施例においてはZ(太字)と表す)として設定する(ステップ2402)。また、当該最終的な条件集合と同じ確率変数集合を有する候補条件集合Z(太字)を生成する。
構造学習部110は、上記最終的な条件集合(例えば、{Z,Z,Z,Z,・・・})に含まれるある1つの確率変数(すなわち、XとYとの間のパス上に存在し、X又はYに隣接する確率変数のうちの1つ)について、クエリー管理部112に条件付き相互情報量を計算させる。
クエリー管理部112は、まず、最終的な条件集合Z(太字)に含まれる確率変数のうちある1つの確率変数(例えば、Z)のみが条件集合に含まれるとした場合について、条件付き相互情報量I(X,Y|Z(太字))を計算する(ステップ2404)。計算された条件付き相互情報量は、その計算に使用された条件集合(ここではZのみを含む)と関連付けて、クエリー管理部112や情報処理装置100の記憶部(図示せず)などに格納されてもよい。
構造学習部110は、ステップ2404において計算された条件付き相互情報量につき、ε未満であるかを判定する(ステップ2406)。ε未満の場合(ステップ2406の「はい」)、このときの確率変数ペア({X,Y})と条件集合(例えば、{Z})との組を切断集合保持部116内に記憶されるグローバルな切断集合に格納する。そして当該確率変数ペア間にエッジが不要であると判断する(ステップ2408)。
一方、ステップ2404においてある1つの確率変数を条件集合として計算された条件付き相互情報量がε以上である場合(ステップの2406の「いいえ」)、処理はステップ2404に戻り、別の1つの確率変数(例えば、Z)のみが条件集合に含まれる場合について条件付き相互情報量が計算される。以下同様にしてステップ2404及び2406が繰り返される。すなわち、最終的な条件集合Z(太字)に含まれるある1つの確率変数を所与とした条件付き相互情報量の計算が繰り返される。計算された条件付き相互情報量は、その計算に使用された条件集合と関連付けて、クエリー管理部112や情報処理装置100の記憶部(図示せず)などに格納されてもよい。この過程において条件付き相互情報量がε未満となる確率変数が見つかれば(ステップ2406の「はい」)、処理はステップ2408に移る。
一方、ステップ2404及び2406の実行により計算されたいずれの条件付き相互情報量もε以上であった場合、処理はステップ2410に移る。クエリー管理部112は、最終的な条件集合Z(太字)に含まれる確率変数のうちある2つの確率変数(例えば、Z及びZ)が条件集合に含まれるとした場合について、条件付き相互情報量I(X,Y|Z(太字))を計算する(ステップ2410)。計算された条件付き相互情報量は、その計算に使用された条件集合(ここでは{Z,Z})と関連付けて、クエリー管理部112や情報処理承知100の記憶部(図示せず)などに格納されてもよい。
構造学習部110は、ステップ2410において計算された条件付き相互情報量につき、ε未満であるかを判定する(ステップ2412)。これがε未満である場合(ステップ2412の「はい」)、このときの確率変数ペア({X,Y})と条件集合(例えば、{Z,Z})との組を切断集合保持部116内のグローバルな切断集合に格納する。そして、当該確率変数ペア(ここでは、X及びY)間にエッジが不要であると判断される(ステップ2408)。
一方、ステップ2410において計算された条件付き相互情報量がε以上である場合(ステップの2412の「いいえ」)、構造学習部110は、当該条件付き相互情報量が、ステップ2410の計算において使用された条件集合に含まれる2つの確率変数のうちの一方(例えば、Z)を条件集合としてステップ2404において既に計算された条件付き相互情報量よりも大きいか否かを判定する(ステップ2414)。大きい場合(ステップ2414の「はい」)、構造学習部110は、記憶部(図示せず)などに格納されている候補条件集合Z(太字)から当該一方の確率変数(ここでは、Z)を削除する。構造学習部110は、ステップ2410の計算において使用された条件集合に含まれる2つの確率変数のうちの他方(例えば、Z)についても同様の処理を行う(ステップ2418及び2420)。
その後、構造学習部110は、候補条件集合Z(太字)に残るすべての確率変数につき、ステップ2410〜2420を繰り返す(ステップ2422)。例えば、当初の候補条件集合Z(太字)にZ〜Zの6つの確率変数が含まれていた場合において、ステップ2414〜2420の処理を通じて候補条件集合Z(太字)からZ及びZが削除された場合には、残されたZ〜Zについてステップ2410〜2420の処理が再び実行される。
続いて、クエリー管理部112は、上述の処理の結果として候補条件集合Z(太字)に残ったすべての確率変数を条件集合として条件付き相互情報量を計算する(ステップ2424)。構造学習部110は、ステップ2424において計算された条件付き相互情報量がε未満であるかを判定する(ステップ2426)。これがε未満である場合(ステップ2426の「はい」)、このときの確率変数ペア({X,Y})と候補条件集合との組を切断集合保持部116内のグローバルな切断集合に格納する。そして、当該確率変数ペア(ここでは、X及びY)間にエッジが不要であると判断される(ステップ2408)。一方、ステップ2424において計算された条件付き相互情報量がε未満でない場合(ステップ2426の「いいえ」)、構造学習部110は、当該確率変数ペア間にエッジが必要であると判断し、グラフ構造構築部118にその旨の指示を行う(ステップ2428)。このようにして、エッジが必要であると判断された場合に確率変数ペア間にエッジが追加される。生成されたグラフ構造は、グラフ構造構築部118、情報処理装置100内の記憶部(図示せず)、あるいは構造学習部110等に記憶されてもよい。
図25に示すように、本実施例は、切断集合の探索や切断集合の存在判定に際して、最大でも、条件変数集合のサイズが1である場合の処理(第1段階、ステップ2404、2406及び2408)、条件変数集合のサイズが2である場合の処理(第2段階、ステップ2410〜2422及び2408)、及び第1段階及び第2段階の後に候補条件集合に残されたすべての確率変数に対する処理(第3段階、ステップ2424〜2428及び2408)の3つの段階のみを必要とする。これに対して、従来のTPDAは、与えられた条件変数集合の部分集合サイズが大きい方から(すなわち、降順に)切断集合を探索し、結果として最大でN−2(Nは確率変数の数)段階の探索を必要とする。したがって、多数の確率変数が存在する状況下でのベイジアンネットワーク構造学習に際して、本実施例は従来のTPDAと比較して、処理を格段に高速化することができる。
図24のThickeningルーチンにおいて呼び出され、図25の処理に用いられるedgeNeeded_Hルーチンの一例を図26に示し、edgeNeeded_Hルーチンにおいて呼び出されるSearchCutSetルーチンの一例を図27に示す。図27のルーチンの詳細については既に図25に関連して説明した。
図3に戻り、情報処理装置100は、ステップ314においてエッジ削減処理を行う。詳細な処理を図28に示す。
構造学習部110は、無向エッジを有する各確率変数ペアについて、当該確率変数ペア間に別のパスが存在するかをグラフ構造構築部118に問い合わせる(ステップ2702)。別のパスがない旨の通知をグラフ構造構築部118から受けると(ステップ2702の「いいえ」)、別の確率変数ペアについてのステップ2702の処理に移る。別のパスがある旨の通知をグラフ構造構築部118から受けると(ステップ2702の「はい」)、構造学習部110は、当該確率変数ペア間の無向エッジを一時的に削除するようグラフ構造構築部118に指示する(ステップ2704)。そして、当該確率変数ペアについて図25に示した処理を実行し、この確率変数ペア間にエッジが必要であるか否かを判断する(ステップ2706)。既に述べたように、本実施例においてステップ2706の処理は最大でもわずか3段階で実行することができるため、ここにおいても、従来のTPDAと比較して処理の高速化が可能である。エッジが必要である場合(ステップ2706の「はい」)、構造学習部110は、一時的に削除した無向エッジを当該確率変数ペア間に再び追加するようグラフ構造構築部118に指示する(ステップ2708)。エッジが不要である場合(ステップ2706の「いいえ」)、構造学習部110はそのような指示を行わず、当該無向エッジは削除されたままとなる。エッジ増加処理312を終えた時点で無向エッジを有しているすべての確率変数ペアについてステップ2702から2708の処理を繰り返す(ステップ2710)。
続いて、構造学習部110は、現時点で無向エッジを有している各確率変数ペアについて、当該ペアを構成する少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有するかについてグラフ構造構築部118に問い合わせる(ステップ2712)。ペアを構成するいずれの確率変数ノードもペアの相手以外に3つ以上の隣接ノードを有しない旨の通知をグラフ構造構築部118から受けると(ステップ2712の「いいえ」)、構造学習部110は別の確率変数ペアについてのステップ2712の処理に移る。ペアを構成する少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有する旨の通知をグラフ構造構築部118から受けると(ステップ2712の「はい」)、構造学習部110は、当該確率変数ペア間の無向エッジを一時的に削除するようグラフ構造構築部に指示する(ステップ2714)。そして、当該確率変数ペアを構成する2つの確率変数ノード間のパス上にある、それら2つの確率変数ノードのいずれかに隣接するノードと、さらに当該隣接ノードに隣接するノードとを含む集合を、最終的な条件集合に設定する(ステップ2716)。そして、当該確率変数ペア及び最終的な条件集合について、図25のステップ2404以降の処理が実行され、この確率変数ペア間にエッジが必要であるか否かが判断される(ステップ2718)。既に述べたように、本実施例によれば、この処理においても高速化が期待できる。エッジが必要である場合(ステップ2718の「はい」)、構造学習部110は、一時的に削除した無向エッジを当該確率変数ペア間に再び追加するようグラフ構造構築部118に指示する(ステップ2720)。エッジが不要である場合(ステップ2718の「いいえ」)、構造学習部110はそのような指示を行わず、当該無向エッジは削除されたままとなる。ステップ2702から2710の処理を終えた時点で無向エッジを有しているすべての確率変数ペアについてステップ2712から2720の処理を繰り返す(ステップ2722)。
上述のように、ステップ314においては、ステップ312による処理後にエッジを有する各確率変数ペアにつき、エッジが必要であるか否かを判断し、必要である場合にエッジを追加する。その際、無向エッジを有する確率変数ペアについて、該無向エッジ以外のパスが存在する場合、該無向エッジを一時的に削除し、該確率変数ペアについて、ステップ312と同様にして、必要であると判断される場合に上記一時的に削除した無向エッジを再び追加する。さらに、無向エッジを有する確率変数ペアの少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有する場合、該無向エッジを一時的に削除する。そして、該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノード及び該隣接するノードにさらに隣接するノードを含む集合を最終的な条件集合として、ステップ312の場合と同様にして、必要であると判断される場合に上記一時的に削除した無向エッジを再び追加している。
本実施例におけるThinning(エッジ削減)ルーチンの一例を図29に示す。また、本実施例において当該ルーチンで呼び出されるedgeNeededルーチンの一例を図30に示す。
図3に戻り、情報処理装置100は、エッジ削減処理314までの作業によりグラフ構造構築部118において生成されたグラフ構造に含まれる無向エッジにつき、その方向付け処理を実行する(ステップ316)。詳細な処理については図20に関連して既に説明されており、エッジの方向付けに用いられるルーチンの一例を図31に示す。
図3のステップ316の実行後にグラフ構造構築部118が保持している(又は、情報処理装置100内の記憶部(図示せず)等に格納されている)グラフ構造は、本実施例の一連の処理を経て学習されたベイジアンネットワーク構造を表している。情報処理装置100は、これをベイジアンネットワーク構造記述ファイル120として出力し(ステップ318)、処理を完了する(ステップ320)。
本実施例に関して説明された情報処理装置100は図1に示す複数の構成要素からなるが、このような構成は一例にすぎない。すなわち、本実施例の情報処理装置は、制御部102、データ仕様解析部104、構造学習部110、クエリー管理部112、クエリー結果キャッシュ部114、切断集合保持部116及びグラフ構造構築部118のうち複数の機能を単一の構成要素において実行するように構成されてもよい。また、これらの機能すべてを単一の構成要素(例えば、コンピュータのプロセッサ)において実行してもよい。情報処理装置100は、データベース106を含んでもよい。
本実施例による計算量の低減及び処理の高速化について考察する。まず、本実施例の手法による、切断集合探索テストにおける最大計算量につき検討する。切断集合探索テストの第1段階(図25におけるステップ2404及び2406に相当)では、条件変数集合サイズは1であるため、CIテスト(条件付き相互情報量がε未満となるか否かの判定)において扱われる変数の数はX及びYを含めて3である。したがって、第1段階におけるCIテストのパターン数は、rを変数の状態数の最大値とするとrである。同様に、第2段階(図25におけるステップ2410〜2422に相当)においては、パターン数はrとなる。第3段階(図25におけるステップ2424〜2428に相当)においては、計算量が最大となる場合、CIテストですべての変数を扱うことになるため、パターン数はrである。各段階のCIテストの回数とパターン数を乗じてその和を取ることにより、本実施例において、最大計算量はO(r+N)となる。
次に、従来のTPDAによる、切断集合探索テストにおける最大計算量につき検討する。Z(太字)を所与としたXとYの切断集合探索テストを行うこと、すなわち、Z(太字)’⊆Z(太字)を列挙して、それぞれについてCIテストを行うことを考える。変数が取りうる状態の最大値をrとすると、条件変数集合サイズ|Z(太字)’|は、最大でN−2であり、CIテストのパターン数はrである.TPDAでは、条件変数集合のサイズは第1段階目の|Z(太字)’|=N−2から1ずつ減少し、最後のN−2段階目において、条件変数集合サイズは|Z(太字)’|=1となる。したがって、TPDAのCIテストのパターン数は、切断集合探索テストの第1、2、・・・N−2段階において、それぞれ、r、rN−1、・・・rとなる。よって、TPDAによる最大計算量は、各段階のCIテスト数にパターン数を乗じてその和を取ることにより、
Figure 0005555238
となる。
本実施例による最大計算量O(r+N)とTPDAによる上記式(9)で表される最大計算量とを比較すると、その差分はそれぞれの計算量から両手法に共通な項であるrを除くことにより分析できる。すなわち、当該共通項を除くと、TPDAにおいては
Figure 0005555238
となり、本実施例ではO(N)となる。このように、TPDAにおいて計算量の差分O(rN−1)はNについて指数オーダーであるのに対し、本実施例ではN及びrのいずれについても多項式オーダーである。したがって、本実施例によれば、TPDAの場合と比較して切断集合探索テストにおける最大計算量を低減できることが確認された。
一方、本実施例において、CIテストごとの最小計算量はO(r)である。なぜなら、本実施例によれば、第1段階の最初のCIテストにおいて切断集合が発見されれば、第2段階及び第3段階の処理は不要であり、当該CIテストでrのパターンを計算すれば良いからである。
これに対し、TPDAでは、変数XとYの切断集合を条件変数集合Z(太字)から探索する際、条件変数集合の部分集合Z(太字)’⊆Z(太字)を部分集合のサイズの降順に列挙して、着目する部分集合が切断集合であるか否かをCIテストにより調べる。CIテストの計算量は所与とする変数集合サイズの指数オーダーであるから、変数の取る状態数の最大値をr、所与とする変数集合サイズ|Z(太字)’|を最大の場合のN−2とすると、当該計算量はO(r)となる。したがって、TPDAによれば、切断集合探索テストごとの最小計算量はO(r)である。したがって、本実施例によれば、切断集合探索テストにおける最小計算量に関しても、確率変数の数が増大するほど、TPDAと比較して計算量を低減できることが確認された。
以上のように、本実施例による手法は、TPDAと比較して最大計算量及び最小計算量の双方を低減できるという顕著な効果を奏することが理解される。
本実施例において、本発明は情報処理装置100として実施されるものとして説明された。しかし、コンピュータを図1に示す構成要素の一部または全部として動作させるプログラムとして本発明を実現することができることは当業者にとって明らかであろう。また、図3に記載のステップの一部又は全部をコンピュータに実行させるプログラムとして本発明を実現し得ることも当業者にとって明らかであろう。
本実施例は、図25及び図27に関連して説明されたように、切断集合の探索や切断集合の存在の判定に際して、条件変数集合のサイズが1である場合の処理、条件変数集合のサイズが2である場合の処理、及びこれらの処理の後に候補条件集合に残されたすべての確率変数に対する処理、という最大でも3つの段階のみからなる手続きを実行することにより、多数の確率変数が存在する状況下でのベイジアンネットワーク構造学習における切断集合の探索を高速化することができる。この結果、従来のTPDAと比較してさらに高速なベイジアンネットワーク構造学習が可能となる。
本実施例によるベイジアンネットワーク構造学習の高速化及び処理時間の安定化の効果を確認するために実験を行った。実験に際して、アルゴリズムをJava(登録商標)実験に用いた環境は、Intel Core 2プロセッサ2.67GHzの4GB RAM上で動作するWindows(登録商標) Vista Business SP2であり、Java(登録商標)仮想マシンには最大512MBのメモリを割り当てた。
実施例1と同様、図22に示すベイジアンネットワークを実験の基礎として使用した。当該ネットワークについてそれぞれ5000件、15000件、30000件及び50000件のデータを生成し、これらデータを入力として用いて従来のTPDAアルゴリズム及び本実施例のアルゴリズムに従ってコンピュータを本実施例の情報処理装置として動作させることにより、ベイジアンネットワーク構造学習を行った。
上記のそれぞれのデータ件数について10データセットずつ実行したときの平均値等を表す実験結果を表1から表4に示す。従来のTPDAを使用した場合の結果を「TPDA」の行に示し、本実施例による結果を「TS(Three−Staged)−TPDA」の行に示した。Missing Edge及びExtra Edgeは、それぞれ、正しいベイジアンネットワークと比較した場合の、推定されたベイジアンネットワークにおいて失われたエッジの数及び追加された余分なエッジの数を示す。
Figure 0005555238
Figure 0005555238
Figure 0005555238
Figure 0005555238
実験結果から、本実施例により、従来のTPDAアルゴリズムを使用した場合と比較してベイジアンネットワーク構造学習を極めて大幅に高速化できること、実行時間のばらつきを極めて大幅に低減できることが分かる。また、Missing Edge及びExtra Edgeにより示される正しいネットワークからの誤差についても、従来技術と遜色のないレベルに抑えられていることが分かる。このように、本実施例は、従来技術と比較して、推定されるベイジアンネットワークの精度を犠牲にすることなく、構造学習の大幅な高速化及び実行時間の安定化を実現できるという優れた効果を奏する。

Claims (3)

  1. 入力データからベイジアンネットワーク構造学習を行うプログラムであって、コンピュータに、
    (A)データベースにアクセスするための接続情報、データ仕様記述ファイル名、第1の閾値及び第2の閾値を含む動作パラメータを有する、ベイジアンネットワーク構造学習を実行する命令を受け取るステップであって、前記データ仕様記述ファイルは、前記データベースに格納される入力データに含まれる、各確率変数の名前、確率変数の数、各確率変数の状態名及び状態数を記述する、ステップと、
    (B)前記命令に応答して、前記データ仕様記述ファイルを解析し、各確率変数の名前、確率変数の数、各確率変数の状態名及び状態数を得て保持するステップと、
    (C)前記入力データについて木構造のグラフを生成して記憶部に記憶するステップであって、相互情報量が前記第1の閾値以上である確率変数ペアの各々について、該確率変数ペア間にエッジを追加してもグラフ構造が木構造のままである場合にエッジを追加することによって、木構造のグラフを生成し、該木構造のグラフを記憶部に記憶するステップと、
    (D)記憶部から前記木構造のグラフを読み出し、相互情報量が前記第1の閾値以上でありながら前記ステップ(C)によってエッジが追加されなかった各確率変数ペアについて、エッジが必要である場合にエッジを追加することによってグラフを更新するステップであって、
    (D1)該エッジが追加されなかった確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノードの集合に含まれる確率変数を含む条件集合を候補条件集合とし、前記候補条件集合内の各1つの確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが前記第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに該確率変数ペアについての処理を終了し、
    (D2)前記(D1)において処理が終了しない場合、前記候補条件集合内のいずれか2つの確率変数の組を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが前記第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了し、計算された条件付き相互情報量が一方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、前記候補条件集合から該一方の確率変数を削除し、計算された条件付き相互情報量が他方の確率変数のみを条件集合として既に計算された条件付き相互情報量よりも大きい場合には、前記候補条件集合から該他方の確率変数を削除し、
    (D3)前記(D2)において処理が終了しない場合、前記候補条件集合に残るすべての確率変数を条件集合として条件付き相互情報量を計算し、計算された条件付き相互情報量の少なくともいずれかが前記第1の閾値未満となる場合には、該2つの確率変数間にエッジを追加せずに処理を終了し、
    (D4)前記(D1)乃至(D3)において処理が終了しない場合、該2つの確率変数間にエッジを追加する、エッジを追加するステップと
    を含む、グラフを更新するステップと、
    前記更新されたグラフを記憶部に記憶するステップと
    を実行させるプログラム。
  2. (E)前記ステップ(D)による処理後にエッジを有する各確率変数ペアにつき、エッジが必要であるか否かを判断し、不要である場合にエッジを削除することによりグラフを更新し、該グラフを記憶部に記憶するステップと、
    (F)各エッジの方向付けを行うことにより前記グラフを更新し、該グラフを記憶部に記憶するステップと
    をコンピュータに実行させる請求項に記載のプログラム。
  3. 前記ステップ(E)は、
    無向エッジを有する確率変数ペアについて、該無向エッジ以外のパスが存在する場合、該無向エッジを一時的に削除するステップと、
    該確率変数ペアについて、前記手段(D)と同様にして、必要である場合に前記一時的に削除した無向エッジを追加するステップと、
    無向エッジを有する確率変数ペアの少なくとも一方の確率変数ノードが他方のノード以外に3つ以上の隣接ノードを有する場合、該無向エッジを一時的に削除するステップと、
    該確率変数ペアを構成する2つの確率変数ノードについて、その間のパス上にあり該2つの確率変数ノードのいずれかに隣接するノード及び該隣接するノードにさらに隣接するノードを含む集合を候補条件集合として、前記手段(B)と同様にして、必要である場合に前記一時的に削除した無向エッジを追加するするステップと
    を含む請求項に記載のプログラム
JP2011525822A 2009-08-06 2010-05-27 ベイジアンネットワーク構造学習のための情報処理装置及びプログラム Expired - Fee Related JP5555238B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011525822A JP5555238B2 (ja) 2009-08-06 2010-05-27 ベイジアンネットワーク構造学習のための情報処理装置及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009182993 2009-08-06
JP2009182993 2009-08-06
PCT/JP2010/058963 WO2011016281A2 (ja) 2009-08-06 2010-05-27 ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
JP2011525822A JP5555238B2 (ja) 2009-08-06 2010-05-27 ベイジアンネットワーク構造学習のための情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2011016281A1 JPWO2011016281A1 (ja) 2013-01-10
JP5555238B2 true JP5555238B2 (ja) 2014-07-23

Family

ID=43544742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011525822A Expired - Fee Related JP5555238B2 (ja) 2009-08-06 2010-05-27 ベイジアンネットワーク構造学習のための情報処理装置及びプログラム

Country Status (2)

Country Link
JP (1) JP5555238B2 (ja)
WO (1) WO2011016281A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015045091A1 (ja) * 2013-09-27 2015-04-02 株式会社シーエーシー ベイジアンネットワークの構造学習におけるスーパーストラクチャ抽出のための方法及びプログラム
CN108009437B (zh) * 2016-10-27 2022-11-22 中兴通讯股份有限公司 数据发布方法和装置及终端
US10826781B2 (en) * 2017-08-01 2020-11-03 Elsevier, Inc. Systems and methods for extracting structure from large, dense, and noisy networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6014004071; Jie Cheng, Russell Greiner, Jonathan Kelly, David Bell, Weiru Liu: 'Learning Bayesian networks from data: An information-theory based approach' Artificial Intelligence Vol.137, 2002, p.43-90 *
JPN6014004072; Anna Goldberg, Andrew Moore: 'Tractable Learning of Large Bayes Net Structures from Sparse Data' ICML '04 Proceedings of the twenty-first international conference on Machine learning , 20040704 *

Also Published As

Publication number Publication date
JPWO2011016281A1 (ja) 2013-01-10
WO2011016281A2 (ja) 2011-02-10

Similar Documents

Publication Publication Date Title
US11354365B1 (en) Using aggregate compatibility indices to identify query results for queries having qualitative search terms
JP7392668B2 (ja) データ処理方法および電子機器
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US7818303B2 (en) Web graph compression through scalable pattern mining
US8903824B2 (en) Vertex-proximity query processing
JP2021518024A (ja) 機械学習アルゴリズムのためのデータを生成する方法、システム
US20210271677A1 (en) Class specific query processing
JP2005276225A (ja) テーブルを使用したツリーの学習
JP5844824B2 (ja) Sparqlクエリ最適化方法
CN106599122B (zh) 一种基于垂直分解的并行频繁闭序列挖掘方法
CN101635001B (zh) 从数据库提取信息的方法和设备
Guyet et al. Incremental mining of frequent serial episodes considering multiple occurrences
JP5555238B2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
CN109492844B (zh) 业务策略的生成方法和装置
Bernard et al. Discovering customer journeys from evidence: a genetic approach inspired by process mining
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
Li et al. Optimizing ml inference queries under constraints
JP7037048B2 (ja) 探索プログラムおよび探索方法
KR20170088469A (ko) 동적 데이터 대상 이진 논리식 기반의 단계적 연관 규칙 추출 방법
JP6802109B2 (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
Rivier et al. Surrogate-assisted Bounding-Box approach for optimization problems with tunable objectives fidelity
JP2021092925A (ja) データ生成装置およびデータ生成方法
Hsu et al. Similarity search over personal process description graph
JP2009301557A (ja) 学習システム
Goel et al. FP-Growth Implementation Using Tries for Association Rule Mining

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A801

Effective date: 20120202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120228

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20120228

AA64 Notification of invalidation of claim of internal priority (with term)

Free format text: JAPANESE INTERMEDIATE CODE: A241764

Effective date: 20120409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130523

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140501

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140530

R150 Certificate of patent or registration of utility model

Ref document number: 5555238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees