2022年9月9日、株式会社SIGNATE主催による「SIGNATE Student Cup 2022:データサイエンティストの職種判別チャレンジ!!」の表彰式が開催されました。SIGNATE Student Cupは、データサイエンススキルを持った学生の発掘、および企業と学生の交流を支援するために、SIGNATEが定期的に開催している学生限定のコンペティションです。今回のテーマは、「データサイエンティストの職種判別」。英語圏の求人情報に含まれるテキストデータをもとに、その職務内容がどの職種に該当するかを判別するアルゴリズムを提出する「予測部門」と、データサイエンティストのスキルを定量的に評価するアルゴリズムを提案する「インサイト部門」の2部門で行われました。 表彰式当日は、予測部門上位3チームとインサイト部門特別賞が表彰され、入賞者による解法プレゼンテーションも行われました。全員が学生ではあるものの、それを感じさせないような鋭い着眼点や、工夫を凝らした解法が示され、学びの多い表彰式となっていました。
▼動画はコチラ▼
主催者あいさつ

株式会社SIGNATE 代表取締役社長 齊藤 秀 氏 「SIGNATEで代表を務めている齊藤と申します。SIGNATE Student Cupも今回で5年目になり、毎年社会におけるデータ活用の重要性は非常に高まっていると感じております。今回も学生さん、協賛企業の皆様に多数ご参加いただき、盛況にて大会を実施できましたことを心より感謝申し上げます。このあと、企業の方々のお話や入賞された方のプレゼンなど、非常に貴重な、学びを深めるコンテンツを楽しみにしております。皆様にとって有意義な時間になればと思っております。以上、ご挨拶とさせていただきます。ありがとうございました。」
入賞者の発表
関係各社によるご挨拶が終わり、表彰式はメインコンテンツである入賞者の表彰と、解法プレゼンテーションへと移っていきます。 まず予測部門、インサイト部門の入賞者の表彰が行われました。 インサイト部門 審査員特別賞:SMD 予測部門 第3位:チームUZIA 第2位:ryuki999 第1位:shima_shima 続いて、表彰された入賞チームによる解法プレゼンテーションが始まりました。そのトップバッターを務めたのは、インサイト部門審査員特別賞に輝いたSMD氏。2年前の同テーマコンペのインサイト部門でも3位入賞されていますが、前回の成果物は利用せず、今回一から考案したそう。どんな工夫をして入賞を果たしたのかを共有いただきました。
インサイト部門 審査員特別賞
SMD 氏

「今回私は、なぜこのアルゴリズムを考案する必要があるのか、誰がこのアルゴリズムを利用するのかという課題を整理するところから始めました。データサイエンティストのスキルは、その時代や働く環境によって大きく異なります。採用したい企業視点では、応募者が自社の職務要件をどれだけ満たしているのかを定量的に評価し、データサイエンティストは、自分の経歴やスキルが各社の職務要件をどの程度満たしているのかが定量的に評価できれば良さそうです。 というわけで、今回解くべき課題はある企業に対して、あるデータサイエンティストがどの程度、職務要件を達成しているのかを定量的に評価することで解決できると考えました。はじめは、教師あり機会学習モデルを構築しようと外部データを探したのですがよいものが見つからず、代案を検討し、最終的に履歴書と職務要件文書を文章ベクトルのコサイン類似度によってスコア化するという方法でアルゴリズムを生成しました。予測部門で配布された職務要件文書にはHTMLタグが付与されて要件がリストになっていました。それらをBERTを使って文章ベクトルに変換し履歴書と比較しました。今回文章類似度という、ある程度楽観的な期待に基づいたアルゴリズムなので妥当かどうかを確認する必要があり、分析結果のレポートを作成し可視化して確認しました。」 発表後には、下記のような質問が寄せられていました。 Q:今回のアイディア以外で、今あるデータを使って試行されたアイディアはありますか? A:例えばBERTだと、質問応答タスクという学習済みモデルが公開されています。今回であれば、履歴書をコンテキストにして質問文に、この文章の中には〇〇という職務要件を満たす経験をしているかどうか、というような質問文を入れることで、ある程度回答を出すことはできると思います。いかんせん今回は学習データがなくファインチューニングができないので、見送りました。 質疑応答に続いて、審査員を務めた早稲田大学基幹理工学部情報理工学科教授の内田真人氏よりSMD氏の解法に関する講評が行われました。 審査員講評 早稲田大学 基幹理工学部情報理工学科 教授 内田 真人 氏 「インサイト部門はSMDさんがおっしゃっていたように課題が曖昧、言い方を変えると自由度が高いです。だからこそ、自分自身で問題設計、課題設定し、評価尺度を定めていくことが大切だとご説明いただきました。私もその通りだと思います。そういった考え方、フィロソフィーが特別賞をとるべくして取ったと思っています。またインサイト部門で重要なのは説明力だと思っていまして、今回事前に提出されたレポートは二段組みの論文形式で書かれており構成もしっかりしていて丁寧に説明されているという印象でした。肝心の分析結果についても、文章ベクトルのコサイン類似度を元にしたグラフでの定量的な表現での分析結果と、テキストを色付けされていた定性的な分析結果と、定量的・定性的なものを突合して解釈を検証していた点が非常によかったなと思っているところです。入賞おめでとうございました。」 続いて、予測部門の入賞者の発表です。3位に入賞されたのは、チームUZIA。自身の解法について、ご説明いただきました。
第3位
チームUZIA

