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
420
推薦データ分析コンペに参加して得た知見
AIミーティング(2024/01/10)での登壇資料
Yudai Hayashi
January 10, 2024
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
RustとPyTorchで作る推論サーバー
yudai00
11
6.6k
BigQueryで作る簡単なFeature Store
yudai00
2
280
プロダクトのコードをPandasからPolarsへ書き換えた話
yudai00
8
3k
データサイエンティストになって得た学び
yudai00
1
180
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
700
会社訪問アプリ「Wantedly Visit」における新規ユーザーの行動量に基づいた推薦方策の選択
yudai00
0
1.5k
Polarsを活用した機械学習ジョブの高速化
yudai00
1
270
Voyagerを利用した宿画像の最近傍探索による候補生成
yudai00
1
210
論文紹介:Unbiased Delayed Feedback Label Correction for Conversion Rate Prediction
yudai00
0
320
Other Decks in Programming
See All in Programming
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
From Translations to Multi Dimension Entities
alexanderschranz
2
130
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
430
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
390
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
CSC305 Lecture 26
javiergs
PRO
0
140
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
140
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
440
useSyncExternalStoreを使いまくる
ssssota
6
1.1k
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Unsuck your backbone
ammeep
669
57k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
The Cult of Friendly URLs
andyhume
78
6.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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.