প্রস্তাবনা সিস্টেমের একটি ওভারভিউ এবং স্ক্র্যাচ থেকে কীভাবে এটি প্রয়োগ করা যায়

এই ব্লগে ইতিহাস, বর্তমান, ভবিষ্যত, এটির বিভিন্ন বিভাগ এবং পরিশেষে একটি রসিক প্রস্তাবের প্রক্রিয়া করার কোড সহ সুপারিশ সিস্টেমগুলির ওভারভিউ অন্তর্ভুক্ত রয়েছে।

আনসপ্ল্যাশে এডো নগ্রোহো ছবি

অতীত বর্তমান এবং ভবিষ্যত:

আমরা যদি সুপারিশ পদ্ধতির ইতিহাস দেখি তবে ধারণাটি 1992-2009-এর মধ্যে জ্বলজ্বল করেছিল। লোকেদের সহযোগী ফিল্টারিংয়ের বিষয়ে কথা বলার আগেই সুপারিশ সিস্টেমগুলি কল্পনা করার আগে এটি ব্যক্তিগতকরণ হিসাবে পরিচিত ছিল। কিন্তু এটি সমস্ত ম্যানুয়াল ছিল। উদাহরণস্বরূপ: একজন ট্র্যাভেল এজেন্টের সাথে যিনি জানেন যে আপনি কোনও সাফারিতে আগ্রহী তিনি যে কোনও কাজই করতে চান না এমন কিছু নয়, আপনার পছন্দ মতো ভ্রমণের জন্য তার চোখ রাখবে। দ্বিতীয় উদাহরণ হিসাবে: ব্যক্তিগত ক্রেতাদের কিছু সাধারণ ডাটাবেস ছিল যেখানে তারা নতুন পণ্য আসার সময় লোকের প্রোফাইলগুলি চালাতে পারে এবং তারা কোন নতুন পণ্যটির জন্য ভাল প্রার্থী হতে পারে তা বিবেচনা করতে পারে এমন ধারণা পেতে পারে। 2007 সালে নেটফ্লিক্স 1 মিলিয়ন ডলার একটি প্রতিযোগিতার ঘোষণা করেছে এবং এটি সুপারিশ সিস্টেমের গতিপথ পরিবর্তন করেছে। এটি প্রতিযোগিতায় অংশ নিতে বহু ব্যাকগ্রাউন্ডের লোককে আকৃষ্ট করেছিল। নতুন গাণিতিক সূত্রের সাথে নতুন অ্যালগরিদমগুলি উত্থিত হয়েছিল। নেটফ্লিক্স পুরষ্কার বিজয়ী দল দ্বারা প্রকাশিত গবেষণামূলক গবেষণামূলক গবেষণামূলক কাগজটির দিকে নজর রেখে আমি যে চমকপ্রদ গ্রন্থাগারটি কৌতুকের সুপারিশ সিস্টেম তৈরি করতে ব্যবহার করব তা পুরোপুরি বিকাশিত। আমরা যেমন প্রত্যাশা করি তবুও অনেক কিছুই রয়েছে যা আমরা জানি না। অস্থায়ী সুপারিশ সমস্যা। আমি কীভাবে আমার সুপারিশগুলিকে কেবল মৌসুমের মতো জিনিসগুলিতেই কী কী কী হিসাবে লোকেরা কিছু সময়ের জন্য কাজ করেছি বরং ক্রম অনুসারে কী করতে পারি, আপনি ইতিমধ্যে এটি গ্রাস করে রেখেছেন তার পরে আপনি কী ব্যবহার করেছেন? শিক্ষার জন্য যা একটি ক্ষেত্রের জন্য সুপারিশটি ছিল অনেক সময়কালীন বিষয় were

সুপারিশ সিস্টেমের বিস্তৃত বিভাগ:

সুপারিশ সিস্টেমের প্রধানত দুটি বিভাগ রয়েছে। 1. সহযোগী ফিল্টারিং 2. সামগ্রী ভিত্তিক ফিল্টারিং

সহযোগী ফিল্টারিং: সহযোগিতামূলক ফিল্টারিংয়ের মূলটি অতীতে যে সকল লোকেরা সম্মত হয়েছিল তারা ভবিষ্যতে সম্মত হবে এই ধারণার উপর ভিত্তি করে এবং তারা অতীতে যেমন পছন্দ করেছিল তেমন ধরণের আইটেম পছন্দ করবে। সহযোগী ফিল্টারিংয়ের তিনটি প্রধান বিভাগ হ'ল: ১. ব্যবহারকারী-ব্যবহারকারীর মিল ity আইটেম আইটেমের মিল 3.. মডেল ভিত্তিক

ব্যবহারকারী-ব্যবহারকারী এবং আইটেম-আইটেমের মিল

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

