Sobes.tech
Middle

So'rovlar va mahsulotlar uchun embedlarni qanday solishtirish mumkin, mos nomzodlarni topish uchun?

sobes.tech AI

AIdan javob

Soʻrovlar va mahsulotlarning embedlarini solishtirish uchun odatda vektorli boʼshliqda oʼxshashlik yoki masofa oʼlchovlari qoʼllaniladi. Asosiy yondashuvlar:

  • Kosinus oʼxshashligi (Cosine Similarity): ikki vektor orasidagi burchakni oʼlchaydi, ularning uzunligini hisobga olmaydi. Koʼp ishlatiladi, chunki semantik yaqinlikni yaxshi aks ettiradi.

  • Euklid masofasi (Euclidean Distance): nuqtalar orasidagi toʼgʼridan-toʼgʼri masofani oʼlchaydi.

  • Manhattan masofasi (Manhattan Distance): har bir koordinata boʼyicha absolyut farqlar summasi.

Soʼrov boʼyicha muhim mahsulotlarni topish uchun:

  1. Soʼrov va mahsulotlarni model yordamida (masalan, BERT, Word2Vec) embedlariga aylantiring.
  2. Soʼrovning embed va har bir mahsulot embed orasidagi kosinus oʼxshashligini hisoblang.
  3. Mahsulotlarni oʼxshashlik boʼyicha kamayish tartibida saralang — eng muhimlar yuqorida boʼladi.

Python misoli bilan kosinus oʼxshashligini ishlatish:

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, mahsulot_soni)

# Mahsulot indekslari oʼsish tartibida
sorted_indices = np.argsort(-similarities[0])

print("Oʼzaro oʼxshashlik boʼyicha muhim mahsulotlar:", sorted_indices)

Katta kolleksiyalar uchun kengaytiriladigan qidiruv uchun FAISS yoki Annoy kabi maxsus kutubxonalar va indekslar qoʼllaniladi.