Apakah masuk akal untuk mengukur daya ingat dalam sistem rekomendasi?

8

Asumsikan saya telah membangun sistem pemberi rekomendasi yang (misalnya memberi peringkat film atau apa pun dari banyak pengguna) akan menghasilkan daftar 10 film yang direkomendasikan untuk ditonton oleh setiap pengguna. Bayangkan bahwa saya juga memiliki sejumlah besar item film, bersama dengan log peringkat pengguna bersama dengan film yang mereka putuskan untuk tonton. Jadi saya ingin menggunakan kumpulan data ini untuk mengevaluasi sistem saya.

Saya telah melihat dalam literatur bahwa tugas-tugas "menyarankan beberapa item bagus" ini biasanya dievaluasi menggunakan ketepatan, daya ingat dan skor-F1 (mis. Lihat [1] ). Saya kira saya harus tertarik, khususnya, pada "presisi pada 10". Namun saya tidak begitu yakin bagaimana seseorang harus menghitung langkah-langkah ini (atau jika mereka masuk akal) dalam skenario yang saya jelaskan di atas.

Tampaknya, hal yang disukai untuk dilakukan adalah memecah sampel secara acak menjadi bagian "pelatihan" dan "pengujian". Dan kemudian memberi makan data pelatihan ke algoritma saya sehingga dapat muncul dengan daftar 10 prediksi.

Sekarang presisi agak masuk akal, saya dapat memeriksa dari 10 prediksi berapa banyak dari ini sebenarnya ditemukan di film yang ditonton oleh pengguna dalam data pengujian.

Namun untuk diingat, jika pengguna menonton banyak film dalam data pengujian, katakan 50 atau lebih; tidak ada cara untuk mendapatkan skor recall "baik", hanya karena sistem saya dibatasi untuk menghasilkan hanya 10 film dan saya akan mendapatkan paling banyak 1/5 = 0,2 dari recall.

Atau, jika saya membatasi tes hanya untuk menebak "10 tontonan berikutnya" film pengguna (sehingga ada kesempatan untuk mendapatkan "recall sempurna"), maka presisi dan recall akan selalu persis angka yang sama (jika nomor yang disarankan dan jumlah yang relevan untuk pengguna adalah sama, presisi dan daya ingat juga selalu sama).

Apakah saya melakukan sesuatu yang salah? Atau metrik ini tidak masuk akal dalam skenario yang dipertimbangkan?

Juan A. Navarro
sumber

Jawaban:

7

Dalam hal sistem rekomendasi "top-N", akan sangat membantu untuk membangun set data uji "tidak bias" (misalnya dengan menambahkan ribuan film yang tidak ditonton / tidak diacak secara acak ke daftar film yang ditonton dari set data ketidaksepakatan untuk pengguna tertentu. ), dan kemudian mencetak set data uji yang dihasilkan menggunakan model. Setelah itu dilakukan untuk sekelompok pengguna, seseorang kemudian dapat menghitung kurva "precision vs recall" dan kurva "recall-at-N vs N" (serta sensitivitas / spesifisitas dan kurva pengangkatan) yang dapat digunakan untuk menilai kualitas dari model yang diberikan. Makalah ini, Kinerja Algoritma Recommender pada Tugas Rekomendasi Top-N oleh Cremonesi et al., Memiliki rincian lebih lanjut.

Jika model yang diberikan mencakup dinamika waktu maka pemisahan antara pelatihan dan tes harus dilakukan sepanjang dimensi waktu (tidak sepenuhnya secara acak)

Yevgeny
sumber
broken link is
ldmtwo
0

Sebagian besar penarikan waktu tidak menghasilkan hasil yang dapat dievaluasi secara absolut. Anda harus menggunakan nilai recall untuk mengevaluasi satu algoritma sehubungan dengan yang lain.

Jika suatu algoritma A memiliki nilai penarikan 0,2 (seperti dalam contoh Anda), sulit untuk menafsirkan apa arti nilai ini. Namun, jika algoritma lain B memiliki nilai penarikan 0,15 (diberikan pengaturan eksperimental yang sama) maka Anda dapat menyimpulkan bahwa algoritma A memiliki kinerja yang lebih baik daripada algoritma B sehubungan dengan mengingat.

Mean Absolute Error (MAE) tidak seperti ini, bisa diartikan dengan sendirinya.

Sanyo Mn
sumber