Sobes.tech
Middle

Kaip palyginti užklausų ir produktų įterpimus, kad rastumėte tinkamus kandidatus?

sobes.tech AI

Atsakymas iš AI

Palyginus užklausų ir produktų įdėjimus, dažnai naudojami panašumo ar atstumo matavimai vektorių erdvėje. Pagrindiniai požiūriai:

  • Kosino panašumas (Cosine Similarity): matuoja kampą tarp dviejų vektorių, ignoruodamas jų ilgį. Dažnai naudojamas, nes gerai atspindi semantinį artumą.

  • Euklido atstumas (Euclidean Distance): matuoja tiesią atstumą tarp taškų erdvėje.

  • Manheteno atstumas (Manhattan Distance): sumuoja absoliučias skirtumus kiekvienoje koordinatėje.

Norint rasti aktualius produktus pagal užklausą:

  1. Konvertuokite užklausą ir produktus į įdėjimus naudodami modelį (pvz., BERT, Word2Vec).
  2. Apskaičiuokite kosino panašumą tarp užklausos įdėjimo ir kiekvieno produkto įdėjimo.
  3. Rūšiuokite produktus pagal mažėjantį panašumą — patys aktualiausi bus viršuje.

Pavyzdys Python kalba naudojant kosino panašumą:

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, produktų skaičius)

# Produktų indeksai, surūšiuoti pagal mažėjantį panašumą
sorted_indices = np.argsort(-similarities[0])

print("Aktualūs produktai pagal mažėjantį panašumą:", sorted_indices)

Skalavimui didelėse kolekcijose naudojamos specializuotos bibliotekos ir indeksai, pvz., FAISS arba Annoy.