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.