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
2024/05/30 機械学習モデルの評価と改善 発表資料
Search
田代真生
May 30, 2024
Technology
0
410
2024/05/30 機械学習モデルの評価と改善 発表資料
田代真生
May 30, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
AIで「ふとした疑問」を即座に検証する 〜定量で圧倒するN1理解〜
kakehashi
PRO
2
520
技術選定 したい人 したくない人
shirayanagiryuji
0
110
Goで実現する堅牢なアーキテクチャ:DDD、gRPC-connect、そしてAI協調開発の実践
fujidomoe
3
360
「データの価値を、みんなの武器に。」Data Enablementの価値とツラみ
ryoskdara_
1
120
新規事業開発でのAWS活用
amixedcolor
1
180
歴史に敬意を! パラシュートVPoEが組織と共同で立ち上がる信頼醸成オンボーディング
go0517go
PRO
0
110
Generative UI を試そう!A2-UIでAIエージェントにダッシュボードを作らせてみた
kamoshika
1
230
"共通化"と"Embed"のブレンドでスケール可能な運用を!M&Aを支えるGENDA SREの実践 / GENDA Tech Talk #3
genda
0
220
Getting started with Google Antigravity
meteatamel
0
250
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
340
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
3
350
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
74k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Done Done
chrislema
186
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Fireside Chat
paigeccino
41
3.8k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
960
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
120
The Language of Interfaces
destraynor
162
26k
Ruling the World: When Life Gets Gamed
codingconduct
0
150
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
Transcript
1 DMMにおける 商品検索パーソナライゼーションの オフライン評価について 2024/05/30 合同会社DMM.com 田代真生
#dmm_databricks 2 自己紹介 田代 真生 - 仕事 - 2022年4月に合同会社DMM.comに新卒入社 -
複数サービスでの検索Growthプロジェクトを担当 - 研究(大学院) - PLM(事前学習済み言語モデル)における否定の理解 - 趣味 - サッカー、キャンプ、アイドル
#dmm_databricks 3 質問はSlidoにお願いします https://app.sli.do/event/nmvxCgircnNSMN85DXJT7e/live/questions
#dmm_databricks 4 アジェンダ - DMMにおける商品検索パーソナライゼーション - 商品検索パーソナライゼーションにおける課題 - オフラインテストの導入 -
まとめ
#dmm_databricks 5 アジェンダ - DMMにおける商品検索パーソナライゼーション - 商品検索パーソナライゼーションにおける課題 - オフラインテストの導入 -
まとめ
#dmm_databricks 6 DMMの商品検索 DMMでは様々なサービスにおいて商品検索機能が実装されており、サービス毎に 異なる検索施策を実装しています。 - 検索リクエストのサービス最適なパラメータチューニング - 検索リクエストの書き換え(パーソナライズ) -
検索レスポンスの並び替え(パーソナライズ) - 検索UIのパーソナライズ - …
#dmm_databricks 7 DMMの商品検索 DMMでは様々なサービスにおいて商品検索機能が実装されており、サービス毎に 異なる検索施策を実装しています。 - 検索リクエストのサービス最適なパラメータチューニング - 検索リクエストの書き換え(パーソナライズ) -
検索レスポンスの並び替え(パーソナライズ) - 検索UIのパーソナライズ - …
#dmm_databricks 8 DMMの商品検索パーソナライゼーション DMMの各サービスでは約数十万件の商品を扱っており、検索条件で絞っても数 千、数万件の商品が取得されてしまうためパーソナライゼーションを実施していま す。
#dmm_databricks 9 DMMの商品検索パーソナライゼーション 複数の施策(experiment)を同時に動かしており、それによって詳細なパーソナライ ゼーションを行っている。 { "query": { "q": "限定セール"
}, "boost": [ "if(termfreq(maker,'A出版'),3.0,1)", "if(termfreq(keyword,'ギャグ・コメディ'),0.1,1)" ] } A出版を上位に、ギャグ・コメディを出にくくするクエリ
#dmm_databricks 10 アジェンダ - DMMにおける商品検索パーソナライゼーション - 商品検索パーソナライゼーションにおける課題 - オフラインテストの導入 -
まとめ
#dmm_databricks 11 商品検索パーソナライゼーションにおける課題 ABテスト前に施策自体の良さを評価することが難しい。 元々オフライン(ABテスト前)で施策を評価していたが、、 - パラメータのチューニングが難しい(どこまでユーザーの属性によってブーストす べきか) - 施策が複数動き、クエリが複雑になるにつれてチューニングがより難しくなる
-> ABテストの勝率が低い "boost": [ "if(termfreq(maker,'A出版'),3.0,1)", "if(termfreq(keyword,'ギャグ・コメディ'),0.1,1)" ]
#dmm_databricks 12 商品検索パーソナライゼーションにおける課題 元々の評価は並び順の定性評価 + ロジック部分の定量評価 - 並び順は施策の意図通りになっているか - モデルが予測するユーザーの属性は正しいか
クエリ user_id 購買履歴 controlの並び順 testの並び順 hoge abc123 ['ddd'] ['aaa', 'ccc', 'bbb', 'ddd'] ['bbb', 'ddd', 'aaa', 'ccc'] ︙ ︙ ︙ ︙ ︙
#dmm_databricks 13 商品検索パーソナライゼーションにおける課題 並び順の定性評価 - パーソナライゼーションの細かな挙動を理解しやすい - 想定していなかったパーソナライゼーションの挙動を評価できる - 評価にコストがかかる(時間、ドメイン知識)
- モデル間の細かな差の比較が難しい - 主観が入るので評価者と異なる属性のユーザーに対する挙動の評価が難しい ロジック部分の定量評価 - モデルの比較が容易 - 評価にコストが抑えられる - 最終的に評価したい並び順で評価できない。ロジックをどう組み込むかが難しい
#dmm_databricks 14 アジェンダ - DMMにおける商品検索パーソナライゼーション - 商品検索パーソナライゼーションにおける課題 - オフラインテストの導入 -
まとめ
#dmm_databricks オフラインで施策による並び順の変化を定量的に調べる。 オフライン評価用の検索エンジンを立てるシステムを作成した。 - 検索エンジンへの負荷 - 検索エンジン内のインデックスの柔軟な変更 15 オフライン評価の導入 日次バッチ
DB 検索エンジンの インデックス 検索エンジン DB 検索エンジン内 のデータ 検索エンジン mount upload fetch create index query
#dmm_databricks 16 オフライン評価の導入 データ - 検索ログ、クリックログ、購買ログ - 各検索における表示商品に対して、それらがクリックされたか、購買されたかを 紐付ける 方法
- 各検索におけるクエリを施策によって書き換えた上でオフライン評価用のsolrに リクエストを投げて、新旧のレスポンスを比較する
#dmm_databricks 17 オフライン評価の導入 nDCG, mrr, recallなどの指標を用いて施策によって変化した検索結果そのものを 定量評価できるようになった。 - position biasの効果をIPW(inverse
probability weighting)で考慮した Bias on the web, https://cacm.acm.org/research/bias-on-the-web-2/ (参照 2024-05-28)
#dmm_databricks 18 オフライン評価導入の結果 - solrのパラメータのチューニングが容易になった - Control(50%), Test(50%)で二週間ABテストを実施。 - パーソナライズのブースト値を調整することでab
testにおいてARPUの増加を 確認できた(ブースト値を調整しなかった時にはARPUが減少する結果だった) "boost": [ "if(termfreq(maker,'A出版'),3.0,1)", "if(termfreq(keyword,'ギャグ・コメディ'),0.1,1)" ]
#dmm_databricks 19 まとめ - DMMの商品検索におけるパーソナライゼーションとその課題 - solrに送るリクエストをパーソナライズするために書き換える - いくつかの施策で書き換えが行われており、複雑化して評価が難しくなった -
オフライン評価基盤の作成 - オフライン評価用の検索システムを作成 - 位置バイアスを考慮したランキング指標を用いて ABテスト前に施策を評価、チューニ ング - ABテストを実施 - チューニングによってARPUの上昇を確認
#dmm_databricks 20 まとめ - オフライン評価の感想 - 定量評価によってモデルのチューニングができるのが便利 - 定性評価と組み合わせることで施策の効果がわかりやすくなる -
今後の課題 - オフライン評価の評価(オフライン評価がどの程度適切にできているかわかっていな い) - ABテスト前のモデルの性能は観測できるようになった。 ABテスト後の継続的にモデ ルの性能を観測したい。
#dmm_databricks 21 質問はSlidoにお願いします https://app.sli.do/event/nmvxCgircnNSMN85DXJT7e/live/questions