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
pao
March 02, 2021
Technology
12
12k
短期間コンペの戦い方
2021/3/2の分析コンペ勉強会で話した内容です。
https://sansan.connpass.com/event/202716/
pao
March 02, 2021
Tweet
Share
More Decks by pao
See All by pao
いろんなものと両立する Kaggleの向き合い方
go5paopao
2
1.2k
データサイエンティストとは何か論争にAI(gpt-2)で終止符を打とうとした話
go5paopao
0
180
atmaCup#9 1st place solution
go5paopao
6
3.2k
DSB2019 10th Solutionの一部とShakeについて
go5paopao
2
640
Kaggle Malware competition 2th→1485th solution
go5paopao
2
9k
Other Decks in Technology
See All in Technology
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
310
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
580
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
380
Terraform Stacks入門 #HashiTalks
msato
0
350
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Taming you application's environments
salaboy
0
190
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
Featured
See All Featured
Designing for Performance
lara
604
68k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Adopting Sorbet at Scale
ufuk
73
9.1k
BBQ
matthewcrist
85
9.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Automating Front-end Workflow
addyosmani
1366
200k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Code Reviewing Like a Champion
maltzj
520
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
短期間コンペの戦い方 2021/ 3/ 2 分析コンペ勉強会 pao
クイズです
Q. なんのグラフ(ヒストグラム)でしょう? Count
https://www.kaggle.com/kaggle/meta-kaggle Count ※集計方法 • 2016年以降 • Tierありのコンペで集計 A. Kaggleのコンペ期間 (日数)
2〜3ヶ月のコンペが大半 Q. なんのグラフ(ヒストグラム)でしょう?
長くない?
もっと短い期間のコンペ についてお話します ex) atmaCup, KaggleDays, 学生向けコンペイベント
自己紹介 • pao • データサイエンティスト@ABEJA • Kaggle Master • atmaCupが得意
• 息子が可愛いすぎる pao (@pppaaaooo)
自己紹介 • pao • データサイエンティスト@ABEJA • Kaggle Master • atmaCupが得意
• 息子が可愛いすぎる pao (@pppaaaooo)
atmaCupについて • atma株式会社が運営しているコンペ • 1day ~ 2週間くらいの短期間 • コンペ・サイトの質が高い •
初心者向けの講座などもありつつ Kagglerたちが多数参加している 良質な短期間コンペの一つ(オススメ)
atmaCup戦績
目次 • 短期間コンペと長期間コンペ • 戦い方・戦略について
目次 • 短期間コンペと長期間コンペ • 戦い方・戦略について
コンペの長さによる比較 〜良いところ〜 コンペの長さ 個人的に良いところ 長い • 新しいことにじっくり時間をかけて取り組める • 多少の失敗は時間でカバーできる 短い
• 短時間で効率的にデータ・タスクによる学びを得られる • 限られた時間で効率的に精度を上げるやり方を学べる • LeaderBoardのレース感覚が強くて楽しい 長いコンペ・短いコンペそれぞれの良さがある
コンペの長さによる比較 〜良くないところ〜 コンペの長さ 個人的な短所 長い • 外れコンペに取り組んでしまった時にダメージが大きい • (小さな子持ちには)フルコミットすると健康や家庭に支障が でてきてしまう
短い • 新しいチャレンジの難易度が高くなる (1つ2つ新しいチャレンジをすると他のことをする時間がなくなる) 長いコンペ・短いコンペそれぞれの短所がある
個人的なオススメ 長いコンペと短いコンペ、両方とも参加する 短期間 コンペ 長期間 コンペ 相互に学びが 活きてくる • 色んな手段を試せる
• 一つのデータ・タスクへの 対策を幅広く知れる • どんな手段がより効 果的かを学べる • 時間意識が芽生える
目次 • 短期間コンペと長期間コンペ • 戦い方・戦略について
はじめに あくまで私の目線での短期間での戦い 方をまとめたものです (人によって合う合わないあると思います)
精度のイメージ ベースラインから精度の限界までの道のり 誰でもできる ベースライン 技術的に可能な 最高精度 精度
短期間と長期間での最終到達点 ベースラインから精度の限界までの道のり 誰でもできる ベースライン 技術的に可能な 最高精度 精度 ? この精度の差は何で生まれているか?
精度の分解 基本的な手法やデータ・タスクに応じた アイデアの積み重ねで成り立っている ※あくまでイメージ。これらの割合やキーの数などはコンペに寄って大きく変わる 精度はたくさんの積み重ねだが、数個のアイデアが大半を占める 精度を分解 テーブルデータの例 ➔ アイデア1: モデルをデータによって分ける
➔ アイデア2: TargetEncoding ➔ アイデア3: オリジナル特徴量(ex: 1つ前のユーザの行動との差分) ➔ アイデア4: カテゴリ変数のWord2VecによるEmbedding 数個のアイデアで 大半を占める アイデア2 アイデア1 アイデア3
短期間と長期間での最終到達点 精度の最終到達点は期間によって違う 誰でもできる ベースライン 技術的に可能な 最高精度 精度 アイデアの 積み重ね
短期間と長期間での最終到達点 精度の最終到達点は期間によって違う 誰でもできる ベースライン 技術的に可能な 最高精度 精度 アイデアの 積み重ね 短期間と長期間の差
短期間でできること 短期間コンペの 優勝ライン 長期間コンペの 優勝ライン
短期間と長期間での最終到達点 長期間と短期間でどこまでアイデアを組み込めばよいかが変わる 短期間コンペの 優勝ライン 長期間コンペの 優勝ライン • 長期間コンペで勝つには出来る限り全部 のアイデアを組み込まないと勝てない •
短期間コンペの場合は重要なアイデアを 抑えておけば勝ちに近づく
限られた時間で 何をすれば良い?
限られた時間で何をすべきか? 思いつくアイデアからやることを「効果的にしぼる」 思いつくアイデアたちの例 • アイデア1:LightGBMの代わりにCatboostを使う • アイデア2:ユーザIDをTargetEncoding • アイデア3:Oputunaでハイパラチューニング •
アイデア4:一部の特殊な期間を学習から外す • アイデア5:外れ値の補正 • アイデア6:ネガティブダウンサンプリング ・・・・ すべてのアイデアを試す時間はない 「効果」x「実装時間」x「成功確率」 で決める かつ重要なアイデアを抑えられるよう に「効果」を優先する
限られた時間で何をすべきか? 思いつくアイデアからやることを「効果的にしぼる」 思いつくアイデアたちの例 • アイデア1:LightGBMの代わりにCatboostを使う • アイデア2:ユーザIDをTargetEncoding • アイデア3:Oputunaでハイパラチューニング •
アイデア4:一部の特殊な期間を学習から外す • アイデア5:外れ値の補正 • アイデア6:ネガティブダウンサンプリング ・・・・ すべてのアイデアを試す時間はない 「効果」x「実装時間」x「成功確率」 で決める 効果:低そう(カテゴリ特徴が少ないし) 実装時間:短い 成功確率:30%くらい →「効果低そうだし後回しにするかー」 かつ重要なアイデアを抑えられるよう に「効果」を優先する
限られた時間で何をすべきか? 思いつくアイデアからやることを「効果的にしぼる」 思いつくアイデアたちの例 • アイデア1:LightGBMの代わりにCatboostを使う • アイデア2:ユーザIDをTargetEncoding • アイデア3:Oputunaでハイパラチューニング •
アイデア4:一部の特殊な期間を学習から外す • アイデア5:外れ値の補正 • アイデア6:ネガティブダウンサンプリング ・・・・ すべてのアイデアを試す時間はない 「効果」x「実装時間」x「成功確率」 で決める 効果:成功したら高そう 実装時間:中 成功確率:10%くらい 「Overfitしそうだけど成功したらかなりスコアあが るのでやるか」 かつ重要なアイデアを抑えられるよう に「効果」を優先する
ゲームみたい
実質ゲーム 限られたMP(実装時間)でいかに相手(コンペ)のHPを削るかのゲーム HP TOP10 優勝 入賞 ハイパラチューニング モデルの分離 カスタムLoss Magic特徴量探し
MP(残り実装時間) : 20 めいちゅうりつ:80% ダメージ:20 しょうひMP:3 まるうぇあコンペ
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
➢ めちゃくちゃ大事。ただし、長期コンペでも同じ。 ➢ 経験、INPUT量がものをいう ➢ 相手に応じた技を生み出すことも大事 ➢ サーベイ・EDAで技を増やすというのもある
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
➢ 時間が短いほど重要になる ➢ 「どの技がどういう相手(タスク・データ)に効きやすいか?」を経験積んで学ぶこと が重要 ➢ 技の順番も大事だったりする
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
➢ 時間が短いほど重要になる ➢ 「どの技がどういう相手(タスク・データ)に効きやすいか?」を経験積んで学ぶこと が重要 ➢ 技の順番も大事だったりする atmaCup#9の優勝ソリューションでこの観点に近い形でまとめてい ます https://speakerdeck.com/go5paopao/atmacup-number-9-1st-place-solution
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
➢ 1つの技の消費MP(実装時間)が少ないほど、たくさんの技を使える ➢ 消費MP(実装時間)をへらす方法 a. 「その技を何度も使う」 or 「装備(パイプラインやスニペット)の用意」 b. 相手の傾向が事前にわかっている場合はその準備をする
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
方法2の例 • atmaCup#6でSansanのネットワークデータということが事前に分かっていた • GNN(Graph Neural Network)が使えるかどうかが重要な気がした • コンペ当日までに以下を実施 ◦ GNNのサーベイ(広く浅く) ◦ TorchGeometric(PytorchのGNNライブラリ)のドキュメントを一通り読む →結果GNNを使ったソリューションで 3位 ➢ 1つの技の消費MP(実装時間)が少ないほど、たくさんの技を使える ➢ 消費MP(実装時間)をへらす方法 a. 「その技を何度も使う」 or 「装備(パイプラインやスニペット)の用意」 b. 相手の傾向が事前にわかっている場合はその準備をする
どこで実力に差が出るか? ゲームで例えるとざっくり4つに分けられる • どんな技を使えるか? • どの技を選ぶか? • 技の消費MP(実装時間)を減らせるか? • 命中確率や効果をいかに正しく見積もれるか?
➢ 正しく見積もるポイント ◦ 1:仮説・根拠を用意して見積もる ◦ 2:その技をいかに使ったことあるか ➢ 様々な情報から命中確率や効果を見積もれるかも大事 ◦ Feature Importance, Discussion, EDAなどなど
最後に • スコアを上げるための話をしたが、コンペの楽しみ方は 人それぞれ • atmaCup#10が今週金曜日からあるらしい ◦ 1週間の短期コンペ ◦ 初心者歓迎らしいので始めての方も是非!!
• 自分もまだまだ出来ていないことが多いので頑張る
ありがとう ございました