appricot’s diary

日々の勉強のメモ

Operationalizing Machine Learning: An Interview Study ==> 読後メモ

 

Paper

arxiv.org

 

Summary

  •  概要
    • 機械学習のモデルを運用するにあたり、必要なTipsを集めた論文。
    • 企業で機械学習を利用している19名へのインタビューを元に構成。
  • (4.3.4) 機械学習のコードの変更は、可能な限り小さく抑える
    • モデルに微修正が必要な場合、モデル自体のソースコードは変更せずに、Configファイル (JSON, YAML,..)のパラメータを変更のみで、モデルが微修正できるようにすると良い。
  • (4.4.4) 機械学習モデルの評価においては、プロダクト関連の指標に結び付けられるようにする。
    • 機械学習特有の指標ではなく、プロダクトにとってCriticalな指標(クリック率やChurn Rate)を、評価することが大事。
      • そのためにも、Product ManagerやBusiness Operatorとの緊密な連携が大事。
    • Business KPIを向上させることが大事。
      • ダメな例:Precision-Recall Curve(機械学習特有の指標)で良い結果がでたので、それを上司に報告。
      • 良い例:みんなが使っているBusiness側の指標(の改善幅)を上司に見せる。
    • 全てのProjectは、まず、Business側がどのような指標を意識しているかを理解するところから始まる。
  • (4.5.5) Keep it simple
    • 可能な限りSimpleなモデルやアルゴリズムに頼ることが重要。
    • ある金融業界のML Engineerの証言
      •  ハイパーパラメータのチューニングも、あまり凝りすぎず、単純なものがよい。ハイパーパラメータを限界まで最適化することで、過去データへの過学習が生じてしまうため。
      • Deep learningより、Tree-basedモデルを選ぶようにしている。そのほうが、Deploy後の維持が単純化できる。Deep-learningで同じことができる場合でも、あえてDeep-learningのモデルを実装するのは避ける場合がある。
    • 自動運転を扱う企業のML Managerの証言
      • 可能な限りNewural Networkを利用している。
      • (小さなモデルをいくつもつくらず)大きなモデルを少数つくるようにしている。それによって、依存関係を減らすことができる。
  • (5.1.1) 開発と本番環境の違い
    •  Jupyter notebookの利用については、証言がわかれた。Jupyter notebookの本番環境での利用は避けるべき・・という意見があったのに対し、「本番環境と開発環境の違いを少しでも小さくするために」あえて本番環境でJupyter notebookの利用を好む人も。

Impression

  • 個人的に最も共感したのは、(4.4.4)。
  • 実際の業務でも、機械学習の指標(例えば、Binary ClassifierのAUC)と、ビジネス側で利用されている指標(論文に挙げられているようなクリック率やChurn rate)に違いがあるケースは、多い。
  • モデル構築する人間が、いかに、ビジネス側の指標を理解したり、それに近い指標で機械学習モデルを評価・説明することが大事・・と痛感。