解説
ユーザーの短い質問文を、AIがより詳細な検索キーワードや関連語に言い換えて、検索漏れを防ぐ技術のことです。
さらに詳しく解説
クエリ拡張(Query Expansion)は、ユーザーが入力した検索クエリに関連語・同義語・言い換えを追加して、検索精度を向上させる技術です。RAGや検索システムにおいて、ユーザーの言葉とドキュメントの言葉のギャップを埋める役割を果たします。
何が問題か
ユーザーは「PCが遅い」と検索しても、ドキュメントには「コンピュータの動作が緩慢」「パソコンの応答時間が長い」と書かれているかもしれません。単純なキーワード一致では、こうした表現の揺れを拾えません。
クエリ拡張の例
| 元のクエリ | 拡張後のクエリ |
|---|---|
| AI導入 | AI導入、人工知能導入、AI活用、機械学習導入、生成AI活用 |
| 在庫管理 | 在庫管理、在庫管理システム、在庫トラッキング、棚卸 |
| 補助金 | 補助金、助成金、支援金、給付金、IT導入補助金 |
主な手法
1. 同義語辞書による拡張
事前に用意した辞書を使って関連語を追加。シンプルだが辞書のメンテが必要。
2. LLMによる拡張
LLMに「このクエリで検索したい意図は何か」を解釈させ、関連クエリを生成。柔軟で高品質。
元: 「営業効率を上げたい」
→ LLM拡張: 「営業効率」「営業生産性」「セールス自動化」「商談効率」「リード管理」3. 疑似関連性フィードバック
初回検索でヒットした上位文書から重要語を抽出し、再検索に追加。
4. HyDE(Hypothetical Document Embeddings)
LLMに「クエリへの理想的な回答」を生成させ、その仮想文書をベクトル化して検索。検索性能が大きく向上することが多い。
RAGでの活用
RAGシステムでは、以下のフローでクエリ拡張が組み込まれます。
ユーザー質問
↓
LLMでクエリ拡張(複数のサブクエリ生成)
↓
各クエリでベクトル検索
↓
結果をマージ+[再ランキング](/glossary/re-ranking)
↓
LLMに渡して回答生成メリットと留意点
メリット
- 表現揺れに強い検索を実現
- 検索の網羅性が向上
- ユーザーの曖昧なクエリにも対応
留意点
- 拡張しすぎると関係ない結果が増える(精度低下)
- 計算コスト・レイテンシが増える
- LLMによる拡張はハルシネーションのリスクがある
実務での設計ポイント
- 拡張数を制御:3〜5個程度が適切なことが多い
- 元クエリを必ず含める:拡張結果に偏りすぎない
- 再ランキング併用:拡張で増えた候補を絞り込む
- ユーザー意図の検証:拡張結果が意図とズレていないか確認
クエリ拡張は「検索品質を底上げする」シンプルかつ効果的な施策で、本格的なRAGシステムには事実上必須の技術となっています。
