Sobes.tech
Middle

Kuidas võrrelda päringute ja toodete sisestusi, et leida asjakohaseid kandidaate?

sobes.tech AI

Vastus AI-lt

Küsimuste ja toodeteid sisaldavate sisendite võrdlemiseks kasutatakse tavaliselt vektori ruumis sarnasus- või kaugusmõõtmeid. Peamised lähenemisviisid:

  • Kosine sarnasus (Cosine Similarity): mõõdab kahe vektori vahelist nurka, ignoreerides nende pikkust. Sageli kasutatakse, kuna see peegeldab hästi semantilist lähedust.

  • Eukleidiline kaugus (Euclidean Distance): mõõdab sirgjoonelist kaugust punktide vahel ruumis.

  • Manhattani kaugus (Manhattan Distance): summa absoluutsetest erinevustest iga koordinaadi puhul.

Relevantsete toodete leidmiseks vastavalt päringule:

  1. Muutke päring ja tooted sisenditeks kasutades mudelit (näiteks BERT, Word2Vec).
  2. Arvutage kosine sarnasus päringu sisendi ja iga toote sisendi vahel.
  3. Sorteerige tooted vastavalt kahanevale sarnasusele — kõige relevantsemad on ülaosas.

Python näide kosine sarnasuse kasutamisest:

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

query_embedding = np.array([[0.1, 0.3, 0.5]])
product_embeddings = np.array([
    [0.2, 0.1, 0.4],
    [0.9, 0.8, 0.7],
    [0.05, 0.3, 0.5]
])

similarities = cosine_similarity(query_embedding, product_embeddings)
# similarities.shape = (1, toodete arv)

# Toote indeksid kahanevas sarnasuses
sorted_indices = np.argsort(-similarities[0])

print("Relevantsed tooted kahanevas sarnasuses:", sorted_indices)

Skaleeritava otsingu jaoks suurte kogumite puhul kasutatakse spetsialiseeritud teeke ja indekseid, näiteks FAISS või Annoy.