「日本で一番高い山は?」と聞けば「富士山です」と答えが返ってくる——このように、人の質問に対して答えそのものを返す技術が質問応答です。クイズ番組で人間王者を破ったIBMワトソンから、BERTやGPT系の大規模言語モデルまで、自然言語処理の代表的な応用タスクとして発展してきました。

📖 ひと言でいうと

質問応答(Question Answering)とは、ユーザーが自然言語で入力した質問に対して、適切な「答え」を提供する技術・タスクのことです。

検索エンジンが「関連しそうなWebページの一覧」を返すのに対し、質問応答は「答えそのもの」を返すのが特徴です。図書館で例えるなら、検索は「その話題ならこの棚の本にありますよ」と案内する司書、質問応答は本を読んだうえで「答えは富士山です」と直接教えてくれる司書のイメージです。

🖼 1枚でわかる質問応答

質問応答(Question Answering)
  • 定義 — 自然言語の質問に対し、関連情報を抽出して適切な回答を提供するタスク
  • 抽出型 — 与えられたコンテキスト(文脈)から回答部分を直接抜き出す
  • 生成型 — 質問に対して回答を新たに生成する
  • 発展 — BERTやGPT-3などの大規模言語モデルで性能が飛躍的に向上
  • 資源 — SQuADなどのデータセット、Hugging Face Transformersライブラリ
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

ユーザーからの質問に対して適切な回答を提供する技術を指す。このタスクは、ユーザーが入力する自然言語の質問に対し、関連する情報を抽出し、適切な回答を生成することを目的としている。質問応答システムは大きく2つのタイプに分類される。一つは「抽出型質問応答」で、与えられたコンテキスト(文脈)から直接回答を抽出する方法である。もう一つは「生成型質問応答」で、質問に対して新たに回答を生成する方法である。抽出型では、例えば、与えられた文章内から該当する部分を抜き出す形式が一般的である。一方、生成型では、質問に対して適切な回答を新たに生成する。近年、BERTやGPT-3などの大規模言語モデルの登場により、質問応答タスクの性能は飛躍的に向上している。特に、BERTを用いた日本語の質問応答モデルの作成に関する研究も進んでおり、SQuAD(Stanford Question Answering Dataset)などのデータセットを活用してモデルの微調整が行われている。また、Hugging FaceのTransformersライブラリを使用することで、質問応答モデルの実装が容易になっている。このライブラリを活用することで、テキスト分類や固有表現抽出、要約、翻訳など、さまざまなNLPタスクに対応することが可能である。さらに、質問応答モデルの性能評価方法として、BERTScoreなどの指標が提案されている。これにより、モデルの出力と正解データとの類似度を評価し、モデルの精度を客観的に測定することが可能となっている。

覚えるべき軸は「抽出型か、生成型か」の2分類です。抽出型は答えを「探して抜き出す」、生成型は答えを「自分の言葉で作る」と整理すると迷いません。

加えて、BERT・GPT-3といった大規模言語モデルの登場で性能が飛躍的に向上したこと、SQuADという代表的なデータセットでモデルの微調整(ファインチューニング)が行われることも押さえておきましょう。

🔍 しっかり理解する

抽出型と生成型:答えの作り方が違う

🅰 抽出型質問応答
  • 与えられたコンテキスト(文脈)から回答を直接抽出
  • 文章内の該当部分をそのまま抜き出す形式が一般的
  • 答えの根拠となる箇所が明確
  • SQuADはこの形式の代表的データセット
🅱 生成型質問応答
  • 質問に対して回答を新たに生成
  • 元の文章にない表現でも柔軟に答えられる
  • GPT系モデルによる対話型AIはこちらの方向
  • 柔軟な反面、内容の正しさの検証が課題

抽出型は「この文章を読んで、質問の答えに当たる部分に下線を引く」国語のテストに似ています。答えは必ず本文中にあるので、根拠がはっきりします。一方の生成型は「本文を踏まえて自分の言葉で答えなさい」という記述問題に相当し、自然で柔軟な回答ができる反面、本文にない内容を作ってしまうリスクの管理が課題になります。

