Bagian sebelumnya menunjukkan cara menggunakan faktorisasi matriks untuk mempelajari penyematan. 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 Colab pertama, item populer cenderung direkomendasikan untuk semua orang, terutama saat menggunakan produk titik sebagai ukuran kesamaan. Sebaiknya tarik minat pengguna tertentu.
Model jaringan neural dalam (DNN) dapat mengatasi batasan faktorisasi matriks ini. DNN dapat dengan mudah menggabungkan fitur kueri dan fitur item (karena fleksibilitas lapisan input jaringan), yang dapat membantu menangkap minat spesifik pengguna dan meningkatkan relevansi rekomendasi.
Softmax DNN untuk Rekomendasi
Salah satu model DNN yang memungkinkan adalah softmax, yang memperlakukan masalah sebagai masalah prediksi multiclass, yang:
- Inputnya adalah kueri pengguna.
- Outputnya adalah vektor probabilitas dengan ukuran yang sama dengan jumlah item di korpus, yang mewakili probabilitas untuk berinteraksi dengan setiap item; misalnya, probabilitas untuk mengklik atau menonton video YouTube.
Input
Input ke DNN dapat mencakup:
- fitur padat (misalnya, waktu tonton dan waktu sejak terakhir kali ditonton)
- fitur renggang (misalnya, histori tontonan dan negara)
Tidak seperti pendekatan faktorisasi matriks, Anda dapat menambahkan fitur samping seperti usia atau negara. Kita akan menandai 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 dapat menangkap hubungan yang lebih kompleks dalam data. Namun, meningkatkan jumlah parameter juga biasanya membuat model lebih sulit dilatih dan lebih mahal untuk ditayangkan. Kita akan menunjukkan output lapisan tersembunyi terakhir oleh \(\psi (x) \in \mathbb R^d\).
Output Softmax: Prediksi Distribusi Probabilitas
Model memetakan output lapisan terakhir, \(\psi (x)\), melalui lapisan softmax ke distribusi probabilitas \(\hat p = h(\psi(x) V^T)\), dengan:
- \(h : \mathbb R^n \to \mathbb R^n\) adalah fungsi softmax, yang diberikan oleh \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
- \(V \in \mathbb R^{n \times d}\) adalah matriks bobot lapisan softmax.
Lapisan softmax memetakan vektor skor \(y \in \mathbb R^n\) (terkadang disebut logits) untuk distribusi probabilitas.
Fungsi Hilang
Terakhir, tentukan fungsi kerugian yang membandingkan hal berikut:
- \(\hat p\), output lapisan softmax (distribusi probabilitas)
- \(p\), kebenaran dasar, mewakili item yang berinteraksi dengan pengguna (misalnya, video YouTube yang diklik atau ditonton pengguna). Hal ini dapat direpresentasikan sebagai distribusi multi-hot yang dinormalkan (vektor probabilitas).
Misalnya, Anda dapat menggunakan kerugian lintas-entropi 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)\), sehingga probabilitas log sebuah item \(j\) adalah (hingga konstanta aditif) produk titik dari dua vektor \(d\)dimensi, yang dapat ditafsirkan sebagai kueri dan penyematan item:
- \(\psi(x) \in \mathbb R^d\) adalah output dari lapisan tersembunyi terakhir. Kami menyebutnya penyematan kueri \(x\).
- \(V_j \in \mathbb R^d\) adalah vektor bobot yang menghubungkan lapisan tersembunyi terakhir ke output j. Kami menyebutnya penyematan item \(j\).
Faktorisasi DNN dan Matriks
Dalam model softmax dan model faktorisasi matriks, sistem mempelajari satu vektor penyematan\(V_j\) per item \(j\). Yang kami sebut matriks penyematan item \(V \in \mathbb R^{n \times d}\) dalam faktorisasi matriks sekarang menjadi matriks bobot lapisan softmax.
Namun, sematan kueri berbeda. Sistem mempelajari pemetaan dari fitur kueri \(x\) ke penyematan \(\psi(x) \in \mathbb R^d\), bukan mempelajari satu penyematan \(U_i\) per kueri \(i\). Oleh karena itu, Anda dapat menganggap model DNN ini sebagai Generalisasi Faktor matriks, yang memungkinkan Anda mengganti sisi kueri dengan fungsi nonlinear \(\psi(\cdot)\).
Dapatkah Anda Menggunakan Fitur Item?
Dapatkah Anda menerapkan ide yang sama ke sisi item? Artinya, bukan mempelajari satu penyematan per item, dapatkah model mempelajari fungsi non-linear yang memetakan fitur item ke penyematan? Ya. Untuk melakukannya, gunakan jaringan neural dua menara, 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 jaringan neural memetakan fitur item\(x_{\text{item}}\) ke penyematan item \(\phi(x_{\text{item}}) \in \mathbb R^d\)
Output model dapat ditentukan sebagai produk titik dari\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Perhatikan bahwa ini bukan model softmax lagi. Model baru memprediksi satu nilai per pasangan \((x_{\text{query}}, x_{\text{item}})\), bukan vektor probabilitas untuk setiap kueri \(x_{\text{query}}\).