Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る

tera
November 04, 2024

 ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る

2024/10/30 @Recommendation Industry Talks #4

tera

November 04, 2024
Tweet

More Decks by tera

Other Decks in Technology

Transcript

  1. © ZOZO, Inc. 株式会社ZOZO 技術本部 データシステム部 推薦基盤ブロック ブロック長 技術本部 データサイエンス部

    推薦研究ブロック ブロック長 寺崎 優希 最高のZOZOTOWNを作るために2つの推薦系チームの リーダーを兼務しています。 近況として先々週に RecSys2024 in Bariに参加して 推薦システムの最先端に触れてきました。 趣味は鳥貴族です。 2 渡航前日に購入したネックピローで快眠している図
  2. © ZOZO, Inc. https://zozo.jp/ 4 • ファッションEC • 1,600以上のショップ、9,000以上のブランドの取り扱い •

    常時102万点以上の商品アイテム数と毎日平均2,600点以上の新着 商品を掲載(2024年6月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、シューズ専門ゾーン 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
  3. © ZOZO, Inc. https://wear.jp/ 5 • あなたの「似合う」が探せるファッションコーディネートアプリ • 1,700万ダウンロード突破、コーディネート投稿総数は1,400万 件以上(2024年6月末時点)

    • コーディネートや最新トレンド、メイクなど豊富なファッション 情報をチェック • AIを活用したファッションジャンル診断や、フルメイクをARで試 せる「WEARお試しメイク」を提供 • コーディネート着用アイテムを公式サイトで購入可能 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレン ト・デザイナー・インフルエンサーといった各界著名人も参加
  4. © ZOZO, Inc. 6 本日お話しすること・しないこと 話すこと • ZOZOTOWNのホーム画面にまつわる歴史的な経緯 • 直近のパーソナライズプロジェクトで採用したシステム構成と裏話

    • 上記システムリリース後の効果と現在の取り組み 話さないこと • 過去のパーソナライズプロジェクトの詳細 • ホーム画面以外の話 ◦ それ以外は(多分)全てお話しします
  5. © ZOZO, Inc. 13 ZOZOTOWNホーム画面の変遷年表 2021年 ・ホーム画面リニューアルと同時に  モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心

    2022年 ・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施
  6. © ZOZO, Inc. 14 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ

    ・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に  モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心
  7. © ZOZO, Inc. 15 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ

    ・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に  モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心 ・並び順パーソナライズ機能v1リリース ・v2リリースに向けて改修 2024年
  8. © ZOZO, Inc. 16 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ

    ・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に  モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心 ・並び順パーソナライズ機能v1リリース ・v2リリースに向けて改修 2024年 To Be Continued…🚀 20XX年
  9. © ZOZO, Inc. 18 モジュール並び順パーソナライズとは • ユーザーごとにモジュールの表示順序をパーソナライズする取り組み • ホーム画面リニューアル(2021年3月)の際にこの状態を見据えてAPIを設計 •

    通称「モジュパソ」 今人気のマストバイアイテム!! … いま羽織りたいライトアウター おうち時間を楽しむインテリア 今人気のマストバイアイテム!! トレンドアイテム全般を 好むユーザーA … 小物をよく閲覧する ユーザーB
  10. © ZOZO, Inc. 19 パーソナライズの方針 1. 「良いモジュール並び順になるとどうなる?」という問いへの回答の仮説立て ◦ 長期: ZOZOTOWNの来訪頻度・滞在時間が増えて受注金額が増大

    ◦ 短期: モジュールのクリック頻度が増大 2. KPIを「モジュール閲覧ユーザー1人あたりのモジュールクリック数」に設定 ◦ ※過去のA/BテストからKGIである受注系指標との連動を確認していた 3. 「モジュールのクリック数最適化」を目指す方針に決定
  11. © ZOZO, Inc. 21 案1. モジュールを表現する「ラベル」を用意してパーソナライズ ▶モジュールごとにその施策を企画した人*の意図をラベルで表現 セール中のライトアウター おうち時間を楽しむインテリア ラベル

    セール訴求 トレンド アウター AW 定番 小物 これを使って パーソナライズ *モジュール含めZOZOTOWNでの訴求内容を企画する専門のチームがいます
  12. © ZOZO, Inc. 22 案2. モジュールに表示される商品のメタデータを使ってパーソナライズ ▶商品メタデータを使ってモジュールを表現 セール中のライトアウター おうち時間を楽しむインテリア メタデータ

    これらを使って パーソナライズ 商品A - category=outer - price_type=sale 商品B - category=outer - price_type=sale - gender=men … … 商品X - category=calendar - group_id=12345 商品Y - category=toy - group_id=12345 … …
  13. © ZOZO, Inc. 23 選ばれたのは、案2でした • データ集めが大変 • ラベルの妥当性を評価できない •

    ラベルを管理する仕組みを作る 必要がある • 新規のデータ集めは不要 • 人力設計のラベル不要 • 新たなメタデータ(ラベル)の 管理などは不要 案1の課題点 案2だと… 案2もそこそこ複雑なシステムが必要にはなるものの、 プロジェクトの成功確度・拡張性・保守性等を鑑みて判断
  14. © ZOZO, Inc. 24 ここまでのまとめ 1. やりたいこと ◦ ユーザーごとにモジュールの並び順をパーソナライズする 2.

    パーソナライズの方針 ◦ モジュールのクリック数最適化を目指す 3. パーソナライズ方法 ◦ モジュールに表示される商品のメタデータを使う
  15. © ZOZO, Inc. 26 パーソナライズ方法の概観 ZOZOTOWN上の行動ログ ・カテゴリ: アウター ・価格タイプ: セール

    ・商品タイプ: 新品 ・カテゴリ: パーカー ・価格タイプ: セール ・商品タイプ: USED モジュールAに表示される 商品のメタデータ 0.2 0.5 0.8 … 0.1 0.1 0.9 … 0.5 0.4 0.2 … User Embedding Product Embeddings A 0.8374 Embedding Model Embedding Model ・カテゴリ: メガネ ・価格タイプ: 通常 ・商品タイプ: 新品 ・カテゴリ: 財布 ・価格タイプ: セール ・商品タイプ: 新品 モジュールBに表示される 商品のメタデータ 0.1 0.1 0.9 … 0.5 0.4 0.2 … Product Embeddings B Score A 0.3461 Score B スコアの降順 に並び替え
  16. © ZOZO, Inc. 27 パーソナライズ方法の概観 ZOZOTOWN上の行動ログ ・カテゴリ: アウター ・価格タイプ: セール

    ・商品タイプ: 新品 ・カテゴリ: パーカー ・価格タイプ: セール ・商品タイプ: USED モジュールAに表示される 商品のメタデータ 0.2 0.5 0.8 … 0.1 0.1 0.9 … 0.5 0.4 0.2 … User Embedding Product Embeddings A 0.8374 Embedding Model Embedding Model ・カテゴリ: メガネ ・価格タイプ: 通常 ・商品タイプ: 新品 ・カテゴリ: 財布 ・価格タイプ: セール ・商品タイプ: 新品 モジュールBに表示される 商品のメタデータ 0.1 0.1 0.9 … 0.5 0.4 0.2 … Product Embeddings B Score A 0.3461 Score B スコアの降順 に並び替え
  17. © ZOZO, Inc. 28 パーソナライズ方法の概観 ZOZOTOWN上の行動ログ ・カテゴリ: アウター ・価格タイプ: セール

    ・商品タイプ: 新品 ・カテゴリ: パーカー ・価格タイプ: セール ・商品タイプ: USED モジュールAに表示される 商品のメタデータ 0.2 0.5 0.8 … 0.1 0.1 0.9 … 0.5 0.4 0.2 … User Embedding Product Embeddings A 0.8374 Embedding Model Embedding Model ・カテゴリ: メガネ ・価格タイプ: 通常 ・商品タイプ: 新品 ・カテゴリ: 財布 ・価格タイプ: セール ・商品タイプ: 新品 モジュールBに表示される 商品のメタデータ 0.1 0.1 0.9 … 0.5 0.4 0.2 … Product Embeddings B Score A 0.3461 Score B スコアの降順 に並び替え
  18. © ZOZO, Inc. 29 パーソナライズ方法の概観 ZOZOTOWN上の行動ログ ・カテゴリ: アウター ・価格タイプ: セール

    ・商品タイプ: 新品 ・カテゴリ: パーカー ・価格タイプ: セール ・商品タイプ: USED モジュールAに表示される 商品のメタデータ 0.2 0.5 0.8 … 0.1 0.1 0.9 … 0.5 0.4 0.2 … User Embedding Product Embeddings A 0.8374 Embedding Model Embedding Model ・カテゴリ: メガネ ・価格タイプ: 通常 ・商品タイプ: 新品 ・カテゴリ: 財布 ・価格タイプ: セール ・商品タイプ: 新品 モジュールBに表示される 商品のメタデータ 0.1 0.1 0.9 … 0.5 0.4 0.2 … Product Embeddings B Score A 0.3461 Score B スコアの降順 に並び替え
  19. © ZOZO, Inc. 30 Embedding Modelの学習方法 • 直近の商品閲覧系列を元に「ユーザーが次に閲覧する商品」を予測するよう にTwo-Towerモデルを学習 ◦

    他の推薦システムでも同様のモデル構成を使っており容易に導入できるため採用 t-2 t-1 t t+1 Query Target 商品閲覧履歴 - age=30 - gender=man …
  20. © ZOZO, Inc. 31 スコアの計算方法 • モジュールは複数の商品を構成要素として持つ • モジュールに対するスコアの計算パターンは様々 1.

    商品ベクトルの平均をモジュールベクトルとする 0.1 0.1 0.9 0.3 0.3 0.5 0.1 0.7 0.2 0.3 0.5 0.5 モジュールベクトル 3. 商品スコアの平均をモジュールスコアとする 0.1 0.1 0.9 0.3 0.3 0.5 0.1 0.7 0.45 0.75 0.60 avg(0.45, 0.75) スコア計算 スコア計算 スコア計算 4. 商品スコアのmaxをモジュールスコアとする 0.1 0.1 0.9 0.3 0.3 0.5 0.1 0.7 0.45 0.75 スコア計算 スコア計算 max(0.45, 0.75) 2. 商品ベクトルのmaxをモジュールベクトルとする 0.1 0.1 0.9 0.3 0.3 0.5 0.1 0.7 0.3 0.5 0.9 0.7 モジュールベクトル 0.80 スコア計算 avg max pooling
  21. © ZOZO, Inc. 32 オフライン評価 • 定量評価 ◦ 評価用のパイプラインをVertex AI

    Pipelinesで作成しExperimentsで結果を管理 ◦ nDCGにて評価 ▪ 過去実績があまりに強すぎるモジュール*は評価時に除外 • 定性評価 ◦ notebookでパーソナライズ前後の状態を比較 ◦ 商品の閲覧系列もセットで確認 ◦ プロジェクトメンバー・チームメンバーにも協力してもらった(弊社のいいところ) * 例えば「チェックしたアイテム」はクリック数が圧倒的なので除外
  22. © ZOZO, Inc. 39 (補足)モジュールの管理方法 • モジュールを管理するためのツールを内製して運用 ◦ ツール自体は元々存在していたためパーソナライズ対象とするモジュールを管理できる ように改修

    • モジュールの企画・入稿・管理は専門のチームにて実施 ◦ ≠エンジニア組織 商品ベクトル化 パイプライン BigQuery GKE 管理ツール Vertex AI Pipelines モジュール情報参照 モジュール情報書込み モジュール入稿 管理チーム
  23. © ZOZO, Inc. 41 A/Bテストの内容と結果 • 実施内容 ◦ 対象: ホーム画面に訪れたZOZOTOWN会員(=非会員は対象外)

    ◦ 期間: 約1ヶ月 • 結果 ◦ クリック系の指標は想定通り改善 指標 結果(T/C比) ホーム画面訪問者の受注金額 100.1 (%) モジュール経由の受注金額 100.1 (%) モジュール経由の受注点数 100.4 (%) モジュール掲載商品のインプレッション数 105.2 (%) モジュール掲載商品のクリック数 103.2 (%)
  24. © ZOZO, Inc. 44 課題1: 表示されるアイテムがよく重複する • Two-Towerモデルの問題設定の影響で同じ商品が並ぶモジュールが頻出 ◦ その結果beyond-accuracy

    metricsが軒並み悪化 🔥 セール中のライトアウター 寒くなるこれからの季節に 今がトレンドのアイテムを集めました 訴求軸は微妙に違うが 表示される商品が被る 指標 Up / Down Diversity Novelty Coverage Down Down Up
  25. © ZOZO, Inc. 課題1の原因と対策 - 表示されるアイテムがよく重複する • 原因 ◦ 運用でカバーできるはず…!と思っていたがカバーできなかった

    ▪ 訴求軸が違っていても表示される商品が重複するケースが頻発 ▪ そもそも人間が運用でカバーできる問題ではなかった… • 対策 ◦ ファーストビューが同じモジュールをルールで弾く ◦ リランキングの導入
  26. © ZOZO, Inc. 次も絶対アウターを見そう! アウターが表示される モジュールを出すぞ! うぉぉぉぉおおおぉ! 課題2: 直近閲覧していたカテゴリーに依存しすぎる •

    商品の閲覧系列は同一カテゴリーの商品で構成されることが多い ◦ つまりユーザーが次に閲覧する商品 = 直前に閲覧していたカテゴリーの商品であるこ とがほとんど ◦ ユーザーが閲覧したカテゴリーばかりが表示されるため興味の幅は広がらない t-2 t-1 商品閲覧履歴 t 46 セール中のライトアウター 寒くなるこれからの季節に 今がトレンドのアイテムを集めました
  27. © ZOZO, Inc. 課題2の原因と対策 - 直近閲覧していたカテゴリーに依存しすぎる • 原因 ◦ 閲覧最適化で学習されたモデルの挙動を想像できていなかった

    ▪ Two-Towerモデルを心に宿すことができていなかった…! ◦ 計測・改善しやすい「クリック数」の最適化を目標に据えていた ▪ ZOZOTOWNにおけるホーム画面の役割とは?という問いへの答えを持たずに目標を決めていた • 対策 ◦ Two-Towerモデルの問題設定を見直し + リランキングの導入 ◦ 「ZOZOTOWNの◦◦面での推薦はどうあるべきか」を検討 ▪ 少なくともホーム画面でリタゲばかりするべきではないはず
  28. © ZOZO, Inc. 現在進めていること 1. 課題1, 2に対応した改善施策 a. ファーストビュー商品の考慮・リランキングの導入 b.

    Two-Towerモデルの問題設定見直し c. ホーム画面の KPI 見直し 2. モジュール内の商品並び順をユーザーごとにパーソナライズ a. 現状は全ユーザーで同じ並び順で商品を出している ▪ 特定の検索条件 + 人気順 b. 表示される商品がパーソナライズされるとモジュールの並び順も改善される 3. A/Bテスト実施サイクル高速化に向けたシステム改善 a. A/Bテスト実施までに必要な工程の標準化・自動化