Pelatihan Softmax

Halaman sebelumnya menjelaskan cara menggabungkan lapisan softmax ke dalam jaringan neural dalam untuk sistem rekomendasi. Halaman ini mempelajari data pelatihan sistem ini lebih lanjut.

Data Pelatihan

Data pelatihan softmax terdiri dari fitur kueri \(x\) dan vektor item yang berinteraksi dengan pengguna (diwakilikan sebagai distribusi probabilitas \(p\)). Warna tersebut ditandai dengan warna biru pada gambar berikut. Variabel model adalah bobot di lapisan yang berbeda. Nilai ini ditandai sebagai oranye pada gambar berikut. Model ini biasanya dilatih menggunakan varian penurunan gradien stokastik.

Gambar yang menyoroti pelatihan jaringan neural dalam softmax

Pengambilan Sampel Negatif

Karena fungsi kerugian membandingkan dua vektor probabilitas\(p, \hat p(x) \in \mathbb R^n\) (kebenaran dasar dan output model), menghitung gradien kerugian (untuk satu kueri \(x\)) dapat menjadi mahal jika ukuran korpus \(n\) terlalu besar.

Anda dapat menyiapkan sistem untuk menghitung gradien hanya pada item positif (item yang aktif dalam vektor kebenaran dasar). Namun, jika sistem hanya melatih pasangan positif, model dapat mengalami lipatan, seperti yang dijelaskan di bawah.

Layanan melipat
Gambar bidang yang telah dilipat menjadi dua yang menampilkan 3 kelompok kotak yang berbeda yang mewakili kueri dan lingkaran yang merepresentasikan item. Setiap grup memiliki warna yang berbeda dan kueri hanya berinteraksi dengan item dari grup yang sama. Pada gambar berikut, asumsikan bahwa setiap warna mewakili kategori kueri dan item yang berbeda. Setiap kueri (ditunjukkan sebagai persegi) hanya berinteraksi dengan item (ditunjukkan sebagai lingkaran) dengan warna yang sama. Misalnya, pertimbangkan setiap kategori sebagai bahasa yang berbeda di YouTube. Pengguna biasanya akan berinteraksi dengan video dalam satu bahasa tertentu.

Model ini dapat mempelajari cara menempatkan kueri/penyematan item dari warna tertentu yang relatif satu sama lain (yang menangkap kemiripan dengan benar dalam warna tersebut), tetapi secara kebetulan, penyematan dari warna yang berbeda dapat berakhir di area ruang penyematan yang sama. Fenomena ini, yang dikenal sebagai lipatan, dapat menyebabkan rekomendasi palsu: pada waktu kueri, model mungkin salah memprediksi skor tinggi untuk item dari grup yang berbeda.

Contoh negatif adalah item yang berlabel "tidak relevan" terhadap kueri tertentu. Menampilkan contoh negatif model selama pelatihan mengajarkan model bahwa penyematan grup yang berbeda harus saling mendorong satu sama lain.

Daripada menggunakan semua item untuk menghitung gradien (yang mungkin terlalu mahal) atau hanya menggunakan item positif (yang membuat model rentan terhadap lipat), Anda dapat menggunakan pengambilan sampel negatif. Lebih tepatnya, Anda menghitung perkiraan gradien, menggunakan item berikut:

  • Semua item positif (item yang muncul di label target)
  • Contoh item negatif (\(j\) in \({1, …, n}\))

Ada berbagai strategi untuk mengambil sampel negatif:

  • Anda dapat mengambil sampel secara seragam.
  • Anda dapat memberi probabilitas yang lebih tinggi untuk item j dengan skor yang lebih tinggi \(\psi(x) . V_j\). Secara intuitif, ini adalah contoh yang paling berkontribusi pada gradien); contoh ini sering disebut sebagai negatif negatif.

Pada Faktorisasi Matriks Vs. Softmax

Model DNN menyelesaikan banyak batasan Faktor Matriks, tetapi biasanya lebih mahal untuk dilatih dan dibuat kueri. Tabel di bawah ini meringkas beberapa perbedaan penting antara kedua model tersebut.

Faktorisasi Matriks DNN Softmax
Fitur kueri Tidak mudah disertakan. Dapat disertakan.
Cold start Tidak mudah menangani item atau kueri kosakata. Beberapa heuristik dapat digunakan (misalnya untuk kueri baru, penyematan rata-rata kueri serupa). Menangani kueri baru dengan mudah.
Layanan melipat Perangkat foldable dapat dengan mudah dikurangi dengan menyesuaikan bobot yang tidak teramati di WALS. Tertarik untuk melipat. Perlu menggunakan teknik seperti pengambilan sampel negatif atau gravitasi.
Skalabilitas Pelatihan Mudah diskalakan hingga korpora berukuran sangat besar (mungkin ratusan juta item atau lebih), tetapi hanya jika matriks input renggang. Sulit untuk menskalakan ke korpora yang sangat besar. Beberapa teknik dapat digunakan, seperti hashing, pengambilan sampel negatif, dll.
Skalabilitas penayangan Penyematan U, V bersifat statis, dan kumpulan kandidat dapat dihitung sebelumnya dan disimpan. Penyematan item V bersifat statis dan dapat disimpan.

Penyematan kueri biasanya perlu dihitung pada waktu kueri, sehingga model lebih mahal untuk ditayangkan.

Ringkasan:

  • Faktorisasi matriks biasanya merupakan pilihan yang lebih baik untuk korpora besar. Lebih mudah untuk menskalakan, lebih murah untuk dikueri, dan tidak terlalu rentan untuk dilipat.
  • Model DNN dapat menangkap preferensi yang dipersonalisasi dengan lebih baik, tetapi lebih sulit untuk dilatih dan lebih mahal untuk kueri. Model DNN lebih disarankan untuk faktorisasi matriks untuk penskoran karena model DNN dapat menggunakan lebih banyak fitur untuk menangkap relevansi dengan lebih baik. Selain itu, model DNN biasanya dapat diterima untuk dilipat, karena Anda paling peduli tentang pemberian peringkat kumpulan kandidat yang telah difilter yang dianggap relevan.