Wednesday, March 4, 2020

Mengenal Sistem Rekomendasi


Artikel kali ini berkaitan dengan posting saya sebelumnya, saat itu saya tiba-tiba mendapatkan video rekomendasi dari youtube yaitu "[GUIDE] Pebble Screen Tearing Fix". Padahal ketika itu saya sedang exploring video-video smartwatch... Naah kebetulan sekali muncul video tersebut.

Yang jadi pertanyaan adalah.., koq bisa ya Youtube tau apa yang saya butuhkan, atau apa yang bermanfaat buat saya. Teknik ini lah yang disebut dengan Recommendation System atau Sistem Rekomendasi, dimana pengguna akan disuguhkan informasi yang berkaitan dengan item atau karakteristik pengguna tersebut. Menurut saya faktor kebetulan atau Serendipity pada teknik ini sangat kereen, dimana pengguna di tawarkan suatu item/produk yang tak terduga.

Awal mula sistem rekomendasi


Berdasar artikel tahun 1995 tentang social information filtering, saat itu telah ada penelitian di bidang rekomendasi pada database musik yang bernama Ringo, dimana telah dilakukan teknik personalized recommendations. Setelah era berkembangnya internet dan maraknya e-commerce, search engine,  social media dan teknologi berbasis web lainnya, beberapa teknik pada sistem rekomendasi banyak bermuculan untuk menghasilkan item rekomendasi yang lebih baik.

Contoh penggunaan sistem rekomendasi

Peran sistem rekomendasi menjadi penting seiring dengan pertumbuhan data di internet yang sangat pesat dan besar. Dengan meledaknya data-data tersebut, filtering/penyaringan informasi yang berguna/bermanfaat secara personal menjadi bagian yang penting. Disinilah peran sistem rekomendasi dalam melakukan filtering untuk menghasilkan rekomendasi yang baik.

Beberapa perusahaan e-commerce menggunakan sistem rekomendasi untuk menunjang bisnis mereka, seperti: Netflix, Amazon, YouTube, Facebook, Google, MovieLens, Last.fm, Alibaba, eBay, dll.  Dari sejumlah artikel menyebutkan tujuan dari implementasi sistem rekomendasi ini adalah menampilkan list item/produk yang relevan, terbarukan/novelty, kebetulan/serendipity dan beragam/diversity.

MovieLens merupakan salah satu gudang data yang menyediakan data movie, users dan ratings dalam jumlah besar yang sering digunakan oleh banyak peneliti untuk pengujian performa atau membentuk model baru dalam sistem rekomendasi.

Dashboard MovieLens setelah user login
Beberapa sistem rekomendasi pada aplikasi Iflix, Blibli, GoFood dan GrabFood yang memeberikan rekomendasi terkait preference dari pengguna atau item/produk.

Rekomendasi dari iflix beberapa film kartun 😆

Di Blibli saya direkomendasikan membeli Sneakers & Tab ✌😁


Di GrabFood saya disarankan membeli dari resto-resto tersebut

Umumnya terdapat dua pendekatan dalam membangun sistem rekomendasi, yaitu: content-based filtering(CB) dan collaborative filtering(CF), kurang lebih berikut ini detailnya.. 

1. Content-based filtering(CB)

Metode ini memberikan rekomendasi berdasarkan data deskripsi item/produk yang tersedia. Sistem akan mencari persamaan produk berdasarkan deskripsi yang ada. Preferensi pengguna dalam melakukan interaksi terhadap produk akan direkam dan produk dengan kemiripan tertentu akan direkomendasikan kepada pengguna tersebut. Kurang lebih ilustrasi teknik ini seperti pada gambar berikut:

Metode content-based filtering
Pada metode CB ini terdapat beberapa keunggulan, yaitu: 
  • Pengguna akan mendapatkan rekomendasi terhadap produk yang disukainya. 
  • Jika terdapat produk baru akan dengan mudah direkomendasikan jika sesuai dengan karakter produk sejenis. 
Meski demikian terdapat juga beberapa kelemahan pada metode ini: 
  • Tidak bisa memunculkan fitur serendipity, karena jenis produk yang berbeda. 
  • Ekstraksi/pengambilan informasi tipe data video, audio, image sulit dilakukan, karena membutuhkan algoritma yang rumit & kompleks. 
  • Perusahaan bisnis e-commerce tidak dapat ekspansi penjualan produknya, karena tipe produk berbeda tidak muncul sebagai rekomendasi ke pengguna.

2. Collaborative filtering(CF)

