見出し画像

【バズる記事を推論!】非公開データを用いた自然言語処理コンペティション2023


今回の記事では、11/18〜19にかけて開催されたメディア研究開発センター主催「バズる記事を推論」コンペの様子をお届けします。2021年から始めて3回目の今回ですが、自然言語処理コンペでの腕試しや朝日新聞社の技術職に興味のある総勢16名の学部生、大学院生の方達にご参加いただきました。

どんなコンペ?

さて、今回のコンペは朝日新聞デジタルで公開された記事が Twitter (現X) 経由でどれだけ多くの人に読まれたかを、記事の見出しや本文、記事のジャンル、記事の写真などといったマルチモーダルなテーブルデータから推定する2値分類タスクです。データの種類が多彩なだけにさまざまなアプローチが考えられますね!

過去のコンペのレポート記事はこちらからご覧ください。


コンペ1日目


コンペ1日目は参加者たちがZoomに集まり、コンペの進行と課題に関するオリエンテーションから始まりました。今回利用するのはGoogle Colaboratoty Pro+です。手軽にコードを実行できながら、A100などの高性能なGPU上でモデルを扱うこともできます。


今回の参加者の中には「自然言語処理は初心者なので不安です」といった方も多くいらっしゃいましたが、そのような方も安心して参加いただける体制を整えています。わからないところがあれば社員にいつでも相談できるのはもちろん、ベースラインのノートブックを配布したり、初心者向けにベースラインの解説の時間を設けています。


TFIDFを題材にしたベースラインコードでデータの読み込み~提出ファイルの作成までの一連の流れを勉強しました。


チームに分かれて相談も交えながら進めていきます!

当日の様子はというと、1日目からすでに人によって多様なアプローチが見られました。テーブルデータという特性を活かして各特徴量の組み合わせからさらに特徴量を量産する人もいれば、言語的な情報を重視してさまざまな言語モデルのファインチューニングを試す人など…。一体どの戦略が功を奏すのでしょうか!

コンペ2日目


いよいよコンペも大詰め。リーダーボード上のスコアを0.01でも改善するために、みなさん黙々とではありますが苛烈な争いを繰り広げています。
さて、今回のコンペは自社開催ということで、採用についての質問も広く受け付けています。「1年目って実際どんな仕事してるの?」「コンペと実務の違いは?」「服装の規定ゆるいですか?」などの質問にお答えしました。中には弊社が取り組んでいるデータジャーナリズムについて興味をお持ちの方もいらっしゃったようです。データジャーナリズムの紹介についてはこちら👇

コンペ終了まで後わずか。なんとここでせっかく訓練したモデルが保存できないバグに見舞われてしまった人も…。
焦りと緊張の中、最終提出のファイルを選びます。パブリックリーダーボードのスコアを信じるか、それともシェイクアップ・シェイクダウンの可能性を考慮して自分の信じたモデルを提出するか、難しい決断を迫られます。

最終結果はいかに!上位入賞者3名のコメントをご紹介します。

入賞者コメント

3位: 内田 巧さん (F1 score: 77.47)


【普段大学で勉強・研究していること】
自然言語処理の研究室に所属し、自然言語推論の領域で研究を行っています。特に否定表現が伴うことによる文意の変化をTransformerベースのモデルが捉えられるか調査しています。

【入賞の感想】
予測モデルの精度を競うコンペで入賞することに憧れていたので感無量です!2日間という短いコンペには独特な空気が漂っており、夢にコンペが出てくるほど緊張しました。

【入賞できた要因】
1つはデータとしっかり向き合ったことです。すぐにモデリングしたくなる気持ちを抑えて、社員の方のドメイン知識をお借りしながら特徴量の探索を行いました。2つ目は納得感のあるモデルを追求したことです。今回は説明性のある特徴量とモデルの選択を意識して作業を進めました。例えば「日時・時間帯が影響するのではないか」「対照学習を行ったモデルは今回の課題に適しているのではないか」などと仮説を立てながら取り組みました。結果として解釈性と精度の両立が達成できてとても嬉しいです。

【コンペを通じて学びになったこと】
データ理解の重要性です。ドメイン知識を持つ社員の方に相談することで、全く注目していなかった特徴量の中に重要なものが含まれていることに気づくことができました。この経験は実務でもきっと役に立つと感じています。


