Model Jaringan Neural Dalam

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.

Gambar yang menandai lapisan input di jaringan neural dalam softmax
Gambar 1. Lapisan input, 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\).

Gambar yang menandai lapisan tersembunyi di jaringan neural dalam yang lunak
Gambar 2. Output lapisan tersembunyi, \(\psi (x)\).

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.

Gambar yang menampilkan perkiraan distribusi probabilitas dalam jaringan neural dalam softmax
Gambar 3. Distribusi probabilitas yang diprediksi, \(\hat p = h(\psi(x) V^T)\).

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.

Gambar yang menampilkan fungsi kerugian di jaringan neural dalam softmax
Gambar 4. Fungsi kerugian.

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\).
Gambar yang menampilkan penyematan di jaringan neural dalam yang bersifat softmax
Gambar 5. Penyematan item \(j\), \(V_j \in \mathbb R^d\)

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}}\).