Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メルカリホーム画面におけるレコメンド改善事例 - Long-tailを考慮した辞書拡張
Search
yaginuuun
January 17, 2024
Technology
3
1.3k
メルカリホーム画面におけるレコメンド改善事例 - Long-tailを考慮した辞書拡張
メルカリホーム画面におけるレコメンド改善事例 - Long-tailを考慮した辞書拡張
yaginuuun
January 17, 2024
Tweet
Share
More Decks by yaginuuun
See All by yaginuuun
メルカリにおけるA/Bテストワークフローの改善 これまでとこれから
shyaginuma
2
1.6k
メルカリにおけるA/Bテスト標準化への取り組み
shyaginuma
21
13k
A/BテストにおけるVariance reduction
shyaginuma
2
2.3k
初めての機械学習PJを やってみて得た知見
shyaginuma
2
4.5k
過去コンペベースの学習をやってみたら意外と良かった話
shyaginuma
0
680
Kaggleもくもく会イントロ
shyaginuma
0
180
1on1 SQL Introduction at Globis
shyaginuma
1
1.3k
SlackへのKPI通知Botを作ったら いろいろ捗った話
shyaginuma
1
2.1k
BigQueryMLハンズオン勉強会
shyaginuma
3
900
Other Decks in Technology
See All in Technology
Kotlin Multiplatformのポテンシャル
recruitengineers
PRO
2
140
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
100
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
830
コロプラのオンボーディングを採用から語りたい
colopl
5
910
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
140
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
140
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
1.9k
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
1.1k
re:Invent2024 KeynoteのAmazon Q Developer考察
yusukeshimizu
1
120
20240522 - 躍遷創作理念 @ PicCollage Workshop
dpys
0
310
Godot Engineについて調べてみた
unsoluble_sugar
0
350
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
810
Featured
See All Featured
Building Your Own Lightsaber
phodgson
104
6.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Why Our Code Smells
bkeepers
PRO
335
57k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Mobile First: as difficult as doing things right
swwweet
222
9k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Adopting Sorbet at Scale
ufuk
74
9.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Transcript
1 メルカリホーム画面におけるレコメンド改善事例 Long-tailを考慮した辞書拡張 柳沼 慎哉(@yaginuuun) 2024/1/17, Recommendation Industry Talks #1
2 自己紹介 • Data Analyst → SWE • Data Analystの頃はA/Bテスト周りのワークフロー改善周
りに取り組む ◦ メルカリにおけるA/Bテスト標準化への取り組み ◦ メルカリにおけるA/Bテスト分析自動化の取り組み • 最近はホーム画面を中心にレコメンド改善 • 趣味:ポケカ、Podcast配信 柳沼 慎哉(@yaginuuun)
3 メルカリにおけるレコメンドの特徴、課題 今日話すこと 実際に行った改善施策の紹介 02 01
4 メルカリにおけるレコメンド
5 メルカリのレコメンド機能 ホーム画面 商品詳細画面
6 メルカリのレコメンド機能 ホーム画面 商品詳細画面
7 ポイント①:全ての出品は一点もの メルカリで発生する購買の特徴 ポイント②:同一商品内での比較検討
8 ポイント①:全ての出品は一点もの • 全ての出品の在庫は一つしかない(Shops商品を除く) • 同一の出品を複数のお客様にレコメンドしても、実際に購入できるのは一人 これが最安で状態も 良い商品です! あのキーボー ドが欲しいな
あ。。 あのキーボー ドが欲しいな あ。。 キーボードが 欲しい。。 いいね! Happy!! Sad...
9 ポイント②:同一商品内での比較検討 • 同一商品(SKU*)内での比較検討が一般的な行動として存在する • なぜ? → 同一商品でも属性にばらつきがあるから • 商品の状態
• 写真からの印象 • 出品者の評価 • 出品価格 • 配送までの日数 • 配送料負担 • (本当に出品によって様々!!) ※ SKU: Stock Keeping Unit
10 ホーム画面におけるレコメンド • トピックをベースとしたレコメンドを提供 • トピック:メルカリに存在している購買ニーズのまとまり(例:書籍タイト ル、カード名)
11 ホーム画面におけるレコメンド • トピックをベースとしたレコメンドを提供 • トピック:メルカリに存在している購買ニーズのまとまり(例:書籍タイト ル、カード名) タイトル部分(タップで検索結果画面に遷移) - 検索結果画面には豊富な数の出品があるため、
ある出品が売り切れていてもすぐに他の出品を 見つけることができる。 - 検索結果画面は一覧性や追加の絞り込み機能に 優れ、比較検討が行いやすい。
12 ホーム画面におけるレコメンド • トピックをベースとしたレコメンドを提供 • トピック:メルカリに存在している購買ニーズのまとまり(例:書籍タイト ル、カード名) サムネイル部分(タップで商品詳細画面に遷移) 画像いくつか表示することによって、そのトピック にどんな出品が含まれているのか説明性を持たせる
(ウィンドウショッピングに近い感覚)
13 ハイレベルアーキテクチャ Finalization • ビジネスロジックの 組み込み • 推薦トピックの deduplication Retrieval
• 複数の候補生成器が 存在 • キーワード辞書を活 用して推薦トピック を生成 Ranking • MLモデル • 複数の候補生成器か ら得られた推薦ト ピックを共通の尺度 で並び替える
14 ハイレベルアーキテクチャ Finalization • ビジネスロジックの 組み込み • 推薦トピックの deduplication Retrieval
• 複数の候補生成器が 存在 • キーワード辞書を活 用して推薦トピック を生成 Ranking • MLモデル • 複数の候補生成器か ら得られた推薦ト ピックを共通の尺度 で並び替える この後はRetrievalステップで活用しているキーワード辞書に焦点を当てた改 善事例を紹介します
15 改善事例:Long-tailを考慮した辞書拡張
16 存在していた課題 カテゴリによってレコメンド体験に 大きな差がある
17 なぜ? • 当時のキーワード辞書はPopularityベースで構築されていた • でも … カテゴリごとにPopularityは大きく異なる サービス開始10周年記念インフォグラフィックス より
18 なぜ? サービス開始10周年記念インフォグラフィックス より • 当時のキーワード辞書はPopularityベースで構築されていた • でも … カテゴリごとにPopularityは大きく異なる
• Popularityの高いカテゴリにおいてはキーワード数が多いため精 度の高い レコメンドが提 供できるが、Popularityが低くなるに従ってキーワード数 が減少しレコメンドの精度も低くなる • その結果、カテゴリ間でレコメンドの表示率やエンゲージメントに大きな 差がある状態に
19 改善方針:UU Weighted Keyword Coverage の導入 キーワードに興味を持っているUU数 以下の形で定義 カテゴリに興味を持っているUU数 カテゴリごとに上の数値を合計したものが一定以上に保たれるように辞書を構築
UUを考慮することによって良い体験を提供できる人数が増えることを期待
20 拡張方法による比較 • 横軸:拡張前の UU Weighted Keyword Coverage の値 •
縦軸:拡張後の UU Weighted Keyword Coverage の値の上がり幅 青:拡張前 赤:カバレッジ考慮なし 緑:カバレッジ考慮 黄:カバレッジ考慮 + UU重み付け
21 拡張方法による比較 • 横軸:拡張前の UU Weighted Keyword Coverage の値 •
縦軸:拡張後の UU Weighted Keyword Coverage の値の上がり幅 赤に比べて黄はTail部分にあたるカテゴリに おいてカバレッジを大きく向上できている
22 拡張方法による比較 • 横軸:拡張前の UU Weighted Keyword Coverage の値 •
縦軸:拡張後の UU Weighted Keyword Coverage の値の上がり幅 緑に比べて黄はUU Weighed Keyword Coverageの向上幅が大きい
23 実験設計 • variant 1: control(Popularityベース) • variant 2: Popularityベースで更にキーワードを追加したもの
• variant 3: UU Weighed Keyword Coverageを考慮しつつキーワードを追 加したもの ※ variant 2, 3での追加キーワード数は同じ
24 実験設計 • variant 1: control(Popularityベース) • variant 2: Popularityベースで更にキーワードを追加したもの
• variant 3: UU Weighed Keyword Coverageを考慮しつつキーワードを追 加したもの ※ variant 2, 3での追加キーワード数は同じ variant 3だけでなくvariant 2を用意することで提案手法がうまく行った際に 要因の切り分けがしやすいように設計されている
25 実験結果
26 実験結果 • variant 2, 3にてホーム画面経由の購買が増加
27 実験結果 • variant 2, 3にてホーム画面経由の購買が増加 • variant 3ではvariant 2と比較して1.5倍程強いリフトが見られた
28 実験結果 • variant 2, 3にてホーム画面経由の購買が増加 • variant 3ではvariant 2と比較して1.5倍程強いリフトが見られた
• 加えてvariant 3では目立ったcannibalizationが見られなかった
29 実験結果 • variant 2, 3にてホーム画面経由の購買が増加 • variant 3ではvariant 2と比較して1.5倍程強いリフトが見られた
• 加えてvariant 3では目立ったcannibalizationが見られなかった variant 3(提案手法)がプロダクションリリース
30 まとめ
31 まとめ メルカリにおけるレコメンドの特徴、課題 • 全ての出品は一点もの • 同一商品内での比較検討 → ホーム画面ではトピックベースのレコメンドによって適応 実際に行った改善施策の紹介
• カテゴリによってレコメンド体験に大きな差があった • Popularityベースでのキーワード辞書構築に起因 → UU Weighted Keyword Coverageを考慮しつつ辞書拡張することで改善
32 終わりに 他のチームメンバーの過去の発表もあるのでもし良ければご覧ください! • すべてが一点物だから難しい、メルカリのパーソナライズ機能とその開発体制 • ホーム画面レイアウトのパーソナライゼーション