2位: 佐藤 真さん (F1 score: 77.69)


【普段大学で勉強・研究していること】
 大学の授業では、機械学習の基礎や統計学を学んでいます。私は現在学部2年生なのでまだ研究室には配属されていませんが、自分で画像認識などの深層学習を勉強しています。また、そこで学んだことを生かすために、Kaggleなどのコンペティションに積極的に参加しています。

【入賞の感想】
率直に嬉しいです。わたしは自然言語処理をやったことがなかったので、コンペでよいスコアを出せないのではないかと不安でしたが、入賞した時は自分でも驚きました。

【入賞できた要因】
はじめにモデルをLightGBMにしぼって、特徴量の生成に時間を費やしたことが要因だと思います。データに含まれる文章をファインチューニングして学習させる手法もありましたが、自然言語処理に初めて取り組む私にはそのような実装は難しかったので、文字数取得やSentence Transformerによる最低限の処理に留めました。あとはエンコーディング手法を様々に試し、モデルの特徴量重要度をもとに新しく特徴量生成を繰り返すことで、スコアを上げることができました。

【コンペを通じて学びになったこと】
 限られた時間の中で、どの手法で分析を行っていくかを判断する重要さを学びました。Kaggleなどのコンペ期間は数ヶ月間が基本ですが、今回は2日間しかなく、このようなコンペは初めてだったので、いかに考えたことを早くコードに書いて実装するかが重要だと感じました。また、ほかの学生との交流がとても刺激になり、これからの勉強のモチベーションにつながると同時に、様々な手法を知ることもできました。

1位: 渡邉 聖さん (F1 score: 78.39)


【普段大学で勉強・研究していること】
普段大学では数学とシステムについて勉強する傍ら機械学習や自然言語処理を勉強。

【入賞の感想】
1日目終了時、あまり良いスコアが出ておらず、その後朝日新聞社提供のRoBERTaのファインチューニングや特徴量を追加したLightGBMのアンサンブルにより良いスコアが出たことで、非常にホッとしています。終了間際にZoomを通してチームメンバーの真剣な顔をありありと思い出せるほど、終盤は緊張と不安が張り詰めていましたが、そんな中最終発表にて、1位に自分の名前が現れた時の嬉しさは名状し難いです。

【入賞できた要因】
1日目の特徴量作成の地道な努力と、2日目にRoBERTaモデルのファインチューニングを、見たことのないエラーをその場で解決しながら実行できたことだと思います。

【コンペを通じて学びになったこと】
本コンペティションでは、テーブルデータ、テキスト、画像と、他に類を見ないマルチモーダルな課題が出題され、それぞれの扱い方を考えるとともに、処理の方法をその場で試行錯誤しながら調整することが求められました。この経験は他のコンペティションでは体験できない稀有な有難いもので、良い成長をさせていただけました。

コンペを振り返って


皆さん本当にお疲れ様でした。短い期間の中に機械学習モデリングの楽しさや難しさがギュッと詰まった2日間だったと思います。中には夜通し特徴量を作っていた方もいらっしゃったようで… (睡眠は取りましょう)

コンペ終了後、みなさんの感想の中で共通していたのが「2日間という短い期間の中で多く実験を回すのに苦戦した」というもの。確かにこの期間の中で自分の思いついた仮説を全て検証するのは難しそうです。なるべく多くの実験を回せるように、再現利用可能なコードの書き方を意識したいですね。

さらに皆さん強調されていたのがデータ理解の重要さです。思わぬ特徴量がスコアに効いてくるかもしれないので、最初は丹念にデータを見ておくとその後の発想が違ってくるかもしれません。

最後に、とてもハードな2日間だったと思いますが、このコンペでの学びがこれからの皆さんに役立つものであれば嬉しい限りです。
改めて、ご参加いただきありがとうございました!

閉会式後の全体写真。みなさんお疲れ様でした。

朝日新聞社の技術職採用に興味をお持ちの方はこちらの採用ページから概要をご覧ください。ご応募お待ちしております。

https://www.asahishimbun-saiyou.com

(メディア研究開発センター・川畑輝)