Middle
როგორ შევადაროთ სარეკლამო და პროდუქტის 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.