プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Elasticsearch では、関連性スコアリングが検索機能の中核であり、検索結果の品質とランキングを決定します。 Elasticsearch による関連性スコアの計算方法、特に TF-IDF および BM25 アルゴリズムを理解することは、検索のパフォーマンスと結果を最適化するために重要です。この記事では、これら 2 つのアルゴリズムと Elasticsearch でのそれらのアプリケーションについて詳しく説明します。
関連性スコアは、検索結果がユーザーのクエリにどの程度一致するかを示す尺度です。 Elasticsearch は、複雑なアルゴリズムを使用して各ドキュメントとクエリの関連性スコアを計算します。スコアが高いほど、ドキュメントとクエリ間の一致度が高くなります。電子商取引 Web サイトやナレッジ ベースなどのアプリケーション シナリオでは、ユーザーが必要な情報をすぐに見つけられるかどうかは、関連性スコアによって直接決まります。
TF-IDF (Term Frequency-Inverse Document Frequency) は、文書セットまたはコーパス内の文書の 1 つに対する単語の重要性を評価するために使用される古典的な情報検索アルゴリズムです。これは 2 つの部分で構成されます。
TF-IDF アルゴリズムはシンプルで効率的ですが、明らかな制限もあります。たとえば、文書の長さや検索語の位置などの要素が考慮されず、使用頻度の高い単語が過度に強調される傾向があります。
BM25 (ベスト マッチング 25) アルゴリズムは、TF-IDF アルゴリズムを改良および拡張したもので、関連性スコアを計算する際に、文書の長さや検索用語の位置など、より多くの要素が導入されています。 BM25 アルゴリズムの主な目的は、特に大規模なドキュメント コレクションを扱う場合に、検索結果の品質を向上させることです。
BM25 アルゴリズムの基本式は次のとおりです。
[
text{スコア}(D, Q) = sum_{i=1}^{n} text{IDF}(q_i) cdot frac{f(q_i, D) cdot (k_1 + 1)}{f(q_i, D) + k_1 cdot (1 - b + b cdot frac{|D|}{text{avgdl}})}
]
で、 DDだ 文書を表し、 QQ質問 クエリを表します。 気 気_iq私 クエリ内の用語を表します。 関数 qi は、関数 qi の次の式で表される。ふ(q私,だ) 語彙項目を示します 気 気_iq私ドキュメントで DDだ周波数、 ∣D∣|D|∣だ∣ 文書を表す DDだ長さ、 avgdl テキスト{avgdl}平均GDL ドキュメント コレクション内のすべてのドキュメントの平均長を表します。 1 1 1け1 そして bbb は調整可能なパラメータです。
BM25 アルゴリズムには、TF-IDF アルゴリズムに比べて次の利点があります。
ただし、BM25 アルゴリズムには複雑さもあり、最良の結果を得るには複数のパラメーターを調整する必要があります。
Elasticsearch バージョン 5.0 より前は、関連性スコアリングに TF-IDF アルゴリズムがデフォルトで使用されていました。バージョン 5.0 以降、Elasticsearch は、実際のアプリケーションでより優れたパフォーマンスを発揮するため、デフォルトで BM25 アルゴリズムを使用します。
Elasticsearch がクエリに対するドキュメントの関連性スコアを計算する方法について洞察を得るには、次を使用できます。_explain
API。この API は、ドキュメント上の各クエリ用語のスコアの説明を返すことができます。これには、個々のコンポーネント (サブクエリ、因子、正規化など) と全体のスコアに対するそれらの特定の寄与も含まれます。
たとえば、次のコマンドを使用して、特定のクエリの TF-IDF または BM25 スコアを表示できます。
GET /my_index/_search
{
"explain": true,
"query": {
"match": {
"text": "this is the first document"
}
}
}
ECサイトでは「携帯電話」というキーワードを入力して検索できます。 Elasticsearch は、「携帯電話」を含むすべてのドキュメントのインデックスを作成し、BM25 アルゴリズムを使用して関連性スコアを計算します。スコアの高いドキュメントは検索結果で上位にランク付けされ、ユーザー エクスペリエンスが向上します。
Elasticsearch の関連性スコアリング メカニズムは複雑なアルゴリズムに基づいており、その中でも TF-IDF アルゴリズムと BM25 アルゴリズムが 2 つの重要なスコアリング アルゴリズムです。 Elasticsearch の検索パフォーマンスと結果を最適化するには、これらのアルゴリズムの原理と応用を理解することが重要です。アルゴリズムパラメータを調整して使用することで、_explain
デバッグ用のAPI、