গভীর নিউরাল নেটওয়ার্ক মডেল

এম্বেডিং শিখতে কিভাবে ম্যাট্রিক্স ফ্যাক্টরাইজেশন ব্যবহার করতে হয় তা পূর্ববর্তী বিভাগে আপনাকে দেখিয়েছে। ম্যাট্রিক্স ফ্যাক্টরাইজেশনের কিছু সীমাবদ্ধতা অন্তর্ভুক্ত:

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

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

সুপারিশের জন্য Softmax DNN

একটি সম্ভাব্য DNN মডেল হল softmax , যা সমস্যাটিকে একটি মাল্টিক্লাস পূর্বাভাস সমস্যা হিসাবে বিবেচনা করে যার মধ্যে:

  • ইনপুট হল ব্যবহারকারীর প্রশ্ন।
  • আউটপুট হল একটি সম্ভাব্যতা ভেক্টর যার আকার কর্পাসের আইটেমের সংখ্যার সমান, যা প্রতিটি আইটেমের সাথে ইন্টারঅ্যাক্ট করার সম্ভাবনার প্রতিনিধিত্ব করে; উদাহরণস্বরূপ, একটি YouTube ভিডিওতে ক্লিক করার বা দেখার সম্ভাবনা।

ইনপুট

একটি DNN ইনপুট অন্তর্ভুক্ত করতে পারে:

  • ঘন বৈশিষ্ট্য (উদাহরণস্বরূপ, শেষ ঘড়ি থেকে দেখার সময় এবং সময়)
  • বিক্ষিপ্ত বৈশিষ্ট্য (উদাহরণস্বরূপ, দেখার ইতিহাস এবং দেশ)

ম্যাট্রিক্স ফ্যাক্টরাইজেশন পদ্ধতির বিপরীতে, আপনি বয়স বা দেশের মতো পার্শ্ব বৈশিষ্ট্যগুলি যোগ করতে পারেন। আমরা ইনপুট ভেক্টরকে x দ্বারা চিহ্নিত করব।

একটি সফ্টম্যাক্স গভীর নিউরাল নেটওয়ার্কে ইনপুট স্তরকে হাইলাইট করা ছবি৷
চিত্র 1. ইনপুট স্তর, x।

মডেল আর্কিটেকচার

মডেল আর্কিটেকচার মডেলের জটিলতা এবং অভিব্যক্তি নির্ধারণ করে। লুকানো স্তর এবং নন-লিনিয়ার অ্যাক্টিভেশন ফাংশন যুক্ত করে (উদাহরণস্বরূপ, ReLU), মডেলটি ডেটাতে আরও জটিল সম্পর্ক ক্যাপচার করতে পারে। যাইহোক, প্যারামিটারের সংখ্যা বৃদ্ধির ফলে মডেলটিকে প্রশিক্ষণ দেওয়া আরও কঠিন এবং পরিবেশন করা আরও ব্যয়বহুল হয়ে ওঠে। আমরা \(\psi (x) \in \mathbb R^d\)দ্বারা শেষ লুকানো স্তরের আউটপুট নির্দেশ করব।

একটি সফ্টম্যাক্স গভীর নিউরাল নেটওয়ার্কে লুকানো স্তরগুলিকে হাইলাইট করা চিত্র৷
চিত্র 2. লুকানো স্তরগুলির আউটপুট, \(\psi (x)\)।

Softmax আউটপুট: পূর্বাভাসিত সম্ভাব্যতা বিতরণ

মডেলটি শেষ স্তরের আউটপুট ম্যাপ করে, \(\psi (x)\), একটি softmax স্তরের মাধ্যমে একটি সম্ভাব্যতা বন্টন \(\hat p = h(\psi(x) V^T)\), যেখানে:

  • \(h : \mathbb R^n \to \mathbb R^n\) হল softmax ফাংশন, \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)দ্বারা প্রদত্ত
  • \(V \in \mathbb R^{n \times d}\) হল সফটম্যাক্স স্তরের ওজনের ম্যাট্রিক্স।

সফটম্যাক্স লেয়ার স্কোর \(y \in \mathbb R^n\)(কখনও কখনও logits বলা হয়) এর একটি ভেক্টরকে সম্ভাব্যতা বণ্টনে ম্যাপ করে।

একটি সফ্টম্যাক্স গভীর নিউরাল নেটওয়ার্কে একটি পূর্বাভাসিত সম্ভাব্যতা বন্টন দেখানো চিত্র
চিত্র 3. পূর্বাভাসিত সম্ভাব্যতা বন্টন, \(\hat p = h(\psi(x) V^T)\)।

ক্ষতি ফাংশন

অবশেষে, একটি ক্ষতি ফাংশন সংজ্ঞায়িত করুন যা নিম্নলিখিতগুলির তুলনা করে:

  • \(\hat p\), সফটম্যাক্স স্তরের আউটপুট (একটি সম্ভাব্যতা বন্টন)
  • \(p\), গ্রাউন্ড ট্রুথ, ব্যবহারকারী যে আইটেমগুলির সাথে ইন্টারঅ্যাক্ট করেছে (উদাহরণস্বরূপ, ইউটিউব ভিডিওগুলি ব্যবহারকারী ক্লিক করেছে বা দেখেছে)। এটি একটি স্বাভাবিক মাল্টি-হট ডিস্ট্রিবিউশন (একটি সম্ভাব্যতা ভেক্টর) হিসাবে উপস্থাপন করা যেতে পারে।

