Pelatihan softmax

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

Data pelatihan

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

Gambar yang menyoroti pelatihan jaringan neural dalam softmax

Sampling negatif

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

Anda dapat menyiapkan sistem untuk menghitung gradien hanya pada item positif (item yang aktif di vektor kebenaran dasar). Namun, jika sistem hanya dilatih dengan pasangan positif, model mungkin mengalami yang dijelaskan di bawah ini.

Layanan melipat
Gambar bidang yang telah dilipat menjadi dua yang menunjukkan 3 kelompok kotak berbeda yang mewakili kueri, dan lingkaran yang mewakili 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. Hanya setiap kueri (diwakili sebagai persegi) kebanyakan berinteraksi dengan item (diwakili sebagai lingkaran) dari warna yang sama. Misalnya, pertimbangkan setiap kategori sebagai bahasa yang berbeda di YouTube. Pengguna umumnya akan berinteraksi dengan video dalam satu bahasa tertentu.

Model ini bisa mempelajari cara menempatkan kueri/item embedding dari warna relatif satu sama lain (dengan benar menangkap kesamaan di dalamnya warna), tetapi embedding dari warna yang berbeda bisa saja berakhir di region yang sama dari ruang embedding, secara kebetulan. Fenomena ini, dikenal sebagai folding, dapat menyebabkan rekomendasi palsu: pada waktu kueri, model mungkin salah memprediksi skor tinggi untuk item dari kelompok yang berbeda.

Contoh negatif adalah item berlabel "tidak relevan" pada kueri tertentu. Menampilkan contoh negatif model selama pelatihan mengajarkan model yang embedding dari grup yang berbeda harus didorong dari satu sama lain.

Alih-alih menggunakan semua item untuk menghitung gradien (yang bisa terlalu mahal) atau hanya menggunakan item positif (yang membuat model rentan terhadap lipat), Anda dapat menggunakan sampling negatif. Lebih tepatnya, Anda menghitung perkiraan gradien, menggunakan item berikut:

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

Ada beberapa strategi yang berbeda untuk negatif sampel:

  • Anda dapat mengambil sampel secara seragam.
  • Anda dapat memberikan probabilitas yang lebih tinggi untuk item j dengan skor \(\psi(x) . V_j\). Secara intuitif, ini adalah contoh-contoh yang paling berkontribusi pada gradien); contoh-contoh ini sering yang disebut {i>hard negative<i}.

Tentang faktorisasi matriks versus softmax

Model DNN memecahkan banyak batasan Faktorisasi Matriks, tetapi biasanya biaya untuk melatih dan menjalankan kueri. Tabel di bawah ini merangkum beberapa perbedaan penting antara kedua model.

Faktorisasi Matriks DNN Softmax
Fitur kueri Tidak mudah disertakan. Dapat disertakan.
Cold start Tidak mudah menangani kosakata yang salah kueri atau item. Beberapa heuristik dapat digunakan (misalnya, untuk kueri baru, rata-rata embedding kueri serupa). Menangani kueri baru dengan mudah.
Layanan melipat Perangkat foldable dapat dikurangi dengan mudah dengan menyesuaikan bobot yang tidak diamati di WALS. Ringan untuk dilipat. Perlu menggunakan seperti sampling negatif atau gravitasi.
Melatih skalabilitas Mudah diskalakan ke sangat besar corpora (mungkin ratusan juta item atau lebih), tetapi hanya jika matriks input renggang. Lebih sulit untuk diskalakan ke sangat besar korpora. Beberapa teknik dapat digunakan, seperti {i>hashing<i}, sampling negatif, dll.
Skalabilitas penayangan Embedding U dan V statis, dan serangkaian kandidat dapat dihitung sebelumnya dan disimpan. Penyematan item V bersifat statis dan dapat disimpan.

Penyematan kueri biasanya perlu dihitung pada waktu kueri, sehingga model menjadi lebih mahal untuk yang diperlukan.

Rangkuman:

  • Faktorisasi matriks biasanya merupakan pilihan yang lebih baik untuk korpora besar. Lebih mudah diskalakan, lebih murah untuk membuat kueri, dan tidak terlalu rentan terhadap lipatan.
  • Model DNN dapat menangkap preferensi yang dipersonalisasi dengan lebih baik, tetapi lebih sulit untuk dilatih dan lebih mahal untuk membuat kueri. Model DNN lebih disukai ke faktorisasi matriks untuk penskoran, karena model DNN dapat menggunakan lebih banyak fitur untuk menangkap relevansi dengan lebih baik. Selain itu, biasanya masih dapat diterima oleh model DNN untuk dilipat, karena Anda sangat memperhatikan memeringkatkan kumpulan kandidat yang telah difilter dan diasumsikan relevan.