【NLP Competition 2022】今年も開催、バズる記事予測コンペ【自然言語処理】
今回のテックブログでは、この秋開催された自然言語処理コンペティションの模様をお届けします。大学生・大学院生を対象とし、今年で5回目となるこのコンペ。様々なバックグラウンドの参加者17名が2日間、競い合いました。
非公開データを使って、よく読まれる記事を予測!
10月15日(土)〜16日(日)の2日間、オンラインにて開催された「NLP Competition for Students -2022 Autumn-」は、朝日新聞社メディア研究開発センターが主催する自然言語処理コンペティションです。朝日新聞社が保有する非公開のデータやコーパス、単語ベクトル等を活用し、Twitterからの流入が多い朝日新聞デジタルの記事(いわゆるバズる記事)を予測し、その精度を競います。上位入賞者にはギフト券が贈られます。
過去コンペのレポートはこちらのマガジンから👇
コンペ1日目
zoomの会場に集合すると、今回のコンペで取り組む課題、使用できるデータ、ルール解説などのオリエンテーションが行われました。その後、全員が自己紹介。「コンペの類には初参加」という方から「経験はあるけれど自然言語処理系は初めて」という方、そして経験豊富な方まで、様々なバックグラウンドの参加者が4グループに分かれて課題に取り組み始めました。
計算資源はGoogle Colaboratory。ベースラインコードがNotebookで配布され、各自そのコードを読み解いて改良を試みたり、データ内容を眺めたり、環境構築をしたりしていきます。各グループにはメンターの社員も同席し、不明点や詰まったところがあれば随時相談することができます。
また今年は、前年よりリッチな計算リソースを、ということでColab pro+のアカウントを用意しました。そのおかげか、コンペ開始後すぐにリーダーボードに推論結果をサブミットする人が現れ、例年以上にスピーディな展開となりました。
リーダーボードには各参加者が提出した推論の予測精度を表すF1 Scoreが表示されます。ただし表示されるpublic scoreはあくまで目安であり、最終順位はprivate scoreで決まるため、最後まで結果は読めません。
コンペ2日目
2日目の午前中には、新たなリソースとして朝日新聞のデータで学習させたCLIPの配布なども行われました。1日目である程度いくつかの手法を試して、新しい打ち手を探していた何人かが取り入れてみたようです。
またランチの時間は、メンターも交えて情報交換。
「学習に時間がかかるBERTは避けていたけれど、今回の計算リソースだったら試しておけばよかった」
といったコンペの戦略の話から、
「就活はどんな感じで進んでますか?どんな業界が気になってます?」
といった参加者同士の就活に関する情報交換なども行われました。
ランチ後は、リーダーボードへの提出締め切り時間まで、各自集中したもくもく時間に。順位も常に変動があり、締め切り時間まで目が離せない状況が続きました。
結果はいかに!?
2日間の振り返りワークと全体共有が行われた後、結果発表が行われました。Colab pro+を使った環境だったためか、F1 Scoreで80以上が上位を占めるハイレベルな戦いとなりました。
上位3位の結果を、ご本人のコメントとともにご紹介します。
3位:鈴木春太郎さん F1 Score:80.3
入賞の感想を一言
まさか入賞できるとはと驚きました。初日にいい位置にはつけたものの、計算リソースを使い切ってしまい、2日目で他の方がスコアを上げてきていたのでリーダーボードを見てハラハラしていました。3位が取れてうれしいです。
入賞できた要因、自身の手法でうまく行ったと思う点は?
早い段階でBERTベースのモデルをうまく作れたことでしょうか。似たようなコンペで、分類ヘッドはCNNヘッドが効くことを知っていたのでそれを採用し、また計算リソースが限られたコンペの経験から、シングルモデルでも汎化性能を上げる工夫として、32のバッチサイズを勾配蓄積法で仮想的に128にすることで学習を安定させたりしました。
本当は2日目にRoBERTaモデルも作ってアンサンブルをしたかったのですが、1日目で計算リソースを使い切ってしまってそれが叶わず。順位も下がると思ったのですが、初手で汎化性能の良いモデルができていたのが功を奏したのかなと思います。
学びになったこと
計算リソースを効率よく使うために、仮説を立てて実験を行うことの重要性を学びました。
今回は非効率なGPUの使い方をしてしまったため、初日にA100(GPUの種類)を使い切ってしまいました。そのため有効なモデルを多く作ることができず、今回の目標だったアンサンブルを使ったスコア向上を成し遂げることができなかった点は今後に活かせたらと思います。
2位:渡邊英介さん F1 Score:80.6
入賞の感想を一言
素直にうれしいです。いろいろと学びのあるコンペでした。public scoreでは4位だったところから、順位が上がって驚きました。他のコンペでshake downが起こりscoreが落ちた経験はあったのですが、逆もあるんだと思いました。
入賞できた要因、自身の手法でうまく行ったと思う点は?
過去のコンペで有効だった手法を応用しました。見出しにその他の情報を結合した一続きの文字列にし、特徴量として使うことが効いた経験があったので、そのモデルを含めてstackingしLightGBMで予測、最後にseed blendingを行いました。
学びになったこと
画像の扱いは初だったので、特徴量としてどのように推論に影響を与えるのか興味がありました。今回のタスクではさほど効くわけではなかったけれど、ベースラインコードを参考に、画像の取り扱いについて経験できてよかったです。
1位:土田 寛さん F1 Score:81.2
入賞の感想を一言
嬉しいです。早めからリーダーボード上位にはいたものの、オンライン(zoom)上で一緒に競っている方たちの存在が見えるのは、Kaggleなどとはまた違う緊張感があり、2日目はリーダーボードの動きを注視していました。
入賞できた要因、自身の手法でうまく行ったと思う点は?
(他社での)インターンの経験から、TF-IDFよりBERTやRoBERTaが良いだろうという知見があったので、配布されたベースラインで使われていたTF-IDFにはこだわらず、最初からRoBERTaを使って進めたことがよかったです。過学習対策として、Early Stopping、Multi-Sample Dropout の利用などの工夫もできました。
また、これまではアンサンブルの経験がなかったのですが、今回のコンペで初めて経験できたのもよかったです。
最終的には、RoBERTa(朝日新聞、 rinna)とELECTRA(リクルート)の計3モデルのアンサンブル(重み付き平均)を提出しました。
学びになったこと
過去やったことのある交差検証を使ったり、これは効くだろうと知っていたいくつかの手法を試したことで「仮説を立てて実験すること」の大事さを体感できました。メンターに力を借りられたこともよかったです。大規模データを扱いやすくする方法に自信がなかったのですが、メンターに確認して「大丈夫」と言ってもらえて安心することができました。また、画像の扱いについて体系的な知識がなかったのですが、もし困っても聞けばいい、という環境がありよかったです。ベースラインとなるコードも配られるので、経験の少ない方でも参加してしまえさえすればなんとかなると思います。
コンペで得られるもの
上位入賞の方は、ギフト券と入賞の嬉しさが得られるわけですが、その他の皆さんも様々に得るものがあったのではないでしょうか。
特に例年好評なのが、ベースラインコード。
機械学習の経験が浅い方でもスムーズに推論、リーダーボードへのサブミッドまでできるよう、解説付きで配布されます。「自然言語処理に触れるのは初めて」という方も一通りの流れを掴むことができますし、経験豊富な方で「画像の扱いは初めてで配布コードが参考になった」という方もいました。
また、意外と大事なのがメンターとのやりとり。自力でやり切る方ももちろんいますが、メンターからスコアを上げるためのヒントとなるようなノウハウをしっかり聞き出す人も。せっかくの機会なので、この環境は生かしたもの勝ちです。
そして、非公開のリソースを使えるのもなかなか貴重な体験です。「朝日新聞社が持っているRoBERTaを借りて動かしてみたが、普通であれば触れないモデルを使い、精度を見ることができたことは楽しく、非常にわくわくした」と言った参加者の声もありました。
さらに、例年の強い要望を受けて計算リソースをグレードアップしたりと、運営側も工夫を重ねて参加者の皆さんをお迎えしました。このイベントをきっかけに、この分野に興味を持ったり、朝日新聞社の技術職に興味を持ってもらえたりしたらうれしい限りです。参加してくださった皆様、ありがとうございました。
朝日新聞社の技術職に興味を持たれた方はぜひこちらもご覧ください。
(メディア研究開発センター・杉野かおり)