Sistem Rekomendasi Collaborative Filtering
Pernahkah terpikirkan oleh kalian, setiap kita menonton YouTube maupun berbelanja online sering muncul konten atau item yang direkomendasikan kepada kita untuk ditonton maupun dibeli. Bagaimana cara mereka untuk menemukan rekomendasi tersebut? Cara yang mereka gunakan adalah membangun sebuah sistem rekomendasi yang dapat membantu dalam memberikan rekomendasi kepada user berdasarkan kebiasaaan dari user itu sendiri.
Saat ini, item-based collaborative filtering merupakan algoritma sistem rekomendasi yang popular. Item-based collaborative filtering yang diluncurkan oleh Amazon.com pada 1998 secara dramatis meningkatkan kemampuan dari sistem rekomendasi yang telah digunakan pada saat itu. Sebelum diluncurkan sistem ini, telah ada beberapa sistem rekomendasi yang dikembangkan oleh industri maupun akademisi yang berdasarkan pada user-based collaborative filtering. Sistem tersebut memiliki masalah besarnya komputasi. Semenjak algoritmanya dipublikasikan pada IEEE Internet Computing pada tahun 2003, system tersebut mulai diadopsi oleh web-web raksasa, seperti YouTube, Netflix, dan sebagainya.
Perbedaan User-based dengan Item-based Collaborative Filtering
Misal kita memiliki data rating film yang pernah ditonton oleh beberapa orang user sebagai berikut.
Tujuan utama dari sistem rekomendasi adalah untuk merekomendasikan top-N film untuk seorang user, misalkan untuk Adi. Untuk dapat melakukan itu, pertama-tama perlu diprediksi terlebih dahulu rating dari film yang belum ditonton oleh Adi (Iron Man 3) lalu diambil dua film (top-2) yang telah diberi rating tertinggi oleh Adi.
1. User-based Collaborative Filtering
Langkah 1: Menghitung similarity/kemiripan antara Adi dengan user lainnya
Persamaan yang digunakan adalah sebagai berikut.
Persamaan (1) menghitung similarity antara user x dan y berdasarkan rating dari semua film yang ditonton oleh user x dan y.
Perhitungan similarity diantara Adi dan Haris dapat diperoleh dengan menggunakan persamaan (1) sebagai berikut:
Similarity antara Adi dan Alfi dapat diperoleh dengan cara yang sama.
Langkah 2: Memprediksi rating dari film yang belum ditonton oleh Adi
Persamaan yang dapat digunakan adalah sebagai berikut.
dimana
Pertama-tama nilai k dihitung dengan memasukkan nilai similarity yang telah dihitung pada langkah 1, sehinga diperoleh,
Sekarang, film Iron Man 3 yang belum ditonton oleh Adi dapat diprediksi ratingnya sebagai berikut:
Tabel rating film yang telah ditonton oleh Adi diberikan sebagai berikut.
Langkah 3: Memilih top-2 film dengan rating tertinggi
Berdasarkan tabel pada langkah 2 maka top-2 film yang direkomendasikan kepada Adi adalah Dilan 1990 dan Iron Man 3.
2. Item-based Collaborative Filtering
Langkah 1: Transpose matriks user-item menjadi matriks item-user
Langkah 2: Menghitung similarity diantara dua item dan bentuk matriks similarity berdasarkan item-item tersebut. Persamaan yang digunakan sama seperti pada persamaan (1). Perhitungan similarity antara Avengers: End Game dan Teman Tapi Menikah 2 dapat dijabarkan sebagai berikut:
Dengan menggunakan cara yang serupa, similarity antara film yang lain dapat dihitung dan diperoleh matriks sebagai berikut.
Nilai 0 menunjukkan similarity antara dua film tidak dapat dihitung karena adanya sparsity pada data.
Langkah 3: Memprediksi rating dari film yang belum ditonton oleh Adi
Persamaan yang digunakan adalah sebagai berikut.
Perhitungannya dapat dirinci sebagai berikut:
Langkah 4: Memilih top-2 film dengan rating tertinggi untuk Adi
Tabel rating film yang telah ditonton oleh Adi diberikan sebagai berikut.
Berdasarkan tabel di atas, maka top-2 film yang akan direkomendasikan kepada Adi untuk ditonton adalah Dilan 1990 dan salah satu dari Avengers:End Game, Iron Man 3, atau Thor 2.
Penutup
Sekian pembahasan mengenai contoh sistem rekomendasi dengan menggunakan algoritma colllaborative filtering. Pada postingan selanjutnya akan dibandingkan kelebihan dan kekurangan antara kedua algoritma yang telah dibahas sebelumnya.