পছন্দসই মিলটি অ্যালগরিদম


12

এই পাশের প্রকল্পটি আমি কাজ করছি যেখানে আমাকে নিম্নলিখিত সমস্যার সমাধানের কাঠামো তৈরি করতে হবে।

আমার দুটি গ্রুপ (ক্লায়েন্ট) রয়েছে। গোষ্ঠী ক্রয় Aকরতে ইচ্ছুক এবং গোষ্ঠী Bএকটি নির্ধারিত পণ্য বিক্রয় করার ইচ্ছা করে X। পণ্যটির বৈশিষ্ট্যগুলির একটি ধারা রয়েছে x_iএবং আমার উদ্দেশ্য হল তাদের পছন্দগুলির সাথে Aএবং এর সাথে Bমিলে লেনদেন সহজতর করা । মূল ধারণাটি হ'ল এমন একজনের প্রত্যেক সদস্যকে নির্দেশ করা A, Bযার পণ্যটি তার প্রয়োজনের জন্য আরও ভাল মানায় এবং তদ্বিপরীত।

সমস্যার কিছু জটিল বিষয়:

  1. বৈশিষ্ট্যের তালিকা সীমাবদ্ধ নয়। ক্রেতা খুব নির্দিষ্ট বৈশিষ্ট্যযুক্ত বা কোনও ধরণের ডিজাইনের প্রতি আগ্রহী হতে পারে যা জনগণের মধ্যে বিরল এবং আমি ভবিষ্যদ্বাণী করতে পারি না। পূর্বে সমস্ত বৈশিষ্ট্য তালিকাভুক্ত করা যায় না;

  2. বৈশিষ্ট্যগুলি অবিচ্ছিন্ন, বাইনারি বা অ-কোয়ান্টেফাইয়েবল হতে পারে (উদাঃ মূল্য, কার্যকারিতা, নকশা);

কীভাবে এই সমস্যাটির কাছে যাওয়ার এবং এটি একটি স্বয়ংক্রিয় পদ্ধতিতে সমাধান করার জন্য কোনও পরামর্শ?

আমি যদি সম্ভব হয় তেমন অন্যান্য সমস্যার জন্য কিছু রেফারেন্সেরও প্রশংসা করব।


দুর্দান্ত পরামর্শ! আমি যেভাবে সমস্যার কাছে যাওয়ার কথা ভাবছি তার সাথে অনেক মিল।

বৈশিষ্ট্যগুলি ম্যাপিংয়ের মূল বিষয়টি হ'ল পণ্যটির যে স্তরের বিবরণ দেওয়া উচিত তা স্তরের প্রতিটি ক্রেতার উপর নির্ভর করে। চলুন একটি গাড়ির উদাহরণ নেওয়া যাক। পণ্য "গাড়ি" এর কার্যকারিতা, যান্ত্রিক কাঠামো, দাম ইত্যাদি থেকে শুরু করে প্রচুর এবং অনেকগুলি বৈশিষ্ট্য রয়েছে has

মনে করুন আমি কেবল একটি সস্তা গাড়ি, বা বৈদ্যুতিন গাড়ি চাই। ঠিক আছে, এটি মানচিত্র করা সহজ কারণ তারা এই পণ্যের প্রধান বৈশিষ্ট্য উপস্থাপন করে। তবে ধরা যাক, উদাহরণস্বরূপ, আমি ডুয়াল-ক্লাচ ট্রান্সমিশন বা জেনন হেডলাইট সহ একটি গাড়ি চাই। ওয়েল এই বৈশিষ্ট্যগুলির সাথে ডেটা বেসে অনেকগুলি গাড়ি থাকতে পারে তবে আমি বিক্রেতাকে তাদের প্রোডাক্টের এই স্তরের বিশদটি পূরণ করার জন্য জিজ্ঞাসা করব না এমন তথ্যের আগে যে তাদের দেখছে। এই জাতীয় পদ্ধতির জন্য প্রতিটি বিক্রেতাকে একটি জটিল, খুব বিস্তারিত, ফর্মটি পূরণ করতে হবে কেবল প্ল্যাটফর্মে তার গাড়ি বিক্রয় করার চেষ্টা করুন। শুধু কাজ করবে না।

তবে তবুও, আমার চ্যালেঞ্জটি হ'ল একটি ভাল ম্যাচ করার জন্য অনুসন্ধানে প্রয়োজনীয় হিসাবে যথাযথভাবে বিশদ হওয়ার চেষ্টা করা। সুতরাং আমি যেভাবে ভাবছি পণ্যটির মূল দিকগুলি ম্যাপিং করছি, সম্ভাব্য বিক্রেতার ডি গ্রুপকে সংকুচিত করার জন্য, যেগুলি সম্ভবত সবার সাথে প্রাসঙ্গিক।