「コンペ期間の前半は同時期に開催されていたkaggle Feedback Prize 2022というNLPコンペの解法を参考にBERT系のモデルをいろいろ試し、期間の終盤では試してきたモデルを使って大量にアンサンブルさせ、スコアを上げるという方針で進めました。前処理としてはhtmlタグの除去、trainデータの重複データの除去、encoding errorの除去を行いました。モデルに関してはdeberta-v3-base、deberta-v3-large、deberta-large、roberta-largeを最終的に採用しました。モデルの検証方法には分割数5のStratified KFoldを使用しました。損失関数にはCrossEntropyLossを使用しました。optimizerにはAdamWを使用しました。epoch数は10、トークン数の最大値は大きめに設定して1024としました。 全体像は4つのモデルをアンサンブルしたスタッキングの結果をご覧ください。重複データの削除では精度はあまり変わりませんでした。その他には水増しに取り組みました。」 発表後には、以下のような質問が寄せられました。 Q:私の場合、fine tuningや事前学習の実行ごとに予測精度が少し割れていたのですが再現性の確保はどのように行いましたか A:debertaのv3、v2系はもともと再現性がそこまで取れないのでモデル自体を保存して最終結果のスコアは再現性を取るという形にし、実験中の再現性はあまり取れませんでした。 Q:逆翻訳による水増しをされていましたがフランス語だけ試されたのですか A:フランス語だけ試して精度がかなり悪化したので意味がないと思ってやめました Q:学習率などのハイパーパラメータの調整はどの程度行いましたか A:ほとんどやっていません。だいたい一つ目で、ある程度の精度が出たのでずっと採用していました。 審査員講評 内田 真人 氏 「同じ様なアプローチを考えていた人は多くいたのではないかと思いますが、実際、精度が出せるかどうかが経験や技術の差なのではないかと思います。また、いかにそれっぽい水増しデータを人工的に作るかという点については、それが今回のようなコンペやフィールドで検証され、結果的にはまさにケースバイケースで、うまくいくこともあればむしろ悪化することもあるということが現実的に示されたと思います。参加者の方にとって、参考や新しい発想につながり、刺激やきっかけとなる取り組みをご紹介いただきました。入賞おめでとうございます。」 続いて、2位に入賞されたのは、ryuki999氏。準優勝を果たした自身の解法について、ご説明いただきました。
第2位
ryuki999 氏

「最終的な解法の全体像を説明します。最初に、訓練データの重複の削除を行いました。次にモデルの作成を行いますが、まず条件として、Stratified KFold(n_split=4)、Epoch10、CrossEntropy、AdamW、LR Cosine schedulerを採用し、モデルは合計4つ作成しました。最後にLocalCVが最大になるような重みづけ平均を求めて、それを使ってテストデータに対しても重みづけ平均をとって最終スコアとしました。精度向上に貢献した点ですが、訓練データの重複削除、Epoch数の増加を行いました。F1ScoreはEpoch5以降も上がることがありました。おそらくF1Scoreに影響しやすい少数クラスを正解できるモデルになっていたのかもしれないと思います。ただClass Weightを設定しても同じ傾向はありました。liner schedulerからcosine schedulerに変えてかなり精度の飛躍がありました。schedulerを変えただけで、こんなに精度が変わるものなのだなと個人的に驚きました。次に最終層のToken SequenceのMean Poolongも効果がありました。またLoss関数のClass Weightについて、これはリーダーボードで順位が下がってしまったので採用しなかったのですが、結果的にPublicとPrivateのバランスがとれていて使用すればよかったかなと思っているところです。最後に重み付き平均アンサンブルを行い、モデルや重みの条件を変えた12件の投稿全てでprivateスコアが7位相当を超えていました。シェイクを防ぐうえでも効果があったと思っています。」 発表後には、以下のような質問が寄せられました。 Q:予測コンペにおいてPublicリーダーボードとlocalCVのどちらを重視して最終サブミッションを選択すべきでしょうか A:どちらも大事かなと思いますが、基本的にスコアを出す際に使っているデータ量が多い方を重視します。今回はローカルCVで一番高くなるものを選択しましたが、データ量に応じて選択するとよいのではないかなと思います。 Q:元の文章自体に前処理はしたのでしょうか、またBERTのモデルにおいて文章の前処理は有効だと思いますか A:私の経験になってしまうのですが、前処理を行ってあまり精度向上に寄与したことがないというのがあって、今回は前処理をしませんでした。 審査員講評 内田 真人 氏 「SIGNATEで上位に入るには、どう戦略的な流れでやっていけばいいのかということを時系列に沿って説明してくれたプレゼンだったと思います。時間が限られている中で、序盤、中盤、終盤で何をやるのか、やらないのか、何を優先するのかという、そういう選球眼を求められると思うのですが、いいグッドプラクティスを示してくれたと思います。こういうことはデータサイエンティストに限らず、限られたリソースのなかで成果をどうやって最大化し、最適化していくのかは、将来ここにおられる学生さんたちが、どんな仕事についたとしても重要なことで汎用的な能力だと思います。こういうことが、事前にできているということはryuki999氏さんのプレゼンから垣間見えまして、そういった方が2位に入ったのは当然のことなのかなと思います。おめでとうございます。」 最後にプレゼンテーションを行ったのは、見事第一位に輝いたshima_shima氏。優勝を飾った解法について、丁寧にご説明いただきました。
第1位
shima_shima 氏

