بخش قبل به شما نشان داد که چگونه از فاکتورسازی ماتریس برای یادگیری جاسازی استفاده کنید. برخی از محدودیت های فاکتورسازی ماتریس عبارتند از:
- دشواری استفاده از ویژگی های جانبی (یعنی هر ویژگی فراتر از شناسه درخواست/شناسه مورد). در نتیجه، مدل را فقط می توان با یک کاربر یا آیتم موجود در مجموعه آموزشی پرس و جو کرد.
- ارتباط توصیه ها موارد پرطرفدار معمولاً برای همه توصیه میشوند، بهویژه زمانی که از محصول نقطهای به عنوان معیار تشابه استفاده میشود. بهتر است علایق کاربران خاص را به دست آورید.
مدلهای شبکه عصبی عمیق (DNN) میتوانند این محدودیتهای فاکتورسازی ماتریس را برطرف کنند. DNN ها به راحتی می توانند ویژگی های پرس و جو و ویژگی های آیتم را (به دلیل انعطاف پذیری لایه ورودی شبکه) ترکیب کنند، که می تواند به جذب علایق خاص کاربر و بهبود ارتباط توصیه ها کمک کند.
Softmax DNN برای توصیه
یکی از مدلهای احتمالی DNN softmax است که مشکل را به عنوان یک مسئله پیشبینی چند کلاسه در نظر میگیرد که در آن:
- ورودی کوئری کاربر است.
- خروجی یک بردار احتمال با اندازه برابر با تعداد آیتم های موجود در مجموعه است که نشان دهنده احتمال تعامل با هر آیتم است. به عنوان مثال، احتمال کلیک کردن یا تماشای یک ویدیوی YouTube.
ورودی
ورودی DNN می تواند شامل موارد زیر باشد:
- ویژگی های متراکم (به عنوان مثال، زمان تماشا و زمان از آخرین تماشا)
- ویژگیهای پراکنده (به عنوان مثال، تاریخچه تماشا و کشور)
برخلاف رویکرد فاکتورسازی ماتریسی، میتوانید ویژگیهای جانبی مانند سن یا کشور را اضافه کنید. بردار ورودی را با x نشان می دهیم.
معماری مدل
معماری مدل پیچیدگی و بیان مدل را تعیین می کند. با افزودن لایههای پنهان و توابع فعالسازی غیرخطی (مثلا ReLU)، مدل میتواند روابط پیچیدهتری را در دادهها ثبت کند. با این حال، افزایش تعداد پارامترها معمولاً آموزش مدل را سختتر و سرویس دهی را گرانتر میکند. خروجی آخرین لایه پنهان را با علامت گذاری می کنیم \(\psi (x) \in \mathbb R^d\).
خروجی 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}\) ماتریس وزن لایه softmax است.
لایه softmax بردار امتیازات را ترسیم می کند \(y \in \mathbb R^n\)(گاهی اوقات logits نامیده می شود) به یک توزیع احتمال.
عملکرد از دست دادن
در نهایت یک تابع ضرر تعریف کنید که موارد زیر را با هم مقایسه کند:
- \(\hat p\)، خروجی لایه سافت مکس (یک توزیع احتمال)
- \(p\)، حقیقت اصلی، نشان دهنده مواردی است که کاربر با آنها تعامل داشته است (به عنوان مثال، ویدیوهای YouTube که کاربر روی آنها کلیک یا تماشا کرده است). این را می توان به عنوان یک توزیع چند گرم نرمال شده (بردار احتمال) نشان داد.
به عنوان مثال، شما می توانید از تلفات آنتروپی متقاطع استفاده کنید زیرا دو توزیع احتمال را با هم مقایسه می کنید.
جاسازی های سافت مکس
احتمال آیتم \(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\).
DNN و فاکتورسازی ماتریس
در هر دو مدل سافت مکس و مدل فاکتورسازی ماتریسی، سیستم یک بردار تعبیه شده را یاد می گیرد.\(V_j\) در هر مورد \(j\). آنچه را ماتریس جاسازی آیتم نامیدیم \(V \in \mathbb R^{n \times d}\) در فاکتورسازی ماتریس اکنون ماتریس وزن های لایه softmax است.
با این حال، جاسازی های پرس و جو متفاوت است. به جای یادگیری یک جاسازی \(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\). توجه داشته باشید که این دیگر یک مدل softmax نیست. مدل جدید یک مقدار را برای هر جفت پیش بینی می کند \((x_{\text{query}}, x_{\text{item}})\)به جای بردار احتمال برای هر پرس و جو \(x_{\text{query}}\).
،بخش قبل به شما نشان داد که چگونه از فاکتورسازی ماتریس برای یادگیری جاسازی استفاده کنید. برخی از محدودیت های فاکتورسازی ماتریس عبارتند از:
- دشواری استفاده از ویژگی های جانبی (یعنی هر ویژگی فراتر از شناسه درخواست/شناسه مورد). در نتیجه، مدل را فقط می توان با یک کاربر یا آیتم موجود در مجموعه آموزشی پرس و جو کرد.
- ارتباط توصیه ها موارد پرطرفدار معمولاً برای همه توصیه میشوند، بهویژه زمانی که از محصول نقطهای به عنوان معیار تشابه استفاده میشود. بهتر است علایق کاربران خاص را به دست آورید.
مدلهای شبکه عصبی عمیق (DNN) میتوانند این محدودیتهای فاکتورسازی ماتریس را برطرف کنند. DNN ها به راحتی می توانند ویژگی های پرس و جو و ویژگی های آیتم را (به دلیل انعطاف پذیری لایه ورودی شبکه) ترکیب کنند، که می تواند به جذب علایق خاص کاربر و بهبود ارتباط توصیه ها کمک کند.
Softmax DNN برای توصیه
یکی از مدلهای احتمالی DNN softmax است که مشکل را به عنوان یک مسئله پیشبینی چند کلاسه در نظر میگیرد که در آن:
- ورودی کوئری کاربر است.
- خروجی یک بردار احتمال با اندازه برابر با تعداد آیتم های موجود در مجموعه است که نشان دهنده احتمال تعامل با هر آیتم است. به عنوان مثال، احتمال کلیک کردن یا تماشای یک ویدیوی YouTube.
ورودی
ورودی DNN می تواند شامل موارد زیر باشد:
- ویژگی های متراکم (به عنوان مثال، زمان تماشا و زمان از آخرین تماشا)
- ویژگیهای پراکنده (به عنوان مثال، تاریخچه تماشا و کشور)
برخلاف رویکرد فاکتورسازی ماتریسی، میتوانید ویژگیهای جانبی مانند سن یا کشور را اضافه کنید. بردار ورودی را با x نشان می دهیم.
معماری مدل
معماری مدل پیچیدگی و بیان مدل را تعیین می کند. با افزودن لایههای پنهان و توابع فعالسازی غیرخطی (مثلا ReLU)، مدل میتواند روابط پیچیدهتری را در دادهها ثبت کند. با این حال، افزایش تعداد پارامترها معمولاً آموزش مدل را سختتر و سرویس دهی را گرانتر میکند. خروجی آخرین لایه پنهان را با علامت گذاری می کنیم \(\psi (x) \in \mathbb R^d\).
خروجی 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}\) ماتریس وزن لایه softmax است.
لایه softmax بردار امتیازات را ترسیم می کند \(y \in \mathbb R^n\)(گاهی اوقات logits نامیده می شود) به یک توزیع احتمال.
عملکرد از دست دادن
در نهایت یک تابع ضرر تعریف کنید که موارد زیر را با هم مقایسه کند:
- \(\hat p\)، خروجی لایه سافت مکس (یک توزیع احتمال)
- \(p\)، حقیقت اصلی، نشان دهنده مواردی است که کاربر با آنها تعامل داشته است (به عنوان مثال، ویدیوهای YouTube که کاربر روی آنها کلیک یا تماشا کرده است). این را می توان به عنوان یک توزیع چند گرم نرمال شده (بردار احتمال) نشان داد.
به عنوان مثال، شما می توانید از تلفات آنتروپی متقاطع استفاده کنید زیرا دو توزیع احتمال را با هم مقایسه می کنید.
جاسازی های سافت مکس
احتمال آیتم \(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\).
DNN و فاکتورسازی ماتریس
در هر دو مدل سافت مکس و مدل فاکتورسازی ماتریسی، سیستم یک بردار تعبیه شده را یاد می گیرد.\(V_j\) در هر مورد \(j\). آنچه را ماتریس جاسازی آیتم نامیدیم \(V \in \mathbb R^{n \times d}\) در فاکتورسازی ماتریس اکنون ماتریس وزن های لایه softmax است.
با این حال، جاسازی های پرس و جو متفاوت است. به جای یادگیری یک جاسازی \(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\). توجه داشته باشید که این دیگر یک مدل softmax نیست. مدل جدید یک مقدار را برای هر جفت پیش بینی می کند \((x_{\text{query}}, x_{\text{item}})\)به جای بردار احتمال برای هر پرس و جو \(x_{\text{query}}\).
،بخش قبل به شما نشان داد که چگونه از فاکتورسازی ماتریس برای یادگیری جاسازی استفاده کنید. برخی از محدودیت های فاکتورسازی ماتریس عبارتند از:
- دشواری استفاده از ویژگی های جانبی (یعنی هر ویژگی فراتر از شناسه درخواست/شناسه مورد). در نتیجه، مدل را فقط می توان با یک کاربر یا آیتم موجود در مجموعه آموزشی پرس و جو کرد.
- ارتباط توصیه ها موارد پرطرفدار معمولاً برای همه توصیه میشوند، بهویژه زمانی که از محصول نقطهای به عنوان معیار تشابه استفاده میشود. بهتر است علایق کاربران خاص را به دست آورید.
مدلهای شبکه عصبی عمیق (DNN) میتوانند این محدودیتهای فاکتورسازی ماتریس را برطرف کنند. DNN ها به راحتی می توانند ویژگی های پرس و جو و ویژگی های آیتم را (به دلیل انعطاف پذیری لایه ورودی شبکه) ترکیب کنند، که می تواند به جذب علایق خاص کاربر و بهبود ارتباط توصیه ها کمک کند.
Softmax DNN برای توصیه
یکی از مدلهای احتمالی DNN softmax است که مشکل را به عنوان یک مسئله پیشبینی چند کلاسه در نظر میگیرد که در آن:
- ورودی پرس و جو کاربر است.
- خروجی یک بردار احتمال با اندازه برابر با تعداد آیتم های موجود در مجموعه است که نشان دهنده احتمال تعامل با هر آیتم است. به عنوان مثال، احتمال کلیک کردن یا تماشای یک ویدیوی YouTube.
ورودی
ورودی DNN می تواند شامل موارد زیر باشد:
- ویژگی های متراکم (به عنوان مثال، زمان تماشا و زمان از آخرین تماشا)
- ویژگیهای پراکنده (به عنوان مثال، تاریخچه تماشا و کشور)
برخلاف رویکرد فاکتورسازی ماتریسی، میتوانید ویژگیهای جانبی مانند سن یا کشور را اضافه کنید. بردار ورودی را با x نشان می دهیم.
معماری مدل
معماری مدل پیچیدگی و بیان مدل را تعیین می کند. با افزودن لایههای پنهان و توابع فعالسازی غیرخطی (مثلا ReLU)، مدل میتواند روابط پیچیدهتری را در دادهها ثبت کند. با این حال، افزایش تعداد پارامترها معمولاً آموزش مدل را سختتر و سرویس دهی را گرانتر میکند. خروجی آخرین لایه پنهان را با علامت گذاری می کنیم \(\psi (x) \in \mathbb R^d\).
خروجی 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}\) ماتریس وزن لایه softmax است.
لایه softmax بردار امتیازات را ترسیم می کند \(y \in \mathbb R^n\)(گاهی اوقات logits نامیده می شود) به یک توزیع احتمال.
عملکرد از دست دادن
در نهایت یک تابع ضرر تعریف کنید که موارد زیر را با هم مقایسه کند:
- \(\hat p\)، خروجی لایه سافت مکس (یک توزیع احتمال)
- \(p\)، حقیقت اصلی، نشان دهنده مواردی است که کاربر با آنها تعامل داشته است (به عنوان مثال، ویدیوهای YouTube که کاربر روی آنها کلیک یا تماشا کرده است). این را می توان به عنوان یک توزیع چند گرم نرمال شده (بردار احتمال) نشان داد.
به عنوان مثال، شما می توانید از تلفات آنتروپی متقاطع استفاده کنید زیرا دو توزیع احتمال را با هم مقایسه می کنید.
جاسازی های سافت مکس
احتمال آیتم \(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\).
DNN و فاکتورسازی ماتریس
در هر دو مدل سافت مکس و مدل فاکتورسازی ماتریسی، سیستم یک بردار تعبیه شده را یاد می گیرد.\(V_j\) در هر مورد \(j\). آنچه را ماتریس جاسازی آیتم نامیدیم \(V \in \mathbb R^{n \times d}\) در فاکتورسازی ماتریس اکنون ماتریس وزن های لایه softmax است.
با این حال، جاسازی های پرس و جو متفاوت است. به جای یادگیری یک جاسازی \(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\). توجه داشته باشید که این دیگر یک مدل softmax نیست. مدل جدید یک مقدار را برای هر جفت پیش بینی می کند \((x_{\text{query}}, x_{\text{item}})\)به جای بردار احتمال برای هر پرس و جو \(x_{\text{query}}\).
،بخش قبل به شما نشان داد که چگونه از فاکتورسازی ماتریس برای یادگیری جاسازی استفاده کنید. برخی از محدودیت های فاکتورسازی ماتریس عبارتند از:
- دشواری استفاده از ویژگی های جانبی (یعنی هر ویژگی فراتر از شناسه درخواست/شناسه مورد). در نتیجه، مدل را فقط می توان با یک کاربر یا آیتم موجود در مجموعه آموزشی پرس و جو کرد.
- ارتباط توصیه ها موارد پرطرفدار معمولاً برای همه توصیه میشوند، بهویژه زمانی که از محصول نقطهای به عنوان معیار تشابه استفاده میشود. بهتر است علایق کاربران خاص را به دست آورید.
مدلهای شبکه عصبی عمیق (DNN) میتوانند این محدودیتهای فاکتورسازی ماتریس را برطرف کنند. DNN ها به راحتی می توانند ویژگی های پرس و جو و ویژگی های آیتم را (به دلیل انعطاف پذیری لایه ورودی شبکه) ترکیب کنند، که می تواند به جذب علایق خاص کاربر و بهبود ارتباط توصیه ها کمک کند.
Softmax DNN برای توصیه
یکی از مدلهای احتمالی DNN softmax است که مشکل را به عنوان یک مسئله پیشبینی چند کلاسه در نظر میگیرد که در آن:
- ورودی پرس و جو کاربر است.
- خروجی یک بردار احتمال با اندازه برابر با تعداد آیتم های موجود در مجموعه است که نشان دهنده احتمال تعامل با هر آیتم است. به عنوان مثال، احتمال کلیک کردن یا تماشای یک ویدیوی YouTube.
ورودی
ورودی DNN می تواند شامل موارد زیر باشد:
- ویژگی های متراکم (به عنوان مثال، زمان تماشا و زمان از آخرین تماشا)
- ویژگیهای پراکنده (به عنوان مثال، تاریخچه تماشا و کشور)
برخلاف رویکرد فاکتورسازی ماتریسی، میتوانید ویژگیهای جانبی مانند سن یا کشور را اضافه کنید. بردار ورودی را با x نشان می دهیم.
معماری مدل
معماری مدل پیچیدگی و بیان مدل را تعیین می کند. با افزودن لایههای پنهان و توابع فعالسازی غیرخطی (مثلا ReLU)، مدل میتواند روابط پیچیدهتری را در دادهها ثبت کند. با این حال، افزایش تعداد پارامترها معمولاً آموزش مدل را سختتر و سرویس دهی را گرانتر میکند. خروجی آخرین لایه پنهان را با علامت گذاری می کنیم \(\psi (x) \in \mathbb R^d\).
خروجی 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}\) ماتریس وزن لایه softmax است.
لایه softmax بردار امتیازات را ترسیم می کند \(y \in \mathbb R^n\)(گاهی اوقات logits نامیده می شود) به یک توزیع احتمال.
عملکرد از دست دادن
در نهایت یک تابع ضرر تعریف کنید که موارد زیر را با هم مقایسه کند:
- \(\hat p\)، خروجی لایه سافت مکس (یک توزیع احتمال)
- \(p\)، حقیقت اصلی، نشان دهنده مواردی است که کاربر با آنها تعامل داشته است (به عنوان مثال، ویدیوهای YouTube که کاربر روی آنها کلیک یا تماشا کرده است). این را می توان به عنوان یک توزیع چند گرم نرمال شده (بردار احتمال) نشان داد.
به عنوان مثال، شما می توانید از تلفات آنتروپی متقاطع استفاده کنید زیرا دو توزیع احتمال را با هم مقایسه می کنید.
جاسازی های سافت مکس
احتمال آیتم \(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\).
DNN و فاکتورسازی ماتریس
در هر دو مدل سافت مکس و مدل فاکتورسازی ماتریسی، سیستم یک بردار تعبیه شده را یاد می گیرد.\(V_j\) در هر مورد \(j\). چیزی که ما آن را ماتریس جاسازی آیتم نامیدیم \(V \in \mathbb R^{n \times d}\) در فاکتورسازی ماتریس اکنون ماتریس وزن های لایه softmax است.
با این حال، جاسازی های پرس و جو متفاوت است. به جای یادگیری یک جاسازی \(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\). توجه داشته باشید که این دیگر یک مدل softmax نیست. مدل جدید یک مقدار در هر جفت را پیش بینی می کند \((x_{\text{query}}, x_{\text{item}})\)به جای یک بردار احتمال برای هر پرس و جو \(x_{\text{query}}\).