পরবর্তী পদক্ষেপটি একটি "পরিশোধিত অনুসন্ধান" হবে। খুব বিশদ ফর্ম তৈরি এড়াতে আমি ক্রেতাদের এবং বিক্রেতাদের তাদের স্পেসিফিকেশনের একটি নিখরচায় লেখা লিখতে বলতে পারি। এবং তারপরে সম্ভাব্য মিলগুলি খুঁজে পেতে কিছু শব্দ মিলে যাওয়া অ্যালগরিদম ব্যবহার করুন। যদিও আমি বুঝতে পারি যে এটি সমস্যার যথাযথ সমাধান নয় কারণ বিক্রেতার ক্রেতার কী প্রয়োজন তা "অনুমান" করতে পারে না। তবে আমাকে কাছে পেতে পারে

প্রস্তাবিত ওজন মাপদণ্ড দুর্দান্ত। এটি আমাকে সেই স্তরের পরিমাণ নির্ধারণের অনুমতি দেয় যা বিক্রয়ক ক্রেতার চাহিদার সাথে মেলে। স্কেলিং অংশটি সমস্যা হতে পারে যদিও প্রতিটি বৈশিষ্ট্যের গুরুত্ব ক্লায়েন্ট থেকে ক্লায়েন্টে পরিবর্তিত হয়। আমি কিছু ধরণের প্যাটার্ন স্বীকৃতি ব্যবহার করার কথা বলছি বা প্রতিটি কীর্তির গুরুত্বের মাত্রাকে ইনপুট করতে ডি ক্রেতাকে জিজ্ঞাসা করছি।

উত্তর:


9

আমার প্রথম পরামর্শটি হ'ল কোনওভাবে উপযুক্ত মানচিত্রের কার্যকারিতার সাহায্যে পরিমাণের অ-গুণমান গুণাবলীকে ম্যাপ করা map অন্যথায়, কেবল তাদের ছেড়ে দিন।

দ্বিতীয়ত, আমি মনে করি না যে আপনাকে ধরে নিতে হবে যে গুণাবলীর তালিকা সীমাবদ্ধ নয়। একটি মানক এবং স্বজ্ঞাত পদ্ধতির হ'ল প্রতিটি বৈশিষ্টকে ভেক্টর স্পেসে স্বতন্ত্র মাত্রা হিসাবে উপস্থাপন করা। প্রতিটি পণ্য তখন কেবল এই স্থানের একটি পয়েন্ট। সেক্ষেত্রে আপনি যদি গতিশীলভাবে আরও বেশি বৈশিষ্ট্য যুক্ত করতে চান তবে আপনাকে পণ্য ভেক্টরকে নতুন বৈশিষ্ট্য স্পেসে (অতিরিক্ত মাত্রা সহ) পুনর্নির্মাণ করতে হবে।

এই উপস্থাপনের সাথে, একজন বিক্রেতা পণ্যের বৈশিষ্ট্য সহ বৈশিষ্ট্য স্পেসের একটি পয়েন্ট এবং ক্রেতা পছন্দ বৈশিষ্ট্যের সাথে একই বৈশিষ্ট্য স্পেসের একটি পয়েন্ট। কাজটি তখন প্রদত্ত বিক্রেতা পয়েন্টের জন্য সর্বাধিক অনুরূপ ক্রেতা পয়েন্টটি সন্ধান করা।

যদি আপনার ডেটাসেট (যেমন ক্রেতাদের / বিক্রেতার সংখ্যা) খুব বেশি না হয়, আপনি কেডি গাছের সাহায্যে প্রয়োগ করা নিকটতম প্রতিবেশী পদ্ধতির সাহায্যে এটিকে সমাধান করতে পারেন।

খুব বড় আকারের ডেটার জন্য, আপনি একটি আইআর পদ্ধতি গ্রহণ করতে পারেন। প্রতিটি অ্যাট্রিবিউটকে পৃথক শর্ত হিসাবে বিবেচনা করে বিক্রেতাদের সেটকে (অর্থাত্ পণ্যের গুণাবলী) সূচক করুন যা শব্দের মানকে সেট করা হচ্ছে। এই ক্ষেত্রে একটি কোয়েরি হ'ল একজন ক্রেতা যা উপযুক্ত শব্দ ওজন সহ ক্যোয়ারী ভেক্টর হিসাবে শব্দ স্থানটিতে এনকোড থাকে। পুনরুদ্ধার পদক্ষেপটি আপনাকে শীর্ষস্থানীয় কে সর্বাধিক অনুরূপ ম্যাচের একটি তালিকা ফিরিয়ে দেবে।


রাইট। এখানে মূল বিষয়টি হ'ল মাত্রাগুলির সংখ্যা, অর্থাত আমার যে ধরণের বিশদটি ব্যবহার করা দরকার। আপনি আমাকে "আইআর পদ্ধতির" স্পষ্ট করতে পারেন?
আরডি

1
আইআর দ্বারা, আমি তথ্য পুনরুদ্ধার বোঝাতে চাইছি। আপনি ভাবতে পারেন যে আপনার সংগ্রহে থাকা দস্তাবেজগুলি (বিক্রেতারা) এবং ক্যোয়ারী (একটি ক্রেতা) সমস্ত ভেক্টর একটি শব্দ (বৈশিষ্ট্য) স্পেসে এম্বেড হয়েছে। যেমনটি আমি বলেছি, এ জাতীয় পদ্ধতির সাথে কাজ করার জন্য একটি প্রাইসেট সংখ্যার প্রাইসেট দরকার।
দেবাসিস

7

যেমন পরামর্শ দেওয়া হয়েছে, বন্য হচ্ছে । প্রথমত, আমি ভুল হলে আমাকে সংশোধন করুন:

  • প্রতিটি অনন্য পণ্যের জন্য কয়েকটি বৈশিষ্ট্য বিদ্যমান;
  • কোনও চূড়ান্ত বৈশিষ্ট্যগুলির তালিকা নেই, এবং ক্লায়েন্টরা তাদের পণ্যগুলিতে নতুন বৈশিষ্ট্য যুক্ত করতে সক্ষম।

যদি তা হয় তবে সম্পূর্ণ পণ্য-বৈশিষ্ট্য সারণী তৈরি করা গণনা ব্যয়বহুল হতে পারে। এবং চূড়ান্ত ডেটা টেবিল চূড়ান্তভাবে বিরল হবে।

প্রথম পদক্ষেপটি গ্রাহকদের (পণ্যগুলি) তালিকার সাথে সংযোগের তালিকা তৈরি করে। আসুন একটি দ্বিপক্ষীয় গ্রাফ তৈরি করুন, যেখানে বিক্রেতারা টাইপ -1 নোডের হবে এবং ক্রেতারা টাইপ -2 নোড হবে। নীচের স্কেচের মতো প্রতিবারের মতো কোনও বিক্রেতার এবং ক্রেতার মধ্যে তারা অনুরূপ পণ্য বৈশিষ্ট্যটি উল্লেখ করে:

চিত্রলেখ

উপরের গ্রাফটি ব্যবহার করে প্রতিটি অনন্য বিক্রেতার পণ্যের জন্য আপনি কেবল সেই ক্রেতাকেই বেছে নিতে পারেন যারা পণ্যের সাথে মেলে এমন বৈশিষ্ট্যগুলিতে আগ্রহী ( কমপক্ষে একটি সাধারণ বৈশিষ্ট্য ফিল্টার করা , বৈশিষ্ট্যের পুরো সেটটি মেলানো বা একটি থ্রেশহোল্ড স্তর নির্ধারণ করা সম্ভব)। তবে অবশ্যই, এটি যথেষ্ট নয়। পরবর্তী পদক্ষেপটি বৈশিষ্ট্য মানগুলি তুলনা করা হয়, যেমন বিক্রেতা এবং ক্রেতার দ্বারা বর্ণিত। প্রচুর বৈকল্পিক রয়েছে (উদাঃ, কে-নিকটবর্তী-প্রতিবেশী)। তবে বিদ্যমান গ্রাফটি ব্যবহার করে কেন এই প্রশ্নটি সমাধান করার চেষ্টা করবেন না? আসুন প্রান্তগুলিতে ওজন যুক্ত করুন:

  • অবিচ্ছিন্ন বৈশিষ্ট্যগুলির জন্য (উদাঃ মূল্য):

    price_weight

  • বাইনারি এবং অ-কোয়ান্টিফায়েবল বৈশিষ্ট্যগুলির জন্য - কেবলমাত্র যৌক্তিক দ্বি-শর্ত:

    feature_weight

এখানে মূল ধারণাটি হ'ল ব্যবধানে প্রতিটি বৈশিষ্ট্য স্কেল করা[0, 1] । অতিরিক্তভাবে, আমরা সর্বাধিক গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি নির্ধারণ করতে বৈশিষ্ট্য সহগগুলি ব্যবহার করতে পারি। উদাহরণস্বরূপ, ধরে নেওয়া মূল্য কিছু বিরল ফাংশনের প্রাপ্যতার চেয়ে দ্বিগুণ গুরুত্বপূর্ণ:

adj_w_1

adj_w_2

চূড়ান্ত পদক্ষেপগুলির মধ্যে একটি গ্রাফের কাঠামোকে সহজ করে তোলা এবং প্রতিটি বৈশিষ্ট্যের আগের গণনা করা ওজনের যোগফলের সমান ওজন সহ অনেক প্রান্তকে এক প্রান্তে হ্রাস করা। এই জাতীয় হ্রাস কাঠামোর সাথে প্রতিটি জুড়ে গ্রাহক / পণ্যাদির কেবল একটি কিনারা থাকতে পারে (কোনও সমান্তরাল প্রান্ত নেই)। সুতরাং, সঠিক বিক্রেতার সেরা সন্ধানের জন্য আপনাকে সর্বাধিক ওজনযুক্ত প্রান্তযুক্ত সংযুক্ত ক্রেতাদের নির্বাচন করতে হবে।

ভবিষ্যতের চ্যালেঞ্জ: প্রথম ধাপে প্রান্তগুলি ওজন করার জন্য একটি সস্তা পদ্ধতি প্রবর্তন করুন :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.