2021-11-01

「施策デザインのための機械学習入門」が素晴しい内容だった

読んだので感想を書きます。「手元のデータに当てはまりの良い予測モデルを本番適用してもビジネス的に良い結果が得られない」という現場で頻発する課題に対して明快なアプローチと手順を示しており、機械学習がワークするために必要な要素がクリアになりました。

施策デザインのための機械学習入門〜データ分析技術のビジネス活用における正しい考え方
技術評論社 (2021/7/30)
齋藤 優太 (著), 安井 翔太 (著), 株式会社ホクソエム (監修)
Kindle版/紙版両方あり

目次と構成

  • はじめに
  • 1章 機械学習実践のためのフレームワーク
  • 2章 機械学習実践のための基礎技術
  • 3章 Explicit Feedbackを用いた推薦システム構築の実践
  • 4章 Implicit Feedbackを用いた推薦システムの構築
  • 5章 因果効果を考慮したランキングシステムの構築
  • 付録A 演習問題

感想

著者はまず1章で機械学習の実践でありがちな2つのパターンを批判しています。
ひとつ目は予測を用いた施策は本来意思決定の問題であるはずなのに、予測の問題として解いてしまうという物。意思決定の性能で評価すべき問題を損失関数最小化の問題として解くことで誤った意思決定を導きます。ふたつ目は過去の施策の影響を受けたデータをナイーブに扱って新たな施策の評価を行なう物で、本来知りたい意思決定の性能の良さが推定できていません。

機械学習を用いた施策の開発過程において、意思決定の性能ではなく予測性能を追い求めてしまうのは現場でよくみられる姿なので1章から胃が痛くなります。ほとんどは意思決定の性能が評価できるデータが無いか集められないパターンだとは思いますが「損失が低いのだからビジネス的に良い結果が得られるはずだ」と予測精度のメトリクスの良さとビジネス的な良さを混同してしまう人もいます。これがやっかいなのは本番環境におけるA/Bテストで良い結果が得られなかったときにパラメータチューニングや特徴量エンジニアリングに目を向けてしまい、それ以前の問題である可能性を考えられなくなってしまう事です。AIベンチャーに相談をするとその予測に意味があるのかどうかをすっとばして予測モデルの実装の話が始まってしまうのも似た話でしょうか (私の経験上はそうです)。

著者はこの2つの落とし穴に対して解決策となるフレームワークを提示しています。
  1. KPIを設定する
  2. データの観測構造をモデル化する
  3. 解くべき問題を特定する
  4. 観測データのもを用いて問題を解く方法を考える
  5. 機械学習モデルを学習する
  6. 施策を導入する
このフレームワークの一連言語化が素晴らしいなと思いました。私は広告分野の人間なので広告分野におけるデータの観測構造由来のバイアスを除去する論文は目にしますが、このフレームワークはあらゆる分野で適用可能な一般化がなされています。
現実世界にはデータのノイズが大きい場合や環境の変化が激しい場合、目的変数に関係する特徴量が取得できない場合など、データや機械学習を活用すること自体が無謀な状況はいくらでもあります。このような現実において我々が心得ておくべきなのは、機械学習が機能する状況を整えることができなければ、機械学習を活用することが有効な場面であるか否かという情報すら得られないということです。
著者がこの部分に着目する理由も明快で次のように説明されています。
なお、巷に溢れている特徴量エンジニアリングやハイパーパラメータチューニングもしくは論文で議論されている最先端の深層学習手法などは、基本的に真の性能を経験性能で精度良く近似できるということを(しばしば暗黙の)前提としています。

(中略)

おおよそ機械学習という言葉から連想される技術は、機械学習の実践において下流に位置するステップに関するものだったのです。本書の焦点は、施策の性能につながる問題を機械学習に解かせる部分であり、解くべき問題が与えられた状態でその問題をいかにうまく解くかという部分ではありません。効果的な施策につなげるためには、精度追求に関してあれこれ試行錯誤するよりも前に、フレームワークとしてまとめた手順を上から順に漏れなくクリアしておく必要があるのです。

 2章は観測データを用いて意思決定の性能を推定する方法について解説しています。私はIPWやDoubly Robust推定量には馴染みがあったのですが「データが観測される確率の逆数をsample weightに仕込めばよい」と単なる暗記に近かった部分がしっかり式で丁寧に説明さていたので助かりました。知りたい真の損失関数と手元のデータを使ったときの損失関数の差を打ち消す手順がわかるので応用が効くようになるでしょう。

3章以降は著者の提案するフレームワークの実践になっています。私は特に5.3章のプラットフォーム全体で観測される目的変数を最大化するが興味深い設定でした。施策を実施したものの他の部分のKPIを悪化させたり、単なる需要の先食いになるのはよく聞く話です。

まとめ

機械学習の実践に取りくんでおり、特にビジネスKPIの改善に責任を持つ機械学習エンジニア*1にとって頼りになる内容である事は間違いないでしょう。どのような損失関数を採用すべきか正解は無く自分で考えるべきだと、ある所から先は切って捨てている所も好感を持ちました*2

1章で学習および性能評価がやりやすいデータを意識して普段から集めておく事をさらっと促していますが、意思決定方策のオフライン評価にはとても重要なことがわかります。参考文献に載っていたSpotify Researchの論文*3を読みましたが、オフライン評価のために一様ランダムに行動を選択したログを収集していました。

本書の焦点は機械学習がワークするための前提でしたが、特徴量エンジニアングやハイパーパラメータチューニングの記事と同じぐらいこれらの記事がインターネットに出てきてくれると嬉しいなと感じました。


*1: 与えられたデータセットで精度のスコアを上げるだけで良いという職責はあまり聞いたことがありません。

*2: 損失関数にビジネス設定を反映する話は「仕事ではじめる機械学習 第2版」に少し書きました。

*3: Mehrotra, Rishabh, et al. "Towards a fair marketplace: Counterfactual evaluation of the trade-off between relevance, fairness & satisfaction in recommendation systems." Proceedings of the 27th acm international conference on information and knowledge management. 2018.


このエントリーをはてなブックマークに追加