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
[2023 CCSE] ZOZOTOWN検索における 研究開発の取り組みについて
Search
tomoya yamazaki
December 24, 2023
Research
0
230
[2023 CCSE] ZOZOTOWN検索における 研究開発の取り組みについて
CCSE2023
https://ccse.jp/2023/
での発表資料です。
tomoya yamazaki
December 24, 2023
Tweet
Share
More Decks by tomoya yamazaki
See All by tomoya yamazaki
論文紹介 / [SIGIR 2020] Query Reformulation in E-Commerce Search
tomoyayama
0
240
Other Decks in Research
See All in Research
EBPMにおける生成AI活用について
daimoriwaki
0
180
Zipf 白色化:タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数
eumesy
PRO
5
650
Tietovuoto Social Design Agency (SDA) -trollitehtaasta
hponka
0
2.5k
第 2 部 11 章「大規模言語モデルの研究開発から実運用に向けて」に向けて / MLOps Book Chapter 11
upura
0
380
ECCV2024読み会: Minimalist Vision with Freeform Pixels
hsmtta
1
140
Weekly AI Agents News!
masatoto
25
24k
Isotropy, Clusters, and Classifiers
hpprc
3
630
Human-Informed Machine Learning Models and Interactions
hiromu1996
2
470
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
1
320
20240918 交通くまもとーく 未来の鉄道網編(太田恒平)
trafficbrain
0
220
機械学習でヒトの行動を変える
hiromu1996
1
300
ニューラルネットワークの損失地形
joisino
PRO
35
16k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
243
12k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Making Projects Easy
brettharned
115
5.9k
Rails Girls Zürich Keynote
gr2m
94
13k
Building Adaptive Systems
keathley
38
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
We Have a Design System, Now What?
morganepeng
50
7.2k
Happy Clients
brianwarren
98
6.7k
Writing Fast Ruby
sferik
627
61k
Transcript
ZOZOTOWN検索における 研究開発の取り組みについて 株式会社ZOZO 検索基盤部 検索研究ブロック ブロック長 山﨑朋哉 Copyright © ZOZO,
Inc. 1 @CCSE2023
© ZOZO, Inc. 株式会社ZOZO 検索基盤部 検索研究ブロック ブロック長 山﨑朋哉 略歴 2016年〜2019年:
ヤフー株式会社でナレッジベースの開発 2020年〜現在: 株式会社ZOZOでZOZOTOWN検索の研究開発 業務分野: クエリ意図解釈・検索ロジック改善・PM 趣味 軟式テニス・ぷよぷよ 2
© ZOZO, Inc. https://zozo.jp/ • ファッションEC • 1,500以上のショップ、8,900以上のブランドの取り扱い • 常時95万点以上の商品アイテム数と
毎日平均2,900点以上の新着商品を掲載(2023年9月末時点) 3
© ZOZO, Inc. 4 アジェンダ • 検索研究ブロックでの開発研究の進め方 ◦ オフライン評価 /
ABテスト評価を手早く実施できることが大切 • 検索改善の事例紹介 ◦ オフライン評価 / ABテスト評価の結果が必ずしも一致しない
© ZOZO, Inc. 5 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る a
© ZOZO, Inc. 6 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る a プロダクトの成熟度合いで、準備する環境/基盤は異なる ルールベース
ログ活用した ルールベース 機械学習モデル 導入 機械学習モデル 継続的改善 リリース自動化 ◯ ◯ ◯ ◯ ABテスト基盤 ◯ ◯ ◯ ◯ オフライン評価基盤 ◯ ◯ ◯ ◯ ログ基盤 x ◯ ◯ ◯ 負荷試験環境 x x ◯ ◯ 機械学習モデル構築 ワークフロー x x x ◯ ※ 検索リランキング ロジックの例
© ZOZO, Inc. ルールベース ログ活用した ルールベース 機械学習モデル 導入 機械学習モデル 継続的改善
リリース自動化 ◯ ◯ ◯ ◯ ABテスト基盤 ◯ ◯ ◯ ◯ オフライン評価基盤 ◯ ◯ ◯ ◯ ログ基盤 x ◯ ◯ ◯ 負荷試験環境 x x ◯ ◯ 機械学習モデル構築 ワークフロー x x x ◯ 7 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る a プロダクトの成熟度合いで、準備する環境/基盤は異なる 特に評価のしやすさが 開発研究のしやすさに繋がる ※ 検索リランキング ロジックの例
© ZOZO, Inc. 8 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 詳細は... ZOZOTOWN検索機能のマイクロサービス化への取り組み これからのZOZOを支える
ログ収集基盤を設計した話 Vertex AI Pipelinesによる機械学習ワークフローの自動化 a
© ZOZO, Inc. 9 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ①
検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー)
© ZOZO, Inc. 10 検索研究ブロックでの開発研究の進め方 バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の
アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ① 検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー)
© ZOZO, Inc. 11 検索研究ブロックでの開発研究の進め方 バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の
アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 優先度の高い手法からオフライン評価する 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ① 検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー)
© ZOZO, Inc. 12 検索研究ブロックでの開発研究の進め方 バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の
アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ① 検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー)
© ZOZO, Inc. 13 検索研究ブロックでの開発研究の進め方 バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の
アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 優先度が高く、オフライン評価を クリアした手法をABテスト対象とする 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ① 検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー)
© ZOZO, Inc. 14 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ①
検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー) バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 ABテスト評価をクリアして、 かつリリースOKの判断がでた施策
© ZOZO, Inc. 15 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ①
検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー) バイアス削減 ベクトル検索 パーソナライズ ︙ 検索改善の アイデア バイアス 削減手法1 バイアス 削減手法2 バイアス 削減手法3 パーソナライズ特徴量 追加手法1 パーソナライズ特徴量 追加手法2 パーソナライズ特徴量 追加手法3 ベクトル検索 手法1 ベクトル検索 手法2 ベクトル検索 手法3 手法の優先度 再度①の優先度決めからスタート
© ZOZO, Inc. 16 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ①
検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める Python Dashによりデータ分析結果の共有を効率化する取り組み ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ZOZOTOWN検索の精度評価への取り組み ③ ABテスト評価結果を参考に、POの判断をもってリリースする (※ PO: プロダクトオーナー) ZOZOTOWN検索におけるA/Bテスト分析の自動化の取り組み
© ZOZO, Inc. 17 検索研究ブロックでの開発研究の進め方 1. 開発者が仮説検証しやすい環境を作る 2. リリースする施策を選別する ①
検索改善のアイデアを出し、そのアイデアに対する手法の優先度を決める ② オフライン定性・定量評価結果を参考に、ABテスト対象の施策を決める ③ ABテスト評価結果を参考に、POの判断をもってリリースする なぜ評価の結果を「参考に」するだけなのか? 課題1: オフライン評価結果とABテスト評価結果は必ずしも一致しない → 具体的な事例は後述 課題2: ABテスト評価結果が良くても、機能のROIが低いこともある → 総合的にプラス影響があるかを判断する
© ZOZO, Inc. 18 アジェンダ • 検索研究ブロックでの開発研究の進め方 ◦ オフライン評価 /
ABテスト評価を手早く実施できることが大切 • 検索改善の事例紹介 ◦ オフライン評価 / ABテスト評価の結果が必ずしも一致しない
© ZOZO, Inc. 19 検索改善施策のリリースまでの事例 検索改善施策事例 オフライン 定量評価 (nDCGなど) ABテスト評価
機能指標 (CTR / CVR) ABテスト評価 ゴール指標 (売上) ポジション バイアス除去 微悪化 有意差有り 改善 有意差無し Relevancy変更 微改善 有意差有り 悪化 有意差無し パーソナライズ 特徴量追加 大幅に改善 有意差有り 改善 有意差無し ref: ZOZOTOWN検索精度改善の取り組み
© ZOZO, Inc. 20 検索結果出力のロジック概要 全商品 d … a c
b e b a d ︙ e c 12.0 9.8 0.6 0.4 0.1 ︙ 軽量な線形モデルで スコアリング a p d ︙ b c 9.8 8.2 12.0 0.4 0.1 ︙ 上位N件を ランキング学習で リランキング 検索意図に マッチする商品を 絞り込む
ランキング学習とは ランキング学習とは 検索クエリ q と候補商品 d から、特徴量 と正解ラベル を作成する ランキング学習の損失関数
L(): 損失関数, f(): モデル出力, Q: 全検索クエリ集合 21
© ZOZO, Inc. 22 ABテスト例: ポジションバイアスの除去 クリック率 ポジション 課題: 検索結果の上段・左側ほどクリック率が高い
商品が一度上位のポジションに掲出される → その商品がよくクリックされる → そのデータを学習した機械学習モデルは、 上位に掲載された商品を正解として扱ってしまう
© ZOZO, Inc. 23 ABテスト例: ポジションバイアスの除去 課題: 検索結果の上段・左側ほどクリック率が高い 施策: •
ランキング学習の訓練時にポジションを特徴量として学習させ、 推論時にそのポジション特徴量を使用しない [特徴量1, 特徴量2, …, 特徴量N, ポジション特徴量] 学習時: [10.2, 0.3, …, 4.2, 3 ] 推論時: [10.2, 0.3, …, 4.2, 0 ]
© ZOZO, Inc. 24 ABテスト例: ポジションバイアスの除去 課題: 検索結果の上段・左側ほどクリック率が高い 施策: •
ランキング学習の訓練時にポジションを特徴量として学習させ、 推論時にそのポジション特徴量を使用しない 結果: オフライン 定量評価 ABテスト評価 機能指標 ABテスト評価 ゴール指標 微悪化 有意差有り 改善 有意差なし
© ZOZO, Inc. 25 ABテスト例: Relevancyの改善 課題: 最適化するラベル ( )
がゴール指標そのものではない 施策: • 商品 d の特徴に応じて重み算出する を定義 例 商品価格 > >= 商品価格 > >= 商品価格
© ZOZO, Inc. 26 ABテスト例: Relevancyの改善 オフライン 定量評価 ABテスト評価 機能指標
ABテスト評価 ゴール指標 微改善 有意差有り 悪化 有意差なし 課題: 最適化するラベル ( ) がゴール指標そのものではない 施策: • 商品 d の特徴に応じて重み算出する を定義 結果:
© ZOZO, Inc. 27 ABテスト例: パーソナライズ特徴量の追加 課題: ユーザーのデモグラ・行動ログを使用できていない 施策: •
特徴量 にユーザー情報を加えた に拡張する 例: ユーザーの「カテゴリーごとの過去1ヶ月の商品購入数」 U : 全ユーザー
© ZOZO, Inc. 28 ABテスト例: パーソナライズ特徴量の追加 課題: ユーザーのデモグラ・行動ログを使用できていない 施策: •
特徴量 にユーザー情報を加えた に拡張する 例: ユーザーの「カテゴリーごとの過去1ヶ月の商品購入数」 結果: オフライン 定量評価 ABテスト評価 機能指標 ABテスト評価 ゴール指標 大幅に改善 有意差有り 改善 有意差なし
© ZOZO, Inc. 29 検索改善施策のリリースまでの事例 オフライン評価とABテスト評価結果は関連するケースも多い ただし、関連しないケースも観測されるため、評価結果の解釈が大切 検索改善施策事例 オフライン 定量評価
ABテスト評価 機能指標 ABテスト評価 ゴール指標 ポジション バイアス除去 微悪化 有意差有り 改善 有意差無し Relevancy変更 微改善 有意差有り 悪化 有意差無し パーソナライズ 特徴量追加 大幅に改善 有意差有り 改善 有意差無し
© ZOZO, Inc. 30 まとめ • 開発研究の進め方 ◦ 開発者が試行錯誤しやすい環境を作る ◦
リリースする施策を選別する • 施策の選別方法 ◦ オフライン評価・ABテスト評価結果を参考に、 最終的にはPOがリリース判断する • 検索改善の事例紹介 ◦ ポジションバイアス除去 ◦ Relevancy変更 ◦ パーソナライズ特徴量追加
None
© ZOZO, Inc. 32 検索研究ブロックにおける「研究」とは 検索研究ブロック 注力範囲 ref: https://www.stat.go.jp/data/kagaku/kekka/a3_25you.html 基礎研究
応用研究 開発研究 既に実用化されている方法に関して、 新たな応用方法を探索する研究 新しいシステムの導入や、 既存のシステムの改良を狙いとする研究 特別な応用を考慮することなく、 新しい知識を得るための研究
© ZOZO, Inc. 33 APPENDIX: 検索全体の流れ