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

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

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

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

সুপারিশের জন্য 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. ক্ষতি ফাংশন.

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

আইটেমের সম্ভাবনা \(j\) দ্বারা দেওয়া হয়\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), কোথায় \(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\)

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

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

ক্যোয়ারী এমবেডিং, যাইহোক, ভিন্ন. পরিবর্তে এক এমবেডিং শেখার \(U_i\) প্রশ্ন প্রতি \(i\), সিস্টেম ক্যোয়ারী বৈশিষ্ট্য থেকে একটি ম্যাপিং শেখে \(x\) একটি এমবেডিং করতে \(\psi(x) \in \mathbb R^d\). অতএব, আপনি এই ডিএনএন মডেলটিকে ম্যাট্রিক্স ফ্যাক্টরাইজেশনের একটি সাধারণীকরণ হিসাবে ভাবতে পারেন, যেখানে আপনি একটি ননলাইনার ফাংশন দ্বারা ক্যোয়ারী পাশ প্রতিস্থাপন করেন \(\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\). মনে রাখবেন এটি আর সফটম্যাক্স মডেল নয়। নতুন মডেল প্রতি জোড়া একটি মান ভবিষ্যদ্বাণী করে \((x_{\text{query}}, x_{\text{item}})\)প্রতিটি প্রশ্নের জন্য সম্ভাব্যতা ভেক্টরের পরিবর্তে \(x_{\text{query}}\).

,

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

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

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

সুপারিশের জন্য 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. ক্ষতি ফাংশন.

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

আইটেমের সম্ভাবনা \(j\) দ্বারা দেওয়া হয়\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), কোথায় \(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\)

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

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

ক্যোয়ারী এমবেডিং, যাইহোক, ভিন্ন. পরিবর্তে এক এমবেডিং শেখার \(U_i\) প্রশ্ন প্রতি \(i\), সিস্টেম ক্যোয়ারী বৈশিষ্ট্য থেকে একটি ম্যাপিং শেখে \(x\) একটি এমবেডিং করতে \(\psi(x) \in \mathbb R^d\). অতএব, আপনি এই ডিএনএন মডেলটিকে ম্যাট্রিক্স ফ্যাক্টরাইজেশনের একটি সাধারণীকরণ হিসাবে ভাবতে পারেন, যেখানে আপনি একটি ননলাইনার ফাংশন দ্বারা ক্যোয়ারী পাশ প্রতিস্থাপন করেন \(\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\). মনে রাখবেন এটি আর সফটম্যাক্স মডেল নয়। নতুন মডেল প্রতি জোড়া একটি মান ভবিষ্যদ্বাণী করে \((x_{\text{query}}, x_{\text{item}})\)প্রতিটি প্রশ্নের জন্য সম্ভাব্যতা ভেক্টরের পরিবর্তে \(x_{\text{query}}\).

,

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

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

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

সুপারিশের জন্য 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. ক্ষতি ফাংশন.

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

আইটেমের সম্ভাবনা \(j\) দ্বারা দেওয়া হয়\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), কোথায় \(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\)

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

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

ক্যোয়ারী এমবেডিং, যাইহোক, ভিন্ন. পরিবর্তে এক এমবেডিং শেখার \(U_i\) প্রশ্ন প্রতি \(i\), সিস্টেম ক্যোয়ারী বৈশিষ্ট্য থেকে একটি ম্যাপিং শেখে \(x\) একটি এমবেডিং করতে \(\psi(x) \in \mathbb R^d\). অতএব, আপনি এই ডিএনএন মডেলটিকে ম্যাট্রিক্স ফ্যাক্টরাইজেশনের একটি সাধারণীকরণ হিসাবে ভাবতে পারেন, যেখানে আপনি একটি ননলাইনার ফাংশন দ্বারা ক্যোয়ারী পাশ প্রতিস্থাপন করেন \(\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\). মনে রাখবেন এটি আর সফটম্যাক্স মডেল নয়। নতুন মডেল প্রতি জোড়া একটি মান ভবিষ্যদ্বাণী করে \((x_{\text{query}}, x_{\text{item}})\)প্রতিটি প্রশ্নের জন্য সম্ভাব্যতা ভেক্টরের পরিবর্তে \(x_{\text{query}}\).

,

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

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

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

সুপারিশের জন্য 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. ক্ষতি ফাংশন.

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

আইটেমের সম্ভাবনা \(j\) দ্বারা দেওয়া হয়\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), কোথায় \(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\)

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

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

ক্যোয়ারী এমবেডিং, যাইহোক, ভিন্ন. পরিবর্তে এক এমবেডিং শেখার \(U_i\) প্রশ্ন প্রতি \(i\), সিস্টেম ক্যোয়ারী বৈশিষ্ট্য থেকে একটি ম্যাপিং শেখে \(x\) একটি এমবেডিং করতে \(\psi(x) \in \mathbb R^d\). অতএব, আপনি এই ডিএনএন মডেলটিকে ম্যাট্রিক্স ফ্যাক্টরাইজেশনের একটি সাধারণীকরণ হিসাবে ভাবতে পারেন, যেখানে আপনি একটি ননলাইনার ফাংশন দ্বারা ক্যোয়ারী পাশ প্রতিস্থাপন করেন \(\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\). মনে রাখবেন এটি আর সফটম্যাক্স মডেল নয়। নতুন মডেল প্রতি জোড়া একটি মান ভবিষ্যদ্বাণী করে \((x_{\text{query}}, x_{\text{item}})\)প্রতিটি প্রশ্নের জন্য সম্ভাব্যতা ভেক্টরের পরিবর্তে \(x_{\text{query}}\).