Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クックパッドが取り組むレシピレコメンドの面白さと難しさ

しげひさ
April 11, 2024
2.2k

 クックパッドが取り組むレシピレコメンドの面白さと難しさ

Recommendation Industry Talks #2 で発表した内容です。
https://recommendation-industry-talks.connpass.com/event/310180/

しげひさ

April 11, 2024
Tweet

Transcript

  1. © 2024 Cookpad Inc. 2 自己紹介 Yusuke Fukasawa (@fufufukakaka) 自然言語処理・レコメンドをやっ

    てきている 好きなモデルは RecVAE 趣味 • テニス • ポケモンの対戦(レート1800)と その動画解析 Naoki Shigehisa (@naoki_shigehisa) レコメンドに関わる サービス開発エンジニア メインはバックエンド 趣味... 日本酒・猫
  2. あなたのタグ (2022/3 ~ 2022/8) © 2024 Cookpad Inc. 8 •

    ユーザー毎に表示するコンテンツを出し 分けた最初の施策 • 自分が投稿したハッシュタグや閲覧した ハッシュタグを表示 • TOP画面では従来のコンテンツに比ベて タップ率が高くなったが、ハッシュタグの 中でレシピに到達したユーザーは少な かった
  3. テーマ (2022/11 ~ 2023/6) © 2024 Cookpad Inc. 9 •

    ユーザーの長期的な興味を「ワインに合う」や「鶏 むね最強」などのテーマとして捉えて、TOP画面で レコメンドする試み • ハッシュタグでは中身のレシピが少なく入れ替わり も起こりにくかったため、テーマというさらに大きい 枠を作成 • テーマを経由する形で計算しているが主体はレシ ピとしてレコメンド
  4. テーマのレコメンド方法 © 2024 Cookpad Inc. 11 # ワインのお供に レシピ つくれぽ

    ハッシュタグ テーマ 人手で関連付け • 保存したり閲覧したりしたレシピに関連するテーマを集計してレコメンド
  5. TOPでテーマをレコメンドした結果 © 2024 Cookpad Inc. 12 • ヘビーユーザーのアプリへの訪問頻度が上昇していた ◦ 元々ある程度高頻度にきていたユーザーの訪問頻度が

    さらに上がった • ただ、これは元々クックパッドをたくさん使ってくれていた 一部のユーザーの変化 ◦ クックパッドを使う大多数のユーザーはここを素通り ▪ 使うのは全体の3~4%くらい ◦ この変化をもっと広げたい
  6. テーマのレコメンドを検索結果へ展開 (2023/6) © 2024 Cookpad Inc. 13 • クックパッドの中で最も利用されている検索結果 画面で同様のレコメンドを展開

    • TOP画面で表示していたテーマと同じテーマを利用 • その中で、検索クエリにヒットするレシピを表示
  7. © 2024 Cookpad Inc. 18 なぜレコメンドはこれまでうまくいかなかったのか? • 要因1: クックパッドはユーザが昨日作った料理が何だったのか、正確に 把握することができない

    ◦ EC サイトにおける “購入” のような明確なコンバージョンが 存在しない ▪ 「料理を作った」瞬間に相当するものがない ◦ 毎回クックパッドのレシピから料理を作っているとは限らない 料理 完成! つくれぽ 投稿 クックパッドを 開く レシピ検索・ 人気順を見る レシピ詳細 を開く そのまま滞在 or スクショや印刷・覚えて閉じている
  8. © 2024 Cookpad Inc. 19 なぜレコメンドはこれまでうまくいかなかったのか? • 要因2: 大体のユーザはクックパッドに特定の目的を持ってレシピを探しにきてい る

    ◦ 「夕飯のためになすと挽き肉で今すぐ作れるレシピを探してます!」 ◦ 探している過程でたまたま出会うことはあっても、最初からいきなり回遊目 的で覗くことはあんまりない ◦ 検索から行動が始まることがほとんど
  9. © 2024 Cookpad Inc. 20 なぜレコメンドはこれまでうまくいかなかったのか? 「作った」を正確に 捉えるイベントがない ユーザは “今”

    作ることがで きる料理を探している レコメンドの質...「作った!」は正確に捉えない限り本質的な改善は難しい ユーザのニーズ... 「今作りたい!」が分かる前に推薦を出しても厳しそう
  10. © 2024 Cookpad Inc. 23 別サービスの調査 • 候補1: YouTube ◦

    レコメンドがホーム画面やその他色々なところ で中心的な役割を果たしている ◦ ★ ユーザは YouTube 以外で YouTube の動画 を見ることはない→在庫把握ができる ◦ ★ 「今すぐこの動画を見たい!」という目的で YouTube に訪れ ることはあまり多くなさそう。そもそも回遊目的のユーザのほう が多いのではないか
  11. © 2024 Cookpad Inc. 24 別サービスの調査 • 候補2: Netflix ◦

    やはりコンバージョンイベントは曖昧 ◦ 「見たことがある映画」というのは Netflix だけでは完結しない情報な ので、クックパッドと類似性がある ▪ 一方で Netflix オリジナルコンテンツは他では見れないので完全 に把握できる ◦ ランキング機能はない ◦ ★ 「今すぐこの映画を見たい!」というユーザと「今日何見ようかな」 というユーザが同じくらいいそう ▪ レコメンドで回遊を促す時間的余裕がいくらかありそう
  12. © 2024 Cookpad Inc. 25 別サービスの調査 • 候補3: Amazon ◦

    “購入” という明確なコンバージョンがある ◦ 「何買おうかな」というよりは「Amazonであれ買えるかな」と探しに来るユーザ の方が多そう? ▪ 自分は回遊行動を起点に Amazon を開くことはあまりない ◦ Amazon はユーザがどんなアイテムを持っているのか、については全く知り得 ない ▪ かつては掃除機を買ったら掃除機をレコメンドされた ▪ クックパッドで言う「ハンバーグを作った人にハンバーグを推薦」 → クックパッドにとって Amazon のレコメンド戦略は参考にできるかも?
  13. © 2024 Cookpad Inc. 27 Amazon のレコメンドを調べる • ホーム画面 ◦

    改めて見てみると、ホーム画面には 殆どレコメンドがない ▪ 再購入を促す動線 ▪ 直近検索していてまだ購入が発生していない閲覧履歴から のおすすめ ◦ セレンディピティを狙った推薦は全く出てこない ▪ 全てユーザの行動を起点とした説明可能性が高い推薦に なっている
  14. © 2024 Cookpad Inc. 28 Amazon のレコメンドを調べる • 検索画面 ◦

    「garmin」で検索した時の様子 ◦ ここではまだ特に推薦的な要素はない ◦ “関連商品を検索” でクエリ拡張の候補 が出ているくらい ◦ ここでわかるのは恐らくかなり整理された Knowledge Base の充 実度合い
  15. © 2024 Cookpad Inc. 29 Amazon のレコメンドを調べる • アイテムの詳細画面 ◦

    まず上部に推薦が出ている ▪ スポーツ用のスマートウォッチを調べている時にスピーカーが出 てくるのは明らかにセレンディピティを狙っている ◦ スクロールするとどんどん推薦セクションが出てくる ▪ 「よく一緒に購入されている商品」 ▪ 「この商品に関連する商品」 ▪ 「他のお客様がよく閲覧している商品」 ◦ ユーザの目的がはっきりした後で 回遊行動を促す推薦が出現している
  16. © 2024 Cookpad Inc. 31 クックパッドにおけるレコメンド戦略を考える • Amazon でのレコメンドまとめ ◦

    ホーム画面でのレコメンド … 説明可能性が高いもののみ ◦ 検索画面でのレコメンド … Knowledge Base に基づいた 外部知識による拡張 ◦ アイテム詳細画面でのレコメンド … セレンディピティを狙ったもの が登場 • ユーザの目的: 「探しているもの」がわかるまでは控えめな推薦 • ユーザが所持している食材、昨日作ったレシピのことは わからないが、「探しているもの」がわかった後でそれに 基づく推薦をするならユーザの気持ちに寄り添えるのでは
  17. © 2024 Cookpad Inc. 32 ホーム画面でレコメンドするイメージ ナスと挽き肉が あるな... これで夕食なに 作ろうかな

    あなたの昨日までの レシピ閲覧傾向から こんなレシピが おすすめですよ!! カレー、ラーメン、パスタ ... う〜ん、美味しそうだ けど今それらを 作りたいわけじゃ ないんだよな
  18. © 2024 Cookpad Inc. 33 検索行動後に推薦するイメージ ナスと挽き肉が あるな... これで夕食なに 作ろうかな

    もしかしていま ナスと挽き肉で レシピ探してます!? それならこんな料理も 作れますよ! ナスと挽き肉で 検索っと... う〜ん悩むな マ!? 発想になかったけど、よく 見たら 私の好きな味付け・ 得意な調理方法で こんなレシピも 作れるんだ...! BIG TY
  19. © 2024 Cookpad Inc. 34 クックパッドで検索行動後に推薦するとしたら • ★ Sequential Recommend

    ◦ 回遊行動をしている最中にオンラインの推薦API に 問い合わせて「次に見てくれそうなアイテム」を表示する • Item-to-Item ◦ レシピの詳細ページで、別の関連レシピを表示する ◦ バッチだけ or バッチ + sequential recommend などで リランク のどちらもあり得る
  20. © 2024 Cookpad Inc. 35 Sequential Recommend • Session Based

    Recommendation とも呼ばれる ◦ Transformers4Rec などが有名 • id 配列を入力とし、次に出現しそうな id 候補を出力する ◦ なので、コールドユーザにも推薦できる • 次の単語を予測するモデルとほぼ同じ • 自分で実装することもできるが、フレームワークを使うと 簡単に実装できる ◦ RecBole など ◦ API 実装もそこまで複雑じゃない https://qiita.com/fufufukakaka/items/e03df3a7299b2b8f99cf
  21. © 2024 Cookpad Inc. 36 Sequential Recommend: 実験結果 • 検索行動のセッション中で、次に閲覧するレシピを予測する問題

    として学習させた際の結果 CORE↓ BERT4Rec SASRec CORE Recall@10 0.421 0.435 0.542 Precision@10 0.042 0.043 0.054 NDCG@10 0.278 0.285 0.382 MRR@10 0.233 0.238 0.332 ItemCoverage@10 0.236 0.338 0.429 AveragePopularity@10 295.2 423.76 329.28 また、BERT4Rec, SASRec に比べると CORE は少し学習時間が短かった
  22. © 2024 Cookpad Inc. 37 具体例: Sequential Recommend ナシゴレン ガパオライス

    ガーリック ライス 卵、トマトと長 ネギの 中華スープ あるユーザの閲覧履歴 画像は wikimedia より引用 このあと何を推薦しようかな ...
  23. © 2024 Cookpad Inc. 38 具体例: Sequential Recommend モデル(CORE)の推薦結果 1.

    ごぼうと長ネギの中華スープ 2. 春雨と長ネギの中華スープ 3. もやしとわかめのスープ 4. ウインナーと卵の炒飯 5. 簡単本格ガパオライス • 直前が長ネギと卵のスープだったことを受けて 長ネギのスープが2つ推薦されている! • ガパオライス、ナシゴレンといったご飯物があった からか、中華スープのニュアンスを混ぜて炒飯が推薦 にある! • ガパオライスの推薦も出ているぞ
  24. © 2024 Cookpad Inc. 39 クックパッドで Sequential Recommend を使うとしたら 検索結果画面に差し込む

    ある程度閲覧行動を行っているユーザに 通常の検索結果の途中に 推薦結果を差し込む
  25. © 2024 Cookpad Inc. 40 クックパッドで Sequential Recommend を使うとしたら item2item

    レコメンドと組み合わせる sequential recommend の推薦結果を factorization machine などでリランキング or MF や item2vec で候補を用意したあとに sequential recommend でリランキング
  26. © 2024 Cookpad Inc. 42 本日のまとめ • クックパッドではこれまで様々な観点に基づくレコメンドを試してきた • 一方で、サービス特性を踏まえると相性の悪い・良いレコメンドがあることもわ

    かってきた • 他サービスを参考にして、ユーザの目的がはっきりしてから推薦を行うことが 有効なのでは、という仮説を立てた • Sequential Recommend に目をつけて実験を少しずつ進めている
  27. テーマのレコメンドの結果 © 2024 Cookpad Inc. 43 • 保存ベース、つくれぽベース、レシピ閲覧ベースはタップ率や再訪率にほとんど差 がなかった •

    レシピ投稿ベースは他3つに比べてややタップ率や再訪率が高かったが、掲出可能 なユーザー数が極端に少ない
  28. なぜ大きな差が生まれなかったのか © 2024 Cookpad Inc. 44 • つくれぽや保存は人によって基準が違う...?(=ノイズが多い) ◦ つくれぽ

    ▪ 作った ▪ 写真が綺麗に撮れた ▪ 美味しかった ◦ 保存 ▪ 美味しそう ▪ 今度作ろう ▪ 作った ▪ 作って美味しかった • レシピ投稿は「自分が好き」なレシピ以外に、「クックパッドで見てもらえそう」なレシ ピが投稿されることが多い