Bagian sebelumnya menunjukkan cara menggunakan faktorisasi matriks untuk untuk mempelajari embedding. Beberapa batasan faktorisasi matriks meliputi:
- Kesulitan menggunakan fitur samping (yaitu, fitur apa pun di luar ID kueri/ID item). Akibatnya, model hanya dapat dikueri dengan pengguna atau item yang ada dalam set pelatihan.
- Relevansi rekomendasi. Seperti yang Anda lihat di materi pertama Colab, item populer cenderung direkomendasikan untuk semua orang, terutama saat menggunakan dot product sebagai ukuran kemiripan. Akan lebih baik untuk menangkap minat pengguna.
Model deep neural network (DNN) dapat mengatasi keterbatasan matriks ini faktorisasi. DNN dapat dengan mudah menggabungkan fitur kueri dan fitur item (karena fleksibilitas lapisan input jaringan), yang dapat membantu menangkap minat khusus pengguna dan meningkatkan relevansi rekomendasi.
DNN Softmax untuk rekomendasi
Salah satu model DNN yang memungkinkan adalah softmax, yang memperlakukan masalah tersebut sebagai masalah prediksi multi-class, yang:
- Inputnya adalah kueri pengguna.
- {i>Output <i}nya adalah vektor probabilitas dengan ukuran yang sama dengan jumlah item dalam korpus, yang mewakili probabilitas untuk berinteraksi dengan setiap item; misalnya, probabilitas untuk mengklik atau menonton Video YouTube.
Input
Input ke DNN dapat meliputi:
- fitur padat (misalnya, waktu tonton dan waktu sejak tonton terakhir)
- fitur yang jarang (misalnya, histori tontonan dan negara)
Tidak seperti pendekatan faktorisasi matriks, Anda dapat menambahkan fitur samping seperti usia atau negara. Kita akan menunjukkan vektor input dengan x.
Arsitektur model
Arsitektur model menentukan kompleksitas dan ekspresivitas model. Dengan menambahkan lapisan tersembunyi dan fungsi aktivasi non-linear (misalnya, ULT), model tersebut dapat menangkap hubungan yang lebih kompleks dalam data. Namun, meningkatkan jumlah parameter biasanya juga akan membuat model lebih sulit untuk dilatih dan lebih mahal untuk menyajikannya. Kita akan menunjukkan output dari lapisan oleh \(\psi (x) \in \mathbb R^d\).
Output Softmax: Distribusi Probabilitas yang Diprediksi
Model ini memetakan output lapisan terakhir, \(\psi (x)\), melalui file softmax lapisan ke distribusi probabilitas \(\hat p = h(\psi(x) V^T)\), dengan:
- \(h : \mathbb R^n \to \mathbb R^n\) adalah fungsi softmax. diberikan oleh \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
- \(V \in \mathbb R^{n \times d}\) adalah matriks bobot dari softmax.
Lapisan softmax memetakan vektor skor \(y \in \mathbb R^n\) (terkadang disebut logit) pada distribusi probabilitas.
Fungsi Kerugian
Terakhir, tentukan fungsi kerugian yang membandingkan hal berikut:
- \(\hat p\), output lapisan softmax (distribusi probabilitas)
- \(p\), kebenaran dasar, yang mewakili item yang dimiliki pengguna pengguna (misalnya, video YouTube yang diklik atau ditonton pengguna). Ini bisa direpresentasikan sebagai distribusi multi-hot yang dinormalisasi ( vektor probabilitas).
Misalnya, Anda dapat menggunakan kerugian entropi silang karena Anda membandingkan dua distribusi probabilitas.
Embedding Softmax
Probabilitas item \(j\) diberikan oleh \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), dengan \(Z\) adalah konstanta normalisasi yang tidak bergantung pada \(j\).
Dengan kata lain, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), jadi probabilitas log item \(j\) adalah (hingga konstanta penjumlahan) perkalian titik dari vektor dua \(d\)dimensi, yang dapat diartikan sebagai embedding kueri dan item:
- \(\psi(x) \in \mathbb R^d\) adalah output dari lapisan tersembunyi terakhir. Kami menyebutnya embedding kueri \(x\).
- \(V_j \in \mathbb R^d\) adalah vektor bobot yang menghubungkan lapisan tersembunyi terakhir ke output j. Kami menyebutnya embedding item \(j\).
DNN dan Faktorisasi Matriks
Dalam model softmax dan model faktorisasi matriks, sistem mempelajari satu vektor embedding \(V_j\) per item \(j\). Apa yang kami sebut matriks penyematan item \(V \in \mathbb R^{n \times d}\) dalam matriks faktorisasi sekarang menjadi matriks bobot lapisan softmax.
Namun demikian, embedding kueri berbeda. Daripada mempelajari satu penyematan \(U_i\) per kueri \(i\), sistem akan mempelajari pemetaan dari fitur kueri \(x\) ke penyematan \(\psi(x) \in \mathbb R^d\). Oleh karena itu, Anda dapat menganggap model DNN ini sebagai generalisasi matriks faktorisasi, di mana Anda mengganti sisi kueri dengan fungsi \(\psi(\cdot)\).
Dapatkah Anda Menggunakan Fitur Item?
Dapatkah Anda menerapkan ide yang sama untuk sisi item? Yaitu, alih-alih mempelajari satu embedding per item, dapatkah model mempelajari fungsi nonlinear yang memetakan fitur item ke embedding? Ya. Untuk melakukannya, gunakan menara dua menara neural, yang terdiri dari dua jaringan neural:
- Satu fitur kueri peta jaringan neural \(x_{\text{query}}\) untuk mengkueri penyematan \(\psi(x_{\text{query}}) \in \mathbb R^d\)
- Satu fitur item peta jaringan neural \(x_{\text{item}}\) ke penyematan item \(\phi(x_{\text{item}}) \in \mathbb R^d\)
Output dari model ini bisa didefinisikan sebagai perkalian titik \(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Perlu diperhatikan bahwa ini bukan lagi model softmax. Model baru ini memprediksi satu nilai per pasangan \((x_{\text{query}}, x_{\text{item}})\) sebagai ganti vektor probabilitas untuk setiap kueri \(x_{\text{query}}\).