Middle
İlgili adayları bulmak için sorgu ve ürün gömme vektörlerini nasıl karşılaştırılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Sorgulama gömme ve ürün gömme karşılaştırması genellikle vektör uzayında benzerlik veya uzaklık ölçüleri kullanılarak yapılır. Ana yaklaşımlar:
-
Kosinus Benzerliği (Cosine Similarity): iki vektör arasındaki açıyı ölçer, uzunluklarını dikkate almaz. Sık kullanılır çünkü semantik yakınlığı iyi yansıtır.
-
Öklid Uzaklığı (Euclidean Distance): uzaydaki iki nokta arasındaki doğrudan uzaklığı ölçer.
-
Manhattan Uzaklığı (Manhattan Distance): her koordinattaki mutlak farkların toplamı.
İlgili ürünleri aramak için:
- Sorgu ve ürünleri bir model (örneğin, BERT, Word2Vec) kullanarak gömme biçimine dönüştürün.
- Sorgu gömme ile her ürün gömme arasındaki kosinus benzerliğini hesaplayın.
- Benzerliğe göre azalan sırayla ürünleri sıralayın — en alakalılar en üstte olur.
Python'da kosinus benzerliği kullanarak örnek:
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, ürün_sayısı)
# Benzerliğe göre azalan sıralı ürün indeksleri
sorted_indices = np.argsort(-similarities[0])
print("Benzerliğe göre azalan sıralamayla ilgili ürünler:", sorted_indices)
Büyük gömme koleksiyonlarında ölçeklenebilir arama için FAISS veya Annoy gibi özel kütüphaneler ve indeksler kullanılır.