কীভাবে মেশিন লার্নিং অনুসন্ধান ইঞ্জিন ডিজাইনে অন্তর্ভুক্ত করা হয়?


15

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

সুতরাং আমি যা করার পরিকল্পনা করছি তা হল অনুসন্ধান ফলাফল পৃষ্ঠায় একটি ছোট সম্পর্কিত / প্রাসঙ্গিক লিঙ্ক যুক্ত করা যাতে ব্যবহারকারীরা ফলাফলটি প্রথম স্থানে অন্তর্ভুক্ত করা উচিত ছিল কিনা তাদের ধারণার উপর নির্ভর করে তাদের মধ্যে একটিতে ক্লিক করতে পারেন।

আমার ধারণা

  1. এই সম্পর্কিত / প্রাসঙ্গিক নয় লেবেল হিসাবে বিবেচনা করুন এবং একটি প্রশিক্ষণ ডেটা তৈরি করুন।
  2. শ্রেণিবদ্ধকারীকে প্রশিক্ষণের জন্য এই ডেটা ব্যবহার করুন (যেমন এসভিএম)
  3. এই মডেলটিকে অনুসন্ধান ইঞ্জিনে অন্তর্ভুক্ত করুন অর্থাৎ প্রতিটি নতুন ফলাফল শ্রেণিবদ্ধের মধ্য দিয়ে যাবে এবং এটি প্রাসঙ্গিক কিনা তা নিয়ে একটি লেবেল অর্পণ করা হবে।

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

  1. আমার সমস্ত বৈশিষ্ট্যগুলি কী এক্সট্রাক্ট করা উচিত?
  2. সার্চ ইঞ্জিনে মেশিন লার্নিং উপাদানটি সংহত করার জন্য আরও ভাল উপায় আছে কি? আমার চূড়ান্ত লক্ষ্য হ'ল ব্যবসায়ের যুক্তি পাশাপাশি ব্যবহারকারীর প্রতিক্রিয়া উভয়ের উপর ভিত্তি করে র্যাঙ্কিং ফাংশন "শিখুন"।

4
আমি এই জাতীয় কিছু একবার করেছি এবং ব্যবহারকারীরা এটি ঘৃণা করেছিল তাই আমি এটি বন্ধ করে দিয়েছি। সমস্যাটি ছিল ব্যবহারকারীর আচরণ। ব্যবহারকারীরা তাদের পদ পরিবর্তন করে অনুসন্ধানের ফলাফলগুলির দুর্বলতার সাথে খাপ খাইয়ে নিয়েছিল এবং তারপরে তারা সেই পদগুলি পুনরায় ব্যবহার করতে থাকবে। সিস্টেম আইটেমের র‌্যাঙ্কিং সামঞ্জস্য করে প্রতিক্রিয়া জানায় এবং এই পছন্দসই পদগুলি বিভিন্ন ফলাফল তৈরি করতে শুরু করে। এটি ব্যবহারকারীদের বন্ধ করে দিয়েছে। শেখার অর্থ এটি
বুদ্ধিমান নয়

এখানে একটি বাস্তবায়ন elasticsearch এবং angularjs ব্যবহার করছে - - এছাড়াও ব্যাখ্যা রয়েছে আপনার প্রয়োজনীয় machinelearningblogs.com/2016/12/12/...
বিবেক Kalyanarangan

উত্তর:


15

(1) আমার সমস্ত বৈশিষ্ট্যগুলি কী কী নিষ্কাশন করা উচিত?

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

র‌্যাঙ্কে শেখার ক্ষেত্রে স্ট্যান্ডার্ড পদ্ধতিটি হ'ল বিভিন্ন অনুসন্ধান ইঞ্জিন সেটআপগুলির বিরুদ্ধে ক্যোয়ারি চালানো (যেমন tf-idf, BM-25, ইত্যাদি) এবং তারপরে একটি সাদৃশ্য স্কোরগুলিতে একটি মডেলকে প্রশিক্ষণ দেওয়া, তবে একটি ছোট, ডোমেন-নির্দিষ্ট এসই এর জন্য, আপনার যেমন বৈশিষ্ট্য থাকতে পারে

  • প্রতিটি টার্মের জন্য, এমন একটি বুলিয়ান যা নির্দেশ করে যে শব্দটি ক্যোয়ারী এবং দস্তাবেজ উভয় ক্ষেত্রেই রয়েছে কিনা। অথবা সম্ভবত কোনও বুলিয়ান নয়, তবে ডকুমেন্টে আসলে ঘটে যাওয়া সেই ক্যোয়ারী পদগুলির tf-idf ওজন।
  • জ্যাকার্ড বা তানিমোটোর মতো বিভিন্ন ওভারল্যাপ মেট্রিক ।

(২) সার্চ ইঞ্জিনে মেশিন লার্নিং উপাদানকে সংহত করার জন্য আরও ভাল উপায় কি হতে পারে? আমার চূড়ান্ত লক্ষ্য হ'ল ব্যবসায়ের যুক্তি পাশাপাশি ব্যবহারকারীর প্রতিক্রিয়া উভয়ের উপর ভিত্তি করে র্যাঙ্কিং ফাংশন "শিখুন"।

এটি একটি বিস্তৃত প্রশ্ন এবং আপনি কতটা প্রচেষ্টা রাখতে চান তার উত্তরটি নির্ভর করে The যাতে আপনি কেবল ফিল্টারিংয়ের পরিবর্তে প্রকৃতপক্ষে র‌্যাঙ্কিং করতে পারেন। কোনও এসভিএমের জন্য, সিদ্ধান্তের ফাংশন হ'ল হাইপারপ্লেনের স্বাক্ষরিত দূরত্ব। ভাল মেশিন লার্নিং প্যাকেজগুলির মান পাওয়ার জন্য একটি ইন্টারফেস রয়েছে।

এর বাইরে, জোড়ায় এবং তালিকাভুক্ত র‌্যাঙ্কে শিখুন; আপনি যা পরামর্শ দিচ্ছেন তা হ'ল তথাকথিত পয়েন্টওয়াইজ অ্যাপ্রোচ। আইআইআরসি, জোড়ায় অনুশীলনে অনেক বেশি ভাল কাজ করে। কারণটি হ'ল জোড়যুক্ত র‌্যাঙ্কিংয়ের সাথে আপনার আরও কম ক্লিকের প্রয়োজন: ব্যবহারকারীদের নথির লেবেল প্রাসঙ্গিক / অপ্রাসঙ্গিক হিসাবে রাখার পরিবর্তে আপনি কেবল তাদের "প্রাসঙ্গিক" বোতামটি দিন। তারপরে আপনি ট্রিপলগুলিতে একটি বাইনারি শ্রেণিবদ্ধকারী (ডকুমেন্ট 1, ডকুমেন্ট 2, ক্যোয়ারী) শিখুন যা দস্তাবেজ 1 ডকুমেন্ট 2 এর চেয়ে ক্যোয়ারের সাথে আরও প্রাসঙ্গিক কিনা তা জানায় । যখন কোনও ব্যবহারকারী লেবেল করেন, বলুন, প্রাসঙ্গিক হিসাবে র‌্যাঙ্কিংয়ে 4 নথি করুন, এটি আপনাকে শিখতে ছয়টি নমুনা দেয়:

  • document4> document3
  • document4> document2
  • ডকুমেন্ট 4> ডকুমেন্ট 1
  • ডকুমেন্ট 1 <ডকুমেন্ট 4
  • ডকুমেন্ট 2 <ডকুমেন্ট 4
  • ডকুমেন্ট 3 <ডকুমেন্ট 4

সুতরাং আপনি বিনামূল্যে নেতিবাচক পেতে।

(এগুলি কেবলমাত্র পরামর্শ, আমি এগুলির কোনও চেষ্টা করি নি। আমি কেবল এমন একটি গবেষণা গ্রুপে কাজ করেছি যেখানে লোকেরা র‌্যাঙ্ক শিখতে তদন্ত করেছিল I স্লাইডগুলি সহায়ক হতে পারে))


+1 আপনাকে ধন্যবাদ। এই দ্বিতীয় বার আপনি আমাকে সাহায্য করেছেন! এটি হজম করতে কয়েক ঘন্টা সময় নিই। :)
কিংবদন্তি

4
এটি একটি দুর্দান্ত উত্তর, আমি কেবল একটি ছোটখাটো ঝাঁকুনির পরামর্শ দিতে চাই। একটি ux দৃষ্টিকোণ থেকে, আপনি "প্রাসঙ্গিক" বোতামের চেয়ে "অপ্রাসঙ্গিক" বোতামটি ব্যবহার করে ব্যবহারকারীদের ফলাফল অর্জনের সম্ভাবনা অনেক বেশি। তারা যখন সন্ধান করছে তা যখন খুঁজে পেয়েছে তখন ফলাফল স্কোর করতে কে ঘুরে বেড়ায়? সেগুলি অনেক বেশি একটি বাটন যে মত দেখাচ্ছে "সুযোগ অভিযোগ করতে" যখন তারা খুঁজে পেলাম না তারা কি, চেয়েছিলেন কারণ যে সময়ে সিস্টেম উন্নত আসলে তাদের বর্তমান লক্ষ্য সঙ্গে সংযুক্ত করা হয় আঘাত করার সম্ভাবনা বেশি।
রাশেত

4
tl; dr আপনি যদি কেবল একটি ইনপুট ব্যবহার করতে চলেছেন তবে এটিকে "অপ্রাসঙ্গিক" বানাবেন, লোকেরা হতাশ হওয়ার পরে এটি ক্লিক করার সম্ভাবনা বেশি থাকে।
রাশেত

"তালিকাবদ্ধ" পদ্ধতির কী হবে? এছাড়াও, আপনি কি নিখরচায় 3 বা 6 উদাহরণ বোঝাতে চেয়েছিলেন? (শেষ 3 টি প্রথম 3 এর পুনরাবৃত্তি বলে মনে হচ্ছে)
সর্বাধিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.