Sobes.tech
Middle

Суроолор жана товарлар үчүн embedding-лерди салыштырып, тиешелүү талапкерлерди табуу үчүн кандай кылуу керек?

sobes.tech AI

AIден жооп

Суроолор жана товарлардын embeddingsтерин салыштырганда, көбүнчө вектордук кеңейтүүдө окшоштук же аралык өлчөмдөр колдонулат. Негизги жактар:

  • Косинус окшоштугу (Cosine Similarity): эки вектор ортосундагы бурчту өлчөйт, алардын узундугун эске албайт. Көп колдонулат, анткени семантик жакындыкты жакшы чагылдырат.

  • Евклид аралык (Euclidean Distance): кеңейтүүдөгү чекиттер ортосундагы түз аралыкты өлчөйт.

  • Манхэттен аралык (Manhattan Distance): ар бир координаттагы абсолюттук айырмачылыктардын жыйындысы.

Талапка ылайык товарларды издөө үчүн:

  1. Талап жана товарларды модел (мисалы, BERT, Word2Vec) аркылуу embeddingsке айландырыңыз.
  2. Талаптын embeddingsи менен ар бир товар embeddingsинин ортосунда косинус окшоштугун эсептеңиз.
  3. Товардын тизмесин төмөндөн жогоруга карай сорттоңуз — эң релеванттуулары жогорку жагында болот.

Python мисалы менен косинус окшоштугун колдонуу:

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, продукттар саны)

# Продукттардын индексин төмөндөн жогоруга сорттоо
sorted_indices = np.argsort(-similarities[0])

print("Релеванттуу продукттар төмөндөн жогоруга:", sorted_indices)

Кеңейтүүнү масштабдуу издөө үчүн, FAISS же Annoy сыяктуу атайын китепканалар жана индекстер колдонулат.