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
推薦データ分析コンペに参加して得た知見
Search
Yudai Hayashi
January 10, 2024
Programming
2
360
推薦データ分析コンペに参加して得た知見
AIミーティング(2024/01/10)での登壇資料
Yudai Hayashi
January 10, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
BigQueryで作る簡単なFeature Store
yudai00
2
180
プロダクトのコードをPandasからPolarsへ書き換えた話
yudai00
7
2.3k
データサイエンティストになって得た学び
yudai00
1
83
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
610
会社訪問アプリ「Wantedly Visit」における新規ユーザーの行動量に基づいた推薦方策の選択
yudai00
0
1.3k
Polarsを活用した機械学習ジョブの高速化
yudai00
1
160
Voyagerを利用した宿画像の最近傍探索による候補生成
yudai00
1
160
論文紹介:Unbiased Delayed Feedback Label Correction for Conversion Rate Prediction
yudai00
0
270
機械学習プロジェクトでのPythonアップデートの難しさと得られた知見
yudai00
3
290
Other Decks in Programming
See All in Programming
Introduce dRuby
ledsun
0
100
モジュラモノリス、その前に / Modular monolith, before that
euglena1215
6
680
DjangoNinjaで高速なAPI開発を実現する
masaya00
0
500
実践Dash - 手を抜きながら本気で作るデータApplicationの基本と応用 / Dash for Python and Baseball
shinyorke
2
260
MLOps in Mercari Group’s Trust and Safety ML Team
cjhj
1
110
Делим тесты между QA и разработчиком
lamodatech
0
540
UnJSで簡単に始めるCLIツール開発 / cli-tool-development-with-unjs
aoseyuu
2
260
C#および.NETに対する誤解をひも解く
ymd65536
0
250
RDBの世界をぬりかえていくモデルグラフDB〜truncus graphによるモデルファースト開発〜
jurabi
0
170
Pydantic x Database API:turu-pyの開発
yassun7010
1
560
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
1.2k
What is TDD?
urakawa_jinsei
1
220
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Speed Design
sergeychernyshev
22
480
Writing Fast Ruby
sferik
626
60k
Building Your Own Lightsaber
phodgson
102
6k
Rails Girls Zürich Keynote
gr2m
93
13k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.7k
Faster Mobile Websites
deanohume
304
30k
Web development in the modern age
philhawksworth
205
10k
Facilitating Awesome Meetings
lara
49
6k
A designer walks into a library…
pauljervisheath
202
24k
Transcript
© 2024 Wantedly, Inc. 推薦データ分析コンペに参加して得 た知見 AIミーティング 2024/01/10 Jan. 10
2024 - Yudai Hayashi
© 2024 Wantedly, Inc. INTERNAL ONLY 自己紹介 林 悠大 • 経歴:
◦ 東京大学工学系研究科でPh.D取得 ◦ 2022年にウォンテッドリーにデータサイ エンティストとして新卒入社。推薦シス テムの開発を行う • X: @python_walker • 趣味: ◦ 読書 ◦ 音楽聴くこと ◦ ウイスキー
© 2024 Wantedly, Inc. INTERNAL ONLY 今日話すこと • データ分析コンペって何? •
どんなコンペに参加した? • 参加することでどんな知見を得られた?
© 2024 Wantedly, Inc. INTERNAL ONLY データ分析コンペとは • 与えられた課題に対して精度の高いモデルを構築して競うコンペ •
有名なものだとKaggleやatma, signateなど • なぜ参加するのか ◦ 普段の業務にとらわれない幅広い知識を学べる ◦ 新しいことを試せる
© 2024 Wantedly, Inc. INTERNAL ONLY 今回参加したコンペ • atmaで開催されたコンペ •
期間は一週間 • テーマはじゃらんのセッションデータを用いた予約される宿の予測 • 評価指標はMAP@10 https://www.guruguru.science/competitions/22
© 2024 Wantedly, Inc. INTERNAL ONLY 与えられたデータ • セッション情報 ◦
どの順番でどの宿を見たか • 宿の情報 ◦ 所在地 (地方、都道府県などがエンコード) ◦ 宿の部屋数 ◦ 立地の情報 (駅が近い、コンビニが近い、、、) ◦ 宿の画像のembedding ◦ … • データの難しかったところ ◦ 長さが1のセッションが大量にあった
© 2024 Wantedly, Inc. INTERNAL ONLY おおまかな方針 • 宿は1.4万件くらい、セッションは40万個あるので全組み合わせ(56億通り!)で推 論すると計算にかなりの時間がかかるし非効率
• 候補の絞り込み + 並び替えの2-stage構成でモデルを構築 ◦ 候補生成:予約されそうな宿をざっくり取ってくる ◦ リランキング:候補を予測される確率が高い順に並び替える 宿全体 Top-10 Candidate Generator Re-ranker
© 2024 Wantedly, Inc. INTERNAL ONLY 候補生成の方法 複数の手法を組み合わせて、予約されそうな宿の集合を構築する • セッション中に出現する宿
• 見ている宿とよく一緒に見られている 宿 • 見ている宿の次に見られていることが 多い宿 上位解法で使われていた手法 • グラフ構造を使った生成 ◦ ProNE ◦ 共起グラフからクラスタ係数や ホップ数を計算
© 2024 Wantedly, Inc. INTERNAL ONLY リランキングの方法 LightGBMでbinary classificationタスクとして解いた •
セッションの情報 ◦ どの地域の宿を見ている? ◦ どんな条件で宿を見ている? • 宿の情報 ◦ どこにある? ◦ どんな立地? • 候補生成で使った特徴量 ◦ セッションで見られていた宿とどれくらい一緒に見られている? 上位解法で使われていた手法 • セッションの長さが1のものに対しては遷移確率を使ったルールベース手法 • train/testでのデータの傾向変化に影響を受けづらい特徴量設計
© 2024 Wantedly, Inc. INTERNAL ONLY まとめ • 業務とは異なるドメインのデータを使えることで得られた学びは多かった •
他の参加者の挙げたディスカッションを通して色々なデータの見方を学べた ◦ train/testでデータ分布が変わっている ◦ セッションで見ている地域と予約した地域が異なるときの考察 ◦ etc.