Elastic Stackで情報検索を改善:ハイブリッド検索

info-retrieval-blog-720x420-v1.jpeg

この前回のブログ記事では、効果的なゼロショットテキスト検索のために訓練されたモデルである、Elastic Learned Sparse EncodeR(ELSER)を紹介しました。さらにElasticsearch®は、優れた語彙検索機能と、異なるクエリの結果を組み合わせるための豊富なツールを備えています。このブログでは、ハイブリッド検索の概念について説明し、Elasticsearchで使用できる2つのメソッドの実装方法を具体的にご紹介します。特に、逆順位融合と加重合計スコアを使用するBM25と組み合わせることで、Elastic Learned Sparse EncodeRのパフォーマンスを改善する方法について説明します。

また、検索に関するいくつかの一般的な疑問点を検討するために実施した実験についても説明します。この疑問点には、逆順位融合をパラメーター化する最適な方法や、加重合計スコアの調整方法などが含まれます。

Video thumbnail

ハイブリッド検索

最新の訓練パイプラインではゼロショットのシナリオでパフォーマンスの高い検索モデルを生成できますが、語彙検索(BM25など)とセマンティック検索(ELSERなど)がある種の補完的な関係にあることが知られています。具体的には、検索対象の関連性のないドキュメント間のマッチ数よりも、検索対象の関連性のあるドキュメント間のマッチ数の方が多いことを前提とするなら、この補完的関係によって検索メソドの結果を組み合わせるための関連性が改善されます。

この仮説は、検索のメカニズムがまったく異なるメソドを組み合わせる場合には正しいように見えます。ほとんどのクエリやコーパスで扱われるのは、関連性のあるドキュメントよりも関連性のないドキュメントの方が多いからです。関連性のあるドキュメントと関連性のないドキュメントが独立して、均一に、ランダムに検索される場合なら、この不均衡は関連性のあるドキュメントの方が関連性のないドキュメントよりもマッチする可能性がずっと高いことを意味します。この仮説を検証するために、ELSER、BM25、さらにさまざまな密検索メソッドを対象に、いくつかのオーバーラップ測定を行いました(表1)。この結果から、ハイブリッド検索と呼ばれる方法を使用するメリットがいくつか見えてきます。以降では、2種類のハイブリッド検索の実装方法について詳しく解説します。

表1:3種類の検索のオーバーラップ係数
表1:ArguAnaのトップ1000ドキュメントを対象としてELSERと比較した3種類の検索のオーバーラップ係数

逆順位融合

逆順位融合は、こちらの論文で提唱されました。簡単に使用できるだけでなく、完全に教師なしで、スコアキャリブレーションも不要です。BM25とモデルの両方を使用してドキュメントdを順位付けし、両方のメソドで順位位置に基づいてスコアを算出します。ドキュメントはスコアの降順で並べ替えられます。スコアは、以下のように定義されます。

逆順位融合

ここでは、定数kを使用して下位ドキュメントの重要性を調整しています。これは各メソドで検索されるトップNドキュメントセットに適用されます。いずれのメソドでもこのセット内にドキュメントが見つからない場合、その用語は0に設定されます。

逆順位融合の論文では、kの値を60にすることを提案していますが、検索するドキュメント数Nについては議論されていません。明らかに、Nを大きくすると順位付けの品質に影響しますが、recall@Nはどちらのメソドについても大きくなります。質的には、kを大きくすればするほど、下位にランク付けされた重要度の高いドキュメントが最終的な順位に追加されることになります。ただし、最新の語彙セマンティックハイブリッド検索においてkとNの最適値が何なのか、アプリオリで明確なわけではありません。さらに、その結果がこのパラメーターの選択にどれほど影響を受けるのか、またこの最適条件がデータセットとモデルで一般化されるのか、理解する必要があります。ゼロショット設定でこのメソドについて確信を得るためには、この点が重要です。

このような疑問点を検討するために、私たちはさまざまなメソドについてBEIRベンチマークのサブセットで加重平均NDCG@10を最大化するグリッド検索を実行しました。この実験では検索にElasticsearchを使用し、1つのテキストフィールドとベクトルで各ドキュメントを表しています。BM25検索の実行にはmatchクエリが使用され、密検索の実行にはscript_scoreクエリによる正確なベクトル検索が使用されました。

セマンティック検索
表2:BEIRデータセットのサブセット(webis-touche2020、scidocs、nq、hotpotqa、fiqa、dbpedia-entity、arguana、trec-covid、nfcorpus)全体での平均NDCG@10をさまざまなkおよびトップNパラメーターでのクエリ数に応じて重み付け、セマンティック検索にはbi-encoder roberta-base-ance-firstpを使用

