【DeNATechCon2024】新卒がソロでatmaCup 優勝&Kaggle 金メダル獲得した時の取り組み

8K Views

February 29, 24

スライド概要

データサイエンスの世界では、Kaggle や国内の atmaCup・Signate などのコンペティションプラットフォームが、挑戦とスキルアップの場として注目されています。技術者たちは、これらのコンペティションで力を試し、実績を築いています。DeNA では Kaggle 制度を設け、社員が自らの技術力を磨く機会としてこのようなコンペティションへの参加を推奨してきました。

本登壇では、私が Kaggle 制度を活用しながらソロで参加した2つのコンペティションについてご紹介します。具体的には、優勝した atmaCup#15 での解法と、金メダルを獲得した Kaggle LLM Science Exam での解法とその取り組み方を共に共有します。特に、工夫に至るまでの思考プロセスと、それによってどのようにスコア変動していったのかに焦点を当てて、コンペティション参加によって得られた学びをお伝えします。

profile-image

DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

新卒がソロで atmaCup 優勝 & Kaggle 金メダル獲得した時の取り組み データ統括部AI技術開発部 村上直輝 © DeNA Co., Ltd.

2.

⾃⼰紹介 村上直輝(Naoki Murakami) AIスペシャリスト / データサイエンティスト 2023年4⽉にAIスペシャリストとしてDeNAに新卒⼊社 ● ● AI技術開発部ライブストリーミンググループ所属 レコメンドをメインとしたAI開発に関わる 機械学習(データ分析)コンペティションに継続的に参加中 2023年度のコンペ成果 ● ● © DeNA Co., Ltd. 国内10⽇間のコンペ (atmaCup #15, #16) で2連覇 世界的なコンペ (Kaggle) でソロ⾦メダル/チーム優勝 2

3.

やってきたこと (修⼠1年) ⿃の鳴き声を検出 するコンペで優勝 / 受託開発を開始 (学部4年⽣) 競技プログラミン グにはまる 2020/12 2019/02 © DeNA Co., Ltd. 2021/10 2021/06 2020/06 (学部3年⽣) MLコンペ初参加/勝 てずにやめる DeNAに新卒⼊社 / MLコンペ再開 MLコンペ再開 2023/04 法⼈化して受託開 発を続ける 3

4.

話すこと はじめに ● ● ● ● ● 今⽇伝えたいこと 機械学習(データ分析)コンペティションとは何か? コンペに参加するメリットとデメリット DeNAのKaggle制度 ソロ参加の意義 コンペでの取り組み&得られた知⾒ ● ● 推薦タスクのコンペ:atmaCup#15 LLMに関するコンペ:Kaggle LLM Science exam まとめ © DeNA Co., Ltd. 4

5.

はじめに 🙆 今⽇のメインターゲット ● ● ● データサイエンティストのスキルアップ⽅法に興味のある⽅ 機械学習やデータ分析のコンペティションについてよく知らない⽅ 最近コンペに参加し始めたばかりでどのように取り組むべきか悩んでいる⽅ 🙅 今⽇のターゲットではない⽅ ● © DeNA Co., Ltd. モデルの実運⽤について興味がある⽅ 5

6.

今⽇伝えたいこと① 機械学習コンペティションは ● 楽しい ● 学びがある ● 実績になる © DeNA Co., Ltd. 6

7.

今⽇伝えたいこと② 様々な⾓度からデータを⾒て考察しよう © DeNA Co., Ltd. 7

8.

機械学習(データ分析)コンペティションとは何か? 与えられたデータを元に、お題となるタスクを解くモデルの性能を競うコンペティション 学習 学習 データ 推論 モデル テスト データ モデル 予測 提出&スコア算出 代表的なコンペサイト ● ● 世界:Kaggle 国内:Signate‧atmaCup(ぐるぐる) Kaggleのコンペでは世界中から数百~数千チームの参加者が集まる‧賞⾦数万ドルのことも © DeNA Co., Ltd. 8

9.

コンペに参加するメリットとデメリット 🙆 メリット ● 楽しい ○ ○ ● ● ● (賞⾦がもらえる) ○ © DeNA Co., Ltd. 成績が良いと対外的にも評価 時々つらい → 順位以外の部分も楽しむ ○ ○ ● ⾊々な機械学習タスクに挑戦可 他の参加者から解法やコードの共有 実績になる ○ ● ⼀定のルールの元で順位を争うゲーム 順位が上がったときは快感 学びがある ○ ○ 🙅 デメリット 経験できない内容もある → 業務で学ぶ ○ ○ ● 良い結果ばかりとは限らない 結果が出ない時はつらく感じる場合も タスク設計 MLOps 時間とお⾦がかかる → 社内制度を活⽤ ○ ○ 本気で取り組むとかなりの時間が必要 マシンリソースが必要なことが多い コンペごとに数万ドル前後の賞⾦ 9

10.

DeNAのKaggle制度 業務時間を使ったKaggleへの参加 ● ● AI部⾨‧データサイエンスチームにおい て、Kaggle社内ランク制度を導⼊ どの程度の業務時間をKaggle参加に利⽤ して良いかはKaggleでの成績を元に決定 GCP代⾦のサポート ● ● GCPを⽉20万円分まで会社の負担で利⽤可 コンペティション終盤等には、翌⽉分を前 借りすることも可能 Q. 制度を使うと賞⾦は会社に⼊りますか? A. いいえ。賞⾦は個⼈で全額もらえます。 © DeNA Co., Ltd. DeNAのKaggle社内ランク制度 https://dena.ai/kaggle/ Q. 制度だけあっても形骸化していないですか? A. していないです。実際に今30%使えており、来 年度は50%の権利を⾏使予定です。 10

11.

ソロ参加のメリット‧デメリット 🙆 メリット ● ゲーム的に楽しい ○ ○ ● ● 競技として不利 ○ ● チームの結果だけではその⼈の実⼒を正 しく評価するのが難しい 発想の量やかけられる時間を考えるとチーム に⽐べて不利なので上位に⼊るのが⼤変 チームメイトからの学びや楽しさがない ○ 実⼒の証明になる ○ ● ソロという条件で参加すること⾃体が⼀ 種の楽しさ(チームとは違った楽しみ) Kaggleではソロで⾼い順位を取ることが 上のTierに⾏くための条件になっている 🙅 デメリット ○ チームメイトとのやり取りを通じて得られる 学びは、公開コードから得られる学びとはま た違ったもの 誰かと⼀緒にワイワイやると楽しい ⾃信をつけられる ○ ⼀⼈で良い順位を取れれば⾃信になる → 今回は今年度ソロで参加した2つのコンペについて話します(tips はチームでも使えます) © DeNA Co., Ltd. 11

12.

話すこと はじめに ● ● ● ● ● 今⽇伝えたいこと 機械学習(データ分析)コンペティションとは何か? コンペに参加するメリットとデメリット DeNAのKaggle制度 ソロ参加の意義 コンペでの取り組み&得られた知⾒ ● ● 推薦タスクのコンペ:atmaCup#15 LLMに関するコンペ:Kaggle LLM Science exam まとめ © DeNA Co., Ltd. 12

13.

推薦タスクのコンペ:atmaCup #15 どんなコンペか 与えられるデータ:アニメ作品の情報(タイトルや ジャンル‧視聴ユーザー数等)、⼀部ユーザーからの 1~10段階の評価 やりたいこと:評価のわかっていないユーザー‧作 品の組に対する評価を予測する 評価⽅法 正解値と予測値のRMSE (Root Mean Squared Error) user 特徴 © DeNA Co., Ltd. anime 特徴 user×anime 特徴 モデル 評価の予測 1~10? 13

14.

推薦タスクのコンペ:スコア推移 ⼤きな差は何が原因? 低いほど良いスコア © DeNA Co., Ltd. 14

15.

ポイント: 異なる性質を持つデータ 前提:データを確認するとtest のユーザーは 2種類存在 学習(train)データ テスト(test)データ unseen ユーザー seen ユーザー (約77%):train データにも出現する unseen ユーザー (約23%) :train データには出現しない seen ユーザー Q: なぜ最初の提出でスコアが悪かったのか? A: unseenユーザーに対する予測がうまくいかなかったため seen ユーザーしかうまく予測できないGNNモデルを使っていた → unseen ユーザーを別のモデル(LightGBM)で予測すると⼤きくスコア改善 ※ RMSE 3.17 → 1.20 © DeNA Co., Ltd. 15

16.

ポイント: 異なる性質を持つデータ 最終的な戦略 データの性質に合わせて学習⽅法を変えたモデルを使い分け ● ● seen ⽤モデル ○ train, validation をランダムに分割(KFold) unseen ⽤モデル ○ train, validation をユーザーが被らないように分割(GroupKFold) Q: 両⽅に対応できるモデル⼀つでも良かったのでは? A: 分けたほうが良かった。分けずにまとめて学習していたチームは early stopping が早くかかりすぎてスコアが伸び切らなかった模様 © DeNA Co., Ltd. 16

17.

話すこと はじめに ● ● ● ● ● 今⽇伝えたいこと 機械学習(データ分析)コンペティションとは何か? コンペに参加するメリットとデメリット DeNAのKaggle制度 ソロ参加の意義 コンペでの取り組み&得られた知⾒ ● ● 推薦タスクのコンペ:atmaCup#15 LLMに関するコンペ:Kaggle LLM Science exam まとめ © DeNA Co., Ltd. 17

18.

LLMに関するコンペ:Kaggle LLM Science exam どんなコンペか 評価⽅法 WikipediaのデータをもとにGPT-3.5 で作った科学に関す る5択問題をモデルに解かせるコンペ Mean Average Precision @ 3 (MAP@3) → 選択肢を確信度の⾼い順に3つ出⼒して評価 データ⽣成⽅法 基本的な解き⽅ © DeNA Co., Ltd. 問題⽣成に利⽤したと 思われる⽂章を⼊⼒ 18

19.

LLMに関するコンペ:スコア推移 ⾼いほど良いスコア この改善幅を どう⽣み出すか? 公開学習データの追加 当時の公開情報で到達可能なライン 公開データでの検索 ⼤きいモデルに変更 © DeNA Co., Ltd. 19

20.

ポイント: 公開データ‧コードの⽋点 他の参加者が公開していたデータ‧コードには⽋点が存在 ⽋点1:データが⽋損している ● ● 公開データは約7%ほど記事が⽋損している 記事があっても⼀部が抜け落ちている → 対処:⾃前で⽋損のない wikipedia データを⽤意 ⽋点2:検索の仕⽅が不⼗分 ● 省メモリにするため、公開コードでは記事の タイトルと最初のセンテンスのみを使って検索 対象を絞り込み → 検索漏れが多い → 対処:全センテンスを検索対象にする チャンクごとに分割して検索 ‧ ベクトルを量⼦化して検索す ることでメモリやパフォーマンスの改善等... © DeNA Co., Ltd. 20

21.

ポイント: 公開データ‧コードの⽋点 Q: そもそもどうやって問題点に気がつくのか? A: モデルがどんな⼊⼒のときに間違っているのかデータを⼀つ⼀つよく⾒る 検索元にデータは含 まれている? 検索は正しく できてそう? 単純にモデルがミス しているだけ? そもそも問題は 正しい? © DeNA Co., Ltd. 21

22.

話すこと はじめに ● ● ● ● ● 今⽇伝えたいこと 機械学習(データ分析)コンペティションとは何か? コンペに参加するメリットとデメリット DeNAのKaggle制度 ソロ参加の意義 コンペでの取り組み&得られた知⾒ ● ● 推薦タスクのコンペ:atmaCup#15 LLMに関するコンペ:Kaggle LLM Science exam まとめ © DeNA Co., Ltd. 22

23.

まとめ ● 機械学習コンペティションは⾊々なメリットがある ○ ○ ○ ● 様々な⾓度からデータを⾒て考察しよう ○ ○ © DeNA Co., Ltd. 楽しい 学びがある 実績になる データの性質についてよく確認して処理を考える モデルの出⼒結果を元にどこで間違えているのか⼀つ⼀つ確かめる 23

24.

ありがとうございました © DeNA Co., Ltd. 24