依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?

  • HOME
  • 依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?

実務家の思考や判断の背景には、現場で培ってきた経験や勘があります。そのため、「売上が急に伸びた/落ちた」のような通常とは違った事象が起こったときの原因分析や対策は、知識の習得や経験を積むほどにより良いものになる傾向にあると言えるでしょう。

ベイジアンネットワークは、分析や意思決定に使われる「人の知見」とデータを融合させて要因分析を行うことができるモデリング手法です。今回は、ベイジアンネットワークの特徴や実際の分析手法についてご紹介します。

ベイジアンネットワークとは?

ベイジアンネットワークは、様々な事象間の因果関係(厳密には確率的な依存関係)をグラフ構造で表現するモデリング手法の一つで、故障診断や気象予測、医療的意思決定支援、マーケティング、レコメンドシステムなど様々な分野で利用や研究が行われています。

ベイジアンネットワークは、18世紀の数学者トーマス=ベイズが発見したベイズの定理を基本としています。ベイズの定理は二つの事象について直接の依存関係を表していますが、これを確率的に依存している複数の事象のネットワークへと拡張したのがベイジアンネットワークです。

  • ベイズの定理をネットワークに拡張
  • 事象(確率変数)をノードで、依存関係を矢印で表す
  • 親ノードとの依存関係の大きさを条件付き確率で定義する
  • 非循環有向グラフ

『原因』『病気の有無』『症状』の3層構造のベイジアンネットワークイメージ

ベイジアンネットワークイメージ

■ベイズの定理
レントゲン検査が陽性の場合の『肺がん』にかかる確率(事後確率)はベイズの定理で次のように計算できます。 ベイズ式 条件付き確率は、確率的な依存を定量的に表現するものです。

ベイジアンネットワークには以下のような特徴があります。

<構造の理解が容易>
ベイジアンネットワークは、変数間の定性的な依存関係を矢印で表現します。人間が理解しやすい表現形式のため、直接的・間接的に影響を与える要因が直感的に把握でき、これまで気づいてなかった要因に新たに気付くこともあります。

<答えを確率で表現できる>
ベイジアンネットワークは、変数間の定量的な関係を条件付き確率で表し、既知の情報(エビデンス)を元に未知の知りたい答えを確率計算によって推論します。 例えば下図のベイジアンネットワークを使用して、年齢40歳以上かつプレミアム会員というエビデンスを基に、その人が有機野菜を購入する頻度、海外旅行に出かける頻度を推論することができます。

プレミアムカード会員モデルの例

プレミアムカード会員モデルの例

Yes or No のように一つの答えだけを示すのではなく、Yes になる確率は〇〇%、No になる確率は□□%という具合に、人が判断しやすい形で答えを示します。そのため、同じ条件でも異なる結果が出るような問題を自然に扱うことができます。

<エビデンスが不足していても推論・予測を行える>
ニューラルネットワークなどと異なり、ベイジアンネットワークは予測時に全ての説明変数に観測値を入力する必要はありません。エビデンスが不足していても、その範囲で分かる答えを推論・予測します。

<多対多かつ双方向の要因分析ができる>
ベイジアンネットワークは、複数の既知の要因の組合せから、複数の未知の結果を同時に推論することができます。また、矢印の順方向だけでなく、逆方向にも推論が行えるため、逆に既知の結果から未知の複数要因を推論することも可能です。 要因Aが Yes で要因Bが No のときだけ、結果Xと結果Yの値がどちらも大幅に上昇する、というような答えを導き出すことができます。「モデルの利用用途が限定されない」というのはベイジアンネットワークの大きな特徴と言えるでしょう。

ベイジアンネットワークの活用事例

ベイジアンネットワークは実際にどのような分野でどのように活用されているのでしょうか。

以下、代表的なものをまとめました。

<マーケティング分野>

顧客の属性情報や、様々な商品に対する興味などに関するアンケートデータから、商品への興味の強さと顧客のライフスタイル、属性情報などの関係性をモデル化することができます。 販売促進のためのキャンペーンを打つ際に、対象となる商品へ興味を持つための因子は何か、どのアンケート項目への回答が商品への反応のキーポイントとなっているのかを分析することができます。

<製造分野>

生産機器のセンサーデータと業務日報のデータを組み合わせて、不具合発生とその要因の関係性をモデル化することができます。 データからベイジアンネットワークの構造を推定させることもできますが、その結果にさらに人間の知見を加味して、データ上は相関があるため矢印がつながったが実際の構造は無関係な擬似相関なので矢印を繋ぎ変えるというような操作を加えることも可能です。 出来上がったベイジアンネットワークを分析することで、不具合なく生産を続けるためのボトルネックはどこか、処理方法を変えた場合に別のボトルネックが発生しないかという改善案の検討を行うことができます。

事例:ベイジアンネットワークによるプラント現場の不具合原因・対策の推論方法

<医療/ヘルスケア分野>

カルテ、バイタルデータ、生活習慣のアンケートなどから、疾病のリスクと他の要因との関係をモデル化することができます。 疾病リスクには、生活習慣がバイタルデータに影響を与え、バイタルデータの変化が疾病のリスクに影響を与えるというような階層構造が存在することが想定されますが、ベイジアンネットワークではこのような多段階の階層構造を自然に取り込むことができます。 作成したモデルで確率推論をすることで患者さんに対する疾病リスクの推定を行うことができるほか、ネットワーク構造から特定の疾病へのリスクを高める因子を発見して、リスク回避策の検討を行うことができます。