表2を見ると、kとNのroberta-base-ance-firstpの最適値がそれぞれ20と1000であることがわかります。個々のデータセットのほとんどで、最適なパラメーターの組み合わせが同じであったことに注目してください。distilbert-base-v3minilm-l12-v3についても同じグリッド検索を実施しましたが、各モデルで同じ結論が得られました。また、パラメーターの最良の組み合わせと最低の組み合わせとの差は5%程度に過ぎず、パラメーターの不適切な設定に対するペナルティは比較的小さいこともわかりました。

さらに私たちは、逆順位融合を使用することでゼロショット設定におけるELSERのパフォーマンスを改善できないかと考えました。その結果のBEIRベンチマークを表3に示します。

NDCG@10の比較
表3:NDCG@10の比較:BM25(Elasticsearch 8.8とデフォルトの英語アナライザーを使用)、BM25とELSERをRRFで組み合わせ(k=20、N=1000)

逆順位融合によって、平均NDCG@10がELSER単独では1.4%、BM25単独では18%増加しています。また、すべてのテストデータセットでBM25単独よりも良好もしくは同等の結果が得られていることも重要です。モデルの調整、データセットの訓練、特定のキャリブレーションを実施しなくても、順位付けが改善されています。唯一の問題は、Elasticsearchで2つのクエリを順番に実行するため、現状ではクエリレイテンシーが大きくなることです。一般的にBM25検索はセマンティック検索よりも高速であるため、これはそれほど大きな問題にはなりません。

この結果は、逆順位融合を効果的な"プラグアンドプレイ"戦略として安全に利用できることを示しています。さらに、実際のデータに対してBM25、ELSER、およびその順位融合を使用して得た結果の品質を確認してみる価値はあります。BEIRスイート内の個々のデータセットに対して最もパフォーマンスの高い手法を選択した場合には、平均NDCG@10はELSER単独で3%、BM25単独で20%増加します。

私たちはこの作業の中で、キーワード検索と自然質問検索を判別するための単純なクエリ分類をいくつか実行しました。その目的は、最もパフォーマンスが高い特定メソドにつながるメカニズムを把握することでした。これまでのところ、これに関しては明確に説明できず、さらに研究を進める計画です。ただし、どちらのメソドも全体的に同様の精度がある場合、ハイブリッド検索のパフォーマンスが高まることは確認できました。

さらに、逆順位融合は2つ以上のメソドと組み合わせて使用したり、別のフィールドの順位と組み合わせて使用したりできます。現状では、私たちはこの方向性については探求していません。

加重合計スコア

Elasticsearchがサポートするもう1つのハイブリッド検索の方法は、線形関数を使用してBM25スコアとモデルスコアを組み合わせるというものです。このアプローチを提唱したこちらの論文では、適切なキャリブレーションを行った場合には逆順位融合よりも効果的だったとされています。私たちは、以下の式で表される、スコアの凸線形結合によるハイブリッド検索を検討しました。

加重合計スコア

この式で、αはモデルスコア加重を表し、0から1までの値を取ります。

線形結合の理想的なキャリブレーションは容易ではありません。モデルの調整に使用したものと同様の注釈が必要になるためです。一連のクエリとそれに関連付けられた関連ドキュメントがあれば、任意の最適化手法を使用して、そのようなドキュメントを検索するための最適な組み合わせを特定できます。実験では、BEIRデータセットとベイズ最適化を利用して、NDCG@10に最適化された、最適な組み合わせを特定しました。理論的には、スコアスケールの比をαに対して学習された値に組み込むことができます。しかし、以降の実験では、min-max正規化を使用してデータセットごとにBM25スコアとELSERスコアを正規化し、各データセットに対するいくつかの代表的クエリに対してトップ1,000の最小スコアと最大スコアを計算しました。正規化されたスコアによって最適なアルファ値が転移するのではないか、という期待がありました。その証拠は得られませんでしたが、想定よりもはるかに高い一貫性が見られ、正規化によってキャリブレーションの強度が改善される可能性があることが示唆されました。

注釈の取得はコストが高いため、どのくらいの量のデータを収集すると逆順位融合(RRF)よりも確実に効果的なのか把握しておくと便利です。図1は、BM25スコアとELSERスコアの線形的な組み合わせにおけるNDCG@10を、ArguAnaデータセットに対する注釈付きクエリの数の関数として示しています。参考として、BM25、ELSER、RRF NDCG@10も示されています。このような形の曲線は、どのデータセットでも一般的に見られます。私たちの実験では、注釈付きクエリが約40個のときにRRFをパフォーマンスで上回ることができましたが、正確なしきい値はデートセットごとにやや異なりました。

NDCG@10の進展
図1:アルファの最適化に使用されたクエリ数に応じたNDCG@10の進展(ArguAnaデータセットを使用)

また、異なるデータセット間、さらに異なる検索モデル間でも、最適な加重が大きく異なることもわかりました(図2を参照)。スコアを正規化した後でも、これは同じでした。最適な組み合わせは、特定のデータセットに対して個々のメソドがどれほど適しているかに応じて決まるため、この結果を想定することは可能だったかもしれません。