সহযোগী বনাম সামগ্রী ভিত্তিক প্রস্তাবনা

পূর্বশর্ত

1. বেসিক পাইথন 2. বেসিক পান্ডস 3. অবাক করা লাইব্রেরি অন্বেষণ করার আগ্রহ 4. কেরাস (optionচ্ছিক)

আপনি যদি সরাসরি কোডগুলিতে ঝাঁপিয়ে পড়তে চান তবে দয়া করে এই গিথুব লিঙ্কে যান এবং জুপিটার নোটবুকটি সন্ধান করুন।

আমি সমস্যাটি সমাধান করার সময় আমি অনুসরণ করা প্রতিটি বড় পদক্ষেপগুলি ব্যাখ্যা করব, তবে আমি দৃ strongly়ভাবে বিশ্বাস করি যে আপনি যদি সমস্যার সম্পূর্ণ ব্যাখ্যা করতে আগ্রহী এবং অবাক গ্রন্থাগারের ব্যবহার সম্পর্কে জানতে আগ্রহী হন তবে অবশ্যই গিটার রেপোটি একবার দেখার পরে আপনাকে অবশ্যই দেখে নিতে হবে ব্লগ।

চল শুরু করি. আমরা যে ডেটা ব্যবহার করতে যাচ্ছি সে সম্পর্কে কিছু প্রাথমিক তথ্য।

ডেটা বর্ণনা

এখন আমি সমস্যাটি হাতে এনে ধীরে ধীরে সমাধানের দিকে এগিয়ে যাওয়ার পরিকল্পনা করব move আমরা কোড স্নিপেট সহ প্রতিটি পদক্ষেপের মধ্য দিয়ে যাব। 1. ডেটা সংগ্রহ 2. ট্রেন পরীক্ষার বিভাজন 3. সাধারণ পরিসংখ্যান 4. আশ্চর্য গ্রন্থাগারের সামঞ্জস্যপূর্ণ ফর্ম্যাটের ডেটা কাঠামো 5. ত্রুটি মেট্রিকের সংজ্ঞা দেওয়া 6. বেসলাইন মডেল ব্যবহার করে 7. বিভিন্ন মডেল ব্যবহার করে দেখুন 8. ফলাফল

তথ্য সংগ্রহ

  1. ডেটাতে 3 টি এক্সেল শীট সরবরাহ করা আছে। আমরা এগুলিকে একত্রিত করব এবং একটি সংযুক্ত পাইথন পান্ডাস ডেটা ফ্রেম তৈরি করব form আমরা মোট 73421 জন ব্যবহারকারী রয়েছি।
সমস্ত ডেটা মার্জ করুন

২. ডেটাসেটের তথ্যে বর্ণিত হিসাবে রেটিং ৯৯ মানে ব্যবহারকারী যে রসিকতাটি রেট করেননি। আমরা সেই রেকর্ডগুলি সরিয়ে দেব এবং ['user_id', 'joke_id', 'রেটিং'] ফর্ম্যাটে ডেটা প্রস্তুত করব।

তথ্য প্রস্তুতি

ট্রেন পরীক্ষা বিভক্ত

আমরা সাইকিট-লার্ন ট্রেন_স্টেস্ট_স্প্লিট ব্যবহার করব এবং ডেটাগুলিকে 70-30 হিসাবে বিভক্ত করব। 70% ডেটা ট্রেনের জন্য এবং 30% পরীক্ষার জন্য উপলব্ধ থাকবে

প্রাথমিক পরিসংখ্যান

1. ব্যবহারকারী এবং প্রতি রসিকতার জন্য গড় রেটিং

সমস্ত ব্যবহারকারীর রেটিং বিতরণসমস্ত কৌতুক রেটিং বিতরণ

আশ্চর্য গ্রন্থাগারের সুসংগত বিন্যাসে স্ট্রাকচার ডেটা

