Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LT.22 機械学習におけるPDCAを回せる環境構築の話

270 views

Published on

※ 株式会社GIGでは毎月社内勉強会を実施しています

GIG inc.
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.

テクノロジーとクリエイティブでセカイをより良くする。小さなチームからスタートした多くの先人達が、世界をより豊かなモノに変革してきました。通信、UX、デバイス、技術の変化と共に世界はまだまだ加速度的に変わります。

Good is good. いいものはいい。GIGは、関わったユーザーやクライアントが前に進める"きっかけ"をつくりつづけます。

■ お問い合せ
https://giginc.co.jp/contact/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

LT.22 機械学習におけるPDCAを回せる環境構築の話

  1. 1. 機械学習における PDCA を回せる環境構築の話 坂本 昂輝 1
  2. 2. 自己紹介 ● 氏名:坂本 昂輝 ● 経歴:阪大の基礎工/情報院 卒。2018年にGIGに入社し、 メディアサイト制作のバック エンドを担当。2019年から は自社サービスWorkshipの レコメンドエンジンやスコア リングシステムの開発、およ びデータ分析業務に従事して いる。 ● 趣味:ゲーム(FPS)、筋ト レ(週3) 2
  3. 3. 目次 ● プレゼンの目的と対象者 ○ 目的 ■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有 ■ 社内の方々へ、仕事内容の共有 ○ 対象者 ■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方 ■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方 ● Workship ○ 概要 ○ スコアリング ● 機械学習基盤 ○ 最初の全体構成と PDCA ■ Google Cloud Functions ○ 改善後の全体構成と PDCA ■ アノテーションシステム ■ Docker 本番運用 ■ スコアリング API ● データ分析基盤 ○ KPI 確認用シート ○ オンライン分析 Jupyter Notebook ○ データ分析の PDCA 3
  4. 4. 目次 ● プレゼンの目的と対象者 ○ 目的 ■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有 ■ 社内の方々へ、仕事内容の共有 ○ 対象者 ■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方 ■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方 ● Workship ○ 概要 ○ スコアリング ● 機械学習基盤 ○ 最初の全体構成と PDCA ■ Google Cloud Functions ○ 改善後の全体構成と PDCA ■ アノテーションシステム ■ Docker 本番運用 ■ スコアリング API ● データ分析基盤 ○ KPI 確認用シート ○ オンライン分析 Jupyter Notebook ○ データ分析の PDCA 4
  5. 5. 目次 ● プレゼンの目的と対象者 ○ 目的 ■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有 ■ 社内の方々へ、仕事内容の共有 ○ 対象者 ■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方 ■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方 ● Workship ○ 概要 ○ スコアリング ● 機械学習基盤 ○ 最初の全体構成と PDCA ■ Google Cloud Functions ○ 改善後の全体構成と PDCA ■ アノテーションシステム ■ Docker 本番運用 ■ スコアリング API ● データ分析基盤 ○ KPI 確認用シート ○ オンライン分析 Jupyter Notebook ○ データ分析の PDCA 5
  6. 6. ● プロジェクトとフリーランス のマッチングサービス ○ 法人側は、プロジェクトに適切な フリーランスに「気になる」 ○ フリーランス側は、興味を持った 求人に「気になる」 ○ お互いに気になるをした時をマッ チングと呼称 ● 判断材料 ○ 法人側:フリーランスのプロフィ ール、スコアなど ○ フリーランス側:求人内容、会社 情報など ● 機械学習の活用場所 ○ フリーランスのスコアリング ○ 求人やフリーランスのレコメンド Workship の概要 6
  7. 7. スコアリング ● プロフィールやユーザ行動情報等をもとに、フリーランスを点数化 ● これまでのアプローチ ○ プロフィールの各情報に対して点数を付与し、その合計をスコアとする ■ 離散的で差がつかない ○ プロフィールの各情報に対して関数を適用し、その合計をスコアとする ■ スコアの分布の広がりを調整しにくい ■ 評価できない ■ 質ではなく、量でしか判断できない ● 現在のアプローチ ○ 機械学習でスコアを予測する ■ 単純な関数ではない ■ 例1:文章量で考えた場合、多すぎても少なすぎてもダメ ■ 例2:職業に依って重要なスキルは変化する ● 問題点 ○ 最初はデータがない ■ 採用のプロにヒアリングしながら、プロフィールの評価データを作成する必要 7
  8. 8. 目次 ● プレゼンの目的と対象者 ○ 目的 ■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有 ■ 社内の方々へ、仕事内容の共有 ○ 対象者 ■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方 ■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方 ● Workship ○ 概要 ○ スコアリング ● 機械学習基盤 ○ 最初の全体構成と PDCA ■ Google Cloud Functions ○ 改善後の全体構成と PDCA ■ アノテーションシステム ■ Docker 本番運用 ■ スコアリング API ● データ分析基盤 ○ KPI 確認用シート ○ オンライン分析 Jupyter Notebook ○ データ分析の PDCA 8
  9. 9. 最初の全体構成 9 Bigquery Workship Google Cloud Functions Google Cloud Storage fluentd 管理者がサイクルに入っており、 管理者がモデル改善をしない限り モデルが更新されない 管理者 データ送出 データ送出管理 訓練データ 作成&モデ ル改善 フリーラン スデータを csvでダウ ンロード デプロイ APIコール 評価結果を返却
  10. 10. Google Cloud Functions ● GCP のサーバレスコンピューティングサービス ● メリット ○ 対象言語で関数を記述すると、イベントを起点に実行してくれる ○ 対象言語 ■ Go 1.1 ■ Node.js 6, 8, 10 ■ Python 3.7 ● 問題 ○ 容量が少ない (512MB) ■ 文章を精査するためのビルド済み解析器を複数置くことができない ■ 高度な辞書を置くことができない ● 解決策 ○ Google NLP (Natural Language Processing) との連携 ■ 高い (月5万) 10
  11. 11. 最初の PDCA ● 目標:指標○○を××以下にする ● 前作業:Bigquery からユーザデータを csv 形式でダウンロードし、スプレ ッドシートで開いてアノテーション ○ 非常に見にくいので、Workship 上でプロフィールを開いて確認 ■ プロフィールが更新されると誤っ た点数をつけてしまうリスク ○ アノテーションの際、どのような点に 着目して点数をつけたかをメモ ■ 特徴ベクトル構築の参考にする 11 aa Plan 前作業のメモを 参考に、特徴量 の追加計画 Do 特徴量の追加、 パラメータチュ ーニング Check 指標○○を手作業 で確認 Action 改善されていたら コード&モデルデ プロイ
  12. 12. 改善後の全体構成 1212 Bigquery Workship fluentd 管理者 管理者 アノテーション 自動でサイクルを回しながら、 管理者は外から変更を加える データ送出 データ送出管理 デプロイ APIコール 評価結果を返却 訓練データ をコードか らダウンロ ード 特徴量選択 学習バッチ
  13. 13. アノテーションシステム ● データを効率よく作成するシステム ● 実現したこと ○ ブラウザからフリーランスのプロフィールを 確認 ○ 現在のモデルによる予測スコアが表示され、 それを参考にした評価 ○ 評価の判断基準に関するコメント ○ 評価の方法を共有すれば、誰でもアノテーシ ョンすることが可能 13
  14. 14. Docker 本番運用 ● 1台の物理サーバ上にコンテナを展開 ● Docker で実現している機能 ○ Jupyter Notebook オンラインデータ分析 ■ Jupyter Notebook を用いたデータ分析の結果を誰でも閲覧可能 ○ スコアリング API ■ 全フリーランスのスコアを返却 ○ アノテーション用スコアリング API ■ 1フリーランスのスコアを返却 ○ 学習バッチ ■ 1日1回、モデルを自動更新 ● 注意点 ○ 分析、スコアリングAPI、学習バッチなど、どれもお客様 に対してクリティカルな影響を与えるものではなく、 また”現状では”技術負債になりかねないため、 オーケストレーションツールは導入していない 14
  15. 15. papermill ● Jupyter Notebook (.ipynb) を CUI から実行可能とするツール ● cron と組み合わせることで Jupyter Notebook のバッチを作成可能 ○ .ipynb から .py に変換する手間を省略 ○ 1日毎にモデル学習を自動実行 ● 導入方法 ● 使い方 ● 重要な点 ○ 実行結果(モデルの評価結果を含む) result.ipynb をオンラインで確認可能 ○ -p で引数を渡すことが可能なので、これを応用すればバッチ学習時には実行したくないコー ドを Notebook 内に置いておくことが可能 15 $ pip install papermill $ papermill model_training.ipynb result.ipynb -p args False
  16. 16. 改善後の PDCA ● 目標:指標○○を××以下にする ● 前作業:アノテーションシステムにアクセスし、アノテーション ○ ブラウザでプロフィールを確認かつ点数を付与することが可能 ○ 各訓練データにコメントを付与 16 aa Plan 前作業のメモを 参考に、特徴量 の追加計画 Do 特徴量の追加、 コードデプロイ Check 自動アウトプット された結果にアク セスして確認 Action 改善されていなか ったらモデルロー ルバック
  17. 17. PDCA の比較 17 aa Plan 前作業のメモを 参考に、特徴量 の追加計画 Do 特徴量の追加、 コードデプロイ Check 自動アウトプット された結果にアク セスして確認 Action 改善されていなか ったらモデルロー ルバック aa Plan 前作業のメモを 参考に、特徴量 の追加計画 Do 特徴量の追加、 パラメータチュ ーニング Check 指標○○を手作業 で確認 Action 改善されていたら コード&モデルデ プロイ 改善前 改善後
  18. 18. 目次 ● プレゼンの目的と対象者 ○ 目的 ■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有 ■ 社内の方々へ、仕事内容の共有 ○ 対象者 ■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方 ■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方 ● Workship ○ 概要 ○ スコアリング ● 機械学習基盤 ○ 最初の全体構成と PDCA ■ Google Cloud Functions ○ 改善後の全体構成と PDCA ■ アノテーションシステム ■ Docker 本番運用 ■ スコアリング API ● データ分析基盤 ○ KPI 確認用シート ○ オンライン分析 Jupyter Notebook ○ データ分析の PDCA 18
  19. 19. KPI 確認用シート ● KPI を可視化したスプレッドシート ● 構成要素 ○ Google Spreadsheet ○ GAS (Google Apps Script) ○ Bigquery ● メリット ○ 簡単で安い ○ 毎日の KPI 確認が気軽 ○ KPI の長期的な推移を予測 19
  20. 20. オンライン Jupyter Notebook ● KPI 確認用シートでは補いきれない分析を行なっている Jupyter Notebook ● メリット ○ オンラインで公開しており、 権限があれば閲覧できる ○ 詳しい分析はここで行い、 Markdown 形式でレポート を残しておけば、わざわざ データサイエンティストに ありがちなドキュメントを 作成する必要がない 20
  21. 21. データ分析の PDCA (予定) ● 目標:○○の数値を××まで増加させる ● 前作業:コンバージョンを予測するモデルを構築 ○ あらかじめ小さめのサンプルでA/Bテストを行い、機械学習モデルに対して、「施策の対象 となることでコンバージョンする」顧客の特徴を学ばせておく 21 aa Plan 何らかの施策を 計画 Do CVRが高めのサ ンプルに対して A/Bテスト Check 施策の効果を測定 Action 結果を踏まえてモ デルを改善
  22. 22. まとめ ● 機械学習基盤を改修し、モデルを改善するサイクルから管理者を排除 ● サービスのグロースに必要な分析環境を構築 22
  23. 23. 参考 ● 仕事ではじめる機械学習 ○ 有賀 康顕、中山 心太、西林 孝 著 O’REILLY ● Jupyter だけで機械学習を実サービス展開できる基盤 ○ https://engineer.recruit-lifestyle.co.jp/techblog/2018-10-04-ml-platform/ ● 2018年なぜ私達はコンテナ/Dockerを使うのか ○ https://cloudpack.media/41647 23
  24. 24. Good is good. We provide opportunities to The SEKAI by fusing technology and ideas. テクノロジーとクリエイティブでセカイをより良くする
  25. 25. GIG INC. 社員、業務委託 全職種積極採用中です! 経験者採用(1年以上) ● ディレクター / マーケター / 編集者 ● フロントエンド / バックエンド / インフラ ● デザイナー / アートディレクター ● 人事 / 財務 職種未経験者も検討 ● ディレクター / マーケター / 編集者 ● バックエンド 新卒も検討 ● マーケター / 編集者 GIG INCのこと こちらの箱に連絡先をいれてください
  26. 26. Copyright © GIG INC. All Rights Reserved.CONFIDENTIAL 運命の仕事相手 Dramatic project matching

×