🦢

【Kaggle】Kaggle Masterに昇格できたので振り返ってみた

に公開

0. はじめに

皆さん、はじめまして!ライオンデジタル部門の ツルタ です。
2024/09/13-2024/12/13で開催された「Eedi - Mining Misconceptions in Mathematics」にて、1446チーム中57位で銀メダルを獲得し、晴れてKaggle Competitions Masterになることができました。

本記事では、Kaggle Masterになるまでの取り組みを振り返っていきます。メダル3つとまだまだ実力不足ですが、(技術的な内容は少なめにして)Kaggleでの失敗と学び、そして当社の取り組みに活用できたことについて、詳しくまとめていきたいと思います。

そもそもKaggleとは?

Kaggle」とは、世界中のデータサイエンティストや機械学習エンジニアが集い、実際のビジネスや社会課題に基づいたデータを用いて最適な解決策を競い合うオンライン競技プラットフォームです。企業や政府、研究機関などが提供する多彩なデータセットを活用し、参加者は独自のアルゴリズムやモデルを提案、その成果に応じて報奨やメダル、称号などが授与され、実力がランク付けされます。コンペティション以外にも、学びのあるデータセットやコードが公開されており、世界的なデータサイエンスコミュニティの活性化に寄与しています。
※ 本ブログに掲載している情報は、私個人の意見や経験に基づくものであり、Kaggle公式や関連団体とは一切関係ありません。

1. バックグラウンドについて

専攻

大学では経済学部に所属していました。何となく履修していた計量経済学の講義で偶然にも好成績を収めたことがきっかけで、統計学、データサイエンスに興味を持つようになりました。確かその頃、Thomas H. Davenport氏の「データサイエンティストは21世紀で最もセクシーな職業である(原文)」という論考が10周年を迎えるとの話題があり、私自身もその流れに乗ろうと考えていたことを思い出します。

Kaggleに挑戦したきっかけ

入社後、コーディングや機械学習の本格的な学習を始め、ChatGPTなどのLLMサービスに助けられたことで、Kaggleに取り組みやすくなりました。また、当社では外部企業主催のコミュニティコンペに定期的に参加していたため、自然とKaggleにも挑戦できる環境が整っていました。試行錯誤の末、リーダーボードで上位に躍進する喜びを味わい、こうしてKaggleに打ち込むこととなりました。

2. 挑戦した主なコンペ

私がKaggle Competitions Masterになるまでに参加したコンペティションの中で、特に代表的なものは以下の通りです。

コンペ名 データ形式 チーム 順位 開催期間
Linking Writing Processes to Writing Quality テーブル seraさん 875/1876 2023/10/03-2024/01/10
LLM Prompt Recovery 自然言語 ソロ 84/2175🥈 2024/02/28-2024/04/17
Learning Agency Lab - Automated Essay Scoring 2.0 テーブル ソロ 1346/2706 2024/04/04-2024/07/03
ISIC 2024 - Skin Cancer Detection with 3D-TBP 画像&テーブル ソロ 11/2739🥇 2024/06/27-2024/09/07
Eedi - Mining Misconceptions in Mathematics 自然言語 ソロ 57/1446🥈 2024/09/13-2024/12/13

Linking Writing Processes to Writing Quality


タイピングのログデータからエッセイの品質を予測するコンペでした。入力された単語は隠され、ログから文章の構造を解析して、文の長さや記号の数といった特徴量を作成することが主な戦略でした。
初めて本格的に参加したオープンコンペだったため、公開ノートブックを真似る以外の方法がなく、暫定リーダーボードのスコアを追い続けた結果、順位が大きく下がってしまいました。しかし、LightGBM、CatBoost、XGBoostを使いこなすことで、それぞれの細かなパラメータ調整について深く理解できました。

ISIC 2024 - Skin Cancer Detection with 3D-TBP


世界各地の医療機関が提供した3D全身写真を用い、皮膚がんの有無を判定するタスクでした。画像とともに、病変の色や大きさといったメタデータが与えられ、マルチモーダルモデルを構築する必要がありました。
画像分類は初めての分野でしたが、有力な公開ノートブックのおかげで、Pytorchを使った画像前処理と実験管理の方法を学びました。
今回のタスクは、2値分類ながらも皮膚がんには「基底細胞がん」「有棘細胞がん」「悪性黒色腫(メラノーマ)」の3種類があるため、それらを考慮したバリデーション設計を行い、2値分類において多クラス分類のロスを補助ロスとして加えることで、学習の安定化を図りました。さらに、適切な外部データの追加や複数モデルのアンサンブル、アンダーサンプリングの多様化により、順位を大幅に向上させることができました。

Eedi - Mining Misconceptions in Mathematics


数学の問題及びその「不正解」の解答がまとまったデータと、誤答する要因となった誤解がまとまったデータが与えられ、それらを対応付けるタスクでした。
誤解の種類が多いため、まず誤答と誤解を関連度を基準に紐づけて候補を抽出し、次にその候補を使ってLLMに多肢選択タスクとして推論させる2-stage戦略がメインでした。
LLMや埋め込みモデルを学習するノートブックは非常に参考になりましたが、公開モデルをアンサンブルするだけでは上位を狙えませんでした。そこで、独自にbge-en-iclというモデルをFlagEmbeddingというライブラリで学習したところ、これがLBにヒットし、順位を落とさずにメダルを獲得できました。

その他

ISICコンペのころから、公開ノートブックをもとにしながらも、自分独自の戦略を組み込めるようになりました。将来的には、すべて自分の力で戦略を立て、アイデアを実現できるよう成長したいです。
また、コンペの終盤はどうしても夜中まで熱中することも多く、健康面が心配です。これではいつ体調を崩すかわからないので、もう少しスマートに実験管理の体制が整えられるようにしたいです。

3. 当社の取り組みへの活用

Kaggleでの挑戦を通じて、機械学習モデルの構築や細かなパラメータ調整のノウハウを数多く習得しました。たとえば、需要予測モデルの構築では、試行錯誤を重ねながらも、実践に基づく経験が生き、適切なパラメータチューニングを理論的に進めることができるようになりました。
また、ISICコンペで学んだ画像処理技術やマルチモーダルモデルの設計手法を応用することで、画像分類モデルの実験管理を円滑に行えるようになりました。
さらに、Automated Essay ScoringやEediコンペを通じてLLM(大規模言語モデル)や文書埋め込みモデルのファインチューニング技術を身につけることができました。自然言語処理を活用した新たなソリューションの開発にも積極的に挑戦していきたいです!
常に最新技術の動向に目を向け、Kaggleで得た知識や経験を現場の課題解決に活かしていくことで、少しずつ業界に貢献できる知識と経験を積み重ねていく所存です。

最後に

まだまだ実力不足ですが、Kaggleに没頭することで、幅広いスキルを身につけることができました。目標としていたKaggle Competitions Masterになれたのは、多くの方のサポートとコミュニティの知見のおかげです。
ここまでお読みいただき、ありがとうございました!

LION Digital Inside

Discussion