TYPED-RAG: Type-Aware Decomposition of Non-Factoid Questions for Retrieval-Augmented Generation
- 非事実型質問応答(Non-Factoid Question Answering; NFQA)に対し、質問の型を先に判定してから検索拡張生成(Retrieval-Augmented Generation; RAG)を行う手法である。
- 質問を Evidence-based、Comparison、Experience、Reason、Instruction、Debate の6型に分け、型に応じて検索クエリの分解、再ランキング、回答統合を変える。
- Wikipedia由来の Wiki-NFQA で評価し、Llama-3.2-3B と Mistral-7B の両方で、通常のLLM応答および標準的なRAGをおおむね上回った。
論文の面白いところ
この論文は、RAGの弱点を「検索を入れればよい」という単純な見方から切り離して扱っている。事実型の質問なら、検索文書を数本渡すだけでも答えが定まりやすい。これに対し、「どのワインがよいか」「二つの病名はどう違うか」「なぜその境界線が引かれたか」のような質問では、必要な情報の形が質問ごとに異なる。著者らは、その違いを質問型として明示し、型ごとにRAGの前処理を変える。比較なら比較対象と差異・類似・優劣の意図を取り出し、理由や手順なら複数の単一観点クエリに分ける。討論型では、賛否や中立などの観点ごとに検索し、最後に仲介者のような要約を作る。標準的なRAGが、非事実型質問ではLLM単独より悪くなる場合がある、という観察も読みどころである。外部文書は常に助けになるわけではなく、問いの焦点に合わない文書は回答を濁らせる。手法そのものは大掛かりな学習モデルというより、分類、分解、検索、再ランキング、統合を落ち着いて組み合わせたパイプラインである。そのため、実装上の見通しも比較的よい。
問題設定
対象は非事実型質問応答(NFQA)である。事実型質問は「Googleはいつ創業したか」のように、短い客観的な答えを返すことが多い。非事実型質問は、説明、比較、推薦、理由、手順、論点整理などを求めるため、答えが一つに定まりにくい。従来のRAGは、質問をそのまま検索クエリにし、得られた文書を言語モデルに渡して回答させる。この方式は、質問が複数の観点を含むと、検索結果が散らばったり、逆に一部の観点だけに偏ったりする。たとえば、比較質問では双方の情報をそろえる必要があり、理由質問では複数の原因候補を扱う必要がある。経験型の質問では、百科事典的な事実だけでは利用者の意図に届かない場合もある。本研究の問題は、こうした質問型の違いをRAGの中にどう組み込むかである。あわせて、非事実型質問を広く評価するため、既存のWikipedia系QAデータから Wiki-NFQA を構成している。
提案手法
提案手法 TYPED-RAG は、最初に質問を6種類の非事実型質問へ分類する。分類器には Bolotova et al. (2022) の RoBERTa 系分類器 nf-cats を用いる。Evidence-based 型では、質問をほぼそのまま検索に使い、標準的なRAGに近い処理を行う。Comparison 型では、比較の目的を difference、similarity、superiority のいずれかとして取り出し、比較対象をキーワード化して検索する。Experience 型では、推薦や助言を求める主題と主要語を取り出し、その語に沿って文書を検索し、BGE-Reranker-Large で並べ替える。Reason 型と Instruction 型では、元の質問を2から5個の単一観点クエリに分け、それぞれに検索と回答生成を行った後、Answer Aggregator が一つの回答にまとめる。Debate 型では、論点と複数の立場を抽出し、立場ごとの検索クエリを作る。各立場の回答は、最後に debate mediator 風のプロンプトで均衡のある要約へ統合される。生成器には Llama-3.2-3B-Instruct、Mistral-7B-Instruct-v0.2、GPT-4o mini を用い、Wikipedia検索にはBM25による索引を使う。
結果
評価には、著者らが構築した Wiki-NFQA を用いる。このデータセットは Natural Questions、SQuAD、TriviaQA、2WikiMultiHopQA、HotpotQA、MuSiQue から非事実型質問を抽出したもので、合計945問からなる。型別では Evidence-based が555問と最も多く、Reason が218問で続く。評価指標には LINKAGE を用い、候補回答を品質順の参照回答リストの中でどこに置けるかをLLMに判定させる。数値化には Mean Reciprocal Rank(MRR)と Mean Percentile Rank(MPR)を用いる。MRRの表では、Llama-3.2-3Bを生成器、Mistral-7Bを採点器にした場合、NQ-NFでTYPED-RAGが0.7659を得て、LLM単独の0.5893、標準RAGの0.5294を上回った。同じ設定でSQuAD-NFは0.6493、TriviaQA-NFは0.7061であり、いずれもベースラインより高い。Mistral-7Bを生成器、GPT-4o miniを採点器にした場合も、SQuAD-NFで0.7444、TriviaQA-NFで0.7767となり、通常のRAGとの差が大きい。一方、2WikiMultiHopQA-NFやMuSiQue-NFでは差が小さい条件もあり、複雑な多段推論ではなお余地が残る。著者らは制限として、既存のクエリ書き換え・分解手法との直接比較がないこと、同じモデル系で生成と評価を行う場合に評価バイアスが入り得ることを挙げている。
具体例
たとえば、利用者が「dysphagia と odynophagia はどう違うのか」と尋ねたとする。これは単に一つの定義を探す質問ではなく、二つの医学用語を比べる質問である。TYPED-RAGはまずこの質問を Comparison 型と判定し、比較の目的を difference として扱う。次に dysphagia と odynophagia を比較対象として取り出し、それぞれに関する文書を検索する。検索結果は再ランキングされ、嚥下困難、嚥下痛、食道や咽頭の症状に関する記述が回答生成器へ渡される。期待される出力は、dysphagia は「飲み込みにくさ」を指し、odynophagia は「飲み込むときの痛み」を指す、という区別を中心にした説明である。さらに、両者は併存し得るが、主症状は同じではない、という補足があるとよい。間違えやすい点は、二つをどちらも「嚥下の問題」としてまとめ、痛みと困難の違いを曖昧にすることである。標準的なRAGでは片方の用語だけに詳しい文書が強く出ることがあるため、比較対象を明示して検索する処理が効く。