【AI王 〜クイズAI日本一決定戦〜】ふりかえり

こんにちは
AIチームの戸田です

本記事では昨日終了しました言語処理学会第27回年次大会(NLP2021)のワークショップとして開催されたクイズAI王〜クイズAI日本一決定戦〜のふりかえりをしたいと思います。

クイズAI王について

日本語を対象とした質問応答研究を促進させることを目的として、クイズ問題を題材とした質問応答データセットJAQKET[鈴木ら 2020]を用いた日本語質問応答システムの正解率を競うライブコンペティションです。

期間中は配布された評価データを使ってリーダーボード上でスコアを競い合いますが、当日は配布されていたものとは別の評価データが配布され、その場(制限時間2時間以内)で正解を予測する必要があります。

期間中のリーダーボード

データ

以下のデータが配布されています

  • 訓練データ: 13,061件
  • 開発用データ1: 995件
  • 開発用データ2: 997件
  • リーダーボード用評価データ: 1,000件
  • 正解エンティティ候補リスト: 920,444件
    • クイズの正解候補
  • 配布データの正解エンティティ候補リスト: 114,229件
    • 配布された訓練データと開発データ、リーダーボード用評価データの正解のみに絞った、上記正解エンティティ候補リストのサブセット

クイズ問題に対する解答は,必ず与えられたエンティティリスト内の約92万項目のいずれかになります。各問題に対して20個の候補項目が付与されており、正解は、この中のいずれか1つの項目になります。

問題の例を以下に示します。

問題文: 格闘家ボブ・サップの出身国はどこでしょう?
回答候補: アメリカ合衆国, ミネソタ州, オンタリオ州, ペンシルベニア州, オレゴン州, ニューヨーク州, コロラド州, オーストラリア, ニュージャージー州, マサチューセッツ州, カナダ, テキサス州, ミシガン州, ワシントン州, ニュージーランド, オハイオ州, カリフォルニア州, メリーランド州, イリノイ州, イギリス
正解候補: アメリカ合衆国

また、これらの問題データに加えて、補助データとしてWikipedia記事の本文をまとめたファイルが配布されています。

ルール

コンペティションを行うにあたり、ルールがいくつか設けられています。以下にルールの引用を示します。

利用可能データに関するルール

利用可能なデータは 一般公開されているもののみ とします.研究促進が目的であるため,一部のユーザしか使えないデータなどを使ったシステムは評価対象外とします.
ただし,独自に作成したデータであっても,無償で一般公開すれば利用可能となります.他の組織でも結果を再現できるか,というのが一つの目安となります.
[2021/01/17追記] 開発データのモデル学習への利用禁止に関するルールを撤回しました。例えば、次のようなデータは利用可能です。
JAQKETの訓練データ・開発データ
参加者が独自にダウンロードしたWikipediaのデータ
解答時に外部のリソース(インターネット検索など)を利用するのは禁止です.

利用可能計算機リソースに関するルール

基本的に 単一の計算機内のリソースで動くことを想定します (どこまでを単一計算機と思うかは常識的な範囲で考えてください).
最終報告会当日の テストデータ公開後,規定時間(30分を予定)以内に解答が投稿されなければ時間切れ と判定します.

No private sharing outside team ルール

チーム外の他の参加者と、公式 Slack ワークスペースなどの場以外のプライベートな場において、コードやデータなどを共有することや、戦略などについて具体的な議論を行うことを禁止します。
このルールはリーダーボードには適用されず、最終報告会でのライブコンペにのみ適用されます。

解法

私の解法は、ワークショップの当日に使った資料をまとめていますので、こちらをご参照ください。

ざっくりとした概要を書くと、

  • テキスト前処理
  • Bag-of-WordsモデルでWikipediaの記事の文章をInformation Retrieve
  • カスタムヘッドを用いたBERTモデルで学習
  • ロバストさを確保するため、アンサンブル(Stacking)

となります。

結果

LB上では僅差でしたが、1位を取ることができました!

当日のライブコンペでは3位という結果になりました。

若干LBにOverfitしてしまったようです。悔しいですが、また来年も開催されるようなのでリベンジしたいと思います!

おわりに

私はこれまでKaggleで様々なML/DSコンペティションに参加してきましたが、日本語NLPコンペティションは初めてでした。「漢字N文字で〜」のような日本語特有の知識が使えたことは良かったです。逆に最新のpre-trainモデルを使えないところは難しかったです。(ALBERTとか使いたかったです…)

題材はクイズでしたが、課題はカスタマーサポートで直面している、期間の問題(例: クリスマスのちょうど1週間後にあたる、日本の国民の祝日は何?)やスペルの問題(例: 「ハワイ」を英語で書いたとき、2回出てくる文字は?)とよく似ていたと思います。また、ビジネスや研究ではあまり好まれたことではありませんが、オリジナルBERTモデルを育てていくのはワクワクしました。

とても楽しく、学びも多いコンペティションだったので、運営の方に感謝です

最後までお読みいただき、ありがとうございました!