Sansan Builders Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

書評:『施策デザインのための機械学習入門』

こんにちは. DSOC 研究開発部の黒木裕鷹です. なんと,思いつきで始めたランニングが続いており,最初の1ヶ月は65kmほど走っていたようです! やはり,ばっちり形から入りかっこいいシューズとウェアを用意したのが効いたようです. フルマラソン目指して頑張りたいと思います🏃

さて,先日株式会社ホクソエムの高柳さんより,監修された本をご恵贈いただきました! ありがとうございます!!! いつもはネットワークの分析手法にまつわる連載をしていましたが,せっかくですので,今回は書籍のレビュー・紹介をしたいと思います.

gihyo.jp

紹介・どんな本か

「そのモデル(と付随する意思決定)、本当にビジネスに貢献できてる?」と常に問われるような本でした. 施策デザイン,つまりサービスに何らかのアルゴリズムを載せて介入することにおいて,踏んではならない地雷バイアスを避けるためのノウハウが系統立てて解説されています. アルゴリズムの中身や技術については深く立ち入られていませんが,取り組む問題をどのようにタスクに落とし込むかが主眼に置かれています.

他に類書を見ないチャレンジングなテーマですが,かなり直感的に平易に書かれており,私のような超ペーペーでも読み通すことができました. 一方で,技を習得したアスリートがより高みへと登るためのトレーニング本のように,読むだけでなく常に実践し続けなければ身につかないと思われる内容でもありました.

それでは,各章で扱われている内容について簡単に紹介していきます.

1章:機械学習実践のためのフレームワーク

一見有効そうな機械学習モデルを学習したつもりでも,意味が無いどころか全く逆効果なモデリングになってしまっている場合があります. はじめの1章では,3つのシンプルな例と共に,そのような誤ったモデリングの典型パターンが紹介されています. 例がごくごくシンプルであるがゆえに,読者は「同じような誤りを犯してしまっていないかな」「今取り組んでいるタスクだとどうなっているだろう」などと思いを巡らせることになるでしょう. かく言う私もその一人で,冷や汗をかき,焦りながら読まずにはいられませんでした. 「適当に綺麗なデータ作って先進的なアルゴリズム使っておけば良いでしょ.」そんな意識は簡単に粉砕されます.

続いて,これらをはじめとするモデリングの誤りを避けるため,おそらく一般的に用いることができるであろうフレームワークが導入されます. 本書の目次にもあるように,フレームワークは以下の6つの段階から成ります.

  1. KPI を設定する
  2. データの観測構造をモデル化する
  3. 解くべき問題を特定する
  4. 観測データのみを用いて問題を解く方法を考える
  5. 機械学習モデルを学習する
  6. 施策を導入する

それぞれのステップごとに,前述の誤り例ではどのようにすべきであったかが解説されます. ここでもそのシンプルさが故に,分析業務でこれらをしっかり実践することの難しさを想起せざるを得ませんでした. 各ステップの中でも,本書が重きを置いているのはステップ2~4で,個人的にも2→3,3→4のステップが難しいと感じました. もちろん,ステップ5では様々な分析手法に精通している必要がありますが,本書のスコープ外であると言って良いでしょう.

2章以降では,フレームワークにそった解説と実践が展開されます.

2章:機械学習実践のための基礎技術

本章では,対象をハッキリ定め"正確な"予測を行いたいケース意思決定を直接モデリングしたいケースに焦点を当て,フレームワークに沿った思考プロセスが詳細に解説されます. ここでも扱う問題はシンプルですが,1章の前置きがあったからこそ2. データの観測構造をモデル化する3. 解くべき問題を特定するにハッキリと意識を向けながら読み進めることができ,能動的に取り組める展開になっています.

事例を通して「綺麗に整理したデータ全部でとりあえず交差検証しておく」が通じないことが良く分かります.

また,2章後半では OpenBandit を用いた実装例が展開されます. OpenBandit は著者の斎藤さんが共同創業された株式会社半熟仮想と,株式会社ZOZOが開発されたライブラリです. 私もプレスリリースを見て気になっていたため,作者自身による実装例の紹介は非常に参考になりました.

1章ではデータ分析の難しさを改めて突きつけられ冷や汗ダラダラでしたが,続く2章はサクサクと能動的に読み進めることができました. フレームワークと共に,日頃の分析業務でも意識的に実践することによって,普遍的な実力を身につけられる実感が得られました(ここで油断してはダメで,日々精進しなければ意味はないでしょう).

