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

Cookpad TechConf2022 / Machine-Learning-At-Cookpad-Mart

Cookpad TechConf2022 / Machine-Learning-At-Cookpad-Mart

2022/11/25 に行われた Cookpad TechConf 2022 で発表された 「新規事業クックパッドマートを 支える機械学習の技術」の資料です。

Speaker1: Yusuke Fukasawa https://twitter.com/fukkaa1225
Speaker2: Yasuhiro Yamaguchi https://twitter.com/altescy

Yusuke Fukasawa

November 30, 2022
Tweet

More Decks by Yusuke Fukasawa

Other Decks in Technology

Transcript

  1. 新規事業クックパッドマートを 支える機械学習の技術 深澤祐援 / 山口泰弘 研究開発部 1

  2. Speaker.1: Yusuke Fukasawa 2 • 2019年に中途入社 • 機械学習エンジニアとしてモデルの実験開発・API開発・ 研究発表など関係することを何でもやる •

    NLP・レコメンドが好き • 好きな料理は餃子 🥟
  3. Speaker.2: Yasuhiro Yamaguchi 3 • 2021年に新卒入社 • 自然言語処理を中心に機械学習モデルの開発・ サービスへの導入や言語資源の整備などを行う •

    最近はレシピ検索システムにも関わっている • イタリア料理にハマっている
  4. クックパッドマートで 機械学習をやる 4

  5. なぜやるのか? 5

  6. 6 ユーザ体験を向上させ 事業をさらに成長させるため

  7. なにをやる? 7

  8. 注文 出品 配送 受け取り レビュー

  9. 注文 出品 配送 受け取り レビュー レコメンデーション

  10. 注文 出品 配送 受け取り レビュー レコメンデーション レビューチェッカー

  11. 注文 出品 配送 受け取り レビュー レビューチェッカー レコメンデーション キーワードサジェスト

  12. 本日お話する 3つのコンポーネント 12 • レコメンデーション • レビューチェッカー • キーワードサジェスト

  13. 13 • レコメンデーション • レビューチェッカー • キーワードサジェスト

  14. クックパッドマートにおける レコメンデーション 14 • アイテムに対するレコメンデーションを出し合わせ 買い機会を創出する ◦ 合わせて購入されるアイテムの履歴を学習 ◦ 「よく一緒に購入されている商品」として表出

  15. クックパッドマートにおける レコメンデーション 15 • ユーザへのレコメンデーションでついで買い機会 を創出する ◦ ユーザの購買履歴を学習 ◦ 「こんな商品もあったんだ」と感じてもらいたい

  16. 16

  17. 17 RecVAE KL Divergence User Rating Matrix μ log σ^2

    User Rating Matrix log σ^2 Cross-Entropy Loss μ Encoder Weights: θ_old Dropout rate: 0 Encoder Weights: θ Dropout rate: 0.5 Decoder Weights: θ Predicted User Rating Matrix
  18. 18 工夫したこと: 1 精度以外の指標にも着目する

  19. 工夫したこと.1 19 • 精度以外の指標にも着目する ◦ レコメンドの順位を評価するNDCGと合わせて、以下の指標を特に注視 ▪ Item Coverage •

    レコメンデーションが偏っていないか ▪ Average Popularity • 人気商品ばかりが上位に並んでいないか ◦ 学習にかかる時間
  20. 20 MacridVAE NDCG: ◦ ItemCoverage: ◦ AveragePopularity: × Training Time:

    × RecVAE NDCG: ◦ ItemCoverage: △ AveragePopularity: △ Training Time: ◦
  21. 21 工夫したこと: 2 自分でレコメンド結果をたくさん眺める

  22. 工夫したこと.2 22 • 定性評価を怠らない ◦ 推薦結果をたくさん グッと睨む ◦ Beyond Metrics

    ▪ アルゴリズムの 性格を理解する カバレッジは低いが サーモンに玉ねぎ → カルパッチョだ! 合わせ買いしやすい カバレッジは高いけど サーモンに真鯛 → 美味しそうだけど 役割が似てる? 脳内会議 (玉ねぎ) (真鯛刺身) RecVAE (ItemCoverage: 0.3) Item2Vec (ItemCoverage: 0.5)
  23. 23 レコメンデーション: サマリー • Item-to-Item, User-to-Item のレコメンドを実装 • 工夫1: 精度以外の指標もよく見る

    • 工夫2: モデルを定性的に分析し、数字以上に理解する
  24. 24 • レコメンデーション • レビューチェッカー • キーワードサジェスト

  25. ユーザレビューの半自動チェック 25 • よかった/ざんねん 商品レビュー • “よかった”レビューとして投稿されたが内容 が”よかった”ラベルには適さない レビュー を監視したい

  26. ユーザレビューの半自動チェック 26 • レビューテキスト・投稿画像それ ぞれをスコアリング • しきい値 → Slack 通知

    • 最終的に hide するかどうかは CS の方による手動 ◦ 業務負担の削減が目的 熟れ過ぎて包丁で剥けませんでした 美味しかったのですが 少し変色しているところがありました とても美味しいしらすでした!
  27. ユーザレビューチェッカーを高速に実装する 27 • 半自動監視の仕組みが、レシピサービスのつくれぽに対して既に存在 している ◦ 画像: 「料理・食べ物画像かどうか」を判定するモデル ◦ テキスト:

    つくれぽのメッセージについて、不適切かどうかをスコアリングす るモデル • レビューチェックを素早く実装するために、似た仕組みのこれらを活用
  28. レビューチェック: 投稿画像 28 • 「投稿された画像が食材・料理写真かどうか」を判定する ◦ つくれぽのチェックと同じ EfficientNet B6 Feed-forward

    Network Food-or-Not score Target Image
  29. 29 BiLSTM Max-Pool Avg-Pool Sum Concat Feed-Forward fastText よかった/ざんねん •

    過去に投稿されたレビューのコメ ントからよかった/ざんねんを予測 するように学習 • Global/Localな特徴を捉えるため に複数のPoolingを導入 レビューコメント レビューチェック: テキスト
  30. 30 レビューチェッカー: サマリー • レビューチェックするモデルを高速に構築 • 画像・テキストどちらもレシピサービス向けに構築していたものを活用 ◦ 画像: food-or-not

    を判定 ◦ テキスト: モデルの構造はそのままに、マートのデータで再学習
  31. 31 • レコメンデーション • レビューチェッカー • キーワードサジェスト

  32. 商品の内容を表す「キーワード」を紐づけたい 32 • クックパッドマートの商品名は多様 ◦ 商品名は出品者によって自由に入力される ◦ 商品名に表記揺れ・キャッチコピーなどが含まれる ◦ 商品の実態を機械的に判断することが困難

    • 商品のタイトル等から実態を表す食材キーワードを付与したい ◦ 愛知県産 グリーンアスパラ → アスパラガス ◦ 甘くて美味しいシルクスイート → さつまいも
  33. 商品の内容を表す「キーワード」を紐づけたい 33 • クックパッドマートの商品名は多様 ◦ 商品名は出品者によって自由に入力される ◦ 商品名に表記揺れ・キャッチコピーなどが含まれる ◦ 商品の実態を機械的に判断することが困難

    • 商品のタイトル等から実態を表す食材キーワードを付与したい ◦ 愛知県産 グリーンアスパラ → アスパラガス ◦ 甘くて美味しいシルクスイート → さつまいも
  34. 食材キーワード予測における課題 • 扱う商品のバリエーションの多さ ◦ 1万以上の商品が出品されている ◦ あまりスーパーなどで見かけない商品もあり、種類の分布はロングテール • 商品名の表記揺れ ◦

    漢字・かな・略称 : 豚肉小間切れ /豚コマ / 豚小間肉 ◦ 食材名・品種名の違い : じゃがいも / メークイン / キタアカリ • Fine-grained な分類の必要性 ◦ 同じ「牛肉」でも、「ステーキ用」や「切り落とし」などの区別が必要 ◦ 「加熱用」「生食用」の区別も 34
  35. キーワード予測モデル • ペアになる商品名・キーワードを 用いて対照学習 • レシピデータで学習した単語埋め 込みを用いて表記揺れを吸収 • 商品名・キーワードの記述の 対応を考慮する注意機構

    35 “単語埋め込みを利用した商品に対するキーワードの予測 ” 言語処理学会第 28回年次大会 (NLP2022)
  36. 管理画面におけるキーワード提案 • 商品名から食材キーワードを予測するAPIサーバーを作成 • クックパッドマートの管理画面にモデルの予測結果を出力 36

  37. 37 キーワードサジェスト サマリー • 機械学習モデルを用いた商品への食材キーワード提案 • 料理ドメインの単語埋め込み+注意機構で多様な表記 ・Fine-grainedな分類に対応 • 商品管理画面にキーワードサジェスト機能を導入

  38. まとめ 38 • レコメンデーション … バランスを表す指標・定性評価の重要性 • レビューチェック ... 高速に通知機能を実装

    • キーワードサジェスト … 多様な表記・分類に対応 • 今後も機械学習を使って、クックパッドを大成長させます 💪
  39. None