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

    View full-size slide

  2. Speaker.1: Yusuke Fukasawa
    2
    ● 2019年に中途入社
    ● 機械学習エンジニアとしてモデルの実験開発・API開発・
    研究発表など関係することを何でもやる
    ● NLP・レコメンドが好き
    ● 好きな料理は餃子 🥟

    View full-size slide

  3. Speaker.2: Yasuhiro Yamaguchi
    3
    ● 2021年に新卒入社
    ● 自然言語処理を中心に機械学習モデルの開発・
    サービスへの導入や言語資源の整備などを行う
    ● 最近はレシピ検索システムにも関わっている
    ● イタリア料理にハマっている

    View full-size slide

  4. クックパッドマートで
    機械学習をやる
    4

    View full-size slide

  5. なぜやるのか?
    5

    View full-size slide

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

    View full-size slide

  7. なにをやる?
    7

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 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

    View full-size slide

  17. 18
    工夫したこと: 1
    精度以外の指標にも着目する

    View full-size slide

  18. 工夫したこと.1
    19
    ● 精度以外の指標にも着目する
    ○ レコメンドの順位を評価するNDCGと合わせて、以下の指標を特に注視
    ■ Item Coverage
    ● レコメンデーションが偏っていないか
    ■ Average Popularity
    ● 人気商品ばかりが上位に並んでいないか
    ○ 学習にかかる時間

    View full-size slide

  19. 20
    MacridVAE
    NDCG: ○
    ItemCoverage: ○
    AveragePopularity: ×
    Training Time: ×
    RecVAE
    NDCG: ○
    ItemCoverage: △
    AveragePopularity: △
    Training Time: ○

    View full-size slide

  20. 21
    工夫したこと: 2
    自分でレコメンド結果をたくさん眺める

    View full-size slide

  21. 工夫したこと.2
    22
    ● 定性評価を怠らない
    ○ 推薦結果をたくさん
    グッと睨む
    ○ Beyond Metrics
    ■ アルゴリズムの
    性格を理解する
    カバレッジは低いが
    サーモンに玉ねぎ
    → カルパッチョだ!
    合わせ買いしやすい
    カバレッジは高いけど
    サーモンに真鯛
    → 美味しそうだけど
    役割が似てる?
    脳内会議
    (玉ねぎ)
    (真鯛刺身)
    RecVAE
    (ItemCoverage: 0.3)
    Item2Vec
    (ItemCoverage: 0.5)

    View full-size slide

  22. 23
    レコメンデーション: サマリー
    ● Item-to-Item, User-to-Item のレコメンドを実装
    ● 工夫1: 精度以外の指標もよく見る
    ● 工夫2: モデルを定性的に分析し、数字以上に理解する

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. ユーザレビューの半自動チェック
    26
    ● レビューテキスト・投稿画像それ
    ぞれをスコアリング
    ● しきい値 → Slack 通知
    ● 最終的に hide するかどうかは
    CS の方による手動
    ○ 業務負担の削減が目的
    熟れ過ぎて包丁で剥けませんでした
    美味しかったのですが
    少し変色しているところがありました
    とても美味しいしらすでした!

    View full-size slide

  26. ユーザレビューチェッカーを高速に実装する
    27
    ● 半自動監視の仕組みが、レシピサービスのつくれぽに対して既に存在
    している
    ○ 画像: 「料理・食べ物画像かどうか」を判定するモデル
    ○ テキスト: つくれぽのメッセージについて、不適切かどうかをスコアリングす
    るモデル
    ● レビューチェックを素早く実装するために、似た仕組みのこれらを活用

    View full-size slide

  27. レビューチェック: 投稿画像
    28
    ● 「投稿された画像が食材・料理写真かどうか」を判定する
    ○ つくれぽのチェックと同じ
    EfficientNet B6
    Feed-forward
    Network
    Food-or-Not score
    Target Image

    View full-size slide

  28. 29
    BiLSTM
    Max-Pool Avg-Pool Sum
    Concat
    Feed-Forward
    fastText
    よかった/ざんねん
    ● 過去に投稿されたレビューのコメ
    ントからよかった/ざんねんを予測
    するように学習
    ● Global/Localな特徴を捉えるため
    に複数のPoolingを導入
    レビューコメント
    レビューチェック: テキスト

    View full-size slide

  29. 30
    レビューチェッカー: サマリー
    ● レビューチェックするモデルを高速に構築
    ● 画像・テキストどちらもレシピサービス向けに構築していたものを活用
    ○ 画像: food-or-not を判定
    ○ テキスト: モデルの構造はそのままに、マートのデータで再学習

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. 食材キーワード予測における課題
    ● 扱う商品のバリエーションの多さ
    ○ 1万以上の商品が出品されている
    ○ あまりスーパーなどで見かけない商品もあり、種類の分布はロングテール
    ● 商品名の表記揺れ
    ○ 漢字・かな・略称 : 豚肉小間切れ /豚コマ / 豚小間肉
    ○ 食材名・品種名の違い : じゃがいも / メークイン / キタアカリ
    ● Fine-grained な分類の必要性
    ○ 同じ「牛肉」でも、「ステーキ用」や「切り落とし」などの区別が必要
    ○ 「加熱用」「生食用」の区別も
    34

    View full-size slide

  34. キーワード予測モデル
    ● ペアになる商品名・キーワードを
    用いて対照学習
    ● レシピデータで学習した単語埋め
    込みを用いて表記揺れを吸収
    ● 商品名・キーワードの記述の
    対応を考慮する注意機構
    35
    “単語埋め込みを利用した商品に対するキーワードの予測 ”
    言語処理学会第 28回年次大会 (NLP2022)

    View full-size slide

  35. 管理画面におけるキーワード提案
    ● 商品名から食材キーワードを予測するAPIサーバーを作成
    ● クックパッドマートの管理画面にモデルの予測結果を出力
    36

    View full-size slide

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

    View full-size slide

  37. まとめ
    38
    ● レコメンデーション … バランスを表す指標・定性評価の重要性
    ● レビューチェック ... 高速に通知機能を実装
    ● キーワードサジェスト … 多様な表記・分類に対応
    ● 今後も機械学習を使って、クックパッドを大成長させます 💪

    View full-size slide