Pada CF, sistem memberikan rekomendasi berdasarkan pada karakteristik dari pengguna dengan pengguna yang lain. Oleh karena itu, data history transaksi atau rating dari pengguna menjadi komponen penting dalam metode ini. Misalkan pengguna A membeli kopi, kentang goreng dan telur mata sapi sedangkan pengguna B membeli kopi dan kentang goreng. Maka kemungkinan besar pengguna B juga akan membeli telur mata sapi, karena berdasarkan karakteristik antar pengguna terdapat kecocokan. Konsep inilah yang digunakan oleh metode CF dalam sistem rekomendasi.  Berikut ilustrasi dari metode CF:

Metode collaborative filtering

Di metode CF ini dapat mengatasi kelemahan pada metode CB, yaitu serendipity, dimana pengguna akan merasa surprise mendapatkan rekomendasi produk-produk yang tidak mereka bayangkan sebelumnya. Tetapi di metode CF sistem akan menghasilkan rekomendasi yang baik berdasarkan data rating dari pengguna, kondisi jarangnya data-data tersebut menyebabkan sistem rekomendasi berjalan tidak maksimal, atau istilahnya disebut sparse data.

Artikel terkait detail pembahasan content-based dan collaborative filtering bisa anda telusuri di link berikut ini:
  1. Membangun sistem rekomendasi dengan teknik content-based filtering
  2. Memahami collaborative filtering di sistem rekomendasi

Kesimpulan

Implementasinya kedua metode dalam sistem rekomendasi tersebut digunakan sesuai kebutuhan, misalkan pada bisnis produk yang sejenis bisa menggunakan metode CB, sedangkan untuk produk-produk beragam, metode CF bisa dipilih. Algoritma pada metode CB sebagian besar menggunakan KNN atau teknik searching dan matching, sedangkan di CF lebih beragam lagi algoritma yang digunakan, seperti: neural network atau matrix factorization.

Gabungan metode keduanya, atau biasa disebut dengan metode Hybrid telah banyak dikembangkan juga untuk menghasilkan rekomendasi yang lebih baik. Trend penelitian saat ini banyak ke arah prediksi matrix data untuk mengatasi kendala sparse data di CF atau pengembangan metode hybrid  di sistem rekomendasi dengan berbagai macam teknik.

Bagi mahasiswa yang tertarik mengambil tema penelitian ini, bisa kontak saya untuk diskusi lebih lanjut yaa.. InshaAllah artikel selanjutnya akan saya bahas beberapa teknik implementasi di metode collaborative filtering.

10 comments:

  1. Pak... bahas item-based collaborative filtering dengan cosine similarity donk :D

    ReplyDelete
    Replies
    1. Silahkan bisa disimak disini mas/mba, https://blog.ariflaksito.net/2021/07/memahami-collaborative-filtering-di.html

      Delete
  2. Siang pak, saya tertarik untuk ambil tema penelitian ini bisa di infokan lebih detailnya pak seperti perhitungan dll, bisa hubungi email sayaa pak disini: khansazulfa9@gmail.com. Terima kasih sebelumnya

    ReplyDelete
    Replies
    1. Silahkan anda baca di sini ya: https://blog.ariflaksito.net/p/join-research.html

      Delete
  3. Salam Pak... jadi untuk sistem rekomendasi CF, apakah data yg digunakan hanya rating dari pengguna saja? apakah review pengguna dalam bentuk komentar bisa kita jadikas sebagai data untuk merekomendasikan sebuah item? terimakasih sebelumnya Pak Arif..

    ReplyDelete
    Replies
    1. Secara general CF menggunakan data rating saja. Namun, beberapa penelitian terkini memanfaatkan juga data reviews dan deskripsi item sebagai informasi tambahan untuk mendukung CF mengatasi masalah sparsity & cold-start. Seperti pada penelitian berikut ini:
      - https://doi.org/10.1145/3292500.3330906
      - https://doi.org/10.1145/3178876.3186158
      - https://doi.org/10.1145/3477314.3507072

      Delete
  4. Salam Pak, untuk knowledge based recommender system belum ada ya penjelasan materinya?

    ReplyDelete
    Replies
    1. Maaf belum ada neh, insha Allah next ya

      Delete
  5. apakah karakteristik sistem rekomendasi ?
    apakah sistem rekomendasi ada keterkaitan dengan sistem pendukung keputusan ?

    ReplyDelete
    Replies
    1. Sistem rekomendasi adalah sistem yang dirancang untuk memberikan saran atau rekomendasi kepada pengguna, biasanya dalam konteks produk atau konten yang mereka mungkin minati. Karakteristik utama dari sistem rekomendasi meliputi: Personalisasi, Relevansi, Adaptasi, Skalabilitas.

      Sistem Rekomendasi dan DSS berkaitan membantu pengguna membuat keputusan yang lebih baik, tetapi fokus dan implementasi mereka dapat berbeda. Sistem rekomendasi menganalisis data pengguna dan preferensi untuk merekomendasikan item, sedangkan DSS dapat digunakan untuk analisis data yang lebih umum dan mendukung pengambilan keputusan yang lebih luas.

      Delete