Menu

ベイジアンネットワークのご紹介

Perhaps the most important aspect of a Bayesian networks is that they are direct representations of the world, not of reasoning processes. “Bayesian networks”, Judea Pearl[1]
“たぶんベイジアンネットワークの最も重要な特徴とは、それが世界を直接表現するものであり、推論手順を表現するものではないということである。”

はじめに

先日、ある方にベイジアンネットワークについて説明する機会がありました。どうやらご好評いただけたようなので今回はその内容に基づいて書こうと思います。

ベイジアンネットワークは1980年頃に人工知能の分野で生まれた技術で、マーケティング分野への応用[2]も行われています。例えば弊社が提唱するSocietas、すなわち人の価値観の類型化においても、ベイジアンネットワークは大きな役割を果たしています。

日本でもここ10年ぐらいで知られるようになり、いくつか入門書や解説書が発行されていますが、理解度や知名度は十分とは言えないようです。私個人が書籍や人から教わった気付きをご紹介することで、少しでもこの技術に関心をもっていただければと思っています。

定義および形式

ベイジアンネットワークは学術的にはグラフィカルモデルの一種で、確率変数がノード、ノード間の関係が矢線に対応する有向非循環グラフ(DAG)によって表わしたものです。下の図1のような形をしています。

[図1簡単なベイジアンネットワークの例]

078_nishio_08_2

ここでの確率変数とは、雨が降る/降らないのように2つ以上の状態を取る事象とそれらの起こりうる確率を対応づけたもので、基本的には図2のような表の形で表わされます。

[図2 昨夜の空模様の確率]

078_nishio_08_3

ノードをつなぐ矢線はアークやエッジ、リンクと呼ばれ(以下リンクに統一)、矢印の方向に因果関係があることを示します。(厳密には誤りですが、実用上そのように解釈することが多いです。)リンクの矢印側を子、反対側は親と呼ばれます。リンクがつながった確率変数には条件付き確率が割り当てられます。つまり親の状態によって子の確率が変わる様子が図3のように表わされます。

[図3 スプリンクラーと雨によって芝生はどうなるかの確率]

078_nishio_08_4

ベイジアンネットワークが意味するもの

全体として、ベイジアンネットワークは世界のある一部を確率変数の集まりとして切り出し抽象化したものであり、その世界についての知識を表現するものだと言えます。その知識とは、確率変数に対応する事象同士の因果関係の有無とその強さという風に解釈されます。

ベイジアンネットワークが知識表現として優れている点は、冒頭で引用したように世界に対する人間の自然な理解の仕方を表現できるということがあります。そして、知識表現といっても単なる静止した図解ではなく、事象に割り当てられた確率を変化させることで、推論と呼ばれるある種のシミュレーションを実行することも可能となります。

図1の例において説明すると、雨が降るか降らないかは通常五分五分なのですが、「雨が降ったことを知った→確率100%」と仮定すると、芝生がぬれている確率は高まり、一方スプリンクラーが作動していた確率は低く変化します。

[図4 推論のイメージ]

078_nishio_08_5

この確率は主観確率と呼ばれるもので、まだ知り得ていない情報に対する確信度合いを示します。対して、雨が降ったことを知ったというのは確定的な情報であり、証拠と呼ばれます。このようにベイジアンネットワークは複数の事象に対する事前の確信が新しい証拠によって変化する様子を表すことができるのですが、このはたらきがベイズ的、すなわち「ベイジアン」ネットワークと呼ばれるゆえんです。

ここにおいて、ベイジアンネットワークのリンクそのものではなく、リンクが無い部分、つまりお互いに関係ないこと(独立していると言います)を明示できることが重要になってきます。このことはおかしなことに聞こえますが、同時にあらゆることが影響し合うという状態ではシミュレーションの効率において不利であることは何となくお分かりいただけると思います。ベイジアンネットワークはさらに「有向分離」という特性を持ち、単なるリンクの有無より多くの「独立」を表現できるため、確率モデルとして優れた表現力と効率を持っているとされています。

[図5  条件付き独立、有向分離]

078_nishio_08_6

ベイジアンネットワークで何ができるか

ベイジアンネットワークは当初エキスパートシステムのような使い方をされました。医療や機械システムの専門家が自らの判断構造をベイジアンネットワークに表現することで、手元の証拠から何らかの判断を下すための支援ができるようになります。

ベイジアンネットワークの優れている別の面として、リンクの方向とは関係なく推論が行えることがあります。どのノードに証拠を与えても他のノードの状態を知ることができるため、原因から結果を予測することはもちろん、結果から原因を探ることも可能です。

その後コンピューターの進歩に伴い、大量の観測データと高速な計算ができるようになったため、大量のデータ間の関係を網羅的に探索し、あり得るベイジアンネットワークを見つける、ということが徐々に可能となってきました。これによって、非常に複雑なことがらを確率モデルに表わすことが可能となりました。

ただし、現在においては完全にコンピューター任せにはしないことが多く、前提知識などに基づいておおよその構造を人間が決定し、細かい部分の最適化や確率計算をコンピューターにやらせるというスタイルが主流です。

ベイジアンネットワークと○○の比較

ベイズ統計

