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
0
130
ZOZOTOWNのホーム画面をパーソナライズすることの難しさと裏話を語る
2024/10/30 @Recommendation Industry Talks #4
tera
November 04, 2024
Tweet
Share
More Decks by tera
See All by tera
ZOZOTOWNでの推薦システム活用事例の紹介
f6wbl6
0
120
Other Decks in Technology
See All in Technology
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
110
一休.comレストランにおけるRustの活用
kymmt90
3
620
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
15
4.1k
分布で見る効果検証入門 / ai-distributional-effect
cyberagentdevelopers
PRO
4
710
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
540
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.6k
Product Engineer Night #6プロダクトエンジニアを育む仕組み・施策
hacomono
PRO
1
500
IDOLY PRIDEのバックエンドリーダーになって2年半取り組んできたこと / idoly-pride-knowledge
cyberagentdevelopers
PRO
2
100
AWS CodePipelineでコンテナアプリをデプロイした際に、古いイメージを自動で削除する
smt7174
1
130
事業者間調整の行間を読む 調整の具体事例
sugiim
0
1.8k
Fargateを使った研修の話
takesection
0
150
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
4
700
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
Producing Creativity
orderedlist
PRO
341
39k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The Power of CSS Pseudo Elements
geoffreycrofte
72
5.3k
Facilitating Awesome Meetings
lara
49
6.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
A designer walks into a library…
pauljervisheath
202
24k
Designing for humans not robots
tammielis
249
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
160
A Philosophy of Restraint
colly
203
16k
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