はじめに
2021年10月15日(金)〜10月24日(日)に開催されたatmaCup#12に参加してました.
前回抽選に外れて参加できなかったatmaCup×Sansanコンペの第2回ということで,抽選通るか心配でしたが,今回は当選し参加することができました.
個人的に前回参加できなくて残念に思っていましたが,今回参加することができて様々なDiscussionを読めたことで,より前回参加できなかったことを残念に感じたので,参加枠を増やす or 前回コンペ上位33名は確定枠とかにしてもいいのではと少し思いました.
今回のコンペは,秘密保持契約(NDA)の関係上コンペ内容などはオープンにできないので,解法などにはほとんど触れないものとなっております.
この記事では,主に自身のお気持ちと,何が足りなかったのかを整理できたらと思っているので,もう少し実用的なものが読みたい方は,チトセナガノさんのatmaCup #12に参加して覚えたことメモ①特徴量作成やatmaCup #12に参加して覚えたことメモ②lightGBM関係がまとまっていて参考になるかと思いますので,共有させて頂きます.
時系列でコンペを簡単に振り返る
序盤
初日サブする予定が,珍しく社会性を発揮して帰宅が深夜だったため,とりあえずスタートから24時間以内に1サブ. 今回,いろいろな方法を試せるように無駄サブをしないことを常に意識していました.
対戦よろしくお願いいたします!#atmaCup pic.twitter.com/bI0975TwH4
— たかいと (@takaito0423) October 16, 2021
序盤は強い方が,安定の位置にいた印象でした. この時点では,takoiさんの0.80を意識して,手元のCVがある一定値を超えたらサブしようと思っていました.
0.8に到達してる👀 まだまだ伸ばせると思うので頑張ってください! いやしかしベースラインがこのページにないの寂しいな🙄 #atmaCup pic.twitter.com/4BeZWicwmw
— さしすせ奏 (@s_aiueo32) October 17, 2021
月曜日,仕事から帰宅中にLB見たら,ベースラインがヤンチャしてて思わずツイートしてしまいました.
ちょっと労働に勤しんでいる間に、ヤンチャなベースラインが生まれてる#atmaCup
— たかいと (@takaito0423) October 18, 2021
火曜日のサブで少しLBを上ることができましたが,なかなかベースラインが強敵でした. このときすでに,0.85出しているころんびあさんは,本当にすごいなと思います. ただ,自身もこのあたりで0.85出すための案はあったので,疲れた身体に鞭打って,ひたすら実装をしていました.
少し改善!
— たかいと (@takaito0423) October 19, 2021
だがベースラインが遠い(´・ω・)
#atmaCup pic.twitter.com/3rplnGMvy0
中盤
何とかベースラインを超すことができました!
@colum2131 さんに大きく近づいた!
— たかいと (@takaito0423) October 20, 2021
現在の順位は 2位です。 #atmaCup pic.twitter.com/lA8Bm0Gp3n
実装ミスで2サブとかしたけど,何とかスコア改善!
— たかいと (@takaito0423) October 21, 2021
どうしても,就業後の実装は疲れでミスが出てしまう(´・ω・)
あと0.003なら何とかなるかも...#atmaCup pic.twitter.com/S4JwVnO4c8
終盤
最終日24日残り18時間を切ったところで,LB一位になりました.
総合優勝見えてきた!
— たかいと (@takaito0423) October 23, 2021
#atmaCup pic.twitter.com/oDxclGoqyB
みんな大好きBarChartRaceで後から確認したところprivateスコアも一時的に一位でした.
そして,その12時間後くらいに...
流石に0.88は厳しい(´・ω・)
— たかいと (@takaito0423) October 24, 2021
悔しさもあるけど、凄すぎてsolutionが楽しみです! https://t.co/pGtW3LxBuR
流石に残りの時間で,このスコア差を詰める仕込みが自身にはありませんでした.
結果
1位 くろさん
2位 paoさん
3位 Pirototoさん
自身は念願のメダルに届きませんでした.
33(Sansan)サブ、LB: 4位、最終順位は5位でした!
— たかいと (@takaito0423) October 24, 2021
やはり入賞するには、もう一段階壁を超えないといけないようなので、引き続き精進します!#atmaCup
今回のコンペ一人振り返り
良かった点
一時的だが終盤にLB, privateで1位に飛び出せたこと
序盤スタートダッシュでLB1位は何回か経験したが,コンペ終盤に瞬間的にでも1位になれたのは初でしたので,正直嬉しかったです.
序盤にしっかり特徴量を作り込むことができた
短期間コンペで戦うにあたり,序盤で必要となる特徴量を一通り作ることができたおかげで,中盤以降はいろいろな工夫を考える時間&実装する時間をたくさん確保することができました. ただ,今回お題がシンプルなお題であったため,複雑な特徴量がたくさんあるコンペで戦うには,もう少しEDAの力を鍛える必要は感じています.
サブの温存
今回はチームを組む予定はありませんでしたが,チームを後半に組んだり,後から試したいことが沸いてきた時のために,CVのスコアなどからサブを温存することができました. 自身は上位にいるとき,サブ数に余裕がある人がLB上がってくるとプレッシャーを感じるタイプなので,プレッシャーをかける意味でも,サブ数温存は効果があると信じています(笑)
Discussionへの投稿
いつも勉強させて頂いてばかりなので,今回はDiscussionも積極的に投稿しました. いくつか投稿しましたが,多くのいいねを頂きとても励みになりました.
いくつかDiscussionを挙げたのですが,一番多くいいねを頂いたのは,#10 [初心者歓迎!] atmaCupで @pao さんが挙げていたコンペの戦い方を考えるというDiscussionを参考に作った「#12 Sansan × atmaCupの戦い方を考える」というDiscussionでした.
実際このDiscussionには,総合優勝&社会人優勝の くろさん,学生優勝のころんびあさんが使用している特徴量作り,モデル選択,工夫などにつながるヒントが多く含まれていて,いいものを投稿できたのではないかと,手ごたえを感じています.
反省点
NN系のモデルでの精度が出せない
モデルに対する理解が浅く,ハイパーパラメータなどの感覚がまったくわからないため,NN系の精度がまったく出せないのは,何とかしないとまずいなと感じています. 実力が伴っていないのに,贅沢欲張りセットでData Augmentationなども同時にやろうとして,うまくいかず,結果メダル圏内から追い出されてしまったので,これを機にNNを使えるように勉強し直そうと思います. あとは計算資源に乏しく,GPU温存してCPUで様子見ていて時間がかかっていたので,そのあたりのコンペ戦う環境も少し検討しています.(基本CPUで戦っているので)
油断
正直,最終日迎えた時点で0.87手前での戦いになると思っていたので,あたるかわからない大幅なスコア修正より,確実にでもわずかなスコア修正ができる無難な方法を試すことに切り替えてしまったのは,一つの反省点です.
感想
序盤,中盤,終盤と多くの方とLBで競うことができ,Discussionでコメントのやり取りもでき,とても楽しいコンペでした!
正直,メダルまで手が届きそうだったので,悲しい気持ちもありますが,自身の能力にまだ伸ばせる余地があると信じて,引き続き頑張りたいと思います.
コンペを通して,アイデアをすべて実装する力と計算資源があれば,もう少し戦えるようになるなと実感することができました.
このような機会を作って頂いたatmaさんとSansanさんに感謝感謝です. 第3回 atmaCup×Sansan楽しみにしております!
また,コンペに楽しく参加できたのは,他の参加者あってのことなので,DiscussionやTwitterでコメントのやり取りをしてくれた方々にも,本当に感謝しています.
再びコンペでいい戦いができるように,もっと強くなれるように頑張りますので,また対戦どうぞよろしくお願いいたします!