Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る
Search
tera
November 04, 2024
Technology
1
1.3k
ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る
2024/10/30 @Recommendation Industry Talks #4
tera
November 04, 2024
Tweet
Share
More Decks by tera
See All by tera
ZOZOTOWNでの推薦システム活用事例の紹介
f6wbl6
1
1.3k
Other Decks in Technology
See All in Technology
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
660
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
140
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
260
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
180
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
550
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
120
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
130
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
23k
効率的な技術組織が作れる!書籍『チームトポロジー』要点まとめ
iwamot
1
100
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
150
いまからでも遅くないコンテナ座学
nomu
0
130
なぜCodeceptJSを選んだか
goataka
0
180
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
41
7.1k
Producing Creativity
orderedlist
PRO
342
39k
GraphQLとの向き合い方2022年版
quramy
44
13k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
The Language of Interfaces
destraynor
154
24k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Transcript
ZOZOTOWNのホーム画面を パーソナライズすることの 難しさと裏話を語る 株式会社ZOZO 技術本部 データシステム部 推薦基盤ブロック 技術本部 データサイエンス部 推薦研究ブロック
ブロック長 寺崎 優希 Copyright © ZOZO, Inc. 1 2024/10/30 @Recommendation Industry Talks #4
© ZOZO, Inc. 株式会社ZOZO 技術本部 データシステム部 推薦基盤ブロック ブロック長 技術本部 データサイエンス部
推薦研究ブロック ブロック長 寺崎 優希 最高のZOZOTOWNを作るために2つの推薦系チームの リーダーを兼務しています。 近況として先々週に RecSys2024 in Bariに参加して 推薦システムの最先端に触れてきました。 趣味は鳥貴族です。 2 渡航前日に購入したネックピローで快眠している図
© ZOZO, Inc. 3 RecSys2024現地の様子
© ZOZO, Inc. https://zozo.jp/ 4 • ファッションEC • 1,600以上のショップ、9,000以上のブランドの取り扱い •
常時102万点以上の商品アイテム数と毎日平均2,600点以上の新着 商品を掲載(2024年6月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、シューズ専門ゾーン 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. https://wear.jp/ 5 • あなたの「似合う」が探せるファッションコーディネートアプリ • 1,700万ダウンロード突破、コーディネート投稿総数は1,400万 件以上(2024年6月末時点)
• コーディネートや最新トレンド、メイクなど豊富なファッション 情報をチェック • AIを活用したファッションジャンル診断や、フルメイクをARで試 せる「WEARお試しメイク」を提供 • コーディネート着用アイテムを公式サイトで購入可能 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレン ト・デザイナー・インフルエンサーといった各界著名人も参加
© ZOZO, Inc. 6 本日お話しすること・しないこと 話すこと • ZOZOTOWNのホーム画面にまつわる歴史的な経緯 • 直近のパーソナライズプロジェクトで採用したシステム構成と裏話
• 上記システムリリース後の効果と現在の取り組み 話さないこと • 過去のパーソナライズプロジェクトの詳細 • ホーム画面以外の話 ◦ それ以外は(多分)全てお話しします
© ZOZO, Inc. 7 1. ZOZOTOWNホーム画面の歴史 2. モジュール並び順パーソナライズプロジェクトの紹介 3. 機能リリース後の効果
4. リリース後に見えた課題と現在の取り組み 目次
© ZOZO, Inc. 8 1. ZOZOTOWNホーム画面の歴史 2. モジュール並び順パーソナライズプロジェクトの紹介 3. 機能リリース後の効果
4. リリース後に見えた課題と現在の取り組み 目次
© ZOZO, Inc. scroll 9 ZOZOTOWNホーム画面について • ZOZOTOWNを起動した時に最初に開かれるページ • モジュールと呼ばれる単位で商品をグルーピングしている
• 横スクロールでモジュールに関連する他の商品を閲覧できるカルーセル型UI モジュール
© ZOZO, Inc. 10 ZOZOTOWNホーム画面について • ZOZOTOWNを起動した時に最初に開かれるページ • モジュールと呼ばれる単位で商品をグルーピングしている •
横スクロールでモジュールに関連する他の商品を閲覧できるカルーセル型UI scroll
© ZOZO, Inc. 11 ZOZOTOWNホーム画面の変遷年表 2021年
© ZOZO, Inc. 12 ZOZOTOWNホーム画面の変遷年表 2021年 ・ホーム画面リニューアルと同時に モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心
© ZOZO, Inc. 13 ZOZOTOWNホーム画面の変遷年表 2021年 ・ホーム画面リニューアルと同時に モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心
2022年 ・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施
© ZOZO, Inc. 14 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ
・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心
© ZOZO, Inc. 15 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ
・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心 ・並び順パーソナライズ機能v1リリース ・v2リリースに向けて改修 2024年
© ZOZO, Inc. 16 ZOZOTOWNホーム画面の変遷年表 2021年 2022年 2023年 ・一部モジュールでパーソナライズ機能v4リリース ・モジュール管理ツール改修により運用が手離れ
・一部モジュールでパーソナライズ機能v1, v2, v3リリース ・内製のモジュール管理ツール運用開始 ・縦軸の並び順変更PoC実施 ・ホーム画面リニューアルと同時に モジュール推薦用APIリリース ・スプシでモジュールを管理する暗黒期 ・運用改善が中心 ・並び順パーソナライズ機能v1リリース ・v2リリースに向けて改修 2024年 To Be Continued…🚀 20XX年
© ZOZO, Inc. 17 1. ZOZOTOWNホーム画面の歴史 2. モジュール並び順パーソナライズプロジェクトの紹介 3. 機能リリース後の効果
4. リリース後に見えた課題と現在の取り組み 目次
© ZOZO, Inc. 18 モジュール並び順パーソナライズとは • ユーザーごとにモジュールの表示順序をパーソナライズする取り組み • ホーム画面リニューアル(2021年3月)の際にこの状態を見据えてAPIを設計 •
通称「モジュパソ」 今人気のマストバイアイテム!! … いま羽織りたいライトアウター おうち時間を楽しむインテリア 今人気のマストバイアイテム!! トレンドアイテム全般を 好むユーザーA … 小物をよく閲覧する ユーザーB
© ZOZO, Inc. 19 パーソナライズの方針 1. 「良いモジュール並び順になるとどうなる?」という問いへの回答の仮説立て ◦ 長期: ZOZOTOWNの来訪頻度・滞在時間が増えて受注金額が増大
◦ 短期: モジュールのクリック頻度が増大 2. KPIを「モジュール閲覧ユーザー1人あたりのモジュールクリック数」に設定 ◦ ※過去のA/BテストからKGIである受注系指標との連動を確認していた 3. 「モジュールのクリック数最適化」を目指す方針に決定
© ZOZO, Inc. 20 具体的な実現案 案1. モジュールを表現する「ラベル」を用意してパーソナライズ 案2. モジュールに表示される商品のメタデータを使ってパーソナライズ
© ZOZO, Inc. 21 案1. モジュールを表現する「ラベル」を用意してパーソナライズ ▶モジュールごとにその施策を企画した人*の意図をラベルで表現 セール中のライトアウター おうち時間を楽しむインテリア ラベル
セール訴求 トレンド アウター AW 定番 小物 これを使って パーソナライズ *モジュール含めZOZOTOWNでの訴求内容を企画する専門のチームがいます
© 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 … …
© ZOZO, Inc. 23 選ばれたのは、案2でした • データ集めが大変 • ラベルの妥当性を評価できない •
ラベルを管理する仕組みを作る 必要がある • 新規のデータ集めは不要 • 人力設計のラベル不要 • 新たなメタデータ(ラベル)の 管理などは不要 案1の課題点 案2だと… 案2もそこそこ複雑なシステムが必要にはなるものの、 プロジェクトの成功確度・拡張性・保守性等を鑑みて判断
© ZOZO, Inc. 24 ここまでのまとめ 1. やりたいこと ◦ ユーザーごとにモジュールの並び順をパーソナライズする 2.
パーソナライズの方針 ◦ モジュールのクリック数最適化を目指す 3. パーソナライズ方法 ◦ モジュールに表示される商品のメタデータを使う
© ZOZO, Inc. 25 パーソナライズシステムの紹介
© 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 スコアの降順 に並び替え
© 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 スコアの降順 に並び替え
© 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 スコアの降順 に並び替え
© 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 スコアの降順 に並び替え
© ZOZO, Inc. 30 Embedding Modelの学習方法 • 直近の商品閲覧系列を元に「ユーザーが次に閲覧する商品」を予測するよう にTwo-Towerモデルを学習 ◦
他の推薦システムでも同様のモデル構成を使っており容易に導入できるため採用 t-2 t-1 t t+1 Query Target 商品閲覧履歴 - age=30 - gender=man …
© 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
© ZOZO, Inc. 32 オフライン評価 • 定量評価 ◦ 評価用のパイプラインをVertex AI
Pipelinesで作成しExperimentsで結果を管理 ◦ nDCGにて評価 ▪ 過去実績があまりに強すぎるモジュール*は評価時に除外 • 定性評価 ◦ notebookでパーソナライズ前後の状態を比較 ◦ 商品の閲覧系列もセットで確認 ◦ プロジェクトメンバー・チームメンバーにも協力してもらった(弊社のいいところ) * 例えば「チェックしたアイテム」はクリック数が圧倒的なので除外
© ZOZO, Inc. 33 パーソナライズシステムの構成 サービング バッチ実行
© ZOZO, Inc. 34 パーソナライズシステムの構成 サービング バッチ実行
© ZOZO, Inc. 35 パーソナライズシステムの構成 サービング バッチ実行
© ZOZO, Inc. 36 パーソナライズシステムの構成 サービング バッチ実行
© ZOZO, Inc. 37 パーソナライズシステムの構成 サービング バッチ実行
© ZOZO, Inc. 38 パーソナライズシステムの構成 サービング バッチ実行 ?
© ZOZO, Inc. 39 (補足)モジュールの管理方法 • モジュールを管理するためのツールを内製して運用 ◦ ツール自体は元々存在していたためパーソナライズ対象とするモジュールを管理できる ように改修
• モジュールの企画・入稿・管理は専門のチームにて実施 ◦ ≠エンジニア組織 商品ベクトル化 パイプライン BigQuery GKE 管理ツール Vertex AI Pipelines モジュール情報参照 モジュール情報書込み モジュール入稿 管理チーム
© ZOZO, Inc. 40 1. ZOZOTOWNホーム画面の歴史 2. モジュール並び順パーソナライズプロジェクトの紹介 3. 機能リリース後の効果
4. リリース後に見えた課題と現在の取り組み 目次
© ZOZO, Inc. 41 A/Bテストの内容と結果 • 実施内容 ◦ 対象: ホーム画面に訪れたZOZOTOWN会員(=非会員は対象外)
◦ 期間: 約1ヶ月 • 結果 ◦ クリック系の指標は想定通り改善 指標 結果(T/C比) ホーム画面訪問者の受注金額 100.1 (%) モジュール経由の受注金額 100.1 (%) モジュール経由の受注点数 100.4 (%) モジュール掲載商品のインプレッション数 105.2 (%) モジュール掲載商品のクリック数 103.2 (%)
© ZOZO, Inc. 42 クリック系指標は改善した、が… • 最適化の方針に合致した改善を達成したが課題点もちらほら
© ZOZO, Inc. 43 1. ZOZOTOWNホーム画面の歴史 2. モジュール並び順パーソナライズプロジェクトの紹介 3. 機能リリース後の効果
4. リリース後に見えた課題と現在の取り組み 目次
© ZOZO, Inc. 44 課題1: 表示されるアイテムがよく重複する • Two-Towerモデルの問題設定の影響で同じ商品が並ぶモジュールが頻出 ◦ その結果beyond-accuracy
metricsが軒並み悪化 🔥 セール中のライトアウター 寒くなるこれからの季節に 今がトレンドのアイテムを集めました 訴求軸は微妙に違うが 表示される商品が被る 指標 Up / Down Diversity Novelty Coverage Down Down Up
© ZOZO, Inc. 課題1の原因と対策 - 表示されるアイテムがよく重複する • 原因 ◦ 運用でカバーできるはず…!と思っていたがカバーできなかった
▪ 訴求軸が違っていても表示される商品が重複するケースが頻発 ▪ そもそも人間が運用でカバーできる問題ではなかった… • 対策 ◦ ファーストビューが同じモジュールをルールで弾く ◦ リランキングの導入
© ZOZO, Inc. 次も絶対アウターを見そう! アウターが表示される モジュールを出すぞ! うぉぉぉぉおおおぉ! 課題2: 直近閲覧していたカテゴリーに依存しすぎる •
商品の閲覧系列は同一カテゴリーの商品で構成されることが多い ◦ つまりユーザーが次に閲覧する商品 = 直前に閲覧していたカテゴリーの商品であるこ とがほとんど ◦ ユーザーが閲覧したカテゴリーばかりが表示されるため興味の幅は広がらない t-2 t-1 商品閲覧履歴 t 46 セール中のライトアウター 寒くなるこれからの季節に 今がトレンドのアイテムを集めました
© ZOZO, Inc. 課題2の原因と対策 - 直近閲覧していたカテゴリーに依存しすぎる • 原因 ◦ 閲覧最適化で学習されたモデルの挙動を想像できていなかった
▪ Two-Towerモデルを心に宿すことができていなかった…! ◦ 計測・改善しやすい「クリック数」の最適化を目標に据えていた ▪ ZOZOTOWNにおけるホーム画面の役割とは?という問いへの答えを持たずに目標を決めていた • 対策 ◦ Two-Towerモデルの問題設定を見直し + リランキングの導入 ◦ 「ZOZOTOWNの◦◦面での推薦はどうあるべきか」を検討 ▪ 少なくともホーム画面でリタゲばかりするべきではないはず
© ZOZO, Inc. 現在進めていること 1. 課題1, 2に対応した改善施策 a. ファーストビュー商品の考慮・リランキングの導入 b.
Two-Towerモデルの問題設定見直し c. ホーム画面の KPI 見直し 2. モジュール内の商品並び順をユーザーごとにパーソナライズ a. 現状は全ユーザーで同じ並び順で商品を出している ▪ 特定の検索条件 + 人気順 b. 表示される商品がパーソナライズされるとモジュールの並び順も改善される 3. A/Bテスト実施サイクル高速化に向けたシステム改善 a. A/Bテスト実施までに必要な工程の標準化・自動化
© ZOZO, Inc. 49 俺たちの戦いはこれからだ
None