$30 off During Our Annual Pro Sale. View Details »

1st Place Solution / 1st Place Solution Sansan x atmaCup #12

Sansan DSOC
December 17, 2021

1st Place Solution / 1st Place Solution Sansan x atmaCup #12

■イベント 
:Sansan x atmaCup #12 振り返り会
https://atma.connpass.com/event/229180/

■登壇概要
タイトル:1st Place Solution
発表者: Kurose (@enu_kuro) さん

▼Sansan R&D Twitter
https://twitter.com/SansanRandD

Sansan DSOC

December 17, 2021
Tweet

More Decks by Sansan DSOC

Other Decks in Technology

Transcript

  1. Kurose (@enu_kuro)
    1st Place Solution
    Sansan × atmaCup #12 振り返り会

    View Slide

  2. PROFILE
    Kurose (@enu_kuro)
    Software Engineer (仕事はiOS, Web Frontendメイン)
    機械学習歴は1年半ちょっと
    (主にCourseraとKaggleで勉強)
    2020/1~2020/10 ほぼ無職だったのでフルタイムで取り組んでいた
    Andrew Ng先⽣の⼈気講座で基礎を⾝に付けKaggleに挑戦
    ⾃⼰紹介

    View Slide

  3. atmaCup Kaggle
    コンペ参加歴

    View Slide

  4. 中盤からの参加ということもあり、順位は意識せず
    淡々と取り組んでいたら優勝していた
    10/23 8:30 ~ 10/24 18:00
    10/22 21:34 初サブミット
    Total 10 Submissions
    スコアで振り返るSansan × atmaCup #12

    View Slide

  5. コンペの進め⽅
    情報収集
    モデル選択
    特徴量選択
    モデルアーキテクチャ & ハイパラ調整
    エラー分析
    前処理・後処理

    View Slide

  6. Sansan × atmaCup #12 開幕!
    Competitionの説明とDiscussionを読んで
    概要を把握しておく
    (まとまった時間が取れなかったので)
    公式のチュートリアル"[講座#1] データを
    眺めて submission する"をcolab上で動か
    してみる
    10/15 ~
    10/20
    情報収集

    View Slide

  7. 注⽬したポイント
    - CV, LBの⽬安 (colum2131さんのdiscussion"CV vs LB"参照)
    LB:0.8超えたら結構強い LBとCVに0.1くらい開きがある
    - TestにしかないClassが存在する
    評価指標がクラスごとのF1 Score平均なのでスコアへの影響が⼤きい
    - 画像データから抽出されたデータによるテーブルデータ
    画像としてデータを扱うこともできる?
    最後まで本気で取り組むことを決めて⽬標設定
    - 運営ベースライン(0.8147)を超える
    - Discussionにコメントする
    なんの強制⼒もなくゆるい⽬標だが、あると踏ん張りどころで背中を⼀押ししてくれることも


    View Slide

  8. LightGBMよく分からないんです...
    できればDeepでポンしたい
    rishigamiさんの"レイアウトに関する深層学習⼿法とGNNチュートリアル"を読んで
    GNNでも戦えそうな気がしたのでこれベースで勝負することに
    今回のデータは矩形をNodeとみなし、
    それぞれの中⼼点を結ぶ線を引くこと
    でグラフ構造化することができる
    10/20
    モデル選択

    View Slide

  9. Node特徴量
    - x_center
    - y_center
    - box_width
    - box_height
    0~1に正規化を⾏った中⼼座標と縦横幅
    正規化前の縦横⽐や⾯積等いくつか特徴量追加試したが精度あまり変わらなかったので採⽤せず
    NNは賢いので余計なことしなくても⼤丈夫なはず... Trust NN
    Edge特徴量
    - x_diff (Nodeのx_centerの差)
    - y_diff (Nodeのy_centerの差)
    rishigamiさんのチュートリアルの特徴量をそのまま使⽤
    特徴量選択

    View Slide

  10. モデルアーキテクチャ & ハイパラ調整
    丸1⽇モデルのチューニングに費やす
    ここで初サブ LB:0.7909まで到達
    10/22
    PNAConv Layer * 4
    +
    Fully Connected Layer
    ⼤きめのDropout(0.8)
    ⼤きめの
    Learning Rate(5e-3)
    StepLR
    20epochで5e-3*0.1

    View Slide

  11. Class9(TestにしかないClass)への対応開始
    何が分かった?
    class9は上下のスペースに配置されている(かも)
    TrainデータではClass9を対象としたエラー分析ができないので、
    精度が同等の複数モデルでテストデータの推論結果を⽐較
    結果が異なるデータを⾒ていくことに
    上下のスペースにclass9の仮データを追加してみる?
    10/23
    こんな感じで気になったことをメモしていく
    エラー分析

    View Slide

  12. 最後にパラメータ変えた
    4モデルの
    アンサンブルをサブミッ
    トして終わり
    スコア⼤幅アップを確認
    仮説が当たっていた!
    この時点で2位に⼤差をつけて1位に
    Class9追加処理を雑に実装して...
    (後処理はなにもせず)
    LB 0.8819
    深夜のサブミッション
    10/24 00:24 真昼のサブミッション
    10/24 11:51
    前処理・後処理
    実装・パラメータを調整して

    View Slide

  13. - テーブルデータなのでLightGBMがメイン
    今回はLightGBM勢が特徴量作り等を楽しみ過ぎた
    おかげでスコア的にはNN勢有利に働いた
    Transformer, GNNの⽅がスコア出しやすかった
    - コンペ慣れしてきた
    進め⽅、重要なポイントの把握、NNのお気持ち理解etc
    短期間で成果が出せた
    LightGBM Transformer GNN CNN
    1位 ✓
    2位 ✓
    3位 ✓
    4位 ✓
    5位 ✓ ✓
    6位 ✓
    7位 ✓
    8位 ✓
    9位 ✓ ✓ ✓
    10位 ✓
    最終順位はNN系が上位を占める
    勝 因

    View Slide

  14. 1週間くらいの短期決戦だとほとんどの⼈にとっては狙って上位に⼊れるもの
    でもないと思うので楽しむことを優先に考えて結果は運任せというスタンスで
    良いと思います
    atmaCupはお祭り Kaggleは修⾏
    感 想
    ちなみにKaggleのような⻑期決戦は修⾏(苦⾏)だと思って取り組んでいます
    つらい... 憂鬱...

    View Slide

  15. ありがとうございました!
    Kurose (@enu_kuro)

    View Slide