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

Más contenido relacionado

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

CMS学会 第三回 研究報告
CMS学会 第三回 研究報告CMS学会 第三回 研究報告
CMS学会 第三回 研究報告loftwork
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜MicroAd, Inc.(Engineer)
 
20180730 ds womens
20180730 ds womens20180730 ds womens
20180730 ds womensRio Kurihara
 
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例Yasuko Sekiguchi
 
クラウドを活用した自由自在なデータ分析
クラウドを活用した自由自在なデータ分析クラウドを活用した自由自在なデータ分析
クラウドを活用した自由自在なデータ分析aiichiro
 
【Medix】解析サービスのご案内資料
【Medix】解析サービスのご案内資料【Medix】解析サービスのご案内資料
【Medix】解析サービスのご案内資料Shinichiro Oho
 
yokyo-unv.
yokyo-unv.yokyo-unv.
yokyo-unv.hirano
 
RPAドキュメントのレビュー観点について
RPAドキュメントのレビュー観点についてRPAドキュメントのレビュー観点について
RPAドキュメントのレビュー観点についてzin jin
 
オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用syou6162
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返りSatoshi Noto
 
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -Hiroshi Masuda
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤Google Cloud Platform - Japan
 
Retty recommendation project
Retty recommendation projectRetty recommendation project
Retty recommendation projectJiro Iwanaga
 
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019Game Tools & Middleware Forum
 
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化Teruki Obara
 
分析可能なアジャイルQAでの取り組み
分析可能なアジャイルQAでの取り組み分析可能なアジャイルQAでの取り組み
分析可能なアジャイルQAでの取り組みHiroyuki Hanaue
 
日本語データの活用までの道のり
日本語データの活用までの道のり日本語データの活用までの道のり
日本語データの活用までの道のりHideto Masuoka
 
PlusAIでRPAによる業務の自動化範囲を拡大
PlusAIでRPAによる業務の自動化範囲を拡大PlusAIでRPAによる業務の自動化範囲を拡大
PlusAIでRPAによる業務の自動化範囲を拡大Akimitsu Takagi
 

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

CMS学会 第三回 研究報告
CMS学会 第三回 研究報告CMS学会 第三回 研究報告
CMS学会 第三回 研究報告
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
 
Msセミナー20170830 slideshare
Msセミナー20170830 slideshareMsセミナー20170830 slideshare
Msセミナー20170830 slideshare
 
20180730 ds womens
20180730 ds womens20180730 ds womens
20180730 ds womens
 
【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能【2018年3月時点】Oracle BI 12c 新機能
【2018年3月時点】Oracle BI 12c 新機能
 
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例
SAP Inside Track Tokyo 2019 Data Intelligence の展望とMLプロジェクト事例
 
クラウドを活用した自由自在なデータ分析
クラウドを活用した自由自在なデータ分析クラウドを活用した自由自在なデータ分析
クラウドを活用した自由自在なデータ分析
 
【Medix】解析サービスのご案内資料
【Medix】解析サービスのご案内資料【Medix】解析サービスのご案内資料
【Medix】解析サービスのご案内資料
 
yokyo-unv.
yokyo-unv.yokyo-unv.
yokyo-unv.
 
RPAドキュメントのレビュー観点について
RPAドキュメントのレビュー観点についてRPAドキュメントのレビュー観点について
RPAドキュメントのレビュー観点について
 
オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返り
 
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
 
データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤データプロダクトを支えるビッグデータ基盤
データプロダクトを支えるビッグデータ基盤
 
Retty recommendation project
Retty recommendation projectRetty recommendation project
Retty recommendation project
 
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
 
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化
失敗しない 3 次元 CAD 選びのポイントと Inventor を活用することで出来る作業の効率化
 
分析可能なアジャイルQAでの取り組み
分析可能なアジャイルQAでの取り組み分析可能なアジャイルQAでの取り組み
分析可能なアジャイルQAでの取り組み
 
日本語データの活用までの道のり
日本語データの活用までの道のり日本語データの活用までの道のり
日本語データの活用までの道のり
 
PlusAIでRPAによる業務の自動化範囲を拡大
PlusAIでRPAによる業務の自動化範囲を拡大PlusAIでRPAによる業務の自動化範囲を拡大
PlusAIでRPAによる業務の自動化範囲を拡大
 

Más de GIG inc.

LT38テーマ3-2
LT38テーマ3-2LT38テーマ3-2
LT38テーマ3-2GIG inc.
 
LT38テーマ3-1
LT38テーマ3-1LT38テーマ3-1
LT38テーマ3-1GIG inc.
 
LT38テーマ2-2
LT38テーマ2-2LT38テーマ2-2
LT38テーマ2-2GIG inc.
 
LT38テーマ2-1
LT38テーマ2-1LT38テーマ2-1
LT38テーマ2-1GIG inc.
 
LT38テーマ1-2
LT38テーマ1-2LT38テーマ1-2
LT38テーマ1-2GIG inc.
 
LT38テーマ1-1
LT38テーマ1-1LT38テーマ1-1
LT38テーマ1-1GIG inc.
 
lt23後半
lt23後半lt23後半
lt23後半GIG inc.
 
lt23前半
lt23前半lt23前半
lt23前半GIG inc.
 
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話GIG inc.
 
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術GIG inc.
 
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術GIG inc.
 
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーLT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーGIG inc.
 
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPALT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPAGIG inc.
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」GIG inc.
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」GIG inc.
 
LT.19 ビジネス環境の変化とカスタマーサクセス
LT.19 ビジネス環境の変化とカスタマーサクセスLT.19 ビジネス環境の変化とカスタマーサクセス
LT.19 ビジネス環境の変化とカスタマーサクセスGIG inc.
 

Más de GIG inc. (20)

Lt41
Lt41Lt41
Lt41
 
Lt40
Lt40Lt40
Lt40
 
Lt39
Lt39Lt39
Lt39
 
LT38テーマ3-2
LT38テーマ3-2LT38テーマ3-2
LT38テーマ3-2
 
LT38テーマ3-1
LT38テーマ3-1LT38テーマ3-1
LT38テーマ3-1
 
LT38テーマ2-2
LT38テーマ2-2LT38テーマ2-2
LT38テーマ2-2
 
LT38テーマ2-1
LT38テーマ2-1LT38テーマ2-1
LT38テーマ2-1
 
LT38テーマ1-2
LT38テーマ1-2LT38テーマ1-2
LT38テーマ1-2
 
LT38テーマ1-1
LT38テーマ1-1LT38テーマ1-1
LT38テーマ1-1
 
lt37
lt37lt37
lt37
 
lt23後半
lt23後半lt23後半
lt23後半
 
lt23前半
lt23前半lt23前半
lt23前半
 
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話
 
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術
 
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術
 
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーLT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバー
 
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPALT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPA
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 
LT.19 ビジネス環境の変化とカスタマーサクセス
LT.19 ビジネス環境の変化とカスタマーサクセスLT.19 ビジネス環境の変化とカスタマーサクセス
LT.19 ビジネス環境の変化とカスタマーサクセス
 

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

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