Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps
Search
Yusuke Fukasawa
November 16, 2022
Technology
2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps
第25回 MLOps 勉強会 でお話した内容です。
https://mlops.connpass.com/event/262549/
Yusuke Fukasawa
November 16, 2022
Transcript
29 slides
© 2022 Cookpad Inc. クックパッドマートにおける 推薦タスクとMLOps Recommendation and MLOps at
Cookpad-Mart 2022/11/16 Cookpad R&D Department Yusuke Fukasawa
© 2022 Cookpad Inc. 2 Speaker • Yusuke Fukasawa (
twitter @fukkaa1225 ) ◦ 自然言語処理・レコメンド・テーブルデータ • 前職: リクルート ◦ 中途転職サイトでの機械学習システム開発 ◦ サイト横断データの分析、モデル開発 • 現職: クックパッド ◦ クックパッドマートにおけるレコメンド ◦ レシピタイトルから材料を推薦するモデル ◦ 2021年は新卒エンジニア採用担当も兼任 • 趣味はテニス・ゲーム ◦ どちらも試合のデータを記録するのが趣味 ◦ Apex の様子→
© 2022 Cookpad Inc. 3 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 4 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 5 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 6 Cookpad-Mart https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 7 Cookpad R&D Department https://research.cookpad.com 人数は多くないですが、広い分野を担える人材が
揃っています • データ分析・レポーティング • モデルの開発 • プロダクトへの実装 • 関わった施策の効果測定 • 社内ツールの開発・OSS公開 • 論文執筆・研究発表
Recommendation at Cookpad-Mart © 2022 Cookpad Inc. 8
© 2022 Cookpad Inc. 9 Item-to-Item Recommendation • 商品詳細下部に「よく一緒に購入されている商 品」を表示する
© 2022 Cookpad Inc. 10 User-to-Item Recommendation • ユーザごとに、お気に入りタブに推薦商品を表 示する
• アーキテクチャ・モデル共に Item-to-Itemと同 じ
© 2022 Cookpad Inc. 11 Overview
今日お話する MLOps © 2022 Cookpad Inc. 12
© 2022 Cookpad Inc. 13 今日お話する MLOps • 推薦モデルの結果をユーザに届けるまでの過程で必要な実装・オペレーションをすべて MLOps
と捉 えて話します ◦ モデルを開発する際に ▪ 再現性・実験管理はどうしているのか ▪ コードの治安をどのように保っているのか ◦ モデルをデプロイする際に ▪ モデルを定期的に更新しているのか、しているならどうやっているのか ▪ 定期実行に必要なデータはどこにあって、どのように取得しているのか ▪ モデルはどんな環境で動かしているのか ◦ モデルを運用する際に ▪ 監視をしているのか ▪ どんなメトリクスを見ているのか
MLOps: Model Development © 2022 Cookpad Inc. 14
© 2022 Cookpad Inc. 15 MLOps: Model Development • コード管理:
Git(GHE) • コード構成 ◦ Makefile で実行タスクを定義 ◦ Pysen (black・isort・flake8・mypy) ▪ CI: ghe-actions ◦ Poetry • Notebook … EDA のみ、極力避ける • 実験管理 ◦ WandB → MLFlow
© 2022 Cookpad Inc. 16 MLOps: Model Development • RecBole
◦ Number of Models : 70+ ◦ Build by PyTorch ▪ シンプルな実装・比較しやすいメトリクス設計 • 必要な準備: 以下の形式でCSVを用意する(+α) ◦ UserID, ItemID, Interaction TimeStamp
© 2022 Cookpad Inc. 17 MLOps: Model Development • Item-to-Item
Recommend Model: RecVAE ◦ オフライン・オンライン(Interleaving) テストを経て決定 ◦ Item2Vec → RecVAE でコンバージョン数が数倍に増加 A User Item1 Item2 Item3 Day a Item1 Item2 Item1 Item3 Item2 Item3
© 2022 Cookpad Inc. 18 MLOps: Model Development • User-to-Item
Recommend Model: RecVAE ◦ 同じく RecVAE ◦ 現在の実装上、学習データで確認したユーザにしか推薦できない ◦ 直近6ヶ月のデータで学習した後、レコメンドが出ていないユーザへの拡 張処理を実施 注文データ (6ヶ月) RecVAE を学習 レコメンドあり ユーザ群A レコメンドなし ユーザ群B レコメンドあり ユーザ群A ユーザ群B について ユーザ群A の誰に近いのか? を 全購入履歴データを使って計算 (Via Item2Vec) 推薦結果 を出力 近傍ユーザに紐づいて レコメンド結果を集約する (直近の販売実績で更に重み付け)
MLOps: Model Deployment © 2022 Cookpad Inc. 19
© 2022 Cookpad Inc. 20 MLOps: Model Deployment • パイプラインの殆どが社内で開発されたツールを使用
◦ バッチ管理システム... Kuroko2 (OSS) ◦ Redshift からのデータ取得... Queuery (OSS) ◦ バッチ実行環境... Hako(OSS)
© 2022 Cookpad Inc. 21 MLOps: Model Deployment • Kuroko2
◦ web ベースのバッチ管理システム ▪ OSS https://github.com/cookpad/kuroko2 ◦ 主な役割はコンテナの起動・コマンドの実行 ▪ 近年のクックパッドのシステムは殆どコンテナで 動い ている https://speakerdeck.com/eisuke/kuroko2falsejin-kuang-tokutukupatudofalsebatutizhou-rifalsegai-kuang
© 2022 Cookpad Inc. 22 MLOps: Model Deployment • Queuery
◦ Redshift に直接接続することなくデータを取得するための仕 組み(OSS) ▪ Unload → S3 → Application ▪ with Redshift Data API https://techlife.cookpad.com/entry/2021/12/03/093000 https://github.com/bricolages/queuery_client_python
© 2022 Cookpad Inc. 23 MLOps: Model Deployment • Hako
◦ OSS ◦ コンテナを ECS にデプロイするためのツール ◦ jsonnet を書いてデプロイする • Hako-console ◦ 社内ツール ◦ デプロイすると専用のページが生成される ◦ そこからメトリクス監視の Grafana などを確認できる https://github.com/eagletmt/hako/blob/master/examples/hello.jsonnet
MLOps: Monitoring © 2022 Cookpad Inc. 24
© 2022 Cookpad Inc. 25 MLOps: Monitoring • オフラインテスト指標
◦ RecBole に定義されたメトリクスを使用 ▪ NDCG@k ▪ MRR@k ▪ Precision@k ▪ Recall@k ▪ Hits@k ▪ AveragePopularity@k ▪ ItemCoverage@k • オンライン指標 ◦ レコメンド経由でのカート追加数 ◦ Tableau で追跡
© 2022 Cookpad Inc. 26 MLOps: Offline Metrics Monitoring •
社内ツール: Metrics Tracer ◦ S3 にあるメトリクス(json) を取得し可視化 ◦ TODO: サマリーレポート・異常検知・slack 通知
© 2022 Cookpad Inc. 27 MLOps: Data Drift Monitoring(Future Work)
• データドリフトのモニタリング → × ◦ Evidently AI・Whylogs が対応していない • レコメンドの入力データ→ user-item のインタラクションを観測する ことが重要 ◦ ネットワークグラフ的なデータだと言える ◦ そのため、現状は利用できるOSSがない • RecBole が計算してくれる Basic Stats を利用していきたい RecBole が計算している Basic Stats
© 2022 Cookpad Inc. 28
© 2022 Cookpad Inc. 29 https://speakerdeck.com/cookpadhr/cookpad-introduction
More Decks by Yusuke Fukasawa
See All by Yusuke Fukasawa
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
510
ポケモン対戦を自動で 記録する PCBL(Pokémon Champions Battle Logger) の紹介
fufufukakaka
1
1.5k
機械学習で作った ポケモン対戦bot で 遊ぼう!
fufufukakaka
0
610
LLMアプリケーションの透明性について
fufufukakaka
0
280
やるべきときにMLをやる AIエージェント開発
fufufukakaka
2
1.7k
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
1.2k
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
3k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
3.2k
対戦におけるポケモンの “意味変化”を追う_リモートポケモン学会
fufufukakaka
0
430
Other Decks in Technology
See All in Technology
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
120
DevOps Agentにあらゆるセキュリティインシデントのトリアージを任せた件
jirtosterone
1
130
evcc & Home Assistant
naltatis
0
650
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
850
Frontier Teams — Amazon は AI で「開発のやり方」をどう変えたのか
kmotohas
0
220
生成AI時代のIAMのマニアックな話
takuros
6
3.2k
20261113_JAWS_Osaka
takuyay0ne
0
240
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
190
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
240
高品質と高スピードを支える品質のシフトレフトのアプローチ
goyoki
2
630
BALLAS Technology Deck
ballas_inc
0
570
自治体AIコンタクトセンター、何をどこに任せる?~Amazon Connect Customer +Amazon Bedrockの実践知~ / 20261107 Satoshi Torano
shift_evolve
PRO
1
130
Featured
See All Featured
Visualization
eitanlees
153
17k
The browser strikes back
jonoalderson
0
1.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Typedesign – Prime Four
hannesfritz
42
3.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
370
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
Design in an AI World
tapps
1
390
Paper Plane (Part 1)
katiecoart
PRO
3
12k