この記事は更新が必要です。(2024年3月) |
質問応答(QA)は、情報検索と自然言語処理(NLP)の分野におけるコンピュータサイエンスの分野であり、人間が自然言語で投げかける質問に自動的に答えるシステムの構築に関係しています。[ 1 ]
質問応答の実装(通常はコンピュータプログラム)は、知識や情報の構造化データベース(通常は知識ベース)に問い合わせることで回答を構築します。より一般的には、質問応答システムは、構造化されていない自然言語文書のコレクションから回答を引き出すことができます。
質問応答システムに使用される自然言語文書コレクションの例としては、参考テキスト、コンパイルされたニュースワイヤーレポート、Wikipediaページ[ 2 ]、その他のWorld Wide Webページなどがあります。
初期の質問応答システムは、BASEBALL [ 3 ]とLUNAR [ 4 ]でした。BASEBALLは1年間にわたりメジャーリーグベースボールに関する質問に答えました。LUNARは、アポロ月面ミッションで持ち帰られた岩石の地質学的分析に関する質問に答えました。どちらの質問応答システムも、それぞれの分野で非常に効果的でした。LUNARは1971年の月科学会議で実演され、システムの訓練を受けていない人々から出された、その分野における質問の90%に答えることができました。その後数年間で、さらに限定された分野の質問応答システムが開発されました。これらのシステムに共通する特徴は、選択された分野の専門家によって手書きされたコアデータベースまたは知識システムを備えていることです。BASEBALLとLUNARの言語機能は、最初のチャッターボットプログラム であるELIZAとDOCTORと同様の技術を使用していました
SHRDLUは、1960年代後半から1970年代初頭にかけてテリー・ウィノグラッドによって開発された、成功を収めた質問応答プログラムです。このプログラムは、おもちゃの世界(「ブロックの世界」)におけるロボットの動作をシミュレートし、ロボットに世界の状態について質問する機会を提供しました。このシステムの強みは、非常に限定されたドメインと、コンピュータプログラムに容易にエンコードできる物理法則を持つ非常に単純な世界を選択した点にあります。
1970年代には、より狭い知識領域を対象とした知識ベースが開発されました。これらのエキスパートシステムと連携するように開発された質問応答システムは、特定の知識領域内の質問に対して、より再現性が高く妥当な応答を生成するようになりました。これらのエキスパートシステムは、内部アーキテクチャを除けば、現代の質問応答システムと非常によく似ています。エキスパートシステムは専門家によって構築・体系化された知識ベースに大きく依存していますが、現代の多くの質問応答システムは、大規模で非構造化された自然言語テキストコーパスの統計処理に依存しています。
1970年代と1980年代には、計算言語学の包括的な理論が発展し、テキスト理解と質問応答の野心的なプロジェクトが開発されました。その一例が、1980年代後半にカリフォルニア大学バークレー校のロバート・ウィレンスキー氏が開発したUnix Consultant (UC)です。このシステムは、 Unixオペレーティングシステムに関する質問に答えました。このシステムは、そのドメインに関する包括的で手作りの知識ベースを持ち、さまざまなタイプのユーザーに対応できるように回答のフレーズを作成することを目的としていました。もう1つのプロジェクトは、ドイツの都市の観光情報というドメインで動作するテキスト理解システムであるLILOGでした。UCプロジェクトとLILOGプロジェクトで開発されたシステムは、単純なデモンストレーションの段階を超えることはありませんでしたが、計算言語学と推論に関する理論の発展に貢献しました。
健康・生命科学者向けのEAGLiのような、専門的な自然言語質問応答システムが開発されている。[ 5 ]
質問応答システムは近年拡張され、新たな知識領域を網羅するようになっている[ 6 ]。例えば、時間や地理空間に関する質問、定義や用語に関する質問、経歴に関する質問、多言語に関する質問、音声、画像、 [ 7 ] 、ビデオの内容に関する質問に自動的に答えるシステムが開発されている[ 8 ]。現在の質問応答の研究テーマは以下の通りである。
2011年、IBMが開発した質問応答コンピュータシステムであるWatsonは、 Jeopardy!のエキシビションマッチ2試合でブラッド・ラターとケン・ジェニングスに大差で勝利しました。[ 17 ] Facebook Researchは、 DrQAシステム[ 18 ]をオープンソースライセンスで公開しました。このシステムは、Wikipediaを知識源として使用しています。[ 2 ] deepsetのオープンソースフレームワークHaystackは、オープンドメインの質問応答と生成的質問応答を組み合わせ、業界のユースケースに合わせて基盤となる言語モデルのドメイン適応をサポートしています。[ 19 ] [ 20 ]
GPT-4 [37]やGemini [38]のような大規模言語モデル(LLM)[36]は、より洗練されたテキスト理解と生成を可能にする成功したQAシステムの例です。テキスト、画像、音声など様々なモダリティからの情報を処理・理解できるマルチモーダル[39] QAシステムと組み合わせることで、LLMはQAシステムの能力を大幅に向上させます。
質問応答研究では、事実、リスト、定義、方法、理由、仮説、意味的に制約された質問、多言語にわたる質問 など、幅広い種類の質問に答える方法の開発を目指しています
質問応答システムを分類するもう一つの方法は、使用される技術的アプローチです。QAシステムには、以下を含む様々な種類があります。
ルールベースシステムは
2001年時点では、質問応答システムには通常、質問の種類と回答の種類を決定する質問分類モジュールが含まれていました。 [ 22 ]
質問応答システムの種類によって、アーキテクチャは異なります。例えば、現代のオープンドメイン質問応答システムでは、リトリーバー・リーダーアーキテクチャが採用されています。リトリーバーは与えられた質問に関連する文書を検索することを目的とし、リーダーは検索された文書から回答を推論するために使用されます。GPT -3、T5 [ 23 ] 、 BART [ 24 ]などのシステムは、エンドツーエンドのアーキテクチャを採用しており、トランスフォーマーベースのアーキテクチャが大規模なテキストデータを基礎パラメータに格納します。このようなモデルは、外部の知識源にアクセスすることなく質問に答えることができます。
質問応答は優れた検索コーパスに依存しており、回答を含む文書がなければ、質問応答システムでできることはほとんどありません。質問のドメインがコレクションと直交しない限り、コレクションが大きいほど、一般的に質問応答のパフォーマンスは向上します。Webのような大規模なコレクションにおけるデータの冗長性は、情報の塊が様々な文脈や文書において様々な表現で表現される可能性が高いことを意味し、[ 25 ] 2つの利点をもたらします。
いくつかの質問応答システムは自動推論に大きく依存している。[ 26 ] [ 27 ]
情報検索において、オープンドメインの質問応答システムは、ユーザーの質問に対する回答を返そうとします。返される回答は、関連文書のリストではなく、短いテキストの形式です。[ 28 ]このシステムは、計算言語学、情報検索、知識表現の技術を組み合わせて回答を見つけます。
システムは、キーワードの集合ではなく、自然言語の質問を入力として受け取ります。例えば、「中国の建国記念日はいつですか?」といった質問です。そして、この入力文を論理的な形式のクエリに変換します。自然言語の質問を受け入れることで、システムはよりユーザーフレンドリーになりますが、実装が難しくなります。なぜなら、質問の種類は多様であり、システムは適切な回答を提供するために正しい質問の種類を識別する必要があるからです。質問に質問の種類を割り当てることは非常に重要なタスクです。回答抽出プロセス全体は、正しい質問の種類、ひいては正しい回答の種類を見つけることに依存しています。
キーワード抽出は、入力された質問の種類を識別する最初のステップです。[ 29 ]場合によっては、「Who」「Where」「When」「How many」など、質問の種類を明確に示す単語があります。これらの単語は、回答の種類がそれぞれ「Person」「Location」「Date」「Number」であることをシステムに示唆する可能性があります。品詞(POS)タグ付けと構文解析技術によっても回答の種類を判別できます。上記の例では、主語は「Chinese National Day」、述語は「is」、副詞修飾語は「when」であるため、回答の種類は「Date」です。残念ながら、「Which」「What」「How」などの疑問詞は、明確な回答の種類に対応していません。それぞれが複数の種類を表す可能性があります。このような状況では、質問内の他の単語を考慮する必要があります。WordNetなどの語彙辞書を使用して、文脈を理解することができます。
システムは質問の種類を識別すると、情報検索システムを用いて正しいキーワードを含む文書群を検索します。タグ付け機能と名詞/動詞グループチャンカーは、見つかった文書に正しい実体と関係性が記載されているかどうかを検証します。「Who(誰)」や「Where(どこ)」といった質問の場合、固有表現認識機能が検索された文書から関連する「人名」や「場所」を見つけます。ランキングには、関連する段落のみが選出されます。
ベクトル空間モデルは、候補となる回答を分類できます。質問タイプ分析段階で決定された正しいタイプかどうかを確認します。推論技術は、候補となる回答を検証できます。次に、各候補には、含まれる疑問語の数と、それらの語が候補とどれだけ近いかに基づいてスコアが与えられます。より多く、より近いほど良いスコアです。その後、回答は解析によって簡潔で意味のある表現に変換されます。前の例では、期待される出力回答は「10月1日」です。
Ask PlatypusとWikidataをベースにしたオープンソースの数学的質問応答システムMathQAが2018年に公開された。[ 30 ] MathQAは英語またはヒンディー語の自然言語の質問を入力として受け取り、Wikidataから取得した数式を簡潔な回答として返します。この回答は計算可能な形式に変換され、ユーザーは変数に値を挿入できます。システムは、変数の名前と値、一般的な定数が利用可能な場合はWikidataから取得します。このシステムはテストセットにおいて商用の計算数学知識エンジンよりも優れていると主張されています。[ 30 ] MathQAはWikimediaによってhttps://mathqa.wmflabs.org/でホストされています。2022年には、15種類の数学の質問に答えられるように拡張されました。[ 31 ]
MathQA手法では、自然言語と数式言語を組み合わせる必要があります。考えられるアプローチの1つは、エンティティリンクを介して教師ありアノテーションを実行することです。CLEF 2020の「ARQMathタスク」[ 32 ]は、プラットフォームMath Stack Exchangeから新しく投稿された質問を、コミュニティによって既に回答されている既存の質問にリンクするという問題に対処するために開始されました。既に回答されている意味的に関連する質問へのハイパーリンクを提供することで、ユーザーはより早く回答を得ることができますが、意味的な関連性は自明ではないため、難しい問題です。[ 33 ]ラボは、汎用検索エンジンにおける数学クエリの20%が整形式の質問として表現されているという事実に触発されました。[ 34 ]この課題には2つの別々のサブタスクが含まれていました。タスク1:「回答検索」では古い投稿の回答を新しく投稿された質問に一致させ、タスク2:「数式検索」では古い投稿の数式を新しい質問に一致させます。数式言語を含む数学の領域から始めて、後に他の特殊な表記法(例えば化学式)を使用する他の領域(例えば化学、生物学などのSTEM分野など)にタスクを拡張することが目標です。[ 32 ] [ 33 ]
数学的な質問応答の逆、つまり数学的な質問生成も研究されています。PhysWikiQuiz物理学問題生成・テストエンジンは、Wikidataから数式と、それらを構成する識別子(変数名と値)の意味情報を取得します。[ 35 ]次に、数式を並べ替えて複数の数式のバリエーションを生成します。その後、変数にランダムな値を代入することで、個々の生徒のテストに適した多数の異なる問題を生成します。
QAシステムは、以下を含むさまざまなアプリケーションで使用されています。
{{cite web}}: CS1 maint: bot: 元のURLステータス不明(リンク){{cite book}}: CS1 メンテナンス: 場所の発行元が見つかりません (リンク){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です