SlideShare a Scribd company logo
1 of 29
Download to read offline
1
ソウゾウ1人目機械学習エンジニアの現在地
メルカリShopsのおすすめ機能開発の舞台裏
2
2019年4月、新卒でメルカリ入社。

写真検索システムの開発・運用などを担当したのち、
2021年4月ソウゾウに移籍。

また、マイノリティ向けソフトウェアエンジニア育成プ
ログラム「Build@Mercari」を運営。

野上 和加奈 (Nogami Wakana)

3
過去のプロジェクト - メルカリJP時代
写真検索 配送サイズ推定
4
過去のプロジェクト - メルカリJP時代
機械学習モデルをシステムとしてどう動かすか
→ Kubernetesをゴリゴリ使ってた
実際の写真検索システムの構成(旧バージョン)
モデリングの経験はなし
5
株式会社ソウゾウは、株式会社メルカリにおける新規事業の企画・開発・運営を担うグループ会社です。
2021年1月28日に設立し、現在はEコマースプラットフォームである「メルカリ
Shops」を手がけています。
ソウゾウに移籍
6
メリカリアプリ内「ショップ」タブ
Web版(https://mercari-shops.com/)
農家さんやハンドメイド作家さんなどがお店を出せる
一見、メルカリの中の1機能に見えますが...
タブ内はWeb Viewで完全に独立して作ってます
詳細:https://engineering.mercari.com/blog/entry/20210803-225b0b4612/
メルカリShopsとは
7
● プロダクト
○ 技術選定はすでにされていてプロダクトもだいたい形になってきていた
■ Monorepo
■ Go(Backend), TypeScript(Frontend), GraphQL(BFF)
● 組織
○ 機械学習エンジニア一人目
■ 私自身MLシステムは作ったことあっても MLモデルはつくったことなし
■ PdMもこれまでML系のプロダクトに関わった経験なし
■ マネージャーもML系ではない
移籍したときの状況
8
初期はタイムラインと「注目の商品」のみ
● 欲しい物を探すのが大変
● 偶発的な出会いが起こりにくい
お客様の使いやすいHomeをつくる
MLの期待値
9
● タスクが多方面すぎて何も進まない
● 何からやったらいいのかわからない
● 自分の選択が正解か自信が持てない
一人目としての困難
10
● タスクが多方面すぎて何も進まない
● 何からやったらいいのかわからない
● 自分の選択が正解か自信が持てない
一人目としての困難
11
● 採用
○ イベント登壇
○ 採用プロセスの準備
● 開発環境の整備
○ Pythonをmonorepoにどう入れ込むか
○ ML独自の基盤(学習基盤等)は何使うか
● プロダクト
○ どこにどういうRecommendationをしていくか
○ リソースの調整
タスクが多方面すぎて何も進まない
12
諦める!!
どう乗り越えたか
13
諦める!!
どう乗り越えたか
っていうのは半分冗談ですが ...
14
● 今はこれにフォーカスする時期だから仕方ないと割り切る
○ タスクが色々あるとコンテキストスイッチで進まなくなるのはみんな同じ
○ フォーカスすることが決まると優先度もつけやすいし精神衛生上もいい
● 周りに共有しておく
○ 開発以外も大事な仕事なので朝会とかで遠慮せず行っておく
○ 「あの人にやってるの?」と思われないないのでお互いにやりやすい
○ 困った時に人の手を借りやすくなる
どう乗り越えたか
今は「これをやる」を自分にも周りにも明確にすることで集中できる
15
● タスクが多方面すぎて何も進まない
● 何からやったらいいのかわからない
● 自分の選択が正解か自信が持てない
一人目としての困難
16
● 張り切って理想を掲げがち
○ 全お客様に直前の行動ログから商品を推薦
○ 「この商品を見ている人はこんな商品を見ています」もやりたい
○ 改善高速に回せるような設計& A/Bテスト基盤
● プロセスがクリアになっていない
○ まず誰に話をもっていく?マネージャー? PdM?
○ そもそも担当PdMは?
○ バックエンドやフロントエンドは?
何からやったらいいのかわからない
17
Minimumの徹底
どう乗り越えたか
18
● 「これなら余裕でできる」というレベルから始める
○ 最初からMLのモデルを考えるのではなくルールベースから
○ リアルタイムじゃなくてバッチ処理から
● 自分でやれるだけやってみちゃう
○ PM, FE, BEのリソース確保などコミュニケーションコストのほうが高いなら自分である程度進め
ちゃうのもあり
どう乗り越えたか
「どうしよう」という漠然とした不安がなくなり、一回やってしまえば進め方がわかる
19
● タスクが多方面すぎて何も進まない
● 何からやったらいいのかわからない
● 自分の選択が正解か自信が持てない
一人目としての困難
20
● 実質ML”責任者”的な立場になってしまう
○ あらゆることを決めないといけない
○ 基本的に自分の意見がすべて採用される
自分の選択が正解か自信が持てない
21
とにかく人と話す
どう乗り越えたか
22
● 別チームの有識者などに相談に行く
○ 質問をクリアにしてから、 docsにまとめてそれをReviewしてもらおう、と思っているとなかなか
相談できない
○ 相談事が決まってから頼むのではなく、先に weeklyで相談する時間を決めちゃう
○ 自分が疑問に思っていることだけでなく、ある程度確信をもっていることも話す
自分だけの意見じゃなくなることで自信をもてる
どう乗り越えたか
23
パーソナライズされたおすすめを出したい
「類似商品検索APIを作ってメルカリで最近見た商品に類似
するShops商品を出す」
✕ Minimum
✕ 人に相談
実際のプロダクトにどう活きたか
24
パーソナライズされたおすすめを出したい
「類似商品検索APIを作ってメルカリで最近見た商品に類似
するShops商品を出す」
メルカリのレコメンデーションチームに相談
Minimumを突き詰める
実際のプロダクトにどう活きたか
25
パーソナライズされたおすすめを出したい
「類似商品検索APIを作ってメルカリで最近見た商品に類似
するShops商品を出す」
「最近見たShops商品と同じカテゴリーの商品を出す」
● メルカリのデータを使わないのでshops内で完結
● カテゴリーで商品を絞るAPIはすでにあった
● 簡単なロジックだが相談済みなので自信をもてる
実際のプロダクトにどう活きたか
26
パーソナライズされたおすすめを出したい
「最近見たShops商品と同じカテゴリーの商品を出す」
結果
簡単になったことでBE, FEまで1人でやりきれた
2ヶ月足らずでリリース(現在はA/Bテスト中)
実際のプロダクトにどう活きたか
27
一人目エンジニアになってしまったら...
● 集中するタスクを決めて周りに共有
● Minimum Startを徹底
● できるだけ人に意見を聞きに行く
まとめ
28
「もう少しこれ聞いてみたい!」などあればぜひお話しましょう
ソウゾウの話、一人目の話、技術の話、女性エンジニアの話、
D&Iの話 なんでも可
29

More Related Content

What's hot

AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方Yoshitaka Seo
 
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題Kenta Iwasaki
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph APIYoshitaka Seo
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingRecruit Lifestyle Co., Ltd.
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...典子 松本
 
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリYoshitaka Seo
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionYoshitaka Seo
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析Yoshitaka Seo
 
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Yoshitaka Seo
 
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話Terui Masashi
 
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Yoshitaka Seo
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!典子 松本
 
懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた裕之 木下
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代Yoshitaka Seo
 
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しようVisual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しようShinya Nakajima
 
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」典子 松本
 

What's hot (20)

AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方
 
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題
めざせスカウター! HoloLensによる特定個人の 顔認識アプリ制作とその課題
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph API
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embedding
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
 
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
React way at_eight
React way at_eightReact way at_eight
React way at_eight
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
 
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
 
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
 
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
 
懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた
 
AndroidのAR最新動向
AndroidのAR最新動向AndroidのAR最新動向
AndroidのAR最新動向
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
 
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しようVisual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
 
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
 

Similar to ソウゾウ1人目機械学習エンジニアの現在地

Data-centricなML開発
Data-centricなML開発Data-centricなML開発
Data-centricなML開発Takeshi Suzuki
 
AI Seminar on Alibaba Cloud
AI Seminar on Alibaba CloudAI Seminar on Alibaba Cloud
AI Seminar on Alibaba CloudAnzaiKumiko
 
Introducing our approach to interpreting machine learning models
Introducing our approach to interpreting machine learning modelsIntroducing our approach to interpreting machine learning models
Introducing our approach to interpreting machine learning modelsHiroaki Kudo
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターンHironoriTAKEUCHI1
 
メルペイの与信モデリングで安全・安心のために実践していること
メルペイの与信モデリングで安全・安心のために実践していることメルペイの与信モデリングで安全・安心のために実践していること
メルペイの与信モデリングで安全・安心のために実践していることYuhi Kawakami
 
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!jpid
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Issei Hiraoka
 
LINE eKYCって何だ?~その実力と開発チップスについて~
LINE eKYCって何だ?~その実力と開発チップスについて~LINE eKYCって何だ?~その実力と開発チップスについて~
LINE eKYCって何だ?~その実力と開発チップスについて~ChikaSawano
 
kintone新機能開発のお仕事_和渕.pptx
kintone新機能開発のお仕事_和渕.pptxkintone新機能開発のお仕事_和渕.pptx
kintone新機能開発のお仕事_和渕.pptxCybozu, Inc.
 
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装PIXTA Inc.
 
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525mabl - 負荷テストにおけるmablのAPIテスト活用_20230525
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525Yuki Shimizu
 
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】崚日 中井
 
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Innova Inc.
 
Data-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組みData-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組みTakeshi Suzuki
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクルHironori Washizaki
 
Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Satoshi Fujimoto
 
API MeetUp Online#8 セッション3 ツクレル馬場さん
API MeetUp Online#8 セッション3 ツクレル馬場さんAPI MeetUp Online#8 セッション3 ツクレル馬場さん
API MeetUp Online#8 セッション3 ツクレル馬場さんNihei Tsukasa
 
mabl - APIテストしてる? 自動化で効率化しよう!
mabl - APIテストしてる? 自動化で効率化しよう!mabl - APIテストしてる? 自動化で効率化しよう!
mabl - APIテストしてる? 自動化で効率化しよう!Yuki Shimizu
 

Similar to ソウゾウ1人目機械学習エンジニアの現在地 (20)

Data-centricなML開発
Data-centricなML開発Data-centricなML開発
Data-centricなML開発
 
AI Seminar on Alibaba Cloud
AI Seminar on Alibaba CloudAI Seminar on Alibaba Cloud
AI Seminar on Alibaba Cloud
 
Introducing our approach to interpreting machine learning models
Introducing our approach to interpreting machine learning modelsIntroducing our approach to interpreting machine learning models
Introducing our approach to interpreting machine learning models
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
 
メルペイの与信モデリングで安全・安心のために実践していること
メルペイの与信モデリングで安全・安心のために実践していることメルペイの与信モデリングで安全・安心のために実践していること
メルペイの与信モデリングで安全・安心のために実践していること
 
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!
越境まちづくり・ラボ~経営資源の日本から新興国へリサイクル活用!
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
LINE eKYCって何だ?~その実力と開発チップスについて~
LINE eKYCって何だ?~その実力と開発チップスについて~LINE eKYCって何だ?~その実力と開発チップスについて~
LINE eKYCって何だ?~その実力と開発チップスについて~
 
キャラコミュ 20160622
キャラコミュ 20160622キャラコミュ 20160622
キャラコミュ 20160622
 
kintone新機能開発のお仕事_和渕.pptx
kintone新機能開発のお仕事_和渕.pptxkintone新機能開発のお仕事_和渕.pptx
kintone新機能開発のお仕事_和渕.pptx
 
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
 
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525mabl - 負荷テストにおけるmablのAPIテスト活用_20230525
mabl - 負荷テストにおけるmablのAPIテスト活用_20230525
 
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】
【SB Tech Festival 2022】モデルベースUIデザイン【登壇用】
 
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
 
Data-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組みData-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組み
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発
 
API MeetUp Online#8 セッション3 ツクレル馬場さん
API MeetUp Online#8 セッション3 ツクレル馬場さんAPI MeetUp Online#8 セッション3 ツクレル馬場さん
API MeetUp Online#8 セッション3 ツクレル馬場さん
 
mabl - APIテストしてる? 自動化で効率化しよう!
mabl - APIテストしてる? 自動化で効率化しよう!mabl - APIテストしてる? 自動化で効率化しよう!
mabl - APIテストしてる? 自動化で効率化しよう!
 

ソウゾウ1人目機械学習エンジニアの現在地