উদাহরণস্বরূপ, আপনি ক্রস-এনট্রপি লস ব্যবহার করতে পারেন যেহেতু আপনি দুটি সম্ভাব্যতা বন্টন তুলনা করছেন।

একটি সফ্টম্যাক্স গভীর নিউরাল নেটওয়ার্কে লস ফাংশন দেখানো চিত্র
চিত্র 4. ক্ষতি ফাংশন.

সফটম্যাক্স এমবেডিংস

l10n-placeholder15 আইটেমের সম্ভাব্যতা l10n\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\) \(j\) দ্বারা দেওয়া হয়, যেখানে \(Z\) হল একটি স্বাভাবিককরণ ধ্রুবক যা \(j\)এর উপর নির্ভর করে না।

অন্য কথায়, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), তাই একটি আইটেমের লগ সম্ভাব্যতা \(j\) হল (একটি সংযোজন ধ্রুবক পর্যন্ত) দুটি \(d\)-মাত্রিক ভেক্টরের ডট প্রোডাক্ট, যা ক্যোয়ারী এবং আইটেম এম্বেডিং হিসাবে ব্যাখ্যা করা যেতে পারে:

  • \(\psi(x) \in \mathbb R^d\) হল শেষ লুকানো স্তরের আউটপুট। আমরা এটিকে \(x\)কোয়েরির এমবেডিং বলি।
  • \(V_j \in \mathbb R^d\) হল ওজনের ভেক্টর যা শেষ লুকানো স্তরটিকে আউটপুট j এর সাথে সংযুক্ত করে। আমরা এটিকে \(j\)আইটেমের এমবেডিং বলি।
একটি সফটম্যাক্স গভীর নিউরাল নেটওয়ার্কে এমবেডিং দেখানো ছবি
চিত্র 5. \(j\), \(V_j \in \mathbb R^d\) placeholder31 আইটেমের এমবেডিং

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

সফ্টম্যাক্স মডেল এবং ম্যাট্রিক্স ফ্যাক্টরাইজেশন মডেল উভয় ক্ষেত্রে, সিস্টেম l10n-placeholder33 আইটেম প্রতি একটি এমবেডিং ভেক্টর\(V_j\) \(j\)। ম্যাট্রিক্স ফ্যাক্টরাইজেশনে আমরা আইটেম এমবেডিং ম্যাট্রিক্স \(V \in \mathbb R^{n \times d}\) যাকে বলেছি তা এখন সফটম্যাক্স স্তরের ওজনের ম্যাট্রিক্স।

ক্যোয়ারী এমবেডিং, যাইহোক, ভিন্ন. \(U_i\) \(i\)পরিবর্তে, সিস্টেমটি কোয়েরি বৈশিষ্ট্য \(x\) থেকে একটি এমবেডিং \(\psi(x) \in \mathbb R^d\)এ একটি ম্যাপিং শেখে। অতএব, আপনি এই DNN মডেলটিকে ম্যাট্রিক্স ফ্যাক্টরাইজেশনের একটি সাধারণীকরণ হিসাবে ভাবতে পারেন, যেখানে আপনি একটি ননলাইনার ফাংশন \(\psi(\cdot)\)দ্বারা ক্যোয়ারী পাশ প্রতিস্থাপন করেন।

আপনি আইটেম বৈশিষ্ট্য ব্যবহার করতে পারেন?

আপনি আইটেম দিকে একই ধারণা প্রয়োগ করতে পারেন? অর্থাৎ, আইটেম প্রতি একটি এম্বেডিং শেখার পরিবর্তে, মডেলটি কি একটি ননলাইনার ফাংশন শিখতে পারে যা একটি এমবেডিংয়ে আইটেম বৈশিষ্ট্যগুলিকে মানচিত্র করে? হ্যাঁ. এটি করার জন্য, একটি দুই-টাওয়ার নিউরাল নেটওয়ার্ক ব্যবহার করুন, যা দুটি নিউরাল নেটওয়ার্ক নিয়ে গঠিত:

  • একটি নিউরাল নেটওয়ার্ক ম্যাপ ক্যোয়ারী\(x_{\text{query}}\) এম্বেডিং\(\psi(x_{\text{query}}) \in \mathbb R^d\)ক্যোয়ারী করে
  • একটি নিউরাল নেটওয়ার্ক ম্যাপ আইটেম বৈশিষ্ট্য\(x_{\text{item}}\) থেকে আইটেম এম্বেডিং\(\phi(x_{\text{item}}) \in \mathbb R^d\)

মডেলের আউটপুট\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\)এর ডট পণ্য হিসাবে সংজ্ঞায়িত করা যেতে পারে। মনে রাখবেন এটি আর সফটম্যাক্স মডেল নয়। নতুন মডেল l10n-placeholder46 প্রতিটি প্রশ্নের জন্য সম্ভাব্যতা ভেক্টরের পরিবর্তে প্রতি জোড়া \((x_{\text{query}}, x_{\text{item}})\)\(x_{\text{query}}\)একটি মান ভবিষ্যদ্বাণী করে।