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
VAR モデルによる OSS プロジェクト同士が生存性に与える 影響の分析
noppoman
0
140
DeepCrysTet: A Deep Learning Approach Using Tetrahedral Mesh for Predicting Properties of Crystalline Materials
tsurubee
0
380
論文紹介 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
130
LiDARセキュリティ最前線
kentaroy47
0
280
媒介分析と疫学
kingqwert
0
110
データで診て考える合志市の渋滞と公共交通 ~めざせ 車1割削減、渋滞半減、公共交通2倍~
trafficbrain
0
470
Accurate Method and Variable Tracking in Commit History
tsantalis
0
280
20240127_熊本から今いちど真面目に都市交通~めざせ「車1割削減、渋滞半減、公共交通2倍」~ 全国路面電車サミット2024宇都宮
trafficbrain
1
680
プロシェアリング白書2024_PROSHARING_REPORT_2024
circulation
0
690
クロスモーダル表現学習の研究動向: 音声関連を中心として
ryomasumura
3
620
HP (Hitto Point: 筆頭ポイント)
tanichu
0
760
説明可能AI:代表的手法と最近の動向
yuyay
1
630
Featured
See All Featured
Practical Orchestrator
shlominoach
183
9.7k
How to Ace a Technical Interview
jacobian
273
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Being A Developer After 40
akosma
66
580k
Raft: Consensus for Rubyists
vanstee
133
6.3k
The Mythical Team-Month
searls
216
42k
It's Worth the Effort
3n
180
27k
Clear Off the Table
cherdarchuk
85
310k
Rails Girls Zürich Keynote
gr2m
91
13k
What's in a price? How to price your products and services
michaelherold
238
11k
Teambox: Starting and Learning
jrom
128
8.4k
Git: the NoSQL Database
bkeepers
PRO
423
63k
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: 検索全体の流れ