Teknologian jakaminen

Elasticsearch ymmärtää osuvuuden pisteytyksen (TF-IDF, BM25 jne.)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Elasticsearchissa osuvuuspisteytys on hakutoiminnon ydin, joka määrittää hakutulosten laadun ja sijoituksen. Ymmärtäminen, kuinka Elasticsearch laskee osuvuuspisteet, erityisesti TF-IDF- ja BM25-algoritmit, on erittäin tärkeää hakutehon ja -tulosten optimoinnissa. Tässä artikkelissa tarkastellaan perusteellisesti näitä kahta algoritmia ja niiden käyttöä Elasticsearchissa.

1. Johdatus osuvuuden pisteytykseen

Relevanssipisteet mittaavat, kuinka hyvin hakutulos vastaa käyttäjän kyselyä. Elasticsearch käyttää monimutkaista algoritmia laskeakseen kunkin asiakirjan ja kyselyn osuvuuspisteet Mitä korkeampi pistemäärä on, sitä korkeampi vastaavuusaste on asiakirjan ja kyselyn välillä. Sovellusskenaarioissa, kuten verkkokauppasivustoissa ja tietokannassa, osuvuuspisteet määrittävät suoraan, löytävätkö käyttäjät nopeasti tarvitsemansa tiedot.

2. TF-IDF-algoritmi

2.1 Määritelmä ja periaate

TF-IDF (Term Frequency-Inverse Document Frequency) on klassinen tiedonhakualgoritmi, jota käytetään arvioimaan sanan tärkeyttä dokumenttijoukolle tai jollekin korpuksen asiakirjoista. Se koostuu kahdesta osasta:

  • TF (termitaajuus) : Sanataajuus, eli kuinka monta kertaa sana esiintyy asiakirjassa. Laskentakaava on: TF = (kuinka kertaa sana esiintyy asiakirjassa) / (asiakirjan sanojen kokonaismäärä).
  • IDF (käänteinen asiakirjataajuus) : Käänteinen asiakirjataajuus, eli sanan yleinen merkitys dokumenttikokoelmassa. Laskentakaava on: IDF = loki((asiakirjojen kokonaismäärä dokumenttikokoelmassa) / (sanoja sisältävien asiakirjojen lukumäärä + 1)).

2.2 Edut ja haitat

TF-IDF-algoritmi on yksinkertainen ja tehokas, mutta sillä on myös ilmeisiä rajoituksia. Se ei esimerkiksi ota huomioon tekijöitä, kuten asiakirjan pituutta ja hakutermin sijaintia, ja sillä on taipumus korostaa liikaa usein esiintyviä sanoja.

3. BM25-algoritmi

3.1 Määritelmä ja periaate

BM25 (Best Matching 25) -algoritmi on TF-IDF-algoritmin parannus ja laajennus. Se ottaa käyttöön enemmän tekijöitä laskettaessa osuvuuspisteitä, kuten asiakirjan pituuden ja hakutermin sijainnin. BM25-algoritmin päätarkoituksena on parantaa hakutulosten laatua, erityisesti kun käsitellään suuria dokumenttikokoelmia.

BM25-algoritmin peruskaava on:

[
teksti{Pistemäärä}(D, Q) = summa_{i=1}^{n} teksti{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}})}
]

sisään, DDD edustaa asiakirjaa, QQK Edustaa kyselyä, qi q_iqi Edustaa kyselyn termejä, f ( qi , D ) f(q_i, D)f(qi,D) Osoittaa leksikaalisia kohteita qi q_iqidokumentaatiossa DDDtaajuus sisään, ∣ D ∣ |D|D Edustaa asiakirjaa DDDpituus, avgdl text{avgdl}avgdl Edustaa kaikkien asiakirjakokoelmassa olevien asiakirjojen keskimääräistä pituutta, k 1 k_1k1 ja bbb on säädettävä parametri.

3.2 Edut ja haitat

BM25-algoritmilla on seuraavat edut TF-IDF-algoritmiin verrattuna:

  • Asiakirjan pituuden normalisointi: Ottaa huomioon asiakirjan pituuden laimentavan vaikutuksen sanan tiheyteen.
  • Sanataajuuden kylläisyyden säätö: ottamalla käyttöön logaritmisen funktion sanataajuuden kylläisyyden säätämiseksi, vältetään korkeataajuisten sanojen liiallinen painottaminen.
  • Asiakirjan taajuuden kylläisyys: Asiakirjojen tiheyden kyllästyskerroin otetaan käyttöön asiakirjojen tiheyden vaikutuksen säätämiseksi.

BM25-algoritmilla on kuitenkin myös monimutkaisuus, mikä vaatii useiden parametrien säätämistä parhaiden tulosten saavuttamiseksi.

4. Sovellukset Elasticsearchissa

4.1 Versioerot

Ennen Elasticsearch-versiota 5.0 TF-IDF-algoritmia käytettiin oletuksena osuvuuden pisteytykseen. Versiosta 5.0 alkaen Elasticsearch käyttää oletusarvoisesti BM25-algoritmia, koska se toimii paremmin käytännön sovelluksissa.

4.2 Vianetsintä ja optimointi

Saadaksesi käsityksen siitä, kuinka Elasticsearch laskee asiakirjan osuvuuspisteet kyselylle, voit käyttää_explain API. Tämä API voi palauttaa selityksen asiakirjan kunkin kyselytermin pistemäärästä, mukaan lukien sen yksittäiset komponentit (kuten alikyselyt, tekijät, normalisointi jne.) ja niiden erityisosuuden kokonaispistemäärään.

Voit esimerkiksi käyttää seuraavaa komentoa tarkastellaksesi tietyn kyselyn TF-IDF- tai BM25-pisteitä:

GET /my_index/_search
{
  "explain": true,
  "query": {
    "match": {
      "text": "this is the first document"
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.3 Käytännön sovellusskenaariot

Verkkokauppasivustolla käyttäjät voivat tehdä hakuja kirjoittamalla avainsanan "matkapuhelin". Elasticsearch indeksoi kaikki asiakirjat, jotka sisältävät sanan "matkapuhelin" ja laskee niiden osuvuuspisteet käyttämällä BM25-algoritmia. Korkeat pisteet saaneet asiakirjat sijoittuvat korkeammalle hakutuloksissa, mikä parantaa käyttökokemusta.

5. Yhteenveto

Elasticsearchin relevanssipisteytysmekanismi perustuu monimutkaisiin algoritmeihin, joista TF-IDF- ja BM25-algoritmit ovat kaksi tärkeää pisteytysalgoritmia. Näiden algoritmien periaatteiden ja sovellusten ymmärtäminen on ratkaisevan tärkeää Elasticsearchin hakutehon ja -tulosten optimoinnissa.Säätämällä algoritmin parametreja ja käyttämällä_explain API virheenkorjaukseen,