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:
- Preveďte dopyt a produkty na vloženia pomocou modelu (napríklad BERT, Word2Vec).
- Vypočítajte kosínusovú podobnosť medzi vložením dopytu a každým vložením produktu.
- 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.