Sobes.tech
Middle

Ինչպես համեմատել հարցումների և ապրանքների embedding-ները համապատասխան թեկնածուներ գտնելու համար?

sobes.tech AI

Պատասխան AI-ից

Հարցումների և ապրանքների ներդաշնակությունները համեմատելու համար սովորաբար օգտագործվում են նմանության կամ հեռավորության չափումներ վեկտորային տարածքում: Հիմնական մոտեցումները՝

  • Կոսինուս նմանություն (Cosine Similarity): չափում է երկու վեկտորների միջև անկյունը, անտեսելով նրանց երկարությունը: Շատ հաճախ օգտագործվում է, քանի որ լավ արտացոլում է սեմանտիկ մոտությունը:

  • Եվկլիդյան հեռավորություն (Euclidean Distance): չափում է ուղիղ հեռավորությունը կետերի միջև տարածքում:

  • Մանհեթեն հեռավորություն (Manhattan Distance): յուրաքանչյուր կոորդինատի վրա մաքուր տարբերությունների գումարը:

Որոշելու համար համապատասխան ապրանքներ ըստ հարցման՝

  1. Փոխարկեք հարցումը և ապրանքները ներդաշնակությունների՝ օգտագործելով մոդել (օրինակ՝ BERT, Word2Vec):
  2. Հաշվեք կոսինուս նմանությունը հարցման ներդաշնակության և յուրաքանչյուր ապրանքի ներդաշնակության միջև:
  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: