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
クックパッド検索結果新着順の改善
Search
しげひさ
March 17, 2024
Technology
0
250
クックパッド検索結果新着順の改善
2024/3/14 のアソビューさんのイベントで発表させていただいた資料です
しげひさ
March 17, 2024
Tweet
Share
More Decks by しげひさ
See All by しげひさ
クックパッドが取り組むレシピレコメンドの面白さと難しさ
naokishigehisa
6
2.5k
Other Decks in Technology
See All in Technology
伝わるコードレビュー
abenben
1
100
本当に必要なのは「QAという技術」だった!試行錯誤から生まれた、品質とデリバリーの両取りアプローチ / Turns Out, "QA as a Discipline" Was the Key!
ar_tama
9
4k
さくらのクラウド開発の裏側
metakoma
PRO
0
310
2025-04-14 Data & Analytics 井戸端会議 Multi tenant log platform with Iceberg
kamijin_fanta
1
190
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
0
340
LINE 購物幕後推手
line_developers_tw
PRO
0
420
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
1
240
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
420
テストコードにはテストの意図を込めよう(2025年版) #retechtalk / Put the intent of the test 2025
nihonbuson
PRO
1
210
Ninno LT
kawaguti
PRO
1
110
自動化の第一歩 -インフラ環境構築の自動化について-
smt7174
1
120
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
2
12k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A better future with KSS
kneath
239
17k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Unsuck your backbone
ammeep
671
58k
Side Projects
sachag
453
42k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
KATA
mclloyd
29
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.7k
Agile that works and the tools we love
rasmusluckow
329
21k
Transcript
© 2023 Cookpad Inc. クックパッド 検索結果新着順の改善 クックパッド株式会社 レシピ事業部 重久直輝
• 重久直輝 • クックパッド株式会社2022年新卒 • レシピ事業部サーバーサイドエンジニア • 料理好き • 日本酒もっと好き
• 最近猫を飼い始めました © 2023 Cookpad Inc. 2 自己紹介 @naoki_shigehisa @naoki-shigehisa
• 新着順検索結果をユーザーの行動ログを利用して改善 • RedshiftとDynamoDBを活用してシュッと実装 • 特に改善できたクエリでは、レシピへの遷移率が 約 35% → 50%
と大きく上昇 © 2023 Cookpad Inc. 3 3行まとめ
• プレミアムサービスに登録していないユー ザーが見れる唯一の検索結果 ◦ クックパッドを使うユーザーのほとんどが 目にする • 基本的には検索にヒットするレシピをシンプル に新しい順で見せていた ©
2023 Cookpad Inc. 4 クックパッドの新着順とは Web app
• ユーザー投稿物のため、どうしても品質にはばら つきがある ◦ なかなか良いレシピに出会えない... • しかし確実に新着順に掲載されることがレシピ投 稿者の強いモチベーションになっており、下手に手 を入れることができていなかった ©
2023 Cookpad Inc. 5 新着順の課題感
• クックパッドを使うほとんどのユーザーが見る 検索結果新着順の品質を向上 させること • ただし、レシピ作者のモチベーションは失わないようにしたい © 2023 Cookpad Inc.
6 施策の目的
• 新着順の品質を向上させたい ➡ 新しいレシピの中で、ユーザーの反応が良いレシピを選定して表 示 • レシピ作者のモチベは失わないようにしたい ➡ 選定したレシピと本来の新着レシピを混ぜて表示 ©
2023 Cookpad Inc. 7 実現方法
• 1ヶ月以内に公開されたレシピを対象にユーザーのログから推定 • 対象レシピの中から長時間閲覧したユーザーの数が多いレシピを選定 ◦ 長時間閲覧されたレシピの大半は実際に作っていたか、作る候補には入って いたと仮定 © 2023 Cookpad
Inc. 8 実現方法 新しい&良いレシピの選定
• 計算には対象クエリで検索したユー ザーのログだけを利用 ◦ 例えば、「ねぎ」の検索結果におけ る良いレシピは「ねぎ」で検索した ユーザーの行動から判定 ◦ 「ねぎ」で検索したユーザーの大半 は薬味としてねぎを使っているだ
けのレシピは求めていない © 2023 Cookpad Inc. 9 実現方法 新しい&良いレシピの選定
• 選定したレシピを指定した位置に明示的に差し込み ◦ 2つの意図を明示的に反映 ▪ レシピをさがすユーザーに良いレシピに出会って欲しい ▪ レシピ作者のモチベーションを維持したい © 2023
Cookpad Inc. 10 実現方法 選定したレシピと新着レシピを混ぜて表示
© 2023 Cookpad Inc. 11 実現方法 選定したレシピと新着レシピを混ぜて表示 Good • 実現したい状態を確実に実現 できる
• ロールバックが容易 Bad • 結果が不自然になりやすい 差し込み Good • 結果が自然になりやすい • 結果に関わるロジックが計算 式に集約される Bad • 計算式の調整が難しい ブースト 初手の検証として差し込みを選択
• Redshift上で計算した差し込むレシピ のIDをDynamoDBで保持 • DynamoDBに保持されたレシピのID を利用して検索結果のリランクを行っ た © 2023 Cookpad
Inc. 12 設計 全体像
• 対象クエリで検索したユーザーの反応 を使って計算 • クックパッドではRedshiftにユーザーの 行動ログを溜めていた • SQLを書くだけで簡単に実現できた © 2023
Cookpad Inc. 13 設計 新しい&良いレシピの選定
• 検索クエリに対して差し込むレシピのIDを保 持 ◦ 単純に検索クエリで引けば良いだけか つ、リクエスト量が多い ➡ 高速に情報を取り出せ、安価で スケーラブルなDynamoDBを採用 ◦
このIDを使って検索サーバーの検索結 果をリランク © 2023 Cookpad Inc. 14 設計 選定したレシピと新着レシピを混ぜて表示
• 検索サーバーでは各レシピの情報を保 持していたが、今回のリランクのために はレシピとクエリの組み合わせに対し てスコアを持ちたかったため、検索サー バーではなく外部のストレージで情報を 保持 © 2023 Cookpad
Inc. 15 設計 選定したレシピと新着レシピを混ぜて表示
• 新着順に反応のよかったレシピが 差し込まれるようになった © 2023 Cookpad Inc. 16 結果 差し込みレシピ
差し込みレシピ 差し込みレシピ
• 施策が適用できたクエリにおいて、レシピへの遷移率が大きく上昇 ◦ 効果の大きかったクエリでは、レシピへの遷移率が約 35% → 50% と15%程上 昇した ◦
※ 検索流量やそもそものレシピの流量が少ないクエリは効果が期待できな かったため、適用外としていた © 2023 Cookpad Inc. 17 結果
• ユーザーの行動ログを利用することで、ユーザーニーズに合ったレシピを表示する ことができた • 明示的な差し込みを行うことで施策の評価が確実にできた ◦ 効果が出なかった場合でも、いやここが甘かったから、、、のように迷走するこ とがない状態になっていた • RedshiftやDynamoDBを適切に利用することで、簡単に素早く検証を行うことがで
きた © 2023 Cookpad Inc. 18 振り返り