Dalam praktiknya, apa yang dilakukan orang dengan nilai-nilai yang hilang dari matriks rekomendasi, yang merupakan inti dari melakukan perhitungan? Tebakan saya dari membaca posting blog Simon adalah bahwa ia HANYA menggunakan istilah yang tidak ada untuk membangun sebuah model.
Itu benar - itulah gunanya model Anda dan Anda, untuk memprediksi istilah yang hilang, bukan? Ini adalah poin penting yang banyak dilupakan. Mereka pikir mereka hanya bisa "berasumsi" untuk menetapkan sebelumnya konstanta untuk data yang hilang tanpa perhatian di dunia, dan hal-hal ajaib akan bekerja dengan cukup baik dari SVD. Sampah, sampah: Ini nyata, dan Anda sebaiknya menontonnya. Anda sebaiknya tidak memberi makan data sampah ke model jika Anda ingin sesuatu yang bermanfaat dihasilkan.
Tentunya BUKAN "terbaik untuk menyimpulkan nilai-nilai yang hilang" pada dataset mayoritas jarang dan kemudian jalankan SVD pada itu dengan beberapa harapan untuk menyalahkan nilai-nilai untuk Anda (yang Anda sudah diperhitungkan sebelum Anda menjalankan SVD, kan?). Bagaimana menurut Anda, seorang model adalah sihir? Tidak ada keajaiban atau teknologi untuk mengatasi sebagian besar data sampah. Anda tidak bisa berbohong pada model bahwa data adalah data nyata ketika itu tidak nyata sama sekali, tetapi sebenarnya hanya sampah yang Anda buat dari udara tipis.
SVD melakukan hal-hal berguna lainnya jadi saya tentu tidak mengatakan SVD tidak berguna sama sekali. Maju dan gunakan SVD hanya pada set data lengkap, mungkin Anda telah secara cerdas memperhitungkan nilai-nilai yang hilang karena sudah menggunakan model pembelajaran mesin dengan semua perhatian pada kesalahan bias dan kesalahan varians selama pengembangannya.
Pembelajaran mesin adalah caranya. Jadi, jika Anda masih ingin tahu bagaimana menyalahkan nilai menggunakan desain faktorisasi matriks, tentu ada cara yang baik untuk melakukan hal ini dengan menggunakan pembelajaran mesin, dan yang penting mereka tidak memasukkan data sampah ke model untuk mencoba belajar dari hal-hal yang sia-sia.
Model faktorisasi matriks pembelajaran mesin seperti itu disajikan dengan cukup baik oleh instruktur kursus online Penambangan Set Data Masif Stanford, dalam modul 5. Mereka menunjukkan matematika dan menjelaskan modelnya. Mereka tidak mengkodekannya untuk Anda.
Tidak apa-apa karena Anda dapat membuat kode sendiri, jika Anda memahami pembelajaran mesin dasar. Apakah Anda tahu apa fungsi kerugian dan fungsi biaya? Regularisasi? Keturunan gradien? APAKAH Anda OK dengan perkalian dan penambahan matriks? Kesalahan bias dan kesalahan varians? Jika demikian maka Anda baik. Jika tidak maka Anda harus mempertimbangkan untuk mengambil kursus pembelajaran online Andrew Ng di Coursera, yang merupakan salah satu dari banyak tempat awal yang baik. Kemudian ikuti kursus online Mining Massive Data Sets yang membahas tentang faktorisasi matriks dan pembelajaran mesin untuk membuat model yang direkomendasikan.
Cukuplah untuk mengatakan, Anda dapat benar-benar mendesain dan membuat kode model faktorisasi Anda sendiri yang menangani data yang hilang dengan sangat baik, seperti yang dilakukan Simon Funk, dan Anda dapat melakukannya dari awal tetapi tidak sulit sama sekali seperti itu kembali pada zamannya, karena sekarang Anda dapat menggunakan alat seperti TensorFlow atau Microsoft CNTK yang banyak membantu Anda. Tentukan fungsi kerugian dan fungsi biaya, pilih pengoptimal, pisahkan dataset Anda ke dalam pelatihan, dev, uji dari data yang sebenarnya tersedia (data berlabel) dan biarkan berjalan. Serius, ini berhasil. Tidak mudah men-debug TF dan kesalahan pembuatan grafiknya, tetapi pada akhirnya dapat bekerja dengan baik dan membutuhkan kurang dari satu halaman kode.
Secara khusus, salah satu cara untuk tidak memasukkan data palsu ke model pembelajaran mesin faktorisasi matriks, adalah dengan melompati elemen matriks data yang hilang dalam fungsi kerugian dan biaya Anda .