徒然なる日々を送るソフトウェアデベロッパーの記録(2)

技術上思ったことや感じたことを気ままに記録していくブログです。さくらから移設しました。

「仕事ではじめる機械学習」を読んで

しばらくぶりの更新となります。
技術関連の記事は
TeqStock.tokyo の部屋
または
minosys - Qiita
に持って行ってしまったので、こちらに何を書くかしばらく考えていました。
HP に Amazon へのリンクを貼ろうと思ったら拒否されてしまったので、しばらくこちらで
読後感想を記述することにします。

というわけで第1回目です。(おそらく1か月に1回のペースの記事になると思います。)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
https://images-fe.ssl-images-amazon.com/images/I/51FAFJYvbsL._SL75_.jpg

機械学習」と銘打っていますが、あとがきにあるように、機械学習に限らず、
ビジネスでレポートを作ったり、現場で実際に使うための Tips をまとめた本に
なっています。

内容は第1部と第2部に分かれています。

第1部では

  • 何をインプットとし、何をアウトプットとするか
  • どういうときにどういうアルゴリズムを使うべきか: これは便利そう
  • 学習結果の評価
  • 学習リソースの集め方
  • 効果判定のための仮説検証

といったことについて詳細に記述されています。
私は統計・確率が弱いので、最後の仮説検証はだいぶ勉強になりました。
有意水準は通常 5% とされますが、1% や 0.5% で考えた方がよい場合がある
という記述は興味深かったです。

第2部は具体的なビジネスシーンから切り出した内容となります。

  • 映画推薦システムの構築
  • KickStarter プロジェクトの分析
  • Uplift Modeling

映画推薦システムは Factorization Machines (pytyon3 の fastFM パッケージ)
を使って MovieLens ライブラリから MCMC 法による学習および予測を
行っています。具体的なコードが記述されているため、1行1行確かめ
ながら進むことができます。
KickStarter の分析では非公開 API からの情報を Excel を使ってひも解いて
行きます。機械学習を使わなくてもここまで分析できるという例に
なっています。特定の技術がはやると何でもかんでもそれに結び付けよう
という風潮が出ることがありますが、そういう流れに流されないため
にも(?)既存の技術や解析手法でどこまでやれるのか検討することは
大事だなと思いました。
最後の Uplift Modeling は A/B テストに埋もれた情報をユーザ情報と
結びつけることにより引き出す手法の話題です。
単なる A/B テストでは有意な差が判定できない場合でも、特定のユーザ
層がどのような行動を取ったのかが明らかになっている場合、
Logistic 回帰を使って実験群、統制群の予測モデルの違いを知ることが
できます。この違いを例えば
\[
lift = 実験群予測モデルのコンバージョン率 / 統制群予測モデルのコンバージョン率
\]
という指標で表すことにするとテストデータに対する lift からどのユーザ
層に対してアピールするのかを推定することができます。さらに
テストデータをスコア順の降順に並べ、もっともスコアが小さくなる点の
lift と原点を結んだラインを base line と呼ぶことにすると
\[
AUUC = base line と lift で囲まれる面積
\]
が施策を評価する1つ指標と考えられます。
Uplift Modeling の例として、購買履歴のあるユーザに対し、男性向けメール
と女性向けメールのどちらを送付するのが効果的かという問題の解析が
挙げられています。

こうして見ると、データの解析・分析はビジネスのほんの一部で、

  • 何を収集するのか
  • 何をもってゴールとするのか
  • コストの見積もり
  • どのような仮説検証を行うのか
  • レポートのまとめ方

といったデータサイエンス以外の比重が大きいことが印象的でした。

なお、本書での「機械学習」はいわいる従来の機械学習が中心で、
Deep Learning などのニューラルネットワークは出てきませんので
ご注意を。