Collaborative filtering adalah teknik dalam sistem rekomendasi yang populer digunakan saat ini. Banyak penelitian yang membahas tentang teknik ini karena beberapa keunggulannya seperti: menghasilkan serendipity(tak terduga) item, sesuai trend market, mudah diimplementasikan dan memumgkinkan diterapkan pada beberapa domain (book, movies, music, dll).
Pengenalan sistem rekomendasi dan teknik lainnya bisa anda temukan pada artikel berikut:
- Mengenal Sistem rekomendasi,
https://blog.ariflaksito.net/2020/03/mengenal-sistem-rekomendasi.html- Sistem rekomendasi teknik content-based,
https://blog.ariflaksito.net/2020/11/membangun-sistem-rekomendasi-dengan.html- Improvisasi content-based,
https://blog.ariflaksito.net/2020/11/improvisasi%20content-based-rec-sys.html- Personalized vs Non-personalized,
https://blog.ariflaksito.net/2021/04/sistem-rekomendasi-non-personalized-vs.html
Cara kerja teknik ini adalah dengan memanfaatkan data pada komunitas dengan cara mencari kemiripan atar pengguna, yaitu mengasumsikan bahwa pengguna yang memiliki preferensi serupa di masa lalu cenderung memiliki preferensi yang sama di masa depan. Pada dasarnya kita akan lebih percaya dengan rekomendasi dari orang yang memiliki preferensi sama dengan kita, inilah dasar yang digunakan oleh collaborative filtering dalam mengenerate item rekomendasi.
Dalam menghasilkan rekomendasi, sistem perlu mengumpulkan data. Tujuan dari pengumpulan data ini adalah untuk mendapatkan ide preferensi pengguna, dimana nantinya akan dibuat suatu rekomendasi berdasarkan preferensi tersebut. Terdapat 2 cara dalam mengumpulkan data, yaitu: Implicit dan Explicit.
Explicit merupakan cara pengumpulan informasi yang membutuhkan effort dari pengguna dengan memberikan feedback terhadap sistem, seperti mengisikan rating pada item (skala 1-5 atau skala lainnya) dan memilih tombol like atau dislike. Di sisi lain, implisit tidak membutuhkan interaksi dari pengguna ke sistem. Dengan kata lain, sistem secara otomatis mempelajari behavior dari pengguna saat menggunakan sistem, seperti melakukan perekaman informasi lama waktu saat melihat item, genre/kategori apa saja yang sering dilihat dan item apa saja yang pernah dibeli. Cara explisit lebih susah diterapkan, karena tidak semua pengguna melakukan penilaian terhadap item, hal ini yang akan menyebabkan kendala pada teknik collaborative filtering karena banyaknya rating kosong.
Collaborative filtering sendiri terbagi menjadi 2 bagian, yaitu Memory-based dan Model-based. Memory-based melakukan komputasi secara real-time, sedangkan Model-based menggunakan beberapa teknik di machine learning atau matrix factorization untuk melakukan training model terlebih dahulu dan bisa dilakukan secara offline. Memory-based memiliki keunggulan dalam hal kemudahan implementasi tetapi terkendala pada ukuran matrix besar yang menyebabkan scalablity dalam perhitungan. Teknik Memory-based terbagi ke dalam 2 class, yaitu: User-based dan Item-based. Teknik lain yaitu Model-based dengan beberapa metode seperti: Matrix factorization, Neural network, Bayesian, dll akan saya bahas di artikel lain. Kali ini saya akan detail bahas untuk yang Memory-based Collaborative filtering.
Kategori collaborative filtering |
Memory-based collaborative filtering sering disebut juga dengan neighborhood-based collaborative filtering algorithms. Berikut ini penjelasan detail dari kedua class dalam Memory-based:
1. User-based collaborative filtering
Merupakan teknik yang digunakan untuk memprediksi item yang mungkin disukai pengguna berdasarkan penilaian yang diberikan pada item tersebut oleh pengguna lain yang memiliki selera yang sama dengan pengguna target. Berikut ini contoh penerapan dalam excel:
Pada matrix diatas, pengguna target adalah Arif, dimana kita akan memprediksi rating pada item_5. Tahap awal yang dilakukan adalah mencari pengguna yang memiliki preferensi sama dengan Arif. Lakukan perhitungan rata-rata rating dari setiap pengguna untuk item selain item_5, dihasilkan seperti berikut:
Kolom terakhir tersebut merupakan rata-rata dari tiap pengguna, misalkan Arif = (5+4+1+4)/4 = 3.50. Jika anda gunakan excel maka akan sangat cepat melakukan hitungan tersebut. Selanjutnya kita buat matrix baru yang berisi selisih dari rating asal dengan nilai rata-rata dari tiap pengguna.
Jika anda perhatikan rating Arif - item_1 didapatkan dari rating asal dikurangkan nilai rerata pengguna, yaitu: 5 - 3.5 = 1.5, rating Arif - item_2, yaitu: 4 - 3.5 = 0.5, dan seterusnya. Tahapan berikutnya adalah kita menghitung nilai similarity antar Arif dengan pengguna lainnya. Disini akan digunaan rumus cosine similarity yaitu seperti ini:
Misalkan kita akan hitung nilai similarity Arif dan Bob, maka didapatkan hasil seperti dibawah:
Dengan bantuan excel cukup kita drag saja rumus tersebut dan hasil dari similarity dari Arif dan ketiga pengguna lainnya adalah sebagai berikut:Dari hasil perhitungan tersebut terlihat bahwa nilai similarity paling tinggi adalah antar Arif dengan Don yaitu 0.707. Nilai cosine similarity semakin besar nilai nya (mendekati 1) maka semakin mirip kedua vektor tersebut. Selanjutnya adalah prediksi rating untuk pengguna Arif pada item_5. Untuk menentukan prediksi ini kita bisa tentukan threshold/batas nilai kemiripan dari similarity pengguna, misalkan kita asumsikan similarity di dataset ini jika nilainya lebih dari 0.3, maka yang akan kita lakukan perhitungan data dari Arif, Bob dan Don. Clark tidak masuk perhitungan karena nilai similarity dibawah 0.3 (threshold yang kita tentukan). Untuk penentuan nilai threshold ini tidak ada aturan baku, jadi jika anda melakukan eksperimen silahkan di uji coba beberapa nilai threshold yang akan digunakan.
Dari rumus diatas kita bisa melakukan perhitungan untuk prediksi rating Arif ke item_5 dengan menggunakan neighbor Bob dan Don, yaitu nilai rerata Arif dijumlahkan dengan sigma dari nilai similarity antar pengguna dikalikan selisih rating dan rerata dibagi nilai absolute dari similarity beberapa pengguna tersebut.
Hasil dari prediksi rating tersebut (Arif - item_5) adalah 4.425. Bagaimana selanjutnya untuk mengenerate item rekomendasinya? Simulasi diatas hanya prediksi satu rating saja, untuk menghasilkan item rekomendasi kita bisa gunakan data real dengan jumlah data yang besar. Misalkan pada dataset real, rating Arif masih kosong di sejumlah item, misalkan item_5, item_13, item_104, item_451, item_533, dst. Dari hasil perhitungan prediksi pada rating-rating kosong tersebut, kita bisa urutkan dari rating besar ke kecil, kemudian iem-item berdasar rating tersebut bisa kita jadikan list sebagai item rekomendasi, kita juga bisa batasi sejumlah item saja(misal 5 item atau 10 item), atau biasa disebut Top-N recommendations.
2. Item-based collaborative filtering
Item-based collaborative filtering pertama kali digunakan oleh Amazon pada tahun 1998. Teknik ini tidak mencocokan kemiripan antar pengguna, tetapi melakukan pencocokan setiap item yang dinilai/rating pengguna dengan item serupa, lalu menggabungkan item serupa tersebut ke dalam daftar rekomendasi. Secara detail proses nya sebagai berikut:
Pada contoh dataset diatas, kita akan melakukan prediksi dari 3 rating kosong, yaitu: Arif - item_2, Bob - item_3 dan Don - item_1. Rumus yang kita gunakan masih sama pada user-based collaborative filtering, yaitu cosine similarity. Tahap awal adalah kita lakukan proses similarity dari ketga item tersebut, yaitu:
Proses berikutnya dalam menghasilkan item rekomendasi sama seperti pada proses user-based diatas, yaitu dengan menghitung similarity antar item, melakukan prediksi rating kosong, kemudian melakukan ordering untuk dijadikan item rekomendasi.
Kesimpulan
Referensi
- Recommender System, A Computer Science Comprehensive Exercise, Carleton College, https://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/collaborativefiltering.html
- Pengantar Recommender System, Yotube: Mas Baizal, https://www.youtube.com/watch?v=gu-tf3tzMgA&t=20s
- F.O.Isinkaye, et al, Recommendation systems: Principles, methods and evaluation, Egyptian Informatics Journal Volume 16, Issue 3, November 2015, Pages 261-273
- User-based collaborative filtering, https://www.geeksforgeeks.org/user-based-collaborative-filtering/
- Item-to-item based collaborative filtering, https://www.geeksforgeeks.org/item-to-item-based-collaborative-filtering/
- Item-based collaborative filtering in Python, https://predictivehacks.com/item-based-collaborative-filtering-in-python/
malam pak, boleh minta perhitungan manual excelnya pak terimakasih sebelumnya. kirim email disini pak adnandanny676@gmail.com
ReplyDeleteSilahkan cek email mas, sudah saya kirimkan. Jika masih ada pertanyaan bisa tuliskan kembali di komentar
DeleteAssalamualaikum dan Selamat malam pak, apakah aku boleh minta file excelnya? Emailku atsunosenpai311@gmail.com
DeleteTerimakasih
Selamat malam pak, apakah saya boleh meminta perhitungan manualnya dikirimkan melalui email saya ranisikinaja@gmail.com
DeleteTerima kasih pak
saya ingin meminta perhitungan manual excelnya pak. email saya rafaeljody@gmail.com, terimakasih sebelumnya.
ReplyDeleteSudah saya kirimkan, silahkan cek inbox
Deleteselamat sore, saya ingin minta izin untuk meminta perhitungan manual excel. jika kalau berkenan saya minta tolong kirim ke email zinote99@gmail.com , terimakasih.
ReplyDeleteSudah saya kirim ke email mas, silahkan dicek ya
Deletesiang pak, saya minta file excelnya minta tolong kirim email ke enggarnoviyanto@gmail.com
DeleteIzin pak, kalau berkenan minta tolong perhitungan excelnya kirim ke email luthfiaryarizki25@gmail.com Terima Kasih
ReplyDeleteSudah dikirim ke email ya mas
DeleteTolong dikirimkan excelnya pak ke email bangsate0123@gmail.com
ReplyDeleteOk, cek email ya
Deletejika untuk user based sudah didapatkan rating untuk item yang kosong seperti dicontoh, untuk rekomendasinya top n misalkan top 1 dari contoh diatas seperti apa ya pak?
DeleteDiurutkan dari prediksi rating tertinggi untuk top-n nya
Deleteselamat siang mas, izin boleh bagi perhitungan exelnya mas..
ReplyDeletewpriscillayp@gmail.com
Selamat siang, sudah saya kirim email ya. Bisa di cek..
DeleteAssalamu'alaikum pak. Saya ingin meminta file excelnya untuk belajar
ReplyDeleteEmail saya reza.alfara07@gmail.com
Terima kasih pak.
Waalaikumsalam mas, ok.. silahkan cek inbox email
Deleteassalamualum pak mohon izin saya boleh minta perhitungan excelnya. ini email saya:
ReplyDeleteramadhanjuan03@gmail.com
terima kasih sebelumnya
Siang pak mohon izin apakah saya boleh minta perhitungan manual excelnya pak
ReplyDeleteterima kasih sebelumnya. email saya: khansasz95@gmail.com
Ok, silahkan cek inbox email
DeleteIzin pak, kalau berkenan minta tolong perhitungan excelnya kirim ke email goendoel1153@gmail.com Terima Kasih
ReplyDeleteSudah saya share mas, cek inbox ya
DeleteSiang pak mohon izin,apakah saya boleh minta perhitungan manual excelnya pak
ReplyDeleteterima kasih sebelumnya. email saya: titaniaaurilia0798@gmail.com
Sudah saya share, cek inbox ya
Deleteselamat pagi, maaf saya ingin minta izin untuk meminta perhitungan manual excel. jika kalau berkenan saya minta tolong kirim ke email arvanssi@gmail.com , terimakasih.
ReplyDeleteCek inbox ya, sudah saya kirimkan 📨
Deletesore pak, jika berkenan saya minta tolong kirim ke email saya pak, terimakasih sebelumnya. rapriliyanti11@gmail.com
ReplyDeleteSudah dikirim, silahkan cek inbox
Deletepagi pak, jika berkenan saya minta tolong kirim ke email saya pak, terimah kasih ,
ReplyDeletesuryadiluyha@gmail.com
Sudah saya kirim ke email ya.
Deletepagi ka untuk perhitungan MAE (mean absolut error)nya gimana ya pak untuk perhitungan di excel nya??
ReplyDeleteInshaAllah nanti saya bikin artikel terkait evaluasi nya ya
Deletepak,, selamat pagi,, saya sedang mengerjakan skripsi dengan metode CF, jika bapak berkenan bisa kah saya dikirimkan excel perhitungannya, terima kasih sebelumnya.. email saya ikayun@gmail.com
ReplyDeleteSudah saya kirim ke email ya
Deleteterima kasih pak sudah masuk
DeleteTerima kasih artikelnya, kalau berkenan, bisa email kan excelnya ke minarni2512@unda.ac.id
ReplyDeleteSudah terkirim di email ya file excelnya.
DeleteSelamat malam Pak. Jika Anda berkenan apakah bisa Anda mengirim excel nya ke email saya, yang nantinya excel tersebut akan saya jadikan bahan untuk penelitian saya di kuliah. Terimakasih Pak
ReplyDeleteSilahkan tuliskan alamat email mas
DeleteBerikut alamat e-mail saya Pak
Deletedzikrie3th@gmail.com
Berikut alamat e-mail saya yang bisa Bapak kirimkan. dzikrie3th@gmail.com
DeleteSudah saya kirim ke email mas
DeleteBaik Bapak, Terimakasih banyak atas file yang Bapak kirim 🙏🏻
Deleteboleh mas, share sebastianmandai2893@gmail.com
ReplyDeleteterimakasih mas...
Boleh shar mas, sebastianmandai2893@gmail.comm
ReplyDeletethanks mas
saya ingin meminta perhitungan manual excelnya pak. email saya jiroalpa@gmail.com, terimakasih sebelumnya.
ReplyDeleteCek inbox ya, sudah saya kirim
DeleteTerimakasih ilmunya pak, izin bisakah meminta manual excelnya pak. Email saya marianamardjani@gmail.com, terimakaish sebelumnya
ReplyDeleteIzin pak, kalau berkenan minta tolong perhitungan excelnya kirim ke email rahmatmihra@gmail.com Terima Kasih
ReplyDeleteIzin pak, kalau berkenan minta tolong perhitungan excelnya kirim ke email rahmatmihra@gmail.com Terima Kasih
ReplyDeleteTerimakasih ilmunya pak, mohon izin pak kalau berkenan minta tolong perhitungan excelnya kirim ke email ndin3731@gmail.com Terima Kasih
ReplyDeleteTerima Kasih sangat bermanfaat
ReplyDeleteom excelnya bisa dijapri renkjava@gmail.com
ReplyDeletePagi pak mohon izin sebelumnya,apakah saya boleh minta perhitungan manual excel user based dan item based nya pak
ReplyDeleteterima kasih sebelumnya. email saya: adrianuspanjaitan00@gmail.com
Pagi pak mohon izin sebelumnya,apakah saya boleh minta perhitungan manual excel user based dan item based nya pak
ReplyDeleteterima kasih sebelumnya. email saya: adrianuspanjaitan00@gmail.com
selamat siang pak ,boleh saya minta file perhitungan excelnya user based dan item basednya.
ReplyDelete@adrianupanjaitan00@gmail.com
Selamat malam, Pak. Apakah saya boleh meminta perhitungan excel serta manualnya? Terutama yang item-based collaborative, karena saya belum paham menghitung yang item-based. Berikut e-mail saya: dwayuputri35@gmail.com terima kasih sebelumnya.
ReplyDeleteSudah saya kirim email ya, silahkan cek inbox
Deleteselamat malam pak, maaf apakah saya boleh meminta perhitungan item-based collaborative? dikarenakan saya agak sedikit bingung untuk perhitungannya, berikut email saya pak donchinjao326@gmail.com
ReplyDeleteterima kasih sehat selalu
Halo Pak Arif Laksito. Apakah saya boleh meminta perhitungan excel serta manualnya? Terutama yang item-based collaborative, karena saya belum paham menghitung yang item-based. saya ingin membandingkan dengan penggunaan Multicriteria Colaborative Filtering
ReplyDeleteBerikut e-mail saya: rahimmahruf@gmail.com
Selamat malam, Pak. Apakah saya boleh meminta perhitungan excel serta manualnya? Terutama yang item-based collaborative, karena saya belum paham menghitung yang item-based. Berikut e-mail saya: rahimmahruf@gmail.com
ReplyDeleteSelamat sore pak, boleh minta perhitungan excel serta manualnya? bisa dikirim ke email @noeroel@asia.ac.id
ReplyDeleteOk, sudah dikirim ke email
Deleteselamat malam pak, boleh minta perhitungan manual excelnya pak, untuk email saya nafrisaputro@gmail.com bisa dikirim ke sini pak terima kasih
ReplyDeleteSudah saya kirim ke email, cek inbox
DeleteIzin pak, kalau berkenan minta tolong perhitungan excelnya kirim ke email gresapranata02@gmail.com Terima Kasih
ReplyDeletePagi pak, saya izin meminta perhitungan file excelnya pak. Ini email saya: bagusaldycky@gmail.com. Terima kasih sebelumnya pak.
ReplyDeleteSiap, sudah dikirim email ya
DeleteSelamat malam pak, kalau berkenan saya izin meminta perhitungan file excelnya pak. Ini email saya: fajar.al.manar@gmail.com. Terima kasih sebelumnya pak.
ReplyDeleteselamat siang mas, izin boleh bagi perhitungan exelnya mas..
ReplyDeleteanggarayev@gmail.com
malam pak, boleh minta perhitungan manual excelnya pak terimakasih sebelumnya. kirim email disini pak kiminhomaulana@gmail.com
ReplyDeleteMohon maaf pak. Boleh minta perhitungan Excel diatas
ReplyDeleteMaaf pak, boleh minta perhitungan Excel diatas. Email saya : abimanyubagas78@gmail.com
ReplyDeleteRaihanabdillah73@gmai.com pak boleh minta perhitungannya??
ReplyDeletekirim ke email saya pak
Pagi pak, apakah boleh kirimkan excel perhitungannya pak ini email saya lixiuszen@gmail.com
ReplyDeleteterimakasih pak
Ok, sudah dikirim ke email
DeleteSelamat pagi pak, mohon bantuannya pak, saya sedang mengerjakan skripsi tentang metode ini, apakah bisa kirimkan perhitungannya di email saya?
ReplyDeleteraypantas51@gmail.com
File perhitungan manual sudah saya kirim ke email, cek inbox ya
DeletePagi pak, apakah boleh kirimkan excel perhitungannya pak ini email saya yusufaminu19@gmail.com
ReplyDeleteSudah dikirim ke email mas
DeleteSiang pak, apakah boleh kirimkan excel perhitungannya pak ini email saya jeremyreinhart5@gmail.com
ReplyDeleteOk, terkirim
Deleteselamat siang mas, izin boleh bagi perhitungan exelnya mas..
ReplyDeleterooythaniket@gmail.com
Sudah dikirim ke email ya
Deleteselamat siang mas, izin boleh bagi perhitungan excelnya mas.. indraatmadja13@gmail.com
ReplyDeleteselamat siang apakah boleh saya minta excel nya mas? bisa dikirim di arlisakumala13@gmail.com terimakasih
ReplyDeleteselamat siang mas, saya izin bertanya. jika untuk perhitungan prediksi untuk rating yang sudah ada bagaimana ya mas? karena saya butuh perhitungan untuk semua rating baik yang sudah ada maupun yang belum agar nanti bisa dievaluasi menggunakan mae
ReplyDeletePerhitungan rating yg sudah ada tetap dilakukan dimana data asli menjadi evaluatornya untuk uji mae, rmse nantinya
DeleteSelamat siang boleh sy minta excel nya mas? bisa dikirim di fathirharis29@gmail.com terimakasih
ReplyDeleteSelamat siang pak, mohon bantuannya pak, saya sedang mengerjakan skripsi tentang metode ini, apakah bisa kirimkan perhitungannya di email saya?
ReplyDeleteTerimakasih
pradasando@gmail.com
Selamat pagi pak, izin boleh berbagi perhitungan excelnya tentang item-based collaborative filtering pak? ini email saya akhmadhelmiirfansyah@gmail.com terimakasih
ReplyDeleteOk, sudah dikirim yaa
DeleteSelamat pagi pak, izin boleh berbagi perhitungan manual dengan excel tentang item-based collaborative filtering pak? ini email saya azralsatrani24@gmail.com terimakasih
ReplyDeleteSelamat Pagi Pak, apakah boleh dishare perhitungan manual dengan excelnya ke alamat email bagus.p.wahyu@gmail.com
ReplyDeleteTerima kasih..
malam pak, boleh minta tolong kirimkan perhitungan manual excelnya pak, terima kasih banyak sebelumnya pak. Ini email saya pak kslafina@gmail.com
ReplyDeleteferry.sancha@gmail.com, di tunggu perhitungan manual excelnya, thank a lot
ReplyDeleteSudah terkirim ke email
Deleteselamat pagi, saya ingin minta izin untuk meminta perhitungan manual excel. jika kalau berkenan saya minta tolong kirim ke email mmarzak905@gmail.com
ReplyDelete, terimakasih.
bisa minta file mentahan excel nya pak. terima kasih
ReplyDeletesyaifudinrosyad29@gmail.com
Halo Mas Arif. Izin untuk meminta perhitungan manualnya dalam bentuk excel bisa mas? Jika berkenan bisa tolong dikirim ke email hooli.society@gmail.com. Terimakasih ya mas
ReplyDelete