サイト内の現在位置

学会・研究成果発表

遺伝的因果探索アルゴリズム

DATE:2023.06.14
研究テーマ:エンゲージメント

こんにちは!
エンゲージメントやウェルビーイングを研究している山本です。

私たちの研究では、主に心理学の研究手法を使っているため、アンケートデータの統計分析を頻繁に使っています。各種検定や相関分析はもちろん、因子分析(FA)や構造方程式モデリング(SEM)くらいはいつも使っています。

しかし、これらの分析手法を使っても、分析できないことが1つだけありました。

それは、因果関係を見つけるということです。

理論的に予測した因果関係を、データを使ってチェックすること(因果推論)は、これまでもSEMでできました。しかし、データから因果関係を予測すること(因果探索)は、どうしてもできませんでした。

ところが、近年、因果探索が統計学的に行えるようになってきています。NECでは、「因果分析ソリューション」を提供していますし、PythonにはLiNGAMというパッケージで因果探索ができるようになっています。

早速、私達が所有していた24因子のアンケートデータに対して、因果探索を行ってみました。

その結果が、こちらです!

さっぱり分かりませんね!

これによって、私たちは「因果を発見できること」と「因果を解釈できること」は、別の問題であると気が付きました。

そこで、私たちは、この問題を「因果探索の解釈性問題」と名付け、解釈性を向上させる最適化アルゴリズムを考えてみることにしました!

解釈性を向上するには

因果探索の結果の解釈が難しいのは、因果関係が多すぎるからです。因果を表す矢印が複雑に絡みあってしまっていて、一目では理解できなくなってしまったのです。

これを解決するには、シンプルに因果関係の本数を減らせば良さそうです。一方、因果関係には、因果の強さを表す係数が付随しています。ということは、係数が小さい因果(弱い因果)を間引けば、本数を減らすことができると考えられますね。

実際に、弱い因果を省いてみました。

これぐらい因果関係が少なければ、解釈もできそうですね!

ところが、SEMを使って、データと因果モデルの一致度合い(適合度)をチェックしてみると、適合度はかなり低く、データを表す良いモデルとは言えないという結果でした…。

どうやら、シンプルに間引くだけでは、上手くいかないみたいです。

大量の因果関係の中から、最適な組合せを見つける必要があると思われます。

因果の組合せ最適化問題を解くには

組合せ最適化問題を解く方法の1つに、遺伝的アルゴリズム(Genetic Algorithm, GA)があります。

GAは、生物の進化を模倣したアルゴリズムで、進化を引き起こす遺伝子の突然変異をアルゴリズム化したものです。GAにおける遺伝子配列は、0と1で表現され「0=遺伝子が発現していない、1=遺伝子が発現している」と解釈されます。

GAを使うと、突然変異によって進化した次世代遺伝子配列の候補が得られます。しかし、全ての次世代候補が生き残れるわけではなく、ある生存条件を満たした遺伝子配列だけが次世代遺伝子として残ります。そして、生き残った遺伝子配列は、突然変異によってより進化した遺伝子配列の候補を生み出します。これを繰り返すことで、環境に最適化された遺伝子配列(0と1の組合せ)が得られることになります。

これによって、私たちは「因果関係の有無を遺伝子の発現の有無に読み換えれば、GAを使って因果を間引けるのでは?」という着想に至りました。

因果モデルを遺伝子配列に変換する

この着想を実現する第一歩は、「因果モデルを遺伝子配列に変換できる」ことです。これは、次のように考えることで、因果を間引くことができます。

まず、任意の手法によって得られた初期因果モデルの因果は、全て遺伝子1(=因果がある)に変換します。次に、遺伝子配列をGAで突然変異させます。すると、遺伝子は0か1しか選べないため、もともと1だった遺伝子が0になります。そして、遺伝子を因果に戻すと、進化した因果モデルはいくつかの因果が間引かれた因果モデルになります。

こうすることで、因果が間引かれた因果モデルを生成することができます。

最適化アルゴリズムを構成する

前節によって、次世代の因果モデルが得られたとしても、その因果モデルが最適解になっているとは限りません。そこで、GAを使った最適化アルゴリズムが必要になります。

最適化アルゴリズムは、データから指標を計算し、その指標を最大化(あるいは最小化)するようにデータを変形します。そして、変形されたデータで再び指標を計算するという、データ変形を繰り返していきます。指標が最適化の基準値に到達したら繰り返しを停止し、その時点での変形されたデータを最適解とします。

因果モデルの変形は、GAによって進化させることで可能でした。

一方で、アルゴリズムを構成するには、最適度合いを示す指標が必要です。これには、SEMによる因果推論の計算で得られる「適合度」を使うことにします。適合度は、データとモデルの一致度合いを示す指標で、様々な指標が考案されています。私たちは、心理学研究で良く用いられる適合度指標をいくつか組み合わせたスコアを用いることにしました。

これらをふまえると、最適化アルゴリズムは次のようになります。

上図の「選択・交叉・突然変異」が、次世代の遺伝子を発生させるGA計算部分になります。

遺伝的アルゴリズムを使った因果探索の方法なので、これを「遺伝的因果探索(Genetic Causal Discovery, GCD)」アルゴリズム(特許出願中)と呼んでいます。GCDは因果を間引く方法ですが、初期の因果モデルを全要素の組合せとすれば、因果探索を行うアルゴリズムになるため因果探索と呼んでいます。

遺伝的因果探索をしてみたら

GCDを用いて、最初の図の因果を間引いてみたところ、次のようになりました。

適合度は、因果を間引いたので少し下がってしまいましたが、シンプルに間引いた場合よりも良く、まずまずの数値になっていました。

この結果からは、使用したデータの範囲内で、根本原因であるA04を改善すると、A10やA07、C01を仲介して、C02が改善されると読み取れます。そして、C02の改善が、C05やC06の改善につながると言えそうですね!

まとめ

この記事では、以下を説明しました。

  • 因果分析では、因果が複雑すぎて解釈できない問題が起こりうる
  • 因果を遺伝子に見立てることで、遺伝的アルゴリズムを因果分析に適用できる
  • 因果推論と組み合わせることで、最適化アルゴリズムを構成できる

因果分析は、今も進化の途中なので、今後もアップデートがあればご紹介したいと思います!

なお、この研究は情報処理学会第85回全国大会(2023)で発表しました。

担当者紹介

研究テーマ:エンゲージメント
担当者:山本 純一 Ph.D.
コメント:科学と技術と経営学と心理学と組織開発の融合分野を研究しています。
連絡先:NECソリューションイノベータ株式会社 イノベーション推進本部