Recommendation systems

OpenAI API के साथ Embeddings परिचय

Emmanuel Pire

Senior Software Engineer, DataCamp

Embeddings के साथ Recommendation systems

 

  • सेमांटिक सर्च से बहुत मिलते-जुलते!

 

प्रक्रिया:

  1. संभावित रिकमेंडेशन और डेटा पॉइंट को एंबेड करें

वेक्टर स्पेस में एक नीला डेटा पॉइंट और कई लाल डेटा पॉइंट।

OpenAI API के साथ Embeddings परिचय

Embeddings के साथ Recommendation systems

 

  • सेमांटिक सर्च से बहुत मिलते-जुलते!

 

प्रक्रिया:

  1. संभावित रिकमेंडेशन और डेटा पॉइंट को एंबेड करें
  2. कोसाइन डिस्टेंस निकालें

वेक्टर स्पेस में एक नीला डेटा पॉइंट और कई लाल डेटा पॉइंट। कोसाइन डिस्टेंस दिखाने के लिए हर लाल पॉइंट से नीले पॉइंट तक एक रेखा है।

OpenAI API के साथ Embeddings परिचय

Embeddings के साथ Recommendation systems

 

  • सेमांटिक सर्च से बहुत मिलते-जुलते!

 

प्रक्रिया:

  1. संभावित रिकमेंडेशन और डेटा पॉइंट को एंबेड करें
  2. कोसाइन डिस्टेंस निकालें
  3. सबसे नजदीकी आइटम रिकमेंड करें

सबसे नजदीक के तीन लाल पॉइंट हाइलाइट किए गए हैं।

OpenAI API के साथ Embeddings परिचय

उदाहरण: सुझाए गए आर्टिकल

articles = [
    {"headline": "Economic Growth Continues Amid Global Uncertainty",
     "topic": "Business",
     "keywords": ["economy", "business", "finance"]},
    ...
    {"headline": "1.5 Billion Tune-in to the World Cup Final",
     "topic": "Sport",
     "keywords": ["soccer", "world cup", "tv"]}
]

current_article = {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race", "topic": "Tech", "keywords": ["ai", "business", "computers"]}
OpenAI API के साथ Embeddings परिचय

फीचर्स जोड़ना

def create_article_text(article):
  return f"""Headline: {article['headline']}
Topic: {article['topic']}
Keywords: {', '.join(article['keywords'])}"""
article_texts = [create_article_text(article) for article in articles]
current_article_text = create_article_text(current_article)
print(current_article_text)
Headline: How NVIDIA GPUs Could Decide Who Wins the AI Race
Topic: Tech
Keywords: ai, business, computers
OpenAI API के साथ Embeddings परिचय

Embeddings बनाना

def create_embeddings(texts):
  response = openai.Embedding.create(
    model="text-embedding-3-small",
    input=texts
  )
  response_dict = response.model_dump()

  return [data['embedding'] for data in response_dict['data']]
current_article_embeddings = create_embeddings(current_article_text)[0]
article_embeddings = create_embeddings(article_texts)
OpenAI API के साथ Embeddings परिचय

सबसे समान आर्टिकल ढूँढना

def find_n_closest(query_vector, embeddings, n=3):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = spatial.distance.cosine(query_vector, embedding)
    distances.append({"distance": dist, "index": index})
  distances_sorted = sorted(distances, key=lambda x: x["distance"])
  return distances_sorted[0:n]
hits = find_n_closest(current_article_embeddings, article_embeddings)

for hit in hits: article = articles[hit['index']] print(article['headline'])
OpenAI API के साथ Embeddings परिचय

सबसे समान आर्टिकल ढूँढना

Tech Giant Buys 49% Stake In AI Startup
Tech Company Launches Innovative Product to Improve Online Accessibility
Scientists Make Breakthrough Discovery in Renewable Energy
OpenAI API के साथ Embeddings परिचय

यूज़र हिस्ट्री जोड़ना

user_history = [
    {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race",
     "topic": "Tech",
     "keywords": ["ai", "business", "computers"]},
    {"headline": "Tech Giant Buys 49% Stake In AI Startup",
     "topic": "Tech",
     "keywords": ["business", "AI"]}
]
OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

एंबेड किए गए आर्टिकल का प्लॉट, जहाँ यूज़र की हिस्ट्री वाले आर्टिकल नीले और बाकी लाल दिखते हैं।

OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

 

प्रक्रिया:

  • कई वेक्टर का मीन लेकर एक में मिलाएँ
  • कोसाइन डिस्टेंस निकालें

दो वेक्टर के मीन से निकला पॉइंट दोनों के बीच जोड़ा गया है।

OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

 

प्रक्रिया:

  • कई वेक्टर का मीन लेकर एक में मिलाएँ
  • कोसाइन डिस्टेंस निकालें
  • सबसे नजदीकी वेक्टर रिकमेंड करें

रिकमेंडेशन के लिए सबसे नजदीकी लाल पॉइंट हाइलाइट किया गया है।

OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

 

प्रक्रिया:

  • कई वेक्टर का मीन लेकर एक में मिलाएँ
  • कोसाइन डिस्टेंस निकालें
  • सबसे नजदीकी वेक्टर रिकमेंड करें

अब सबसे नजदीकी पॉइंट नीला कर दिया गया है, यह दिखाने के लिए कि कोड पहले से पढ़े आर्टिकल को बाहर रखे।

OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

 

प्रक्रिया:

  • कई वेक्टर का मीन लेकर एक में मिलाएँ
  • कोसाइन डिस्टेंस निकालें
  • सबसे नजदीकी वेक्टर रिकमेंड करें
    • सुनिश्चित करें कि वह अनरीड हो

अब हाइलाइट किया गया सबसे नजदीकी लाल पॉइंट, जो इस बार थोड़ा दूर है।

OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

def create_article_text(article):
  return f"""Headline: {article['headline']}
Topic: {article['topic']}
Keywords: {', '.join(article['keywords'])}"""

history_texts = [create_article_text(article) for article in user_history]
history_embeddings = create_embeddings(history_texts)

mean_history_embeddings = np.mean(history_embeddings, axis=0)
articles_filtered = [article for article in articles if article not in user_history]
article_texts = [create_article_text(article) for article in articles_filtered] article_embeddings = create_embeddings(article_texts)
OpenAI API के साथ Embeddings परिचय

कई डेटा पॉइंट पर सिफारिशें

hits = find_n_closest(mean_history_embeddings, article_embeddings)

for hit in hits: article = articles_filtered[hit['index']] print(article['headline'])
Tech Company Launches Innovative Product to Improve Online Accessibility
New Social Media Platform Has Everyone Talking!
Scientists Make Breakthrough Discovery in Renewable Energy
OpenAI API के साथ Embeddings परिचय

अभ्यास करते हैं!

OpenAI API के साथ Embeddings परिचय

Preparing Video For Download...