Model deep neural network

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.

Gambar yang menyoroti 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 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\).

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

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.

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

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.

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

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