ベイズというのは条件付き確率の公式を見つけたとされる人の名前です。後世、条件付き確率の公式を元にして主観確率という考え方が広まり、そこにバックグラウンドを持つため、共に「ベイズ/ベイジアン」の名前が付いています。ただベイジアンネットワークとベイズ統計にはあまり関係がないと言って良いでしょう。

マルコフネットワーク

ベイジアンネットワークのリンクから矢印を無くしたものがマルコフネットワークです。両者を合わせてグラフィカルモデルと呼ばれます。ベイジアンネットワークより表現力が弱いものの推論をする時の計算が容易になるという特徴があり、音声や画像処理の分野で用いられます。ベイジアンネットワークとマルコフネットワークの間にはある種の互換性があり、内部的にマルコフネットワークに変換してから推論を行うというソフトウェアが存在します。

ニューラルネットワーク

共に人工知能分野で生まれ、ネットワークという名前が付いていますが別物です。ベイジアンネットワークは知識表現であり、中身を理解することができるものですが、ニューラルネットワークの中身はブラックボックスで、理解はできません。

ナイーブベイズ

ナイーブは「ばからしいほど単純」という意味です。親が1つで子は複数ありお互いに独立している、という最も単純な形のベイジアンネットワークをナイーブベイズと呼びます。一時期スパムフィルタに使われたことで有名になりました。単純とはいえ馬鹿にできない分類性能を持つのですが、これもベイジアンネットワークというには単純すぎるということになります。多段の親子関係や、子同士の相互作用まで考慮するような複雑なモデルでこそ、ベイジアンネットワークの本領が発揮できます。

[図 スパムフィルタの構造]

078_nishio_08_7

パス解析、構造方程式モデリング、パス図

確率モデルをグラフで表現するというアイデアは1920年代に生まれ、パス解析と呼ばれました。ベイジアンネットワークもそれに続くものです。パス解析の方はその後観測データだけでなく、その裏にある潜在的な「因子」までを解析しそれらの因果関係をモデル化する手法へと発展し、自然科学や心理学、マーケティングサイエンスの研究分野で盛んに使われています。この手法は構造方程式モデリングと呼ばれます。

[図 構造方程式モデリングの結果:パス図]

078_nishio_08_8

心理学の分野では、主にYes/Noや5段階尺度で取られた調査票がデータとして用いられます。ベイジアンネットワークでもこうしたデータを取り込むことは可能なのですが、おそらく潜在変数(因子)を見つける仕組みがベイジアンネットワークの基本的な枠組みに含まれていないため、活用されていないのではないかと想像しています。

ここを補うためには他の手法、例えば主成分分析や因子分析、潜在クラス分析といった手法と組み合わせることが可能で、いくつか研究事例もあります。なお、Societasの構築においてはアンケート回答を主成分分析した結果を価値観成分と呼んで、ベイジアンネットワークに組み込んでいます。

ベイジアンネットワークについての誤解

ここでは私が勉強する上で何となく誤解していたこと2点をお話します。

ベイジアンネットワークの逐次学習

データからベイジアンネットワークを構築し、ノードの確率を決定することを「学習」と言います。そして、構築したベイジアンネットワークのあるノードに証拠を与えてそれ以外のノードの状態を計算することは「推論」と言います。

推論においては、複数の証拠を同時に与える必要はなく、徐々に新しい証拠を加えても同じ結果が得られますが、この時の途中経過を学習とは言いません。ベイジアンネットワークに与えた証拠は一時的にネットワークの状態を変えますが、この変化は恒久的なものではなく、いつでも元の状態に戻せます。過去のデータに基づいて構築したベイジアンネットワークを新しいデータによって逐次更新したいという状況はあると思いますが、これがサポートされたシステムを私は知りません。過去のデータに新しいデータを足して学習をやり直す、ということは可能です。

リンクの方向

リンクの矢印の向きは因果関係の向きだと言いましたが、これは実のところ正しくありません。説明しだすと長くなりますが、観測データだけから因果関係を決定することは不可能だとされており、データから学習するだけではリンクの方向を決められないこともあります。

逆に因果関係はこの向きだろうと考えていたとしても、リンクの向きを逆にすべきケースすらあります。これは1つの子がたくさんの親を持ってしまう場合に相当します。親がたくさんあるということは多数のデータの組み合わせの元で子に対応するデータの確率を考える(図3がどんどん複雑になるイメージ)ことになりますが、組み合わせが複雑になると学習に使うデータには見つからないという状況が生まれやすくなります。するといい加減な確率しか分からないということになってしまうため、親が多すぎる場合はリンクを逆向きにする方が使いやすいモデルを得られます。

おわりに

以上、ベイジアンネットワークについてご紹介させていただきました。マーケティング領域での応用がお伝えできませんでしたが、また機会があれば事例を取り上げたいと思います。

参考文献

[1]Bayesian networks; Judea Pearl, Stuart Russel
[2]Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference; Judea Pearl
[3]ベイジアンネットワーク概説; 繁桝 算男, 本村 陽一, 植野 真臣

※iNSIGHTBOXはサービスを終了いたしました。価値観での顧客セグメンテーション「Societas」は引き続きサービスを提供しております。

※記載されている内容は掲載当時のものであり、一部現状とは内容が異なる場合があります。ご了承ください。

PageTop
PageTop