未定の部屋

主にデータサイエンス関係の記事を書きます

『機械学習を解釈する技術』を読みました

※2022年6月に書いた記事を再投稿したものになります

こんにちは、今回は『機械学習を解釈する技術』という本を読んだので、簡単な感想+αを残しておきたいと思います。

機械学習を解釈する技術』の感想

昨年の夏に出版された本で、発売当時からなんとなく気になっていたのですがなかなか読む時間が作れず、今年のGWに10連休を生成して一気に読みました。

個人的な感覚として、この本のテーマにもなっている機械学習の解釈性は近年話題になってきている印象があります。
書籍冒頭の内容とも被りますが、データサイエンスが発展してきてデータを使って予測するアプローチも多様化・複雑化してきました。機械学習を用いた手法はメカニズムが複雑なものが多く、予測精度は高くてもモデルの結果を解釈しにくいという難点があります。実務でも機械学習を使ったことがありますが、実際にモデル結果を踏まえてアクションにつなげるためには解釈が重要になることも多く、「なぜそういう結果なのか」「予測のためにどの変数(特徴量)が大切なのか」といったことが分かると納得感のある(≒価値のある)分析になるなという印象があります。機械学習の解釈性は、より複雑な手法を実用に応用するための架け橋になるようなトピックなのではないかと勝手に期待しています。

この本は機械学習を解釈する技術を各章で一つずつ紹介しており、各章ではその手法の基本コンセプト・アルゴリズム・実際のデータを用いた説明が書かれています。各章が同じ構成になっているので読みやすく、コードや図が豊富で説明が丁寧なので理解しやすかったです。全体を通してストレスなく読み進められました。

紹介されている解釈の技術は下記の4つでした。

  • PFI(Permutation Feature Importance):予測モデルにとってどの特徴量が重要かを知る
  • PD(Pertial Dependence):特徴量と予測値の平均的な関係性を見る
  • ICE(Indivisual Conditional Expectation):個別のデータごとに特徴量と予測値の関係を見る
  • SHAP(Shapley Additive Explanations):予測値が出された理由を知る 集計などで粒度を変えることで個別データにも全体のデータにも適用できる

PFI→PD→ICEの順でマクロ(モデル全体の概要を知りたい)→ミクロ(各データごとの解釈をしたい)な解釈になっており、必要に応じて使い分けることができます。また、SHAPは個別データにも全体データにも適用できるので、ミクロ・マクロの両方に対応しています。これらの技術についてロジックやコードでの説明があり、上記の解釈がどのようにして可能なのかが分かるようになっていました。この4つの中でSHAPのロジックは他トピックに比べて少し難しかったので、もう一度見直したいなという気持ちがあります。

結果の解釈と因果関係

この本を読む中で個人的に気になったのは因果関係として解釈していいのか?という話です。例えば、PFIを用いるとモデルに使用した特徴量の重要度が出てきますが、これで重要な特徴量だからといってモデルの予測値を大きく上昇・下降させるとは限らないというのは解釈の難しい一面ですね。PDから特徴量と予測値の関係を出すことができますが、ここでも因果関係とみなすには注意が必要で、本の中ではモデルが特徴量と目的変数の関係を正しく学習していないと因果関係と解釈するのは危険と書かれていました。

最近因果推論の勉強をしているのもあって、このあたりの話は本当に難しいなあと感じています。
因果推論の勉強をしていると統計的に因果関係を把握するためには結構制約の強い仮定を置いているなという印象があり、完全にデータから統計的・数理的な処理を行うだけで因果関係を明らかにするのは実務では基本的に困難なのでは...?と思っています。いわゆるデータ分析の範囲ですべてを明らかにするというより、分析結果にドメイン知識や現場の人が持っている感覚といったものを組み合わせて解釈を深めていくのが(少なくとも自分が経験してきたような)実務では現実的な気がしています。今の時点では、どれくらいデータが豊富にそろっているかによって、分析結果とドメイン知識・感覚のバランスをうまく変えていくのがデータ分析の一つの落としどころかな、、と思っています。この「どれくらいデータが豊富にそろっているか」がキーで、データ量・変数の種類・時系列的な粒度(月次・週次・日次)・データの作られ方(アンケート、何かのログ、パネルなど...)などの様々な観点で「豊富かどうか」がデータ分析からどこまで強い情報が得られるかにかかってくると思います。分析手法の理解だけでなく、材料となるデータへの理解やドメイン知識への理解を踏まえて、総合的に解釈を深めていくのが大事なのではないでしょうか。
総合的に解釈というと聞こえはいいですが、分析結果とドメイン知識を組み合わせるときに示唆を恣意的に捻じ曲げることにならないかの判断は特に注意すべきだと思います。例えば分析結果と仮説や業界での常識が一致しないとき、データや分析手法側が不十分なのか実際に新しい示唆なのかを判断するのは非常に難しいです1。ビジネスの文脈だとどうしても都合のいい方に結論を持って行ってしまう傾向がありますが、分析者側としては元データや分析手法の特徴を深く理解したうえで、その示唆がなぜ出てきたのか、どれくらい確からしいのかをしっかりと説明できることが理想だと思います。解釈をしっかりと深めた状態でプロジェクトにかかわる色々な立場の人と議論を重ね、最終的な結論に到達する、という流れがきれいにできると分析者としては幸せだろうなという気がします。

おわりに

というわけで感想でした!(後半は本の内容と直接関係なくなってしましましたが...)
分析の解釈と予測という軸は、データ分析が盛んなうちはなくならない問題なのではないでしょうか。データサイエンティスト歴も1年を超え、実務をしていく中で少しずつ見えるものが変わってきましたが、技術のインプットと実務でのアウトプットを意識しながら引き続きやっていく所存です。

ではでは。


  1. 分析結果と仮説が一致するときもまた注意が必要だと思っていて、すぐ鵜呑みにせずに本当に妥当な結果なのかを考えるべきだと思います