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

Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例 

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例 

LINEヤフーでは、様々なサービスの基盤に機械学習(ML)技術が使用され ています。サービスの一つであるYahoo!ショッピングでは、数多くの商 品を扱うレコメンデーション・システム向けに、大規模なデータ処理と MLモデルの学習と推論を日々行っています。本発表では大規模なレコメ ンデーション・システムならではの構成と、使用しているML技術の概要 について解説します。

More Decks by LINEヤフーTech (LY Corporation Tech)

Other Decks in Technology

Transcript

  1. © LY Corporation LINEヤフー株式会社 コマースドメイン・コマースCTOコマースサイエンスユニット ソフトウェアエンジニア 山下 直晃 / Naoaki

    Yamashita Yahoo!ショッピングのレコメンデーション・ システムにおけるML実践の一例 「候補選び(Retrieval)」から「並べ替え(Ranking)」までのバッ チ処理パイプライン
  2. © LY Corporation 5 商品との出会い方 @ Yahoo!ショッピング • 検索 ユーザーのキーワード入力

    • デイレクトリー ユーザーのカテゴリー選択 • レコメンデーション 各種の“おすすめ”を自動で
  3. © LY Corporation 6 レコメンデーション @ Yahoo!ショッピング レコメンデーション(商品の”おすすめ”)の例 • 閲覧中の商品に合わせて

    • 閲覧の履歴から • ユーザー情報や購入の履歴から • カート内の商品に合わせて などなど 受動的な情報の表示のため、待ち時間なく表示する必要がある https://lohaco.yahoo.co.jp/store/h-lohaco/item/u254244
  4. © LY Corporation 7 System Design: 一般論 ✓ 数多くのアイテム ✓

    高速にレスポンス ✓ レコメンド・アイテム毎の順序づけ → 段階的に数を減らして順序集合を作成 = Multi-Stage Recommender System • 自動化・最適化のために複数の機械学習(ML)モデルを使用 • モデルの推論などの処理はbatch(事前)からonline(逐次)と段階的に • ステージごとに改善・修正が可能 (全体的な改善・修正は大変) Xun Yang, Yunli Wang, Cheng Chen, Qing Tan, Chuan Yu, Jian Xu, Xiaoqiang Zhu. 2021. Computation Resource Allocation Solution in Recommender Systems
  5. © LY Corporation 8 System Design: Yahoo!ショッピング (1/2) 1. MLでレコメンド可能な商品集合の作成

    - 集計:Collaborative Filtering(CF) 2. 似た商品ごとに集合を作成 - ML:Retrieval/Recall Model (coverage x depth) 3. クリック(CT)や購買(CV)しやすさで順序づけ - ML:Ranking/Precision Model (KPI) 4. ビジネス・ロジック / ユーザー/KPI に合わせて Online フィルター、ソート、User2Item(KPI) - ML:Ranking/Precision Model (KPI) batch online items depth: 10^1 depth: 10^8 depth: 10^2
  6. © LY Corporation 9 System Design: Yahoo!ショッピング (2/2) Online Re-ranking

    Model Key-Value Store Online Search Engine Log Batch CF Retrieval Model Ranking Model DB 3. 2. 1. 4. Front End API Endpoint
  7. © LY Corporation 10 Batch: Item-to-Item の RecSys 閲覧中の商品(アイテム)に合わせて、別の商品(アイテム)をレコメンド item-to-item

    = 基本のレコメンド • アイテムごと ➔ Batch処理で概ね完了 • 多数のアイテムを高い頻度で更新 高スループット(=時間当たりの処理数)な手法 • MLモデルの学習・推論は、 大きなデータを並列で扱える(=スケールする)手法 item-to-itemでのbatch処理でのML利用法の紹介 Batch CF Retrieval Model Ranking Model 3. 2. 1. batch items depth: 10^8 depth: 10^2
  8. © LY Corporation 11 Item-to-Itemのステージ・タスクの概要 1. レコメンド可能な商品集合の作成 共起イベントの頻度の集計 = Collaborative

    Filtering(CF) 2. 似た商品ごとに集合を作成 ML:Retrieval/Recall Model (A) ( < 25 models) - item embedding (listwise contrastive) / similarity search 3. クリック(CT)や購買(CV)の傾向で順序づけ ML:Ranking/Precision Model (B) ( 4-5 models) - GBDT + learning to rank (pairwise - lambda rank) - DNN MLP/DCN + learning to rank (listwise - contrastive) - ML Feature: BERT-score (cross encoder, fine tune) CF (ETL) B-1:Ranking GBDT: B-2:Ranking DNN C:Ranking-Featrure BERT A: Retrieval item embedding
  9. © LY Corporation 12 Item-to-Item 計算環境 社内データ・センター(オンプレミス)の共用環境を使用 Hadoop環境: CPUノード 分散ストレージ(HDFS)

    分散処理 (Spark on YARN): ETL, 学習・推論 Kubernetes環境: GPUノード & CPUノード 分散処理(Ray/KubeRay): - マルチノードGPU学習・推論 - マルチノードCPU推論 シングルノードGPU学習 タスクはデータのI/OをHDFSとするbatch処理
  10. © LY Corporation 13 Scaling 1. 各バッチ・ジョブはAirflowで管理、ジョブ内のタスクを場合に応じて並列化 • カテゴリー毎(<25)の学習や推論 2.

    GBDTの学習/推論はYARN Spark上でSynapseML LightGBM を使用 • 学習は並列/直列でOptunaでハイパーパラメーター探索 3. Embedding model/ DNNの学習・推論はRay clusterはKubeRayを使用 • タスク単位でRayクラスター(GPU + CPU or CPU)を独立にデプロイ • タスク毎のデータ量に応じてGPUやCPUの学習の並列数やデバイス・タイプを 設定
  11. © LY Corporation 14 Item-to-Item ジョブ・パイプライン CF (ETL) データ 処理

    (ETL) Spark/T rino A: Emb学習 GPU Ray/KubeRay A:Emb 推論 CPU Ray/KubeRay B-1:GBDT推論 CPU: Spark/YARN B-1: GBDT 学習 CPU: Spark/YARN B-2: DNN推論 CPU: Ray/KubeRay B-1:DNN学習 GPU: Ray/KubeRay C:BERT学習 GPU C:BERT推論 GPU:Ray/KubeRay
  12. © LY Corporation 15 ML実行環境 1. 基本的にはnotebook + papermillでタスク実行 •

    実行結果でレポーティング(実行結果・グラフなどの可視化) • 開発と本番の実行環境が近い:エラーの再現・解決やオンボーディングが容易 2. 主なバッチ・ジョブは隔日程度で実行. 各ジョブを結果の再利用や再実行が容易な タスク毎に分解 • 計算リソースの制約 + メンテナンス対応 • A/Bテストのタスクの挿入を容易に 3. メトリック・モニターと学習モデルの自動更新 • タスク分割により、手動更新・介入も容易に
  13. © LY Corporation 16 MLシステムの更新: 1/2 今まで5年++ MLシステムを発展的に運用 Retrieval model:

    2回の大規模更新 (PyTorch/Pairwise -> TensorFlow/Listwise), Ray cluster導入 Ranking model: GBDT on YARN Spark: XGBoost → LightGBM : Scala->Python DNN: single node GPU 学習 + Spark on YARN推論(Intel BigDL) → Ray cluster (マルチノードGPU学習、マルチノードCPU推論) Airflow, Spark, Rayなどの更新対応、社内のプラットフォームのEOL対応 更新前のシステムとメトリック・KPIが低下しないかをテストしつつ更新・追加
  14. © LY Corporation 17 MLシステム更新: 2/2 MLモデル + システム: ハイパースケーラーやトップアカデミアの論文

    vs 現場 - リソースの非対称性:計算資源と人的資源 - データの質と規模の乖離: 実データ vs ベンチマーク、異なるサービス 目的の優先度:メトリック, 安定性、コスト、汎用性, などなど 運用: デバッグや改善サイクルの実施可能性: pip install fancy_recsys パイプラインのスケールアップ、安定性・再実行性: End-to-End→分離、チェックポイント 技術的な負債と返済: i.e. *_recommenders, *_ranking
  15. © LY Corporation 18 まとめ • Yahoo!ショッピングのレコメンデーション・システムは多段構成 • Item-to-itemのbatch処理では、主にretrieval model、ranking

    modelのMLモ デルが連携 • オンプレミスのHadoopとKubernetes環境でAirflowを用いてジョブを管理・ 実行 • MLシステムの更新は、KPI維持と運用上の課題解決を両立させながら実施
  16. © LY Corporation 19 Materials References • https://techblog.lycorp.co.jp/ja/20250129a • https://medium.com/@Jason.dai/optimized-large-scale-item-search-with-intel-bigdl-at-yahoo-Japan-shopping-

    c2399801a143 Logos Apache project logos Hadoop, Spark, Airflow: https://www.apache.org/logos/ Kubernetes https://github.com/Kubernetes/Kubernetes/tree/master/logo Ray: https://raw.githubusercontent.com/ray-project/ray/master/doc/source/images/