2022年7月25日から8月25日にかけて、SIGNATE Student Cup 2022「データサイエンティストの職種判別チャレンジ!!」が開催された。タスクは、英語圏の求人情報に含まれるテキストデータ(職務内容に関する記述)をもとに、その職務内容がどの職種に該当するかを判別するアルゴリズムを構築するというものだ。理系や文系といった専攻分野に関係なく、誰でも平等にスキルを競い合える機会の提供を目的として、SIGNATEが主催する学生向けコンペティション「SIGNATE Student Cup」。制限や制約なく、思う存分自身のスキルを試し、学び合い競い合うことができる場となっている。 今回のコンペティションで優勝を勝ち取ったのは、shima_shimaこと、島野雄帆さん。島野さんが本コンペティション参加に至ったきっかけや、優勝への道筋、今後コンペティションに参加を検討している方々へのメッセージなどを伺った。

計算資源の研究の傍らでコンペティションに参加

現在は化学システム工学専攻で、そこで「第一原理計算と機械学習を用いた誘電体料の物性予測」という研究をしています。第一原理計算という計算手法は、材料の様々な物性を計算する際に利用されるものですが、スーパーコンピュータでも何十時間もかかってしまうものもあります。そうやって第一原理計算で計算してできたデータを機械学習によって学習させることによって、その計算コストを減らしたり、その特徴量の重要性を考えて、何が誘電率の大きさに効いているのか、そのようなことを調べたりする研究を行っています。ちなみに、名古屋大学には所在地名である「不老町」に由来して名づけられたスーパーコンピュータ「不老」があり、そちらを使っています。 工学部ということもあり、周りで機械学習をメインで扱っている学科が少ないので、コンペティションに参加している人もあまりおらず、身近なところから得られる情報がありませんでした。コンペティションに参加するまでは、自然言語処理について全く何も知らない状況でKaggleのコミュニティから拾った情報などを参考にして進めていきました。表彰式でも謝辞を述べさせていただいたのですが、Qiitaなどネット記事をあげていただいた方のおかげで何とか形になったので大変感謝しています。

-STC2022-Winners-Interview-1

今回の解法について

『SIGNATE Student Cup 2022』については、特にお二人の方の記事を参考にさせていただきました。Yama09さんの記事は、コンペティションの流れについて、とても丁寧に書かれていて参考になりました。Colum2131さんの記事からは、コードを割とそのまま使わせていただき、少しずついじって工夫しました。最初はBERTのバの字も知らなかったので難しくて、読み解くのにも苦労しました。未だにコードの全容を把握しているわけではないのですが、少しずつ勉強をしながらという感じでやっていましたね。色々と試行錯誤をしましたが、やってよかったと思うことの一つは、Seed blendをしたことです。データ数があまり多くなかったので精度のズレや誤差が大きかったと思うのですが、乱数を3つ使ってその平均を取り乱数の誤差を少なくしたのは、勝因の一つかと思います。 他の勝因としては、リーダーボードにこだわりすぎなかったという点もあるかもしれません。『SIGNATE Student Cup 2022』の前に参加したコンペティションでリーダーボードの数値だけを求めて、最終的に順位が降下したということがあり、その反省からリーダーボードに出ている数値だけを追い求めるのではなく、きちんと手元でも確認しながら進めるようにしました。 コンペティションにかけた時間についてですが、基本的に計算する学習時間が一番長いので、コードを動かして外出して、コードを動かして寝て、朝起きて出てきたものを確認するというような感じでやっていました。就活やインターン、学会発表も近かったのでその準備やアルバイトもあり、結構忙しくて大変だったというのが本音です。だからこそ、シンプルな解法しかできなかったというのもありました。講評でも言われましたが、色々と試してみるのですが、結局普通にシンプルにやった方が一番成績も良く、いかにBERTがすごいのかと実感しました。割ともう定石が知れ渡ってきて、そこに対してオリジナリティを出すのが難しいですね。 今回のコンペティションを通して、自然言語処理の理解を深めることができたのはすごく良い経験でした。BERTの種類を試してみたり、こんなに精度がいいということや、本当にテキストを入れるだけで予測できるということ、今の技術を実際に経験して色々と実感できたことはすごくよかったです。こういった経験から、就職先としてもデータ分析や機械学習を扱うところに行きたいという思いがさらに強まりました。

-STC2022-Winners-Interview-2

自分のスキルや実力を実績として残す

コンペティションに参加したきっかけは、インターンシップへの参加や就活のためです。インターンシップの申込の時期とも重なっていたということもあって、就活を見据えなにか実績を残したいと考えていました。そこにちょうどSIGNATEからコンペティションの案内が来たのでやってみようと参加を決めました。Kaggleでタイタニックの課題に挑戦したことはあったのですが、コンペティションへの参加自体は、2022年7月に開催されたSIGNATEの『デロイトアナリティクス Jリーグの観客動員数予測(for Recruting)』が初めてで、そこでの成績は6位でした。これまでの学びから理解できるところもありましたが、やはりコンペ特有の技術も必要だったので、様々なサイトで調べたり本を買ったりして勉強をしました。 実は今年は、名古屋大学主催のデータ分析のプログラムにも参加しています。そこでは、複数の大学の大学生と社会人の方が入り混じって、実際に企業のデータに触れて分析するということをしています。データからモデルを作成するというよりは、データを整え分析することを主題にしています。コンペティションはデータがある程度整えられていたり、精度だけが評価軸になることもありますが、生のデータは外れ値など修正しないといけない数値もたくさんあったり、実際の現場ではデータの相関性などを企業の方に示す必要があったりと、その差を実感しています。 先に開始したのは大学のプロジェクトの方なのですが、やはり途中コンペで力がついたこともあり、データ処理の部分ではチームを引っ張るような存在になれたかなと思っています。

-STC2022-Winners-Interview-3

コンペティション参加を検討している方へのメッセージ

Kaggleや他の方のコードを見るなどしてとりあえずコピペからでもよいので、始めてみるとよいと思います。Kaggleの中でしか動かないコードがあったりするので、やはりそのままではできなくて、少しずつ改善を加えないといけないので、自ずと調べたりすることになると思います。またコンペティションは運の要素も大きいので、そんなに順位にこだわりすぎないといいと思います。順位にこだわるより、色々と試しながら学びを意識して進める方がスキルアップにつながると思います。学んで力をつけるというモチベーションでやった方が楽しいですよね。 また、これから就活を控えている学生の方には、コンペティションへの挑戦をおすすめします。コンペティションをきっかけに興味を持った企業もありますし、選考を進めることができたところもあります。書類選考免除の特典がつく企業もあるので、確実にプラスになると思いますよ。順位をモチベーションにするのではなく、頑張って学んだことを学チカにしてみよう、みたいなそんな感じでいいのではないかなと思います。 <株式会社SIGNATE主催「SIGNATE Student Cup 2022: データサイエンティストの職種判別チャレンジ!!【予測部門】」の入賞者レポートはこちら>

この記事をシェアする