Sistem rekomendasi dinamis

14

Sebuah Sistem Recommender akan mengukur korelasi antara peringkat dari pengguna yang berbeda dan rekomendasi hasil untuk pengguna tertentu tentang item yang mungkin menarik baginya.

Namun, selera berubah dari waktu ke waktu sehingga peringkat lama mungkin tidak mencerminkan preferensi saat ini dan sebaliknya. Anda mungkin pernah menempatkan "luar biasa" pada sebuah buku yang sekarang Anda nilai "tidak terlalu menjijikkan" dan seterusnya. Selain itu, minat itu sendiri berubah juga.

Bagaimana seharusnya sistem rekomendasi bekerja di lingkungan yang berubah?

  1. Salah satu opsi adalah memotong peringkat "lama", yang mungkin berfungsi dengan baik dengan asumsi Anda mendefinisikan "lama" dengan benar (Anda bahkan dapat mengatakan peringkat tidak pernah kedaluwarsa dan berpura-pura bahwa masalahnya tidak ada). Tapi itu bukan pilihan terbaik: tentu saja selera berevolusi, ini adalah aliran kehidupan yang normal, dan tidak ada alasan mengapa kita tidak bisa menggunakan pengetahuan ekstra dari penilaian yang pernah benar di masa lalu.
  2. Pilihan lain adalah untuk mengakomodasi pengetahuan tambahan ini. Dengan demikian kami tidak bisa hanya menemukan "pertandingan instan" untuk minat Anda saat ini tetapi menyarankan Anda hal-hal yang mungkin Anda sukai selanjutnya (sebagai lawan dari hal-hal yang mungkin Anda sukai sekarang ).

Saya tidak yakin apakah saya menjelaskan ini dengan cukup baik. Pada dasarnya saya mendukung pendekatan kedua dan saya berbicara tentang Sistem Rekomendasi yang akan mengukur korelasi lintasan rasa dan menghasilkan rekomendasi yang akan memenuhi .. well, sebut saja pertumbuhan pribadi - karena mereka akan datang dari orang-orang yang "lintasan selera" (dan bukan hanya "rasanya snapshot") mirip dengan lintasan Anda.

Sekarang pertanyaannya: Saya ingin tahu apakah sesuatu yang mirip dengan "opsi 2" sudah ada dan, jika ya, saya bertanya-tanya bagaimana cara kerjanya. Dan jika itu tidak ada, Anda dapat mendiskusikan bagaimana cara kerjanya! :)

andreister
sumber

Jawaban:

8

Saya sangat merekomendasikan makalah Penyaringan kolaboratif dengan dinamika temporal oleh Yehuda Koren (Kontes Netflix!) Di mana masalah ini dibahas secara rinci.

Saya setuju dengan penulis, bahwa opsi pertama ("memotong") bukan cara untuk pergi. Memang benar bahwa preferensi lama diabaikan dengan cara itu, tetapi a) beberapa preferensi tidak pernah berubah, maka seseorang membunuh data untuk mengidentifikasi pepohonan dan b) beberapa preferensi di masa lalu diperlukan untuk memahami preferensi masa depan ( mis. beli musim 1 -> Anda cenderung membeli musim 2).

Namun, Koren tidak mencoba mengidentifikasi lintasan semacam itu secara eksplisit (yaitu agar seseorang dapat memprediksi perubahan perilaku pengguna di masa mendatang), karena ini tugas yang sangat sulit. Anda dapat membayangkan ini dengan mengingatnya, bahwa "stasiun" preferensi di sepanjang lintasan TIDAK terikat waktu, tetapi untuk pengembangan pribadi pengguna, mungkin terganggu atau dilintasi oleh lintasan lain atau diekspresikan hanya dengan cara yang berbeda. Misalnya jika seseorang bergerak dari film aksi keras ke film aksi, tidak ada yang namanya "entri film aksi lunak" yang pasti atau sesuatu seperti itu. Pengguna dapat memasuki area ini kapan saja (dalam waktu dan ruang item). Masalah ini dikombinasikan dengan jarangnya data membuatnya hampir tidak mungkin untuk membuat model yang layak di sini.

Alih-alih, Koren mencoba memisahkan data masa lalu menjadi sinyal pola jangka panjang dan kebisingan harian untuk meningkatkan efektivitas prediksi peringkat. Dia menerapkan pendekatan ini untuk SVD dan model neigborbood kolaboratif sederhana. Sayangnya, saya belum selesai dengan matematika, jadi saya tidak bisa memberikan rincian lebih lanjut tentang ini.

Catatan tambahan tentang pemodelan eksplisit lintasan

Area Sequence Mining menyediakan metode yang harus dilakukan, tetapi titik kritisnya adalah menemukan representasi abstrak yang cocok dari item (karena menggunakan item itu sendiri tidak akan berfungsi karena jarang), misalnya mengelompokkan ke dalam tag. Namun, sementara pendekatan ini dapat memberikan beberapa wawasan tentang perilaku beberapa pengguna (Data Mining!) Mungkin tidak relevan ketika datang ke aplikasi untuk semua pelanggan (yaitu massa), sehingga pemodelan tersirat seperti yang disarankan oleh Koren mungkin lebih baik pada akhirnya.

steffen
sumber
Kertas Yehuda sangat dekat dengan apa yang saya bicarakan, meskipun memang dia tidak berbicara tentang "lintasan rasa". Mungkin Anda benar dan "tingkat perubahan rasa" tidak tetap untuk siapa pun .. Terima kasih atas tautannya!
andreister
Ya, ini adalah hal pertama yang saya pikirkan.
Stumpy Joe Pete
2

Saya tidak mengetahui sistem kerja, tetapi tidak akan terkejut jika Amazon, NetFlix atau seseorang memiliki sistem seperti itu. Bahkan mesin pencari Google mungkin memiliki jenis sistem yang serupa.

Saya memikirkan hal ini ketika mengambil kursus Dr. Ng semester lalu. Pendekatan pertama yang saya pikir akan optimal adalah dengan menambahkan faktor bobot berdasarkan usia. Semakin banyak data saat ini, semakin berat akan ditimbang. Pendekatan ini akan relatif sederhana dan murah untuk diimplementasikan secara komputasi.

Namun, setelah memikirkan pendekatan ini dengan lebih hati-hati saya pikir ini memiliki kelemahan serius untuk banyak aplikasi. Secara pribadi, saya akan sering mengikuti genre atau pertunjukan untuk beberapa waktu, bosan, beralih ke yang lain, tetapi kembali ke genre asli nanti. Siklus kehabisan tenaga dan menyalakan kembali ini juga muncul di masyarakat.

Karena itu, saya condong ke arah sistem yang sedikit lebih rumit. Data perlu dibagi menjadi dua set; data saat ini - ambang batas akan perlu bervariasi tergantung pada aplikasi ditambah panjang interaksi individu - yang akan lebih berat dan data "historis" yang akan dinilai lebih rendah dengan penurunan nilai yang lambat dari waktu ke waktu. Kedua, faktor akan dimasukkan untuk mencoba mendeteksi "mematikan" di mana minat atau keterlibatan yang berat tiba-tiba menghilang. Data "saat ini" yang diklasifikasikan serupa akan direklasifikasi seolah-olah itu historis.

Tidak satu pun dari pendekatan ini yang memiliki kekakuan atau validasi, tetapi saya percaya akan ada gunanya membangun beberapa uji coba hipotesis.


sumber
Ide Anda tentang bobot yang lebih rendah untuk data lama mirip dengan "opsi 1" sebenarnya. Sebagai gantinya, saya mengatakan bahwa seluruh lintasan perubahan rasa penting - yaitu, jika kemarin Anda menyukai genre A dan hari ini Anda menyukai genre B, sistem akan melihat orang lain dengan "AB- ??" yang sama. selera bergerak dan menyarankan bahwa besok Anda ingin genre C.
andreister
1

Seperti yang saya lihat, versi modifikasi dari filter kolaboratif dapat bekerja. Namun, Anda perlu menyimpan stempel waktu pada setiap peringkat, dan mengajukan penalti sambil menghitung bobot peringkat yang lebih tua.

vonPetrushev
sumber