見出し画像

【バズる記事を推論!】自然言語処理コンペティション2DAYS レポート【史上最高スコアも】

今回のテックブログは、11月末に開催された自然言語処理コンペティションの模様をお届けします。年1回開催のこのコンペは今回で4回目ですが、史上最高スコアが記録されるハイレベルな戦いとなりました。18人の参加者たちの熱い2日間をご覧ください!

自然言語処理コンペティションとは?

11月27日(土)~28日(日)の2日間、大学生・院生を対象に「2021 Asahi NLP Competition」が開催されました。これは、朝日新聞社が所有する非公開のデータやコーパス、単語ベクトル等を活用し、Twitterからの流入が多い朝日新聞デジタルの記事(いわゆるバズる記事)を推論して、その推論精度の高さを競うコンペです。オンライン形式でグループに分かれ、参加者同士も交流しながら課題に取り組んでもらいました。

コンペ1日目

まずは参加者全体で、取り組んでもらう課題内容や配布されるデータの説明、リーダーボードの使い方などのオリエンテーションを聞き、全員で自己紹介をした後は、4グループに分かれて課題に取り組みました。

画像2

ベースラインモデルはgoogle colabのnotebookで全員に配布されます。各自がソースコードを読み解き、まずはベースラインモデルのパラメータ調整を試したりして、精度の向上に取り組みます。さらに、配布されたデータを使い自分なりのアプローチで推論モデル作成に挑戦していきました。

各グループには常にメンターの社員も同席し、やり方に詰まったら随時相談することができます。1日目は初日ということもあり、多くの相談がメンターに寄せられました。参加者同士で教え合ったり、アドバイスを受けながら各自集中して課題に取り組みました。

コンペ2日目

推論結果のファイルをリーダーボードに提出すると、予測の精度を表すF-1スコアと現在の参考順位が表示されます。2日目ともなると、リーダーボードには各参加者のスコアがだいぶ出揃ってきて、自分の立ち位置も見えてきます。さらに精度を上げるために、学習に使う素性を変えて新たなモデルを作成したり、別の手法を試したりと、あの手この手でブラッシュアップを行っていきます。
「リーダーボードへの提出、まだやってないんだけど、どうやるの?」
「自分の手元のスコアより、リーダーボードに提出したスコアは10ポイントくらい低く出てしまう…」
後半戦ともなるとより具体的な質問や相談も飛び交い、最終ファイルの提出締め切り時間ギリギリまで、最良の推論結果を求めて走り切りました。

推論がうまくいかない…そんな時はメンターにコードを共有しながら一緒にデバッグ
スクリーンショット 2021-11-28 12.49.42
ランチの時間はコンペを忘れて雑談も

結果発表!

初日と同じように参加者が全員集合し、最終スコアと順位の発表が行われました。特に注目されたのは、5位以上の参加者のスコアが70超えだったことです。これはコンペ史上初の出来事でした。また、2位以下に2ポイント以上の差をつけ、史上最高スコアを記録した1位の小川さんには「1日目終了時点でどこまで進んでいましたか?」「次元圧縮の手法は何を使ったんですか?」など、参加メンバーから、手法や課題の進め方に関して多くの質問が寄せられました。

運営側も驚くレベルの高さでした

上位3位の皆さんからコメントをいただきました。

第3位:淵 紘平さん F1 Score: 72.2

  • 入賞の感想を一言
    3位という順位はうれしいですが、1位の方とのスコアの差が大きかったので悔しくもあります。

  • 機械学習の経験や、取り組んでいる学習・研究分野
    機械学習は研究の傍らの時間で勉強しており、Kaggleなどのコンペに数回参加しています。研究では微細な形状を正確に計測する手法の開発をしています。

  • 今回使用した手法

    • 特徴量について
      文章に関しては、見出しや記事の文章をBERTを使ってベクトル化したものと、文章内の「漢字、ひらがな、英語」の割合を算出したものを特徴量として加えました。また、見出しの長さと記事の長さも特徴量として加えました。
      その他の特徴量については、記事に写真が存在するかや記事が出された日時、時間帯などの特徴量を作成しました。

    • モデルについて
      上記の特徴量をLightGBMで訓練し、予測をしました。

  • 方針としてうまくいったと思う点
    見出しをベクトル化した特徴量を加えたところ、一気にスコアが上昇したので、そこはうまく行った点であると思います。

  • これをもっとやれていれば、と思うこと
    記事のジャンルを表した特徴量をベクトル化するなどしてうまく使うことです。

  • 他の参加者や、メンターとのやりとりから刺激を受けたこと
    ベクトル化した文章を次元圧縮する際の手法でしたり、特徴量として加える場合に適しているベクトル化の仕方について学ぶことができたのでとても良い機会になったと思います。ありがとうございました。

