Middle
Суроолор жана товарлар үчүн embedding-лерди салыштырып, тиешелүү талапкерлерди табуу үчүн кандай кылуу керек?
sobes.tech AI
AIден жооп
Суроолор жана товарлардын embeddingsтерин салыштырганда, көбүнчө вектордук кеңейтүүдө окшоштук же аралык өлчөмдөр колдонулат. Негизги жактар:
-
Косинус окшоштугу (Cosine Similarity): эки вектор ортосундагы бурчту өлчөйт, алардын узундугун эске албайт. Көп колдонулат, анткени семантик жакындыкты жакшы чагылдырат.
-
Евклид аралык (Euclidean Distance): кеңейтүүдөгү чекиттер ортосундагы түз аралыкты өлчөйт.
-
Манхэттен аралык (Manhattan Distance): ар бир координаттагы абсолюттук айырмачылыктардын жыйындысы.
Талапка ылайык товарларды издөө үчүн:
- Талап жана товарларды модел (мисалы, BERT, Word2Vec) аркылуу embeddingsке айландырыңыз.
- Талаптын embeddingsи менен ар бир товар embeddingsинин ортосунда косинус окшоштугун эсептеңиз.
- Товардын тизмесин төмөндөн жогоруга карай сорттоңуз — эң релеванттуулары жогорку жагында болот.
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 сыяктуу атайын китепканалар жана индекстер колдонулат.