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
130
[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
200
Other Decks in Research
See All in Research
論文紹介 DISN: Deep Implicit Surface Network for High quality Single-view 3D Reconstruction / DISN: Deep Implicit Surface Network for High quality Single-view 3D Reconstruction
nttcom
0
140
機械学習と数理最適化の融合-文脈付き確率的最短路を例として-
mickey_kubo
2
530
MegaParticles: GPUを利用したStein Particle Filterによる点群6自由度姿勢推定
koide3
1
590
言語間転移学習で大規模言語モデルを賢くする
ikuyamada
8
3.8k
Rの機械学習フレームワークの紹介〜tidymodelsを中心に〜 / machine_learning_with_r2024
s_uryu
0
260
Evolutionary Optimization ofModel Merging Recipes (2024/04/17, NLPコロキウム)
iwiwi
9
3.9k
オープンな日本語埋め込みモデルの選択肢 / Exploring Publicly Available Japanese Embedding Models
nttcom
14
6.1k
How to Perform Manual Classification for Deep Learning Using CloudCompare
kentaitakura
0
700
一般化ランダムフォレストの理論と統計的因果推論への応用
tomoshige_n
10
1.9k
論文紹介 AST: Audio Spectrogram Transformer
kazu07
0
110
2024-01-23-az
sofievl
1
820
Alexander Mielke Hellinger--Kantorovich (a.k.a. Wasserstein-Fisher-Rao) Spaces and Gradient Flows
jjzhu
3
210
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Side Projects
sachag
451
41k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
How to train your dragon (web standard)
notwaldorf
75
5.2k
Music & Morning Musume
bryan
41
5.6k
It's Worth the Effort
3n
180
27k
Clear Off the Table
cherdarchuk
86
310k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
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: 検索全体の流れ