検索クエリを「質問の袋」に変えると、LLMのリランキング精度がBM25を超えた
Bag of Decisions Reranker

検索クエリを「単語の袋」ではなく「質問の袋」として扱う新しいリランキング手法を試した。LLMにクエリごとの評価基準(yes/no質問)を生成させ、各質問に「はい」と答える確率を合計して関連度スコアとする。Wayfair WANDSとAmazon ESCIのデータセットで評価したところ、BM25や単一質問のJevリランカーを上回るNDCGを記録。クエリごとの特徴量生成という発想が有望であることを示す実験結果だ。
クエリが単語の袋で表現される代わりに、私たちは「質問の袋」を持っている。
HNでの議論
11- deepsquirrelnet
> 1 - その文書は子供向けの机についてのものですか?
> 2 - その文書は子供用の机に関する製品や情報を提供していますか?
> ...
> 9 - 子供用の机のブランドやモデルはリストアップされていますか?
> 10 - 子供用の机をどこで買うか、またはどのように選ぶかをカバーしていますか?
>
> これらのそれぞれはnoul質問に変換できます。それぞれのP(yes)を合計して全体的な関連性をスコアリングできます
これは自然言語推論(NLI)の再発見のように思えます。NLIはLLM以前のNLP研究で非常に活発でした。私はNLIクロスエンコーダーのトレーニングを趣味でやっていますが、これらのユースケースの多くは、高品質な小型NLIモデルで対応できるでしょう。
参照:https://huggingface.co/dleemiller/finecat-nli-v2-l
そして:
「Less Annotating, More Classifying: Addressing the Data Scarcity Issue of Supervised Machine Learning with Deep Transfer Learning and BERT-NLI」
https://www.semanticscholar.org/paper/Less-Annotating%2C-Mor...
- ungreased0675
改善点として、各質問に感度スコアを生成することが考えられます。中には他よりも重要なものもあります。例えば、子供について全く言及しない場合は関連性が大幅に低下するはずですが、特定の機能について言及しない場合はスコアがわずかに低下するだけでしょう。
- rahimnathwani
彼は以下のテクニックを比較した:
- BM25のみ
- Jevのみ
- LLM + Jev
後者が最も良い結果だった。
しかし、LLM単独でも近い結果が出たのではないかと思う。各呼び出しにLLMを使うなら、Jevを追加することで性能が向上するかどうかをテストするのは合理的に思える。
編集:このコメントを書く前にもっとコーヒーを飲むべきだった。下のmake3が指摘するように、LLM+Jevの設定ではLLMはクエリごとに1回だけ実行すればよいのに対し、LLMのみの設定では評価されるアイテム/セグメントごとに1回LLMを実行する必要があるのを忘れていた。