যদি আপনার অনলাইন দোকানটি জানতো যে গ্রাহকরা কি চায়?
যদি আপনার অনলাইন দোকানটি জানতো যে গ্রাহকরা কি চায়?
Most recommendation engines are like helpful but slightly clueless assistants:তারা সীমিত, অপরিবর্তিত ডেটা উপর ভিত্তি করে "ভালোবাসা" বা "সম্মত" আইটেম প্রস্তাব করে।struggleযখন ব্যবহারকারীরা নতুন (কল্ড-স্টার্ট সমস্যা), এবং তারা খুব কমই যথেষ্ট দ্রুত সংশোধন করে যখন ব্যবহারকারীর পছন্দগুলি বাস্তব সময়ে পরিবর্তিত হয়।
কিন্তু যদি আপনার সিস্টেমসত্যিই ভাবিএকটি বিপণনকারী হিসাবে - স্ট্যাটিক পণ্য ডেটা এবং বাস্তব সময়ের ব্যবহারকারীর আচরণ পৃষ্ঠের সাথে সংযুক্ত করাসঠিক আইটেমসঠিক সময়ে?
সত্যিই ভাবি
This guide walks you through building a modern recommendation engineব্যবহারSuperlinked, যিনি এই ঐতিহ্যগত দুর্বলতাগুলি অতিক্রম করে আপনার ডেটাকে ভেক্টর-ন্যাশনাল অবকাঠামো ব্যবহার করে কার্যকরী, উন্নত ব্যবহারকারীর প্রোফাইলগুলিতে রূপান্তরিত করে।
(কোডে সরাসরি হাঁটতে চান? GitHub এ খোলা সোর্স কোড চেক করুন এখানে. আপনার নিজের ব্যবহারের ক্ষেত্রে সুপারমেন্ডার সিস্টেমগুলি পরীক্ষা করার জন্য প্রস্তুত? এখানে একটি ডেমো পাবেন.)
এখানেএখানেএখানেএখানে
আপনি আমাদের সাথে ব্রাউজার ইন টিউটোরিয়াল অনুসরণ করতে পারেনকোলাব
ড. ডঃ
বেশিরভাগ ই-কমার্স পরামর্শদাতা অথবা অতিরিক্ত স্থিতিশীল ( নিয়ম ভিত্তিক) বা অস্বাভাবিক ব্ল্যাক বক্স (অপ্যাক ML মডেল)।
RecSys ভেক্টর embedding চ্যালেঞ্জ সত্ত্বেও ব্যক্তিগতকরণ অর্জন
যদিও ভেক্টর অন্তর্ভুক্তকরণ সুপারিশিং সিস্টেমগুলি ব্যাপকভাবে উন্নত করতে পারে, তাদের কার্যকরী বাস্তবায়ন কয়েকটি চ্যালেঞ্জ সমাধানের প্রয়োজন, যেমন:
- গুণমান এবং প্রাসঙ্গিকতা: অন্তর্ভুক্ত জেনারেশন প্রক্রিয়া, আর্কিটেকচার এবং ডেটা সাবধানে বিবেচনা করা উচিত।
- স্পারস এবং শব্দদূত তথ্য: ইনব্যাডিংগুলি অসম্পূর্ণ বা শব্দদূত ইনপুট থাকলে কম কার্যকর।
- পরিমাপযোগ্যতা: বড় ডেটা সেটের জন্য কার্যকর পদ্ধতি প্রয়োজন; অন্যথায়, দেরি একটি সমস্যা হবে।
Superlinked আপনাকে ব্যবহারকারীদের এবং পণ্যগুলির সম্পর্কে সমস্ত উপলব্ধ তথ্য সমৃদ্ধ multimodal ভেক্টরগুলিতে একত্রিত করে এই চ্যালেঞ্জগুলি মোকাবেলা করতে দেয়।
- min_max সংখ্যা স্পেস: গ্রাহকদের পর্যালোচনা এবং মূল্য তথ্য বোঝার জন্য
- টেক্সট অনুরূপতা স্পেস: পণ্য তথ্যের সিমেন্টিক বোঝার জন্য
- ইভেন্ট পরিকল্পনা এবং ভেক্টর পরিবর্তন করার প্রভাব
- অনুসন্ধান সময় ভারসাম্য - আপনি কিভাবে ডেটা প্রক্রিয়াকরণ করতে চান তা নির্ধারণ করুন যখন আপনি অনুসন্ধানটি চালান, আপনি পুরো ডেটা সেট পুনরায় অন্তর্ভুক্ত না করে অপ্টিমাইজেশন এবং স্ক্যালিং করতে পারবেন (ল্যাটেন্সি)
আমাদের প্রাথমিকভাবে বিরল ব্যবহারকারীর নির্দিষ্ট ডেটা (ব্যবহারকারীর প্রাথমিক পণ্য পছন্দ) অন্তর্ভুক্ত করে, আমরা ঠান্ডা শুরু সমস্যা মোকাবেলা করতে পারি।হাইপারএই ইভেন্ট ডেটা অন্তর্ভুক্ত করে সুপারিশগুলি ব্যক্তিগতকরণ করে, একটি প্রতিক্রিয়া লুক তৈরি করে যা আপনাকে বাস্তব সময়ে ব্যবহারকারীর পছন্দগুলির সাথে ভেক্টরগুলি আপডেট করতে দেয়।
Let's get started!
Superlinked দিয়ে একটি ই-কমার্স সুপারমেনশন ইঞ্জিন তৈরি করুন
উন্নয়নের শুরুতে আমরা নিম্নলিখিতproduct data:
- পর্যালোচনাকারীদের সংখ্যা
- পণ্য রেট
- টেক্সটাল বর্ণনা
- পণ্যের নাম (সাধারণত ব্র্যান্ড নাম অন্তর্ভুক্ত)
- বিভাগ
আমরাও নিম্নলিখিতdata about users and products:
- প্রতিটি ব্যবহারকারী নিবন্ধন করার সময় তিনটি প্রস্তাবিত পণ্যগুলির মধ্যে একটি নির্বাচন করে (যেমন, পণ্য পছন্দ ডেটা)
- ব্যবহারকারীর আচরণ (নির্ধারণের পরে) অতিরিক্ত ইভেন্ট ডেটা সরবরাহ করে - পণ্যগুলির টেক্সট বৈশিষ্ট্যগুলির জন্য পছন্দগুলি (বিবরণ, নাম, শ্রেণী)
এছাড়াও, ক্লাসিক অর্থনীতি আমাদের বলে যে, গড় সমস্ত ব্যবহারকারীরা ceteris paribus এমন পণ্যগুলি পছন্দ করে যা:
- খরচ কম
- অনেক পর্যালোচনা আছে
- উচ্চ রেট
আমরা আমাদের স্পেসগুলি এই ডেটাগুলি বিবেচনা করার জন্য সেট করতে পারি, যাতে আমাদের রিসিএস ঠান্ডা শুরু পরিস্থিতিতে কাজ করে - ব্যবহারকারীদের জন্য আইটেমগুলি সুপারিশ করে যা আমরা খুব কম জানি. একবার আমাদের রিসিএস চালু হয়ে গেলে, আমাদের আচরণগত ডেটাও থাকবে: ব্যবহারকারীরা নির্দিষ্ট পণ্যগুলিতে ক্লিক করবে, নির্দিষ্ট পণ্যগুলি কিনবে, ইত্যাদি আমরা এই ইভেন্ট ডেটাগুলি ক্যাপচার করতে এবং ব্যবহার করতে পারি প্রতিক্রিয়া লুক তৈরি করতে, আমাদের ভেক্টরগুলি ব্যবহারকারীর পছন্দগুলি প্রদর্শন করতে এবং সুপারিশ গুণমান উন্নত করতে।
সুপারলিংক তৈরি করুন
প্রথমে, আমাদের Superlinked লাইব্রেরি ইনস্টল করতে হবে এবং ক্লাসগুলি আমদানি করতে হবে।
%pip install superlinked==6.0.0
import altair as alt
import os
import pandas as pd
import sys
from superlinked.framework.common.embedding.number_embedding import Mode
from superlinked.framework.common.schema.schema import schema
from superlinked.framework.common.schema.event_schema import event_schema
from superlinked.framework.common.schema.schema_object import String, Integer
from superlinked.framework.common.schema.schema_reference import SchemaReference
from superlinked.framework.common.schema.id_schema_object import IdField
from superlinked.framework.common.parser.dataframe_parser import DataFrameParser
from superlinked.framework.dsl.executor.in_memory.in_memory_executor import (
InMemoryExecutor,
InMemoryApp,
)
from superlinked.framework.dsl.index.index import Index
from superlinked.framework.dsl.index.effect import Effect
from superlinked.framework.dsl.query.param import Param
from superlinked.framework.dsl.query.query import Query
from superlinked.framework.dsl.source.in_memory_source import InMemorySource
from superlinked.framework.dsl.space.text_similarity_space import TextSimilaritySpace
from superlinked.framework.dsl.space.number_space import NumberSpace
alt.renderers.enable(get_altair_renderer())
pd.set_option("display.max_colwidth", 190)
আমরা আমাদের ডেটা সেটও সংজ্ঞায়িত করি, এবং শীর্ষ 10 আইটেমগুলি সংরক্ষণের জন্য একটি স্থায়ী তৈরি করি - দেখুনকোষ 3নোটবুকে
এখন যেহেতু লাইব্রেরি ইনস্টল করা হয়েছে, ক্লাস আমদানি করা হয়েছে এবং ডাটা সেট অবস্থানগুলি সনাক্ত করা হয়েছে, আমরা আমাদের স্পেসগুলি সেটআপ করার উপায় সম্পর্কে আমাদের ডাটা সেটআপটি দেখতে পারি।
# the user preferences come from the user being prompted to select a product out of 3 - those will be the initial preferences
# this is done in order to give somewhat personalised recommendations
user_df: pd.DataFrame = pd.read_json(USER_DATASET_URL)
user_df
আমরা আমাদের পণ্যগুলির বিতরণ ডেটাকে ঘনিষ্ঠভাবে পরীক্ষা করতে পারি - দেখুনসেল 5এটি আপনাকে কতগুলি পণ্য বিভিন্ন মূল্য পয়েন্টে রয়েছে, বিভিন্ন পর্যালোচনা সংখ্যা রয়েছে এবং বিভিন্ন রেট রয়েছে (যেখানে অধিকাংশ পণ্যগুলি এই পরিসরে অবস্থিত তা সহ) এর একটি চিত্র দেয়।
পণ্যগুলির জন্য মূল্যবৃদ্ধি সাধারণত $ 1000 মূল্য পয়েন্টের নিচে থাকে. আমরা স্পেস পরিসীমা 25-1000 এ সেট করতে চাই, যাতে এটি প্রতিনিধিত্বপূর্ণ হয়, বাইরের মান দ্বারা বিপরীত হয় না।সেলিব্রিটি 7-9
ভেক্টর অনুসন্ধানের জন্য সূচক নির্মাণ
সুপারলিংকডের লাইব্রেরীটিতে কোর বিল্ডিং ব্লকগুলির একটি সেট রয়েছে যা আমরা সূচক নির্মাণ এবং পুনরুদ্ধার পরিচালনা করতে ব্যবহার করি।এখানে
আসুন এই লাইব্রেরির বিল্ডিং ব্লকগুলি আমাদের EComm RecSys ব্যবহার করতে রাখি।define your Schemaআপনার ডেটা সম্পর্কে সিস্টেমকে বলুন।
# schema is the way to describe the input data flowing into our system - in a typed manner
@schema
class ProductSchema:
description: String
name: String
category: String
price: Integer
review_count: Integer
review_rating: Integer
id: IdField
@schema
class UserSchema:
preference_description: String
preference_name: String
preference_category: String
id: IdField
@event_schema
class EventSchema:
product: SchemaReference[ProductSchema]
user: SchemaReference[UserSchema]
event_type: String
id: IdField
# we instantiate schemas as follows
product = ProductSchema()
user = UserSchema()
event = EventSchema()
পরবর্তীতে, আপনি স্পেস ব্যবহার করে বলুন যে আপনি ইনব্যাকশন করার সময় ডেটা প্রতিটি অংশকে কীভাবে আচরণ করতে চান. স্পেস সংজ্ঞাগুলিতে, আমরা বর্ণনা করি যে কীভাবে ইনপুটগুলি ইনব্যাক করা যায় যাতে তারা আমাদের ডেটাতে সিমেন্টিক সম্পর্কগুলি প্রতিফলিত করে। প্রতিটি স্পেস ডেটা ইনব্যাক্ট করার জন্য অপ্টিমাইজ করা হয় যাতে পুনরুদ্ধারের ফলাফলগুলির সর্বোচ্চ গুণমান ফিরে আসে।
# textual inputs are embedded in a text similarity space powered by a sentence_transformers model
description_space = TextSimilaritySpace(
text=[user.preference_description, product.description],
model="sentence-transformers/all-distilroberta-v1",
)
name_space = TextSimilaritySpace(
text=[user.preference_name, product.name],
model="sentence-transformers/all-distilroberta-v1",
)
category_space = TextSimilaritySpace(
text=[user.preference_category, product.category],
model="sentence-transformers/all-distilroberta-v1",
)
# NumberSpaces encode numeric input in special ways to reflect a relationship
# here we express relationships to price (lower the better), or ratings and review counts (more/higher the better)
price_space = NumberSpace(
number=product.price, mode=Mode.MINIMUM, min_value=25, max_value=1000
)
review_count_space = NumberSpace(
number=product.review_count, mode=Mode.MAXIMUM, min_value=0, max_value=100
)
review_rating_space = NumberSpace(
number=product.review_rating, mode=Mode.MAXIMUM, min_value=0, max_value=4
)
# create the index using the defined spaces
product_index = Index(
spaces=[
description_space,
name_space,
category_space,
price_space,
review_count_space,
review_rating_space,
]
)
# parse our data into the schemas - not matching column names can be conformed to schemas using the mapping parameter
product_df_parser = DataFrameParser(schema=product)
user_df_parser = DataFrameParser(
schema=user, mapping={user.preference_description: "preference_desc"}
)
# setup our application
source_product: InMemorySource = InMemorySource(product, parser=product_df_parser)
source_user: InMemorySource = InMemorySource(user, parser=user_df_parser)
executor: InMemoryExecutor = InMemoryExecutor(
sources=[source_product, source_user], indices=[product_index]
)
app: InMemoryApp = executor.run()
# load the actual data into our system
source_product.put([products_df])
source_user.put([user_df])
এখন যেহেতু আপনি আপনার ডেটা স্পেসে সংজ্ঞায়িত করেছেন, আপনি আপনার ডেটা দিয়ে খেলতে এবং ফলাফলগুলি অপ্টিমাইজ করতে প্রস্তুত।ঘটনা ছাড়াই আমরা কী করতে পারিআমাদের ঠান্ডা শুরু সমাধান।
RecSys ঠান্ডা শুরু সমস্যা মোকাবেলা
এখানে, আমরা একটি ব্যবহারকারীর চাহিদা সংজ্ঞায়িত করি যা শুধুমাত্র ব্যবহারকারীর পছন্দ ভেক্টর দ্বারা অনুসন্ধান করে. আমরা প্রতিটি ইনপুট টাইপ (স্পেস) এর গুরুত্বের উপর কনফিগারেশন নিয়ন্ত্রণ আছে.
user_query = (
Query(
product_index,
weights={
description_space: Param("description_weight"),
name_space: Param("name_weight"),
category_space: Param("category_weight"),
price_space: Param("price_weight"),
review_count_space: Param("review_count_weight"),
review_rating_space: Param("review_rating_weight"),
},
)
.find(product)
.with_vector(user, Param("user_id"))
.limit(Param("limit"))
)
# simple recommendations for our user_1
# these are based only on the initial product the user chose when first entering our site
simple_result = app.query(
user_query,
user_id="user_1",
description_weight=1,
name_weight=1,
category_weight=1,
price_weight=1,
review_count_weight=1,
review_rating_weight=1,
limit=TOP_N,
)
simple_result.to_pandas()
এই অনুসন্ধানের ফলাফল এই সত্যকে প্রতিফলিত করে যে user_1 আমাদের ecomm সাইটে প্রথম নিবন্ধন করার সময় একটি হ্যান্ডব্যাগ বেছে নিয়েছিলেন।
এটি ব্যবহারকারী_1 এর জন্য পণ্য সুপারিশ করা যেতে পারে যাসাধারণতআকর্ষণীয় - যেহেতু তাদের দাম কম, এবং অনেক ভাল পর্যালোচনা আছে উপর ভিত্তি করে. আমাদের ফলাফল এখন নিবন্ধনের সময় user_1 এর উভয় পণ্য নির্বাচন প্রতিফলিত হবেএবংপণ্যগুলির সাধারণ জনপ্রিয়তা. (আমরা এই ওজনগুলির সাথেও এক বা অন্য স্পেসের দিকে ফলাফলগুলি ছড়িয়ে দিতে পারি।
general_result = app.query(
user_query,
user_id="user_1",
description_weight=0,
name_weight=0,
category_weight=0,
price_weight=1,
review_count_weight=1,
review_rating_weight=1,
limit=TOP_N,
)
general_result.to_pandas()
একটি নতুন ব্যবহারকারীর অনুসন্ধান আমাদের সুপারিশ ফলাফলের জন্য একটি ইনপুট হিসাবে অনুরোধ টেক্সট প্রবেশ করে - দেখুনকোষ ২০
আমাদের উদাহরণের ক্ষেত্রে, user_1 অনুসন্ধান করেছিলেন "গার্মেন্টস জ্যাকেট". আমরা আমাদের ফলাফলগুলি প্রদান করে অপ্টিমাইজ করতে পারিadditional weight to the category space(category_weight = 10
) আরো "নারী পোশাক জ্যাকেট" পণ্য সুপারিশ।
women_cat_result = app.query(
search_query,
user_id="user_1",
query_text="women clothing jackets",
description_weight=1,
name_weight=1,
category_weight=10,
price_weight=1,
review_count_weight=1,
review_rating_weight=1,
limit=TOP_N,
)
women_cat_result.to_pandas()
আমাদের অতিরিক্ত বিভাগ ওজন আরো মহিলা পোশাক ফলাফল উত্পাদন করে।
আমরা আমাদের পরামর্শগুলি শীর্ষ শ্রেণীর পণ্যগুলিতেও বিচ্ছিন্ন করতে পারি (review_rating_weight=5
ফলাফল এখন ব্যবহারকারী_1 এর প্রাথমিক পছন্দ ব্যাগ এবং আইটেম যা সাধারণত জনপ্রিয়, যখন নিম্ন রেট পণ্য সম্পূর্ণরূপে মুছে ফেলা হয়।ক্যাম্প 22
ব্যক্তিগত অভিজ্ঞতা তৈরি করার জন্য ইভেন্ট ডেটা ব্যবহার
আমাদের ব্যবহারকারীরা আমাদের প্ল্যাটফর্মের সাথে ইন্টারেক্ট করেছে - user_1 আরো, user_2 কম তাই. আমরা এখন আমাদের ব্যবহারকারীদের ব্যবহার করতে পারেনbehavioral data(নিম্নলিখিত দেখুন), ইভেন্ট হিসাবে প্রতিনিধিত্ব করা হয়:
- একটি ব্যবহারকারী কাস্টম এবং বিনোদন পণ্য আগ্রহী (user_2)
- বাইরে যাওয়ার জন্য এবং আনুষ্ঠানিক কাজের সময় সুন্দর পণ্যগুলিতে আগ্রহী একজন ব্যবহারকারী (user_1)
events_df = (
pd.read_json(EVENT_DATASET_URL)
.reset_index()
.rename(columns={"index": "id"})
.head(NROWS)
)
events_df = events_df.merge(
products_df[["id"]], left_on="product", right_on="id", suffixes=("", "r")
).drop("idr", axis=1)
events_df = events_df.assign(created_at=1715439600)
events_df
একটি নির্দিষ্ট পণ্য ব্যবহারকারীর আগ্রহের মাত্রা নিবন্ধন করার জন্য নির্দিষ্ট পদক্ষেপগুলি ওজন করুন, এবং ডাউনলোড করার সময় ইভেন্টগুলি বিবেচনা করার জন্য সেটিংটি সংশোধন করুন।
event_weights = {
"clicked_on": 0.2,
"buy": 1,
"put_to_cart": 0.5,
"removed_from_cart": -0.5,
}
# adjust the setup to events
product_index_with_events = Index(
spaces=[
description_space,
category_space,
name_space,
price_space,
review_count_space,
review_rating_space,
],
effects=[
Effect(
description_space,
event.user,
event_weight * event.product,
event.event_type == event_type,
)
for event_type, event_weight in event_weights.items()
]
+ [
Effect(
category_space,
event.user,
event_weight * event.product,
event.event_type == event_type,
)
for event_type, event_weight in event_weights.items()
]
+ [
Effect(
name_space,
event.user,
event_weight * event.product,
event.event_type == event_type,
)
for event_type, event_weight in event_weights.items()
],
)
event_df_parser: DataFrameParser = DataFrameParser(schema=event)
source_event: InMemorySource = InMemorySource(schema=event, parser=event_df_parser)
executor_with_events: InMemoryExecutor = InMemoryExecutor(
sources=[source_product, source_user, source_event],
indices=[product_index_with_events],
)
app_with_events: InMemoryApp = executor_with_events.run()
এখন আমরা ব্যবহারকারীর ইভেন্টগুলি বিবেচনা করার জন্য একটি নতুন সূচক তৈরি করি এবং তারপর প্রতিটি ব্যবহারকারীর জন্য পরামর্শগুলি ব্যক্তিগত করি।
# for a new index, all data has to be put into the source again
source_product.put([products_df])
source_user.put([user_df])
source_event.put([events_df])
# a query only searching with the user's vector the preferences are now much more personalised thanks to the events
personalised_query = (
Query(
product_index_with_events,
weights={
description_space: Param("description_weight"),
category_space: Param("category_weight"),
name_space: Param("name_weight"),
price_space: Param("price_weight"),
review_count_space: Param("review_count_weight"),
review_rating_space: Param("review_rating_weight"),
},
)
.find(product)
.with_vector(user, Param("user_id"))
.limit(Param("limit"))
)
আমরা কাস্টমাইজেশন ওজন দ্বারা আমাদের RecSys ইভেন্ট অন্তর্ভুক্ত করার প্রভাব পর্যবেক্ষণ করতে পারেনএকটু সামান্যঅথবাভারীপ্রথমে, চলুন দেখে নেওয়া যাক এই (ভিত্তিক ডেটা) ইভেন্টগুলির দ্বারা প্রভাবিত স্পেসগুলি ওজন করার প্রভাব (ভিত্তিকের সাথে তুলনা করা)।
# with small weight on event-affected spaces, we mainly just alter the results below position 4
general_event_result = app_with_events.query(
personalised_query,
user_id="user_1",
description_weight=1,
category_weight=1,
name_weight=1,
price_weight=1,
review_count_weight=1,
review_rating_weight=1,
limit=TOP_N,
)
general_event_result.to_pandas().join(
simple_result.to_pandas(), lsuffix="", rsuffix="_base"
)[["description", "id", "description_base", "id_base"]]
ইভেন্ট দ্বারা প্রভাবিত স্পেসগুলিতে খুব কম ওজন দেওয়া হলে, আমরা পূর্ববর্তী ফলাফলের তুলনায় আমাদের শীর্ষ 10 এর দ্বিতীয় অর্ধেকের তুলনায় ("id_base", ডানদিকে) একটি পরিবর্তন পর্যবেক্ষণ করি।
কিন্তু যদি আমরা ইভেন্ট দ্বারা প্রভাবিত স্পেসগুলি আরো ভারী করে তুলি, তাহলে আমরা আমাদের পরামর্শ তালিকায় সম্পূর্ণরূপে নতুন আইটেমগুলি উপস্থাপন করি।
# with larger weight on the the event-affected spaces, more totally new items appear in the TOP10
event_weighted_result = app_with_events.query(
personalised_query,
user_id="user_1",
query_text="",
description_weight=5,
category_weight=1,
name_weight=1,
price_weight=1,
review_count_weight=1,
review_rating_weight=1,
limit=TOP_N,
)
event_weighted_result.to_pandas().join(
simple_result.to_pandas(), lsuffix="", rsuffix="_base"
)[["description", "id", "description_base", "id_base"]]
আমরা অবশ্যই একটি নির্দিষ্ট ব্যবহারকারীর আচরণের উপর ভিত্তি করে আমাদের সুপারিশগুলি ব্যক্তিগত করতে ওজনগুলি ব্যবহার করতে পারি (অভেন্ট ডেটা) এবংএকই সময়ে অন্যান্য পণ্য বৈশিষ্ট্য অগ্রাধিকারউদাহরণস্বরূপ, মূল্য ( দেখুনমোট ৩১)
উপসংহার
সুপারলিংকড লাইব্রেরির eComm RecSys বাস্তবায়ন (উপরে) আপনাকে দেখায় যেভাবে ব্যবহারকারীর অনুরোধ এবং আচরণগত ডেটাগুলির সিমেন্টিক মান অন্তর্ভুক্ত করে ভেক্টর ইনব্যাডিংয়ের ক্ষমতা বাস্তবায়ন করা যায়. আমাদের min_max সংখ্যা এবং টেক্সট অনুরূপতা স্পেস, ইভেন্ট স্কিম এবং প্রভাব, এবং অনুরোধের সময় ওজনগুলি ব্যবহার করে, আপনি RecSys এর ঠান্ডা শুরু, গুণমান এবং প্রাসঙ্গিকতা এবং স্ক্যালারিযোগ্যতা চ্যালেঞ্জগুলি সমাধান করতে পারেন এবং উত্পাদনে উচ্চ নির্ভরযোগ্য, ব্যবহারকারীর ব্যক্তিগত পরামর্শগুলি প্রদান করতে পারেন।
এখন আপনার দিকে!আমাদের নোটবুক ব্যবহার করে নিজেই সুপারলিংকড লাইব্রেরি বাস্তবায়ন করুন
Try It Yourself – Get the Code & Demo!
এটি নিজেই চেষ্টা করুন - কোড এবং ডেমো পেতে!- কোডটি ধরা যাক: আমাদের GitHub রিপোতে সম্পূর্ণ বাস্তবায়নটি দেখুন এখানে. এটি ফর্ক করুন, এটি সংশোধন করুন এবং এটি আপনার নিজের তৈরি করুন!
- এটি কাজে দেখুন: এটি বাস্তব বিশ্বের সেটআপে কাজ দেখতে চান? একটি দ্রুত ডেমো বুক করুন, এবং Superlinked কিভাবে আপনার পরামর্শগুলি অতিরিক্ত চার্জ করতে পারে তা অনুসন্ধান করুন।
সুপারিশ ইঞ্জিনগুলি আমাদের সামগ্রী আবিষ্কার করার উপায় আবিষ্কার করছে. এটি জনপ্রিয় প্যান্ট, সঙ্গীত, বা অন্যান্য পণ্য,vector search is the future— এবং এখন আপনি আপনার নিজের তৈরি করার জন্য সরঞ্জাম আছে।