Sobes.tech
Middle

Sorğu və məhsul gömme vektorlarını necə müqayisə etmək olar ki, uyğun namizədləri tapmaq üçün?

sobes.tech Süni İntellekt

AI-dan cavab

Sorğu və məhsulun gömmələrini müqayisə etmək üçün adətən vektor məkanında oxşarlıq və ya məsafə ölçüləri istifadə olunur. Əsas yanaşmalar:

  • Kosinus oxşarlığı (Cosine Similarity): iki vektor arasındakı bucağı ölçür, onların uzunluğunu nəzərə almır. Tez-tez istifadə olunur, çünki semantik yaxınlığı yaxşı əks etdirir.

  • Euklid məsafəsi (Euclidean Distance): nöqtələr arasındakı düz məsafəni ölçür.

  • Manhattan məsafəsi (Manhattan Distance): hər bir koordinat üzrə müsbət fərqlərin cəmidir.

Sorğu əsasında uyğun məhsulları tapmaq üçün:

  1. Sorğu və məhsulları model (məsələn, BERT, Word2Vec) istifadə edərək gömmələrə çevirin.
  2. Sorğu gömməsi ilə hər bir məhsul gömməsi arasında kosinus oxşarlığını hesablayın.
  3. Məhsulları azalan oxşarlıq sırasına görə sıralayın — ən uyğunlar yuxarıda olacaq.

Python nümunəsi ilə kosinus oxşarlığını istifadə edərək:

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, məhsul sayı)

# Məhsulları oxşarlığa görə azalan sıralama
sorted_indices = np.argsort(-similarities[0])

print("Əhəmiyyətli məhsullar azalan oxşarlıq sırasına görə:", sorted_indices)

Böyük kolleksiyalarda miqyaslı axtarış üçün FAISS və ya Annoy kimi ixtisaslaşmış kitabxanalar və indekslər istifadə olunur.