私たちはゼロショットパラメーター化の可能性を検討するために、ベンチマークセット内の全データセットに対して1つの加重αを選択し、実験を行いました。同一の教師ありアプローチを使用して実験を行い、今回は全データセットについて平均NDCG@10を最適化する加重を選択しましたが、ゼロショットのパフォーマンスを代表する結果が得られたと判断できるだけの十分な変動がデータセット間に見られました。 

まとめると、このアプローチはRRFよりも良好な平均NDCG@10が得られました。ただし、結果の一貫性はRRFよりも劣っていたため、最適な加重はモデルごとに異なることは明らかです。このことから、特定のモデル向けにキャリブレーションされたとしても、このアプローチが新しい設定に転移する可能性は低いと感じています。私たちが見る限り、線形的な組み合わせは"プラグアンドプレイ"のアプローチではありません。実際のデータセットに対する組み合わせのパフォーマンスを慎重に評価して、最適な設定を決定することが重要だと考えています。もっとも、以下の図に示すように、適切なキャリブレーションを行えば非常に優れた結果が得られることがわかっています。

 BEIRデータセット全体での変動
図2:BEIRデータセット全体でのアルファ変動。このデータはベイズ最適化とテストスプリットを使用して取得されました。

正規化しなければスコアのばらつきが大きいため、異なるデータセットとモデルの間でスコアを比較するためには正規化が欠かせません。正規化は必ずしも簡単ではなく、特にOkapi BM25ではクエリが実行されるまでスコアの範囲が不明なため、正規化が困難です。密モデルではベクトルを正規化できるため、スコアを容易に正規化できます。しかし、一部の密モデルは正規化せずに訓練されており、内積を使用するとパフォーマンスが改善される場合があります。

ELSERはエンコーダー間のスコアマージンを複製するように訓練されています。通常、0から20までの範囲でスコアが生成されますが、保証はされません。一般的に、クエリの履歴とそのトップNドキュメントスコアを使用して、分散を見積もり、推定の最小値と最大値を使用して任意のスコア付け関数を正規化することができます。たとえば、スコアの外れ値がある場合などは、非線形正規化を使用すると線形的な組み合わせが改善される可能性があります。ただし、私たちはこの件についてテストしていません。

私たちは逆順位融合について、BM25とELSERの線形的な組み合わせの精度を把握したいと考えましたが、今回は可能な限り最良のシナリオを想定します。このシナリオでは、データセットごとに1つの加重αを最適化することで、線形的な組み合わせを使用する理想的なNDCG@10を取得します。キャリブレーションには300個のクエリを使用しました。この数は、すべてのデータセットの最適な加重を推定するには十分だとわかりました。現実的には、このシナリオを達成するのは困難です。その加重を調整するには、正確なMin-Max正規化と、代表的な注釈付きクエリデータセットの両方が必要になるためです。また、ドキュメントとクエリのドリフトが大きい場合には、更新も必要になります。それでも、この労力に価値があるかどうか判断するために、最良条件のパフォーマンスを限定することは有用です。結果を表4に示します。このアプローチでは、平均NDCG@10がELSER単独よりも6%改善され、BM25単独よりも24%改善されています。

Elastic Learned Sparse Encoder
表4:NDCG@10の比較:BM25(Elasticsearch 8.8とデフォルトの英語アナライザーを使用)、ELSER、RRF(k=20およびトップN = 1000)、線形的な組み合わせ(評価データで最適化済み)

まとめ

異なる検索アプローチを組み合わせることで検索のパフォーマンスを改善できること、特に語彙検索とセマンティック検索が相互に補完的な関係にあることを紹介しました。私たちが研究したアプローチの1つが逆順位融合でした。これは単純なメソドですが、注釈を付けたりスコア分散を事前に把握したりしなくても、多くの場合は優れた結果が得られます。さらに、そのパフォーマンス特性が幅広いモデルとデータセットに対して非常に安定していることも判明したため、得られた結果が他のデータセットに対しても一般化される可能性は高いと考えられます。

もう1つのアプローチは、加重合計スコアです。これは逆順位融合よりもセットアップが困難ですが、実験では適切なセットアップを行うことで非常に優れた順位付けが得られました。このアプローチを使用するにはスコアを正規化する必要がありますが、BM25ではそのために一般的なクエリのスコア分散が必要になり、さらにメソド加重の訓練にある程度の注釈付きデータを使用する必要があります。

このシリーズの最後に予定されているブログ記事では、text_expansion機能の一般公開に向けて準備中の、推論とインデックス化のパフォーマンスに関する取り組みをご紹介します。

本記事に記述されているあらゆる機能ないし性能のリリースおよびタイミングは、Elasticの単独裁量に委ねられます。現時点で提供されていないあらゆる機能ないし性能は、すみやかに提供されない可能性、または一切の提供が行われない可能性があります。