Solr 9.4 - knnパーサーを使用したベクトル検索の最小類似度しきい値に関するサポートをお願いします

トピック作成者:ks-solruserml-bot (2024/09/22 21:56 投稿)
6
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/hbnl7hpjsw7ms9py122bvov4bjmzfopg into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、皆さん

Solr 9.4でベクトル検索を使用しています。knnパーサーでコサイン類似度を使用しています。

ドキュメントにある例と同じです:
https://solr.apache.org/guide/solr/latest/query-guide/dense-vector-search.html

スキーマ:

<fieldType name="knn_vector" class="solr.DenseVectorField" vectorDimension="768" similarityFunction="cosine"/>
<field name="vector" type="knn_vector" indexed="true" stored="true"/>

クエリ:

q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]

問題は、関連性の低いドキュメントも常に返されることです。例えば「xyz」キーワードを使っても、knnパーサーが無関係なドキュメントを返してしまいます。私は高い類似度のドキュメントのみを取得したいです。Solrに、knnパーサー内で類似度のしきい値を制御するパラメーターはあるのでしょうか?

knnパーサーで最小類似度のしきい値をどのように制御できますか?

ご助力いただければ幸いです。よろしくお願いします。

--
感謝と敬意を込めて
Kumar Gaurav

返信投稿者:ks-solruserml-bot (2024/09/22 21:56 投稿)

私はSolrで密ベクトル検索をテストしており、これまでのところ非常にうまく機能しています。私のケースは、OpenAIのCLIPモデルを使用した画像検索ですが、設定はほぼあなたと同じです。どの埋め込みモデルを使用していますか?また、実際のクエリの一部を共有できますか?

返信投稿者:ks-solruserml-bot (2024/09/22 21:57 投稿)

こんにちは、Srijanさん。

ご返信ありがとうございます。

私はBERTのオープンソースモデルを使用してベクトルを生成しています。knnパーサーにおけるminSimilarityパラメータの閾値について、何かご存知ですか?

私はeコマースのデータセットで作業しています。そのため、インデックスに存在しない無効な検索トークンを使用しても、同じ関連性のない結果と同じスコアが返されます。

いくつかの最小類似度の閾値を適用して、外れ値を除外し、非常に近い文書だけを取得したいと考えています。

返信投稿者:ks-solruserml-bot (2024/09/22 21:57 投稿)

こんにちは、Kumarさん。

kNNはk個の最も近いベクトルを返しますが、ご指摘のように、それらが実際にはあまり近くない場合があります。eコマースのクライアントと作業する中で見られるアプローチの多くは、kNNと標準的なレキシカル検索を何らかの方法で組み合わせることです。両者の結果を組み合わせたり、一方を使用して特定の結果をブーストする方法です。以下のブログが役立つかもしれません。ここでは、あなたが直面している問題に対処するためのいくつかの戦略が説明されています。
https://opensourceconnections.com/blog/2023/03/22/building-vector-search-in-chorus-a-technical-deep-dive/

よろしくお願いします。

Charlie

返信投稿者:ks-solruserml-bot (2024/09/22 21:58 投稿)

こんにちは、Kumarさん。

Apache SolrのkNN検索は、最小しきい値パラメータをサポートしていません。正直なところ、もしサポートしていたとしても、あまり改善されるわけではありません。あなたが感じる関連性が、クエリとベクトル間の0-1コサイン類似度と必ずしも一致するわけではなく、高く関連性があると考えるものが、あるクエリでスコア0.35、別のクエリで0.96になるかもしれません。そのようなパラメータを持つことは、ユーザーに有用なしきい値を設定する苦痛を委ねるだけであり、信じてください、それは簡単(あるいは実行可能)な仕事ではありません。

私のロードマップには、ドキュメントスコアに基づく自動カット機能を追加することが含まれていますし、Luceneもしきい値ベースの検索を追加しました(これをApache Solrに移植するかどうかは未定です)。その間に、将来的に改善される予定のハイブリッド検索を試してみることができます:
https://sease.io/2023/12/hybrid-search-with-apache-solr.html

よろしくお願いします。

Alessandro Benedetti
ディレクター @ Sease Ltd.
Apache Lucene/Solr コミッター
Apache Solr PMC メンバー

返信投稿者:ks-solruserml-bot (2024/09/22 21:59 投稿)

こんにちは、Charlieさん、Alessandroさん

ご返信ありがとうございます。とても参考になりました。

お二人のリンクはどちらも非常に役立ちました。本当に感謝しています。お二人ともハイブリッド検索を提案してくださっていますね。

Alessandroさん
私はすでにこのリンク(https://sease.io/2023/12/hybrid-search-with-apache-solr.html)を読み、試してみました。キーワード検索の結果とベクトル検索の結果が1つのクエリで得られています。私はあなたの仕事の大ファンで、Solrニューラル検索に関するhttps://sease.ioのチュートリアルをいつも参考にしています。

いくつか質問と確認したいことがあります。

  1. スコアは動的に生成されるため、カットオフ機能をどう実装するかについてのあなたのポイントは完全に理解しました。
    "fq":"{!frange l=0.4}query($q,0)"を使ってスコアが0.4未満のドキュメントを除外することができましたが、スコアがリクエストごとに動的に生成されるため、これはあまり役に立ちません。

  2. eコマースデータにおけるタクソノミーベクトル生成に関して1つ質問があります。ベクトルフィールドにすべてのフィールドデータを1つの文にまとめることを推奨しますか?それとも、商品名やカテゴリーなどの主要なフィールドだけを使用すべきですか?

  3. ベクトル生成に関して、おすすめのオープンソースモデルはありますか?私はBERTを使用していますが、いくつかのケースでは適切ではありません。

心から感謝しています。ご回答をお待ちしています。

よろしくお願いいたします。
Kumar Gaurav

返信投稿者:ks-solruserml-bot (2024/09/22 21:59 投稿)

Ale: ありがとう!そう言ってもらえて、とても嬉しいです。私やチームの仕事が世界中の人々に役立っていることを誇りに思います! :D

  1. クエリごとに適用できるいくつかのヒューリスティックはあります。ただし、これらはスコアに基づいているため、エンベッダーのモデルがあまり優れていない場合には、あなたの期待する関連性に一致しないかもしれません。ですが、スポンサーがつけばぜひ探求したいアイデアがたくさんあります。

  2. タクソノミーについて話す場合、単純にテキストとしてフィールドをベクトル化することに私はあまり納得していません。カテゴリが完全に一致しない場合でも類似性を見つけたいということでない限りはです。私はおそらく、カテゴリ情報を使ってベクトルにいくつかの要素を追加するか、ベクトルの類似性とともにLearning To Rankモデルで別の特徴として使用するでしょう。

  3. これは簡単に答えられる質問ではありません。言語やドメイン、ユースケースなどに依存します。私たちは通常、クライアントのためにこのような調査を行うときに、数日間チームで時間をかけます。そのため、すぐには答えられませんが、このブログが何かヒントを与えるかもしれません:
    https://sease.io/2023/06/how-to-choose-the-right-large-language-model-for-your-domain-open-source-edition.html

よろしくお願いします。

Alessandro Benedetti
ディレクター @ Sease Ltd.
Apache Lucene/Solr コミッター
Apache Solr PMC メンバー

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?