Home > Pemrograman Web, Serba-serbi > Komputasi Collaborative Filtering

Komputasi Collaborative Filtering


Collaborative filtering merepresentasikan pengguna sebagai vektor item N-dimensi, dimana N adalah jumlah item yang unik dalam katalog. Algoritma ini membangkitkan rekomendasi berdasarkan pada beberapa pengguna yang sangat mirip dengan pengguna aktif. Kemiripan dua pengguna A dan B dapat dihitung menggunakan beberapa cara.


Metode paling umum adalah mengukur cosinus dari sudut antara dua vektor:

Kemiripan(A, B) = Cos(Vektor A, Vektor B)

Jika nilai kemiripan (A, B) sama dengan 1 berarti A dan B mirip penuh, jika 0 maka tidak mirip sama sekali…tidak ada item yang dipilih A juga dipilih oleh B.

Algoritma dapat memilih rekomendasi dari item-item penguna serupa menggunakan berbagai metode, yang umum digunakan adalah meranking setiap item sesuai dengan berapa banyak diakses dan dirating oleh pengguna yang mirip tadi.

Biaya

Pembangkitan rekomendasi menggunakan collaborative filtering termasuk mahal dari sisi komputasi. Pada kasus terburuk (worst case) dapat bernilai O(MN), dimana M adalah jumlah pengguna dan N adalah jumlah item, karena algoritma menguji sebanyak M pengguna dan sampai N item untuk setiap pengguna. Karena vektor pengguna rata-rata sangat tersebar, kinerja algoritma lebih dekat ke O(M+N). Pemindaian setiap pengguna sekitar O(M), tidak O(MN), karena hampir semua vektor pengguna mengandung jumlah item kecil, berapapun ukuran katalognya. Tetapi ada beberapa pengguna yang telah mengakses dan merating katalog secara signifikan (persentasenya), memerlukan waktu pemrosesan O(N). Jadi, kinerja akhir dari algoritma mendekati O(M+N). Pada data set yang sangat besar, misalnya 10 juta atau lebih pengguna dan item yang ditawarkan juga banyak, algoritma menemukan kinerja dan skala yang tak diharapkan.

Reduksi Ukuran Data

Masalah penskalaan (scaling) sedikit dapat disederhanakan menggunakan teknik pengurangan ukuran data. M atau jumlah pengguna yang diproses dalam algoritma dapat dikurangi dengan melakukan random sampling pengguna atau membuang pengguna dengan akses yang sedikit, dan mengurangi N (jumlah item yang diproses) dengan membuang item-item yang sangat populer atau yang sangat tidak populer. Ada pula kemungkinan untuk mereduksi jumlah item yang diuji memanfaatkan suatu faktor konstanta kecil dengan memartisi ruang item berdasarkan pada kategori atau klasifikasi subyek item.

Kualitas Rekomendasi

Semua metode reduksi ukuran data tersebut juga akan mengurangi kualitas rekomendasi. Pertama, jika algoritma hanya menguji sample pengguna yang kecil, pengguna terpilih akan kurang mirip dengan pengguna aktif. Kedua, pemartisian ruang item membatasi rekomendasi terhadap item atau area subyek tertentu. Ketiga, jika algoritma membuang item yang paling populer atau tidak populer maka item-item tersebut tidak akan pernah muncul sebagai rekomendasi, dan pengguna-pengguna yang telah mengakses item-item tersebut maka tidak akan mendapatkan rekomendasi sama sekali.

Reduksi dimensi terhadap ruang item bertujuan menghilangkan item-item dengan frekuensi akses rendah. Sedangkan reduksi terhadap ruang pengguna dimaksudkan untuk mengelompokkan para pengguna ke dalam cluster-cluster. Keduanya dapat menyebabkan penurunan kualitas rekomendasi.

  1. 18 January 2010 at 6:37 am

    mas, boleh diskusi tebih dalem terkait perhitungan prediksinya?

    • 19 January 2010 at 1:52 am

      silakan…banyak algoritma yang sapat digunakan. Coba baca2 paper di google🙂

  2. 19 May 2010 at 1:46 am

    mas mau nanya saya bingung dengan training set dan test set untuk pengujian collaborative filtering pada recommender system. bagaimana yah cara menguji dengan training set dan test set????

    thanks

  3. 21 October 2010 at 3:22 pm

    setuju sama yang diatas saya. saya juga mau nanya masalah itu. ada di salah 1 langkah di skripsi saya soalnya. tapi masih bingung.. >.<

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: