Sobes.tech
Middle

Ako porovnať embeddingy dopytov a produktov na vyhľadávanie relevantných kandidátov?

sobes.tech AI

Odpoveď od AI

Na porovnanie vložení dopytov a produktov sa zvyčajne používajú miery podobnosti alebo vzdialenosti v vektorovom priestore. Hlavné prístupy:

  • Kosínusová podobnosť (Cosine Similarity): meria uhol medzi dvoma vektormi, ignorujúc ich dĺžku. Často sa používa, pretože dobre odráža sémantickú blízkosť.

  • Euklidovská vzdialenosť (Euclidean Distance): meria priame vzdialenosti medzi bodmi v priestore.

  • Manhattanská vzdialenosť (Manhattan Distance): súčet absolútnych rozdielov v každej súradnici.

Na vyhľadanie relevantných produktov podľa dopytu:

  1. Preveďte dopyt a produkty na vloženia pomocou modelu (napríklad BERT, Word2Vec).
  2. Vypočítajte kosínusovú podobnosť medzi vložením dopytu a každým vložením produktu.
  3. Zoradte produkty podľa klesajúcej podobnosti — najrelevantnejšie budú hore.

Príklad v Pythone s použitím kosínusovej podobnosti:

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, počet_produktov)

# Indexy produktov zoradené podľa klesajúcej podobnosti
sorted_indices = np.argsort(-similarities[0])

print("Relevantné produkty podľa klesajúcej podobnosti:", sorted_indices)

Pre škálovateľné vyhľadávanie vo veľkých kolekciách embedov sa používajú špecializované knižnice a indexy, ako FAISS alebo Annoy.