3章:Explicit Feedback を用いた推薦システムの構築の実践

Explicit Feedback とは,食べログのレビューのように,明示的な評価値がフィードバックとして与えられることです. Explicit Feedback が得られる状況のもと,推薦システムの例に沿ってフレームワークの実践が紹介されます. 扱うタスクとしてはガラッと変わることになりますが,最も基本的なアルゴリズムとしてMF (Matrix Factorization) の導入はあるため,推薦に馴染みのない方でも読み進めることができるでしょう.

4章:Implicit Feedback を用いたランキングシステム構築の実践

多くのサービスでは,レビューの星のような Explicit Feedback が得られることは少ないでしょう. そこで,クリックスルーや閲覧のような弱いシグナル,Implicit Feedback が積極的に活用されることになります.

しかし,どのようにImplicit Feedbackを作成すれば良いでしょうか. たとえば提示されたランキングのうち,前述のクリックスルーがあったものを正例,そうでないものを負例とすることが考えられます. しかし,やはりここでもフレームワークに則りながらよく知られているバイアスを意識し,地雷を踏まないタスク設計をすることが重要になってきます. この章では,以下の3つのバイアスが紹介され,これらを避けるためのタスク設計がフレームワークに沿って解説されています.

  • ポジションバイアス
  • 選択バイアス
  • クリックノイズ

5章:因果効果を考慮したランキングシステムの構築

5章では,これまで紹介されてきた推薦やランキングのタスクが,サービスの一部分に介入するアルゴリズムである,ということを意識したモデリング方策が模索されています. もう少し具体的には,購買などの KPI に至るルートは様々存在する中で,ごく一部(たとえば検索アルゴリズムや推薦システム)に介入することが全体にどのような影響を及ぼすか,ということです. これだけ聞くとかなり難しいタスク設計に聞こえますが,ここでもフレームワークに則ることで,効果的なモデリングが行えることを主張する内容になっています. これまで様々な例で実践されてきたフレームワークが,チャレンジングなタスクに対しても鮮やかに展開されていくのを読んでいて,非常にワクワクしました.

誰が読むと良さそうか

ビジネスの現場に身を置く,一通りの分析業務に覚えのあるデータサイエンティスト・機械学習エンジニアが読むと非常に効果的だと思いました. 冒頭でも触れましたが,本書は実践の流れをフレーム化し,再現性をもって効果的なモデリングをし続けるための本です. そのため簡単に読み通すだけでなく,日々取り組む問題をフレームに落として考え続けなければ決して身につかないと感じました. 実際に,本書のまえがきにも次のような一節があります.

読み進めるにあたってはまず、本書の内容は正解ではなくあくまで機械学習の実践において重要な手順を理解し、意識化し、身につけるための一例に過ぎないことを理解しておいてください。

また,具体的な分析手法やアルゴリズムの解説には主眼が置かれていないため,別で知識を蓄えておく必要があるでしょう. 具体的には,基本的な統計学,パターン認識,kaggle的予測タスクの裁き方,因果推論,推薦・ランキングシステムなどについてです. これらについて予めインプットしておくことで,分かりやすく直感的な表現の裏にはどのような背景がありそうか,触れられていない他の状況ではどうするべきか,などが考えられ,より能動的に学習する助けとなりそうです.

とはいえ,例も多く非常に分かりやすく書かれているため,入門を終えた程度の方も読み通すことができると思いました. データ分析のビジネス実践がどれほど楽しそうかが分かり,学習へのモチベーションも高まりそうです.

感想

結論,めちゃくちゃオススメしたいです.

私は「ヤベぇ,俺全然できてないわ.地雷踏みまくってるわ」と,冷や汗をかきながら読み始めた本書でしたが,1章でスイッチを押され,その後の章は自分の場合ならどうするかを考えるのが楽しく,気付いたら読み終えていました. 特に5章では,本当に目新しい(少なくとも私は全く知らなかった)かつ多くのサービス改善に直結する内容が扱われており,機会があれば即実践してみたいです!

フレームワークは6ステップから成っていましたが,特に「解くべき問題を確率のことばで定式化し,その後標本のことばで解く方法を考える」作業がこれだけ多くの例と共に紹介されている書籍は他に無いのではないでしょうか. サービスに深く関わるデータサイエンティスト達の必読書になると感じました!!

© Sansan, Inc.