「職務内容をラベリングしたテキストデータをファインチューニングして、分類モデルを作成しました。RoBERTa-large、DeBERTa-large、DeBERTa-v3-baseの3つを採用しています。 ファインチューニングした3つのBERTモデルをただVotingしただけというシンプルな構成になっています。次にパラメータについてですが、テキストデータの単語数は、学習に使う単語数を決めるmax lengthは128、256、512の3種類を用いました。batch sizeについては、主に16、32を用いましたが、max lengthが512のときはbatch sizeを8にして勾配を蓄積させ学習することでメモリの問題を解決しました。Seed blendもおこないました。3種類のseedモデルを作成し、その平均を予測値として使用しました。複数のseedを用いることでリーダーボードの過学習を防ぎ、予測結果の偏りを防ぐことができたと思います。最終的には6種類のBERTモデルと、3つのseedの計18個のモデルを用いました。アンサンブルについてはVotingを行いました。最もCVの高いモデルに3倍の重みづけ、最もリーダーボードのスコアが高いモデルは、3倍の重みづけを行いました。 初めて自然言語処理を扱いましたがコンペティションを通して理解を深めることができました。次回はオリジナリティを出して入賞できるようになりたいと思います。」 発表後には、以下のような質問が寄せられました。 Q:トピックを加えられたと思いますが、何種類ぐらいのトピックを加えられましたか。 A:5、10、15、20種類くらい試しましたが、効果がありませんでした。 Q:テキストデータの入ってるHTMLタグを除去したが効果がなかった理由は何かあると思われますか A:今思えば、改行のデータなどが重要だったかもしれません。 Q:効果がなかった手法で、数字を全て同じ値にしたとありますがこれはラベルのことでしょうか A:これはテキストデータに書かれている数字を全て0にするということです 審査員講評 内田 真人 氏 「SIGNATE Student Cupも今年で5年目。当初と比べると、機械学習の計算のインフラや手法、実装するプラットフォーム、知識や常識が広く一般化し、誰でも参加できる感じになってきていますね。そういうことが原因かはわからないですが、上位3位までの解法がBERT+アンサンブルで、それは手法が一般的になってきたということかなと感じています。定石が固まってきたということは、研究者や技術者が新しいことを考えるよう専念できるようになったということだと思います。shima_shimaさんも、よくわかっておられて、オリジナリティが出せなかったということをおっしゃっており、今回のコンペの特徴というか、本質みたいなものを端的に総括されていました。今後、更なる活躍を期待しています。おめでとうございます。」 以上で、全ての解法プレゼンテーションが終了。最後に、Web記事賞の受賞者が発表され、表彰式は終了しました。
Web記事賞 yama09氏 ryuki999氏 hayball氏
まとめ
今年で5年目となったSIGNATE Student Cup。内田先生からのご講評にもあったように、参加者の皆さんのスキルレベルが高く、年々上がっていっているように思いました。AI技術が発達したことで、技術が身近なものとなりました。学生のうちから最先端の技術を学び、こういったコンペティションで実力を試すことでさらに力をつけ、社会に出てからもすぐに戦力として活躍されるだろうと感じざるを得ませんでした。今回の表彰式も、入賞された皆さんの素晴らしいプレゼンテーションを拝聴でき、視聴された参加者の皆さんにとっても非常に有意義な学びの時間になったと思います。改めて入賞された皆さん、本当におめでとうございました。 <SIGNATE Student Cup 2022「データサイエンティストの職種判別チャレンジ!!」予測部門の入賞者レポートはこちら>