Matriks Factorization Model untuk sistem rekomendasi bagaimana menentukan jumlah fitur laten?

8

Saya mencoba merancang teknik faktorisasi matriks untuk pengguna-item sederhana, sistem rekomendasi rating. Saya punya 2 pertanyaan tentang ini.

Pertama dalam implementasi sederhana yang saya lihat dari teknik faktorisasi matriks untuk rekomendasi film, penulis baru saja menginisialisasi dimensi fitur laten, sebut saja K dari dua fitur laten Pengguna dan item Matriks, ke beberapa konstanta K katakanlah 2 dan karenanya masing-masing dari matriks fitur latennya P dan Q adalah NXK dan MXK di mana R adalah matriks peringkat item pengguna asli yang kami coba perkiraan dengan dimensi NXM (pengguna N dan item M). Jadi pertanyaan saya adalah bagaimana cara menentukan 'K' (jumlah fitur laten) yang optimal dalam hal ini alih-alih hanya menyetelnya ke beberapa konstanta?

Juga apakah ada cara untuk memasukkan informasi pengguna atau item yang sudah saya miliki dalam set data saya, seperti peringkat rata-rata pengguna tertentu, jenis kelamin pengguna, user_lokasi dll ke dalam hasil faktorisasi matriks ini sambil membuat rekomendasi akhir saya (saya kira mungkin model campuran dengan informasi pengguna dan item yang diwakili dalam beberapa model penyaringan berbasis konten bersama dengan model faktorisasi matriks saya akan bekerja?).

1> Pertanyaan pertama saya adalah bagaimana menentukan jumlah fitur laten yang optimal K 2> apakah ada yang tahu literatur terbaru yang menerapkan model campuran faktorisasi matriks dan penyaringan berbasis konten (karena saya kira itu akan menjadi satu-satunya cara untuk mewakili informasi demografis pengguna dan item dalam ruang fitur umum.)

pengguna1009091
sumber

Jawaban:

3

Menanggapi pertanyaan pertama Anda, validasi silang adalah pendekatan yang banyak digunakan. Salah satu skema yang mungkin adalah sebagai berikut.

Untuk setiap nilai K dalam rentang yang dipilih sebelumnya, gunakan validasi silang untuk memperkirakan kinerja model (mis. Akurasi prediksi). Ini akan memberikan satu perkiraan metrik kinerja model per nilai-k. Kemudian, pilih k yang sesuai dengan kinerja tertinggi.

Menanggapi pertanyaan kedua Anda, saya akan melihat contoh-contoh 'pendekatan hybrid' misalnya di http://www.stanford.edu/~abhijeet/papers/cs345areport.pdf

joel38237
sumber
0

Untuk menjawab pertanyaan pertama Anda, saya akan melakukan validasi silang, dan untuk pertanyaan kedua, saya akan mengatakan Anda harus melihat faktorisasi tensor. Jika Anda memiliki representasi data multi-dimensi, Anda mungkin dapat mempertimbangkan faktorisasi tensor yang memungkinkan Anda untuk bermain dengan beberapa data tambahan sebagai dimensi lain.

Anda dapat memeriksa tautan berikut untuk itu.

https://github.com/kuleshov/tensor-factorization
mgokhanbakal
sumber