大規模言語モデルとエコシステム

質問応答の性能を大きく引き上げたのがBERTやGPT-3などの大規模言語モデルです。特にBERTは、SQuAD(Stanford Question Answering Dataset)のような質問応答データセットで微調整することで、高精度な抽出型質問応答モデルを作れます。日本語の質問応答モデルの研究も進んでいます。

実装面では、Hugging FaceのTransformersライブラリを使うと、事前学習済みモデルを読み込んで質問応答システムを容易に構築できます。このライブラリは質問応答に限らず、テキスト分類・固有表現抽出・要約・翻訳など幅広いNLPタスクに対応しています。また、生成された回答の評価には、モデル出力と正解データの類似度を測るBERTScoreなどの指標が提案されています。

💡 具体例で考える

IBMワトソン:クイズ王に勝った質問応答システム

質問応答研究の象徴的な成果が、IBMが開発したワトソン(Watson)です。2011年、アメリカのクイズ番組「ジョパディー」で歴代の人間チャンピオンに勝利しました。ワトソンは質問の意味を人間のように理解していたわけではなく、質問に含まれるキーワードと関連しそうな答えの候補をウィキペディアなどの情報から高速に検索し、各候補が質問との整合性や条件をどの程度満たすかを複数の視点で採点して、最も総合点の高い候補を解答として選ぶ仕組みでした。「理解せずとも、大量の知識と採点の仕組みで答えに到達できる」ことを示した点で歴史的なシステムです。

SQuADでのファインチューニング

SQuADは、ウィキペディアの記事(コンテキスト)と質問、そして記事中の該当箇所(答え)の組からなる抽出型質問応答のデータセットです。事前学習済みのBERTをこのデータで微調整すると、「文章と質問を与えると、答えに当たる区間を指し示す」モデルが得られます。社内マニュアルへの問い合わせ対応など、実務のFAQシステムにも応用しやすい形式です。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 情報検索との違い — 情報検索はクエリに関連する「文書(の一覧)」を返す技術、質問応答は質問への「回答そのもの」を返す技術です。両者は補完関係にあり、検索で文書を集めてから回答を抽出する構成もよく使われます。
  • 抽出型/生成型の取り違え — 「コンテキストから直接抜き出す」のが抽出型、「新たに回答を作る」のが生成型です。文書要約の「抽出型/抽象型」という分類と発想が似ているので、タスク名とセットで区別しましょう。
  • ワトソンは意味を理解していたわけではない — ワトソンは質問の意味を理解して解答していたのではなく、キーワード検索と候補の採点によって解答を選んでいました。「人間と同じように理解した」とする選択肢は誤りです。
  • SQuADはモデル名ではない — SQuADは質問応答用のデータセット(Stanford Question Answering Dataset)です。BERTScoreも評価指標であり、モデルではありません。

📝 試験でのポイント

💡 ポイント
  • 定義問題では「自然言語の質問に対し、関連する情報を抽出し、適切な回答を提供(生成)する」という言い回しが目印です。
  • 抽出型(コンテキストから直接抽出)と生成型(新たに生成)の2分類は、説明文とタイプ名の対応を問う形で出題が想定されます。
  • SQuAD=質問応答データセット、BERTScore=評価指標、Hugging Face Transformers=実装ライブラリ、という役割の対応を混同させる選択肢に注意しましょう。
  • 事例問題では、IBMワトソン(2011年にジョパディーで人間チャンピオンに勝利)が質問応答研究の成果として登場することがあります。

📚 まとめ

💡 ポイント
  • 質問応答は、自然言語の質問に対して適切な回答を提供するNLPタスクです。
  • コンテキストから答えを抜き出す「抽出型」と、答えを新たに作る「生成型」の2タイプに分類されます。
  • BERTやGPT-3などの大規模言語モデルにより性能が飛躍的に向上し、SQuADなどのデータセットで微調整が行われます。
  • 関連文書を返す情報検索との役割の違い、そしてワトソンの仕組み(キーワード検索+候補の採点)を押さえておきましょう。