Ahogrammer

Deep Dive Into NLP, ML and Cloud

ハイブリッド検索で必ずしも検索性能が上がるわけではない

最近では、RAG(Retrieval Augmented Generation)を使って、検索して得られた文書を生成時に活用することがありますが、その性能を改善するための手法の1つとしてハイブリッド検索が知られています。ハイブリッド検索は、2つ以上の異なる検索技術を組み合わせた検索方法です。最近は、全文検索とベクトル検索の組み合わせを見ることが多く、その良いとこ取りをすることで検索性能を改善します。

ハイブリッド検索の有効性はいたるところで報告されていますが、「適当に全文検索とベクトル検索を組み合わせるだけで性能が上がるのか?」というとそれには疑問があります。ハイブリッド検索では、全文検索とベクトル検索の結果をランク融合アルゴリズムを使って統合することが行われます。そのような仕組み上、どちらか片方の検索性能が低い場合、全体としての性能が下がることが考えられるはずです。

そこで本記事では、日本語のQAデータセットを利用して、ハイブリッド検索をしたときの検索性能の検証結果を紹介します。最初に、何も工夫せずに全文検索とベクトル検索を組み合わせた結果が性能を改善しないことがあることを示し、その次に全文検索を改善することでハイブリッド検索の性能が向上することを示します。記事の構成は以下のとおりです。

  • 実験設定
  • 実験結果
  • 全文検索の改善とその効果
  • おわりに
  • 参考資料
続きを読む

ウォータールー大学による基盤モデルに関する読書リスト

今週号のData Science Weeklyにて、ウォータールー大学が開講している基盤モデルに関する講座が載っていたので紹介します。同講座では、トピックごとに整理された論文のリストが公開されているので、関心のあるトピックについて読み進めるのに適しています。

cs.uwaterloo.ca

上の講座のトピックとしては挙げられていませんが、個人的にはいくつかのプロジェクトに取り組んできた中で、ハルシネーション対策について本腰を入れて取り組まないといかんなーと思っています。そのうち、実装とともにこのブログで紹介できればなと考えています。

検索性能を改善するハイブリッド検索で使えるランク融合アルゴリズム

Risk-Reward Trade-offs in Rank Fusionを読んでいて、検索システムの結果を統合するために使える教師なしのランク融合アルゴリズムについて書きたくなったのでまとめました。最近では、RAGの性能を改善するためにハイブリッド検索が使われることがありますが、その内部で各検索システムの結果を統合するために使うことができます。実際に計算する方法と合わせて紹介します。

記事の構成は以下のとおりです。最初に、検索の文脈からランク融合アルゴリズムについて例を交えて紹介した後、実際に計算する方法を紹介します。

  • アルゴリズム
    • CombSUM
    • CombMNZ
    • Borda
    • RRF
  • 実際に計算したいときは?
  • 参考資料
続きを読む