Recommendation System Dengan Python : Definisi (Part 1)

Novindra Prasetio
Data Folks Indonesia
4 min readJul 11, 2019
Photo by Ali Yahya on Unsplash

Halo… Pada artikel ini saya akan membahas “Recommendation System” atau “Recommender System”. Dan pada artikel selanjutnya saya akan coba membangun dengan beberapa metode pada recommendation system.

Apa Itu Recommendation System?

Pada sumber Wikipedia menyebutkan tentang definisi dari recommendation system :

A recommender system or a recommendation system (sometimes replacing “system” with a synonym such as platform or engine) is a subclass of information filtering system that seeks to predict the “rating” or “preference” a user would give to an item.

Recommendation system adalah sebuah sistem yang mengacu pada memprediksi sejumlah item atau data untuk pengguna di masa mendatang, kemudian dijadikan rekomendasi item paling teratas. Salah satu alasan mengapa perlu digunakannya recommendation system karena pengguna memiliki banyak pilihan untuk digunakan karena prevalensi internet.

Meskipun jumlah informasi yang tersedia meningkat, masalah baru muncul karena para pengguna kesulitan memilih item yang ingin mereka lihat. Di sinilah recommendation system masuk.

Source

Metode Pada Recommendation System

Recommendation System terbagi atas 3 metode :

  1. Content Based Recommendation
  2. Collaborative Filtering
  3. Content — Collaborative Recommendation (Hybrid Recommendation)

1. Content Based Recommendation

Content Based Recommendation memanfaatkan informasi beberapa item / data untuk direkomendasikan kepada pengguna sebagai referensi yang terkait dengan informasi yang digunakan sebelumnya. Tujuan dari content based recommendation agar dapat memprediksi persamaan dari sejumlah informasi yang didapat dari pengguna.

Contoh, seorang pengguna sedang menonton video di Youtube. Konten yang dilihat oleh pengguna, yaitu tentang sepak bola. Youtube secara sistem akan merekomendasikan si pengguna untuk melihat video lain yang berhubungan dengan konten sepak bola.

Dalam pembuatannya, content based filtering menggunakan konsep perhitungan vector, TF-IDF, dan Cosine Similarity yang intinya dikonversikan dari data / text menjadi berbentuk vektor.

Cosine Similarity

2. Collaborative Filtering

Collaborative Filtering memanfaatkan transaksi suatu produk / item yang didasarkan kepada perilaku / kebiasaan si pengguna. Tujuannya agar pengguna yang sama dan item yang serupa dapat disukai oleh pengguna sebagai rekomendasi pilihan. Collaborative Filtering umumnya terbagi atas 2 metode :

  • User-Based Collaborative Filtering (UB-CF)
  • Item-Based Collaborative Filtering (IB-CF)

User-Based Collaborative Filtering (UB-CF) merekomendasikan item suatu produk dengan menemukan pengguna yang mirip dengan pengguna yang lainnya. Contoh, kita ingin merekomendasikan film kepada teman kita. Kita bisa berasumsi bahwa orang yang sama akan memiliki selera yang sama. Misalkan saya dan si B telah menonton film yang sama, dan kami menilai semuanya hampir identik. Tapi si B belum melihat film ‘Harry Potter : Bagian II’ dan saya tahu. Jika saya suka film itu, itu masuk akal untuk berpikir bahwa dia juga.

UB-CF mempunyai 2 metode perhitungan, yaitu Cosine similarity dan Pearson Correlation.

Pearson Correlation

Kedua metode tersebut biasa digunakan. Perbedaannya adalah bahwa Pearson Correlation tidak berubah untuk menambahkan konstanta pada semua elemen. Pada pembuatannya, algoritma yang umum digunakan K-Nearest Neighbor (KNN). Dan algoritma KNN bisa dilihat di Scikit-learn.

Item-Based Collaborative Filtering (IB-CF) merekomendasikan kesamaan antara item yang menargetkan / berinteraksi dengan pengguna dan item lainnya. Contoh, seorang pengguna menyukai tim sepak bola “Bayern Munich”. Sistem secara otomatis akan merekomendasikan suatu item yang berhubungan dengan “Bayern Munich”, seperti jersey, bola, poster, dan lain sebagainya yang berhubungan.

Pada pembuatannya, IB-CF menggunakan metode perhitungan yang sama dengan UB-CF. Hanya saja, berbeda dalam menargetkan suatu rekomendasi yang dibuat.

Selain peggunaan algoritma KNN, collaborative filtering juga bisa menggunakan algoritma Matrix Factorization (MF) dengan mendekomposisi interaksi matriks item - pengguna menjadi produk dari dua matriks dua dimensi yang lebih rendah. Satu matriks dapat dilihat sebagai matriks pengguna di mana baris mewakili pengguna dan kolom adalah latent factor. Matriks lain adalah matriks item di mana baris merupakan latent factor dan kolom mewakili item.

Algoritma Matrix Factorization : Source

Untuk menentukan latent factor, algoritma MF bisa menggunakan singular value decomposition (SVD). Pada python, MF bisa digunakan dengan scikit-learn yang sudah tersedia library nya.

3. Content — Collaborative Recommendation System (Hybrid Recommendation System)

Hybrid Recommendation System adalah gabungan antara metode content based filtering dengan collaborative filtering. Paper yang dipublikasi oleh Erion Çano, Maurizio Morisio di https://arxiv.org/abs/1901.03888 dengan judul : Hybrid Recommender Systems: A Systematic Literature Review menyatakan mengenai hybrid recommendation system :

Hybrid recommender systems combine two or more recommendation strategies in different ways to benefit from their complementary advantages.

Kesimpulan

Recommendation system dapat menjadi salah satu teknik dimana dapat menentukan rekomendasi kepada pengguna lewat kebiasaan atau interaksi dengan pengguna lainnya maupun dengan beberapa item yang terkait dengan item yang digunakan oleh pengguna.

Selain penggunaan library scikit-learn, pembuatan recommendation system bisa juga menggunakan library lain, seperti :

Pada artikel selanjutnya, saya akan membangun recommendation system menggunakan metode content based recommendation.

Terima kasih…

--

--