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)

  1. Buat akun di huggingface.co (gratis, tanpa kartu kredit)

  2. Klik New Space β†’ pilih SDK Streamlit β†’ beri nama Space

  3. Di halaman Space, klik tab Files β†’ Add file β†’ upload:

    • app.py
    • requirements.txt
    • README.md
    • folder models/ beserta isinya (5 berkas)

    Catatan: yetirank_model.cbm dan bpr_cache.pkl bisa 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 push
    
  4. Tunggu ~2–5 menit sampai status berubah jadi Running

  5. 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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support