第2位:川畑 輝さん F1 Score: 73.6

  • 入賞の感想を一言
    嬉しいです。ただ、試したいことがまだあったので悔しい思いもあります。楽しいデータを提供してくださりありがとうございました。

  • 機械学習の経験や、取り組んでいる学習・研究分野
    大学院では自然言語処理の研究室に所属していて、研究では質問応答分野や自動要約分野に主な興味関心があります。

  • 今回使用した手法

    1. モデルについて
      LSTMとRoBETRTaのアンサンブル。
      RoBETRTaは朝日新聞社が事前学習し、今回のデータセットでファインチューニングしたモデル。LSTMはベースラインとして提供されたモデルに改良を施しました。

    2. 特徴量について
      両モデルへのインプットに対して、以下の工夫を加えました。

      1. 記事のカテゴリーデータのconcat

      2. 記事がアップされた時間をconcat

      3. embedding層を朝日新聞社の新聞記事データで学習済みのembeddingに変更

      4. 記事本文のデータをその要約版で代替

  • 方針としてうまくいったと思う点

    1. モデルのアンサンブル
      当初はLSTMに改良を加え続けていたのですが、精度の頭打ちや、Shake down(リーダーボードのスコアより最終結果が下がること)が怖かったので、モデルのアンサンブルを検討しました。未知データへの頑健さから、LSTMと異なる特徴をエンコードしていそうなモデルとして先述の朝日RoBETRTaを選び、結果として、精度向上に加えShake downも防ぐことができました。

    2. 要約の作成方針
      以下の動機で要約版を用いました。

      • 朝日新聞のTwitterでは見出しと記事URLとともに本文の要約がツイートされており、RT数にも関係があるはず。

      • 本文の記述要素が一様にRTに関係しているはずはなく、むしろ関係のない情報が予測のノイズになっているかもしれない。そこで要約文の使用を考えました。制限時間内に使えるシンプルで高速な要約手法として(抽出型の)自動要約の論文で見かけたLEAD3を試し、精度が大きく向上しました。

  • これをもっとやれていれば、と思うこと
    GBDT系とのアンサンブルと「リツイート」であることを生かした特徴量作成です。後者に関しては、そもそもリツイートというのはフォロワーとの関係の中で自身の意見や嗜好などを開示する行為という側面があると考え、その人を取り巻くコミュニティの属性・性質を、記事に紐づいたジャンルで表現できないか試していたのですが、時間の関係で諦めました。

  • 他の参加者や、メンターとのやりとりから刺激を受けたこと
    メンターの方からのフィードバックを受けて時間特徴量を取り入れました。要約APIを使う、というアイディアはグループのメンバーと話している中で出てきたものです。
    1位の方がGBDT系で高スコアを出していたので、「データ量が多いからニューラル」と考えていた自分に対する戒めとなりました。

第1位:小川 遼人さん F1 Score: 76

  • 入賞の感想を一言
    まさか1位をとれるとは参加のタイミングでは思っておらず、賞をいただくことができ大変うれしいです。これを励みに今後も学習に日々邁進していきたいと思います。

  • 機械学習の経験や、取り組んでいる学習・研究分野
    もともと機械学習は独学で勉強し始めました。現在は機械学習を因果推論の手法に応用する分野の研究をしています。自然言語処理についてはインターン先でTwitterのデータなどを取り扱っていく中で学習していました。

  • 今回使用した手法
    モデルはLightBGMを使いました。ハイパーパラメータチューニングにはOptunaを使用しました。

    • 特徴量について

      • テキストデータに関しては、RoBETRTaとUniversal Sentence Encoderを用いて単語埋め込みを行い、TruncatedSVDを用いて32次元に次元圧縮しました。

      • テキスト以外のデータに関しては、記事ジャンルなどラベルエンコーディング、時刻データからの特徴量作成などを工夫しました。

  • 方針としてうまくいったと思う点
    短い時間のコンペだったため、「軽めのモデルを色々試す」という方針を序盤のうちから取れた点がうまくはまってくれたのかと思います。限られた時間の中で試行回数を多くすることができ、有用な特徴量作成などができました。

  • これをもっとやれていたらと思うこと
    エラー分析に時間をかけられなかった点が心残りです。自分の作成したモデルがどのようなデータに対して予測を外しているかを分析することによって、より精度を上げられていたかもしれません。

  • 他の参加者や、メンターとのやりとりから刺激を受けたこと
    メンターの方は質問をすると真摯に対応してくれて、とても助けられました。お昼の時間はフレンドリーに話してくれて、よいリフレッシュになり集中して励むことができました。
    リーダーボードからは、他の参加者の方が着々とスコアを伸ばしている様子が確認でき「自分もより精度をあげなければ!」と刺激を受けました。

コンペを振り返って

今回のコンペには、機械学習について豊富な経験を持つ方から「実は機械学習は全く初めて」「機械学習は経験あるけど、自然言語処理は全く…」という方まで、幅広い層の方に参加いただきました。
経験者の方々がその力を存分に発揮し、ハイレベルな戦いを見せてくれたのはもちろん、経験のない方も、メンターとともに機械学習の一連の流れを経験し、たった2日で推論から精度向上までできるようになったことが、運営陣にとっては驚くとともにとても嬉ばしい結果でした。イベントをきっかけに、この分野により興味を持って踏み込んだり、朝日新聞社の技術職に興味を持ってもらえたりしたら、嬉しい限りです。

参加者のみなさま、2日間大変お疲れさまでした!

(メディア研究開発センター・杉野かおり)