User-Based Recomendation Systems

Hi,

Pagi-pagi sebelum ayam berkokok, saya mikirin mau nulis blog tentang apa hari jumat ini. Lagi buntu, nggak ada ide, iseng saya cek ada notifikasi apa nggak di akun instagram saya. Kali aja ada Dian Sastro komen foto di akun Instagram saya atau Chelsea Islan nge-like foto saya😀. Ternyata ngga ada, mungkin mereka belum lihat ajah. Dilanjut dengan scrollscroll foto teman, kemudian setelah bosen dan kebetulan nggak ada foto baru yang mau saya upload, saya tekan menu ‘search‘ yang ada gambar kaca pembesar itu. Digiringlah saya ke halaman seperti di bawah ini. Di halaman ini kita dikasi rekomendasi orang-orang yang mungkin kita kenal di bagian ‘Discover People‘ dan foto-foto yang barusan di-like oleh temen kita.

Recommendation system di Instagram

Peduli banget kan ya Instagram ini, mereka ngasih kita rekomendasi temen supaya temen kita makin banyak atau ngasi kita rekomendasi foto-foto yang baru di-like temen kita, bisa jadi foto yang di-like temen kita itu foto dari user yang belum kita follow.

Ini sih sebenernya bukan Instagram peduli ama kita, kita kan konsumen dari Instagram. Jadi, mereka memberikan layanan yang bisa bikin konsumennya betah berlama-lama kepo-kepo di Instagram. Masuk akal.

Pertanyaannya, gimana sih caranya instagram menentukan rekomendasi ke kita? Nah, dapet nih tema untuk postingan blog hari ini.

Disinilah ilmu ahli nujum ilmiah alias ilmu data mining alias penggalian data dipake. Berdasarkan kitab kuning yang saya baca, secara umum ada 2 recomendation system method : user-based dan product-basedUser-based method ini adalah metode penentuan rekomendasi berdasarkan kesamaan (similarity) dari rating yang diberikan antar user. Ide yang diambil adalah, semakin sama penilaian/pendapat seseorang terhadap suatu barang, maka besar kemungkinan kedua orang tersebut memiliki kesamaan interest terhadap beberapa item. I like what you like.

Sedangkan product-based method adalah metode penentuan rekomendasi berdasarkan similarity dari produk, urutkan mana produk paling banyak diberi rating oleh user (ascending sort), maka sebutlah 10 produk (A-J)yang memiliki rating tinggi memiliki similarity paling tinggi. Artinya jika user menyukai produk A, maka besar kemungkinan, dia juga akan menyukai produk B. Karena banyak user yang memiliki kecenderungan seperti itu dibuktikan dari ranking produk. Kalo kata kitab kuning saya, begini

In item-based filtering, ahead of time we find the most similar items, and combine that with a user’s rating of items to generate a recommendation.

Ada banyak cara untuk menghitung similarity di user-based method ini. Cara paling mudah adalah menghitung kedekatan jarak (distance) antar user. Semakin dekat distance antar user, semakin tinggi similarity. Untuk menghitung distance, sebutlah rumus general: Minkowsky Distance Metric. Ini rumusnya Minkowski Distance Metric:

Kenapa rumus general? Karena kalo nilai variabel r nya diubah, rumus ini menjadi rumus lain. Hehe, semisal nilai r=1, maka rumusnya menjadi rumus Manhattan Distance. Kalau nilai r=2, maka umusnya menjadi rumus Euclidean Distance (Pythagorean Theorem). Untuk lebih jelas lagi, silakan kunjungi wikipedia tentang Minkowski Distance Metric.

Screenshot_2015-10-16-10-54-50
Contoh Advertisement dari Toko Online di Jepang, Nissen, di website lain

Nah, dari rumus matematika di atas, kita bisa mengejawantahkannya ke bahasa pemrograman menjadi function untuk menhitung distance antara user dan untuk memberi rekomendasi item apa saja yang tinggi nilai similarity. Kemudian result tersebut ditampilkan di web yang butuh informasi tersebut, seperti Instagram, Facebook, Amazon dll. Website yang ‘rame’ user berkumpul, pasti membutuhkan recomendation system seperti ini.

Gimana? Udah laper kan? Bahas yang beginian emang bikin laper, lagipula udah waktunya makan siang berdasarkan JST🙂. Post selanjutnya insyaAllah bahas tentang product-based recomendation system.

name

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