Belakangan ini saya sedang tertarik untuk belajar mengenai sistem perekomendasi (recommender system). Sadar atau tidak, sistem perekomendasi sebenarnya banyak ditemukan dalam keseharian pengguna Internet. Salah satu contohnya adalah rekomendasi artikel di situs portal berita seperti Detik.com, Kompas.com, dan Okezone.com. Kompas.com malah baru-baru ini dengan bangga meluncurkan fitur personalisasi bagi para pembacanya. Yang dimaksud personalisasi adalah, pengguna bisa mendapatkan rekomendasi artikel yang sesuai dengan minatnya, bukan sekedar artikel yang populer.

Sistem perekomendasi juga kita jumpai pada situs jejaring sosial, seperti Facebook dan Twitter yang merekomendasikan teman/pengguna lain untuk di-follow. Sistem perekomendasi juga sangat bermanfaat secara komersial untuk situs perdagangan daring (e-commerce). Amazon dapat menjual lebih banyak buku dengan cara merekomendasikan suatu buku yang kemungkinan besar akan disukai oleh penggunanya.

The Long Tail

Fenomena The Long Tail menggambarkan pentingnya sistem perekomendasi secara komersial. Jika toko buku fisik hanya mampu memajang ribuan buku, maka toko buku daring dapat menawarkan jutaan buku dalam situsnya. Dengan keterbatasan tersebut, toko buku fisik tentunya lebih memilih untuk memajang buku-buku best-seller. Dengan demikian, selera orang kebanyakan lah yang banyak diakomodasi oleh toko buku fisik. Sebaliknya, toko buku daring dapat memperhitungkan minat setiap orang yang berbeda-beda dan menawarkan buku yang sesuai dengan minat masing-masing.

Fenomena tersebut dapat digambarkan dalam gambar 1. Sumbu vertikal merepresentasikan popularitas (berapa banyak suatu item dipilih/dibeli). Items diurutkan pada sumbu horizontal berdasarkan popularitasnya mulai dari yang paling populer. Items yang berada di daerah sebelah kiri (warna hijau) merupakan items yang populer secara global. Sementara itu items yang berada di daerah sebelah kanan (warna kuning) merupakan items yang hanya menarik bagi sebagian orang saja. Items itulah yang disebut dengan long tail. Selain menjual items yang populer secara global, pemilik situs perdagangan daring dapat memaksimalkan penjualan dengan menjual banyak jenis item yang kurang populer(dengan kuantitas yang relatif sedikit). Peran sistem perekomendasi adalah merekomendasikan items yang masuk dalam kategori long tail kepada konsumen yang memiliki minat khusus terhadap items tersebut.


Gambar 1. Sumber: http://jargotrulli.wordpress.com/2011/05/18/leveraging-the-long-tail/

Bagaimana Menentukan Rekomendasi?

Saya tertarik untuk mengetahui bagaimana metode untuk memberikan rekomendasi yang tepat bagi pengguna. Ada 2 buku yang sedang saya baca, Recommender System: An Introduction[1] dan Mining of Massive Datasets[2] (bab 9 membahas mengenai sistem perekomendasi). Pada dasarnya, ada 2 metode dalam memberikan rekomendasi. Metode yang pertama adalah content-based recommendations. Disebut content-based karena metode ini memanfaatkan karakteristik dari item. Misalnya suatu buku memiliki kategori (apakah dia merupakan buku fiksi atau non-fiksi, buku tentang ilmu pengetahuan, agama, bisnis, dsb.), bahasa, tebal buku, dan sebagainya. Dalam metode ini, pertama-tama kita harus menyusun profil preferensi setiap pengguna. Profil ini umumnya disusun berdasarkan data items yang sebelumnya telah dibeli oleh pengguna. Berdasarkan profil ini, maka suatu item baru akan dicocokkan dengan profil pengguna untuk menentukan apakah pengguna akan menyukai item baru tersebut atau tidak.


Gambar 2. Content-based Recommendation

Metode yang kedua disebut dengan collaborative filtering. Metode ini tidak melihat karakteristik dari items, namun memanfaatkan data pengguna-pengguna lain dalam membeli/menilai items. Metode ini dibagi lagi menjadi 2, yaitu yang berdasarkan kemiripan pengguna dan yang berbasis kemiripan item. Ide dasarnya adalah sebagai berikut. Pertama-tama, kita mencari pengguna-pengguna lain yang menyukai/membeli items yang sama dengan dengan items yang telah kita beli. Dengan kata lain, kita mencari pengguna-pengguna yang seleranya sama dengan kita. Selanjutnya, kita bisa mencari items apa yang telah dipilih/dibeli oleh pengguna-pengguna tersebut yang namun belum kita pilih/beli.


Gambar 3. Collaborative Filtering

Hal yang serupa bisa diterapkan dengan memperhitungkan kemiripan item. Kemiripan item di sini berarti jika baik item A dan B sama-sam disukai oleh kelompok pengguna X, namun tidak disukai oleh kelompok pengguna Y, maka item A dikatakan mirip dengan item B. Selanjutnya kita bisa merekomendasikan item B untuk pengguna yang menyukai item A namun belum memilih/membeli item B.

Hasil penelitian telah menunjukkan bahwa perpaduan antara metode content-based dan collaborative filtering akan memberikan hasil yang lebih optimal dibanding penggunaan salah satu metode. Netflix.com, situs yang menyediakan jasa movie streaming, pernah mengadakan sayembara dengan hadiah 1 juta dolar Amerika bagi yang berhasil membuat sistem perekomendasi yang lebih baik dibanding sistem perekomendasi mereka saat itu, CineMatch. Sayembara tersebut baru dimenangkan pada September 2009, 3 tahun setelah sayembara diumumkan. Dua tim terbaik menggunakan kombinasi dari beberapa algoritma yang disusun secara mandiri.

Saya baru akan mempelajari lebih detail mengenai teknik-teknik pembuatan sistem perekomendasi. Banyak hal yang masih harus dipelajari seperti bagaimana menilai kemiripan pengguna/item menggunakan Pearson correlation dan cosine similarity, fungsi prediksi, dan matrix factorization. Selain metode content-based recommendation dan collaborative filtering, beberapa metode data mining juga bisa diterapkan seperti association rule mining dan klasifikasi.

  1. Dietmar Jannach, Markus Zanker, Alexander Felfernig, and Gerhard Friedrich (2011). Recommender System: An Introduction
  2. Anand Rajaraman and Jeffrey D. Ulman (2010). Mining of Massive Datasets

No related posts.