When Should Dense Retrievers Be Updated in Evolving Corpora? Detecting Out-of-Distribution Corpora Using GradNormIR

生成日:

When Should Dense Retrievers Be Updated in Evolving Corpora? Detecting Out-of-Distribution Corpora Using GradNormIR

Abstract(日本語訳)

Dense retriever は、ユーザーのクエリに応じて大規模データベースから関連文書を効率よく検索するために、テキストを埋め込みへ符号化する。しかし、現実のコーパスは絶えず変化しており、retriever の元の訓練分布からのずれが生じる。適時の更新や再訓練を行わずに新しく出現した文書をインデックスすると、将来のクエリに対する検索性能が低下しうる。したがって、dense retriever に更新が必要な時点を特定することは、頑健な検索システムを維持するうえで重要である。本論文では、インデックス作成前に、あるコーパスが dense retriever に対して out-of-distribution(OOD)であるかを予測する新しい課題を提案する。この課題に取り組むことで、retriever の更新を事前に管理し、潜在的な検索失敗を防ぐことができる。われわれは、勾配ノルムを利用して OOD コーパスを効果的に検出する教師なし手法 GradNormIR を導入する。BEIR ベンチマークでの実験は、GradNormIR が変化する文書集合における dense retriever の適時更新を可能にし、検索の頑健性と効率を大きく高めることを示している。

論文の面白いところ

この論文の要点は、検索器の失敗を「クエリが来てから測る」のではなく、「新しい文書集合を入れる前に見積もる」点にある。RAG や社内検索では、文書は日々増えるが、その時点で将来のユーザー質問はまだ存在しないことが多い。通常の評価ではクエリと正解文書のペアが必要であり、運用中の新規コーパスには使いにくい。GradNormIR は、文書だけから retriever の不得意な領域を推定するため、この欠けた情報をかなり直接に補う。

また、OOD 検出を分類器ではなく dense retriever 自身の勾配で見る点も興味深い。モデルがある文書を安定して扱えるなら、仮の contrastive learning を行っても大きな更新は必要にならない。反対に、モデルがその文書集合をうまく表現できないなら、loss に対する勾配が大きくなる。この直観は単純だが、検索器の更新判断、複数 retriever の選択、継続学習の更新頻度という実務上の問題に接続しやすい。

問題設定

本論文が扱うのは、変化するコーパスにおける dense retriever の OOD 検出である。dense retriever はクエリと文書をベクトル空間に写し、近い文書を検索結果として返す。しかし、訓練時に見た分布と異なる文書が増えると、埋め込み空間での近さが検索の正しさを保てなくなる。論文では、関連クエリがある理想的な場合、ある文書が top-K に入らなければその文書を OOD とみなす定義を置く。

実際の運用では、新しい文書をインデックスする段階でクエリがまだない。そのため、論文の課題は、ラベル付きのクエリ・文書ペアを使わずに、コーパス内に OOD 文書がどれだけ含まれるかを推定することになる。OOD と予測された文書の比率が閾値を超えれば、そのコーパス全体を OOD と判定する。この判定により、現在の retriever を更新するか、別の retriever を選ぶかを、インデックス前に決められる。

提案手法

GradNormIR は、文書集合だけを使って contrastive loss を構成し、その勾配ノルムを OOD の手がかりにする。まず各文書を仮の document query とみなし、その文書表現に軽い dropout を加える。論文の設定では dropout 率は 0.02 であり、表現の一部を隠しても近傍関係が安定するかを見る意図がある。次に、同じコーパス内で近い文書を k-nearest neighbors により集め、その上位を擬似的な正例とする。

負例には、単に遠い文書を選ぶのではなく、正例に似ているが query には属さない hard negative を使う。これにより、retriever が曖昧な近傍をどう扱うかが loss に表れやすくなる。各正例について InfoNCE loss を計算し、retriever のパラメータに対する勾配の L2 ノルムを求める。正例全体で平均した値が GradNormIR のスコアであり、値が大きいほどその文書はモデルにとって不安定で、OOD である可能性が高い。

判定閾値には、既知の in-domain 文書の勾配ノルムを使う。実験では、各 retriever が訓練に用いている Natural Questions 由来の 3,000 文書を基準にし、その平均を超える文書を OOD と分類する。コーパス単位では、OOD とされた文書の割合 r(C) が 0.5 を超えた場合に OOD コーパスとする。手法全体は教師なしであり、LLM に疑似クエリを生成させる方法と異なり、新しい文書の主題が LLM にとって未知である場合にも依存しにくい。

結果

実験は BEIR ベンチマークの 10 データセットで行われ、BGE、Contriever、E5、GTE などの dense retriever が対象となった。OOD 文書検出では、検出された文書が実際に関連クエリから検索されにくいかを document retrieval rate(DRR)で評価した。DRR は低いほど、検索器が苦手な文書を正しく OOD として拾えていることを意味する。GradNormIR は全 retriever の平均で最も低い DRR を示し、特に DBPedia-Entity や SciDocs で大きな差が出た。

次に、クエリなしで最適な retriever を選ぶ実験では、コーパスに対する OOD 文書比率が最も低い retriever を選択した。その retriever を後から実際のクエリ・文書ペアで評価すると、GradNormIR による選択は多くのデータセットで oracle に近く、少なくとも上位の retriever を選ぶ傾向があった。これは、検索器の性能を事前に測れない場面でも、文書集合だけから妥当な選択ができることを示す。

継続的更新の実験では、BEIR のデータセットを順に到着するコーパスとして扱い、Contriever を必要時のみ更新した。何も更新しない zero-shot ベースラインは、セッションが進むにつれて平均 Recall@100 が大きく下がった。毎回更新する naïve な方法は安定するが、不要な再訓練が性能を損なう場面もあった。GradNormIR は、後半のセッションで最も高い平均性能を示し、選択的更新の利点を確認している。

具体例

ある社内検索システムが、これまで音楽ニュースと商品レビューを中心に学習された dense retriever を使っているとする。そこへ、新しく量子コンピューティング部門の文書群が追加され、「Willow」という Google の量子チップに関する記事が入ってくる。ユーザーが後日「Willow はどのように動くのか」と質問した場合、既存の retriever は Taylor Swift の楽曲「Willow」に関する文書を近いものとして返すかもしれない。GradNormIR は、この質問が来る前に、新しい量子チップ関連文書を文書集合内の仮の query として扱う。

手法は、その文書の表現に少し dropout を加え、同じコーパス内で近い文書を正例候補として取り、紛らわしい近傍を hard negative として選ぶ。そのうえで contrastive loss の勾配ノルムを計算し、既知の in-domain 文書に比べて大きければ、この文書は現在の retriever には扱いにくいと判断する。同じような文書がコーパス内に多ければ、量子チップ関連の新規コーパス全体を OOD とみなす。期待される出力は、「この文書集合を入れる前に retriever を更新すべきである」という運用上の判断である。間違えやすい点は、単語の一致だけを見ると「Willow」という語が既存文書にもあるため問題が小さく見えることである。GradNormIR は語の表面ではなく、現在の retriever が埋め込み空間で安定して近傍を作れるかを見るため、この種の意味のずれを更新判断に反映しやすい。