ベイジアンネットワークでは、単に何かの項目の発生確率を予測するモデルができるだけではなく、人間に解釈しやすい形でデータ構造の推定結果が得られるという点がポイントです。 人間に分かりやすいシンプルな構造で推定結果が与えられるため、要因の分析がしやすいですし、構造自体に人間の知見を追加して修正していくことも他の機械学習モデルと比較して容易です。 「何が起きているのか分からないような複雑な課題をとにかく分析したい」「課題に対して、影響力の大きい要因を見つけたい」「どの要因を変えれば、結果がどの程度良くなるのか把握したい」など、幅広い場面で使用できる分析手法です。

ベイジアンネットワークの構築および分析例

ここからは、具体的な構築方法と分析の流れについて、ベイジアンネットワークのモデル構築から確率推論までを強力にサポートするソフトウェア「BayoLinkS」を使う場合を例にご紹介します。

化粧品アンケート分析

発売前の基礎化粧品 A、B、C があります。マーケティング戦略の検証を目的として、20~60代の女性1万人に商品モニターになってもらい、モニター終了後に次のようなアンケートをとりました。

アンケートの設問と回答の選択肢

アンケートの設問と回答の選択肢

なお、アンケートの設問の間にある因果関係は下図のようになっているものとします。

因果の向き

因果の向き

今回の例では、化粧品アンケートデータからベイジアンネットワークを構築し、様々なシナリオで確率推論を行うことにより、各商品を買う人の特徴を分析します。

手順1:データの確認

どのような形で値が入っているのか確認し、必要に応じて集計やグラフ化を行います。ベイジアンネットワークを構築する前に、分析対象のデータを確認しておきましょう。

分析対象のデータ

データは、グラフにすると分かりやすくなります。例えば肌の「お悩み」は「年齢」によって変わりそうですが、具体的な傾向はどうなのでしょうか。

グラフ

グラフにしてみると、「ニキビ」や「毛穴」は20代の割合が多く、「しわ」や「肌のくすみ」は30代以上の割合が多いことが分かります。

手順2:モデルの構築

学習データから構築したベイジアンネットワーク(モデル)を確認します。今回は、学習データ “基礎化粧品” から構造学習により構築したベイジアンネットワークを学習に使いましょう。

手順3:確率推論の実行

モデルに表現されている事象ノードの継がりに不自然なものがないかを確認したら(ここが専門家の知見を活かせるポイントでもあります)モデル上でエビデンスを設定し、確率推論を実行します。BayoLinkSの場合、以下の4つの手順で確率推論を実行します。

  1. 推論モニターを表示
  2. 確率推論を実行し、事前確率を表示させる(推論実行前は一様分布になっている)
  3. 推論モニターの緑の部分を右クリックし、エビデンスを設定する
  4. 確率推論を実行し、事後確率を計算する

例えば「化粧品Aを購入する人のお悩みは何か?」という問いへの確率推論を得たい場合、『「化粧品Aを購入する?」=はい』というエビデンスを設定し推論を実行すると、「お悩み」の確率値は以下のように変化します。

しわ ニキビ 毛穴 肌のくすみ
事前確率 0.307 0.147 0.230 0.319
事後確率 0.308 0.078 0.158 0.457

アンケートに答えてくれた人全体の悩みの分布(事前確率)と比べて、化粧品Aを購入する人の悩みの分布(事後確率)は「肌のくすみ」が上がっています。このことから、化粧品Aを購入する人のお悩みは「肌のくすみをなくして美白にしたい」という確率推論が得られるといった具合です。 ベイジアンネットワークの特徴はこのように「事前確率」との相対的な比較による判断ができるところで、例えばこの場合にはアンケートを受けてくれた人全体の悩みの「偏り」にも気づくことが可能です。この例では構造学習によってネットワークの構造を自動で導きました(自動構築) が、ユーザーの経験や勘による仮説を使って構造を作成することももちろん可能です。

おわりに

ベイジアンネットワークは、「現場のベテランの知見からAIを構築したい」というニーズがある場合に最適なモデリングと言えるでしょう。 特に人にアプローチをする「マーケティング」や「ブランディング」の分析では親和性が高くよく使われてきました。 最近は生産プロセスなどの製造系の分野でも、データとベテランの知見を組み合わせて要因分析を行うための試みが盛んです。

ベイジアンネットワークを各種の問題に適用するためには、適切なネットワークモデルを構築する必要がありますが、従来のソフトウェアは確率推論部分の実装が中心で、利用者がベイジアンネットワークを構築するのは容易ではないという問題がありました。

当社が提供している「BayoLinkS」は、確率推論機能の充実だけでなくベイジアンネットワークの自動構築やGUI上での簡単なモデル構築もサポートしており、直感的かつ高精度な分析を行うことができる構築・分析支援システムとして好評を頂いております。 データ分析、データ分析に関わるシステムの開発、データサイエンス教育など、様々な形でご支援が可能ですので、ぜひお気軽にご相談ください。

BayoLinkS の無料体験ができるセミナーも定期的に開催しております。ご興味をお持ちいただいた方には、併せて無料トライアル版も配布中です。お手元のデータで試してみたいという方は是非ともご活用ください。