আমরা অবাক করা লাইব্রেরি অনুযায়ী ডেটা গঠন করব will এটি ['ব্যবহারকারী', 'রসিকতা', 'রেটিং'] হিসাবে ফর্ম্যাটে ডেটা গ্রহণ করে। যদি আমাদের সিনেমার সুপারিশের জন্য সমস্যা হয় তবে আমরা ডেটাটি ['ব্যবহারকারী', 'চলচ্চিত্র', 'রেটিং' হিসাবে কাঠামোগত তৈরি করতাম।

আশ্চর্য গ্রন্থাগার শৈলীতে ডেটা প্রস্তুত

ত্রুটি মেট্রিক সংজ্ঞায়িত করা হচ্ছে

আমরা ত্রুটি মেট্রিক হিসাবে নরমালাইজড মিডস পরম ত্রুটি ব্যবহার করব।

নরমালাইজড মিইন পরম ত্রুটি (NAME) সূত্রএনএমএই গণনা করার কোড

বেসলাইন মডেল ব্যবহার করে

সারপ্রাইজ লাইব্রেরি দ্বারা প্রদত্ত বেসলাইন মডেলটি ব্যবহার করে আমরা একটি বেস লাইন মডেল তৈরি করব। বেসলাইন মডেল 0.2033 এনএমএই দেয়, আমরা বিস্ময়ের বিভিন্ন মডেল চেষ্টা করব এবং আরও ভাল ফলাফল পেতে সমস্ত ফলাফলকে একত্রিত করব।

বিভিন্ন মডেল চেষ্টা করুন

  1. কেএনএন বেসলাইন মডেল: এটি নতুন জোকসের জন্য ব্যবহারকারীদের রেটিং পূর্বাভাস দেওয়ার জন্য সাদৃশ্য ভিত্তিক কৌশল ব্যবহার করে। আমাদের ক্ষেত্রে এনএমএই ত্রুটি 0.196

২. ইউজারএভারেজ রেটিং, জোকএভারেজ রেটিং, বেসলাইন এবং কেএনএন বেসলাইনটির আউটপুট সম্পর্কে এক্সজিবিস্ট: হাইপার প্যারামিটার টিউনিংয়ের পরে আমরা পূর্ববর্তী বিস্ময়কর মডেলের সমস্ত আউটপুট একত্রিত করেছি এবং ডেটাতে একটি এক্সজিবি রিগ্রেশন মডেল চালিয়েছি। এখানে আমরা 0.1928 এনএমএইর কিছুটা ভাল ফলাফল পেয়েছি

৩. এসভিডি মডেল: এসভিডি মডেল ম্যাট্রিক্স সমাপ্তির সমস্যা সমাধানের জন্য ম্যাট্রিক্স ফ্যাক্টরীকরণ কৌশল ব্যবহার করে এবং রেটিংটির পূর্বাভাস দেয়।

৪. ইউজারএভারেজ রেটিং, জোকএভারেজ রেটিং, বেসলাইনের আউটপুট, কেএনএন বেসলাইন এবং এসভিডি মডেলের আউটপুট সম্পর্কে এক্সজিবিস্ট। এই মডেলটি 0.18 এনএমএই দেয় এবং এখন অবধি সেরা।

৫. বৈশিষ্ট্য ইঞ্জিনিয়ারিং সহ মডেল: মডেলটিতে তাদের প্রভাব পরীক্ষা করতে আমি দুটি সহজ বৈশিষ্ট্য পেয়েছি। একটি বৈশিষ্ট্য হ'ল ইউজার_ভেরেজ + জোক_এভিজি-গ্লোবাল_এভিজি। এই মডেলটি যথারীতি এনএমএই 20.2 হিসাবে দেয়। আমি অন্যান্য বৈশিষ্ট্য ইঞ্জিনিয়ারিং কৌশলগুলি চেষ্টা করেছিলাম। তারা খুব ভাল কাজ করেনি।

Ke. কেরাস ব্যবহার করে ডেপ লার্নিং মডেল: ফিচার ইঞ্জিনিয়ারিং যেহেতু ভাল কাজ করে নি আমি কেরাস ব্যবহার করে কিছু সাধারণ নিউরাল নেটওয়ার্ক মডেল চেষ্টা করার পরিকল্পনা করছি। আমি 3 বিভিন্ন মডেল চেষ্টা করেছি। ব্যবহারকারীর গড়, কৌতুক গড় - সমস্ত বৈশিষ্ট্যযুক্ত তবে তৃতীয় ও তৃতীয় বৈশিষ্ট্য সহ বিভিন্ন আর্কিটেকচার সহ সমস্ত বুনিয়াদি বৈশিষ্ট্যযুক্ত। একটি মডেলের 14.9% এনএমএই ছিল।

ফলাফল

আমরা দেখতে পাচ্ছি যে সেকেন্ড_এনএন মডেলটি সবচেয়ে ভাল কাজ করে কারণ এটির পরীক্ষার ত্রুটি সবচেয়ে কম।

সর্বশেষ ভাবনা

যেমনটি আমরা সবাই জানি কোনও মডেল নিখুঁত নয়। এই মডেলটির উন্নতির সুযোগ রয়েছে এবং সর্বদা থাকবে। বিভিন্ন বৈশিষ্ট্য ইঞ্জিনিয়ারিং কৌশল চেষ্টা করা হতে পারে, কিছু ডোমেন বিশেষজ্ঞের পরামর্শ এবং বিভিন্ন নিউরাল নেটওয়ার্ক আর্কিটেকচার আরও ভাল মডেলগুলির দিকে পরিচালিত করতে পারে।

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