Demo Sistem Rekomendasi Film Hybrid
Demo inferensi dari skripsi "Implementasi Hybrid Filtering dan CatBoost Reranker dalam Sistem Rekomendasi Film" (Rizky Febrian Hidayat β 51422471, Universitas Gunadarma).
Menggabungkan:
- Content-Based Filtering (TF-IDF + cosine similarity)
- Collaborative Filtering β Bayesian Personalized Ranking (BPR)
- Meta-learner β CatBoostRanker dengan fungsi kerugian YetiRank
pada dataset MovieLens 20M.
Ini demo inferensi untuk keperluan akademik, bukan layanan produksi. Lihat Bab 3 skripsi (subbab Deployment) untuk cakupan penelitian.
Cara menjalankan lokal
pip install -r requirements.txt
streamlit run app.py
Buka http://localhost:8501 di browser.
Berkas model yang dibutuhkan (folder models/)
Aplikasi ini tidak menyertakan model terlatih β kamu perlu menghasilkannya
sendiri dengan menjalankan notebook penelitian secara berurutan, lalu
menyalin 5 berkas berikut ke folder models/:
| Berkas | Dihasilkan oleh |
|---|---|
preprocess_cache.pkl |
02_preprocessing_movielens20m.ipynb |
cbf_cache.pkl |
03_cbf_movielens20m.ipynb |
bpr_cache.pkl |
04_bpr_movielens20m.ipynb |
yetirank_model.cbm |
05_hybrid_yetirank_movielens20m.ipynb |
yetirank_cache.pkl |
05_hybrid_yetirank_movielens20m.ipynb |
Struktur folder yang benar:
deploy_app/
βββ app.py
βββ requirements.txt
βββ README.md
βββ models/
βββ preprocess_cache.pkl
βββ cbf_cache.pkl
βββ bpr_cache.pkl
βββ yetirank_model.cbm
βββ yetirank_cache.pkl
Kalau notebook-mu menyimpan cache di folder models/ yang berbeda (misalnya
di root proyek notebook), cukup salin (copy, bukan pindah) kelima berkas itu
ke deploy_app/models/.
Deploy ke HuggingFace Spaces (gratis)
Buat akun di huggingface.co (gratis, tanpa kartu kredit)
Klik New Space β pilih SDK Streamlit β beri nama Space
Di halaman Space, klik tab Files β Add file β upload:
app.pyrequirements.txtREADME.md- folder
models/beserta isinya (5 berkas)
Catatan:
yetirank_model.cbmdanbpr_cache.pklbisa berukuran puluhan MB. Kalau upload lewat web gagal karena ukuran, gunakan Git:git clone https://huggingface.co/spaces/<username>/<nama-space> cd <nama-space> cp app.py requirements.txt README.md . mkdir models && cp /path/ke/model/*.pkl /path/ke/model/*.cbm models/ git add . && git commit -m "Deploy model hybrid" && git pushTunggu ~2β5 menit sampai status berubah jadi Running
Dapat link publik:
https://huggingface.co/spaces/<username>/<nama-space>
Catatan teknis
Seluruh logika skor (get_bpr_scores_batch, get_cbf_scores_batch,
recommend_top_n) di app.py disalin persis dari fungsi
score_unseen_catalog() pada notebook 05_hybrid_yetirank_movielens20m.ipynb,
untuk menjamin hasil demo konsisten dengan metodologi yang dilaporkan di
Bab 3 dan hasil evaluasi di Bab 4 skripsi.