Ինչպես համեմատել հարցումների և ապրանքների embedding-ները համապատասխան թեկնածուներ գտնելու համար?
sobes.tech AI
Պատասխան AI-ից
Հարցումների և ապրանքների ներդաշնակությունները համեմատելու համար սովորաբար օգտագործվում են նմանության կամ հեռավորության չափումներ վեկտորային տարածքում: Հիմնական մոտեցումները՝
-
Կոսինուս նմանություն (Cosine Similarity): չափում է երկու վեկտորների միջև անկյունը, անտեսելով նրանց երկարությունը: Շատ հաճախ օգտագործվում է, քանի որ լավ արտացոլում է սեմանտիկ մոտությունը:
-
Եվկլիդյան հեռավորություն (Euclidean Distance): չափում է ուղիղ հեռավորությունը կետերի միջև տարածքում:
-
Մանհեթեն հեռավորություն (Manhattan Distance): յուրաքանչյուր կոորդինատի վրա մաքուր տարբերությունների գումարը:
Որոշելու համար համապատասխան ապրանքներ ըստ հարցման՝
- Փոխարկեք հարցումը և ապրանքները ներդաշնակությունների՝ օգտագործելով մոդել (օրինակ՝ BERT, Word2Vec):
- Հաշվեք կոսինուս նմանությունը հարցման ներդաշնակության և յուրաքանչյուր ապրանքի ներդաշնակության միջև:
- Սորտավորեք ապրանքները նվազող նմանությամբ՝ ամենահամապատասխանները վերևում:
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: