সফটম্যাক্স প্রশিক্ষণ

পূর্ববর্তী পৃষ্ঠায় একটি সুপারিশ সিস্টেমের জন্য একটি গভীর নিউরাল নেটওয়ার্কে একটি সফটম্যাক্স স্তরকে কীভাবে অন্তর্ভুক্ত করা যায় তা ব্যাখ্যা করা হয়েছে। এই পৃষ্ঠাটি এই সিস্টেমের জন্য প্রশিক্ষণের ডেটা ঘনিষ্ঠভাবে দেখে।

প্রশিক্ষণ তথ্য

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

একটি সফ্টম্যাক্স গভীর নিউরাল নেটওয়ার্কের প্রশিক্ষণ হাইলাইট করার চিত্র

নেতিবাচক নমুনা

যেহেতু লস ফাংশন দুটি সম্ভাব্যতা ভেক্টর\(p, \hat p(x) \in \mathbb R^n\) (যথাক্রমে স্থল সত্য এবং মডেলের আউটপুট) তুলনা করে, তাই ক্ষতির গ্রেডিয়েন্ট গণনা করা (একটি প্রশ্নের জন্য \(x\)) নিষেধমূলকভাবে ব্যয়বহুল হতে পারে যদি কর্পাসের আকার \(n\) খুব বড়।

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

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

মডেলটি একে অপরের সাথে সম্পর্কিত একটি প্রদত্ত রঙের ক্যোয়ারী/আইটেম এম্বেডিংগুলি কীভাবে স্থাপন করতে হয় তা শিখতে পারে (সঠিকভাবে সেই রঙের মধ্যে সাদৃশ্য ক্যাপচার করা), তবে বিভিন্ন রঙের এম্বেডিংগুলি ঘটনাক্রমে এমবেডিং স্থানের একই অঞ্চলে শেষ হতে পারে। এই ঘটনাটি, যা ভাঁজ করা নামে পরিচিত, বানোয়াট সুপারিশের দিকে নিয়ে যেতে পারে: ক্যোয়ারী করার সময়, মডেলটি ভুলভাবে একটি ভিন্ন গ্রুপের একটি আইটেমের জন্য উচ্চ স্কোরের পূর্বাভাস দিতে পারে।

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

গ্রেডিয়েন্ট গণনা করার জন্য সমস্ত আইটেম ব্যবহার করার পরিবর্তে (যা খুব ব্যয়বহুল হতে পারে) বা শুধুমাত্র ইতিবাচক আইটেম ব্যবহার করার পরিবর্তে (যা মডেলটিকে ভাঁজ করার প্রবণ করে তোলে), আপনি নেতিবাচক নমুনা ব্যবহার করতে পারেন। আরও স্পষ্টভাবে, আপনি নিম্নলিখিত আইটেমগুলি ব্যবহার করে একটি আনুমানিক গ্রেডিয়েন্ট গণনা করেন:

  • সমস্ত ইতিবাচক আইটেম (যেগুলি লক্ষ্য লেবেলে প্রদর্শিত হয়)
  • নেতিবাচক আইটেমগুলির একটি নমুনা (\(j\) \({1, …, n}\))

নেতিবাচক নমুনা করার জন্য বিভিন্ন কৌশল রয়েছে:

  • আপনি অভিন্ন নমুনা করতে পারেন.
  • আপনি উচ্চতর স্কোর \(\psi(x) . V_j\)সহ j আইটেমগুলির উচ্চ সম্ভাবনা দিতে পারেন। স্বজ্ঞাতভাবে, এগুলি এমন উদাহরণ যা গ্রেডিয়েন্টে সবচেয়ে বেশি অবদান রাখে); এই উদাহরণগুলি প্রায়ই কঠিন নেতিবাচক বলা হয়।

ম্যাট্রিক্স ফ্যাক্টরাইজেশন বনাম সফটম্যাক্সে

DNN মডেলগুলি ম্যাট্রিক্স ফ্যাক্টরাইজেশনের অনেক সীমাবদ্ধতার সমাধান করে, কিন্তু সাধারণত প্রশিক্ষণ এবং অনুসন্ধানের জন্য বেশি ব্যয়বহুল। নীচের সারণী দুটি মডেলের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য সংক্ষিপ্ত করে।

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

ক্যোয়ারী এমবেডিং সাধারণত কোয়েরির সময় গণনা করা প্রয়োজন, মডেলটিকে পরিবেশন করা আরও ব্যয়বহুল করে তোলে।

সংক্ষেপে:

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